Compare commits

...

19 Commits

Author SHA1 Message Date
Storm Dragon
771fe5d956 Updated Tornado Chicken. 2025-01-08 12:51:42 -05:00
Storm Dragon
4a0e6c83b8 Updated MUD launchers. Added Legends of Kallisti. 2024-12-31 11:33:08 -05:00
Storm Dragon
69631769f8 Updated terminal emulator function. Fixed End of Time Launcher. 2024-12-31 00:08:18 -05:00
Storm Dragon
06c3d87db0 Updated GMOTA launcher. 2024-12-29 22:17:31 -05:00
Storm Dragon
c556aa73ee Merge branch 'master' of git.stormux.org:storm/linux-game-manager 2024-12-29 21:26:32 -05:00
Storm Dragon
6a0fa006d9 Updated WolfenDoom launcher. 2024-12-29 21:26:15 -05:00
27fac7e007 Fix second check for gog installer in other location. 2024-12-29 12:27:34 -08:00
Storm Dragon
b489bb9a46 Updates for Slay the Spire installer. 2024-12-29 15:22:39 -05:00
Storm Dragon
a33c4a3c23 Continuing work on Slay the Spire. It didn't do well in the move. 2024-12-29 14:56:43 -05:00
Storm Dragon
a624691b0d Fixes to the Slay the Spire installer. 2024-12-29 12:02:44 -05:00
Storm Dragon
c70c50255f Use universal sound variable to set sounds for Project Brutality and Army of Drakeness. 2024-12-29 02:13:37 -05:00
Storm Dragon
0ac6d6fd57 keybindings via the command line are not very reliable. Created a readme instead. 2024-12-29 01:55:56 -05:00
Storm Dragon
ced1af728e set '+Toby_SnapToTargetTargetingMode' '0' for death match. 2024-12-28 23:02:15 -05:00
Storm Dragon
c5c5996c23 Updated the custom death match. Maps should work again. 2024-12-28 22:31:52 -05:00
Storm Dragon
f8e5b7ca75 Fixed the other modes which broke with addition of audio manual. 2024-12-28 20:34:50 -05:00
Storm Dragon
e0e240848d Added option for audio manual. 2024-12-28 17:52:24 -05:00
Storm Dragon
9fbc149e19 Add the music renamer if present for Toby Doom map. 2024-12-28 00:02:28 -05:00
Storm Dragon
8448d57710 Set the target system variable to work better with Project Brutality. 2024-12-26 22:00:10 -05:00
Storm Dragon
99067d9e75 Updated keybindings for Project Brutality, f for knife, v for kick, u for unloading, alt for alt attack. 2024-12-26 20:24:38 -05:00
23 changed files with 234 additions and 122 deletions

View File

@ -1,3 +1,5 @@
game="${0##*/}"
game="${game%.sh}"
check_dependencies git sox tt++ check_dependencies git sox tt++
git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-alteraeon.git | \ git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-alteraeon.git | \
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1 dialog --progressbox "Installing \"${game}\", please wait..." -1 -1

View File

@ -1,3 +1,5 @@
game="${0##*/}"
game="${game%.sh}"
check_dependencies git sox tt++ check_dependencies git sox tt++
git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-empiremud.git | \ git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-empiremud.git | \
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1 dialog --progressbox "Installing \"${game}\", please wait..." -1 -1

View File

@ -1,3 +1,5 @@
game="${0##*/}"
game="${game%.sh}"
check_dependencies git opusdec sox tt++ check_dependencies git opusdec sox tt++
git -C "${installPath}/" clone https://git.2mb.codes/~stormdragon2976/tintin-endoftime | \ git -C "${installPath}/" clone https://git.2mb.codes/~stormdragon2976/tintin-endoftime | \
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1 dialog --progressbox "Installing \"${game}\", please wait..." -1 -1

View File

@ -0,0 +1,5 @@
game="${0##*/}"
game="${game%.sh}"
check_dependencies git sox tt++
git -C "${installPath}/" clone --recurse-submodules https://github.com:hjozwiak/tintin-kallisti-pack | \
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1

View File

@ -1,24 +1,39 @@
check_architecture x86_64 check_architecture x86_64
echo "Please note this requires the game to be available either in your Steam library"
echo "or as the installer purchased from gog.com."
echo "If using the gog.com installer, please use the default path when prompted."
alert
check_dependencies steamcmd 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" appId="646570"
if ! [[ -f ~/Downloads/slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh ]] && ! [[ -f ~/Desktop/slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh ]]; then gogFileName="slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh"
if [[ $installMethod -eq 1 ]]; then
# Steam Installation
echo "Please enter Steam user name:" echo "Please enter Steam user name:"
read -er steamUser read -er steamUser
steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir "${HOME}/.local/games/SlayTheSpire" +login "$steamUser" +app_update "$appId" +quit 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 else
DISPLAY="" # GOG Installation
find ~/Downloads -maxdepth 1 -type f -name 'slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh' -exec bash "{}" \; || get_installer "$gogFileName" "https://www.gog.com/en/game/slay_the_spire"
find ~/Desktop -maxdepth 1 -type f -name 'slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh' -exec bash "{}" \; 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 if [[ $? -eq 0 ]]; then
ln -sf "${HOME}/GOG Games/Slay the Spire/game" "${installPath}/SlayTheSpire" || ln -sf "${HOME}/GOG Games/Slay the Spire/game" "${installPath}/SlayTheSpire" ||
{ echo "Error creating link." { dialog --backtitle "Linux Game Manager" \
exit 1; } --msgbox "Error creating link to game directory." -1 -1 --stdout
else exit 1; }
echo "Error installing game." else
dialog --backtitle "Linux Game Manager" \
--msgbox "Error installing game from GOG installer." -1 -1 --stdout
exit 1 exit 1
fi fi
fi fi
@ -27,13 +42,13 @@ mkdir -p "${HOME}/.config/ModTheSpire"
if [[ -f ~"/.config/ModTheSpire/mod_lists.json" ]]; then if [[ -f ~"/.config/ModTheSpire/mod_lists.json" ]]; then
dialog --backtitle "Linux Game manager" \ dialog --backtitle "Linux Game manager" \
--yesno "Existing mod_lists.json file found. Would you like to replace it?" -1 -1 --stdout && --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" cp -v .files/SlayTheSpire/mod_lists.json "${HOME}/.config/ModTheSpire/mod_lists.json"
else else
cp -v .files/SlayTheSpire/mod_lists.json "${HOME}/.config/ModTheSpire/mod_lists.json" cp -v .files/SlayTheSpire/mod_lists.json "${HOME}/.config/ModTheSpire/mod_lists.json"
fi fi
cp -v .files/SlayTheSpire/MTS.sh "${HOME}/.local/games/SlayTheSpire/" cp -v .files/SlayTheSpire/MTS.sh "${HOME}/.local/games/SlayTheSpire/"
# Get mods # Get mods
declare -A mods=( declare -A modsMap=(
[mod the spire]=1605060445 [mod the spire]=1605060445
[base mod]=1605833019 [base mod]=1605833019
[stslib]=1609158507 [stslib]=1609158507
@ -42,17 +57,25 @@ declare -A mods=(
[say the spire]=2239220106 [say the spire]=2239220106
) )
installString="" installString=""
for x in ${mods[@]} ; do for modId in ${modsMap[@]} ; do
installString="$installString +workshop_download_item $appId $x" installString="$installString +workshop_download_item $appId $modId"
done done
steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir "${HOME}/.local/games/SlayTheSpire/" +login anonymous $installString +quit 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" mkdir -p "$HOME/.local/games/SlayTheSpire/mods"
for x in "${!mods[@]}" ; do for modName in "${!modsMap[@]}" ; do
if [ "$x" == "mod the spire" ] ; then if [[ "$modName" == "mod the spire" ]]; then
ln -sr "$HOME/.local/games/SlayTheSpire/steamapps/workshop/content/$appId/${mods[$x]}"/* "$HOME/.local/games/SlayTheSpire/" ln -sr "$HOME/.local/games/SlayTheSpire/steamapps/workshop/content/$appId/${modsMap[$modName]}"/* "$HOME/.local/games/SlayTheSpire/"
else else
ln -sr "$HOME/.local/games/SlayTheSpire/steamapps/workshop/content/$appId/${mods[$x]}"/* "$HOME/.local/games/SlayTheSpire/mods/" 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 fi
done done
launcherPath="$(readlink -f "$0")"
launcherPath="${launcherPath%/*}"

View File

@ -1,3 +1,5 @@
game="${0##*/}"
game="${game%.sh}"
check_dependencies git sox tt++ check_dependencies git sox tt++
git -C "${installPath}/" clone --recurse-submodules https://github.com/stormdragon2976/tintin-stickmud.git | \ git -C "${installPath}/" clone --recurse-submodules https://github.com/stormdragon2976/tintin-stickmud.git | \
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1 dialog --progressbox "Installing \"${game}\", please wait..." -1 -1

View File

@ -1,6 +1,6 @@
check_architecture x86_64 check_architecture x86_64
get_installer "Ttc v3.0 linux.zip" "https://renzivan.itch.io/the-tornado-chicken" get_installer "Ttc v3.2 linux.zip" "https://renzivan.itch.io/the-tornado-chicken"
unzip -d "${installPath}/The Tornado Chicken" "${cache}/Ttc v3.0 linux.zip" unzip -d "${installPath}/The Tornado Chicken" "${cache}/Ttc v3.2 linux.zip"
chmod +x "${installPath}/The Tornado Chicken/Ttc" chmod +x "${installPath}/The Tornado Chicken/Ttc"
echo "Note: When the game first starts it will be playing very loud music with the built in suboptimal voice." echo "Note: When the game first starts it will be playing very loud music with the built in suboptimal voice."
echo "You are recommended to press page down several times to turn down the music, then go to settings and enable speech with screen reader, using speech dispatcher." echo "You are recommended to press page down several times to turn down the music, then go to settings and enable speech with screen reader, using speech dispatcher."

View File

@ -3,7 +3,7 @@ pushd "${mudPath%/*}"
git pull | \ git pull | \
dialog --progressbox "Checking for updates, please wait..." -1 -1 dialog --progressbox "Checking for updates, please wait..." -1 -1
if [[ -n "${COLORTERM}" ]]; then if [[ -n "${COLORTERM}" ]]; then
terminal_emulator tt++ ${mudPath##*/} terminal_emulator "${mudPath%/*}" "tt++" "${mudPath##*/}"
else else
tt++ ${mudPath##*/} tt++ ${mudPath##*/}
fi fi

View File

@ -3,7 +3,7 @@ pushd "${mudPath%/*}"
git pull | \ git pull | \
dialog --progressbox "Checking for updates, please wait..." -1 -1 dialog --progressbox "Checking for updates, please wait..." -1 -1
if [[ -n "${COLORTERM}" ]]; then if [[ -n "${COLORTERM}" ]]; then
terminal_emulator tt++ ${mudPath##*/} terminal_emulator "${mudPath%/*}" "tt++" "${mudPath##*/}"
else else
tt++ ${mudPath##*/} tt++ ${mudPath##*/}
fi fi

View File

@ -3,7 +3,7 @@ pushd "${mudPath%/*}"
git pull | \ git pull | \
dialog --progressbox "Checking for updates, please wait..." -1 -1 dialog --progressbox "Checking for updates, please wait..." -1 -1
if [[ -n "${COLORTERM}" ]]; then if [[ -n "${COLORTERM}" ]]; then
terminal_emulator tt++ ${mudPath##*/} terminal_emulator "${mudPath%/*}" "tt++" "${mudPath##*/}"
else else
tt++ ${mudPath##*/} tt++ "${mudPath%/*}" "${mudPath##*/}"
fi fi

View File

@ -32,6 +32,58 @@ speak() {
done done
} }
audio_manual() {
if command -v mpv &> /dev/null ; then
mediaPlayer=("mpv" "--really-quiet" "--no-video")
else
mediaPlayer=("play" "-qV0")
fi
local manualPath="${gamePath}/Manual"
declare -a menuList
for i in "${manualPath}"/*/ ; do
local path="${i%/}"
local name="${i/${manualPath}\//}"
local name="${name% *}"
menuList+=("$path" "$name")
done
manualPath="$(dialog --backtitle "Select a Manual" \
--clear \
--no-tags \
--menu "Please select one" 0 0 0 "${menuList[@]}" --stdout)"
[[ $? -ne 0 ]] && exit 0
# If user selected a manual, show the audio file menu
if [[ -n "$manualPath" ]]; then
declare -a audioList=("all" "Play All") # Start with "All" option
# Add all mp3 files to the menu
while IFS= read -r file; do
local filename="${file##*/}"
local menuname="${filename%.mp3}"
audioList+=("$file" "$menuname")
done < <(find "$manualPath" -name "*.mp3" | sort)
local selection
selection="$(dialog --backtitle "Select Audio Track" \
--clear \
--no-tags \
--menu "Please select one" 0 0 0 "${audioList[@]}" --stdout)"
[[ $? -ne 0 ]] && exit 0
if [[ -n "$selection" ]]; then
if [[ "$selection" == "all" ]]; then
# Play all files in order
find "$manualPath" -name "*.mp3" -print0 | sort -z | \
while IFS= read -r -d '' file; do
"${mediaPlayer[@]}" "$file"
done
else
# Play selected file
"${mediaPlayer[@]}" "$selection"
return
fi
fi
fi
}
# Dialog setup: # Dialog setup:
DIALOG_ITEM_HELP="" DIALOG_ITEM_HELP=""
export DIALOGOPTS='--no-lines --visit-items' export DIALOGOPTS='--no-lines --visit-items'
@ -180,17 +232,24 @@ if [[ "$doomLanguage" != "en" ]]; then
init_translation_db init_translation_db
fi fi
gameOption="$(dialog --backtitle "Select your Doom!" \ doomGames+=("manual" "Audio Manual")
--clear \ while [[ -z "${gameOption}" ]] || [[ "${gameOption}" == "manual" ]]; do
--no-tags \ gameOption="$(dialog --backtitle "Select your Doom!" \
--ok-label "Single Player" \ --clear \
--cancel-label "Death Match" \ --no-tags \
--extra-button \ --ok-label "Single Player" \
--extra-label "co-op" \ --cancel-label "Death Match" \
--help-button \ --extra-button \
--help-label "Exit" \ --extra-label "co-op" \
--menu "Please select one" 0 0 0 "${doomGames[@]}" --stdout)" --help-button \
buttonCode=$? --help-label "Exit" \
--menu "Please select one" 0 0 0 "${doomGames[@]}" --stdout)"
buttonCode=$?
[[ $buttonCode -ne 0 ]] && break
if [[ "${gameOption}" == "manual" ]]; then
audio_manual
fi
done
if [[ -e "${gamePath}/DoomMetalVol7.wad" ]]; then if [[ -e "${gamePath}/DoomMetalVol7.wad" ]]; then
gameOption+=" DoomMetalVol7.wad" gameOption+=" DoomMetalVol7.wad"
elif [[ -e "${gamePath}/DoomMetalVol6.wad" ]]; then elif [[ -e "${gamePath}/DoomMetalVol6.wad" ]]; then
@ -217,7 +276,7 @@ case ${buttonCode} in
dialog --backtitle "Deathmatch" --clear --msgbox "No ip address or URL given." -1 -1 --stdout dialog --backtitle "Deathmatch" --clear --msgbox "No ip address or URL given." -1 -1 --stdout
exit 1 exit 1
fi fi
flags=('-join' "${ipAddress}") flags=('-join' "${ipAddress}" '+Toby_SnapToTargetTargetingMode' '0')
else else
# List of maps included: # List of maps included:
maps=( maps=(
@ -281,6 +340,7 @@ case ${buttonCode} in
'-host' "${players}" '-host' "${players}"
'-skill' "${skillLevel}" '-skill' "${skillLevel}"
'-deathmatch' '-deathmatch'
'+Toby_SnapToTargetTargetingMode' '0'
'+set' 'sv_cheats' '1' '+set' 'sv_cheats' '1'
'+fraglimit' "$fraglimit" '+fraglimit' "$fraglimit"
'+dmflags' '16384' '+dmflags' '4' '+dmflags' '128' '+dmflags' '4096' '+dmflags' '16384' '+dmflags' '4' '+dmflags' '128' '+dmflags' '4096'
@ -346,6 +406,9 @@ case ${buttonCode} in
0) 0)
if [[ "${gameOption%% *}" == "custom_game" ]]; then if [[ "${gameOption%% *}" == "custom_game" ]]; then
custom_game custom_game
fi
if [[ -e "${gamePath}/Toby-Doom-Level-Music-Renamer.pk3" ]] && [[ "${gameOption}" =~ TobyDoomLevels.wad ]]; then
gameOption+=("${gamePath}/Toby-Doom-Level-Music-Renamer.pk3")
fi fi
launch_game ${gameOption[@]} "${flags[@]}" launch_game ${gameOption[@]} "${flags[@]}"
;; ;;

View File

@ -0,0 +1,9 @@
mudPath="${installPath}/tintin-kallisti-pack/kallisti.tin"
pushd "${mudPath%/*}"
git pull | \
dialog --progressbox "Checking for updates, please wait..." -1 -1
if [[ -n "${COLORTERM}" ]]; then
terminal_emulator "${mudPath%/*}" "tt++" "${mudPath##*/}"
else
tt++ ${mudPath##*/}
fi

35
.launch/Slay the Spire.game Normal file → Executable file
View File

@ -1,2 +1,33 @@
pushd "${installPath}" #!/usr/bin/env bash
"${launcherPath}/.scripts/SlayTheSpire.sh"
menulist() {
# Args: menu options.
# returns: selected tag
local i
local menuList
for i in $@ ; do
menuList+=("$i" "$i")
done
dialog --backtitle "Select a Slay the Spire profile." \
--clear \
--no-tags \
--menu "$(gettext "Please select one")" 0 0 0 "${menuList[@]}" --stdout
if [[ $? -ne 1 ]]; then
exit 0
fi
}
# Create a list of profiles
profiles=($(jq -r '.lists | keys[]' "${HOME}/.config/ModTheSpire/mod_lists.json"))
if [[ "${#profiles[@]}" -ne 1 ]]; then
currentProfile="$(menulist "${profiles[@]}")"
else
currentProfile="Default"
fi
pushd "${HOME}/.local/games/SlayTheSpire"
./MTS.sh --profile "$currentProfile"
popd
exit 0

View File

@ -1,33 +0,0 @@
#!/usr/bin/env bash
menulist() {
# Args: menu options.
# returns: selected tag
local i
local menuList
for i in $@ ; do
menuList+=("$i" "$i")
done
dialog --backtitle "Select a Slay the Spire profile." \
--clear \
--no-tags \
--menu "$(gettext "Please select one")" 0 0 0 "${menuList[@]}" --stdout
if [[ $? -ne 1 ]]; then
exit 0
fi
}
# Create a list of profiles
profiles=($(jq -r '.lists | keys[]' "${HOME}/.config/ModTheSpire/mod_lists.json"))
if [[ "${#profiles[@]}" -ne 1 ]]; then
currentProfile="$(menulist "${profiles[@]}")"
else
currentProfile="Default"
fi
pushd "${HOME}/.local/games/SlayTheSpire"
./MTS.sh --profile "$currentProfile"
popd
exit 0

View File

@ -4,7 +4,7 @@ pushd "${mudPath%/*}"
git pull | \ git pull | \
dialog --progressbox "Checking for updates, please wait..." -1 -1 dialog --progressbox "Checking for updates, please wait..." -1 -1
if [[ -n "${COLORTERM}" ]]; then if [[ -n "${COLORTERM}" ]]; then
terminal_emulator tt++ ${mudPath##*/} terminal_emulator "${mudPath%/*}" "tt++" "${mudPath##*/}"
else else
tt++ ${mudPath##*/} tt++ ${mudPath##*/}
fi fi

View File

@ -21,3 +21,5 @@ elif [[ -e "${gamePath}/DoomMetalVol6.wad" ]]; then
fi fi
source ${BASH_SOURCE[0]%/*}/.mapmenu source ${BASH_SOURCE[0]%/*}/.mapmenu
flags=('+Toby_UniversalBeacon_UseUniversalSounds' 'true')

View File

@ -3,7 +3,7 @@
# Set up the pk3 and wad files # Set up the pk3 and wad files
gameOption=( gameOption=(
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3" "${gamePath}/TobyAccMod_V${tobyVersion}.pk3"
"$gamePath/Addons/MENU/TobyV${tobyVersion%%-*}_"* "$gamePath/Addons/MENU/TobyV*_"*
) )
# Get a list of pk3s to use for the custom death match. # Get a list of pk3s to use for the custom death match.
@ -42,7 +42,7 @@ if [[ $buttonCode -eq 0 ]]; then
dialog --backtitle "Deathmatch" --clear --msgbox "No ip address or URL given." -1 -1 --stdout dialog --backtitle "Deathmatch" --clear --msgbox "No ip address or URL given." -1 -1 --stdout
exit 1 exit 1
fi fi
flags=('-join' "${ipAddress}") flags=('-join' "${ipAddress}" '+Toby_SnapToTargetTargetingMode' '0')
else else
# List of maps included: # List of maps included:
maps=( maps=(
@ -53,7 +53,9 @@ else
"5" "Ocean Fortress (2-4 players)" "5" "Ocean Fortress (2-4 players)"
"6" "Water Treatment Facility (2-4 players)" "6" "Water Treatment Facility (2-4 players)"
"7" "Phobos Base Site 4 (2-4 players)" "7" "Phobos Base Site 4 (2-4 players)"
"8" "Hangar Bay 18 (2-4 players)") "8" "Hangar Bay 18 (2-4 players)"
"9" "Garden of Demon (2-4 players)"
"10" "Outpost 69 (2-4 players)")
# Array of how many players a given map supports in dialog rangebox syntax # Array of how many players a given map supports in dialog rangebox syntax
declare -a mapPlayers=( declare -a mapPlayers=(
[1]="2 4" [1]="2 4"
@ -63,7 +65,9 @@ else
[5]="2 4" [5]="2 4"
[6]="2 4" [6]="2 4"
[7]="2 4" [7]="2 4"
[8]="2 4") [8]="2 4"
[9]="2 4"
[10]="2 4")
map="$(dialog --backtitle "Select Map" \ map="$(dialog --backtitle "Select Map" \
--clear \ --clear \
--no-tags \ --no-tags \
@ -102,6 +106,7 @@ else
'-host' "${players}" '-host' "${players}"
'-skill' "${skillLevel}" '-skill' "${skillLevel}"
'-deathmatch' '-deathmatch'
'+Toby_SnapToTargetTargetingMode' '0'
'+set' 'sv_cheats' '1' '+set' 'sv_cheats' '1'
'+fraglimit' "$fraglimit" '+fraglimit' "$fraglimit"
'+dmflags' '16384' '+dmflags' '4' '+dmflags' '128' '+dmflags' '4096' '+dmflags' '16384' '+dmflags' '4' '+dmflags' '128' '+dmflags' '4096'
@ -112,12 +117,5 @@ else
fi fi
gameOption+=("${pk3}" gameOption+=("${pk3}"
"${gamePath}/TobyDeathArena_V1-0.wad" "${gamePath}/Addons/MAPS/TobyDeathArena_V1-5.wad"
) )
# Check for and include if present a wad. Some people may not have it.
if [[ -e "${gamePath}/DoomMetalVol7.wad" ]]; then
gameOption+=" DoomMetalVol7.wad"
elif [[ -e "${gamePath}/DoomMetalVol6.wad" ]]; then
gameOption+=" DoomMetalVol6.wad"
fi

View File

@ -17,15 +17,11 @@ gameOption=(
source ${BASH_SOURCE[0]%/*}/.mapmenu source ${BASH_SOURCE[0]%/*}/.mapmenu
flags=( flags=(
# Key bindings
'+bind Alt +altattack'
'+bind Ctrl +attack'
'+bind G +User1'
'+bind U unreloader'
# Variables
'+Toby_NarrationOutputType 2' '+Toby_NarrationOutputType 2'
'+pb_exaggeratedrecoil false' '+pb_exaggeratedrecoil false'
'+pb_weapon_recoil_mod_horizontal 0' '+pb_weapon_recoil_mod_horizontal 0'
'+pb_weapon_recoil_mod_vertical 0' '+pb_weapon_recoil_mod_vertical 0'
'+vertspread true' '+vertspread true'
'+Toby_SnapToTargetTargetingMode' '1'
'+Toby_UniversalBeacon_UseUniversalSounds' 'true'
) )

View File

@ -26,14 +26,10 @@ fi
source ${BASH_SOURCE[0]%/*}/.mapmenu source ${BASH_SOURCE[0]%/*}/.mapmenu
flags=( flags=(
# Key bindings '+pb_exaggeratedrecoil' 'false'
'+bind Alt +altattack' '+pb_weapon_recoil_mod_horizontal' '0'
'+bind Ctrl +attack' '+pb_weapon_recoil_mod_vertical' '0'
'+bind G +User1' '+vertspread' 'true'
'+bind U unreloader' '+Toby_SnapToTargetTargetingMode' '1'
# Variables '+Toby_UniversalBeacon_UseUniversalSounds' 'false'
'+pb_exaggeratedrecoil false'
'+pb_weapon_recoil_mod_horizontal 0'
'+pb_weapon_recoil_mod_vertical 0'
'+vertspread true'
) )

View File

@ -25,15 +25,10 @@ fi
source ${BASH_SOURCE[0]%/*}/.mapmenu source ${BASH_SOURCE[0]%/*}/.mapmenu
flags=( flags=(
# Key bindings '+pb_exaggeratedrecoil' 'false'
'+bind Alt +altattack' '+pb_weapon_recoil_mod_horizontal' '0'
'+bind Ctrl +attack' '+pb_weapon_recoil_mod_vertical' '0'
'+bind G +User1' '+vertspread' 'true'
'+bind U unreloader' '+Toby_SnapToTargetTargetingMode' '1'
# Variables '+Toby_UniversalBeacon_UseUniversalSounds' 'false'
'+Toby_NarrationOutputType 2'
'+pb_exaggeratedrecoil false'
'+pb_weapon_recoil_mod_horizontal 0'
'+pb_weapon_recoil_mod_vertical 0'
'+vertspread true'
) )

View File

@ -0,0 +1,14 @@
In your ~/.config/gzdoom/gzdoom.ini file, if you do not have these four sections create them at the end. If they are there, you can just update the keybindings. It should look like this:
[Doom.PBInteractions.Bindings]
[Doom.PBInteractions.DoubleBindings]
[Doom.PBAdvMoves.Bindings]
F=+User2
G=+User1
U=unreloader
V=+User4
[Doom.PBAdvMoves.DoubleBindings]

View File

@ -12,8 +12,8 @@ check_dependencies "${gamePath}/Addons/WOLFENDOOM/orig_enh.pk3" \
# Set up the pk3 and wad files # Set up the pk3 and wad files
gameOption=( gameOption=(
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3" "${gamePath}/TobyAccMod_V${tobyVersion}.pk3"
"$gamePath/Addons/MENU/TobyV${tobyVersion%%-*}_"* "$gamePath/Addons/MENU/TobyV*_"*
"$gamePath/Addons/DOOM/TobyV${tobyVersion%%-*}_"*"Proximity"*".pk3" "$gamePath/Addons/DOOM/TobyV*_"*"Proximity"*".pk3"
) )
menuList=("${gamePath}/Addons/WOLFENDOOM/orig_enh.pk3" "WolfenDoom" menuList=("${gamePath}/Addons/WOLFENDOOM/orig_enh.pk3" "WolfenDoom"
@ -35,4 +35,6 @@ flags=(
'+bind X turn180' '+bind X turn180'
# Variables # Variables
'+Toby_NarrationOutputType 2' '+Toby_NarrationOutputType 2'
'+Toby_SnapToTargetTargetingMode' '1'
'+Toby_UniversalBeacon_UseUniversalSounds' 'true'
) )

View File

@ -111,13 +111,16 @@ check_dependencies() {
# Function to open a terminal emulator # Function to open a terminal emulator
terminal_emulator() { terminal_emulator() {
# Arguments workingDirectory, rest of arguments
local workingDir="$1"
shift
terminals=( terminals=(
"lxterminal" "lxterminal"
"mate-terminal" "mate-terminal"
"gnome-terminal" "gnome-terminal"
) )
for i in "${terminals[@]}" ; do for i in "${terminals[@]}" ; do
if command $i --working-directory="${game%/*}" -e $* ; then if command $i --working-directory="${workingDir}" -e "$@" ; then
return return
fi fi
done done