#!/bin/bash

### Relatif au commande du jeu
# opponents
    # Combat contre les mob
# enigma 
    # Gère les question réponse aux énigme
# potion
    # Gère l'injection des potions
# arme
    # Gère le changements d'armes
# lostlife
    # Gère la perte des points de vie et la fin de la partie

# Fonction gérant les combats
function opponents {
clear; echo""
    echo " ===== Phase de Combat ===== " 
    n=0
    degplayer=$(echo "$arm" | cut -d: -f3)

    while [ $(cat $pos/$lieu/ennemis | wc -w ) -gt 0 ] ; do 
	n=$(($n+1))
	echo " ===== Mob $n ======"
	moblife=$(cat $pos/$lieu/ennemis | sed -n 1p |cut -d: -f3) # on recupere la vie du premier mob 
	    
	    i=0
	    while [ $moblife -gt 0 ]; do # si la vie du  joueurs tombe en dessous de 0 la fonction lostlife gère la perte 
	    i=$(($i+1))
	    echo " ======= Tour $i ====== "
	     rand=$((RANDOM%2)) # Entre O et 1 pour 50% de chance 
	    if [ $rand -eq 0 ]; then 
		moblife=$(($moblife-$degplayer))
		echo " Joueur : Vous avez infligé $degplayer au mob $n"
	    else 
		 echo " Joueur : Vous avez raté le mob $n"
	    fi
	    rand=$((RANDOM%3)) # on génère entre 0 et 2 
	    if [ $moblife -gt 0 -a $rand -eq 1 ]; then
		echo -n " le  Mob $n vous a touché "
		lostlife $(cat $pos/$lieu/ennemis| sed -n 1p | cut -d: -f4 )
	    elif [ $moblife -gt 0 ]; then
		echo " Le Mob $n vous a raté "
	    fi

	    if [ $moblife -le 0 ];then 
		echo "$(cat $pos/$lieu/ennemis | sed 1d )" > $pos/$lieu/tmp
		mv $pos/$lieu/tmp $pos/$lieu/ennemis
	    fi
	    sleep 0.25 
	done 
    done 
    echo ""
    echo " Appuyer sur une touche pour continuer ... "
    read -n 1 
    clear; echo ""
}

# Fonction gérant la réponse aux enigmes
function enigma {
clear; echo ""
while true; do
    echo " ======================== " 
    echo " Enigme : $(cat $pos/$lieu/enigme| cut -d: -f1 )"
    echo " $(cat $pos/$lieu/enigme| cut -d: -f2 ) ?"
    echo " ======================== "
    echo " 1 :  $(cat $pos/$lieu/enigme| cut -d: -f3 ) | 2 : $(cat $pos/$lieu/enigme| cut -d: -f4 )"

    read -n 1 choice

    case $choice in 
	[1-2] ) break ;;
	* ) clear; echo " Mauvaise saisie, recommencez "
    esac 
done    

    if [ $(cat $pos/$lieu/enigme| cut -d: -f $((2+$choice)) ) = $(cat $pos/$lieu/enigme| cut -d: -f5 ) ]; then
	clear; echo " Bravo l'enigme est résolu"
	rm $pos/$lieu/enigme
	touch $pos/$lieu/enigme
	for dir in $(find $pos/$lieu/* -maxdepth 0 -type d 2>/dev/null) ;do  
	    chmod 700 $dir
	done
    else
	clear; echo " Vous vous êtes trompé : "
	#lostlife 2
    fi
}

# Fonction gérant le gain de point de vie
function potion {
    if [ $vie -eq $vieres ];then 
	clear; echo " Vos point de vie sont au maximum"
    else 
	clear; echo ""
	while true; do
	    echo " ======================== " 
	    echo " Prendre la potions : "
	    echo " ======================== "
	    n=0
	    ifs=$IFS
	    IFS="$(echo -e "\n\r")"
	    for fil in $(cat $pos/$lieu/potions | sed -n p ); do
		n=$(($n+1))
	    	echo -n " Potion $n : $(cat $pos/$lieu/potions | sed -n $n\p | cut -d: -f1 )"
		echo -n " : $(cat $pos/$lieu/potions | sed -n $n\p | cut -d: -f2 )"
		echo  " | Vie Rendu : $(cat $pos/$lieu/potions | sed -n $n\p | cut -d: -f3 )"
	    done
	    IFS=$ifs
	    read -n 1 choice
	    echo " ======================== "
	    case "$choice" in 
		[1-$n] ) 
		viepros=$vieres
		vieres=$(($vieres+$(cat $pos/$lieu/potions | sed -n $choice\p |cut -d: -f3 )))
		
		if [ $vieres -gt $vie ]; then
		    vieres=$vie
		fi
		
		# on supprime la ligne correspondant a la potion ingurgité 
		echo "$(cat $pos/$lieu/potions | sed $choice\d )" > $pos/$lieu/potions

		clear; echo " Vous avez remontez vos pv de $(($vieres-$viepros)) ";break;;
		* ) clear; echo " Mauvaise saisie, recommencez "
	    esac
	done
    fi
}

# Echange l'arme au sol avec celle en main
function arme {
    armch=$(cat $pos/$lieu/armes)
    echo "$arm" > $pos/$lieu/armes
    arm=$armch
    clear; echo " Armes Changé ... "

}

# Fonction gérant la perte de point de vie et la mort.
function lostlife {

vieres=$(($vieres-$1))

if [ $vieres -le 0 ];then
    while true ;do
	echo ""
	echo ""
	echo " Vous avez perdu : "
	   sleep 1
	echo ""
	echo " M : Retour au menu "
	echo " Q : Quitter " 
    
	read -n 1 choice

	case $choice in
	    [mM] ) del; clear; menu ;; 
	    [qQ] ) del; clear; exit ;; 
	    * )
	esac 
    done 
else 
    echo " vous avez perdu $1 points de vie"
fi
}
