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 19072560e6923057f066c88ac56530eb2028794f
parent 546b75b8cb2a38c3469ba1cdda04e0f86c2014ec
Auterice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Sat, 22 Jun 2024 13:04:27 +0200

Ajout cleave, att plusieurs ennemies

Implémenté à l'arrache
Je pense que c'est vraiment chiant de le faire en ciblant avec
fight/ennemies/* ce qui est dommage, j'aurais aimé utiliser les glob
pour ça, peut-être un jour
Ca pourrait permettre de cibler des ennemies spécifiquement (tous les
jaw-worm mais pas le reste)
Ce n'est pas dans les règles de sts mais ça pourrait être intéressant
En attendant c'est soit on cible un ennemie soit c'est all

Début d'implémentation pour les statuts je crois aussi

J'aurais du commencer par faire l'ajout de plusieurs monstres dans un
combat

Diffstat:
Abdd/cards/cleave | 2++
Mutils | 57+++++++++++++++++++++++++++++++++++++--------------------
2 files changed, 39 insertions(+), 20 deletions(-)

diff --git a/bdd/cards/cleave b/bdd/cards/cleave @@ -0,0 +1,2 @@ +_cost 1 +_attack 8 1 all diff --git a/utils b/utils @@ -153,8 +153,12 @@ _killennemie() { _changestat() { local target stat value card target="$1";stat="$2";value="$3";card="$4" - curvalue=$(_getstat "$target" "$stat") - _setstat "$target" "$stat" $(( $curvalue $value )) "$card" + [ "$target" = "all" ] && { + target=$(find fight/ennemies -type l);} + echo "$target" | while read t;do + curvalue=$(_getstat "$t" "$stat") + _setstat "$t" "$stat" $(( $curvalue $value )) "$card" + done } # set la valeur absolue @@ -168,7 +172,7 @@ _setstat() { esac fi [ "$stat" = "block" ] && [ "$value" -gt "0" ] && _hasstatus player juggernaut && - _dodamage $(_getremainingstatusturns player juggernaut) fight/ennemies/* player + _dodamage $(_getremainingstatusturns player juggernaut) $(_randomennemy) player echo sed -i --follow-symlinks -E "/^$stat / s/ .*/ $value/" "$target" sed -i --follow-symlinks -E "/^$stat / s/ .*/ $value/" "$target" } @@ -218,13 +222,22 @@ _dodamage() { } _attack() { + local damage times target hitter card + damage="$1";times="$2";target="$3";hitter="$4";card="$5" _hasstatus player rage && _changestat player block "+$(_getremainingstatusturns player rage)" - damage="$1";times="$2";target="$3";hitter="$4";card="$5" - for i in $(seq $times);do - echo _dodamage "$damage" "$target" "$hitter" - _dodamage "$damage" "$target" "$hitter" "$card" - done; + [ "$target" = "all" ] && { + echo "attacking multiple ennemies"; + target=$(find fight/ennemies -type l); + hitter="$5";card="$6";} + echo "$target" | + while read t;do + echo "damaging ennemie $t $times times with $damage damage" + for i in $(seq $times);do + echo _dodamage "$damage" "$t" "$hitter" + _dodamage "$damage" "$t" "$hitter" "$card" + done; + done } _defend() { @@ -299,7 +312,7 @@ _exetherealcard() { endturn() { _exetherealcard - _setstat fight/ennemies/* block 0 + _setstat all block 0 _hasstatus player metallicize && _defend $(_getremainingstatusturns player metallicize) player _execnextmove @@ -369,19 +382,23 @@ _status() { (vulnerable|weak|strength-down) type="debufs";; (*) type="bufs";; esac - if $(_hasstatus "$target" "$stat");then - remturn=$(_getremainingstatusturns "$target" "$stat") - totturns=$(( $nbturns + ${remturn:-0} )) - if [ "$totturns" = "0" ];then - _removestatus "$target" "$stat" + [ "$target" = "all" ] && + target=$(find fight/ennemies -type l) + echo "$target" | while read t;do + if $(_hasstatus "$t" "$stat");then + remturn=$(_getremainingstatusturns "$t" "$stat") + totturns=$(( $nbturns + ${remturn:-0} )) + if [ "$totturns" = "0" ];then + _removestatus "$t" "$stat" + else + echo sed --follow-symlinks -i -E "/^$type/ s/$stat,-?[0-9]+/$stat,$totturns/" "$t" + sed --follow-symlinks -i -E "/^$type/ s/$stat,-?[0-9]+/$stat,$totturns/" "$t" + fi else - echo sed --follow-symlinks -i -E "/^$type/ s/$stat,-?[0-9]+/$stat,$totturns/" "$target" - sed --follow-symlinks -i -E "/^$type/ s/$stat,-?[0-9]+/$stat,$totturns/" "$target" + echo sed --follow-symlinks -i -E "/^$type/ s/$/ $stat,$nbturns/" "$t" + sed --follow-symlinks -i -E "/^$type/ s/$/ $stat,$nbturns/" "$t" fi - else - echo sed --follow-symlinks -i -E "/^$type/ s/$/ $stat,$nbturns/" "$target" - sed --follow-symlinks -i -E "/^$type/ s/$/ $stat,$nbturns/" "$target" - fi + done } _getstatuses() {