libre-finances/main_df.sh
2024-05-27 12:13:12 +02:00

1436 lines
34 KiB
Bash

#!/bin/bash
#darksouls 4
#vsechny funkce
function game() {
trap 'cleanup' SIGTERM SIGINT #EXIT
pocet_pujcek=0
trezor_bal=0
pocet_pujcek=0
xp=0
health=0
attack=0
luck=0
special_ability=0
money=0
#character=0 #classa hrace
infocentrum_view=0 #nastaveni zobrazovani napovedy infocentra
arena_kc_random=0 #kill count random bojovniku arena
nickname=none
current_location=Prague_predmesti
#vsechny banka funkce
#diky tomuhle se pri vypnuti procesu udelaji jeste nejaky veci
function cleanup() {
save
exit
}
function timer_port() {
time_seconds=20
while [ $time_seconds -gt 0 ]; do
sleep 1
time_seconds=$((time_seconds - 1))
echo $time_seconds > $HOME/.ds_data/timer
done
#nekonecnej loop
while :
do
sleep 60 #delay
done
}
function save() {
echo "Chcete hru uložit? (ano/ne)"
read save_1
if [ "$save_1" == "ano" ]; then
echo "jak chcete save file pojmenovat"
read save_name
touch "$HOME/.ds_data/save/$save_name"
{
echo "pocet_pujcek=$pocet_pujcek"
echo "trezor_bal=$trezor_bal"
echo "xp=$xp"
echo "health=$health"
echo "attack=$attack"
echo "luck=$luck"
echo "special_ability=$special_ability"
echo "money=$money"
echo "character=$character"
echo "nickname=$nickname"
echo "heslo=$heslo"
} > "$HOME/.ds_data/save/$save_name"
else
echo "konec"
fi
}
function registrace() {
clear
echo "Pro používání této hry a save systému se zaregistruj"
echo ""
echo "-----------------------------------"
echo "Váš nový nickname:"
echo "-----------------------------------"
sleep 0.2
read -r nickname
clear
echo "Pro používání této hry a save systému se zaregistruj"
echo ""
echo "-----------------------------------"
echo "Váš nový nickname: $nickname"
echo "-----------------------------------"
sleep 0.2
echo "Zadejte své heslo:"
echo "-----------------------------------"
heslo=""
while IFS= read -s -n 1 char; do
# Pokud je stisknut Enter, ukončíme smyčku
if [[ $char == $'\0' ]]; then
break
fi
heslo+="*"
echo -n "*"
done
echo ""
}
function login() {
clear
echo "Přihlášení:"
echo ""
echo ""
echo "-----------------------------------"
echo " Zadejte svůj nickname"
echo "-----------------------------------"
sleep 0.2
read -r nickname1
if [[ "$nickname1" == "$nickname" ]]; then
echo "-----------------------------------"
echo " Zadejte své heslo"
echo "-----------------------------------"
sleep 0.2
heslo1=""
while IFS= read -s -n 1 char; do
# Pokud je stisknut Enter, ukončíme smyčku
if [[ $char == $'\0' ]]; then
break
fi
heslo1+="*"
echo -n "*"
done
echo ""
if [[ "$heslo" == "$heslo1" ]]; then
clear
echo "Úspěšně jste se přihlásil"
sleep 0.2
clear
else
echo "Zadali jste nesprávné heslo. Zkuste to znovu :("
fi
else
echo "Uživatel s tímto jménem neexistuje."
fi
}
function loading1() {
for i in {1..10}; do
echo "█▒▒▒▒▒▒▒▒▒▒ $((i * 1)) %"
sleep 0.1
clear
done
for i in {10..20}; do
echo "██▒▒▒▒▒▒▒▒▒ $((i * 1)) %"
sleep 0.1
clear
done
for i in {20..30}; do
echo "███▒▒▒▒▒▒▒▒ $((i * 1)) %"
sleep 0.1
clear
done
for i in {30..40}; do
echo "████▒▒▒▒▒▒▒ $((i * 1)) %"
sleep 0.1
clear
done
for i in {40..50}; do
echo "█████▒▒▒▒▒▒ $((i * 1)) %"
sleep 0.1
clear
done
for i in {50..60}; do
echo "██████▒▒▒▒▒ $((i * 1)) %"
sleep 0.1
clear
done
for i in {60..70}; do
echo "███████▒▒▒▒ $((i * 1)) %"
sleep 0.1
clear
done
for i in {70..80}; do
echo "████████▒▒▒ $((i * 1)) %"
sleep 0.1
clear
done
for i in {80..93}; do
echo "█████████▒▒ $((i * 1)) %"
sleep 0.1
clear
done
for i in {93..98}; do
echo "██████████▒ $((i * 1)) %"
sleep 1.5
clear
done
for i in {98..100}; do
echo "██████████▒ $((i * 1)) %"
sleep 6
clear
if [[ $i == 99 ]]; then
echo "Loading completed!"
sleep 4
clear
fi
done
}
function s_load() {
echo "chcete nacist save (ano/ne)"
read load_1
case $load_1 in
ano)
ls $HOME/.ds_data/save/
echo "vyberte save file"
read s_load_name
if [ -f "$HOME/.ds_data/save/$s_load_name" ]; then
source $HOME/.ds_data/save/$s_load_name
#echo $health #debug
else
echo "tento save file neexistuje"
s_load
fi
;;
ne)
echo " "
;;
*)
s_load
esac
}
#funkce na placení úroků
function p_uroky() {
if [[ pocet_obdobi_pujcka == 0 ]]; then
pocet_pujcek=0
fi
if [[ $pocet_pujcek == 0 ]]; then
echo "nemate pujcku na zaplaceni"
banka
fi
echo "výteje chcete zaplatit urok "$name"?"
time_left=$(cat $HOME/.ds_data/timer)
if [[ $time_left -le 0 ]]; then
echo "uz to melo byt davno zaplacene ale tak kdyz uz jste tady"
else
time_left=$(cat $HOME/.ds_data/timer)
echo "do zaplaceni vam zbyva jeste $time_left sekund"
fi
echo "zbyva vam jeste $pocet_obdobi_pujcka splátek"
read -p "chcete zaplatit urok $name? bude vas stat $urok_jedno_obdobi: " p_uroky_volba
case $p_uroky_volba in
ano)
if [[ $money -le $urok_jedno_obdobi ]]; then
echo "nemate na zaplaceni pujcky dostatek peněz"
banka
fi
money=$((money-urok_jedno_obdobi))
pocet_obdobi_pujcka=$((pocet_obdobi_pujcka-1))
kill $timer_pid
timer_port &
banka
;;
ne)
banka
;;
*)
echo "neplatna volba"
p_uroky
esac
}
#function pujcka
function pujcka() {
echo "Chcete se podívat na podmínky půjčky?"
read pujcka_tos_vyber
case $pujcka_tos_vyber in
ano)
echo "|------------------------------"
echo "| Měsíční úrok: 5% z pujcene castky + pujcena castka / poctem období."
echo "| Pokud nezaplatíte jen jeden ůrok v ujednaném čase bude za vámi vyslán vymahač."
echo "| Počet splátek je je min 2 obdobi max 24 obdobi."
echo "| Na každou splátku máte čas na zaplacení 1h reálného času."
echo "|------------------------------"
;;
ne)
;;
*)
echo "Neplatná volba."
pujcka
;;
esac
echo "Pořád si přejete si půjčit?"
read pujcka_vyber
case $pujcka_vyber in
ano)
echo "Kolik chcete splátek?"
read pocet_obdobi_pujcka_volba
if [ $pocet_obdobi_pujcka_volba -ge 2 ] && [ $pocet_obdobi_pujcka_volba -le 24 ]; then
pocet_obdobi_pujcka=$((pocet_obdobi_pujcka_volba))
echo "Počet splátek je $pocet_obdobi_pujcka"
else
echo "Omlouváme se vám $name ale vase pujcka nesplnuje pozadavky na pocet obdobi pujcky"
pujcka
fi
echo "Kolik peněz si chcete půjčit?"
read pujcka_money_volba
if [[ $pujcka_money_volba -gt $((3*(money+bank))) ]] || [[ $pocet_pujcek -ge 1 ]] || [[ $pujcka_money_volba -le 0 ]]; then
echo "Omlouváme se vám $name ale nesplnujete pozadavky pro pujcku"
banka
else
pujcka_money=$((pujcka_money_volba))
pocet_pujcek=$((pocet_pujcek+1))
echo "Půjčili jste si $pujcka_money"
money=$((money+pujcka_money))
urok_jedno_obdobi=$(((pujcka_money / pocet_obdobi_pujcka) + (pujcka_money / 20)))
celkem=$((pocet_obdobi_pujcka * urok_jedno_obdobi))
echo "Váš úrok na jednmo období je $urok_jedno_obdobi"
echo "platíte $pocet_obdobi_pujcka období"
echo "Celkem zaplatíte $celkem"
timer_port &
timer_pid=$!
sleep 5
time_left=$(cat $HOME/.ds_data/timer)
echo "do zaplacení další splátky vám zbvývá $time_left sekund"
banka
fi
;;
ne)
banka
;;
*)
echo "Neplatná volba."
pujcka
esac
}
function podpis_banka () {
echo "Prosíme podepište tuto smlouvu svým jménem"
read podpis
if [ "$podpis" == "$name" ]; then
echo "úspěšně jste podepsali smlouvu"
else
echo "To se snad neumíte podpsat nebo co?"
podpis_banka
fi
}
#trezor
function trezor() {
echo "Chceš vybrat peníze, uložit nebo odejít?"
echo "|------------------------------"
echo "| U sebe mate $money peněz"
echo "| V bance máte uloženo $trezor_bal peněz"
echo "|------------------------------"
echo "| 1. Uložit"
echo "| 2. Vybrat"
echo "| 3. zpět"
echo "|------------------------------"
read vyber_trezor
case $vyber_trezor in
1 | uložit | ULOŽIT | ulozit | ULOZIT)
echo "U sebe mate $money peněz"
echo "V bance máte uloženo $trezor_bal peněz"
echo "Kolik chcete uložit?"
read ulozit_trezor_money
if [ $ulozit_trezor_money -gt $money ]; then
echo "U sebe nemate dostatek penez."
else
money=$((money-ulozit_trezor_money))
trezor_bal=$((trezor_bal+ulozit_trezor_money))
trezor
fi
;;
2 | vybrat | VYBRAT)
echo "U sebe mate $money peněz"
echo "V bance máte uloženo $trezor_bal peněz"
echo "Kolik chcete vybrat?"
read vybrat_trezor_money
if [ $vybrat_trezor_money -gt $trezor_bal ]; then
echo "V trezoru nemate dostatek penez."
else
trezor_bal=$((trezor_bal-vybrat_trezor_money))
money=$((money+vybrat_trezor_money))
fi
trezor
;;
3 | zpět | ZPĚT | zpet | ZPET)
echo "Odchazite"
banka
;;
esac
}
#location
function banka() {
echo "Vítej v bance $name"
echo ""
echo "Co chcete provést"
echo ""
#read -p "Stiskni enter pro otevření nabídky" key
echo "|------------------------------"
echo "| 1. Uložit nebo vybrat peníze z trezoru."
echo "| 2. Půjčení"
echo "| 3. Platit uroky"
echo "| 4. Odejít"
echo "|------------------------------"
read -p "Zadej číslo: " vyber_bank
case $vyber_bank in
1)
trezor
;;
2)
pujcka
;;
3)
p_uroky
;;
4)
$current_location
;;
*)
echo "neplatna volba"
banka
esac
}
function arena() {
echo "Vítej v aréně $name"
echo "Pro vypsání pravidel (rules)"
echo "Pro souboje (fight)"
read pravidla_arena_vyber
case $pravidla_arena_vyber in
rules)
echo "V aréně se můžete zúčastnit soubojů jeden na jednoho."
echo "Máte na výběr z pěti hlavních bojovníků u kterých se zvyšuje obtížnost a dostanete za jejich poražení fixovanou částku."
echo "Nebo také můžete bojovat s náhodným soupeřek kde si můžete vsadit libovolnou částku"
;;
fight)
echo "Vyberte náhodný souboj (nahodny bojovnik) nebo hlavni bojovnici (hlavni bojovnik)"
read nahodny_hlavni_bojovnik_vyber
case $nahodny_hlavni_bojovnik_vyber in
"nahodny bojovnik" | nahodny)
echo "Kolik pěněz chcete na sebe vsadit?"
echo "Pokud přežijete dostanete 2x sázky."
read arena_random_bet
if [[ $arena_random_bet -le $money ]]; then
echo ""
arena_random_bet_verified=$arena_random_bet
else
echo "Nemáte na vsazení dostatek peněz"
arena
fi
arena_random
if [ $arena_kc_random == 0 ]; then
echo "Echo gratuluji $name právě jste zabil svého prvního protivníka"
echo "Jako dárek k vašemu prvnímu zabití v aréně dostanete 4x své sázky a pomerančový džus na účet podniku který vás osvěží"
arena_random_bet_verified=2*$arena_random_bet_verified
echo "vypil jste pomerančový džus +7hp"
health=$health+7
echo "Doufáme že se vám tu líbilo a stanete se naším zákazníkem"
fi
echo "Echo gratuluji $name právě jste zabil svého protivníka"
echo "Vyhráváte $arena_random_bet_verified"
money=$((money+2*arena_random_bet_verified))
arena_kc_random=$arena_kc_random+1
arena
;;
"hlavni bojovnik" | hlavni)
;;
*)
echo "neplatná odpověď"
arena
esac
;;
zpet | zpět | odejit | odejít)
$current_location
;;
*)
arena
;;
esac
}
function arena_random() {
echo "Arena"
e_random_bojovnik_arena
true_fight
}
#skip character_s
function bcs() {
character=melee
melee_p=tank
}
function end() {
exit 0
}
#vyber postav
function character_s() {
money=100
echo "Vítej ve hře"
echo "Vyber si jméno tvé postavy."
read name
echo "Pro začátek si vyber class tvé postavy melee/magic/ranged"
echo $character
#read char
case $character in
melee)
class="melee"
echo "Vyber si postavu tank, rychlej, agro"
#read melee_p
case $melee_p in
tank)
health=65
attack=9
luck=10
special_ability=1
;;
rychlej)
health=45
attack=13
luck=30
special_ability=1
;;
agro)
health=50
attack=20
luck=8
special_ability=1
;;
*)
echo "Neplatná volba, nauč se psát ty troubelíne."
character_s
;;
esac
;;
ranged | RANGED | Ranged)
echo "Vyber si postavu Lučištník, Kušař,"
class=ranged
read ranged_p
case $ranged_p in
Lučištník | lučištník | Lucistnik | lucistnik)
health=39
attack=12
luck=15
special_ability=1
;;
Kušař | Kusar | kušař | kusar)
health=45
attack=13
luck=10
special_ability=1
;;
Odstřelovač | odstřelovač | odstrelovac | Odstrelovac)
health=34
attack=26
luck=20
special_ability=1
;;
*)
echo "Neplatná volba."
character_s
;;
esac
;;
magic | MAGIC | Magic)
echo "Vyber si postavu Wizard, Druid, Paladin"
class=magic
read magic_p
case $magic_p in
Čaroděj | čaroděj | Carodej | carodej)
health=36
attack=12
luck=21
special_ability=1
;;
Druid | druid | DRUID)
health=60
attack=16
luck=15
special_ability=1
;;
Paladin | paladin | PALADIN)
health=36
attack=28
luck=16
special_ability=1
echo "Tvoje speciální abilitka je healing, můžeš se vyléčit po každém souboji ale pouze 3x"
;;
esac
;;
*)
echo "Neplatná volba."
character_s
;;
esac
echo "Tvoje postava se jmenuje $name"
echo "Vybrali jste si $character."
echo "Tvé vlastnosti jsou: Útok: $attack, Zdraví: $health, Štěstí: $luck"
# echo "Tvoje schopnost je: $special_ability"
echo "Začínáš na levelu 1, k dosažení dalšího levelu potřebuješ 100xp"
}
#funkce pro kontrolu nových levelů
function level_check() {
if [[ $xp -ge 100 ]]; then
level=$((xp/100))
echo "Gratuluji $name, dosahl jsi nového levelu $level"
fi
}
#restart hry
function restart() {
clear
echo "Začínáš znovu na 1. levelu"
sleep 5
game
}
#fight
function fight() {
echo "Vyber akci: 1 - Útok, 2 - Obrana"
read f1
case $f1 in
1)
p_damage=$((RANDOM % attack + 1))
e_damage=$((RANDOM % e_attack + 1))
;;
2)
p_damage=$((RANDOM % (attack / 2) + 1))
e_damage=$((RANDOM % (e_attack / 2) + 1))
;;
*)
echo "Neplatná volba. Ztrácíš kolo."
e_damage=$((RANDOM % e_attack + 1))
;;
esac
#Rozhodnutí podle štěstí_fight
luck_f=$((RANDOM % luck + 2))
if [ $luck_f -gt $e_luck ]; then
echo "Vyhnul jsi se $enemy"ovo" útoku."
e_damage=0
else
echo "$enemy tě zasáhl ztrácíš $e_damage bodů zdraví."
health=$((health - e_damage))
fi
health=$((health - e_damage))
declare -g ${enemy}_health=$((${enemy}_health - p_damage))
echo "------------------------"
echo "# $name #"
echo "------------------------"
echo "Tvůj attack skill: $attack"
echo "Tvůj štěstí skill: $luck"
echo "------------------------"
echo "Tvůj ůtok: $p_damage"
echo "Tvé zdraví: $health"
echo "Tvé štěstí: $luck_f"
echo "------------------------"
echo "# $enemy #"
echo "------------------------"
echo "$enemy"ovo" attack skill: $e_attack"
echo "------------------------"
echo "$enemy"ovo" ůtok: $e_damage"
echo "$enemy"ovo" zdraví: $enemy_health"
echo "$enemy"ovo" štěstí: $e_luck"
echo "------------------------"
#konec souboje_fight
if [ $enemy_health -le 1 ]; then
echo "zabil jste $enemy"
fi
if [ $health -gt 0 ]; then
echo " "
else
echo "Bohužel jsi byl $enemy"em/ou" poražen. Tvá dobrodružství končí tady."
echo "Chcete hrát znovu?"
read restart_g
case $restart_g in
Ano | ano | ANO | ano | Yes | yes | YES | y | Y)
restart
;;
Ne | ne | NE | ne | No | no | NO | n | N)
echo "Je nám to líto, ale sbohem doufáme že tuto hru ještě nekdy zapneš."
end
;;
*)
filename=$(basename "$0")
echo "Neplatná volba s takovou inteligencí že nedokážeš napsat ano nebo ne si nezasloužíš hrát tuto hru"
echo "self destruction initiated"
#rm -rf $filename
;;
esac
fi
#kolo stesti
}
function spin_wheel() {
echo "..."
sleep 2
vyhra=$((RANDOM % 10))
#read vyhra1
case $vyhra in
1)
echo "Tentokrat jsi nic nevyhral"
;;
2)
echo "vyhravas 5 Kč"
money=$((money + 5))
;;
esac
}
#kostky
function kostky() {
kostka1=$((1 + RANDOM % 6))
kostka2=$((1 + RANDOM % 6))
kostka3=$((1 + RANDOM % 6))
protivnik_kostka1=$((1 + RANDOM % 6))
protivnik_kostka2=$((1 + RANDOM % 6))
protivnik_kostka3=$((1 + RANDOM % 6))
echo "Kolik chceš vsadit"
sleep 2
read hodnota_penez
echo "Ty a protivník jste vsadili $hodnota_penez"
money=$((money - hodnota_penez))
hodnota_penez=$((hodnota_penez * 2))
sleep 3
echo "Jak silně chceš hodit (slabě/středně/pořádně)"
read sila_hodu
case $sila_hodu in
slabě | slabe)
echo "Hodil jsi slabě"
;;
středně | stredne)
echo "Hodil jsi středně"
;;
pořádně | poradne)
echo "Hodil jsi pořádně"
;;
*)
echo "Neplatná hodnota"
kostky
;;
esac
echo "na kostce jedna ti padlo $kostka1."
sleep 1.5
echo ""
echo "na kostce dva ti padlo $kostka2."
sleep 1.5
echo ""
echo "na kostce tři ti padlo $kostka3."
tvoje_kostky=$((kostka1 + kostka2 + kostka3))
souperovo_kostky=$((protivnik_kostka1 + protivnik_kostka2 + protivnik_kostka3))
sleep 3
echo ""
echo "--------------------------"
echo ""
echo "na kostce jedna protivníkovi padlo $protivnik_kostka1."
sleep 1.5
echo ""
echo "na kostce dva protivníkovi padlo $protivnik_kostka2."
sleep 1.5
echo ""
echo "na kostce tři protivníkovi padlo $protivnik_kostka3."
sleep 3
echo ""
if [[ $tvoje_kostky -gt $souperovo_kostky ]]; then
echo "Vyhral jsi"
echo "Gratulujeme, vyhráli jste $hodnota_penez peněz!"
echo ""
money=$((money + hodnota_penez))
echo "máš $money peněz"
echo ""
echo "Chceš hrát znova?"
read znova_kostky
if [[ $znova_kostky == "ano" ]]; then
kostky
else casino
fi
else
echo "Bohužel, nepodařilo se ti porazit protivníka."
if [[ $tvoje_kostky -eq $souperovo_kostky ]]; then
echo "Remíza"
money=$((money+hodnota_penez/2))
echo "Chceš hrát znova?"
read znova_kostky
if [[ $znova_kostky == "ano" ]]; then
kostky
else casino
fi
fi
fi
echo "Tvůj zbytek peněz: $money"
}
#ruleta
function ruleta() {
echo "..."
echo "vytejte u rulety jedno zatoceni stoji 50 kč"
sleep 2
echo "Chcete teda hrát? (ano/ne)"
read ruleta_hrat
case $ruleta_hrat in
ano | ANO | Ano)
echo "Dobře, tak jdeme hrát"
if [[ $money -le 50 ]]; then
echo "Nemáš dostatek peněz"
sleep 1
echo "Takže nemůžete hrát"
sleep 2
casino
fi
;;
ne | NE | Ne | no | No)
echo "Dobře, vracíš se zpět do casina"
casino
;;
esac
vyhra=$((1+RANDOM % 10))
#read vyhra1
case $vyhra in
1)
echo "roztocil jsi ruletu"
sleep $((RANDOM % 3 + 2))
echo "Tentokrat jsi nic nevyhral"
;;
2)
echo "roztocil jsi ruletu"
sleep $((RANDOM % 3 + 2))
echo "vyhravas 5 Kč"
money=$((money + 5))
;;
3)
echo "roztocil jsi ruletu"
sleep $((RANDOM % 3 + 2))
echo "vyhravas 10 Kč"
money=$((money + 10))
;;
4)
echo "roztocil jsi ruletu"
sleep $((RANDOM % 3 + 2))
echo "vyhravas 50 Kč"
money=$((money + 50))
;;
5)
echo "roztocil jsi ruletu"
sleep $((RANDOM % 3 + 2))
echo "vyhravas 100 Kč"
money=$((money + 100))
;;
6)
echo "roztocil jsi ruletu"
sleep $((RANDOM % 3 + 2))
echo "vyhravas 250 Kč"
money=$((money + 250))
;;
7)
echo "roztocil jsi ruletu"
sleep $((RANDOM % 3 + 2))
echo "vyhravas 500 Kč"
money=$((money + 500))
;;
8)
echo "roztocil jsi ruletu"
sleep $((RANDOM % 3 + 2))
echo "vyhravas 69 Kč"
money=$((money + 69))
;;
9)
echo "roztocil jsi ruletu"
sleep $((RANDOM % 3 + 2))
echo "vyhravas 1 Kč :("
money=$((money + 1))
;;
10)
echo "vyhravas jackpot s 1000 Kč"
money=$((money + 1000))
esac
casino
}
#casino
function casino() {
#hádání slova
echo "Zdravím pane $name výtejte v casinu co by jste si ráčil zahrát?"
echo "Máme tu na výběr kostky, ruletu, hadaní čísel nebo taky můžete odejít."
read casino_g
case $casino_g in
"kolo stesti")
spin_wheel
;;
kostky)
kostky
;;
ruleta)
ruleta
;;
odejit | odejít)
$current_location
;;
*)
echo "Neplatná volba."
casino
;;
esac
casino
}
function vymahac() {
echo "Tak jsem tě našel ty jeden nesplátníku."
echo "Ted zaplatíš penezi nebo zivotem"
echo "vyber bud zaplatis nebo ne"
read vymahac_v
case $vymahac_v in
penize | peníze)
echo "tak to bude $urok_jedno_obdobi"
money=$((money - urok_jedno_obdobi))
pocet_obdobi_pujcka=$((pocet_obdobi_pujcka-1))
kill $timer_pid
timer_port &
timer_pid=$!
echo "Tak at uz se to neopakuje pokud toto byla posledni splatka musis jit do banky aby se pujcka ukoncila"
$current_location
;;
zivot | život | zivotem)
echo "ted zemřeš ty jeden nesplátníku"
fight_vymahac
$current_location
;;
*)
vymahac
esac
}
#vymahac souboj
function fight_vymahac() {
e_vymahac
true_fight
echo "$name zabil jsi vymahace ted by si ale mel jit slpatit dluhy dokud neprijde dalsi"
}
#vlakové nádraží
function vlakove_nadrazi() {
echo "Kampak to bude"
echo "Praha, Londýn, Berlín, Paríž, Řím, Moskva, Peking, Tokyo,"
read cilova_destinace
case $cilova_destinace in
Praha)
Prague_predmesti
;;
Londyn)
echo "Tak to bude Londýn"
transport
;;
Berlin)
echo "Tak to bude Berlín"
transport
;;
Pariz)
echo "Tak to bude Paríž"
transport
;;
Rim)
echo "Tak to bude Řím"
transport
;;
Moskva)
echo "Tak to bude Moskva"
transport
;;
Peking)
echo "Tak to bude Peking"
transport
;;
Tokyo)
echo "Tak to bude Tokyo"
transport
esac
}
#transport
function transport() {
echo "Vítejte ve transportu"
echo "Za chvilku budete v cílové destinaci"
case $cilova_destinace in
Praha)
echo "Za chvilku budete v cílové destinaci"
sleep 8
Prague
;;
Londýn)
echo "Za chvilku budete v cílové destinaci"
sleep 8
Londyn
;;
Berlín)
echo "Za chvilku budete v cílové destinaci"
sleep 8
Berlin
;;
Paříž)
echo "Za chvilku budete v cílové destinaci"
sleep 8
Pariz
;;
Řím)
echo "Za chvilku budete v cílové destinaci"
sleep 8
Rim
;;
*)
echo "Neplatná destinace"
;;
esac
}
#město 1
function infocentrum() {
echo "Vitejte v infocentru"
echo "chcete se ukazat vsechny destinace v $current_location"
if (( $infocentrum_view == 0)); then
echo " "
echo "(napiste vypnout pro zakazani vypisovani toho ze muzete jit do infocentra ve meste)"
fi
read infocentrum_v
case $infocentrum_v in
ano | Ano | ANO | ano)
case $current_location in
Prague)
echo "Mozne destinace jsou trader | hospoda | casino | banka | Praha predmesti | a v Praha predmesti se muzete dostat na vlakove nadrazi."
$current_location
;;
esac
;;
ne | Ne | NE | ne)
echo "Nashledanou"
$current_location
;;
vypnout)
infocentrum_view=1
infocentrum
;;
*)
echo "Neplatná volba"
infocentrum
;;
esac
}
function Prague_predmesti() {
current_location=Prague_predmesti
echo "Vítejte v Praze"
echo "Copak zde chcete dělat?"
echo "Nastoupit na vlakove nadrazi | Vydat se do města"
read Prague_vyber
case $Prague_vyber in
"vlakove nadrazi" | vlak | "nastoupit na vlakove nadrazi" | "Vlakove nadrazi" | Vlak | VLAK | "VLAKOVE NADRAZI")
echo "Nastoupili jste na vlakove nadrazi"
vlakove_nadrazi
;;
mesto | město)
Prague
;;
*)
$current_location
esac
}
function Prague() {
current_location=Prague
echo "Vitej v praze"
time_left=$(cat $HOME/.ds_data/timer)
if [[ $time_left -le 0 ]]; then
random_vymahac=$((RANDOM % 5))
echo $random_vymahac
if [[ $random_vymahac == 3 ]]; then
vymahac
#else $current_location
fi
fi
echo "kam chces jit?"
if (( infocentrum_view == 0 )); then
echo "pokud nevite bezte se podivat do infocentra"
fi
read Prague_mesto
case $Prague_mesto in
infocentrum | INFOCENTRUM | info | INFO | "Informační centrum" | "INFORMAČNÍ CENTRUM")
infocentrum
;;
"praha predmesti" | "Praha predmesti" | "Praha předměstí" | "praha předměstí")
Prague_predmesti
$current_location
;;
hospoda)
clear
nova_hospoda
$current_location
;;
trader)
clear
trader
$current_location
;;
casino)
clear
casino
$current_location
;;
banka)
clear
banka
$current_location
;;
arena)
clear
arena
$current_location
;;
*)
echo "neplatna volba"
$current_location
esac
}
function Budejky() {
echo "Vítejte v Budějkách"
echo "Kampak to bude?"
echo "Igy | banka | obchod | casino | čajovna | knihovna)"
}
function Maj() {
echo "Vítejte na Máji"
echo "Toto je secret impossible verze této hry"
}
#trader
function trader() {
echo "Obchodnik: Chceš něco nakoupit"
read trade1
case $trade1 in
Ano | ano | ANO)
echo "Vyber si co chces nakoupit"
# rozhodnuti podle tridy (melee magic range)
if [ "$class" == "melee" ]; then
echo "Nabroušený meč - 50Kč"
echo "Helma bájného Marka - 50Kč"
echo "Zlatý Štít - 50Kč"
echo "Elixír života - 50Kč"
echo "Láhev xp - 50Kč"
read item
case $item in
"Nabroušený meč" | "nabroušený meč" | "Nabrouseny mec" | "NABROUSENY MEC" | "NABROUŠENÝ MEČ")
echo "Obchodník: Vybral jsi nabroušený meč, který ti přidal sílu o 3"
((attack+=3))
money=$((money-50))
;;
"Helma bájného Marka")
echo "Obchodník: Vybral jsi di helmu bájného Marka, která ti přidala zdravý o 3"
((health+=3))
money=$((money-50))
;;
"Zlatý Štít")
echo "Obchodník: Vybral jsi si zlatý štít, který ti přidal zdravý o 1 a přidal ti super_ability"
((health+=1))
stat_ability=1
money=$((money-50))
;;
"Elixír života" | "elixír života" | "ELIXIR ZIVOTA" | "elixir zivota")
echo "Obchodník: Vybral jsi si elixír život, který ti přidá 3 života"
((health+=3))
money=$((money-50))
;;
"Láhev xp" | "lahev xp" | "Lahev xp" | "láhev xp")
xpadd=$((RANDOM % 300 + 100))
echo "Obchodník: Vybral jsi si Lahev xp, která ti přidá $xpadd"
xp=$((xp + xpadd))
money=$((money-50))
;;
*)
echo "Nerozuměl jsem ti, znovu prosím."
trader
;;
esac
elif [ "$class" == "Magic" ]; then
echo "Učebnice fyziky"
echo "Čarovný prsten"
echo "Kouzelnický klobouk"
echo "Elixír života"
echo "Láhev xp"
elif [ "$class" == "Range" ]; then
echo "Lektvar na bystré oči"
echo "lehké brnění"
echo "Očarované šípy"
echo "Elixír života"
echo "Láhev xp"
else
echo "Obchodník: Neumíš mluvit nebo co?"
fi
;;
NE | ne | Ne | NE | ne | Ne | nE)
echo "Obchodník: V tom případě táhni"
$current_location
;;
*)
echo "Nerozuměl jsem ti, znovu prosím."
trader
;;
esac
}
vlak_animace() {
space_pred_vlak=" "
for ((i=0; i<=50; i++)); do
vlak
done
}
vlak() {
space_pred_vlak="${space_pred_vlak} "
echo "$space_pred_vlak ..::::. "
echo "$space_pred_vlak .7!~:. "
echo "$space_pred_vlak ........................... .:^?JY^. ........................... "
echo "$space_pred_vlak ^~~~~~!!!!!~!!~!~~!~!!~!!~!!~!!~!!!!~~?!~!?JJJJJJ?!~!?!~~!!!!~7~~!~!~~!~~7~~7!~!~~!!!!~~~~~^. "
echo "$space_pred_vlak .5#PPYPPPPPPPP5???????PPPPPPPPP?77777?P5P??5PPPPPPPP5??PYPJ7777775PPPPPPPPJ777777YPPPPPPPPY5PBB~ "
echo "$space_pred_vlak :B@@@@G@@@@@@@@#??????J@@@@@@@@@7~~~~~7@B5??#@@@@@@@@@??PP@J~~~~~!#@@@@@@@@J~~~~~~B@@@@@@@@P#@@@@7 "
echo "$space_pred_vlak .B@@&BB5BBBBBBBBP???????BBBBBBBBB7~~~~~7BPP??GBBBBBBBBB??P5#?~~~~~!GBBBBBBBB?~~~~~~P#BBBBBBBYG##@@@!"
echo "$space_pred_vlak !GGPJ77?777777777???????777777777!~~~~~!77P??????????????P?77~~~~~~7777777777~~~~~~777777777??7?5GGY"
echo "$space_pred_vlak JYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY5YJJYJJYYYG??????????????P5YYJJJJJJYYYYYYYYYYJJJJJJYYYYYYYYYYYYYYYYJ"
echo "$space_pred_vlak 7JJJJJYYYYYYYYYYYYJJJJJJJJJJJJJJJJJJJJJJJJP????????????J?PYJJJJJJJJJJJJJJJJJJJJJJJYYYYYYYYYYYYYJJJJ7"
echo "$space_pred_vlak ....:?YP5???J5PJ7. .7YP5J??J5PJ7:. .^J5PY???YP5?~...."
echo "$space_pred_vlak :. .: :. .: .: :. "
echo "----H--------H--------H--------H--------H--------H--------H--------H--------H--------H--------H--------H--------H--------H--------H--------H--------H"
sleep 0.1
clear
}
function nova_hospoda() {
echo "Nazdar tak co si dáš?"
echo "Podívat se na jídelní lístek (ano/ne)"
read hospoda_volba1.1
case $hospoda_volba1.1 in
Ano | ano | ANO)
echo "Jídelní lístek:"
if [$current_location == Maj]; then
echo "1. Kuřecí sýr - 100Kč"
echo "2. Hamburger - 100Kč"
echo "3. Kuřecí sýr a hamburger - 150Kč"
echo "4. Kuřecí sýr a káva - 150Kč"
echo "5. Hamburger a káva - 150Kč"
echo "6. Kuřecí sýr a káva a hamburger - 200Kč"
fi
if [$current_location == Budejky]; then
echo "1. Kuřecí sýr - 100Kč"
echo "2. Hamburger - 100Kč"
echo "3. Kuřecí sýr a hamburger - 150Kč"
echo "4. Kuřecí sýr a káva - 150Kč"
echo "5. Hamburger a káva - 150Kč"
echo "6. Kuřecí sýr a káva a hamburger - 200Kč"
fi
if [$current_location == Prague]; then
echo "1. Braník - 40Kč"
echo "2. Hamburger - 100Kč"
echo "3. Kuřecí sýr a hamburger - 150Kč"
echo "4. Kuřecí sýr a káva - 150Kč"
echo "5. Hamburger a káva - 150Kč"
echo "6. Kuřecí sýr a káva a hamburger - 200Kč"
fi
;;
NE | ne | Ne | N | n)
echo "víte tedy co si dáte?"
esac
read hospoda_volba1.2
case $hospoda_volba1.2 in
Ano | ano | ANO)
read hospoda_obcerstveni
if [ "$hospoda_obcerstveni" == "ano" ]; then
echo ""
fi
;;
ne | NE | Ne | N | n)
echo "Tahni"
;;
esac
}
#hospoda vyber jidla
#function pub_jidlo() {
#echo "Tak co to bude?"
#read pub_choice2
#case $pub_choice2 in
#NIC | nic)
#echo "Když nic nechceš tak co tu děláš, padej"
#;;
#"Jablečný mošt" | "jablečný mošt" | "jablecny most" | "Jablecny most")
#echo "Tady máš"
#echo "+3hp"
#money=$((money-15))
#echo "zaplatil jsi 15Kč"
#echo "Zbývá ti $money Kč"
#health=$((health+3))
#;;
#dort | Dort | DORT)
#echo "Tady máš"
#echo "+6hp"
#money=$((money-25))
#echo "zaplatil jsi 25Kč"
#echo "Zbývá ti $money Kč"
#health=$((health+6))
#;;
#*)
#echo "Nerozuměl jsem ti, znovu prosím."
#pub_jidlo
#;;
#esac
##pub_jidlo
#}
#hospoda
#function pub() {
#echo "Zdravím $name co si dáš?"
#echo "chceš podívat na jídelní lístek?"
#read pub_choice1
#case $pub_choice1 in
#ANO | A | ano | Yes | yes | YES | Y | y)
#echo "########################"
#echo "# Jablečný mošt - 15Kč #"
#echo "# Dort - 25Kč #"
#echo "########################"
#pub_jidlo
#;;
#NE | N | ne | No | no | NO | N)
#pub_jidlo
#;;
#*)
#echo "Nerozuměl jsem ti, znovu prosím."
#pub
#esac
#}
#enemies
function e_vymahac() {
enemy=vymahac
e_attack=$((RANDOM % 13 + 5))
declare -g ${enemy}_health=$((RANDOM % 66 + 25))
e_luck=$((RANDOM % 10 + 5))
}
function vymahac_stats_mf() {
e_damage=$((RANDOM % $e_attack + 5))
e_luck=$((RANDOM % 5 + 5))
}
function true_fight() {
#health=9999
eval enemy_health=\${${enemy}_health}
case $enemy in
vymahac)
vymahac_dead=0
;;
*)
esac
if eval "[[ \${${enemy}_dead} -eq 1 ]]"; then
echo "$enemy už je mrtvý"
$current_location
fi
#echo "$health $enemy_health $enemy $goblin_health"
while (( $health > 0 )) && (( $enemy_health > 0 )); do
eval "${enemy}_stats_mf"
fight
eval enemy_health=\${${enemy}_health}
done
declare -g ${enemy}_dead=1
}
#enemies
function e_random_bojovnik_arena() {
enemy=random_bojovnik_arena
e_attack=$((RANDOM % 13 + 5))
declare -g ${enemy}_health=$((RANDOM % 65 + 25))
e_luck=$((RANDOM % 10 + 5))
}
function random_bojovnik_arena_stats_mf() {
e_damage=$((RANDOM % $e_attack + 5))
e_luck=$((RANDOM % 5 + 5))
}
function e_goblin() {
enemy=goblin
e_attack=$((RANDOM % 13 + 5))
declare -g ${enemy}_health=$((RANDOM % 65 + 25))
e_luck=$((RANDOM % 10 + 5))
}
#kazdy enemy musi mit tuto funkci
function goblin_stats_mf() {
e_damage=$((RANDOM % $e_attack + 5))
e_luck=$((RANDOM % 5 + 5))
}
function goblins() {
echo "najednou na tebe vyskočí banda skřetů"
sleep 4
echo "Co uděláš? (zaútočit|utéct)"
sleep 3
read goblins_volba1
case $goblins_volba1 in
zaútočit | Zaútočit | zautocit | Zautocit | ZAUTOCIT)
e_goblin
true_fight
;;
utéct | utect | Utect | UTECT | UTÉCT)
echo "Úspěšně (jako srab) jsi unikl bandě skřetům"
sleep 3
;;
*)
echo "Neplatná volba."
goblins
esac
}
#konec funkcí
#start
#vlak_animace
bcs #skip výběru postavy
s_load
if [ "$nickname" == "none" ]; then
registrace
fi
login
if [ "$health" == "0" ]; then
character_s
fi
$current_location
#end
echo " "
echo "© 2023 - 2024 Kryštof Vach, Marek Španiller. Všechna práva vyhrazena"
}
game