sts-term

Une version rudimentaire de Slay The Spire dans le terminal - retour accueil

git clone git://bebou.netlib.re/sts-term
Log | Files | Refs | README |

commit 37b93c0c77d1636917d02eec6d21c314adef4727
parent c17565d543be9619ddb5e4889eb60e8e862780b1
Auterice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Sun, 23 Jun 2024 18:51:45 +0200

Implémentation innate

c'est pas de la tarte et c'est moche

Je me suis cassé les dents sur un bug obscure où parfois la partie se
lançait correctement, parfois non totalement aléatoirement
Eh bien c'est parce qu'effectivement c'était aléatoire. J'avais le
fichier bdd/characters/ironclad ouvert dans vim et donc une fois sur
deux environ le programme choisissait de construire un "player" depuis
le fichier swp. Evidemment ça ne marchait pas.

Diffstat:
Mutils | 30+++++++++++++++++++++---------
1 file changed, 21 insertions(+), 9 deletions(-)

diff --git a/utils b/utils @@ -8,6 +8,7 @@ alias skill=":" alias status=":" alias curse=":" alias ethereal=":" +alias innate=":" _getstat() { local target stat @@ -147,7 +148,15 @@ _makefight() { ln -rs -f player fight/player _setstat fight/player block 0 - _newhand + grep -EH "^innate" deck/* | + cut -d: -f1 | + while read card;do + echo "drawing innate $(basename $card)" + _draw 1 "$(basename $card)" + done + remcards="$(( 5 - $(find fight/hand -type f | wc -l) ))" + echo _draw "$remcards" + _draw "$remcards" _setstat fight/player energy 3 _createnextmoves _refreshUI @@ -176,15 +185,14 @@ _dupcard() { } _addcard() { - howmuch="$1" - name="$2" - dest="${3:-deck}" + local howmuch name dest nbcard location + howmuch="$1";name="$2";dest="${3:-deck}" nbcard=$(find deck -name "$2-*" | wc -l) location=$(find bdd/cards -type f -name "$name") for i in $(seq $(( $nbcard + 1 )) $(( $nbcard + $howmuch )));do echo "adding card $name nb $i in $dest" if [ "$name" = "wounds" ];then - cp bdd/cards/$name $dest/$name-$i + cp bdd/cards/statuses/$name $dest/$name-$i else <<-. cat > $tmpdir/A . ./utils @@ -440,12 +448,14 @@ endturn() { } _draw() { - local card + local nbtodraw card _hasstatus player no-draw && return 0 - nbtodraw="$1" + nbtodraw="$1";innatecard="$2" for nb in $(seq "$nbtodraw");do [ "$(find fight/stack -type f | wc -l)" = "0" ] && _shufflediscard - card=$(find fight/stack -type f | shuf | head -n 1) + [ -z "$innatecard" ] \ + && card=$(find fight/stack -type f | shuf | head -n 1) \ + || card="fight/stack/$innatecard" chmod +x "$card" cardtype=$(sed -n '2 p' "$card") echo mv "$card" fight/hand of type $cardtype @@ -459,11 +469,13 @@ _draw() { } _newhand() { + local nb + nb="${1:-5}" find fight/hand -type f | while read card;do _discard "$card" done - _draw 5 + _draw $nb } _discard() {