support for tgs4 noconfigs needed***

This commit is contained in:
Letter N
2021-03-03 17:33:14 +08:00
parent 754c24748e
commit a87e4533e5
20 changed files with 239 additions and 157 deletions

View File

@@ -22,7 +22,6 @@ tgstation.int
tgstation.rsc tgstation.rsc
tgstation.lk tgstation.lk
tgstation.dyn.rsc tgstation.dyn.rsc
libmariadb.dll *.dll
rust_g.dll
BSQL.dll
Dockerfile Dockerfile
tools/bootstrap/.cache

View File

@@ -12,3 +12,9 @@ indent_size = 2
[*.py] [*.py]
indent_style = space indent_style = space
[*.md]
trim_trailing_whitespace = false
[Dockerfile]
indent_style = space

2
.gitattributes vendored
View File

@@ -15,7 +15,7 @@
*.py text eol=lf *.py text eol=lf
*.scss text eol=lf *.scss text eol=lf
*.sh text eol=lf *.sh text eol=lf
# *.sql text eol=lf *.sql text eol=lf
*.svg text eol=lf *.svg text eol=lf
*.ts text eol=lf *.ts text eol=lf
*.tsx text eol=lf *.tsx text eol=lf

3
.gitignore vendored
View File

@@ -231,3 +231,6 @@ tools/LinuxOneShot/Database
tools/LinuxOneShot/TGS_Config tools/LinuxOneShot/TGS_Config
tools/LinuxOneShot/TGS_Instances tools/LinuxOneShot/TGS_Instances
tools/LinuxOneShot/TGS_Logs tools/LinuxOneShot/TGS_Logs
# Common build tooling
!/tools/build

8
.tgs4.yml Normal file
View File

@@ -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

View File

@@ -5,6 +5,7 @@
"EditorConfig.EditorConfig", "EditorConfig.EditorConfig",
"arcanis.vscode-zipfs", "arcanis.vscode-zipfs",
"dbaeumer.vscode-eslint", "dbaeumer.vscode-eslint",
"kevinkyang.auto-comment-blocks" "stylemistake.auto-comment-blocks",
"Donkie.vscode-tgstation-test-adapter"
] ]
} }

View File

@@ -1,8 +1,10 @@
{ {
"eslint.nodePath": "tgui/.yarn/sdks", "eslint.nodePath": "./tgui/.yarn/sdks",
"eslint.workingDirectories": [ "eslint.workingDirectories": [
"./tgui" "./tgui"
], ],
"typescript.tsdk": "./tgui/.yarn/sdks/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true,
"search.exclude": { "search.exclude": {
"tgui/.yarn": true, "tgui/.yarn": true,
"tgui/.pnp.*": true "tgui/.pnp.*": true
@@ -14,5 +16,6 @@
} }
], ],
"files.eol": "\n", "files.eol": "\n",
"gitlens.advanced.blame.customArguments": ["-w"] "gitlens.advanced.blame.customArguments": ["-w"],
"tgstationTestExplorer.project.resultsType": "json"
} }

2
Build.bat Normal file
View File

@@ -0,0 +1,2 @@
@call tools\build\build
@pause

View File

@@ -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 dpkg --add-architecture i386 \
&& apt-get update \
RUN apt-get update \ && apt-get upgrade -y \
&& apt-get dist-upgrade -y \
&& apt-get install -y --no-install-recommends \ && 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 WORKDIR /rust_g
RUN apt-get install -y --no-install-recommends \ RUN apt-get install -y --no-install-recommends \
libssl-dev \ pkg-config:i386 \
pkg-config \ libssl-dev:i386 \
curl \ gcc-multilib \
gcc-multilib \ git \
&& curl https://sh.rustup.rs -sSf | sh -s -- -y --default-host i686-unknown-linux-gnu \
&& git init \ && git init \
&& git remote add origin https://github.com/tgstation/rust-g && git remote add origin https://github.com/tgstation/rust-g
COPY dependencies.sh . COPY dependencies.sh .
RUN /bin/bash -c "source dependencies.sh \ RUN . ./dependencies.sh \
&& git fetch --depth 1 origin \$RUST_G_VERSION" \ && git fetch --depth 1 origin "${RUST_G_VERSION}" \
&& git checkout FETCH_HEAD \ && git checkout FETCH_HEAD \
&& ~/.cargo/bin/cargo build --release && env PKG_CONFIG_ALLOW_CROSS=1 ~/.cargo/bin/cargo build --release --target i686-unknown-linux-gnu
FROM base as dm_base
# final = byond + runtime deps + rust_g + build
FROM byond
WORKDIR /tgstation 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=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" ] VOLUME [ "/tgstation/config", "/tgstation/data" ]
ENTRYPOINT [ "DreamDaemon", "tgstation.dmb", "-port", "1337", "-trusted", "-close", "-verbose" ] ENTRYPOINT [ "DreamDaemon", "tgstation.dmb", "-port", "1337", "-trusted", "-close", "-verbose" ]
EXPOSE 1337

View File

@@ -4,96 +4,105 @@
#define ACHIEVEMENT_SCORE "score" #define ACHIEVEMENT_SCORE "score"
//Misc Medal hub IDs //Misc Medal hub IDs
#define MEDAL_METEOR "Your Life Before Your Eyes" #define MEDAL_METEOR "Your Life Before Your Eyes"
#define MEDAL_PULSE "Jackpot" #define MEDAL_PULSE "Jackpot"
#define MEDAL_TIMEWASTE "Overextended The Joke" #define MEDAL_TIMEWASTE "Overextended The Joke"
#define MEDAL_RODSUPLEX "Feat of Strength" #define MEDAL_RODSUPLEX "Feat of Strength"
#define MEDAL_CLOWNCARKING "Round and Full" #define MEDAL_CLOWNCARKING "Round and Full"
#define MEDAL_THANKSALOT "The Best Driver" #define MEDAL_THANKSALOT "The Best Driver"
#define MEDAL_HELBITALJANKEN "Hel-bent on Winning" #define MEDAL_HELBITALJANKEN "Hel-bent on Winning"
#define MEDAL_MATERIALCRAFT "Getting an Upgrade" #define MEDAL_MATERIALCRAFT "Getting an Upgrade"
#define MEDAL_DISKPLEASE "Disk, Please!" #define MEDAL_DISKPLEASE "Disk, Please!"
#define MEDAL_GAMER "I'm Not Important" #define MEDAL_GAMER "I'm Not Important"
#define MEDAL_VENDORSQUISH "Teenage Anarchist" #define MEDAL_VENDORSQUISH "Teenage Anarchist"
#define MEDAL_SWIRLIE "Bowl-d" #define MEDAL_SWIRLIE "Bowl-d"
#define MEDAL_SELFOUCH "Hands???" #define MEDAL_SELFOUCH "Hands???"
#define MEDAL_SANDMAN "Mister Sandman" #define MEDAL_SANDMAN "Mister Sandman"
#define MEDAL_CLEANBOSS "Cleanboss" #define MEDAL_CLEANBOSS "Cleanboss"
#define MEDAL_RULE8 "Rule 8" #define MEDAL_RULE8 "Rule 8"
#define MEDAL_LONGSHIFT "longshift" #define MEDAL_LONGSHIFT "longshift"
#define MEDAL_SNAIL "KKKiiilll mmmeee" #define MEDAL_SNAIL "KKKiiilll mmmeee"
#define MEDAL_LOOKOUTSIR "Look Out, Sir!" #define MEDAL_LOOKOUTSIR "Look Out, Sir!"
#define MEDAL_GOTTEM "GOTTEM" #define MEDAL_GOTTEM "GOTTEM"
#define MEDAL_ASCENSION "Ascension" #define MEDAL_ASCENSION "Ascension"
#define MEDAL_FRENCHING "FrenchingTheBubble" #define MEDAL_FRENCHING "FrenchingTheBubble"
#define MEDAL_ASH_ASCENSION "Ash" #define MEDAL_ASH_ASCENSION "Ash"
#define MEDAL_FLESH_ASCENSION "Flesh" #define MEDAL_FLESH_ASCENSION "Flesh"
#define MEDAL_RUST_ASCENSION "Rust" #define MEDAL_RUST_ASCENSION "Rust"
#define MEDAL_VOID_ASCENSION "Void" #define MEDAL_VOID_ASCENSION "Void"
#define MEDAL_TOOLBOX_SOUL "Toolsoul" #define MEDAL_TOOLBOX_SOUL "Toolsoul"
#define MEDAL_CHEM_TUT "Beginner Chemist"
//Skill medal hub IDs //Skill medal hub IDs
#define MEDAL_LEGENDARY_MINER "Legendary Miner" #define MEDAL_LEGENDARY_MINER "Legendary Miner"
//Mafia medal hub IDs (wins) //Mafia medal hub IDs (wins)
#define MAFIA_MEDAL_ASSISTANT "Assistant" #define MAFIA_MEDAL_ASSISTANT "Assistant"
#define MAFIA_MEDAL_DETECTIVE "Detective" #define MAFIA_MEDAL_DETECTIVE "Detective"
#define MAFIA_MEDAL_PSYCHOLOGIST "Psychologist" #define MAFIA_MEDAL_PSYCHOLOGIST "Psychologist"
#define MAFIA_MEDAL_CHAPLAIN "Chaplain" #define MAFIA_MEDAL_CHAPLAIN "Chaplain"
#define MAFIA_MEDAL_MD "Medical Doctor" #define MAFIA_MEDAL_MD "Medical Doctor"
#define MAFIA_MEDAL_LAWYER "Lawyer" #define MAFIA_MEDAL_OFFICER "Security Officer"
#define MAFIA_MEDAL_HOP "Head of Personnel" #define MAFIA_MEDAL_LAWYER "Lawyer"
#define MAFIA_MEDAL_CHANGELING "CHANGELING" #define MAFIA_MEDAL_HOP "Head of Personnel"
#define MAFIA_MEDAL_THOUGHTFEEDER "Thoughtfeeder" #define MAFIA_MEDAL_HOS "Head of Security"
#define MAFIA_MEDAL_TRAITOR "Traitor" #define MAFIA_MEDAL_WARDEN "Warden"
#define MAFIA_MEDAL_NIGHTMARE "Nightmare" #define MAFIA_MEDAL_CHANGELING "CHANGELING"
#define MAFIA_MEDAL_FUGITIVE "Fugitive" #define MAFIA_MEDAL_THOUGHTFEEDER "Thoughtfeeder"
#define MAFIA_MEDAL_OBSESSED "Obsessed" #define MAFIA_MEDAL_TRAITOR "Traitor"
#define MAFIA_MEDAL_CLOWN "Clown" #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) //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 //Boss medals
// Medal hub IDs for boss medals (Pre-fixes) // Medal hub IDs for boss medals (Pre-fixes)
#define BOSS_MEDAL_ANY "Boss Killer" #define BOSS_MEDAL_ANY "Boss Killer"
#define BOSS_MEDAL_MINER "Blood-drunk Miner Killer" #define BOSS_MEDAL_MINER "Blood-drunk Miner Killer"
#define BOSS_MEDAL_FROSTMINER "Demonic-frost Miner Killer" #define BOSS_MEDAL_FROSTMINER "Demonic-frost Miner Killer"
#define BOSS_MEDAL_BUBBLEGUM "Bubblegum Killer" #define BOSS_MEDAL_BUBBLEGUM "Bubblegum Killer"
#define BOSS_MEDAL_COLOSSUS "Colossus Killer" #define BOSS_MEDAL_COLOSSUS "Colossus Killer"
#define BOSS_MEDAL_DRAKE "Drake Killer" #define BOSS_MEDAL_DRAKE "Drake Killer"
#define BOSS_MEDAL_HIEROPHANT "Hierophant Killer" #define BOSS_MEDAL_HIEROPHANT "Hierophant Killer"
#define BOSS_MEDAL_LEGION "Legion Killer" #define BOSS_MEDAL_LEGION "Legion Killer"
#define BOSS_MEDAL_TENDRIL "Tendril Exterminator" #define BOSS_MEDAL_TENDRIL "Tendril Exterminator"
#define BOSS_MEDAL_SWARMERS "Swarmer Beacon Killer" #define BOSS_MEDAL_SWARMERS "Swarmer Beacon Killer"
#define BOSS_MEDAL_WENDIGO "Wendigo Killer" #define BOSS_MEDAL_WENDIGO "Wendigo Killer"
#define BOSS_MEDAL_KINGGOAT "King Goat Killer" #define BOSS_MEDAL_KINGGOAT "King Goat Killer"
#define BOSS_MEDAL_MINER_CRUSHER "Blood-drunk Miner Crusher" #define BOSS_MEDAL_MINER_CRUSHER "Blood-drunk Miner Crusher"
#define BOSS_MEDAL_FROSTMINER_CRUSHER "Demonic-frost Miner Crusher" #define BOSS_MEDAL_FROSTMINER_CRUSHER "Demonic-frost Miner Crusher"
#define BOSS_MEDAL_BUBBLEGUM_CRUSHER "Bubblegum Crusher" #define BOSS_MEDAL_BUBBLEGUM_CRUSHER "Bubblegum Crusher"
#define BOSS_MEDAL_COLOSSUS_CRUSHER "Colossus Crusher" #define BOSS_MEDAL_COLOSSUS_CRUSHER "Colossus Crusher"
#define BOSS_MEDAL_DRAKE_CRUSHER "Drake Crusher" #define BOSS_MEDAL_DRAKE_CRUSHER "Drake Crusher"
#define BOSS_MEDAL_HIEROPHANT_CRUSHER "Hierophant Crusher" #define BOSS_MEDAL_HIEROPHANT_CRUSHER "Hierophant Crusher"
#define BOSS_MEDAL_LEGION_CRUSHER "Legion Crusher" #define BOSS_MEDAL_LEGION_CRUSHER "Legion Crusher"
#define BOSS_MEDAL_SWARMERS_CRUSHER "Swarmer Beacon Crusher" #define BOSS_MEDAL_SWARMERS_CRUSHER "Swarmer Beacon Crusher"
#define BOSS_MEDAL_WENDIGO_CRUSHER "Wendigo Crusher" #define BOSS_MEDAL_WENDIGO_CRUSHER "Wendigo Crusher"
#define BOSS_MEDAL_KINGGOAT_CRUSHER "King Goat Crusher" #define BOSS_MEDAL_KINGGOAT_CRUSHER "King Goat Crusher"
// Medal hub IDs for boss-kill scores // Medal hub IDs for boss-kill scores
#define BOSS_SCORE "Bosses Killed" #define BOSS_SCORE "Bosses Killed"
#define MINER_SCORE "BDMs Killed" #define MINER_SCORE "BDMs Killed"
#define FROST_MINER_SCORE "DFMs Killed" #define FROST_MINER_SCORE "DFMs Killed"
#define BUBBLEGUM_SCORE "Bubblegum Killed" #define BUBBLEGUM_SCORE "Bubblegum Killed"
#define COLOSSUS_SCORE "Colossus Killed" #define COLOSSUS_SCORE "Colossus Killed"
#define DRAKE_SCORE "Drakes Killed" #define DRAKE_SCORE "Drakes Killed"
#define HIEROPHANT_SCORE "Hierophants Killed" #define HIEROPHANT_SCORE "Hierophants Killed"
#define LEGION_SCORE "Legion Killed" #define LEGION_SCORE "Legion Killed"
#define SWARMER_BEACON_SCORE "Swarmer Beacs Killed" #define SWARMER_BEACON_SCORE "Swarmer Beacs Killed"
#define WENDIGO_SCORE "Wendigos Killed" #define WENDIGO_SCORE "Wendigos Killed"
#define KINGGOAT_SCORE "King Goat Killed" #define KINGGOAT_SCORE "King Goat Killed"
#define TENDRIL_CLEAR_SCORE "Tendrils 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" #define HARDCORE_RANDOM_SCORE "Hardcore Random Score"
// DB ID for amount of consumed maintenance pills
#define MAINTENANCE_PILL_SCORE "Maintenance Pill Score"

View File

@@ -53,7 +53,7 @@ SUBSYSTEM_DEF(achievements)
/datum/controller/subsystem/achievements/proc/update_metadata() /datum/controller/subsystem/achievements/proc/update_metadata()
var/list/current_metadata = list() var/list/current_metadata = list()
//select metadata here //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)) if(!Q.Execute(async = TRUE))
qdel(Q) qdel(Q)
return return

View File

@@ -32,8 +32,9 @@
set waitfor = FALSE set waitfor = FALSE
var/list/kv = list() var/list/kv = list()
var/datum/DBQuery/Query = SSdbcore.NewQuery( var/datum/db_query/Query = SSdbcore.NewQuery(
"SELECT achievement_key,value FROM [format_table_name("achievements")] WHERE ckey = [owner_ckey]", "SELECT achievement_key,value FROM [format_table_name("achievements")] WHERE ckey = :ckey",
list("ckey" = owner_ckey)
) )
if(!Query.Execute()) if(!Query.Execute())
qdel(Query) qdel(Query)

View File

@@ -44,8 +44,9 @@
///Get raw numerical achievement value from the database ///Get raw numerical achievement value from the database
/datum/award/proc/get_raw_value(key) /datum/award/proc/get_raw_value(key)
var/datum/DBQuery/Q = SSdbcore.NewQuery( var/datum/db_query/Q = SSdbcore.NewQuery(
"SELECT value FROM [format_table_name("achievements")] WHERE ckey = [key] AND achievement_key = [database_id]" "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)) if(!Q.Execute(async = TRUE))
qdel(Q) qdel(Q)
@@ -98,8 +99,9 @@
.["achievement_type"] = "score" .["achievement_type"] = "score"
/datum/award/score/proc/LoadHighScores() /datum/award/score/proc/LoadHighScores()
var/datum/DBQuery/Q = SSdbcore.NewQuery( var/datum/db_query/Q = SSdbcore.NewQuery(
"SELECT ckey,value FROM [format_table_name("achievements")] WHERE achievement_key = [database_id] ORDER BY value DESC LIMIT 50" "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)) if(!Q.Execute(async = TRUE))
qdel(Q) qdel(Q)

View File

@@ -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

View File

@@ -8,85 +8,103 @@
name = "Assistant Victory" name = "Assistant Victory"
desc = "If you got killed instead of someone more important, you just flexed the true strength of your \"\"\"\"role\"\"\"\"." desc = "If you got killed instead of someone more important, you just flexed the true strength of your \"\"\"\"role\"\"\"\"."
database_id = MAFIA_MEDAL_ASSISTANT database_id = MAFIA_MEDAL_ASSISTANT
icon = "assistant" icon = "town"
/datum/award/achievement/mafia/detective /datum/award/achievement/mafia/detective
name = "Detective Victory" name = "Detective Victory"
desc = "If you did this with a Medical Doctor in the game, i'm not really that impressed." desc = "If you did this with a Medical Doctor in the game, i'm not really that impressed."
database_id = MAFIA_MEDAL_DETECTIVE database_id = MAFIA_MEDAL_DETECTIVE
icon = "detective" icon = "town"
/datum/award/achievement/mafia/psychologist /datum/award/achievement/mafia/psychologist
name = "Psychologist Victory" name = "Psychologist Victory"
desc = "You learned how to not reveal someone random night one! Or... maybe you're just a lucky bastard." desc = "You learned how to not reveal someone random night one! Or... maybe you're just a lucky bastard."
database_id = MAFIA_MEDAL_PSYCHOLOGIST database_id = MAFIA_MEDAL_PSYCHOLOGIST
icon = "psychologist" icon = "town"
/datum/award/achievement/mafia/chaplain /datum/award/achievement/mafia/chaplain
name = "Chaplain Victory" name = "Chaplain Victory"
desc = "Useless... until the one night the thoughtfeeder confidently claims themselves as detective. Mafia's true bullshit detector." desc = "Useless... until the one night the thoughtfeeder confidently claims themselves as detective. Mafia's true bullshit detector."
database_id = MAFIA_MEDAL_CHAPLAIN database_id = MAFIA_MEDAL_CHAPLAIN
icon = "chaplain" icon = "town"
/datum/award/achievement/mafia/md /datum/award/achievement/mafia/md
name = "Medical Doctor Victory" name = "Medical Doctor Victory"
desc = "Congratulations on learning how to not talk!" desc = "Congratulations on learning how to not talk!"
database_id = MAFIA_MEDAL_MD 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 /datum/award/achievement/mafia/lawyer
name = "Lawyer Victory" name = "Lawyer Victory"
desc = "Oh don't mind me, i'm just the worst rol- Oops, I just instantly ended the game." desc = "Oh don't mind me, i'm just the worst rol- Oops, I just instantly ended the game."
database_id = MAFIA_MEDAL_LAWYER database_id = MAFIA_MEDAL_LAWYER
icon = "lawyer" icon = "town"
/datum/award/achievement/mafia/hop /datum/award/achievement/mafia/hop
name = "Head of Personnel Victory" name = "Head of Personnel Victory"
desc = "King of Assistants, waster of a single mafia's night, thrower of games." desc = "King of Assistants, waster of a single mafia's night, thrower of games."
database_id = MAFIA_MEDAL_HOP 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 /datum/award/achievement/mafia/changeling
name = "Changeling Victory" name = "Changeling Victory"
desc = "I think the changelings are metacomming." desc = "I think the changelings are metacomming."
database_id = MAFIA_MEDAL_CHANGELING database_id = MAFIA_MEDAL_CHANGELING
icon = "changeling" icon = "mafia"
/datum/award/achievement/mafia/thoughtfeeder /datum/award/achievement/mafia/thoughtfeeder
name = "Thoughtfeeder Victory" name = "Thoughtfeeder Victory"
desc = "Clown's best friend. And Obsessed. And fugitive? Whose side are you on?!" desc = "Clown's best friend. And Obsessed. And fugitive? Whose side are you on?!"
database_id = MAFIA_MEDAL_THOUGHTFEEDER database_id = MAFIA_MEDAL_THOUGHTFEEDER
icon = "thoughtfeeder" icon = "mafia"
/datum/award/achievement/mafia/traitor /datum/award/achievement/mafia/traitor
name = "Traitor Victory" name = "Traitor Victory"
desc = "Guys, we still have two more changelings to ki-!! TRAITOR VICTORY !!" desc = "Guys, we still have two more changelings to ki-!! TRAITOR VICTORY !!"
database_id = MAFIA_MEDAL_TRAITOR database_id = MAFIA_MEDAL_TRAITOR
icon = "traitor" icon = "neutral"
/datum/award/achievement/mafia/nightmare /datum/award/achievement/mafia/nightmare
name = "Nightmare Victory" name = "Nightmare Victory"
desc = "DID YOUR LIGHT FLICKER?!" desc = "DID YOUR LIGHT FLICKER?!"
database_id = MAFIA_MEDAL_NIGHTMARE database_id = MAFIA_MEDAL_NIGHTMARE
icon = "nightmare" icon = "neutral"
/datum/award/achievement/mafia/fugitive /datum/award/achievement/mafia/fugitive
name = "Fugitive Victory" 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." 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 database_id = MAFIA_MEDAL_FUGITIVE
icon = "fugitive" icon = "neutral"
/datum/award/achievement/mafia/obsessed /datum/award/achievement/mafia/obsessed
name = "Obsessed Victory" name = "Obsessed Victory"
desc = "You got your target lynched, so instead of being spiteful and annoying, you're just smug and annoying." desc = "You got your target lynched, so instead of being spiteful and annoying, you're just smug and annoying."
database_id = MAFIA_MEDAL_OBSESSED database_id = MAFIA_MEDAL_OBSESSED
icon = "obsessed" icon = "neutral"
/datum/award/achievement/mafia/clown /datum/award/achievement/mafia/clown
name = "Clown Victory" 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!" 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 database_id = MAFIA_MEDAL_CLOWN
icon = "clown" icon = "neutral"
///ALL THE ACHIEVEMENTS FOR MISC MAFIA ODDITIES/// ///ALL THE ACHIEVEMENTS FOR MISC MAFIA ODDITIES///

View File

@@ -144,7 +144,7 @@
/datum/award/achievement/misc/void_ascension /datum/award/achievement/misc/void_ascension
name = "All that perish" 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 database_id = MEDAL_VOID_ASCENSION
icon = "voidascend" 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..." desc = "My eternal soul was destroyed to make a toolbox look funny and all I got was this achievement..."
database_id = MEDAL_TOOLBOX_SOUL database_id = MEDAL_TOOLBOX_SOUL
icon = "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"

View File

@@ -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

View File

@@ -642,10 +642,6 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
if (!server_url) if (!server_url)
CRASH("Invalid cross comms config: [server_name]") CRASH("Invalid cross comms config: [server_name]")
world.Export("[server_url]?[list2params(message)]") world.Export("[server_url]?[list2params(message)]")
<<<<<<< HEAD
=======
>>>>>>> origin/master
/proc/ircadminwho() /proc/ircadminwho()
var/list/message = list("Admins: ") var/list/message = list("Admins: ")

View File

@@ -4,23 +4,21 @@
#Final authority on what's required to fully build the project #Final authority on what's required to fully build the project
# byond version # byond version
# Extracted from the Dockerfile. Change by editing Dockerfile's FROM command. export BYOND_MAJOR=513
LIST="$(sed -n 's/.*byond:\([0-9]\+\)\.\([0-9]\+\).*/\1 \2/p' Dockerfile)" export BYOND_MINOR=1536
export BYOND_MAJOR=${LIST% *}
export BYOND_MINOR=${LIST#* }
unset LIST
#rust_g git tag #rust_g git tag
export RUST_G_VERSION=0.4.7 export RUST_G_VERSION=0.4.7
#node version #node version
export NODE_VERSION=12 export NODE_VERSION=12
export NODE_VERSION_PRECISE=12.20.0
# SpacemanDMM git tag # SpacemanDMM git tag
export SPACEMAN_DMM_VERSION=suite-1.6 export SPACEMAN_DMM_VERSION=suite-1.6
# Extools git tag # Extools git tag
export EXTOOLS_VERSION=v0.0.6 export EXTOOLS_VERSION=v0.0.7
# Python version for mapmerge and other tools # Python version for mapmerge and other tools
export PYTHON_VERSION=3.6.8 export PYTHON_VERSION=3.6.8

View File

@@ -434,9 +434,9 @@
#include "code\datums\achievements\_awards.dm" #include "code\datums\achievements\_awards.dm"
#include "code\datums\achievements\boss_achievements.dm" #include "code\datums\achievements\boss_achievements.dm"
#include "code\datums\achievements\boss_scores.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\mafia_achievements.dm"
#include "code\datums\achievements\misc_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\achievements\skill_achievements.dm"
#include "code\datums\actions\beam_rifle.dm" #include "code\datums\actions\beam_rifle.dm"
#include "code\datums\actions\ninja.dm" #include "code\datums\actions\ninja.dm"