From a87e4533e583f0168e166bd509005bdc59d96908 Mon Sep 17 00:00:00 2001 From: Letter N <24603524+LetterN@users.noreply.github.com> Date: Wed, 3 Mar 2021 17:33:14 +0800 Subject: [PATCH] support for tgs4 noconfigs needed*** --- .dockerignore | 5 +- .editorconfig | 6 + .gitattributes | 2 +- .gitignore | 3 + .tgs4.yml | 8 + .vscode/extensions.json | 3 +- .vscode/settings.json | 7 +- Build.bat | 2 + Dockerfile | 107 ++++++++----- code/__DEFINES/achievements.dm | 151 ++++++++++-------- code/controllers/subsystem/achievements.dm | 2 +- code/datums/achievements/_achievement_data.dm | 5 +- code/datums/achievements/_awards.dm | 10 +- code/datums/achievements/hardcore_random.dm | 4 - .../datums/achievements/mafia_achievements.dm | 46 ++++-- code/datums/achievements/misc_achievements.dm | 8 +- code/datums/achievements/misc_scores.dm | 11 ++ code/modules/admin/verbs/adminhelp.dm | 4 - dependencies.sh | 10 +- tgstation.dme | 2 +- 20 files changed, 239 insertions(+), 157 deletions(-) create mode 100644 .tgs4.yml create mode 100644 Build.bat delete mode 100644 code/datums/achievements/hardcore_random.dm create mode 100644 code/datums/achievements/misc_scores.dm diff --git a/.dockerignore b/.dockerignore index 9c6ac6b4aa..a4b8a25cdc 100644 --- a/.dockerignore +++ b/.dockerignore @@ -22,7 +22,6 @@ tgstation.int tgstation.rsc tgstation.lk tgstation.dyn.rsc -libmariadb.dll -rust_g.dll -BSQL.dll +*.dll Dockerfile +tools/bootstrap/.cache diff --git a/.editorconfig b/.editorconfig index 0ea4a47b86..d6adf33378 100644 --- a/.editorconfig +++ b/.editorconfig @@ -12,3 +12,9 @@ indent_size = 2 [*.py] indent_style = space + +[*.md] +trim_trailing_whitespace = false + +[Dockerfile] +indent_style = space diff --git a/.gitattributes b/.gitattributes index 96ad4a1b6f..f46a38d1d1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -15,7 +15,7 @@ *.py text eol=lf *.scss text eol=lf *.sh text eol=lf -# *.sql text eol=lf +*.sql text eol=lf *.svg text eol=lf *.ts text eol=lf *.tsx text eol=lf diff --git a/.gitignore b/.gitignore index e885761104..dd20fecd22 100644 --- a/.gitignore +++ b/.gitignore @@ -231,3 +231,6 @@ tools/LinuxOneShot/Database tools/LinuxOneShot/TGS_Config tools/LinuxOneShot/TGS_Instances tools/LinuxOneShot/TGS_Logs + +# Common build tooling +!/tools/build diff --git a/.tgs4.yml b/.tgs4.yml new file mode 100644 index 0000000000..932a3a6672 --- /dev/null +++ b/.tgs4.yml @@ -0,0 +1,8 @@ +static_files: + - name: config + populate: true + - name: data +linux_scripts: + PreCompile.sh: tools/tgs4_scripts/PreCompile.sh +windows_scripts: + PreCompile.bat: tools/tgs4_scripts/PreCompile.bat diff --git a/.vscode/extensions.json b/.vscode/extensions.json index bf0d9d2fb9..d384c4535b 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -5,6 +5,7 @@ "EditorConfig.EditorConfig", "arcanis.vscode-zipfs", "dbaeumer.vscode-eslint", - "kevinkyang.auto-comment-blocks" + "stylemistake.auto-comment-blocks", + "Donkie.vscode-tgstation-test-adapter" ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index f95b8f7cc6..f290e9f369 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,8 +1,10 @@ { - "eslint.nodePath": "tgui/.yarn/sdks", + "eslint.nodePath": "./tgui/.yarn/sdks", "eslint.workingDirectories": [ "./tgui" ], + "typescript.tsdk": "./tgui/.yarn/sdks/typescript/lib", + "typescript.enablePromptUseWorkspaceTsdk": true, "search.exclude": { "tgui/.yarn": true, "tgui/.pnp.*": true @@ -14,5 +16,6 @@ } ], "files.eol": "\n", - "gitlens.advanced.blame.customArguments": ["-w"] + "gitlens.advanced.blame.customArguments": ["-w"], + "tgstationTestExplorer.project.resultsType": "json" } diff --git a/Build.bat b/Build.bat new file mode 100644 index 0000000000..dd3a6fd9d9 --- /dev/null +++ b/Build.bat @@ -0,0 +1,2 @@ +@call tools\build\build +@pause diff --git a/Dockerfile b/Dockerfile index cca7e43a54..0ae4f82be8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,62 +1,85 @@ -FROM tgstation/byond:513.1533 as base +# base = ubuntu + full apt update +FROM ubuntu:xenial AS base -FROM base as rust_g - -RUN apt-get update \ +RUN dpkg --add-architecture i386 \ + && apt-get update \ + && apt-get upgrade -y \ + && apt-get dist-upgrade -y \ && apt-get install -y --no-install-recommends \ - git \ - ca-certificates + ca-certificates +# byond = base + byond installed globally +FROM base AS byond +WORKDIR /byond + +RUN apt-get install -y --no-install-recommends \ + curl \ + unzip \ + make \ + libstdc++6:i386 + +COPY dependencies.sh . + +RUN . ./dependencies.sh \ + && curl "http://www.byond.com/download/build/${BYOND_MAJOR}/${BYOND_MAJOR}.${BYOND_MINOR}_byond_linux.zip" -o byond.zip \ + && unzip byond.zip \ + && cd byond \ + && sed -i 's|install:|&\n\tmkdir -p $(MAN_DIR)/man6|' Makefile \ + && make install \ + && chmod 644 /usr/local/byond/man/man6/* \ + && apt-get purge -y --auto-remove curl unzip make \ + && cd .. \ + && rm -rf byond byond.zip + +# build = byond + tgstation compiled and deployed to /deploy +FROM byond AS build +WORKDIR /tgstation + +RUN apt-get install -y --no-install-recommends \ + curl + +COPY . . + +RUN env TG_BOOTSTRAP_NODE_LINUX=1 tools/build/build \ + && tools/deploy.sh /deploy + +# rust = base + rustc and i686 target +FROM base AS rust +RUN apt-get install -y --no-install-recommends \ + curl && \ + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal \ + && ~/.cargo/bin/rustup target add i686-unknown-linux-gnu + +# rust_g = base + rust_g compiled to /rust_g +FROM rust AS rust_g WORKDIR /rust_g RUN apt-get install -y --no-install-recommends \ - libssl-dev \ - pkg-config \ - curl \ - gcc-multilib \ - && curl https://sh.rustup.rs -sSf | sh -s -- -y --default-host i686-unknown-linux-gnu \ + pkg-config:i386 \ + libssl-dev:i386 \ + gcc-multilib \ + git \ && git init \ && git remote add origin https://github.com/tgstation/rust-g COPY dependencies.sh . -RUN /bin/bash -c "source dependencies.sh \ - && git fetch --depth 1 origin \$RUST_G_VERSION" \ +RUN . ./dependencies.sh \ + && git fetch --depth 1 origin "${RUST_G_VERSION}" \ && git checkout FETCH_HEAD \ - && ~/.cargo/bin/cargo build --release - -FROM base as dm_base + && env PKG_CONFIG_ALLOW_CROSS=1 ~/.cargo/bin/cargo build --release --target i686-unknown-linux-gnu +# final = byond + runtime deps + rust_g + build +FROM byond WORKDIR /tgstation -FROM dm_base as build +RUN apt-get install -y --no-install-recommends \ + libssl1.0.0:i386 \ + zlib1g:i386 -COPY . . - -RUN DreamMaker -max_errors 0 tgstation.dme \ - && tools/deploy.sh /deploy \ - && rm /deploy/*.dll - -FROM dm_base - -EXPOSE 1337 - -RUN apt-get update \ - && apt-get install -y --no-install-recommends software-properties-common \ - && add-apt-repository ppa:ubuntu-toolchain-r/test \ - && apt-get update \ - && apt-get upgrade -y \ - && apt-get dist-upgrade -y \ - && apt-get install -y --no-install-recommends \ - libmariadb2 \ - mariadb-client \ - libssl1.0.0 \ - && rm -rf /var/lib/apt/lists/* \ - && mkdir -p /root/.byond/bin - -COPY --from=rust_g /rust_g/target/release/librust_g.so /root/.byond/bin/rust_g COPY --from=build /deploy ./ +COPY --from=rust_g /rust_g/target/i686-unknown-linux-gnu/release/librust_g.so ./librust_g.so VOLUME [ "/tgstation/config", "/tgstation/data" ] - ENTRYPOINT [ "DreamDaemon", "tgstation.dmb", "-port", "1337", "-trusted", "-close", "-verbose" ] +EXPOSE 1337 diff --git a/code/__DEFINES/achievements.dm b/code/__DEFINES/achievements.dm index 1d2eb90ee4..c39531971c 100644 --- a/code/__DEFINES/achievements.dm +++ b/code/__DEFINES/achievements.dm @@ -4,96 +4,105 @@ #define ACHIEVEMENT_SCORE "score" //Misc Medal hub IDs -#define MEDAL_METEOR "Your Life Before Your Eyes" -#define MEDAL_PULSE "Jackpot" -#define MEDAL_TIMEWASTE "Overextended The Joke" -#define MEDAL_RODSUPLEX "Feat of Strength" -#define MEDAL_CLOWNCARKING "Round and Full" -#define MEDAL_THANKSALOT "The Best Driver" -#define MEDAL_HELBITALJANKEN "Hel-bent on Winning" -#define MEDAL_MATERIALCRAFT "Getting an Upgrade" -#define MEDAL_DISKPLEASE "Disk, Please!" -#define MEDAL_GAMER "I'm Not Important" -#define MEDAL_VENDORSQUISH "Teenage Anarchist" -#define MEDAL_SWIRLIE "Bowl-d" -#define MEDAL_SELFOUCH "Hands???" -#define MEDAL_SANDMAN "Mister Sandman" -#define MEDAL_CLEANBOSS "Cleanboss" -#define MEDAL_RULE8 "Rule 8" -#define MEDAL_LONGSHIFT "longshift" -#define MEDAL_SNAIL "KKKiiilll mmmeee" -#define MEDAL_LOOKOUTSIR "Look Out, Sir!" -#define MEDAL_GOTTEM "GOTTEM" -#define MEDAL_ASCENSION "Ascension" -#define MEDAL_FRENCHING "FrenchingTheBubble" -#define MEDAL_ASH_ASCENSION "Ash" -#define MEDAL_FLESH_ASCENSION "Flesh" -#define MEDAL_RUST_ASCENSION "Rust" -#define MEDAL_VOID_ASCENSION "Void" -#define MEDAL_TOOLBOX_SOUL "Toolsoul" +#define MEDAL_METEOR "Your Life Before Your Eyes" +#define MEDAL_PULSE "Jackpot" +#define MEDAL_TIMEWASTE "Overextended The Joke" +#define MEDAL_RODSUPLEX "Feat of Strength" +#define MEDAL_CLOWNCARKING "Round and Full" +#define MEDAL_THANKSALOT "The Best Driver" +#define MEDAL_HELBITALJANKEN "Hel-bent on Winning" +#define MEDAL_MATERIALCRAFT "Getting an Upgrade" +#define MEDAL_DISKPLEASE "Disk, Please!" +#define MEDAL_GAMER "I'm Not Important" +#define MEDAL_VENDORSQUISH "Teenage Anarchist" +#define MEDAL_SWIRLIE "Bowl-d" +#define MEDAL_SELFOUCH "Hands???" +#define MEDAL_SANDMAN "Mister Sandman" +#define MEDAL_CLEANBOSS "Cleanboss" +#define MEDAL_RULE8 "Rule 8" +#define MEDAL_LONGSHIFT "longshift" +#define MEDAL_SNAIL "KKKiiilll mmmeee" +#define MEDAL_LOOKOUTSIR "Look Out, Sir!" +#define MEDAL_GOTTEM "GOTTEM" +#define MEDAL_ASCENSION "Ascension" +#define MEDAL_FRENCHING "FrenchingTheBubble" +#define MEDAL_ASH_ASCENSION "Ash" +#define MEDAL_FLESH_ASCENSION "Flesh" +#define MEDAL_RUST_ASCENSION "Rust" +#define MEDAL_VOID_ASCENSION "Void" +#define MEDAL_TOOLBOX_SOUL "Toolsoul" +#define MEDAL_CHEM_TUT "Beginner Chemist" //Skill medal hub IDs -#define MEDAL_LEGENDARY_MINER "Legendary Miner" +#define MEDAL_LEGENDARY_MINER "Legendary Miner" //Mafia medal hub IDs (wins) -#define MAFIA_MEDAL_ASSISTANT "Assistant" -#define MAFIA_MEDAL_DETECTIVE "Detective" -#define MAFIA_MEDAL_PSYCHOLOGIST "Psychologist" -#define MAFIA_MEDAL_CHAPLAIN "Chaplain" -#define MAFIA_MEDAL_MD "Medical Doctor" -#define MAFIA_MEDAL_LAWYER "Lawyer" -#define MAFIA_MEDAL_HOP "Head of Personnel" -#define MAFIA_MEDAL_CHANGELING "CHANGELING" -#define MAFIA_MEDAL_THOUGHTFEEDER "Thoughtfeeder" -#define MAFIA_MEDAL_TRAITOR "Traitor" -#define MAFIA_MEDAL_NIGHTMARE "Nightmare" -#define MAFIA_MEDAL_FUGITIVE "Fugitive" -#define MAFIA_MEDAL_OBSESSED "Obsessed" -#define MAFIA_MEDAL_CLOWN "Clown" +#define MAFIA_MEDAL_ASSISTANT "Assistant" +#define MAFIA_MEDAL_DETECTIVE "Detective" +#define MAFIA_MEDAL_PSYCHOLOGIST "Psychologist" +#define MAFIA_MEDAL_CHAPLAIN "Chaplain" +#define MAFIA_MEDAL_MD "Medical Doctor" +#define MAFIA_MEDAL_OFFICER "Security Officer" +#define MAFIA_MEDAL_LAWYER "Lawyer" +#define MAFIA_MEDAL_HOP "Head of Personnel" +#define MAFIA_MEDAL_HOS "Head of Security" +#define MAFIA_MEDAL_WARDEN "Warden" +#define MAFIA_MEDAL_CHANGELING "CHANGELING" +#define MAFIA_MEDAL_THOUGHTFEEDER "Thoughtfeeder" +#define MAFIA_MEDAL_TRAITOR "Traitor" +#define MAFIA_MEDAL_NIGHTMARE "Nightmare" +#define MAFIA_MEDAL_FUGITIVE "Fugitive" +#define MAFIA_MEDAL_OBSESSED "Obsessed" +#define MAFIA_MEDAL_CLOWN "Clown" //Mafia medal hub IDs (misc stuff) -#define MAFIA_MEDAL_HATED "Universally Hated" +#define MAFIA_MEDAL_HATED "Universally Hated" +#define MAFIA_MEDAL_CHARISMATIC "Charismatic" +#define MAFIA_MEDAL_VIP "VIP" //Boss medals // Medal hub IDs for boss medals (Pre-fixes) -#define BOSS_MEDAL_ANY "Boss Killer" -#define BOSS_MEDAL_MINER "Blood-drunk Miner Killer" +#define BOSS_MEDAL_ANY "Boss Killer" +#define BOSS_MEDAL_MINER "Blood-drunk Miner Killer" #define BOSS_MEDAL_FROSTMINER "Demonic-frost Miner Killer" #define BOSS_MEDAL_BUBBLEGUM "Bubblegum Killer" -#define BOSS_MEDAL_COLOSSUS "Colossus Killer" -#define BOSS_MEDAL_DRAKE "Drake Killer" +#define BOSS_MEDAL_COLOSSUS "Colossus Killer" +#define BOSS_MEDAL_DRAKE "Drake Killer" #define BOSS_MEDAL_HIEROPHANT "Hierophant Killer" -#define BOSS_MEDAL_LEGION "Legion Killer" -#define BOSS_MEDAL_TENDRIL "Tendril Exterminator" +#define BOSS_MEDAL_LEGION "Legion Killer" +#define BOSS_MEDAL_TENDRIL "Tendril Exterminator" #define BOSS_MEDAL_SWARMERS "Swarmer Beacon Killer" #define BOSS_MEDAL_WENDIGO "Wendigo Killer" #define BOSS_MEDAL_KINGGOAT "King Goat Killer" -#define BOSS_MEDAL_MINER_CRUSHER "Blood-drunk Miner Crusher" -#define BOSS_MEDAL_FROSTMINER_CRUSHER "Demonic-frost Miner Crusher" -#define BOSS_MEDAL_BUBBLEGUM_CRUSHER "Bubblegum Crusher" -#define BOSS_MEDAL_COLOSSUS_CRUSHER "Colossus Crusher" -#define BOSS_MEDAL_DRAKE_CRUSHER "Drake Crusher" -#define BOSS_MEDAL_HIEROPHANT_CRUSHER "Hierophant Crusher" -#define BOSS_MEDAL_LEGION_CRUSHER "Legion Crusher" -#define BOSS_MEDAL_SWARMERS_CRUSHER "Swarmer Beacon Crusher" -#define BOSS_MEDAL_WENDIGO_CRUSHER "Wendigo Crusher" -#define BOSS_MEDAL_KINGGOAT_CRUSHER "King Goat Crusher" +#define BOSS_MEDAL_MINER_CRUSHER "Blood-drunk Miner Crusher" +#define BOSS_MEDAL_FROSTMINER_CRUSHER "Demonic-frost Miner Crusher" +#define BOSS_MEDAL_BUBBLEGUM_CRUSHER "Bubblegum Crusher" +#define BOSS_MEDAL_COLOSSUS_CRUSHER "Colossus Crusher" +#define BOSS_MEDAL_DRAKE_CRUSHER "Drake Crusher" +#define BOSS_MEDAL_HIEROPHANT_CRUSHER "Hierophant Crusher" +#define BOSS_MEDAL_LEGION_CRUSHER "Legion Crusher" +#define BOSS_MEDAL_SWARMERS_CRUSHER "Swarmer Beacon Crusher" +#define BOSS_MEDAL_WENDIGO_CRUSHER "Wendigo Crusher" +#define BOSS_MEDAL_KINGGOAT_CRUSHER "King Goat Crusher" // Medal hub IDs for boss-kill scores -#define BOSS_SCORE "Bosses Killed" -#define MINER_SCORE "BDMs Killed" -#define FROST_MINER_SCORE "DFMs Killed" -#define BUBBLEGUM_SCORE "Bubblegum Killed" -#define COLOSSUS_SCORE "Colossus Killed" -#define DRAKE_SCORE "Drakes Killed" -#define HIEROPHANT_SCORE "Hierophants Killed" -#define LEGION_SCORE "Legion Killed" +#define BOSS_SCORE "Bosses Killed" +#define MINER_SCORE "BDMs Killed" +#define FROST_MINER_SCORE "DFMs Killed" +#define BUBBLEGUM_SCORE "Bubblegum Killed" +#define COLOSSUS_SCORE "Colossus Killed" +#define DRAKE_SCORE "Drakes Killed" +#define HIEROPHANT_SCORE "Hierophants Killed" +#define LEGION_SCORE "Legion Killed" #define SWARMER_BEACON_SCORE "Swarmer Beacs Killed" -#define WENDIGO_SCORE "Wendigos Killed" -#define KINGGOAT_SCORE "King Goat Killed" -#define TENDRIL_CLEAR_SCORE "Tendrils Killed" +#define WENDIGO_SCORE "Wendigos Killed" +#define KINGGOAT_SCORE "King Goat Killed" +#define TENDRIL_CLEAR_SCORE "Tendrils Killed" -// DB IDs for hardcore random mode +// DB ID for hardcore random mode #define HARDCORE_RANDOM_SCORE "Hardcore Random Score" + +// DB ID for amount of consumed maintenance pills +#define MAINTENANCE_PILL_SCORE "Maintenance Pill Score" diff --git a/code/controllers/subsystem/achievements.dm b/code/controllers/subsystem/achievements.dm index 554481b93a..f0e10e6f03 100644 --- a/code/controllers/subsystem/achievements.dm +++ b/code/controllers/subsystem/achievements.dm @@ -53,7 +53,7 @@ SUBSYSTEM_DEF(achievements) /datum/controller/subsystem/achievements/proc/update_metadata() var/list/current_metadata = list() //select metadata here - var/datum/DBQuery/Q = SSdbcore.NewQuery("SELECT achievement_key,achievement_version FROM [format_table_name("achievement_metadata")]") + var/datum/db_query/Q = SSdbcore.NewQuery("SELECT achievement_key,achievement_version FROM [format_table_name("achievement_metadata")]") if(!Q.Execute(async = TRUE)) qdel(Q) return diff --git a/code/datums/achievements/_achievement_data.dm b/code/datums/achievements/_achievement_data.dm index 2c904b8b9c..80f544a965 100644 --- a/code/datums/achievements/_achievement_data.dm +++ b/code/datums/achievements/_achievement_data.dm @@ -32,8 +32,9 @@ set waitfor = FALSE var/list/kv = list() - var/datum/DBQuery/Query = SSdbcore.NewQuery( - "SELECT achievement_key,value FROM [format_table_name("achievements")] WHERE ckey = [owner_ckey]", + var/datum/db_query/Query = SSdbcore.NewQuery( + "SELECT achievement_key,value FROM [format_table_name("achievements")] WHERE ckey = :ckey", + list("ckey" = owner_ckey) ) if(!Query.Execute()) qdel(Query) diff --git a/code/datums/achievements/_awards.dm b/code/datums/achievements/_awards.dm index 63bc7f6ce7..77485de8ba 100644 --- a/code/datums/achievements/_awards.dm +++ b/code/datums/achievements/_awards.dm @@ -44,8 +44,9 @@ ///Get raw numerical achievement value from the database /datum/award/proc/get_raw_value(key) - var/datum/DBQuery/Q = SSdbcore.NewQuery( - "SELECT value FROM [format_table_name("achievements")] WHERE ckey = [key] AND achievement_key = [database_id]" + var/datum/db_query/Q = SSdbcore.NewQuery( + "SELECT value FROM [format_table_name("achievements")] WHERE ckey = :ckey AND achievement_key = :achievement_key", + list("ckey" = key, "achievement_key" = database_id) ) if(!Q.Execute(async = TRUE)) qdel(Q) @@ -98,8 +99,9 @@ .["achievement_type"] = "score" /datum/award/score/proc/LoadHighScores() - var/datum/DBQuery/Q = SSdbcore.NewQuery( - "SELECT ckey,value FROM [format_table_name("achievements")] WHERE achievement_key = [database_id] ORDER BY value DESC LIMIT 50" + var/datum/db_query/Q = SSdbcore.NewQuery( + "SELECT ckey,value FROM [format_table_name("achievements")] WHERE achievement_key = :achievement_key ORDER BY value DESC LIMIT 50", + list("achievement_key" = database_id) ) if(!Q.Execute(async = TRUE)) qdel(Q) diff --git a/code/datums/achievements/hardcore_random.dm b/code/datums/achievements/hardcore_random.dm deleted file mode 100644 index c5e2692552..0000000000 --- a/code/datums/achievements/hardcore_random.dm +++ /dev/null @@ -1,4 +0,0 @@ -/datum/award/score/hardcore_random - name = "Hardcore random points" - desc = "Well, I might be a blind, deaf, crippled guy, but hey, at least I'm alive." - database_id = HARDCORE_RANDOM_SCORE diff --git a/code/datums/achievements/mafia_achievements.dm b/code/datums/achievements/mafia_achievements.dm index 414917413a..fbe3486397 100644 --- a/code/datums/achievements/mafia_achievements.dm +++ b/code/datums/achievements/mafia_achievements.dm @@ -8,85 +8,103 @@ name = "Assistant Victory" desc = "If you got killed instead of someone more important, you just flexed the true strength of your \"\"\"\"role\"\"\"\"." database_id = MAFIA_MEDAL_ASSISTANT - icon = "assistant" + icon = "town" /datum/award/achievement/mafia/detective name = "Detective Victory" desc = "If you did this with a Medical Doctor in the game, i'm not really that impressed." database_id = MAFIA_MEDAL_DETECTIVE - icon = "detective" + icon = "town" /datum/award/achievement/mafia/psychologist name = "Psychologist Victory" desc = "You learned how to not reveal someone random night one! Or... maybe you're just a lucky bastard." database_id = MAFIA_MEDAL_PSYCHOLOGIST - icon = "psychologist" + icon = "town" /datum/award/achievement/mafia/chaplain name = "Chaplain Victory" desc = "Useless... until the one night the thoughtfeeder confidently claims themselves as detective. Mafia's true bullshit detector." database_id = MAFIA_MEDAL_CHAPLAIN - icon = "chaplain" + icon = "town" /datum/award/achievement/mafia/md name = "Medical Doctor Victory" desc = "Congratulations on learning how to not talk!" database_id = MAFIA_MEDAL_MD - icon = "md" + icon = "town" + +/datum/award/achievement/mafia/officer + name = "Security Officer Victory" + desc = "Don't worry, you can win this if you're dead! You... did use your ability to become dead, right?" + database_id = MAFIA_MEDAL_OFFICER + icon = "town" /datum/award/achievement/mafia/lawyer name = "Lawyer Victory" desc = "Oh don't mind me, i'm just the worst rol- Oops, I just instantly ended the game." database_id = MAFIA_MEDAL_LAWYER - icon = "lawyer" + icon = "town" /datum/award/achievement/mafia/hop name = "Head of Personnel Victory" desc = "King of Assistants, waster of a single mafia's night, thrower of games." database_id = MAFIA_MEDAL_HOP - icon = "hop" + icon = "town" + +/datum/award/achievement/mafia/warden + name = "Warden Victory" + desc = "Make changelings think you're detective, go on lockdown, actual detective investigates you and dies. Cha cha real smooth!" + database_id = MAFIA_MEDAL_WARDEN + icon = "town" + +/datum/award/achievement/mafia/hos + name = "Head of Security Victory" + desc = "Certified not shitcurity." + database_id = MAFIA_MEDAL_HOS + icon = "town" /datum/award/achievement/mafia/changeling name = "Changeling Victory" desc = "I think the changelings are metacomming." database_id = MAFIA_MEDAL_CHANGELING - icon = "changeling" + icon = "mafia" /datum/award/achievement/mafia/thoughtfeeder name = "Thoughtfeeder Victory" desc = "Clown's best friend. And Obsessed. And fugitive? Whose side are you on?!" database_id = MAFIA_MEDAL_THOUGHTFEEDER - icon = "thoughtfeeder" + icon = "mafia" /datum/award/achievement/mafia/traitor name = "Traitor Victory" desc = "Guys, we still have two more changelings to ki-!! TRAITOR VICTORY !!" database_id = MAFIA_MEDAL_TRAITOR - icon = "traitor" + icon = "neutral" /datum/award/achievement/mafia/nightmare name = "Nightmare Victory" desc = "DID YOUR LIGHT FLICKER?!" database_id = MAFIA_MEDAL_NIGHTMARE - icon = "nightmare" + icon = "neutral" /datum/award/achievement/mafia/fugitive name = "Fugitive Victory" desc = "I'm just the description on an achievement, but if you end up having to choose between town and changelings, go changelings." database_id = MAFIA_MEDAL_FUGITIVE - icon = "fugitive" + icon = "neutral" /datum/award/achievement/mafia/obsessed name = "Obsessed Victory" desc = "You got your target lynched, so instead of being spiteful and annoying, you're just smug and annoying." database_id = MAFIA_MEDAL_OBSESSED - icon = "obsessed" + icon = "neutral" /datum/award/achievement/mafia/clown name = "Clown Victory" desc = "Did you know this works on traitors, despite their immunity? If you hit the jackpot and manage to kill one, they'll salt into the next dimension. Clown tips!" database_id = MAFIA_MEDAL_CLOWN - icon = "clown" + icon = "neutral" ///ALL THE ACHIEVEMENTS FOR MISC MAFIA ODDITIES/// diff --git a/code/datums/achievements/misc_achievements.dm b/code/datums/achievements/misc_achievements.dm index a99a25ec77..0da38df8f3 100644 --- a/code/datums/achievements/misc_achievements.dm +++ b/code/datums/achievements/misc_achievements.dm @@ -144,7 +144,7 @@ /datum/award/achievement/misc/void_ascension name = "All that perish" - desc = "Place of a diffrent being, diffrent time. Everything ends there... but maybe it is just the beginning?" + desc = "Place of a different being, different time. Everything ends there... but maybe it is just the beginning?" database_id = MEDAL_VOID_ASCENSION icon = "voidascend" @@ -153,3 +153,9 @@ desc = "My eternal soul was destroyed to make a toolbox look funny and all I got was this achievement..." database_id = MEDAL_TOOLBOX_SOUL icon = "toolbox_soul" + +/datum/award/achievement/misc/chemistry_tut + name = "Perfect chemistry blossom" + desc = "Passed the chemistry tutorial with perfect purity!" + database_id = MEDAL_CHEM_TUT + icon = "chem_tut" diff --git a/code/datums/achievements/misc_scores.dm b/code/datums/achievements/misc_scores.dm new file mode 100644 index 0000000000..7ffc50c015 --- /dev/null +++ b/code/datums/achievements/misc_scores.dm @@ -0,0 +1,11 @@ +///How many times did we survive being a cripple? +/datum/award/score/hardcore_random + name = "Hardcore random points" + desc = "Well, I might be a blind, deaf, crippled guy, but hey, at least I'm alive." + database_id = HARDCORE_RANDOM_SCORE + +///How many maintenance pills did you eat? +/datum/award/score/maintenance_pill + name = "Maintenance Pills Consumed" + desc = "Wait why?" + database_id = MAINTENANCE_PILL_SCORE diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index e5ec2547e5..5c35450592 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -642,10 +642,6 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) if (!server_url) CRASH("Invalid cross comms config: [server_name]") world.Export("[server_url]?[list2params(message)]") -<<<<<<< HEAD -======= - ->>>>>>> origin/master /proc/ircadminwho() var/list/message = list("Admins: ") diff --git a/dependencies.sh b/dependencies.sh index 78192c3bc3..0fbad2153c 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -4,23 +4,21 @@ #Final authority on what's required to fully build the project # byond version -# Extracted from the Dockerfile. Change by editing Dockerfile's FROM command. -LIST="$(sed -n 's/.*byond:\([0-9]\+\)\.\([0-9]\+\).*/\1 \2/p' Dockerfile)" -export BYOND_MAJOR=${LIST% *} -export BYOND_MINOR=${LIST#* } -unset LIST +export BYOND_MAJOR=513 +export BYOND_MINOR=1536 #rust_g git tag export RUST_G_VERSION=0.4.7 #node version export NODE_VERSION=12 +export NODE_VERSION_PRECISE=12.20.0 # SpacemanDMM git tag export SPACEMAN_DMM_VERSION=suite-1.6 # Extools git tag -export EXTOOLS_VERSION=v0.0.6 +export EXTOOLS_VERSION=v0.0.7 # Python version for mapmerge and other tools export PYTHON_VERSION=3.6.8 diff --git a/tgstation.dme b/tgstation.dme index 80c30e3e31..fe5b9bc159 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -434,9 +434,9 @@ #include "code\datums\achievements\_awards.dm" #include "code\datums\achievements\boss_achievements.dm" #include "code\datums\achievements\boss_scores.dm" -#include "code\datums\achievements\hardcore_random.dm" #include "code\datums\achievements\mafia_achievements.dm" #include "code\datums\achievements\misc_achievements.dm" +#include "code\datums\achievements\misc_scores.dm" #include "code\datums\achievements\skill_achievements.dm" #include "code\datums\actions\beam_rifle.dm" #include "code\datums\actions\ninja.dm"