Astroport.ONE/adventure/adventure.sh

78 lines
2.7 KiB
Bash
Raw Normal View History

2024-02-07 19:20:08 +01:00
#!/bin/bash
###################################################################
# This Launch script is based on BashVenture.
#
# Remember, kids - sharing is caring! Keep it open. Spread the love.
# - @BenNunney
# Thanks and gratitude to all living creatures and the whole creation.
# - @Fred
# $AGE×365,25×24×60×60×9,807÷299792458 = RELATIVE LIGHT GRAVITY SPEED
###################################################################
# Guide avancé d'écriture des scripts Bash : https://abs.traduc.org/abs-fr/
# GAMESHELL : https://github.com/phyver/GameShell/
###################################################################
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
ME="${0##*/}"
###################################################################
### CREER VOTRE PROPRE VERSION DU JEU
### List games/E@MAIL/ directories
## PUT A PROPOSAL ON THE METHOD
2024-02-07 19:20:08 +01:00
GAMES=$(find "$GAMES_DIR" -mindepth 1 -maxdepth 1 -type d -exec basename {} \;)
GAMES=$(ls $MY_PATH/games/)
GAMES=($(ls -d $MY_PATH/games/))
# Above methods are breaking with games names containing SPACE !
2024-02-07 19:20:08 +01:00
## cd METHOD resist to " " space
cd games && GAMES=(".." *) && cd ..
## but can still be fooled...
2024-02-07 19:20:08 +01:00
select game in "${GAMES[@]}"; do
# MY_GAME is the absolute path to selected game files
2024-02-07 19:20:08 +01:00
MY_GAME="$MY_PATH/games/$game"
echo "SELECTION: "${MY_GAME}
# test game start protocol compatibility
2024-02-07 19:20:08 +01:00
if [[ -x ${MY_GAME}/rooms/start.sh ]]; then
sleep 1
echo "Charging game..."
sleep 1
break
else
# not compatible
echo "ERROR - not compatible game - SELECT ANOTHER - "
2024-02-07 19:20:08 +01:00
fi
done
########################################
# copy game files to user specific executable space
# $HOME/.zen/adventure/$newplayer
########################################
homefolder=$(pwd)
newplayer=$(head /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 10)
## Copy Player Game Files
mkdir -p $HOME/.zen/adventure/$newplayer
cp -r ${MY_GAME}/rooms $HOME/.zen/adventure/$newplayer/rooms
cp -r ${MY_GAME}/art $HOME/.zen/adventure/$newplayer/art
cp -r ${MY_GAME}/script $HOME/.zen/adventure/$newplayer/script
cp -r ${MY_GAME}/logic $HOME/.zen/adventure/$newplayer/logic
2024-02-07 19:20:08 +01:00
###################################################################
echo "Loading... $newplayer/rooms/start.sh"
2024-02-07 19:20:08 +01:00
echo
sleep 2
###################################################################
cd $HOME/.zen/adventure/$newplayer/rooms
./start.sh
2024-02-07 19:20:08 +01:00
###################################################################
# cleaning game files
cd "$homefolder"
rm -r $HOME/.zen/adventure/$newplayer
2024-02-07 19:20:08 +01:00
echo "To continue..."
exit