From 0b820485b940ee851e7b9eb783e4d60c673e0124 Mon Sep 17 00:00:00 2001 From: solarbaron Date: Mon, 27 May 2024 12:15:06 +0200 Subject: [PATCH] organized files --- src/installer_df.sh | 51 ++ src/main_df.sh | 1435 +++++++++++++++++++++++++++++++++++++++++++ src/updater_df.sh | 66 ++ 3 files changed, 1552 insertions(+) create mode 100644 src/installer_df.sh create mode 100644 src/main_df.sh create mode 100644 src/updater_df.sh diff --git a/src/installer_df.sh b/src/installer_df.sh new file mode 100644 index 0000000..2bdeee6 --- /dev/null +++ b/src/installer_df.sh @@ -0,0 +1,51 @@ +#!/bin/bash +function installer() { + echo "Vítejte v installeru hry Dark finances" + echo "Pro fungovaní installeru a hry budete potřebovat nainstalovat balíčky" + echo "Chete balíčky nainstalovat automaticky nebo jen vypsat seznam. (1 - nainstalovat/ 2 - vypsat)" + read pkginstall_v1 + case $pkginstall_v1 in + vypsat | 2) + echo -e "\nwget\n" + ;; + nainstalovat | 1) + echo "Jaký package manager používáte?" + echo -e "1 - Pacman\n2 - APT\n3 - DNF" + read pkginstall_v2 + case $pkginstall_v2 in + 1 | pacman | Pacman) + sudo pacman -S wget + sudo pacman -S cmus + ;; + 2 | apt | APT) + sudo apt update + sudo apt install wget + sudo apt install cmus + ;; + 3 | dnf | DNF) + sudo dnf install wget + sudo dnf install cmus + ;; + *) + echo "neplatná odpověď" + installer + esac + ;; + *) + echo "neplatná odpověď" + installer + esac + mkdir -p $HOME/.ds_data/ + mkdir -p $HOME/.ds_data/save + touch $HOME/.ds_data/timer + wget -O $HOME/.ds_data/main_df.sh https://raw.githubusercontent.com/solarbaron/dark_finances/main/main_df.sh + wget -O $HOME/.ds_data/updater_df.sh https://raw.githubusercontent.com/solarbaron/dark_finances/main/updater_df.sh + sudo ln -s $HOME/.ds_data/main_df.sh /usr/bin/dfinances + sudo ln -s $HOME/.ds_data/updater_df.sh /usr/bin/dfinances-updater + sudo chmod 755 /usr/bin/dfinances + sudo chmod 755 /usr/bin/dfinances-updater + echo "Pro spuštní napište příkaz dfinances" + echo "Aktualizační program spustíte dfinances-updater" + +} +installer \ No newline at end of file diff --git a/src/main_df.sh b/src/main_df.sh new file mode 100644 index 0000000..1523c54 --- /dev/null +++ b/src/main_df.sh @@ -0,0 +1,1435 @@ +#!/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 Kč" + 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 Kč" + echo "platíte $pocet_obdobi_pujcka období" + echo "Celkem zaplatíte $celkem Kč" + 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 diff --git a/src/updater_df.sh b/src/updater_df.sh new file mode 100644 index 0000000..549341a --- /dev/null +++ b/src/updater_df.sh @@ -0,0 +1,66 @@ +#!/bin/bash +function updater { +echo "Vítejte v updateru hry dark finances" +echo -e "vyberte:\n[1] nainstalovat/updatovat požadované balíčky\n[2] opravit/aktualizovat software\n[3] odinstalovat hru i updater\n[4] ukončit program" +read updater_v1 +case $updater_v1 in +1) + echo "Jaký package manager používáte?" + echo -e "1 - Pacman\n2 - APT\n3 - DNF" + read pkginstall_v2 + case $pkginstall_v2 in + 1 | pacman | Pacman) + sudo pacman -S wget + ;; + 2 | apt | APT) + sudo apt install wget + ;; + 3 | dnf | DNF) + sudo dnf install wget + ;; + *) + echo "neplatná odpověď" + updater + esac + updater +;; +2) + sudo unlink /bin/dfinances + sudo unlink /bin/dfinances-updater + mkdir -p $HOME/.ds_data/ + mkdir -p $HOME/.ds_data/save + touch $HOME/.ds_data/timer + wget -O $HOME/.ds_data/main_df.sh https://raw.githubusercontent.com/solarbaron/dark_finances/main/main_df.sh + wget -O $HOME/.ds_data/updater_df.sh https://raw.githubusercontent.com/solarbaron/dark_finances/main/updater_df.sh + sudo ln -s $HOME/.ds_data/main_df.sh /bin/dfinances + sudo ln -s $HOME/.ds_data/updater_df.sh /bin/dfinances-updater + updater +;; +3) + echo "opravdu chcete hru odstranit z tohoto zařízeni?" + read uninstall_v1 + case $uninstall_v1 in + ano) + sudo rm -rf /usr/bin/dfinances + sudo rm -rf /usr/bin/dfinances-updater + rm -rf $HOME/.ds_data/ + echo "software byl úspěšně odstraněn z vašeho zařízení, litujeme že jsem se takto rozhodli." + exit + ;; + ne) + updater + ;; + *) + echo "neplatná odpověď" + updater + esac +;; +4) + exit +;; +*) +echo "neplatná volba" +updater +esac +} +updater \ No newline at end of file