#!/bin/bash

### Gestion général du joueur 
# player   
    # créé le joueur 
# statut
    # affiche le statut et la carte decouverte du joueur
# genplayer
    # Génére le fichier joueur
# gencarte 
    # Génére la carte du joueur 

# Génération de la fiche de présentation du joueur 
function player {
clear
echo $1
echo " ===== Creation du joueur ===== "
echo ""
echo " Votre nom explorateur ? " 
echo -n " "
read nom
nom=$(echo "$nom"  | sed 's/\:/\ /g') # on veut pas de ":"
echo " Decrivez vous"
echo -n " "
read descr
descr=$(echo "$descr"  | sed 's/\:/\ /g') # idem 
clear; echo ""
    while true ;do

	echo " ===== Creation du joueur ===== "
	echo " Nom : $nom" 
	echo " Description : $descr"
	echo ""	
	echo " Quel arme voulez-vous ?"
	echo ""
	
	for i in `seq 1 2`;do ### par defaut on a le choix qu'entre les 2 première 
	    echo " Arme Numero : $i"
	    echo " Nom : $(sed -n $i\p $pos/bdd/armes | cut -d: -f1)" 
	    echo " Description : $(sed -n $i\p $pos/bdd/armes | cut -d: -f2)" 
	    echo " Dégat : $(sed -n $i\p $pos/bdd/armes | cut -d: -f3)" 
	    echo "" 
	done

	read -n 1 choice

	case "$choice" in
		[1-2] ) arm=$(sed -n $choice\p $pos/bdd/armes); break ;; 
		* )clear; echo "Mauvaise saisie ";;
	esac
    done

# si il choisis la premiere, il peut tjrs choisir la 2eme dans l'entree du coup ... 
if [ $choice -eq 1 ];then
    echo "$(sed -n 2p $pos/bdd/armes | cut -d: -f1):$(sed -n 2p $pos/bdd/armes | cut -d: -f2):$(sed -n 2p $pos/bdd/armes | cut -d: -f3)"  > $pos/entree/armes
else
    echo "$(sed -n 1p $pos/bdd/armes | cut -d: -f1):$(sed -n 1p $pos/bdd/armes | cut -d: -f2):$(sed -n 1p $pos/bdd/armes | cut -d: -f3)" > $pos/entree/armes
fi

cd $pos/entree # on entre dans le labyrinth 
# on stock dans des variable pour ne pas avoir a lire/modifier innutilement le fichier, on le regenère au moment de sauvegarder
vie=$((RANDOM%6+16))
vieres=$vie
lieu=$(basename $PWD)

#on la génère une fois au debut (histoire de dire que le jeu a commencer) 
genplayer
gencarte
statut
}
# Affiche le statut du joueur
function statut {

if [[ ! -e $pos/joueur ]]; then menu " Aucun jeu en cour" 
fi

clear
echo $@
while true ;do
    echo " ===== Feuille de personnage ====="
    echo ""
    echo " Nom : $nom"
    echo " Description : $descr"
    echo " Point de vie : $vieres / $vie"
    echo " Armes : $(echo "$arm" | cut -d: -f1 ) : $(echo "$arm" | cut -d: -f2 ) | Degats : $(echo "$arm" | cut -d: -f3 )"
    echo " Lieu : $(basename $lieu)"

    echo ""
    echo " ===== Partie en cour ====="
    echo " Acutellement : $lieu "
    echo ""
    echo " ===== Carte découverte  ====="
    cat $pos/carte

    echo ""
    echo ""
    echo " ===== Choisissez une option ====="
    echo " G : Retour a la Partie"
    echo " M : Menu" 
    
    read -n 1 choice 

    case "$choice" in
	[gG] )  game ;; 
	[mM] )  menu ;; # je sais je creer une boucle infini dans une boucle infini ... en cour de correction 
	* ) clear; echo " Mauvaise saisie , recommencez" ;;
    esac
done
}

# Génération du fichier joueurs 
function genplayer {
echo "$nom:$descr:$vie:$vieres:$arm:$lieu" > $pos/joueur
}

# Sert a recharger en mémoire les données du personnage
function loadplayer {
nom=$(cat $pos/joueur | cut -d: -f1)
descr=$(cat $pos/joueur | cut -d: -f2)
vie=$(cat $pos/joueur | cut -d: -f3)
vieres=$(cat $pos/joueur | cut -d: -f4)
arm=$(cat $pos/joueur | cut -d: -f5):$(cat $pos/joueur | cut -d: -f6):$(cat $pos/joueur | cut -d: -f7)
lieu=$(cat $pos/joueur | cut -d: -f8)
cd $pos/$lieu
}
#affiche la progression du joueur ## je me trouve trop bon avec lui quand meme, il pourrait manger des carrottes pour la mémoire

# Génère progressivement la carte
function gencarte {

if [ $(echo "$lieu" | grep -c "lns") -eq 0 ]; then # les passage secret n'apparaisse pas sur la carte pour l'instant
	echo " $lieu" >> $pos/carte
	sort -d -f -b $pos/carte | uniq > $pos/tmp
	mv $pos/tmp $pos/carte
fi
}
