82 lines
3.6 KiB
Bash
82 lines
3.6 KiB
Bash
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
|