Ulty / COFantasy

Toolbox pour Chroniques Oubliées Fantasy sur Roll20
10 stars 12 forks source link

Sorts à zones permanentes (Ténèbres, Cercle de Protection) #201

Open Far2Casual opened 3 years ago

Far2Casual commented 3 years ago

Kwestion : est-ce que tu penses qu'il y aurait moyen d'implémenter un système qui permettrait de poser une sorte de token sur le sol à l'utilisation de cette capacité (ça je pense que oui), et un autre système qui permettrait de vérifier si un token de personnage bouge sur la zone, on lui associe automatiquement un effet, et quand il sort on lui retire ?

Pour Ténèbres par exemple, on lui associerait l'effet aveuglé, on en crée un nouveau pour Cercle de Protection, etc.

Ulty commented 3 years ago

C'est une bonne idée, et peut-être même facilement implémentable, en utilisant un attribut aura. L'inconvénient de cette méthode, pour l'instant, c'est qu'elle n'applique ses effets qu'à la fin de chaque tour. Il faudrait améliorer ça, mais j'ai d'une part un peu peur du coût algorithmique (calculs importants à faire à chaque déplacement de token), et d'autre part il reste la difficulté de ne pas faire des applications d'effets, save, etc plus d'une fois par tour, en tout cas pour certains effets.

Bref, pour l'instant, je verrais bien qu'on crée un personnage avec token invisible sur la carte, token ayant une aura visible juste par le MJ, il applique l'effet aveugleTemp 1 tour à tous, plus une aura contenant !cof-effet aveugle 1. Et si besoin, si le MJ voit qu'un token sort de l'aura et qu'il a besoin de montrer les choses plus tôt, il peut enlever assez facilement l'effet aveuglé.

Far2Casual commented 3 years ago

Et du coup pour Cercle de Protection ou un sort de Ténèbres lancé par les joueurs, on pourrait faire pareil, mais avec un token et une aura sur le layer Token ? Ca me paraît pas mal comme idée tout ça !

Far2Casual commented 3 years ago

Allez je tente ça, j'ai encore jamais joué avec la création de tokens et de persos !

Far2Casual commented 3 years ago

Ok @Ulty, j'aimerais ton avis sur la fonctionnalité que j'ai faite.

Donc le lanceur de sort choisit une cible : image

Il lance le sort, pour l'instant la commande est : !cof-tenebres --lanceur @{selected|token_id} --disque @{target|token_id} 5 20 J'ai l'impression que c'est pas top comme syntaxe, j'ai besoin de ton avis. L'avantage, c'est que je dois rien copier et appeler simplement getSelected et iterSelected pour que ça fonctionne.

Résultat :

  1. Je crée un token transparent avec une aura noire visible par tous, et une petite aura jaune visible uniquement par le MJ (pratique pour sélectionner le token si nécessaire). Ca permet de bien visualiser la zone par ceux qui sont à l'extérieur (pour le sort de Ténèbres c'est pratique)
  2. Tous les tokens à l'intérieur de la zone son automatiquement mis dans l'état aveugle
  3. Tous les tokens sont mis en combat s'ils ne l'étaient pas
  4. J'envoie un message au personnage lanceur avec la durée si la cof-option d'affichage des durées est cochée image

Enfin, je rajoute un effet temporaire sur le lanceur qui fait le compte des tours, avec comme valeur l'ID du token de ténèbres créé. A la fin de l'effet, le token est supprimé.

  1. Je ne pense pas automatiquement retirer l'effet aveuglé des tokens car ils pourraient toujours être aveuglés par autre chose. Le MJ pourra facilement faire une sélection et enlever le statut.
  2. Je n'ai pas fait l'aura dans ce cas-ci, car je trouvais que ça n'apportait rien. Si un perso bouge, le MJ devra de toute façon jouer à la main son entrée/sortie de la zone, donc peu d'intérêt.

Qu'en dis-tu ?

Ulty commented 3 years ago

Tel que je le comprends, le lanceur est obligatoire. Est-ce le cas ?

Far2Casual commented 3 years ago

Ben oui a priori ça me semble logique. Je suppose que du coup ça devrait être : !cof-tenebres @{selected|token_id} --disque @{target|token_id} 5 20

Ulty commented 3 years ago

Oui, ça me semblerait mieux.

Ulty commented 3 years ago

On devrait aussi ajouter un autre effet temporaire qu'aveuglé (avec les mêmes effets) pour pouvoir faire que tout le monde voit à nouveau à la fin du sort, non ?

Far2Casual commented 3 years ago

Ben, c'est juste que l'avantage d'un effet standard c'est que t'as l'icône et la macro pour changer ça à la main facilement, ce qui sera quand même très utile. Là j'ai changé le code et j'applique aveugleTemp automatiquement, et ça disparaîtra en même temps que la zone si jamais les persos ne sont pas sortis. Oui, ça pourrait occasionnellement être en conflit avec un autre effet qui applique le même statut, mais bon on parle de 1% des cas ?

Je me dis que vu qu'il faudra de toute façon une gestion manuelle des effets de ce sort, dans ce cas-ci autant rendre cette gestion plus simple au MJ, plutôt qu'un truc compliqué à base de nouveau statut un peu pénible à gérer (comme toiles).

Far2Casual commented 3 years ago

Faudra peut-être que tu m'aiguilles aussi, j'ai référencé dans le code un token transparent de mon compte roll20. Comment fais-tu toi généralement ?

Ulty commented 3 years ago

Si c'est retiré à la fin du sort, ça me va.

Pour le token, du moment que c'est dans ta librairie, ça passe. Je ne connais pas de moyen de faire autrement, puisqu'on ne peut pas pointer en dehors du cloud Roll20.

Far2Casual commented 3 years ago

En fait je mets des aveugleTemp au lancement du sort qui ont la même durée que la zone. Si tu atteins la limite en temps, ou si tu clos le combat, alors ils disparaissent. Si pour une raison ou pour une autre le sort doit être interrompu manuellement pendant le combat, il est facile pour le MJ de delete le token, mais s'il fait ça il devra retirer les états aveuglé à la main. Comme quand les personnages initialement aveuglés sortent de la zone en fait.

Ulty commented 3 years ago

Un truc qu'on pourrait peut-être aussi facilement rajouter : si un personnage en dehors de la zone attaque un personnage dans la zone, il ne la voit pas et donc devrait avoir les même pénalités qu'un personnage aveuglé.

Far2Casual commented 3 years ago

Je me désassigne juste parce que je compte pas travailler tout de suite sur une V2 avec ce que tu suggères, préférant continuer à améliorer d'autres voies utilisées par mes PJs. Si jamais, j'y reviendrai plus tard, pour l'instant ceci me suffit pour mes besoins (surtout les PNJs).