commit19e44efef1Author: Changelogs <action@github.com> Date: Mon Jun 21 00:24:03 2021 +0000 Automatic changelog compile [ci skip] commitbd1344b4b2Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sun Jun 20 18:26:23 2021 -0500 Automatic changelog generation for PR #14872 [ci skip] commit3a914072b5Merge:8a81fa7d7929604b939cAuthor: Lin <linzolle@gmail.com> Date: Sun Jun 20 16:26:21 2021 -0700 Merge pull request #14872 from Citadel-Station-13/silicons-patch-40 it turns out i accidentally buffed glowshrooms by a factor of 21. this should probably be fixed. commit8a81fa7d79Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sun Jun 20 18:25:25 2021 -0500 Automatic changelog generation for PR #14873 [ci skip] commit9117cc6a5cMerge:0a1f0d3e660113412190Author: Lin <linzolle@gmail.com> Date: Sun Jun 20 16:25:23 2021 -0700 Merge pull request #14873 from timothyteakettle/vore vore href exploit fix commit29604b939cAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 20 13:18:54 2021 -0700 Update glowshroom.dm commit0a1f0d3e66Author: Changelogs <action@github.com> Date: Sun Jun 20 00:24:26 2021 +0000 Automatic changelog compile [ci skip] commit0113412190Author: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Sat Jun 19 16:28:52 2021 +0100 Update vorepanel.dm commitab9a776690Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sat Jun 19 09:04:51 2021 -0500 Automatic changelog generation for PR #14863 [ci skip] commit0cfe2ec4caMerge:0067cc2b6ecf0d7f704aAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sat Jun 19 07:04:48 2021 -0700 Merge pull request #14863 from miniusAreas/fdmm-patch-28485128-miniusAreas Various Fixes (freelance) commit8f3c1fe03aAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sat Jun 19 07:02:51 2021 -0700 Update glowshroom.dm commitc0e3af55bcAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sat Jun 19 06:59:26 2021 -0700 Update glowshroom.dm commit0067cc2b6eAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Fri Jun 18 22:03:46 2021 -0500 Automatic changelog generation for PR #14734 [ci skip] commit3c7786dafdMerge:de26ea4a20538efd2d8fAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Fri Jun 18 20:03:43 2021 -0700 Merge pull request #14734 from keronshb/SpaceDragon (READY) Ports Space Dragon Midround Event. commitde26ea4a20Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Fri Jun 18 22:02:25 2021 -0500 Automatic changelog generation for PR #14867 [ci skip] commitfd0afa209fMerge:ae6a648c4b20bc2f2f59Author: silicons <2003111+silicons@users.noreply.github.com> Date: Fri Jun 18 20:02:23 2021 -0700 Merge pull request #14867 from kiwedespars/wheelyheely wheely heelies finally have that downside people have been telling me about commitae6a648c4bMerge:2fa8136e6afb9cc6fe45Author: silicons <2003111+silicons@users.noreply.github.com> Date: Fri Jun 18 20:02:07 2021 -0700 Merge pull request #14869 from bunny232/21/79-the-finale 21/79 the finale now with less map merge issues woops commit2fa8136e6aAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Fri Jun 18 22:01:08 2021 -0500 Automatic changelog generation for PR #14860 [ci skip] commit4768b23398Merge:0e7760fb095619b73e6bAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Fri Jun 18 20:01:05 2021 -0700 Merge pull request #14860 from Arturlang/nanite_updates Updates our nanite stuff to TG's, mostly commit0e7760fb09Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Fri Jun 18 21:58:29 2021 -0500 Automatic changelog generation for PR #14831 [ci skip] commitbc4773b728Merge:ec2548949ba64d94a7ccAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Fri Jun 18 19:58:27 2021 -0700 Merge pull request #14831 from zeroisthebiggay/beltsprites TG Resprite Compendium Atomization Project | Episode Six: Beltslot Sprites & Telebaton Resprite commitec2548949bAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Fri Jun 18 21:58:09 2021 -0500 Automatic changelog generation for PR #14864 [ci skip] commit30d5a72688Merge:5d3384d649d823c5b168Author: silicons <2003111+silicons@users.noreply.github.com> Date: Fri Jun 18 19:58:06 2021 -0700 Merge pull request #14864 from EmeraldSundisk/moresnax Smaller but more important changes to Snaxi. commit5d3384d649Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Fri Jun 18 20:52:39 2021 -0500 Automatic changelog generation for PR #14847 [ci skip] commitf6b3bce2f3Merge:84068b467a03b921a121Author: Putnam3145 <putnam3145@gmail.com> Date: Fri Jun 18 18:52:37 2021 -0700 Merge pull request #14847 from bunny232/21/79-the-revengence 21/79 not 20/80 the revenge commit84068b467aMerge:1400c8deb9687d0adf23Author: Putnam3145 <putnam3145@gmail.com> Date: Fri Jun 18 17:23:35 2021 -0700 Merge pull request #14658 from silicons/backend_sync Updates tgui and build backend, fixes the build.bat for those with latest eslint (?) commit1400c8deb9Author: Changelogs <action@github.com> Date: Sat Jun 19 00:23:19 2021 +0000 Automatic changelog compile [ci skip] commitadc6b7d76aMerge:eab6579ccea8b7c07f00Author: Lin <linzolle@gmail.com> Date: Fri Jun 18 13:53:23 2021 -0700 Merge pull request #14865 from Citadel-Station-13/silicons-patch-39 when sprint is disabled, people jogging can still slip :) commiteab6579cceAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Fri Jun 18 12:22:50 2021 -0500 Automatic changelog generation for PR #14862 [ci skip] commita192757843Author: keronshb <54602815+keronshb@users.noreply.github.com> Date: Fri Jun 18 13:22:48 2021 -0400 BUG FIX: Changeling Bone Gauntlets work again (#14862) * Fixes Bone Gauntlets * Better fix * return commitfb9cc6fe45Author: bunny232 <bunnyracer23@yahoo.com> Date: Fri Jun 18 05:25:02 2021 -0400 Update atmospherics.dm commit5d574acdc2Merge:2b89214d14eaf36d3137Author: Putnam3145 <putnam3145@gmail.com> Date: Fri Jun 18 00:47:07 2021 -0700 Merge pull request #14794 from Citadel-Station-13/silicons-patch-35 updates GLOB.flags to the new byond limit of 24 flags in one variable, up from 16. commit2b89214d14Author: Changelogs <action@github.com> Date: Fri Jun 18 00:22:21 2021 +0000 Automatic changelog compile [ci skip] commit20bc2f2f59Author: 123 <aeromireleks@gmail.com> Date: Thu Jun 17 16:16:21 2021 -0700 Update scooter.dm commit04debb2c20Author: Changelogs <action@github.com> Date: Sun Mar 14 00:27:26 2021 +0000 Automatic changelog compile [ci skip] commita8b7c07f00Author: silicons <2003111+silicons@users.noreply.github.com> Date: Thu Jun 17 07:07:49 2021 -0700 Update open.dm commitd823c5b168Author: EmeraldSundisk <thachazman@hotmail.com> Date: Wed Jun 16 21:58:32 2021 -0700 Update Snaxi.dmm commit507b1f43c0Merge:a121153f0f21845e0618Author: EmeraldSundisk <51142887+EmeraldSundisk@users.noreply.github.com> Date: Wed Jun 16 21:17:32 2021 -0700 Merge pull request #82 from EmeraldSundisk/Citadel-Station-13-master Citadel station 13 master commit21845e0618Merge:a121153f0f64f762f59bAuthor: EmeraldSundisk <51142887+EmeraldSundisk@users.noreply.github.com> Date: Wed Jun 16 21:16:14 2021 -0700 Merge pull request #81 from Citadel-Station-13/master 6/16 commitcf0d7f704aAuthor: miniusAreas <39163353+miniusAreas@users.noreply.github.com> Date: Wed Jun 16 22:20:52 2021 -0400 AAAAAAAAAAA commit04b67e3584Author: miniusAreas <39163353+miniusAreas@users.noreply.github.com> Date: Wed Jun 16 22:14:57 2021 -0400 metapubbydelta commit687d0adf23Merge:b734c2837064f762f59bAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 16 19:04:07 2021 -0700 Merge remote-tracking branch 'citadel/master' into backend_sync commit64f762f59bAuthor: Changelogs <action@github.com> Date: Thu Jun 17 00:22:08 2021 +0000 Automatic changelog compile [ci skip] commit0a3aa1e94dAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 16 13:30:04 2021 -0500 Automatic changelog generation for PR #14851 [ci skip] commit1e66357706Merge:dc6b686ac5df72710caeAuthor: Lin <linzolle@gmail.com> Date: Wed Jun 16 11:30:01 2021 -0700 Merge pull request #14851 from Vynzill/spritinghell Extended Armwraps commitdc6b686ac5Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 16 12:27:22 2021 -0500 Automatic changelog generation for PR #14854 [ci skip] commite12380cc40Author: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Wed Jun 16 18:27:19 2021 +0100 Update embedded.dm (#14854) commit3864baaf76Author: Changelogs <action@github.com> Date: Wed Jun 16 00:23:43 2021 +0000 Automatic changelog compile [ci skip] commit5619b73e6bAuthor: Artur <arturpaavooskari.lang@gmail.com> Date: Wed Jun 16 02:02:28 2021 +0300 Makes it actually, actually work commitad0c3d477eAuthor: Artur <arturpaavooskari.lang@gmail.com> Date: Wed Jun 16 01:48:54 2021 +0300 Makes it work proper, hopefully commit795ab3f835Author: Artur <arturpaavooskari.lang@gmail.com> Date: Wed Jun 16 01:32:24 2021 +0300 https://github.com/tgstation/tgstation/pull/49798 commit096e7d4d67Author: Artur <arturpaavooskari.lang@gmail.com> Date: Wed Jun 16 01:31:53 2021 +0300 https://github.com/tgstation/tgstation/pull/49927 commitfbcd1a3026Author: Artur <arturpaavooskari.lang@gmail.com> Date: Wed Jun 16 01:26:02 2021 +0300 https://github.com/tgstation/tgstation/pull/55883 With a minor tweak so humans don't benefit commitab82766757Author: Artur <arturpaavooskari.lang@gmail.com> Date: Wed Jun 16 01:19:48 2021 +0300 https://github.com/tgstation/tgstation/pull/59169 commitf33343c6dbAuthor: Artur <arturpaavooskari.lang@gmail.com> Date: Wed Jun 16 01:17:13 2021 +0300 https://github.com/tgstation/tgstation/pull/56739 commit74c186d871Author: Artur <arturpaavooskari.lang@gmail.com> Date: Wed Jun 16 01:16:39 2021 +0300 https://github.com/tgstation/tgstation/pull/56516 commita430dc4d4dAuthor: Artur <arturpaavooskari.lang@gmail.com> Date: Wed Jun 16 01:16:08 2021 +0300 https://github.com/tgstation/tgstation/pull/56542 commitf3e16b298bAuthor: Artur <arturpaavooskari.lang@gmail.com> Date: Wed Jun 16 01:15:21 2021 +0300 https://github.com/tgstation/tgstation/pull/56588 commitb0d7482f04Author: Artur <arturpaavooskari.lang@gmail.com> Date: Wed Jun 16 01:09:30 2021 +0300 https://github.com/tgstation/tgstation/pull/55902 commite2eb9d52d0Author: Artur <arturpaavooskari.lang@gmail.com> Date: Wed Jun 16 01:03:51 2021 +0300 https://github.com/tgstation/tgstation/pull/55164 commit18aee24231Author: Artur <arturpaavooskari.lang@gmail.com> Date: Wed Jun 16 01:01:41 2021 +0300 https://github.com/tgstation/tgstation/pull/54902 commit337998e99aAuthor: Artur <arturpaavooskari.lang@gmail.com> Date: Wed Jun 16 00:46:05 2021 +0300 https://github.com/tgstation/tgstation/pull/54793 commit724b34f55dAuthor: Artur <arturpaavooskari.lang@gmail.com> Date: Wed Jun 16 00:44:32 2021 +0300 https://github.com/tgstation/tgstation/pull/54710 commit70de0547abMerge:9277e685e90d206742faAuthor: Lin <linzolle@gmail.com> Date: Mon Jun 14 20:17:05 2021 -0700 Merge pull request #14713 from silicons/json_interface adds json topic api for manifest, players, revision, and status. commit9277e685e9Merge:e22ea7de59bc56f74229Author: Lin <linzolle@gmail.com> Date: Mon Jun 14 20:15:52 2021 -0700 Merge pull request #14797 from Citadel-Station-13/silicons-patch-36-1 Delete docker_publish.yml commite22ea7de59Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Mon Jun 14 22:15:45 2021 -0500 Automatic changelog generation for PR #14834 [ci skip] commit4ae09baa63Merge:84a6467fc98feb473e65Author: Lin <linzolle@gmail.com> Date: Mon Jun 14 20:15:42 2021 -0700 Merge pull request #14834 from silicons/on_found Fixes on_found triggering on storage commit84a6467fc9Merge:a1db7518e22c61a48860Author: Lin <linzolle@gmail.com> Date: Mon Jun 14 20:14:05 2021 -0700 Merge pull request #14835 from Citadel-Station-13/silicons-patch-37 Mark datum is now a global verb commita1db7518e2Author: Changelogs <action@github.com> Date: Tue Jun 15 00:23:42 2021 +0000 Automatic changelog compile [ci skip] commitdf72710caeAuthor: Vynzill <crimsonrazoralt@gmail.com> Date: Mon Jun 14 17:19:05 2021 -0500 herewego commitc3f87c312cAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Mon Jun 14 16:30:56 2021 -0500 Automatic changelog generation for PR #14849 [ci skip] commitecd3454ce5Merge:38d40b58924fec75fe87Author: silicons <2003111+silicons@users.noreply.github.com> Date: Mon Jun 14 14:30:53 2021 -0700 Merge pull request #14849 from EmeraldSundisk/snaxifollowup Quick Snaxi fixes. commit4fec75fe87Author: EmeraldSundisk <thachazman@hotmail.com> Date: Mon Jun 14 08:48:14 2021 -0700 initialfix commit03b921a121Author: bunny232 <bunnyracer23@yahoo.com> Date: Mon Jun 14 06:12:04 2021 -0400 Update tank.dm commita121153f0fMerge:29e37b0f5e38d40b5892Author: EmeraldSundisk <51142887+EmeraldSundisk@users.noreply.github.com> Date: Sun Jun 13 22:33:35 2021 -0700 Merge pull request #80 from Citadel-Station-13/master 6/13 commit38d40b5892Author: Changelogs <action@github.com> Date: Mon Jun 14 00:22:34 2021 +0000 Automatic changelog compile [ci skip] commitb734c28370Author: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 13 16:27:38 2021 -0700 fixes commit6495bbcc81Merge:a8f17c3305eb353c9687Author: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 13 16:13:30 2021 -0700 Merge remote-tracking branch 'citadel/master' into backend_sync commita64d94a7ccMerge:bae89fcabaeb353c9687Author: zerothebigboy <cookiesvvww@gmail.com> Date: Sun Jun 13 18:25:35 2021 -0400 Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into beltsprites commiteb353c9687Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sun Jun 13 17:24:33 2021 -0500 Automatic changelog generation for PR #14832 [ci skip] commit49efd115eeMerge:cc88ebd185319e03476bAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 13 15:24:30 2021 -0700 Merge pull request #14832 from zeroisthebiggay/miscsprites TG Resprite Compendium Atomization Project | Episode Seven: Misc. Resprites & Distinctive Combat Defibs commitcc88ebd185Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sun Jun 13 17:19:48 2021 -0500 Automatic changelog generation for PR #14818 [ci skip] commitddf885f42eMerge:744ed08466c44750760dAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 13 15:19:46 2021 -0700 Merge pull request #14818 from EmeraldSundisk/snaxiforrealthistime HEY HEY! COME ON OVER, HAVE SOME FUN WITH SNOW TAXI!!! commit744ed08466Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sun Jun 13 17:19:39 2021 -0500 Automatic changelog generation for PR #14837 [ci skip] commita91d5111c4Merge:a88561d1aaa395fc1b52Author: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 13 15:19:37 2021 -0700 Merge pull request #14837 from zeroisthebiggay/trojancoyoteskirt (held against my will) adds a onesleeved croptop commita88561d1aaMerge:3170d60919ed929dda12Author: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 13 15:19:08 2021 -0700 Merge pull request #14770 from keronshb/spaceadaptaura Changes Space Adapt to a proper animated outline so it doesn't look awful. commitbae89fcabaMerge:1122135c173170d60919Author: zerothebigboy <cookiesvvww@gmail.com> Date: Sun Jun 13 18:19:01 2021 -0400 Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into beltsprites commit3170d60919Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sun Jun 13 17:18:48 2021 -0500 Automatic changelog generation for PR #14824 [ci skip] commitd6aaf5c96aMerge:a8f7a56d41e78929cde1Author: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 13 15:18:46 2021 -0700 Merge pull request #14824 from timothyteakettle/bee bees can go in containers and are released upon opening the container commita8f7a56d41Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sun Jun 13 17:17:21 2021 -0500 Automatic changelog generation for PR #14814 [ci skip] commitdc80bcaabbMerge:ef5a52372901a61b551cAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 13 15:17:18 2021 -0700 Merge pull request #14814 from TripleShades/delda Delta Tweaks commitef5a523729Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sun Jun 13 17:16:39 2021 -0500 Automatic changelog generation for PR #14816 [ci skip] commitd0fc422b3aMerge:81cd0013593321e17c6fAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 13 15:16:37 2021 -0700 Merge pull request #14816 from SandPoot/tablet-pen-slot Adds a pen slot for tablet computers commit319e03476bMerge:e757f9ea2c81cd001359Author: zerothebigboy <cookiesvvww@gmail.com> Date: Sun Jun 13 18:16:08 2021 -0400 Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into miscsprites commit81cd001359Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sun Jun 13 17:16:02 2021 -0500 Automatic changelog generation for PR #14841 [ci skip] commitf56e95e4e7Merge:fe031f32c0a324701730Author: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 13 15:15:59 2021 -0700 Merge pull request #14841 from MrJWhit/revert-14762-patch-2 Revert "adds cat meteors" commitfe031f32c0Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sun Jun 13 17:15:35 2021 -0500 Automatic changelog generation for PR #14813 [ci skip] commit2dd0d014b9Merge:0f2bbc2a13d70a35a48dAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 13 15:15:32 2021 -0700 Merge pull request #14813 from SandPoot/small-issues Fixes some small issues with cosmetic syndicate clothing (loadout clothing) commit0f2bbc2a13Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sun Jun 13 17:15:22 2021 -0500 Automatic changelog generation for PR #14820 [ci skip] commit431acd9d5cMerge:b2f530da5d584dce4a80Author: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 13 15:15:20 2021 -0700 Merge pull request #14820 from qweq12yt/more-cargo-stuff [FIX] Some cargo related fixes commitb2f530da5dAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sun Jun 13 17:15:07 2021 -0500 Automatic changelog generation for PR #14836 [ci skip] commit5e1818819bMerge:6efe680a471303f4b9aeAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 13 15:15:04 2021 -0700 Merge pull request #14836 from timothyteakettle/funny-tips adds 7 more round tips commit6efe680a47Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sun Jun 13 17:14:32 2021 -0500 Automatic changelog generation for PR #14830 [ci skip] commitb77da2824aMerge:f02098d1a14486b08bd4Author: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 13 15:14:30 2021 -0700 Merge pull request #14830 from zeroisthebiggay/dishdrive TG Resprite Compendium Atomization Project | Episode Five: Dish Drives commitf02098d1a1Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sun Jun 13 17:14:07 2021 -0500 Automatic changelog generation for PR #14829 [ci skip] commit211fed05d7Merge:81be45f0628a5a5ef6ccAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 13 15:14:04 2021 -0700 Merge pull request #14829 from zeroisthebiggay/singulohammer TG Resprite Compendium Atomization Project | Episode Four: Singularity Hammers commit81be45f062Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sun Jun 13 17:13:49 2021 -0500 Automatic changelog generation for PR #14826 [ci skip] commit33d8e95144Merge:5324544a6339d951a4a8Author: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 13 15:13:46 2021 -0700 Merge pull request #14826 from zeroisthebiggay/bankmachine TG Resprite Compendium Atomization Project | Episode Two: Bank Machines commit5324544a63Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sun Jun 13 17:13:25 2021 -0500 Automatic changelog generation for PR #14825 [ci skip] commit8eff0ca5b3Merge:405135834e5bf831be0fAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Jun 13 15:13:23 2021 -0700 Merge pull request #14825 from zeroisthebiggay/watercooler TG Resprite Compendium Atomization Project | Episode One: Water Coolers commita324701730Author: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Sun Jun 13 05:25:02 2021 -0400 Revert "adds cat meteors" commitc44750760dAuthor: EmeraldSundisk <51142887+EmeraldSundisk@users.noreply.github.com> Date: Sat Jun 12 21:34:41 2021 -0700 Add files via upload commit686798b789Author: EmeraldSundisk <thachazman@hotmail.com> Date: Sat Jun 12 21:21:43 2021 -0700 stronk commita395fc1b52Author: zerothebigboy <cookiesvvww@gmail.com> Date: Sat Jun 12 19:58:53 2021 -0400 a commite757f9ea2cAuthor: zerothebigboy <cookiesvvww@gmail.com> Date: Sat Jun 12 17:41:09 2021 -0400 thetwentythirdofmany commit1303f4b9aeAuthor: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Sat Jun 12 15:34:58 2021 +0100 Update tips.txt commit2c61a48860Author: silicons <2003111+silicons@users.noreply.github.com> Date: Sat Jun 12 05:09:13 2021 -0700 Update mark_datum.dm commit8feb473e65Author: silicons <2003111+silicons@users.noreply.github.com> Date: Sat Jun 12 04:49:23 2021 -0700 fixes commit55e8d67521Author: silicons <2003111+silicons@users.noreply.github.com> Date: Sat Jun 12 04:41:58 2021 -0700 refactor a bit commit85b1125c83Author: silicons <2003111+silicons@users.noreply.github.com> Date: Sat Jun 12 04:36:02 2021 -0700 fix commit01a61b551cAuthor: TripleShades <MegaProto@gmx.com> Date: Sat Jun 12 01:08:22 2021 -0400 Update DeltaStation2.dmm commit3fae79f876Author: zerothebigboy <cookiesvvww@gmail.com> Date: Fri Jun 11 20:28:25 2021 -0400 thetwentyfirstofmany commit405135834eAuthor: Changelogs <action@github.com> Date: Sat Jun 12 00:20:05 2021 +0000 Automatic changelog compile [ci skip] commit1122135c17Author: zerothebigboy <cookiesvvww@gmail.com> Date: Fri Jun 11 20:04:05 2021 -0400 thetwentiethofmany commitb7eecc315fAuthor: zerothebigboy <cookiesvvww@gmail.com> Date: Fri Jun 11 19:49:43 2021 -0400 theeighteenthofmany commit53e95b7356Author: zerothebigboy <cookiesvvww@gmail.com> Date: Fri Jun 11 19:48:04 2021 -0400 theseventeenthofmany commit4486b08bd4Author: zerothebigboy <cookiesvvww@gmail.com> Date: Fri Jun 11 19:33:51 2021 -0400 thefifteenthofmany commit979aa04a69Merge:c33348fe18b188a6ea0fAuthor: Putnam3145 <putnam3145@gmail.com> Date: Fri Jun 11 16:22:06 2021 -0700 Merge pull request #14828 from silicons/sigh_516 fixes the crafting menu, adds an unit test to automatically yell at people who PR untested code that ended up breaking it for me (thanks drpanis) commit8a5a5ef6ccAuthor: zerothebigboy <cookiesvvww@gmail.com> Date: Fri Jun 11 19:22:05 2021 -0400 thethirteenthofmany commitb188a6ea0fAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Fri Jun 11 16:15:31 2021 -0700 why commita8f17c3305Author: silicons <2003111+silicons@users.noreply.github.com> Date: Fri Jun 11 15:33:55 2021 -0700 hm commit39d951a4a8Author: zerothebigboy <cookiesvvww@gmail.com> Date: Fri Jun 11 18:24:29 2021 -0400 thesixthofmany commit5bf831be0fAuthor: zerothebigboy <cookiesvvww@gmail.com> Date: Fri Jun 11 18:17:16 2021 -0400 thefourthofmany commit0830181b26Author: silicons <2003111+silicons@users.noreply.github.com> Date: Fri Jun 11 15:10:29 2021 -0700 hm commite78929cde1Author: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Fri Jun 11 17:55:38 2021 +0100 typo commitbaad78e7feAuthor: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Fri Jun 11 16:08:55 2021 +0100 bee commit816b09bf32Merge:4289b8be1ec33348fe18Author: silicons <2003111+silicons@users.noreply.github.com> Date: Thu Jun 10 22:36:26 2021 -0700 Merge remote-tracking branch 'citadel/master' into backend_sync commit7980ee2c37Author: EmeraldSundisk <thachazman@hotmail.com> Date: Thu Jun 10 21:54:00 2021 -0700 strongdmm commit584dce4a80Author: qweq12yt <45515587+qweq12yt@users.noreply.github.com> Date: Fri Jun 11 01:34:19 2021 -0300 updating comments commit78470092fcAuthor: qweq12yt <45515587+qweq12yt@users.noreply.github.com> Date: Fri Jun 11 01:12:16 2021 -0300 Update settings.json commitc33348fe18Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Thu Jun 10 19:52:15 2021 -0500 Automatic changelog generation for PR #14768 [ci skip] commit86881dc1afMerge:a683754160b1b931a7c4Author: BlackMajor <henrydyer6@hotmail.com> Date: Fri Jun 11 12:52:12 2021 +1200 Merge pull request #14768 from Citadel-Station-13/silicons-patch-33 makes xenos immune to stamina damage, with something that might be potentially horrifically abusable but isn't really fixable in a clean way yet commita683754160Author: Changelogs <action@github.com> Date: Fri Jun 11 00:23:59 2021 +0000 Automatic changelog compile [ci skip] commit0ca61af62aAuthor: qweq12yt <45515587+qweq12yt@users.noreply.github.com> Date: Thu Jun 10 16:50:44 2021 -0300 fixed combo lockers commitebb4ab1f07Author: EmeraldSundisk <thachazman@hotmail.com> Date: Wed Jun 9 21:21:24 2021 -0700 to finish commit29e37b0f5eMerge:375da54dc29376ec0d04Author: EmeraldSundisk <51142887+EmeraldSundisk@users.noreply.github.com> Date: Wed Jun 9 21:19:25 2021 -0700 Merge pull request #79 from Citadel-Station-13/master 6/9 commit3321e17c6fAuthor: SandPoot <43283559+SandPoot@users.noreply.github.com> Date: Wed Jun 9 21:48:06 2021 -0300 Update NtosWindow.js Delet unused stuff commite63eac2c57Author: SandPoot <43283559+SandPoot@users.noreply.github.com> Date: Wed Jun 9 21:47:33 2021 -0300 upload NtosWindow.js commit79c501a7b4Author: SandPoot <enric_gabirel@hotmail.com> Date: Wed Jun 9 21:36:43 2021 -0300 upload files commit9376ec0d04Author: Changelogs <action@github.com> Date: Thu Jun 10 00:25:00 2021 +0000 Automatic changelog compile [ci skip] commit42b8120f74Author: TripleShades <MegaProto@gmx.com> Date: Wed Jun 9 15:47:33 2021 -0400 Update DeltaStation2.dmm commit0ca6e983c9Author: TripleShades <MegaProto@gmx.com> Date: Wed Jun 9 15:32:48 2021 -0400 changies delda changies good commitd3f1a163b1Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 14:14:39 2021 -0500 Automatic changelog generation for PR #14683 [ci skip] commit5e4f3ed694Merge:e78715d95233affb4f10Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 12:14:37 2021 -0700 Merge pull request #14683 from keronshb/shovedisarmgun Off Balance Disarms only if shoved into a wall or person. commit33affb4f10Author: keronshb <keronshb@live.com> Date: Wed Jun 9 15:14:07 2021 -0400 THREE SECONDS commited929dda12Author: keronshb <keronshb@live.com> Date: Wed Jun 9 15:12:22 2021 -0400 Changes up the animation a bit commitd70a35a48dAuthor: SandPoot <enric_gabirel@hotmail.com> Date: Wed Jun 9 15:49:57 2021 -0300 upload syndicate.dm commite78715d952Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 13:29:26 2021 -0500 Automatic changelog generation for PR #14776 [ci skip] commit09d61c3becMerge:13c965e5f37884ccf316Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:29:24 2021 -0700 Merge pull request #14776 from WanderingFox95/WanderingFox95-CatSurgeon New Challenger: The Cat Surgeon has appeared! (Ready!) commit13c965e5f3Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 13:22:28 2021 -0500 Automatic changelog generation for PR #14766 [ci skip] commita77aa8bd41Merge:fa24353b16ed86a6628aAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:22:26 2021 -0700 Merge pull request #14766 from Linzolle/cultfix Fix cult area shenanigans, cult can do stuff in maint again. commitfa24353b16Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 13:21:57 2021 -0500 Automatic changelog generation for PR #14762 [ci skip] commit224efa0e26Merge:535435633e2eeb6ede1eAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:21:55 2021 -0700 Merge pull request #14762 from DrPainis/patch-2 adds cat meteors commit535435633eAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 13:21:24 2021 -0500 Automatic changelog generation for PR #14760 [ci skip] commiteb4b4088f4Merge:323e2f435540f9941849Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:21:22 2021 -0700 Merge pull request #14760 from keronshb/floorcluwneport Ports Floor Cluwnes and Cluwnes. commit323e2f4355Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 13:21:14 2021 -0500 Automatic changelog generation for PR #14759 [ci skip] commit996a99b7f4Merge:c094d771c171a8c08e22Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:21:12 2021 -0700 Merge pull request #14759 from Arturlang/uplink_misc_item_rebalances Changes the cost of the holoparasite injector and the ricochet eyepatch commitc094d771c1Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 13:20:52 2021 -0500 Automatic changelog generation for PR #14749 [ci skip] commita56ac3ce07Merge:34b3fd10117dab80cbb7Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:20:49 2021 -0700 Merge pull request #14749 from DrPainis/patch-14 adds goliath calamari (currently untested because Forget™) commit34b3fd1011Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 13:19:42 2021 -0500 Automatic changelog generation for PR #14771 [ci skip] commit30e7939e0eMerge:8d9cfc7b4a25fe97e8feAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:19:40 2021 -0700 Merge pull request #14771 from keronshb/disposalcargo Lets the Cargo Shuttle use Disposal Pipes again commit8d9cfc7b4aAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 13:18:35 2021 -0500 Automatic changelog generation for PR #14796 [ci skip] commit564a3aaa4bMerge:82a61121cd2db540aae3Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:18:32 2021 -0700 Merge pull request #14796 from MrJWhit/the-pr-that-gets-people-pissed Moves medical holodeck to restricted commit82a61121cdAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 13:18:12 2021 -0500 Automatic changelog generation for PR #14803 [ci skip] commitb28d4f26f3Merge:21e816abba26544ddbb7Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:18:10 2021 -0700 Merge pull request #14803 from bunny232/airmixies 21/79 not 20/80 commit21e816abbaAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 13:17:54 2021 -0500 Automatic changelog generation for PR #14806 [ci skip] commitdcd80edf5fMerge:0ee2892bee536135ec02Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:17:52 2021 -0700 Merge pull request #14806 from zeroisthebiggay/patch-11 cuts the amount of essence revenant objective needs in half so it is actually feasibly possible commit0ee2892beeMerge:5197b0aff3fcd1ec83ccAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:17:39 2021 -0700 Merge pull request #14807 from Putnam3145/make-sleeper-pref-good makes medihound sleeper toggle do something commit5197b0aff3Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 13:17:27 2021 -0500 Automatic changelog generation for PR #14808 [ci skip] commit7af470efefMerge:4b675a930000bb96d467Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:17:25 2021 -0700 Merge pull request #14808 from SandPoot/fixes-soulstones Fixes soulstones runtiming commit4b675a9300Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 13:17:20 2021 -0500 Automatic changelog generation for PR #14810 [ci skip] commitc7df74f452Merge:ec63a4c62b082ffa16f3Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:17:17 2021 -0700 Merge pull request #14810 from zeroisthebiggay/patch-12 Clowncar exploit fix commitec63a4c62bMerge:3d86ce9bda84db564e0fAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:17:14 2021 -0700 Merge pull request #14779 from Arturlang/Orbit_menu_antags Makes orbit menu show antags if DNR commit3d86ce9bdaMerge:a339d43eac015bd3c338Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:17:06 2021 -0700 Merge pull request #14787 from WanderingFox95/WanderingFox95-ORV-Revamp ORV Uniform Revamp commiteaf36d3137Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:16:55 2021 -0700 Update _flags.dm commita339d43eacAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 13:15:58 2021 -0500 Automatic changelog generation for PR #14802 [ci skip] commita7781f77fdMerge:31b544dc677826ced174Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:15:56 2021 -0700 Merge pull request #14802 from bunny232/atmosfoam Atmos resin buff? fix? commit31b544dc67Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 13:15:41 2021 -0500 Automatic changelog generation for PR #14805 [ci skip] commit2402c56bfcMerge:460026f3bc1a72070f5cAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:15:36 2021 -0700 Merge pull request #14805 from bunny232/hydroslimejelly Hydroponics slimejelly recipe from tg commit460026f3bcMerge:5ffceb376d5563ed1492Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:15:22 2021 -0700 Merge pull request #14774 from Citadel-Station-13/dependabot/npm_and_yarn/tgui/ws-7.4.6 Bump ws from 7.4.3 to 7.4.6 in /tgui commit5ffceb376dMerge:87e6b3992f413bb15961Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:15:11 2021 -0700 Merge pull request #14812 from Citadel-Station-13/dependabot/pip/tools/pillow-8.2.0 Bump pillow from 8.1.1 to 8.2.0 in /tools commit87e6b3992fAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 13:15:03 2021 -0500 Automatic changelog generation for PR #14809 [ci skip] commitc0e3b8d5efMerge:259aed7903b0940456f5Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:15:01 2021 -0700 Merge pull request #14809 from SandPoot/speak-nice-yes Centralizes borg speech and uses some of the icons for the typing indicator commit259aed7903Merge:fe8323f503b2e2c49011Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:14:48 2021 -0700 Merge pull request #14783 from DeltaFire15/spec-species-color Colors species names depending on traits commitfe8323f503Merge:03e71c36a57458909970Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:13:13 2021 -0700 Merge pull request #14747 from keronshb/reinforcedplasmawindowsteps Adds more deconstruction steps to stronger windows. commit03e71c36a5Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 13:12:26 2021 -0500 Automatic changelog generation for PR #14712 [ci skip] commit7963dce24eMerge:0a2f05b5ddf4780d4b5aAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:12:23 2021 -0700 Merge pull request #14712 from keronshb/hereticadjustments Minor Heretic rework and fixes (Includes shifting realities and more) commit0a2f05b5ddAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 9 13:10:20 2021 -0500 Automatic changelog generation for PR #14160 [ci skip] commit716c2a04e4Merge:103731ed05475a7d2499Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Jun 9 11:10:17 2021 -0700 Merge pull request #14160 from keronshb/motivation Adds a new traitor item, Motivation (Part 1) commit103731ed05Author: Changelogs <action@github.com> Date: Wed Jun 9 00:26:52 2021 +0000 Automatic changelog compile [ci skip] commit413bb15961Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue Jun 8 23:13:41 2021 +0000 Bump pillow from 8.1.1 to 8.2.0 in /tools Bumps [pillow](https://github.com/python-pillow/Pillow) from 8.1.1 to 8.2.0. - [Release notes](https://github.com/python-pillow/Pillow/releases) - [Changelog](https://github.com/python-pillow/Pillow/blob/master/CHANGES.rst) - [Commits](https://github.com/python-pillow/Pillow/compare/8.1.1...8.2.0) --- updated-dependencies: - dependency-name: pillow dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> commit082ffa16f3Author: zeroisthebiggay <43571008+zeroisthebiggay@users.noreply.github.com> Date: Tue Jun 8 15:43:32 2021 -0400 Update car.dm commitb0940456f5Author: SandPoot <enric_gabirel@hotmail.com> Date: Tue Jun 8 13:13:22 2021 -0300 upload files commit00bb96d467Author: SandPoot <enric_gabirel@hotmail.com> Date: Tue Jun 8 12:32:12 2021 -0300 upload soulstone.dm commitfcd1ec83ccAuthor: Putnam <putnam3145@gmail.com> Date: Tue Jun 8 00:25:31 2021 -0700 removed redundant check commitf6e08a8d2aAuthor: Putnam <putnam3145@gmail.com> Date: Tue Jun 8 00:24:54 2021 -0700 include a message too commita236357ebeAuthor: Putnam <putnam3145@gmail.com> Date: Tue Jun 8 00:21:19 2021 -0700 makes medihound sleeper toggle do something commit536135ec02Author: zeroisthebiggay <43571008+zeroisthebiggay@users.noreply.github.com> Date: Tue Jun 8 01:17:10 2021 -0400 last bit of finetuning commit55075fb31bAuthor: zeroisthebiggay <43571008+zeroisthebiggay@users.noreply.github.com> Date: Tue Jun 8 01:15:03 2021 -0400 Update revenant.dm commit538f1c802dAuthor: zeroisthebiggay <43571008+zeroisthebiggay@users.noreply.github.com> Date: Tue Jun 8 01:13:12 2021 -0400 Update revenant.dm commit1a72070f5cAuthor: bunny232 <bunnyracer23@yahoo.com> Date: Mon Jun 7 21:44:33 2021 -0400 slimejelly a commit614c3192e5Author: Changelogs <action@github.com> Date: Tue Jun 8 00:43:09 2021 +0000 Automatic changelog compile [ci skip] commit26544ddbb7Author: bunny232 <bunnyracer23@yahoo.com> Date: Sun Jun 6 17:24:10 2021 -0400 21/79 not 20/80 commit7826ced174Author: bunny232 <bunnyracer23@yahoo.com> Date: Sun Jun 6 12:54:07 2021 -0400 Update effects_foam.dm commite24ecea492Author: Changelogs <action@github.com> Date: Sun Jun 6 00:41:17 2021 +0000 Automatic changelog compile [ci skip] commit697fffd347Merge:f3f5b0d605e4c01b3f74Author: Lin <linzolle@gmail.com> Date: Sat Jun 5 16:27:12 2021 -0500 Merge pull request #14792 from bunny232/meta-pool More reasonable SUCC for the meta pool drain. commitf3f5b0d605Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Sat Jun 5 16:26:23 2021 -0500 Automatic changelog generation for PR #14793 [ci skip] commit27d7b4b564Merge:06bcb7c904720966f31eAuthor: Lin <linzolle@gmail.com> Date: Sat Jun 5 16:26:21 2021 -0500 Merge pull request #14793 from bunny232/pool-fog Pools now get misty at warm insteaed of scalding commit06bcb7c904Merge:5f6cb40d16d3f6b69a86Author: Lin <linzolle@gmail.com> Date: Sat Jun 5 16:21:12 2021 -0500 Merge pull request #14795 from MrJWhit/boxstation-touchups2 Boxstation touchups2 commit7884ccf316Author: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Sat Jun 5 14:51:59 2021 +0200 Only 5 units are necessary, so why keep it at 10? I mean, this is the refining process commitbc56f74229Author: silicons <2003111+silicons@users.noreply.github.com> Date: Fri Jun 4 20:23:02 2021 -0700 Delete docker_publish.yml commit40f9941849Author: keronshb <keronshb@live.com> Date: Fri Jun 4 22:52:03 2021 -0400 Fixes invisibility when being dragged and glass table cheese commit5f6cb40d16Merge:4b3a4d99dc0dc1163a29Author: Lin <linzolle@gmail.com> Date: Fri Jun 4 21:37:42 2021 -0500 Merge pull request #14773 from Putnam3145/fix-activity-typo Fixes an activity display issue commit2db540aae3Author: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Fri Jun 4 20:53:34 2021 -0400 Update holodeck.dm commit4b3a4d99dcAuthor: Changelogs <action@github.com> Date: Sat Jun 5 00:48:25 2021 +0000 Automatic changelog compile [ci skip] commit560ce54d59Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Fri Jun 4 17:37:59 2021 -0500 Automatic changelog generation for PR #14763 [ci skip] commitb757e22956Merge:2ec1abe71e7dea33f6c2Author: Putnam3145 <putnam3145@gmail.com> Date: Fri Jun 4 15:37:57 2021 -0700 Merge pull request #14763 from zeroisthebiggay/dogears adds floppy dog ears that aren't obscenely dark commitd3f6b69a86Author: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Fri Jun 4 13:26:06 2021 -0400 Update BoxStation.dmm commit2ec1abe71eAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Fri Jun 4 12:13:39 2021 -0500 Automatic changelog generation for PR #14786 [ci skip] commita31c99e361Merge:9acd1ed386f631879b88Author: Lin <linzolle@gmail.com> Date: Fri Jun 4 12:13:36 2021 -0500 Merge pull request #14786 from Arturlang/fixes_float Fixes float() commit829944640eAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Fri Jun 4 09:24:15 2021 -0700 Update _flags.dm commit9acd1ed386Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Fri Jun 4 10:29:45 2021 -0500 Automatic changelog generation for PR #14788 [ci skip] commit4b3e33bb8aMerge:3fccc794832cfbee96eaAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Fri Jun 4 08:29:43 2021 -0700 Merge pull request #14788 from coderbus13/master Pubbystation toxins burn chamber fix commit3fccc79483Author: Changelogs <action@github.com> Date: Fri Jun 4 01:10:04 2021 +0000 Automatic changelog compile [ci skip] commit720966f31eAuthor: bunny232 <bunnyracer23@yahoo.com> Date: Thu Jun 3 19:10:46 2021 -0400 Misty~ commite4c01b3f74Author: bunny232 <bunnyracer23@yahoo.com> Date: Thu Jun 3 18:49:43 2021 -0400 Woopsie, right vars are set now commit4b5b6a9063Author: bunny232 <bunnyracer23@yahoo.com> Date: Thu Jun 3 18:38:59 2021 -0400 Update MetaStation.dmm commit2cfbee96eaAuthor: coderbus13 <31148848+coderbus13@users.noreply.github.com> Date: Thu Jun 3 01:09:41 2021 -0500 Delete temp commit9df9828666Author: coderbus13 <31148848+coderbus13@users.noreply.github.com> Date: Thu Jun 3 01:08:36 2021 -0500 Add files via upload commit8ca433fadbAuthor: coderbus13 <31148848+coderbus13@users.noreply.github.com> Date: Thu Jun 3 01:08:20 2021 -0500 Create temp commit8dff4fa301Author: coderbus13 <31148848+coderbus13@users.noreply.github.com> Date: Thu Jun 3 01:06:35 2021 -0500 Delete _maps/map_files/PubbyStation directory all my homies hate webedit commitef4ea8b0daAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 2 21:50:36 2021 -0500 Automatic changelog generation for PR #14772 [ci skip] commitc2c2825027Merge:36284922da9040c08698Author: Lin <linzolle@gmail.com> Date: Wed Jun 2 21:50:33 2021 -0500 Merge pull request #14772 from Putnam3145/fix-sniper-bad Makes sniper zooming work commit36284922daAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 2 20:23:09 2021 -0500 Automatic changelog generation for PR #14785 [ci skip] commit24f7576b92Merge:8a4c6c4cf4160882fb6cAuthor: Lin <linzolle@gmail.com> Date: Wed Jun 2 20:23:06 2021 -0500 Merge pull request #14785 from MrJWhit/metastation-fix Metastation atmos fix commit8a4c6c4cf4Author: Changelogs <action@github.com> Date: Thu Jun 3 01:12:16 2021 +0000 Automatic changelog compile [ci skip] commitc869f9b53aAuthor: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 2 19:44:57 2021 -0500 Automatic changelog generation for PR #14784 [ci skip] commit0ead4e0bbbMerge:5876399d14e08c10e5fbAuthor: Lin <linzolle@gmail.com> Date: Wed Jun 2 19:44:55 2021 -0500 Merge pull request #14784 from TripleShades/sigh-pubby Tiny Pubby Additions commit5876399d14Merge:b341c184b5f70d6b9ea5Author: Lin <linzolle@gmail.com> Date: Wed Jun 2 19:41:45 2021 -0500 Merge pull request #14723 from bunny232/delta-ce-office-update Delta ce office rearrangement commitb341c184b5Author: CitadelStationBot <citadelstationcommunity@gmail.com> Date: Wed Jun 2 19:41:25 2021 -0500 Automatic changelog generation for PR #14782 [ci skip] commit2b8ef762a7Merge:0fdfda7dc4fe9fdf0975Author: Lin <linzolle@gmail.com> Date: Wed Jun 2 19:41:23 2021 -0500 Merge pull request #14782 from MrJWhit/xenoruin-fix Fixing xenoruins floor commit0fdfda7dc4Merge:cb52be5dd90f0ad31aabAuthor: Lin <linzolle@gmail.com> Date: Wed Jun 2 19:40:59 2021 -0500 Merge pull request #14764 from MrJWhit/boxstation-touchups Touching up boxstation engineering commitb2e2c49011Author: DeltaFire <andreoxgrievous@gmail.com> Date: Wed Jun 2 17:47:57 2021 +0200 plasmamen & golems commit015bd3c338Author: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Wed Jun 2 17:22:46 2021 +0200 Armor for security armor and a small fix commitd8e31af507Author: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Wed Jun 2 15:31:19 2021 +0200 And the Icons themselves commit505dd3399fAuthor: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Wed Jun 2 15:30:13 2021 +0200 Inventory Icons commit5c827d9796Author: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Wed Jun 2 15:28:46 2021 +0200 Bit of that commit9cdc45a905Author: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Wed Jun 2 15:27:47 2021 +0200 Bit of this commitb563e6c2e0Author: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Wed Jun 2 15:25:50 2021 +0200 Splits Engineering and Security ORV Suits commitf631879b88Author: Artur <arturpaavooskari.lang@gmail.com> Date: Wed Jun 2 14:27:22 2021 +0300 fixes_float commit0d206742faAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Tue Jun 1 21:35:49 2021 -0700 Update world_topic.dm commit160882fb6cAuthor: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Tue Jun 1 21:48:22 2021 -0400 Update MetaStation.dmm commite08c10e5fbAuthor: TripleShades <MegaProto@gmx.com> Date: Tue Jun 1 17:00:16 2021 -0400 fucking pubby this should be everything commit0f01a4a7daAuthor: DeltaFire <andreoxgrievous@gmail.com> Date: Tue Jun 1 22:52:39 2021 +0200 huh commitdd33371a3bAuthor: DeltaFire <andreoxgrievous@gmail.com> Date: Tue Jun 1 22:48:57 2021 +0200 colors commitfe9fdf0975Author: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Tue Jun 1 11:26:46 2021 -0400 Update lavaland_surface_alien_nest.dmm commit656d0545cdAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Tue Jun 1 01:32:54 2021 -0700 Update world_topic.dm commitf9be173f08Author: keronshb <keronshb@live.com> Date: Mon May 31 22:25:32 2021 -0400 Fixes the shoes? Maybe? commit70926f5dafMerge:e0a1e50927cb52be5dd9Author: keronshb <keronshb@live.com> Date: Mon May 31 22:21:34 2021 -0400 Merge remote-tracking branch 'upstream/master' into floorcluwneport commit84db564e0fAuthor: Arturlang <arturpaavooskari.lang@gmail.com> Date: Tue Jun 1 02:25:06 2021 +0300 Prettier? code commit4b541d3dacAuthor: Arturlang <arturpaavooskari.lang@gmail.com> Date: Tue Jun 1 02:21:33 2021 +0300 phonecode commit8687312935Author: Artur <arturpaavooskari.lang@gmail.com> Date: Mon May 31 18:14:06 2021 +0300 Makes orbit menu show antags if DNR commite69729beb4Author: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Mon May 31 12:15:16 2021 +0200 So he doesn't need sodium thiopental after all. Turns out Furranium has a knockdown. commitdd6452ad5bAuthor: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Mon May 31 10:11:12 2021 +0200 Fixes the file? Please? commitb3851a4647Author: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Mon May 31 10:01:13 2021 +0200 Adds the event to the game so it actually loads, oops commit249d23a6ccAuthor: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Mon May 31 09:52:31 2021 +0200 Fixed something with the event commitf70d6b9ea5Author: bunny232 <bunnyracer23@yahoo.com> Date: Mon May 31 01:52:43 2021 -0400 dir = 1 and adds a forgotten fire alarm. commitff379e41b6Author: bunny232 <bunnyracer23@yahoo.com> Date: Mon May 31 01:47:49 2021 -0400 Think map preview think! commit398491b584Author: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Mon May 31 00:42:33 2021 +0200 It's on the nose but here's a sound for the spawn. commit2516afbbbaAuthor: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Mon May 31 00:41:59 2021 +0200 Cat Surgeon Event If I did it right, thanks Keron! commitae2970f318Author: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Sun May 30 21:17:03 2021 +0200 Adds a special Catranq Dart commitdf0e1057d1Author: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Sun May 30 21:15:44 2021 +0200 Imagine this crazy person became a threat suddenly commit5563ed1492Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun May 30 17:06:12 2021 +0000 Bump ws from 7.4.3 to 7.4.6 in /tgui Bumps [ws](https://github.com/websockets/ws) from 7.4.3 to 7.4.6. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](https://github.com/websockets/ws/compare/7.4.3...7.4.6) Signed-off-by: dependabot[bot] <support@github.com> commit0dc1163a29Author: Putnam <putnam3145@gmail.com> Date: Sun May 30 00:44:02 2021 -0700 adds a sorely needed line break commit9040c08698Author: Putnam <putnam3145@gmail.com> Date: Sun May 30 00:38:07 2021 -0700 whoops i forgot the var commit2ab05d1247Author: Putnam <putnam3145@gmail.com> Date: Sun May 30 00:31:20 2021 -0700 makes sniper zooming work commit25fe97e8feAuthor: keronshb <keronshb@live.com> Date: Sat May 29 13:21:23 2021 -0400 Lets Disposal pipes work on the cargo shuttle again Silly removal. commit71db9298a1Author: silicons <2003111+silicons@users.noreply.github.com> Date: Fri May 28 18:21:46 2021 -0700 Update world_topic.dm commitc1a9f9cfe9Author: keronshb <keronshb@live.com> Date: Fri May 28 17:40:43 2021 -0400 GLOW ANIMATION commit86a825bb9fAuthor: keronshb <keronshb@live.com> Date: Fri May 28 15:57:16 2021 -0400 Space Adapt outline commitb1b931a7c4Author: silicons <2003111+silicons@users.noreply.github.com> Date: Thu May 27 22:48:24 2021 -0700 Update _bodyparts.dm commited86a6628aAuthor: Linzolle <linzolle@gmail.com> Date: Thu May 27 19:53:55 2021 -0500 THIS SHOULD REALLY BE THE OTHER WAY AROUND commit0cf7c5070dAuthor: Linzolle <linzolle@gmail.com> Date: Thu May 27 19:45:12 2021 -0500 parentheses commit46833abf0bAuthor: Linzolle <linzolle@gmail.com> Date: Thu May 27 19:34:00 2021 -0500 add cult_permitted area flag commit0f0ad31aabAuthor: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Thu May 27 17:58:21 2021 -0400 Update BoxStation.dmm commit7dea33f6c2Author: zerothebigboy <cookiesvvww@gmail.com> Date: Thu May 27 16:08:28 2021 -0400 doge commitf7ca7d7afeMerge:f4ba3aa688bff21669e3Author: keronshb <keronshb@live.com> Date: Thu May 27 13:29:08 2021 -0400 Merge remote-tracking branch 'upstream/master' commite0a1e50927Author: keronshb <keronshb@live.com> Date: Thu May 27 13:25:27 2021 -0400 Fixes the linter commit482b679937Author: keronshb <keronshb@live.com> Date: Thu May 27 12:24:16 2021 -0400 Should fix the linter? commit2eeb6ede1eAuthor: DrPainis <79603707+DrPainis@users.noreply.github.com> Date: Thu May 27 12:20:54 2021 -0400 lowers cat meteor threat and makes them use the cat meteor sprite commit903ff69621Author: DrPainis <79603707+DrPainis@users.noreply.github.com> Date: Thu May 27 12:19:51 2021 -0400 adds a sprite for cat meteors (it's just a copy of the space cat sprite) commitd42fb1ae90Author: DrPainis <79603707+DrPainis@users.noreply.github.com> Date: Thu May 27 12:17:41 2021 -0400 makes cat meteors significantly rarer than meaty ores commit8f1db2d5ecAuthor: keronshb <keronshb@live.com> Date: Thu May 27 12:16:54 2021 -0400 Fixes some stuff Actually ticks the spell, fixes the brain damage issue, etc. commit1ce8ffba11Author: DrPainis <79603707+DrPainis@users.noreply.github.com> Date: Thu May 27 11:48:09 2021 -0400 fixes the typepath for cat meteors commit11a6cfd99cAuthor: bunny232 <bunnyracer23@yahoo.com> Date: Thu May 27 03:27:10 2021 -0400 Delta station ce office, now with less microwave slaughter. commit1b8ef53014Author: DrPainis <79603707+DrPainis@users.noreply.github.com> Date: Thu May 27 00:55:41 2021 -0400 maybe makes this compile commitcbb7673e79Author: DrPainis <79603707+DrPainis@users.noreply.github.com> Date: Thu May 27 00:30:29 2021 -0400 Adds the actual event. Yes, cat meteors have the same announcement as carp. commit98d5499712Author: DrPainis <79603707+DrPainis@users.noreply.github.com> Date: Thu May 27 00:25:55 2021 -0400 adds the cat wave_type commitd199f0585aAuthor: DrPainis <79603707+DrPainis@users.noreply.github.com> Date: Thu May 27 00:23:24 2021 -0400 adds cat meteors because funny commit7dbab19597Author: keronshb <keronshb@live.com> Date: Thu May 27 00:14:43 2021 -0400 Fixes the linters and adds a proper async commit78db6bd5c2Author: keronshb <keronshb@live.com> Date: Wed May 26 21:58:35 2021 -0400 Ports Floor Cluwnes Oh fuck oh god commit71a8c08e22Author: Arturlang <arturpaavooskari.lang@gmail.com> Date: Wed May 26 18:40:59 2021 +0300 A lil more commit673a322cbbAuthor: Artur <arturpaavooskari.lang@gmail.com> Date: Wed May 26 18:29:18 2021 +0300 changes cost of two uplink items commit9e3c1ff860Author: keronshb <keronshb@live.com> Date: Mon May 24 22:46:59 2021 -0400 adds floor cluwnes from yog commit7dab80cbb7Author: DrPainis <79603707+DrPainis@users.noreply.github.com> Date: Sun May 23 23:42:16 2021 -0400 fuck commit51911e1f27Author: DrPainis <79603707+DrPainis@users.noreply.github.com> Date: Sun May 23 23:36:11 2021 -0400 adds the recipe for goliath calamari commita7add64905Author: DrPainis <79603707+DrPainis@users.noreply.github.com> Date: Sun May 23 23:29:25 2021 -0400 adds a lazily made sprite for goliath calamari I suck at spriting so this is the best I could do. commitce1b170b46Author: DrPainis <79603707+DrPainis@users.noreply.github.com> Date: Sun May 23 23:27:48 2021 -0400 adds goliath calamari commit7458909970Author: keronshb <keronshb@live.com> Date: Sun May 23 13:36:03 2021 -0400 Switched heated screws to solder. commit8787caccbaAuthor: keronshb <keronshb@live.com> Date: Sat May 22 14:12:31 2021 -0400 Fixes the roundstart deconstruction issue commitbd05dd29b6Author: keronshb <keronshb@live.com> Date: Sat May 22 13:58:01 2021 -0400 ReinforcedPlasmaSteps Adds more steps for deconning stronger windows commit0dd24d9de9Author: silicons <2003111+silicons@users.noreply.github.com> Date: Fri May 21 19:35:46 2021 -0700 Update world_topic.dm commitf07d832cadAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Fri May 21 18:20:28 2021 -0700 Update world_topic.dm commit538efd2d8fAuthor: keronshb <keronshb@live.com> Date: Wed May 19 20:01:11 2021 -0400 Alt Click and Alt Click message commit88dc0821d1Author: keronshb <keronshb@live.com> Date: Wed May 19 19:49:48 2021 -0400 User gibs when being turned into a spess dragon commit0f7c71cfdbAuthor: keronshb <keronshb@live.com> Date: Wed May 19 19:16:24 2021 -0400 trailing endline commit1d843cc72fAuthor: keronshb <keronshb@live.com> Date: Wed May 19 19:19:35 2021 -0400 Part 3 - the missing stuff commitb19fb1cfa8Author: keronshb <keronshb@live.com> Date: Wed May 19 19:18:50 2021 -0400 Part 2 with Sprites commita15637a929Author: keronshb <keronshb@live.com> Date: Wed May 19 19:18:19 2021 -0400 Part 1 of Health Bars for Space Dragon commitf4780d4b5aAuthor: keronshb <keronshb@live.com> Date: Wed May 19 11:19:12 2021 -0400 Correct Raw Prophet recipe commit547b3d0a0bAuthor: keronshb <keronshb@live.com> Date: Wed May 19 11:15:48 2021 -0400 TP finally works commitb8b25662ffAuthor: keronshb <keronshb@live.com> Date: Tue May 18 22:12:02 2021 -0400 Couple of fixes, almost ready to go commitd2f69acaf8Author: keronshb <keronshb@live.com> Date: Tue May 18 12:06:32 2021 -0400 Space Dragon Event Ports the Space Dragon event commitf802890153Author: silicons <2003111+silicons@users.noreply.github.com> Date: Sun May 16 22:17:50 2021 -0700 Update world_topic.dm commit8ff0685f0dAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sat May 15 18:28:00 2021 -0700 Update world_topic.dm commit3ae3caa14aAuthor: bunny232 <bunnyracer23@yahoo.com> Date: Fri May 14 18:05:24 2021 -0400 Update DeltaStation2.dmm commit94bd7308aeAuthor: bunny232 <bunnyracer23@yahoo.com> Date: Fri May 14 17:38:55 2021 -0400 Update DeltaStation2.dmm commitbc35ffeaa2Author: keronshb <keronshb@live.com> Date: Fri May 14 12:35:53 2021 -0400 [READY] Space Dragon Quality Improvement Update (#57942) qol: Space Dragon's gust attack is now tied to right click instead of an ability button balance: Space Dragon has received numerous balance changes, most notably that Space Dragon will stall the shuttle until it loses or completes its objectives fix: Fixed numerous bugs with Space Dragon, most notably the rifts not vanishing after Space Dragon's death soundadd: Space Dragon now has a custom roar for dying and winning imagedel: Deleted now unused Space Dragon ability icon refactor: Space Dragon's speed changes are now controlled using movespeed modifiers instead of direct speed adjustments Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> commit0b06957dc7Author: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sat Mar 6 02:13:11 2021 +0100 Space Dragons are now actually capable of flight. (#57428) * Space Dragons are now actually capable of flight. * Gives them the tag so the flying animation doesn't apply, it looks like shit without this commita6ae645fc2Author: keronshb <keronshb@live.com> Date: Fri May 14 12:32:48 2021 -0400 Space Dragon Fixes (#55759) commit3aa72f7d31Author: keronshb <keronshb@live.com> Date: Fri May 14 12:31:42 2021 -0400 Space Dragon QOL and Additional Features (#54124) Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com> commit7e5a44cbd6Author: keronshb <keronshb@live.com> Date: Fri May 14 12:28:59 2021 -0400 Minor refactor to space dragon code to fix various bugs and issues (#53944) commit2eba3ae383Author: keronshb <keronshb@live.com> Date: Fri May 14 12:27:03 2021 -0400 [READY]New Side Antagonist: Space Dragon (#42551) * Add files via upload * Rename space_dragon.dm to code/modules/events/space_dragon.dm * Adds Space Dragon * Adds Space Dragon Event * Remove Copied File * Put antagonist definition in proper location for space dragon * Update space_dragon.dm * Removed passive health regen from space dragon * Updated Weight and Earliness for Space Dragon * Added Objective to Space Dragon, Updated Starting Blurb * Cleaned Up the Objective Determiner * Actually fix the space dragon objectives * Fix the objective display for the space dragon's target * Updated Space Dragon Intro Blurb * Updated Centcom Message When Space Dragon Spawns * Updated Space Dragon's description with new lore * Clean Up Space Dragon's OnFire() * Add Space Dragon Sprites * Sprite in wrong location * Properly adds Space Dragon Sprites * Adds Space Dragon Tiny Sprite to be Carp * Space Dragon Uses New Sprites, Tiny Form Updated * Increased Time Til' Dragon Spawn * Drake's Tail Sweep Now Uses Prebuilt Spell Thanks to Cobblestone for the head's up on this. commitef470a3bafAuthor: keronshb <keronshb@live.com> Date: Thu May 13 13:37:35 2021 -0400 Fixes Void Robes for Digi legs commitbdd42c728dAuthor: keronshb <keronshb@live.com> Date: Thu May 13 13:21:34 2021 -0400 Adds a missing space commit55ee9a00b4Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed May 12 18:24:26 2021 -0700 woo yeah woo yeah commit8e2921f3c0Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed May 12 17:36:01 2021 -0700 woo commit59f160be57Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed May 12 16:59:48 2021 -0700 woo commit2a3a45573fAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed May 12 16:58:17 2021 -0700 woo commit6237928c4bAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed May 12 16:55:21 2021 -0700 woo commit0b9d021d9bAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed May 12 16:51:28 2021 -0700 woo commit482be2ee0dAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed May 12 16:37:13 2021 -0700 okay commit611dca2776Author: keronshb <keronshb@live.com> Date: Wed May 12 17:04:10 2021 -0400 New Line at End of file commit21ca62a2e2Author: keronshb <keronshb@live.com> Date: Wed May 12 14:54:44 2021 -0400 FINALLY fixes the comma, I think Time to try commit0841cea1d5Author: keronshb <keronshb@live.com> Date: Wed May 12 13:17:23 2021 -0400 I still have no idea what's messing with this commit3fb84eb1d8Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed May 12 03:35:02 2021 -0700 fix commitaeefeb6c53Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed May 12 03:33:41 2021 -0700 woo commit0185007e6cAuthor: keronshb <keronshb@live.com> Date: Tue May 11 19:33:53 2021 -0400 adding ; to line 25 commit0cb6f2469bAuthor: keronshb <keronshb@live.com> Date: Tue May 11 18:39:36 2021 -0400 Have no idea... commit8c7c41bfd4Author: keronshb <keronshb@live.com> Date: Tue May 11 18:17:41 2021 -0400 Fixes the comma, I think commit1de8b69312Author: keronshb <keronshb@live.com> Date: Tue May 11 18:10:27 2021 -0400 Fixes the linter Fixes the linter commit79f5feea9fMerge:4749be2ba882b6443928Author: keronshb <keronshb@live.com> Date: Tue May 11 17:58:41 2021 -0400 Merge remote-tracking branch 'upstream/master' into hereticadjustments commit4749be2ba8Author: keronshb <keronshb@live.com> Date: Tue May 11 16:52:16 2021 -0400 Final rework Last part. commit57dfe8dc09Author: keronshb <keronshb@live.com> Date: Mon May 10 21:12:45 2021 -0400 New Reality when one disappears Spawns in a new reality when one disappears. commitcda492c6baAuthor: keronshb <keronshb@live.com> Date: Sun May 9 20:10:38 2021 -0400 Removes the condition if they're knocked down commit82e4421cdeAuthor: keronshb <keronshb@live.com> Date: Sun May 9 20:01:30 2021 -0400 Ports Break in hand from tg 58526 commit11a7e118feAuthor: keronshb <keronshb@live.com> Date: Fri May 7 23:58:09 2021 -0400 Puts off balance duration to 2 seconds Might be better at 2. commit7947258e51Author: keronshb <keronshb@live.com> Date: Wed May 5 23:57:01 2021 -0400 Off balance disarm If it hits a wall or a person while under the effect of off balance. commitbe2e962983Author: keronshb <keronshb@live.com> Date: Tue May 4 00:51:16 2021 -0400 Off Balance for Guns only again Was intended for guns commit4289b8be1eMerge:78a9cdc5c60c803e0232Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Apr 28 22:34:17 2021 -0700 Merge remote-tracking branch 'citadel/master' into backend_sync commit78a9cdc5c6Merge:7cc6bba5ff810eba15edAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Apr 28 22:32:58 2021 -0700 Merge remote-tracking branch 'citadel/master' into backend_sync commit7cc6bba5ffAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Apr 28 22:27:09 2021 -0700 fixes commit456b55cb06Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Apr 28 22:25:39 2021 -0700 that too commit80a8467e9eAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Apr 28 22:24:49 2021 -0700 hm commitfefb33454fAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Apr 28 16:16:55 2021 -0700 do that too commitc3d91f01dbAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Apr 28 07:20:54 2021 -0700 scripts commitd06c33bd8dAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Apr 28 07:17:34 2021 -0700 restore cit stuff commit3f09460b6eAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Apr 28 07:04:29 2021 -0700 let's do that commit488a6a6927Author: silicons <2003111+silicons@users.noreply.github.com> Date: Wed Apr 28 07:02:26 2021 -0700 woops commit375da54dc2Merge:133f3d55d2810eba15edAuthor: EmeraldSundisk <51142887+EmeraldSundisk@users.noreply.github.com> Date: Tue Apr 27 10:34:29 2021 -0700 Merge pull request #78 from Citadel-Station-13/master 4/27 commit50831a9c73Author: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Apr 25 16:40:33 2021 -0700 fixes commit47bd3c6c7cAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Apr 25 16:22:46 2021 -0700 ok commit7919f09160Merge:1dbd86499c44c2a9eecdAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Apr 25 16:21:20 2021 -0700 Merge remote-tracking branch 'citadel/master' into backend_sync commit1dbd86499cAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Apr 25 16:18:41 2021 -0700 others commitd017d7df66Author: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Apr 25 16:16:38 2021 -0700 let's do that commit9e123db32aAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Apr 25 16:15:25 2021 -0700 ok commit990e74179aAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Apr 25 16:09:41 2021 -0700 other thing commit9933a917acAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Apr 25 16:08:33 2021 -0700 ? commitfdafe0fb84Author: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Apr 25 15:57:32 2021 -0700 vscode commit12894384ffAuthor: silicons <2003111+silicons@users.noreply.github.com> Date: Sun Apr 25 14:17:37 2021 -0700 okay commit475a7d2499Author: keronshb <keronshb@live.com> Date: Wed Apr 14 18:01:17 2021 -0400 Icon fixes Should fix the merge conflict commit20c190c17dMerge:bb047bd57e4d797ab694Author: keronshb <keronshb@live.com> Date: Wed Apr 14 17:55:24 2021 -0400 Merge remote-tracking branch 'upstream/master' into motivation commitbb047bd57eAuthor: keronshb <keronshb@live.com> Date: Wed Apr 14 17:54:33 2021 -0400 dunno why this is here dunno why this is here commit133f3d55d2Merge:624b5a9707d4d3eea5aaAuthor: EmeraldSundisk <51142887+EmeraldSundisk@users.noreply.github.com> Date: Mon Apr 12 22:26:26 2021 -0700 Merge pull request #77 from Citadel-Station-13/master 4/12 commit624b5a9707Merge:98e3464604b6b9619f2dAuthor: EmeraldSundisk <51142887+EmeraldSundisk@users.noreply.github.com> Date: Fri Apr 9 16:40:36 2021 -0700 Merge pull request #75 from Citadel-Station-13/master 4/9 commit41530110a2Author: keronshb <keronshb@live.com> Date: Wed Feb 10 20:00:17 2021 -0500 LINTER AHHHH NEW LINE commit827b4efb42Author: keronshb <keronshb@live.com> Date: Fri Jan 29 13:42:07 2021 -0500 Fixes ANOTHER merge conflict agony commitae970d5b22Merge:26dfff87fcc8dc669e58Author: keronshb <keronshb@live.com> Date: Fri Jan 29 13:38:11 2021 -0500 Merge remote-tracking branch 'origin/master' into motivation commit26dfff87fcAuthor: keronshb <keronshb@live.com> Date: Fri Jan 29 13:17:46 2021 -0500 Slight stat buffs, adds parries and comments Should be pretty close to 20tc worthy. commit4346cb937aAuthor: keronshb <keronshb@live.com> Date: Fri Jan 29 09:32:28 2021 -0500 Fixes merge conflict and makes minor adjustments TItle commita4e933185eMerge:5761417e5b4d945d5f15Author: keronshb <keronshb@live.com> Date: Fri Jan 29 09:29:55 2021 -0500 Merge remote-tracking branch 'origin/master' into motivation commit5761417e5bAuthor: keronshb <keronshb@live.com> Date: Thu Jan 28 22:21:20 2021 -0500 Adding it to traitors Here it is! commita6725b3c23Author: keronshb <keronshb@live.com> Date: Thu Jan 28 22:06:25 2021 -0500 Motivation near final Should be almost done after this. commita2833ea85fAuthor: keronshb <keronshb@live.com> Date: Tue Jan 26 13:27:06 2021 -0500 Movitation WIP WIP still working on this
1720 lines
62 KiB
Plaintext
1720 lines
62 KiB
Plaintext
/client/proc/cmd_admin_drop_everything(mob/M in GLOB.mob_list)
|
|
set category = null
|
|
set name = "Drop Everything"
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/confirm = alert(src, "Make [M] drop everything?", "Message", "Yes", "No")
|
|
if(confirm != "Yes")
|
|
return
|
|
|
|
for(var/obj/item/W in M)
|
|
if(!M.dropItemToGround(W))
|
|
qdel(W)
|
|
M.regenerate_icons()
|
|
|
|
log_admin("[key_name(usr)] made [key_name(M)] drop everything!")
|
|
var/msg = "[key_name_admin(usr)] made [ADMIN_LOOKUPFLW(M)] drop everything!"
|
|
message_admins(msg)
|
|
admin_ticket_log(M, msg)
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Drop Everything") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_admin_subtle_message(mob/M in GLOB.mob_list)
|
|
set category = "Admin.Events"
|
|
set name = "Subtle Message"
|
|
|
|
if(!ismob(M))
|
|
return
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
message_admins("[key_name_admin(src)] has started answering [ADMIN_LOOKUPFLW(M)]'s prayer.")
|
|
var/msg = input("Message:", text("Subtle PM to [M.key]")) as text|null
|
|
|
|
if (!msg)
|
|
message_admins("[key_name_admin(src)] decided not to answer [ADMIN_LOOKUPFLW(M)]'s prayer")
|
|
return
|
|
if(usr)
|
|
if (usr.client)
|
|
if(usr.client.holder)
|
|
to_chat(M, "<i>You hear a voice in your head... <b>[msg]</i></b>")
|
|
|
|
log_admin("SubtlePM: [key_name(usr)] -> [key_name(M)] : [msg]")
|
|
msg = "<span class='adminnotice'><b> SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] :</b> [msg]</span>"
|
|
message_admins(msg)
|
|
admin_ticket_log(M, msg)
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Subtle Message") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_admin_headset_message(mob/M in GLOB.mob_list)
|
|
set category = "Admin.Events"
|
|
set name = "Headset Message"
|
|
|
|
admin_headset_message(M)
|
|
|
|
/client/proc/admin_headset_message(mob/M in GLOB.mob_list, sender = null)
|
|
var/mob/living/carbon/human/H = M
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
if(!istype(H))
|
|
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
|
|
return
|
|
if(!istype(H.ears, /obj/item/radio/headset))
|
|
to_chat(usr, "The person you are trying to contact is not wearing a headset.")
|
|
return
|
|
|
|
if (!sender)
|
|
sender = input("Who is the message from?", "Sender") as null|anything in list(RADIO_CHANNEL_CENTCOM,RADIO_CHANNEL_SYNDICATE)
|
|
if(!sender)
|
|
return
|
|
|
|
message_admins("[key_name_admin(src)] has started answering [key_name_admin(H)]'s [sender] request.")
|
|
var/input = input("Please enter a message to reply to [key_name(H)] via their headset.","Outgoing message from [sender]", "") as text|null
|
|
if(!input)
|
|
message_admins("[key_name_admin(src)] decided not to answer [key_name_admin(H)]'s [sender] request.")
|
|
return
|
|
|
|
log_directed_talk(mob, H, input, LOG_ADMIN, "reply")
|
|
message_admins("[key_name_admin(src)] replied to [key_name_admin(H)]'s [sender] message with: \"[input]\"")
|
|
to_chat(H, "You hear something crackle in your ears for a moment before a voice speaks. \"Please stand by for a message from [sender == "Syndicate" ? "your benefactor" : "Central Command"]. Message as follows[sender == "Syndicate" ? ", agent." : ":"] <span class='bold'>[input].</span> Message ends.\"")
|
|
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Headset Message") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_admin_mod_antag_rep(client/C in GLOB.clients, var/operation)
|
|
set category = "Special Verbs"
|
|
set name = "Modify Antagonist Reputation"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/msg = ""
|
|
var/log_text = ""
|
|
|
|
if(operation == "zero")
|
|
log_text = "Set to 0"
|
|
SSpersistence.antag_rep -= C.ckey
|
|
else
|
|
var/prompt = "Please enter the amount of reputation to [operation]:"
|
|
|
|
if(operation == "set")
|
|
prompt = "Please enter the new reputation value:"
|
|
|
|
msg = input("Message:", prompt) as num|null
|
|
|
|
if (!msg)
|
|
return
|
|
|
|
var/ANTAG_REP_MAXIMUM = CONFIG_GET(number/antag_rep_maximum)
|
|
|
|
if(operation == "set")
|
|
log_text = "Set to [num2text(msg)]"
|
|
SSpersistence.antag_rep[C.ckey] = max(0, min(msg, ANTAG_REP_MAXIMUM))
|
|
else if(operation == "add")
|
|
log_text = "Added [num2text(msg)]"
|
|
SSpersistence.antag_rep[C.ckey] = min(SSpersistence.antag_rep[C.ckey]+msg, ANTAG_REP_MAXIMUM)
|
|
else if(operation == "subtract")
|
|
log_text = "Subtracted [num2text(msg)]"
|
|
SSpersistence.antag_rep[C.ckey] = max(SSpersistence.antag_rep[C.ckey]-msg, 0)
|
|
else
|
|
to_chat(src, "Invalid operation for antag rep modification: [operation] by user [key_name(usr)]")
|
|
return
|
|
|
|
if(SSpersistence.antag_rep[C.ckey] <= 0)
|
|
SSpersistence.antag_rep -= C.ckey
|
|
|
|
log_admin("[key_name(usr)]: Modified [key_name(C)]'s antagonist reputation [log_text]")
|
|
message_admins("<span class='adminnotice'>[key_name_admin(usr)]: Modified [key_name(C)]'s antagonist reputation ([log_text])</span>")
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Modify Antagonist Reputation") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_admin_world_narrate()
|
|
set category = "Admin.Events"
|
|
set name = "Global Narrate"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/msg = input("Message:", text("Enter the text you wish to appear to everyone:")) as text|null
|
|
|
|
if (!msg)
|
|
return
|
|
to_chat(world, "[msg]")
|
|
log_admin("GlobalNarrate: [key_name(usr)] : [msg]")
|
|
message_admins("<span class='adminnotice'>[key_name_admin(usr)] Sent a global narrate</span>")
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Global Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_admin_direct_narrate(mob/M)
|
|
set category = "Admin.Events"
|
|
set name = "Direct Narrate"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
if(!M)
|
|
M = input("Direct narrate to whom?", "Active Players") as null|anything in GLOB.player_list
|
|
|
|
if(!M)
|
|
return
|
|
|
|
var/msg = input("Message:", text("Enter the text you wish to appear to your target:")) as text|null
|
|
|
|
if( !msg )
|
|
return
|
|
|
|
to_chat(M, msg)
|
|
log_admin("DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]")
|
|
msg = "<span class='adminnotice'><b> DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]):</b> [msg]<BR></span>"
|
|
message_admins(msg)
|
|
admin_ticket_log(M, msg)
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Direct Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_admin_local_narrate(atom/A)
|
|
set category = "Admin.Events"
|
|
set name = "Local Narrate"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
if(!A)
|
|
return
|
|
var/range = input("Range:", "Narrate to mobs within how many tiles:", 7) as num|null
|
|
if(!range)
|
|
return
|
|
var/msg = input("Message:", text("Enter the text you wish to appear to everyone within view:")) as text|null
|
|
if (!msg)
|
|
return
|
|
for(var/mob/M in view(range,A))
|
|
to_chat(M, msg)
|
|
|
|
log_admin("LocalNarrate: [key_name(usr)] at [AREACOORD(A)]: [msg]")
|
|
message_admins("<span class='adminnotice'><b> LocalNarrate: [key_name_admin(usr)] at [ADMIN_VERBOSEJMP(A)]:</b> [msg]<BR></span>")
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Local Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_admin_godmode(mob/M in GLOB.mob_list)
|
|
set category = "Admin.Game"
|
|
set name = "Godmode"
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
M.status_flags ^= GODMODE
|
|
to_chat(usr, "<span class='adminnotice'>Toggled [(M.status_flags & GODMODE) ? "ON" : "OFF"]</span>")
|
|
|
|
log_admin("[key_name(usr)] has toggled [key_name(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]")
|
|
var/msg = "[key_name_admin(usr)] has toggled [ADMIN_LOOKUPFLW(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]"
|
|
message_admins(msg)
|
|
admin_ticket_log(M, msg)
|
|
SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Godmode", "[M.status_flags & GODMODE ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
|
|
/proc/cmd_admin_mute(whom, mute_type, automute = 0)
|
|
if(!whom)
|
|
return
|
|
|
|
var/muteunmute
|
|
var/mute_string
|
|
var/feedback_string
|
|
switch(mute_type)
|
|
if(MUTE_IC)
|
|
mute_string = "IC (say and emote)"
|
|
feedback_string = "IC"
|
|
if(MUTE_OOC)
|
|
mute_string = "OOC"
|
|
feedback_string = "OOC"
|
|
if(MUTE_PRAY)
|
|
mute_string = "pray"
|
|
feedback_string = "Pray"
|
|
if(MUTE_ADMINHELP)
|
|
mute_string = "adminhelp, admin PM and ASAY"
|
|
feedback_string = "Adminhelp"
|
|
if(MUTE_DEADCHAT)
|
|
mute_string = "deadchat and DSAY"
|
|
feedback_string = "Deadchat"
|
|
if(MUTE_ALL)
|
|
mute_string = "everything"
|
|
feedback_string = "Everything"
|
|
else
|
|
return
|
|
|
|
var/client/C
|
|
if(istype(whom, /client))
|
|
C = whom
|
|
else if(istext(whom))
|
|
C = GLOB.directory[whom]
|
|
else
|
|
return
|
|
|
|
var/datum/preferences/P
|
|
if(C)
|
|
P = C.prefs
|
|
else
|
|
P = GLOB.preferences_datums[whom]
|
|
if(!P)
|
|
return
|
|
|
|
if(automute)
|
|
if(!CONFIG_GET(flag/automute_on))
|
|
return
|
|
else
|
|
if(!check_rights())
|
|
return
|
|
|
|
if(automute)
|
|
muteunmute = "auto-muted"
|
|
P.muted |= mute_type
|
|
log_admin("SPAM AUTOMUTE: [muteunmute] [key_name(whom)] from [mute_string]")
|
|
message_admins("SPAM AUTOMUTE: [muteunmute] [key_name_admin(whom)] from [mute_string].")
|
|
if(C)
|
|
to_chat(C, "You have been [muteunmute] from [mute_string] by the SPAM AUTOMUTE system. Contact an admin.")
|
|
SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Auto Mute [feedback_string]", "1")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
return
|
|
|
|
if(P.muted & mute_type)
|
|
muteunmute = "unmuted"
|
|
P.muted &= ~mute_type
|
|
else
|
|
muteunmute = "muted"
|
|
P.muted |= mute_type
|
|
|
|
log_admin("[key_name(usr)] has [muteunmute] [key_name(whom)] from [mute_string]")
|
|
message_admins("[key_name_admin(usr)] has [muteunmute] [key_name_admin(whom)] from [mute_string].")
|
|
if(C)
|
|
to_chat(C, "You have been [muteunmute] from [mute_string] by [key_name(usr, include_name = FALSE)].")
|
|
SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Mute [feedback_string]", "[P.muted & mute_type]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
|
|
//I use this proc for respawn character too. /N
|
|
/proc/create_xeno(ckey)
|
|
if(!ckey)
|
|
var/list/candidates = list()
|
|
for(var/mob/M in GLOB.player_list)
|
|
if(M.stat != DEAD)
|
|
continue //we are not dead!
|
|
if(!(ROLE_ALIEN in M.client.prefs.be_special))
|
|
continue //we don't want to be an alium
|
|
if(M.client.is_afk())
|
|
continue //we are afk
|
|
if(M.mind && M.mind.current && M.mind.current.stat != DEAD)
|
|
continue //we have a live body we are tied to
|
|
candidates += M.ckey
|
|
if(candidates.len)
|
|
ckey = input("Pick the player you want to respawn as a xeno.", "Suitable Candidates") as null|anything in candidates
|
|
else
|
|
to_chat(usr, "<span class='danger'>Error: create_xeno(): no suitable candidates.</span>")
|
|
if(!istext(ckey))
|
|
return 0
|
|
|
|
var/alien_caste = input(usr, "Please choose which caste to spawn.","Pick a caste",null) as null|anything in list("Queen","Praetorian","Hunter","Sentinel","Drone","Larva")
|
|
var/obj/effect/landmark/spawn_here = GLOB.xeno_spawn.len ? pick(GLOB.xeno_spawn) : null
|
|
var/mob/living/carbon/alien/new_xeno
|
|
switch(alien_caste)
|
|
if("Queen")
|
|
new_xeno = new /mob/living/carbon/alien/humanoid/royal/queen(spawn_here)
|
|
if("Praetorian")
|
|
new_xeno = new /mob/living/carbon/alien/humanoid/royal/praetorian(spawn_here)
|
|
if("Hunter")
|
|
new_xeno = new /mob/living/carbon/alien/humanoid/hunter(spawn_here)
|
|
if("Sentinel")
|
|
new_xeno = new /mob/living/carbon/alien/humanoid/sentinel(spawn_here)
|
|
if("Drone")
|
|
new_xeno = new /mob/living/carbon/alien/humanoid/drone(spawn_here)
|
|
if("Larva")
|
|
new_xeno = new /mob/living/carbon/alien/larva(spawn_here)
|
|
else
|
|
return 0
|
|
if(!spawn_here)
|
|
SSjob.SendToLateJoin(new_xeno, FALSE)
|
|
|
|
new_xeno.ckey = ckey
|
|
var/msg = "<span class='notice'>[key_name_admin(usr)] has spawned [ckey] as a filthy xeno [alien_caste].</span>"
|
|
message_admins(msg)
|
|
admin_ticket_log(new_xeno, msg)
|
|
return 1
|
|
|
|
/*
|
|
If a guy was gibbed and you want to revive him, this is a good way to do so.
|
|
Works kind of like entering the game with a new character. Character receives a new mind if they didn't have one.
|
|
Traitors and the like can also be revived with the previous role mostly intact.
|
|
/N */
|
|
/client/proc/respawn_character()
|
|
set category = "Admin.Game"
|
|
set name = "Respawn Character"
|
|
set desc = "Respawn a person that has been gibbed/dusted/killed. They must be a ghost for this to work and preferably should not have a body to go back into."
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/input = ckey(input(src, "Please specify which key will be respawned.", "Key", ""))
|
|
if(!input)
|
|
return
|
|
|
|
var/mob/dead/observer/G_found
|
|
for(var/mob/dead/observer/G in GLOB.player_list)
|
|
if(G.ckey == input)
|
|
G_found = G
|
|
break
|
|
|
|
if(!G_found)//If a ghost was not found.
|
|
to_chat(usr, "<font color='red'>There is no active key like that in the game or the person is not currently a ghost.</font>")
|
|
return
|
|
|
|
if(G_found.mind && !G_found.mind.active) //mind isn't currently in use by someone/something
|
|
//Check if they were an alien
|
|
if(G_found.mind.assigned_role == ROLE_ALIEN)
|
|
if(alert("This character appears to have been an alien. Would you like to respawn them as such?",,"Yes","No")=="Yes")
|
|
var/turf/T
|
|
if(GLOB.xeno_spawn.len)
|
|
T = pick(GLOB.xeno_spawn)
|
|
|
|
var/mob/living/carbon/alien/new_xeno
|
|
switch(G_found.mind.special_role)//If they have a mind, we can determine which caste they were.
|
|
if("Hunter")
|
|
new_xeno = new /mob/living/carbon/alien/humanoid/hunter(T)
|
|
if("Sentinel")
|
|
new_xeno = new /mob/living/carbon/alien/humanoid/sentinel(T)
|
|
if("Drone")
|
|
new_xeno = new /mob/living/carbon/alien/humanoid/drone(T)
|
|
if("Praetorian")
|
|
new_xeno = new /mob/living/carbon/alien/humanoid/royal/praetorian(T)
|
|
if("Queen")
|
|
new_xeno = new /mob/living/carbon/alien/humanoid/royal/queen(T)
|
|
else//If we don't know what special role they have, for whatever reason, or they're a larva.
|
|
create_xeno(G_found.ckey)
|
|
return
|
|
|
|
if(!T)
|
|
SSjob.SendToLateJoin(new_xeno, FALSE)
|
|
|
|
//Now to give them their mind back.
|
|
G_found.mind.transfer_to(new_xeno) //be careful when doing stuff like this! I've already checked the mind isn't in use
|
|
G_found.transfer_ckey(new_xeno, FALSE)
|
|
to_chat(new_xeno, "You have been fully respawned. Enjoy the game.")
|
|
var/msg = "<span class='adminnotice'>[key_name_admin(usr)] has respawned [new_xeno.key] as a filthy xeno.</span>"
|
|
message_admins(msg)
|
|
admin_ticket_log(new_xeno, msg)
|
|
return //all done. The ghost is auto-deleted
|
|
|
|
//check if they were a monkey
|
|
else if(findtext(G_found.real_name,"monkey"))
|
|
if(alert("This character appears to have been a monkey. Would you like to respawn them as such?",,"Yes","No")=="Yes")
|
|
var/mob/living/carbon/monkey/new_monkey = new
|
|
SSjob.SendToLateJoin(new_monkey)
|
|
G_found.mind.transfer_to(new_monkey) //be careful when doing stuff like this! I've already checked the mind isn't in use
|
|
G_found.transfer_ckey(new_monkey, FALSE)
|
|
to_chat(new_monkey, "You have been fully respawned. Enjoy the game.")
|
|
var/msg = "<span class='adminnotice'>[key_name_admin(usr)] has respawned [new_monkey.key] as a filthy xeno.</span>"
|
|
message_admins(msg)
|
|
admin_ticket_log(new_monkey, msg)
|
|
return //all done. The ghost is auto-deleted
|
|
|
|
|
|
//Ok, it's not a xeno or a monkey. So, spawn a human.
|
|
var/mob/living/carbon/human/new_character = new//The mob being spawned.
|
|
SSjob.SendToLateJoin(new_character)
|
|
|
|
var/datum/data/record/record_found //Referenced to later to either randomize or not randomize the character.
|
|
if(G_found.mind && !G_found.mind.active) //mind isn't currently in use by someone/something
|
|
/*Try and locate a record for the person being respawned through GLOB.data_core.
|
|
This isn't an exact science but it does the trick more often than not.*/
|
|
var/id = md5("[G_found.real_name][G_found.mind.assigned_role]")
|
|
|
|
record_found = find_record("id", id, GLOB.data_core.locked)
|
|
|
|
if(record_found)//If they have a record we can determine a few things.
|
|
new_character.real_name = record_found.fields["name"]
|
|
new_character.gender = record_found.fields["gender"]
|
|
new_character.age = record_found.fields["age"]
|
|
new_character.hardset_dna(record_found.fields["identity"], record_found.fields["enzymes"], null, record_found.fields["name"], record_found.fields["blood_type"], new record_found.fields["species"], record_found.fields["features"])
|
|
else
|
|
var/datum/preferences/A = new()
|
|
A.copy_to(new_character)
|
|
A.real_name = G_found.real_name
|
|
new_character.dna.update_dna_identity()
|
|
|
|
new_character.name = new_character.real_name
|
|
|
|
if(G_found.mind && !G_found.mind.active)
|
|
G_found.mind.transfer_to(new_character) //be careful when doing stuff like this! I've already checked the mind isn't in use
|
|
else
|
|
new_character.mind_initialize()
|
|
if(!new_character.mind.assigned_role)
|
|
new_character.mind.assigned_role = "Assistant"//If they somehow got a null assigned role.
|
|
|
|
G_found.transfer_ckey(new_character, FALSE)
|
|
|
|
/*
|
|
The code below functions with the assumption that the mob is already a traitor if they have a special role.
|
|
So all it does is re-equip the mob with powers and/or items. Or not, if they have no special role.
|
|
If they don't have a mind, they obviously don't have a special role.
|
|
*/
|
|
|
|
//Two variables to properly announce later on.
|
|
var/admin = key_name_admin(src)
|
|
var/player_key = G_found.key
|
|
|
|
//Now for special roles and equipment.
|
|
var/datum/antagonist/traitor/traitordatum = new_character.mind.has_antag_datum(/datum/antagonist/traitor)
|
|
if(traitordatum)
|
|
SSjob.EquipRank(new_character, new_character.mind.assigned_role, 1)
|
|
traitordatum.equip()
|
|
|
|
|
|
switch(new_character.mind.special_role)
|
|
if(ROLE_WIZARD)
|
|
new_character.forceMove(pick(GLOB.wizardstart))
|
|
var/datum/antagonist/wizard/A = new_character.mind.has_antag_datum(/datum/antagonist/wizard,TRUE)
|
|
A.equip_wizard()
|
|
if(ROLE_SYNDICATE)
|
|
new_character.forceMove(pick(GLOB.nukeop_start))
|
|
var/datum/antagonist/nukeop/N = new_character.mind.has_antag_datum(/datum/antagonist/nukeop,TRUE)
|
|
N.equip_op()
|
|
if(ROLE_NINJA)
|
|
var/list/ninja_spawn = list()
|
|
for(var/obj/effect/landmark/carpspawn/L in GLOB.landmarks_list)
|
|
ninja_spawn += L
|
|
var/datum/antagonist/ninja/ninjadatum = new_character.mind.has_antag_datum(/datum/antagonist/ninja)
|
|
ninjadatum.equip_space_ninja()
|
|
if(ninja_spawn.len)
|
|
new_character.forceMove(pick(ninja_spawn))
|
|
|
|
else//They may also be a cyborg or AI.
|
|
switch(new_character.mind.assigned_role)
|
|
if("Cyborg")//More rigging to make em' work and check if they're traitor.
|
|
new_character = new_character.Robotize(TRUE)
|
|
if("AI")
|
|
new_character = new_character.AIize()
|
|
else
|
|
SSjob.EquipRank(new_character, new_character.mind.assigned_role, 1)//Or we simply equip them.
|
|
|
|
//Announces the character on all the systems, based on the record.
|
|
if(!issilicon(new_character))//If they are not a cyborg/AI.
|
|
if(!record_found&&new_character.mind.assigned_role!=new_character.mind.special_role)//If there are no records for them. If they have a record, this info is already in there. MODE people are not announced anyway.
|
|
//Power to the user!
|
|
if(alert(new_character,"Warning: No data core entry detected. Would you like to announce the arrival of this character by adding them to various databases, such as medical records?",,"No","Yes")=="Yes")
|
|
GLOB.data_core.manifest_inject(new_character)
|
|
|
|
if(alert(new_character,"Would you like an active AI to announce this character?",,"No","Yes")=="Yes")
|
|
AnnounceArrival(new_character, new_character.mind.assigned_role)
|
|
|
|
var/msg = "<span class='adminnotice'>[admin] has respawned [player_key] as [new_character.real_name].</span>"
|
|
message_admins(msg)
|
|
admin_ticket_log(new_character, msg)
|
|
|
|
to_chat(new_character, "You have been fully respawned. Enjoy the game.")
|
|
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Respawn Character") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
return new_character
|
|
|
|
/client/proc/cmd_admin_add_freeform_ai_law()
|
|
set category = "Admin.Events"
|
|
set name = "Add Custom AI law"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/input = input(usr, "Please enter anything you want the AI to do. Anything. Serious.", "What?", "") as text|null
|
|
if(!input)
|
|
return
|
|
|
|
log_admin("Admin [key_name(usr)] has added a new AI law - [input]")
|
|
message_admins("Admin [key_name_admin(usr)] has added a new AI law - [input]")
|
|
|
|
var/show_log = alert(src, "Show ion message?", "Message", "Yes", "No")
|
|
var/announce_ion_laws = (show_log == "Yes" ? 1 : -1)
|
|
|
|
var/datum/round_event/ion_storm/add_law_only/ion = new()
|
|
ion.announceEvent = announce_ion_laws
|
|
ion.ionMessage = input
|
|
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Add Custom AI Law") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_admin_rejuvenate(mob/living/M in GLOB.mob_list)
|
|
set category = "Special Verbs"
|
|
set name = "Rejuvenate"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
if(!mob)
|
|
return
|
|
if(!istype(M))
|
|
alert("Cannot revive a ghost")
|
|
return
|
|
M.revive(full_heal = 1, admin_revive = 1)
|
|
|
|
log_admin("[key_name(usr)] healed / revived [key_name(M)]")
|
|
var/msg = "<span class='danger'>Admin [key_name_admin(usr)] healed / revived [ADMIN_LOOKUPFLW(M)]!</span>"
|
|
message_admins(msg)
|
|
admin_ticket_log(M, msg)
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Rejuvinate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_admin_create_centcom_report()
|
|
set category = "Admin.Events"
|
|
set name = "Create Command Report"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/input = input(usr, "Enter a Command Report. Ensure it makes sense IC.", "What?", "") as message|null
|
|
if(!input)
|
|
return
|
|
|
|
var/confirm = alert(src, "Do you want to announce the contents of the report to the crew?", "Announce", "Yes", "No", "Cancel")
|
|
var/announce_command_report = TRUE
|
|
switch(confirm)
|
|
if("Yes")
|
|
priority_announce(input, null, "commandreport")
|
|
announce_command_report = FALSE
|
|
if("Cancel")
|
|
return
|
|
|
|
print_command_report(input, "[announce_command_report ? "Classified " : ""][command_name()] Update", announce_command_report)
|
|
|
|
log_admin("[key_name(src)] has created a command report: [input]")
|
|
message_admins("[key_name_admin(src)] has created a command report")
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Create Command Report") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_admin_make_priority_announcement()
|
|
set category = "Admin.Events"
|
|
set name = "Make Priority Announcement"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/input = input(usr, "Enter a priority announcement. Ensure it makes sense IC.", "What?", "") as message|null
|
|
if(!input)
|
|
return
|
|
|
|
var/title = input(src, "What should the title be?", "What?","") as text|null
|
|
|
|
var/special_name = input(src, "Who is making the announcement?", "Who?", "") as text|null
|
|
priority_announce(input, title, sender_override = special_name)
|
|
|
|
log_admin("[key_name(src)] has sent a priority announcement: [input]")
|
|
message_admins("[key_name_admin(src)] has made a priority announcement")
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Make Priority Announcement") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_change_command_name()
|
|
set category = "Admin.Events"
|
|
set name = "Change Command Name"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/input = input(usr, "Please input a new name for Central Command.", "What?", "") as text|null
|
|
if(!input)
|
|
return
|
|
change_command_name(input)
|
|
message_admins("[key_name_admin(src)] has changed Central Command's name to [input]")
|
|
log_admin("[key_name(src)] has changed the Central Command name to: [input]")
|
|
|
|
/client/proc/cmd_admin_delete(atom/A as obj|mob|turf in world)
|
|
set category = "Admin"
|
|
set name = "Delete"
|
|
|
|
if(!check_rights(R_SPAWN|R_DEBUG))
|
|
return
|
|
|
|
admin_delete(A)
|
|
|
|
/client/proc/cmd_admin_list_open_jobs()
|
|
set category = "Admin.Game"
|
|
set name = "Manage Job Slots"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
holder.manage_free_slots()
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Manage Job Slots") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_admin_explosion(atom/O as obj|mob|turf in world)
|
|
set category = "Admin.Fun"
|
|
set name = "Explosion"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/devastation = input("Range of total devastation. -1 to none", text("Input")) as num|null
|
|
if(devastation == null)
|
|
return
|
|
var/heavy = input("Range of heavy impact. -1 to none", text("Input")) as num|null
|
|
if(heavy == null)
|
|
return
|
|
var/light = input("Range of light impact. -1 to none", text("Input")) as num|null
|
|
if(light == null)
|
|
return
|
|
var/flash = input("Range of flash. -1 to none", text("Input")) as num|null
|
|
if(flash == null)
|
|
return
|
|
var/flames = input("Range of flames. -1 to none", text("Input")) as num|null
|
|
if(flames == null)
|
|
return
|
|
|
|
if ((devastation != -1) || (heavy != -1) || (light != -1) || (flash != -1) || (flames != -1))
|
|
if ((devastation > 20) || (heavy > 20) || (light > 20) || (flames > 20))
|
|
if (alert(src, "Are you sure you want to do this? It will laaag.", "Confirmation", "Yes", "No") == "No")
|
|
return
|
|
|
|
explosion(O, devastation, heavy, light, flash, null, null,flames)
|
|
log_admin("[key_name(usr)] created an explosion ([devastation],[heavy],[light],[flames]) at [AREACOORD(O)]")
|
|
message_admins("[key_name_admin(usr)] created an explosion ([devastation],[heavy],[light],[flames]) at [AREACOORD(O)]")
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Explosion") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
return
|
|
else
|
|
return
|
|
|
|
/client/proc/cmd_admin_emp(atom/O as obj|mob|turf in world)
|
|
set category = "Admin.Fun"
|
|
set name = "EM Pulse"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/range = input("Range.", text("Input")) as num|null
|
|
if(!range)
|
|
return
|
|
log_admin("[key_name(usr)] created an EM Pulse - log below") //because we'll just log the empulse itself
|
|
message_admins("[key_name_admin(usr)] created an EM Pulse at [AREACOORD(O)] with range [range]")
|
|
empulse_using_range(O, range, TRUE) //its details get shown too
|
|
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "EM Pulse") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_admin_gib(mob/M in GLOB.mob_list)
|
|
set category = "Admin.Fun"
|
|
set name = "Gib"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/confirm = alert(src, "Drop a brain?", "Confirm", "Yes", "No","Cancel")
|
|
if(confirm == "Cancel")
|
|
return
|
|
//Due to the delay here its easy for something to have happened to the mob
|
|
if(!M)
|
|
return
|
|
|
|
log_admin("[key_name(usr)] has gibbed [key_name(M)]")
|
|
message_admins("[key_name_admin(usr)] has gibbed [key_name_admin(M)]")
|
|
|
|
if(isobserver(M))
|
|
new /obj/effect/gibspawner/generic(get_turf(M))
|
|
return
|
|
if(confirm == "Yes")
|
|
M.gib()
|
|
else
|
|
M.gib(1)
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Gib") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_admin_gib_self()
|
|
set name = "Gibself"
|
|
set category = "Admin.Fun"
|
|
|
|
var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No")
|
|
if(confirm == "Yes")
|
|
log_admin("[key_name(usr)] used gibself.")
|
|
message_admins("<span class='adminnotice'>[key_name_admin(usr)] used gibself.</span>")
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Gib Self") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
mob.gib(1, 1, 1)
|
|
|
|
/client/proc/cmd_admin_check_contents(mob/living/M in GLOB.mob_list)
|
|
set category = "Special Verbs"
|
|
set name = "Check Contents"
|
|
|
|
var/list/L = M.get_contents()
|
|
for(var/t in L)
|
|
to_chat(usr, "[t]")
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Check Contents") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/toggle_view_range()
|
|
set category = "Admin.Game"
|
|
set name = "Change View Range"
|
|
set desc = "switches between 1x and custom views"
|
|
|
|
if(view_size.getView() == view_size.default)
|
|
view_size.setTo(input("Select view range:", "FUCK YE", 7) in list(1,2,3,4,5,6,7,8,9,10,11,12,13,14,128) - 7)
|
|
else
|
|
view_size.resetToDefault(getScreenSize(prefs.widescreenpref))
|
|
|
|
log_admin("[key_name(usr)] changed their view range to [view].")
|
|
//message_admins("\blue [key_name_admin(usr)] changed their view range to [view].") //why? removed by order of XSI
|
|
|
|
SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Change View Range", "[view]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/admin_call_shuttle()
|
|
set category = "Admin.Events"
|
|
set name = "Call Shuttle"
|
|
|
|
if(EMERGENCY_AT_LEAST_DOCKED)
|
|
return
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No")
|
|
if(confirm != "Yes")
|
|
return
|
|
|
|
SSshuttle.emergency.request()
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Call Shuttle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
log_admin("[key_name(usr)] admin-called the emergency shuttle.")
|
|
message_admins("<span class='adminnotice'>[key_name_admin(usr)] admin-called the emergency shuttle.</span>")
|
|
return
|
|
|
|
/client/proc/admin_cancel_shuttle()
|
|
set category = "Admin.Events"
|
|
set name = "Cancel Shuttle"
|
|
if(!check_rights(0))
|
|
return
|
|
if(alert(src, "You sure?", "Confirm", "Yes", "No") != "Yes")
|
|
return
|
|
|
|
if(EMERGENCY_AT_LEAST_DOCKED)
|
|
return
|
|
|
|
SSshuttle.emergency.cancel()
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Cancel Shuttle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
log_admin("[key_name(usr)] admin-recalled the emergency shuttle.")
|
|
message_admins("<span class='adminnotice'>[key_name_admin(usr)] admin-recalled the emergency shuttle.</span>")
|
|
|
|
return
|
|
/*
|
|
/client/proc/admin_disable_shuttle()
|
|
set category = "Admin.Events"
|
|
set name = "Disable Shuttle"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
if(SSshuttle.emergency.mode == SHUTTLE_DISABLED)
|
|
to_chat(usr, "<span class='warning'>Error, shuttle is already disabled.</span>")
|
|
return
|
|
if(alert(src, "You sure?", "Confirm", "Yes", "No") != "Yes")
|
|
return
|
|
message_admins("<span class='adminnotice'>[key_name_admin(usr)] disabled the shuttle.</span>")
|
|
SSshuttle.lastMode = SSshuttle.emergency.mode
|
|
SSshuttle.lastCallTime = SSshuttle.emergency.timeLeft(1)
|
|
SSshuttle.adminEmergencyNoRecall = TRUE
|
|
SSshuttle.emergency.setTimer(0)
|
|
SSshuttle.emergency.mode = SHUTTLE_DISABLED
|
|
priority_announce("Warning: Emergency Shuttle uplink failure, shuttle disabled until further notice.", "Emergency Shuttle Uplink Alert", 'sound/misc/announce_dig.ogg')
|
|
|
|
/client/proc/admin_enable_shuttle()
|
|
set category = "Admin - Events"
|
|
set category = "Admin.Events"
|
|
set name = "Enable Shuttle"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
if(SSshuttle.emergency.mode != SHUTTLE_DISABLED)
|
|
to_chat(usr, "<span class='warning'>Error, shuttle not disabled.</span>")
|
|
return
|
|
if(alert(src, "You sure?", "Confirm", "Yes", "No") != "Yes")
|
|
return
|
|
message_admins("<span class='adminnotice'>[key_name_admin(usr)] enabled the emergency shuttle.</span>")
|
|
SSshuttle.adminEmergencyNoRecall = FALSE
|
|
SSshuttle.emergencyNoRecall = FALSE
|
|
if(SSshuttle.lastMode == SHUTTLE_DISABLED) //If everything goes to shit, fix it.
|
|
SSshuttle.lastMode = SHUTTLE_IDLE
|
|
SSshuttle.emergency.mode = SSshuttle.lastMode
|
|
if(SSshuttle.lastCallTime < 10 SECONDS && SSshuttle.lastMode != SHUTTLE_IDLE)
|
|
SSshuttle.lastCallTime = 10 SECONDS //Make sure no insta departures.
|
|
SSshuttle.emergency.setTimer(SSshuttle.lastCallTime)
|
|
priority_announce("Warning: Emergency Shuttle uplink reestablished, shuttle enabled.", "Emergency Shuttle Uplink Alert", 'sound/misc/announce_dig.ogg')
|
|
*/
|
|
/client/proc/everyone_random()
|
|
set category = "Admin.Fun"
|
|
set name = "Make Everyone Random"
|
|
set desc = "Make everyone have a random appearance. You can only use this before rounds!"
|
|
|
|
if(SSticker.HasRoundStarted())
|
|
to_chat(usr, "Nope you can't do this, the game's already started. This only works before rounds!")
|
|
return
|
|
|
|
var/frn = CONFIG_GET(flag/force_random_names)
|
|
if(frn)
|
|
CONFIG_SET(flag/force_random_names, FALSE)
|
|
message_admins("Admin [key_name_admin(usr)] has disabled \"Everyone is Special\" mode.")
|
|
to_chat(usr, "Disabled.")
|
|
return
|
|
|
|
|
|
var/notifyplayers = alert(src, "Do you want to notify the players?", "Options", "Yes", "No", "Cancel")
|
|
if(notifyplayers == "Cancel")
|
|
return
|
|
|
|
log_admin("Admin [key_name(src)] has forced the players to have random appearances.")
|
|
message_admins("Admin [key_name_admin(usr)] has forced the players to have random appearances.")
|
|
|
|
if(notifyplayers == "Yes")
|
|
to_chat(world, "<span class='adminnotice'>Admin [usr.key] has forced the players to have completely random identities!</span>")
|
|
|
|
to_chat(usr, "<i>Remember: you can always disable the randomness by using the verb again, assuming the round hasn't started yet</i>.")
|
|
|
|
CONFIG_SET(flag/force_random_names, TRUE)
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Make Everyone Random") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
|
|
/client/proc/toggle_random_events()
|
|
set category = "Server"
|
|
set name = "Toggle random events on/off"
|
|
set desc = "Toggles random events such as meteors, black holes, blob (but not space dust) on/off"
|
|
var/new_are = !CONFIG_GET(flag/allow_random_events)
|
|
CONFIG_SET(flag/allow_random_events, new_are)
|
|
if(new_are)
|
|
to_chat(usr, "Random events enabled")
|
|
message_admins("Admin [key_name_admin(usr)] has enabled random events.")
|
|
else
|
|
to_chat(usr, "Random events disabled")
|
|
message_admins("Admin [key_name_admin(usr)] has disabled random events.")
|
|
SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Random Events", "[new_are ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
|
|
/client/proc/admin_change_sec_level()
|
|
set category = "Admin.Events"
|
|
set name = "Set Security Level"
|
|
set desc = "Changes the security level. Announcement only, i.e. setting to Delta won't activate nuke"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/level = input("Select security level to change to","Set Security Level") as null|anything in list("green","blue","amber","red","delta")
|
|
if(level)
|
|
set_security_level(level)
|
|
|
|
log_admin("[key_name(usr)] changed the security level to [level]")
|
|
message_admins("[key_name_admin(usr)] changed the security level to [level]")
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Set Security Level [capitalize(level)]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/toggle_nuke(obj/machinery/nuclearbomb/N in GLOB.nuke_list)
|
|
set name = "Toggle Nuke"
|
|
set category = "Admin.Events"
|
|
set popup_menu = 0
|
|
if(!check_rights(R_DEBUG))
|
|
return
|
|
|
|
if(!N.timing)
|
|
var/newtime = input(usr, "Set activation timer.", "Activate Nuke", "[N.timer_set]") as num|null
|
|
if(!newtime)
|
|
return
|
|
N.timer_set = newtime
|
|
N.set_safety()
|
|
N.set_active()
|
|
|
|
log_admin("[key_name(usr)] [N.timing ? "activated" : "deactivated"] a nuke at [AREACOORD(N)].")
|
|
message_admins("[ADMIN_LOOKUPFLW(usr)] [N.timing ? "activated" : "deactivated"] a nuke at [ADMIN_VERBOSEJMP(N)].")
|
|
SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Nuke", "[N.timing]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/create_outfits()
|
|
set category = "Debug"
|
|
set name = "Create Custom Outfit"
|
|
|
|
if(!check_rights(R_DEBUG))
|
|
return
|
|
|
|
holder.create_outfit()
|
|
|
|
/datum/admins/proc/create_outfit()
|
|
var/list/uniforms = typesof(/obj/item/clothing/under)
|
|
var/list/suits = typesof(/obj/item/clothing/suit)
|
|
var/list/gloves = typesof(/obj/item/clothing/gloves)
|
|
var/list/shoes = typesof(/obj/item/clothing/shoes)
|
|
var/list/headwear = typesof(/obj/item/clothing/head)
|
|
var/list/glasses = typesof(/obj/item/clothing/glasses)
|
|
var/list/masks = typesof(/obj/item/clothing/mask)
|
|
var/list/ids = typesof(/obj/item/card/id)
|
|
|
|
var/uniform_select = "<select name=\"outfit_uniform\"><option value=\"\">None</option>"
|
|
for(var/path in uniforms)
|
|
uniform_select += "<option value=\"[path]\">[path]</option>"
|
|
uniform_select += "</select>"
|
|
|
|
var/suit_select = "<select name=\"outfit_suit\"><option value=\"\">None</option>"
|
|
for(var/path in suits)
|
|
suit_select += "<option value=\"[path]\">[path]</option>"
|
|
suit_select += "</select>"
|
|
|
|
var/gloves_select = "<select name=\"outfit_gloves\"><option value=\"\">None</option>"
|
|
for(var/path in gloves)
|
|
gloves_select += "<option value=\"[path]\">[path]</option>"
|
|
gloves_select += "</select>"
|
|
|
|
var/shoes_select = "<select name=\"outfit_shoes\"><option value=\"\">None</option>"
|
|
for(var/path in shoes)
|
|
shoes_select += "<option value=\"[path]\">[path]</option>"
|
|
shoes_select += "</select>"
|
|
|
|
var/head_select = "<select name=\"outfit_head\"><option value=\"\">None</option>"
|
|
for(var/path in headwear)
|
|
head_select += "<option value=\"[path]\">[path]</option>"
|
|
head_select += "</select>"
|
|
|
|
var/glasses_select = "<select name=\"outfit_glasses\"><option value=\"\">None</option>"
|
|
for(var/path in glasses)
|
|
glasses_select += "<option value=\"[path]\">[path]</option>"
|
|
glasses_select += "</select>"
|
|
|
|
var/mask_select = "<select name=\"outfit_mask\"><option value=\"\">None</option>"
|
|
for(var/path in masks)
|
|
mask_select += "<option value=\"[path]\">[path]</option>"
|
|
mask_select += "</select>"
|
|
|
|
var/id_select = "<select name=\"outfit_id\"><option value=\"\">None</option>"
|
|
for(var/path in ids)
|
|
id_select += "<option value=\"[path]\">[path]</option>"
|
|
id_select += "</select>"
|
|
|
|
var/dat = {"
|
|
<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>Create Outfit</title></head><body>
|
|
<form name="outfit" action="byond://?src=[REF(src)];[HrefToken()]" method="get">
|
|
<input type="hidden" name="src" value="[REF(src)]">
|
|
[HrefTokenFormField()]
|
|
<input type="hidden" name="create_outfit" value="1">
|
|
<table>
|
|
<tr>
|
|
<th>Name:</th>
|
|
<td>
|
|
<input type="text" name="outfit_name" value="Custom Outfit">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Uniform:</th>
|
|
<td>
|
|
[uniform_select]
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Suit:</th>
|
|
<td>
|
|
[suit_select]
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Back:</th>
|
|
<td>
|
|
<input type="text" name="outfit_back" value="">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Belt:</th>
|
|
<td>
|
|
<input type="text" name="outfit_belt" value="">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Gloves:</th>
|
|
<td>
|
|
[gloves_select]
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Shoes:</th>
|
|
<td>
|
|
[shoes_select]
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Head:</th>
|
|
<td>
|
|
[head_select]
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Mask:</th>
|
|
<td>
|
|
[mask_select]
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Ears:</th>
|
|
<td>
|
|
<input type="text" name="outfit_ears" value="">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Glasses:</th>
|
|
<td>
|
|
[glasses_select]
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>ID:</th>
|
|
<td>
|
|
[id_select]
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Left Pocket:</th>
|
|
<td>
|
|
<input type="text" name="outfit_l_pocket" value="">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Right Pocket:</th>
|
|
<td>
|
|
<input type="text" name="outfit_r_pocket" value="">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Suit Store:</th>
|
|
<td>
|
|
<input type="text" name="outfit_s_store" value="">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Right Hand:</th>
|
|
<td>
|
|
<input type="text" name="outfit_r_hand" value="">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Left Hand:</th>
|
|
<td>
|
|
<input type="text" name="outfit_l_hand" value="">
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<br>
|
|
<input type="submit" value="Save">
|
|
</form></body></html>
|
|
"}
|
|
usr << browse(dat, "window=dressup;size=550x600")
|
|
|
|
/client/proc/toggle_combo_hud()
|
|
set category = "Admin.Game"
|
|
set name = "Toggle Combo HUD"
|
|
set desc = "Toggles the Admin Combo HUD (antag, sci, med, eng)"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/adding_hud = !has_antag_hud()
|
|
|
|
for(var/hudtype in list(DATA_HUD_SECURITY_ADVANCED, DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_DIAGNOSTIC_ADVANCED)) // add data huds
|
|
var/datum/atom_hud/H = GLOB.huds[hudtype]
|
|
(adding_hud) ? H.add_hud_to(usr) : H.remove_hud_from(usr)
|
|
for(var/datum/atom_hud/antag/H in GLOB.huds) // add antag huds
|
|
(adding_hud) ? H.add_hud_to(usr) : H.remove_hud_from(usr)
|
|
|
|
if(prefs.toggles & COMBOHUD_LIGHTING)
|
|
if(adding_hud)
|
|
mob.lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE
|
|
else
|
|
mob.lighting_alpha = initial(mob.lighting_alpha)
|
|
|
|
mob.update_sight()
|
|
|
|
to_chat(usr, "You toggled your admin combo HUD [adding_hud ? "ON" : "OFF"].")
|
|
message_admins("[key_name_admin(usr)] toggled their admin combo HUD [adding_hud ? "ON" : "OFF"].")
|
|
log_admin("[key_name(usr)] toggled their admin combo HUD [adding_hud ? "ON" : "OFF"].")
|
|
SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Combo HUD", "[adding_hud ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
|
|
/client/proc/has_antag_hud()
|
|
var/datum/atom_hud/A = GLOB.huds[ANTAG_HUD_TRAITOR]
|
|
return A.hudusers[mob]
|
|
|
|
|
|
/client/proc/run_weather()
|
|
set category = "Admin.Events"
|
|
set name = "Run Weather"
|
|
set desc = "Triggers a weather on the z-level you choose."
|
|
|
|
if(!holder)
|
|
return
|
|
|
|
var/weather_type = input("Choose a weather", "Weather") as null|anything in subtypesof(/datum/weather)
|
|
if(!weather_type)
|
|
return
|
|
|
|
var/z_level = input("Z-Level to target? Leave blank to target current Z-Level.", "Z-Level") as num|null
|
|
if(!isnum(z_level))
|
|
if(!src.mob)
|
|
return
|
|
z_level = src.mob.z
|
|
|
|
SSweather.run_weather(weather_type, z_level)
|
|
|
|
message_admins("[key_name_admin(usr)] started weather of type [weather_type] on the z-level [z_level].")
|
|
log_admin("[key_name(usr)] started weather of type [weather_type] on the z-level [z_level].")
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Run Weather")
|
|
|
|
/client/proc/mass_zombie_infection()
|
|
set category = "Admin.Fun"
|
|
set name = "Mass Zombie Infection"
|
|
set desc = "Infects all humans with a latent organ that will zombify \
|
|
them on death."
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/confirm = alert(src, "Please confirm you want to add latent zombie organs in all humans?", "Confirm Zombies", "Yes", "No")
|
|
if(confirm != "Yes")
|
|
return
|
|
|
|
for(var/mob/living/carbon/human/H in GLOB.carbon_list)
|
|
new /obj/item/organ/zombie_infection/nodamage(H)
|
|
|
|
message_admins("[key_name_admin(usr)] added a latent zombie infection to all humans.")
|
|
log_admin("[key_name(usr)] added a latent zombie infection to all humans.")
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Mass Zombie Infection")
|
|
|
|
/client/proc/mass_zombie_cure()
|
|
set category = "Admin.Fun"
|
|
set name = "Mass Zombie Cure"
|
|
set desc = "Removes the zombie infection from all humans, returning them to normal."
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/confirm = alert(src, "Please confirm you want to cure all zombies?", "Confirm Zombie Cure", "Yes", "No")
|
|
if(confirm != "Yes")
|
|
return
|
|
|
|
for(var/obj/item/organ/zombie_infection/nodamage/I in GLOB.zombie_infection_list)
|
|
qdel(I)
|
|
|
|
message_admins("[key_name_admin(usr)] cured all zombies.")
|
|
log_admin("[key_name(usr)] cured all zombies.")
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Mass Zombie Cure")
|
|
|
|
/client/proc/polymorph_all()
|
|
set category = "Admin.Fun"
|
|
set name = "Polymorph All"
|
|
set desc = "Applies the effects of the bolt of change to every single mob."
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/confirm = alert(src, "Please confirm you want polymorph all mobs?", "Confirm Polymorph", "Yes", "No")
|
|
if(confirm != "Yes")
|
|
return
|
|
|
|
var/list/mobs = shuffle(GLOB.alive_mob_list.Copy()) // might change while iterating
|
|
var/who_did_it = key_name_admin(usr)
|
|
|
|
message_admins("[key_name_admin(usr)] started polymorphed all living mobs.")
|
|
log_admin("[key_name(usr)] polymorphed all living mobs.")
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Polymorph All")
|
|
|
|
for(var/mob/living/M in mobs)
|
|
CHECK_TICK
|
|
|
|
if(!M)
|
|
continue
|
|
|
|
M.audible_message("<span class='italics'>...wabbajack...wabbajack...</span>")
|
|
playsound(M.loc, 'sound/magic/staff_change.ogg', 50, 1, -1)
|
|
|
|
wabbajack(M)
|
|
|
|
message_admins("Mass polymorph started by [who_did_it] is complete.")
|
|
|
|
|
|
/client/proc/show_tip()
|
|
set category = "Admin"
|
|
set name = "Show Tip"
|
|
set desc = "Sends a tip (that you specify) to all players. After all \
|
|
you're the experienced player here."
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
var/input = input(usr, "Please specify your tip that you want to send to the players.", "Tip", "") as message|null
|
|
if(!input)
|
|
return
|
|
|
|
if(!SSticker)
|
|
return
|
|
|
|
SSticker.selected_tip = input
|
|
|
|
// If we've already tipped, then send it straight away.
|
|
if(SSticker.tipped)
|
|
SSticker.send_tip_of_the_round()
|
|
|
|
|
|
message_admins("[key_name_admin(usr)] sent a tip of the round.")
|
|
log_admin("[key_name(usr)] sent \"[input]\" as the Tip of the Round.")
|
|
SSblackbox.record_feedback("tally", "admin_verb", 1, "Show Tip")
|
|
|
|
/client/proc/modify_goals()
|
|
set category = "Debug"
|
|
set name = "Modify goals"
|
|
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
holder.modify_goals()
|
|
|
|
/datum/admins/proc/modify_goals()
|
|
var/dat = ""
|
|
for(var/datum/station_goal/S in SSticker.mode.station_goals)
|
|
dat += "[S.name] - <a href='?src=[REF(S)];[HrefToken()];announce=1'>Announce</a> | <a href='?src=[REF(S)];[HrefToken()];remove=1'>Remove</a><br>"
|
|
dat += "<br><a href='?src=[REF(src)];[HrefToken()];add_station_goal=1'>Add New Goal</a>"
|
|
usr << browse(dat, "window=goals;size=400x400")
|
|
|
|
|
|
/client/proc/toggle_hub()
|
|
set category = "Server"
|
|
set name = "Toggle Hub"
|
|
|
|
world.update_hub_visibility(!GLOB.hub_visibility)
|
|
|
|
log_admin("[key_name(usr)] has toggled the server's hub status for the round, it is now [(GLOB.hub_visibility?"on":"off")] the hub.")
|
|
message_admins("[key_name_admin(usr)] has toggled the server's hub status for the round, it is now [(GLOB.hub_visibility?"on":"off")] the hub.")
|
|
if (GLOB.hub_visibility && !world.reachable)
|
|
message_admins("WARNING: The server will not show up on the hub because byond is detecting that a filewall is blocking incoming connections.")
|
|
|
|
SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggled Hub Visibility", "[GLOB.hub_visibility ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
|
|
/client/proc/cmd_admin_toggle_fov()
|
|
set category = "Admin.Fun"
|
|
set name = "Enable/Disable Field of Vision"
|
|
|
|
var/static/busy_toggling_fov = FALSE
|
|
if(!check_rights(R_ADMIN) || !check_rights(R_FUN))
|
|
return
|
|
|
|
var/on_off = CONFIG_GET(flag/use_field_of_vision)
|
|
|
|
if(busy_toggling_fov)
|
|
to_chat(usr, "<span class='warning'>A previous call of this function is still busy toggling FoV [on_off ? "on" : "off"]. Have some patiece</span>.")
|
|
return
|
|
busy_toggling_fov = TRUE
|
|
|
|
log_admin("[key_name(usr)] has [on_off ? "disabled" : "enabled"] the Field of Vision configuration.")
|
|
CONFIG_SET(flag/use_field_of_vision, !on_off)
|
|
|
|
SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggled Field of Vision", "[on_off ? "Enabled" : "Disabled"]"))
|
|
|
|
if(on_off)
|
|
for(var/k in GLOB.mob_list)
|
|
if(!k)
|
|
continue
|
|
var/mob/M = k
|
|
if(ishuman(M))
|
|
var/mob/living/carbon/human/H = M
|
|
if(!(H.dna?.species.has_field_of_vision))
|
|
continue
|
|
else if(!M.has_field_of_vision)
|
|
continue
|
|
var/datum/component/field_of_vision/FoV = M.GetComponent(/datum/component/field_of_vision)
|
|
if(FoV)
|
|
qdel(FoV)
|
|
CHECK_TICK
|
|
else
|
|
for(var/k in GLOB.clients)
|
|
if(!k)
|
|
continue
|
|
var/client/C = k
|
|
var/mob/M = C.mob
|
|
if(ishuman(M))
|
|
var/mob/living/carbon/human/H = M
|
|
if(!(H.dna?.species.has_field_of_vision))
|
|
continue
|
|
else if(!M.has_field_of_vision)
|
|
continue
|
|
M.LoadComponent(/datum/component/field_of_vision, M.field_of_vision_type)
|
|
CHECK_TICK
|
|
|
|
busy_toggling_fov = FALSE
|
|
|
|
/client/proc/smite(mob/living/carbon/human/target as mob)
|
|
set name = "Smite"
|
|
set category = "Admin.Fun"
|
|
if(!check_rights(R_ADMIN) || !check_rights(R_FUN))
|
|
return
|
|
|
|
var/list/punishment_list = list(ADMIN_PUNISHMENT_PIE,
|
|
ADMIN_PUNISHMENT_CUSTOM_PIE,
|
|
ADMIN_PUNISHMENT_FIREBALL,
|
|
ADMIN_PUNISHMENT_LIGHTNING,
|
|
ADMIN_PUNISHMENT_BRAINDAMAGE,
|
|
ADMIN_PUNISHMENT_BSA,
|
|
ADMIN_PUNISHMENT_GIB,
|
|
ADMIN_PUNISHMENT_SUPPLYPOD_QUICK,
|
|
ADMIN_PUNISHMENT_SUPPLYPOD,
|
|
ADMIN_PUNISHMENT_MAZING,
|
|
ADMIN_PUNISHMENT_ROD,
|
|
ADMIN_PUNISHMENT_SHOES,
|
|
ADMIN_PUNISHMENT_PICKLE,
|
|
ADMIN_PUNISHMENT_FRY,
|
|
ADMIN_PUNISHMENT_CRACK,
|
|
ADMIN_PUNISHMENT_BLEED,
|
|
ADMIN_PUNISHMENT_SCARIFY,
|
|
ADMIN_PUNISHMENT_CLUWNE)
|
|
|
|
var/punishment = input("Choose a punishment", "DIVINE SMITING") as null|anything in punishment_list
|
|
|
|
if(QDELETED(target) || !punishment)
|
|
return
|
|
|
|
switch(punishment)
|
|
if(ADMIN_PUNISHMENT_LIGHTNING)
|
|
var/turf/T = get_step(get_step(target, NORTH), NORTH)
|
|
T.Beam(target, icon_state="lightning[rand(1,12)]", time = 5)
|
|
target.adjustFireLoss(75)
|
|
target.electrocution_animation(40)
|
|
to_chat(target, "<span class='userdanger'>The gods have punished you for your sins!</span>")
|
|
if(ADMIN_PUNISHMENT_BRAINDAMAGE)
|
|
target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 199, 199)
|
|
if(ADMIN_PUNISHMENT_GIB)
|
|
target.gib(FALSE)
|
|
if(ADMIN_PUNISHMENT_BSA)
|
|
bluespace_artillery(target)
|
|
if(ADMIN_PUNISHMENT_FIREBALL)
|
|
new /obj/effect/temp_visual/target(get_turf(target))
|
|
if(ADMIN_PUNISHMENT_ROD)
|
|
var/turf/T = get_turf(target)
|
|
var/startside = pick(GLOB.cardinals)
|
|
var/turf/startT = spaceDebrisStartLoc(startside, T.z)
|
|
var/turf/endT = spaceDebrisFinishLoc(startside, T.z)
|
|
new /obj/effect/immovablerod(startT, endT,target)
|
|
if(ADMIN_PUNISHMENT_SUPPLYPOD_QUICK)
|
|
var/target_path = input(usr,"Enter typepath of an atom you'd like to send with the pod (type \"empty\" to send an empty pod):" ,"Typepath","/obj/item/reagent_containers/food/snacks/grown/harebell") as null|text
|
|
var/area/pod_storage_area = locate(/area/centcom/supplypod/podStorage) in GLOB.sortedAreas
|
|
var/obj/structure/closet/supplypod/centcompod/pod = new(pick(get_area_turfs(pod_storage_area))) //Lets not runtime
|
|
pod.damage = 40
|
|
pod.explosionSize = list(0,0,0,2)
|
|
pod.effectStun = TRUE
|
|
if (isnull(target_path)) //The user pressed "Cancel"
|
|
return
|
|
if (target_path != "empty")//if you didn't type empty, we want to load the pod with a delivery
|
|
var/delivery = text2path(target_path)
|
|
if(!ispath(delivery))
|
|
delivery = pick_closest_path(target_path)
|
|
if(!delivery)
|
|
alert("ERROR: Incorrect / improper path given.")
|
|
new delivery(pod)
|
|
new /obj/effect/pod_landingzone(get_turf(target), pod)
|
|
if(ADMIN_PUNISHMENT_SUPPLYPOD)
|
|
var/datum/centcom_podlauncher/plaunch = new(usr)
|
|
if(!holder)
|
|
return
|
|
plaunch.specificTarget = target
|
|
plaunch.launchChoice = 0
|
|
plaunch.damageChoice = 1
|
|
plaunch.explosionChoice = 1
|
|
plaunch.temp_pod.damage = 40//bring the mother fuckin ruckus
|
|
plaunch.temp_pod.explosionSize = list(0,0,0,2)
|
|
plaunch.temp_pod.effectStun = TRUE
|
|
return //We return here because punish_log() is handled by the centcom_podlauncher datum
|
|
|
|
if(ADMIN_PUNISHMENT_MAZING)
|
|
if(!puzzle_imprison(target))
|
|
to_chat(usr,"<span class='warning'>Imprisonment failed!</span>")
|
|
return
|
|
if(ADMIN_PUNISHMENT_PIE)
|
|
var/obj/item/reagent_containers/food/snacks/pie/cream/nostun/creamy = new(get_turf(target))
|
|
creamy.splat(target)
|
|
if(ADMIN_PUNISHMENT_CUSTOM_PIE)
|
|
var/obj/item/reagent_containers/food/snacks/pie/cream/nostun/A = new()
|
|
if(!A.reagents)
|
|
var/amount = input(usr, "Specify the reagent size of [A]", "Set Reagent Size", 50) as num|null
|
|
if(amount)
|
|
A.create_reagents(amount)
|
|
if(A.reagents)
|
|
var/chosen_id = choose_reagent_id(usr)
|
|
if(chosen_id)
|
|
var/amount = input(usr, "Choose the amount to add.", "Choose the amount.", A.reagents.maximum_volume) as num|null
|
|
if(amount)
|
|
A.reagents.add_reagent(chosen_id, amount)
|
|
A.splat(target)
|
|
if(ADMIN_PUNISHMENT_CRACK)
|
|
if(!iscarbon(target))
|
|
to_chat(usr,"<span class='warning'>This must be used on a carbon mob.</span>", confidential = TRUE)
|
|
return
|
|
var/mob/living/carbon/C = target
|
|
for(var/i in C.bodyparts)
|
|
var/obj/item/bodypart/squish_part = i
|
|
var/type_wound = pick(list(/datum/wound/blunt/critical, /datum/wound/blunt/severe, /datum/wound/blunt/critical, /datum/wound/blunt/severe, /datum/wound/blunt/moderate))
|
|
squish_part.force_wound_upwards(type_wound, smited=TRUE)
|
|
if(ADMIN_PUNISHMENT_BLEED)
|
|
if(!iscarbon(target))
|
|
to_chat(usr,"<span class='warning'>This must be used on a carbon mob.</span>", confidential = TRUE)
|
|
return
|
|
var/mob/living/carbon/C = target
|
|
for(var/i in C.bodyparts)
|
|
var/obj/item/bodypart/slice_part = i
|
|
var/type_wound = pick(list(/datum/wound/slash/severe, /datum/wound/slash/moderate))
|
|
slice_part.force_wound_upwards(type_wound, smited=TRUE)
|
|
type_wound = pick(list(/datum/wound/slash/critical, /datum/wound/slash/severe, /datum/wound/slash/moderate))
|
|
slice_part.force_wound_upwards(type_wound, smited=TRUE)
|
|
type_wound = pick(list(/datum/wound/slash/critical, /datum/wound/slash/severe))
|
|
slice_part.force_wound_upwards(type_wound, smited=TRUE)
|
|
if(ADMIN_PUNISHMENT_SCARIFY)
|
|
if(!iscarbon(target))
|
|
to_chat(usr,"<span class='warning'>This must be used on a carbon mob.</span>", confidential = TRUE)
|
|
return
|
|
var/mob/living/carbon/dude = target
|
|
dude.generate_fake_scars(rand(1, 4))
|
|
to_chat(dude, "<span class='warning'>You feel your body grow jaded and torn...</span>")
|
|
if(ADMIN_PUNISHMENT_PERFORATE)
|
|
if(!iscarbon(target))
|
|
to_chat(usr,"<span class='warning'>This must be used on a carbon mob.</span>", confidential = TRUE)
|
|
return
|
|
|
|
var/list/how_fucked_is_this_dude = list("A little", "A lot", "So fucking much", "FUCK THIS DUDE")
|
|
var/hatred = input("How much do you hate this guy?") in how_fucked_is_this_dude
|
|
var/repetitions
|
|
var/shots_per_limb_per_rep = 2
|
|
var/damage
|
|
switch(hatred)
|
|
if("A little")
|
|
repetitions = 1
|
|
damage = 5
|
|
if("A lot")
|
|
repetitions = 2
|
|
|
|
damage = 8
|
|
if("So fucking much")
|
|
repetitions = 3
|
|
damage = 10
|
|
if("FUCK THIS DUDE")
|
|
repetitions = 4
|
|
damage = 10
|
|
|
|
var/mob/living/carbon/dude = target
|
|
var/list/open_adj_turfs = get_adjacent_open_turfs(dude)
|
|
var/list/wound_bonuses = list(15, 70, 110, 250)
|
|
|
|
var/delay_per_shot = 1
|
|
var/delay_counter = 1
|
|
|
|
dude.Immobilize(5 SECONDS)
|
|
for(var/wound_bonus_rep in 1 to repetitions)
|
|
for(var/i in dude.bodyparts)
|
|
var/obj/item/bodypart/slice_part = i
|
|
var/shots_this_limb = 0
|
|
for(var/t in shuffle(open_adj_turfs))
|
|
var/turf/iter_turf = t
|
|
addtimer(CALLBACK(GLOBAL_PROC, .proc/firing_squad, dude, iter_turf, slice_part.body_zone, wound_bonuses[wound_bonus_rep], damage), delay_counter)
|
|
delay_counter += delay_per_shot
|
|
shots_this_limb++
|
|
if(shots_this_limb > shots_per_limb_per_rep)
|
|
break
|
|
if(ADMIN_PUNISHMENT_PICKLE)
|
|
target.turn_into_pickle()
|
|
if(ADMIN_PUNISHMENT_FRY)
|
|
target.fry()
|
|
|
|
if(ADMIN_PUNISHMENT_SHOES)
|
|
if(!iscarbon(target))
|
|
to_chat(usr,"<span class='warning'>This must be used on a carbon mob.</span>")
|
|
return
|
|
var/mob/living/carbon/C = target
|
|
var/obj/item/clothing/shoes/sick_kicks = C.shoes
|
|
if(!sick_kicks?.can_be_tied)
|
|
to_chat(usr,"<span class='warning'>[C] does not have knottable shoes!</span>")
|
|
return
|
|
sick_kicks.adjust_laces(SHOES_KNOTTED)
|
|
if(ADMIN_PUNISHMENT_CLUWNE)
|
|
if(!iscarbon(target))
|
|
to_chat(usr,"<span class='warning'>This must be used on a carbon mob.</span>")
|
|
return
|
|
target.cluwneify()
|
|
|
|
punish_log(target, punishment)
|
|
|
|
/**
|
|
* firing_squad is a proc for the :B:erforate smite to shoot each individual bullet at them, so that we can add actual delays without sleep() nonsense
|
|
*
|
|
* Hilariously, if you drag someone away mid smite, the bullets will still chase after them from the original spot, possibly hitting other people. Too funny to fix imo
|
|
*
|
|
* Arguments:
|
|
* * target- guy we're shooting obviously
|
|
* * source_turf- where the bullet begins, preferably on a turf next to the target
|
|
* * body_zone- which bodypart we're aiming for, if there is one there
|
|
* * wound_bonus- the wounding power we're assigning to the bullet, since we don't care about the base one
|
|
* * damage- the damage we're assigning to the bullet, since we don't care about the base one
|
|
*/
|
|
/proc/firing_squad(mob/living/carbon/target, turf/source_turf, body_zone, wound_bonus, damage)
|
|
if(!target.get_bodypart(body_zone))
|
|
return
|
|
playsound(target, 'sound/weapons/shot.ogg', 100)
|
|
var/obj/item/projectile/bullet/smite/divine_wrath = new(source_turf)
|
|
divine_wrath.damage = damage
|
|
divine_wrath.wound_bonus = wound_bonus
|
|
divine_wrath.original = target
|
|
divine_wrath.def_zone = body_zone
|
|
divine_wrath.spread = 0
|
|
divine_wrath.preparePixelProjectile(target, source_turf)
|
|
divine_wrath.fire()
|
|
|
|
/client/proc/punish_log(var/whom, var/punishment)
|
|
var/msg = "[key_name_admin(usr)] punished [key_name_admin(whom)] with [punishment]."
|
|
message_admins(msg)
|
|
admin_ticket_log(whom, msg)
|
|
log_admin("[key_name(usr)] punished [key_name(whom)] with [punishment].")
|
|
|
|
/client/proc/trigger_centcom_recall()
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
var/message = pick(GLOB.admiral_messages)
|
|
message = input("Enter message from the on-call admiral to be put in the recall report.", "Admiral Message", message) as text|null
|
|
|
|
if(!message)
|
|
return
|
|
|
|
message_admins("[key_name_admin(usr)] triggered a CentCom recall, with the admiral message of: [message]")
|
|
log_game("[key_name(usr)] triggered a CentCom recall, with the message of: [message]")
|
|
SSshuttle.centcom_recall(SSshuttle.emergency.timer, message)
|
|
|
|
/client/proc/cmd_admin_check_player_exp() //Allows admins to determine who the newer players are.
|
|
set category = "Admin"
|
|
set name = "Player Playtime"
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
|
|
if(!CONFIG_GET(flag/use_exp_tracking))
|
|
to_chat(usr, "<span class='warning'>Tracking is disabled in the server configuration file.</span>")
|
|
return
|
|
|
|
var/list/msg = list()
|
|
msg += "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>Playtime Report</title></head><body>Playtime:<BR><UL>"
|
|
for(var/client/C in GLOB.clients)
|
|
msg += "<LI> - [key_name_admin(C)]: <A href='?_src_=holder;[HrefToken()];getplaytimewindow=[REF(C.mob)]'>" + C.get_exp_living() + "</a></LI>"
|
|
msg += "</UL></BODY></HTML>"
|
|
src << browse(msg.Join(), "window=Player_playtime_check")
|
|
|
|
/obj/effect/temp_visual/fireball
|
|
icon = 'icons/obj/wizard.dmi'
|
|
icon_state = "fireball"
|
|
name = "fireball"
|
|
desc = "Get out of the way!"
|
|
layer = FLY_LAYER
|
|
randomdir = FALSE
|
|
duration = 9
|
|
pixel_z = 270
|
|
|
|
/obj/effect/temp_visual/fireball/Initialize()
|
|
. = ..()
|
|
animate(src, pixel_z = 0, time = duration)
|
|
|
|
/obj/effect/temp_visual/target
|
|
icon = 'icons/mob/actions/actions_items.dmi'
|
|
icon_state = "sniper_zoom"
|
|
layer = BELOW_MOB_LAYER
|
|
light_range = 2
|
|
duration = 9
|
|
|
|
/obj/effect/temp_visual/target/ex_act()
|
|
return
|
|
|
|
/obj/effect/temp_visual/target/Initialize(mapload, list/flame_hit)
|
|
. = ..()
|
|
INVOKE_ASYNC(src, .proc/fall, flame_hit)
|
|
|
|
/obj/effect/temp_visual/target/proc/fall(list/flame_hit)
|
|
var/turf/T = get_turf(src)
|
|
playsound(T,'sound/magic/fleshtostone.ogg', 80, 1)
|
|
new /obj/effect/temp_visual/fireball(T)
|
|
sleep(duration)
|
|
if(ismineralturf(T))
|
|
var/turf/closed/mineral/M = T
|
|
M.gets_drilled()
|
|
playsound(T, "explosion", 80, 1)
|
|
new /obj/effect/hotspot(T)
|
|
T.hotspot_expose(700, 50, 1)
|
|
for(var/mob/living/L in T.contents)
|
|
if(istype(L, /mob/living/simple_animal/hostile/megafauna/dragon))
|
|
continue
|
|
if(islist(flame_hit) && !flame_hit[L])
|
|
L.adjustFireLoss(40)
|
|
to_chat(L, "<span class='userdanger'>You're hit by the drake's fire breath!</span>")
|
|
flame_hit[L] = TRUE
|
|
else
|
|
L.adjustFireLoss(10) //if we've already hit them, do way less damage
|
|
|
|
/datum/admins/proc/cmd_show_exp_panel(client/client_to_check)
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
if(!client_to_check)
|
|
to_chat(usr, "<span class='danger'>ERROR: Client not found.</span>", confidential = TRUE)
|
|
return
|
|
if(!CONFIG_GET(flag/use_exp_tracking))
|
|
to_chat(usr, "<span class='warning'>Tracking is disabled in the server configuration file.</span>", confidential = TRUE)
|
|
return
|
|
|
|
new /datum/job_report_menu(client_to_check, usr)
|
|
|
|
/datum/admins/proc/toggle_exempt_status(client/C)
|
|
if(!check_rights(R_ADMIN))
|
|
return
|
|
if(!C)
|
|
to_chat(usr, "<span class='danger'>ERROR: Client not found.</span>")
|
|
return
|
|
|
|
if(!C.set_db_player_flags())
|
|
to_chat(usr, "<span class='danger'>ERROR: Unable read player flags from database. Please check logs.</span>")
|
|
var/dbflags = C.prefs.db_flags
|
|
var/newstate = FALSE
|
|
if(dbflags & DB_FLAG_EXEMPT)
|
|
newstate = FALSE
|
|
else
|
|
newstate = TRUE
|
|
|
|
if(C.update_flag_db(DB_FLAG_EXEMPT, newstate))
|
|
to_chat(usr, "<span class='danger'>ERROR: Unable to update player flags. Please check logs.</span>")
|
|
else
|
|
message_admins("[key_name_admin(usr)] has [newstate ? "activated" : "deactivated"] job exp exempt status on [key_name_admin(C)]")
|
|
log_admin("[key_name(usr)] has [newstate ? "activated" : "deactivated"] job exp exempt status on [key_name(C)]")
|
|
|
|
/// Allow admin to add or remove traits of datum
|
|
/datum/admins/proc/modify_traits(datum/D)
|
|
if(!D)
|
|
return
|
|
|
|
var/add_or_remove = input("Remove/Add?", "Trait Remove/Add") as null|anything in list("Add","Remove")
|
|
if(!add_or_remove)
|
|
return
|
|
var/list/availible_traits = list()
|
|
|
|
switch(add_or_remove)
|
|
if("Add")
|
|
for(var/key in GLOB.traits_by_type)
|
|
if(istype(D,key))
|
|
availible_traits += GLOB.traits_by_type[key]
|
|
if("Remove")
|
|
if(!GLOB.trait_name_map)
|
|
GLOB.trait_name_map = generate_trait_name_map()
|
|
for(var/trait in D.status_traits)
|
|
var/name = GLOB.trait_name_map[trait] || trait
|
|
availible_traits[name] = trait
|
|
|
|
var/chosen_trait = input("Select trait to modify", "Trait") as null|anything in sortList(availible_traits)
|
|
if(!chosen_trait)
|
|
return
|
|
chosen_trait = availible_traits[chosen_trait]
|
|
|
|
var/source = "adminabuse"
|
|
switch(add_or_remove)
|
|
if("Add") //Not doing source choosing here intentionally to make this bit faster to use, you can always vv it.
|
|
ADD_TRAIT(D,chosen_trait,source)
|
|
if("Remove")
|
|
var/specific = input("All or specific source ?", "Trait Remove/Add") as null|anything in list("All","Specific")
|
|
if(!specific)
|
|
return
|
|
switch(specific)
|
|
if("All")
|
|
source = null
|
|
if("Specific")
|
|
source = input("Source to be removed","Trait Remove/Add") as null|anything in sortList(D.status_traits[chosen_trait])
|
|
if(!source)
|
|
return
|
|
REMOVE_TRAIT(D,chosen_trait,source)
|
|
|
|
/client/proc/spawn_floor_cluwne()
|
|
set category = "Admin.Fun"
|
|
set name = "Unleash Floor Cluwne"
|
|
set desc = "Pick a specific target or just let it select randomly and spawn the floor cluwne mob on the station. Be warned: spawning more than one may cause issues!"
|
|
var/target
|
|
|
|
if(!check_rights(R_FUN))
|
|
return
|
|
|
|
var/turf/T = get_turf(usr)
|
|
target = input("Any specific target in mind? Please note only live, non cluwned, human targets are valid.", "Target", target) as null|anything in GLOB.player_list
|
|
if(target && ishuman(target))
|
|
var/mob/living/carbon/human/H = target
|
|
var/mob/living/simple_animal/hostile/floor_cluwne/FC = new /mob/living/simple_animal/hostile/floor_cluwne(T)
|
|
FC.Acquire_Victim(H)
|
|
else
|
|
new /mob/living/simple_animal/hostile/floor_cluwne(T)
|
|
log_admin("[key_name(usr)] spawned floor cluwne.")
|
|
message_admins("[key_name(usr)] spawned floor cluwne.")
|