Added game Monkey Spank.

This commit is contained in:
Storm Dragon 2022-03-13 14:39:06 -04:00
parent 2352ad132d
commit 7c3201a12c
2 changed files with 70 additions and 65 deletions

View File

@ -1,4 +1,4 @@
Linux Game manager
## Linux Game manager
Installer and launcher for accessible to the blind games that run natively in Linux.

View File

@ -61,7 +61,7 @@ check_update() {
# Function to open urls
open_url() {
xdg-open "${*}" 2> /dev/null
xdg-open "${*}" 2> /dev/null
}
# Create desktop launcher file
@ -128,7 +128,7 @@ download() {
# Remove the destination file if it is empty.
test -s "${cache}/${dest}" || rm -f "${cache}/${dest}" 2> /dev/null
if [[ "${redownload}" == "true" ]] && [[ -e "${cache}/${dest}" ]]; then
rm -v "${cache}/${dest}"
rm -v "${cache}/${dest}"
fi
# Skip if the item is in cache.
test -e "${cache}/${dest}" && continue
@ -140,32 +140,32 @@ download() {
}
get_installer() {
trap "exit 0" SIGINT
# If the file is in cache nothing else needs to be done.
if [[ -f "${cache}/$1" ]]; then
return
fi
# Create message for dialog.
local message="Make sure $1 is available in either your Downloads or Desktop directory and press enter to continue."
if [[ -n "$2" ]]; then
message+="\n\nThe last good known URL for $game is:"
message+="\n$2"
fi
if echo "$2" | xclip -selection clipboard 2> /dev/null ; then
message+="\n\nThe URL has been copied to the clipboard."
fi
dialog --ok-label "Continue" \
--backtitle "Linux Game Manager" \
--msgbox "$message" -1 -1
# Search the Desktop and Downloads directories for the installation file
for i in ~/Downloads ~/Desktop ; do
find $i -type f -name "$1" -exec mv -v {} "${cache}/" \;
done
# If the file is still not available abort.
if [[ ! -f "${cache}/$1" ]]; then
echo "couldn't find $1. Please download the file and try again."
exit 1
fi
trap "exit 0" SIGINT
# If the file is in cache nothing else needs to be done.
if [[ -f "${cache}/$1" ]]; then
return
fi
# Create message for dialog.
local message="Make sure $1 is available in either your Downloads or Desktop directory and press enter to continue."
if [[ -n "$2" ]]; then
message+="\n\nThe last good known URL for $game is:"
message+="\n$2"
fi
if echo "$2" | xclip -selection clipboard 2> /dev/null ; then
message+="\n\nThe URL has been copied to the clipboard."
fi
dialog --ok-label "Continue" \
--backtitle "Linux Game Manager" \
--msgbox "$message" -1 -1
# Search the Desktop and Downloads directories for the installation file
for i in ~/Downloads ~/Desktop ; do
find $i -type f -name "$1" -exec mv -v {} "${cache}/" \;
done
# If the file is still not available abort.
if [[ ! -f "${cache}/$1" ]]; then
echo "couldn't find $1. Please download the file and try again."
exit 1
fi
}
help() {
@ -225,32 +225,32 @@ game_launcher() {
echo "Install some games first."
exit 0
fi
# Create the menu of installed games
declare -a menuList
for i in "${lines[@]}" ; do
menuList+=("${i#*|}" "${i%|*}")
done
# Web based games and donation
menuList+=("Aliens" "Aliens")
menuList+=("Donate" "Donate")
game="$(dialog --backtitle "Linux Game Launcher" \
# Create the menu of installed games
declare -a menuList
for i in "${lines[@]}" ; do
menuList+=("${i#*|}" "${i%|*}")
done
# Web based games and donation
menuList+=("Aliens" "Aliens")
menuList+=("Donate" "Donate")
game="$(dialog --backtitle "Linux Game Launcher" \
--clear \
--no-tags \
--menu "Please select a game to play" 0 0 0 "${menuList[@]}" --stdout)"
local menuCode=$?
if [[ $menuCode -eq 1 ]]; then
local menuCode=$?
if [[ $menuCode -eq 1 ]]; then
exit 0
fi
case "${game}" in
"Aliens")
open_url "https://files.jantrid.net/aliens/"
exit 0
fi
case "${game}" in
"Aliens")
open_url "https://files.jantrid.net/aliens/"
exit 0
;;
"Donate")
open_url "https://ko-fi.com/stormux"
exit 0
"Donate")
open_url "https://ko-fi.com/stormux"
exit 0
;;
esac
esac
pushd ${game%/*}
exec ${game%|}
}
@ -282,6 +282,7 @@ gameList=(
"Aliens"
"E.X.O."
"Fantasy Story II"
"Monkey Spank"
"Numnastics"
"S.E.A."
"soundStrider"
@ -323,17 +324,17 @@ args="${!command[*]}"
args="${args//[[:space:]]/}"
while getopts "${args}" i ; do
case "$i" in
C) clear_cache;;
D) desktop_launcher;;
h) help;;
i) game_installer;;
L) license;;
N) noCache="true";;
R) redownload="true";;
C) clear_cache ;;
D) desktop_launcher ;;
h) help ;;
i) game_installer ;;
L) license ;;
N) noCache="true" ;;
R) redownload="true" ;;
t)
dialog --backtitle "Linux Game Manager" \
--infobox "There are currently ${#gameList[@]} games available." -1 -1
;;
;;
esac
done
@ -344,42 +345,46 @@ case "${game}" in
"Aliens")
dialog --backtitle "Linux Game manager" \
--infobox "${game} is a web based game and does not need to be installed." -1 -1
;;
;;
"E.X.O.")
get_installer "EXO-linux-x64.zip" "https://shiftbacktick.itch.io/exo"
mkdir -p "${installPath}/E.X.O."
unzip -d "${installPath}/E.X.O." "${cache}/EXO-linux-x64.zip"
add_launcher "${installPath}/E.X.O./EXO"
;;
;;
"Fantasy Story II")
get_installer "FS2_2.6_Linux.zip" "https://drive.google.com/file/d/187OaD1HhPoty85yJafZyvfqD5_G3P04c/view?usp=sharing"
unzip -d "${installPath}" "${cache}/FS2_2.6_Linux.zip"
chmod +x "${installPath}/FS2_2.6_Linux/FS2.x86_64"
add_launcher "${installPath}/FS2_2.6_Linux/FS2.x86_64" "-ESpeakApplication=espeak-ng"
;;
;;
"Monkey Spank")
git -C "${installPath}" clone --recurse-submodules https://gitlab.com/stormdragon2976/monkeyspank.git
add_launcher "${installPath}/monkeyspank/monkeyspank"
;;
"Numnastics")
git -C "${installPath}" clone --recurse-submodules https://gitlab.com/stormdragon2976/numnastics.git
add_launcher "${installPath}/numnastics/numnastics"
;;
;;
"S.E.A.")
get_installer "SEA-linux-x64.zip" "https://shiftbacktick.itch.io/sea"
mkdir -p "${installPath}/S.E.A."
unzip -d "${installPath}/S.E.A." "${cache}/SEA-linux-x64.zip"
add_launcher "${installPath}/S.E.A./SEA"
;;
;;
"soundStrider")
get_installer "soundStrider-linux-x64.zip" "https://shiftbacktick.itch.io/soundstrider"
mkdir -p "${installPath}/soundStrider"
unzip -d "${installPath}/soundStrider" "${cache}/soundStrider-linux-x64.zip"
add_launcher "${installPath}/soundStrider/soundStrider"
;;
;;
"Donate")
open_url "https://ko-fi.com/stormux"
;;
;;
*)
[[ -n "${game}" ]] && echo "Game \"${game}\" not found."
exit 1
;;
;;
esac
exit 0