check_architecture x86_64 check_dependencies steamcmd alert dialog --backtitle "Linux Game manager" \ --msgbox \ "Please note this requires the game to be available either in your Steam library\nor as the installer purchased from gog.com.\nIf using the gog.com installer, please use the default path when prompted." -1 -1 --stdout dialog --backtitle "Linux Game Manager" \ --yes-label "GOG" \ --no-label "Steam" \ --yesno "Select installation method" -1 -1 --stdout installationMethod=$? appId="646570" gogFileName="slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh" if [[ $installMethod -eq 1 ]]; then # Steam Installation echo "Please enter Steam user name:" read -er steamUser steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir "${HOME}/.local/games/SlayTheSpire" +login "$steamUser" +app_update "$appId" +quit if [[ $? -ne 0 ]]; then dialog --backtitle "Linux Game Manager" \ --msgbox "Error installing game through Steam." -1 -1 --stdout exit 1 fi else # GOG Installation get_installer "$gogFileName" "https://www.gog.com/en/game/slay_the_spire" DISPLAY="" find ~/Downloads -maxdepth 1 -type f -name "$gogFileName" -exec bash "{}" \; || DISPLAY="" find ~/Desktop -maxdepth 1 -type f -name "$gogFileName" -exec bash "{}" \; if [[ $? -eq 0 ]]; then ln -sf "${HOME}/GOG Games/Slay the Spire/game" "${installPath}/SlayTheSpire" || { dialog --backtitle "Linux Game Manager" \ --msgbox "Error creating link to game directory." -1 -1 --stdout exit 1; } else dialog --backtitle "Linux Game Manager" \ --msgbox "Error installing game from GOG installer." -1 -1 --stdout exit 1 fi fi # Move files into place mkdir -p "${HOME}/.config/ModTheSpire" if [[ -f ~"/.config/ModTheSpire/mod_lists.json" ]]; then dialog --backtitle "Linux Game manager" \ --yesno "Existing mod_lists.json file found. Would you like to replace it?" -1 -1 --stdout && cp -v .files/SlayTheSpire/mod_lists.json "${HOME}/.config/ModTheSpire/mod_lists.json" else cp -v .files/SlayTheSpire/mod_lists.json "${HOME}/.config/ModTheSpire/mod_lists.json" fi cp -v .files/SlayTheSpire/MTS.sh "${HOME}/.local/games/SlayTheSpire/" # Get mods declare -A modsMap=( [mod the spire]=1605060445 [base mod]=1605833019 [stslib]=1609158507 [curses come first]=2304840098 [achievement enabler]=1692554109 [say the spire]=2239220106 ) installString="" for modId in ${modsMap[@]} ; do installString="$installString +workshop_download_item $appId $modId" done steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir "${HOME}/.local/games/SlayTheSpire/" +login anonymous $installString +quit if [[ $? -ne 0 ]]; then dialog --backtitle "Linux Game Manager" \ --msgbox "Error installing required mods. Some accessibility features may not be available." -1 -1 --stdout exit 1 fi mkdir -p "$HOME/.local/games/SlayTheSpire/mods" for modName in "${!modsMap[@]}" ; do if [[ "$modName" == "mod the spire" ]]; then ln -sr "$HOME/.local/games/SlayTheSpire/steamapps/workshop/content/$appId/${modsMap[$modName]}"/* "$HOME/.local/games/SlayTheSpire/" else ln -sr "$HOME/.local/games/SlayTheSpire/steamapps/workshop/content/$appId/${modsMap[$modName]}"/* "$HOME/.local/games/SlayTheSpire/mods/" fi if [[ $? -ne 0 ]] && [[ "$modName" == "say the spire" ]]; then dialog --backtitle "Linux Game Manager" \ --msgbox "Error installing SayTheSpire mod. Screen reader support will not be available." -1 -1 --stdout exit 1 fi done