selection de la pièce à teleporter
This commit is contained in:
parent
11dc04b5b0
commit
3d2bb42aa6
2 changed files with 13 additions and 4 deletions
|
|
@ -71,7 +71,14 @@
|
|||
// helper: decide if a card requires a target selected after clicking 'Jouer'
|
||||
function cardRequiresTarget(cardId){
|
||||
if(!cardId) return null;
|
||||
const id = String(cardId).toLowerCase();
|
||||
// normalize and strip diacritics so titles like "Téléportation" become "teleportation"
|
||||
let id = String(cardId).toLowerCase();
|
||||
try{
|
||||
id = id.normalize('NFD').replace(/\p{Diacritic}/gu, '');
|
||||
}catch(e){
|
||||
// fallback: remove non-ascii characters
|
||||
id = id.replace(/[^\x00-\x7F]/g, '');
|
||||
}
|
||||
if(id.indexOf('mine') !== -1) return 'empty';
|
||||
// kamikaz targets one of your pieces (play card, then choose a piece)
|
||||
if(id.indexOf('kamikaz') !== -1) return 'owned';
|
||||
|
|
@ -88,6 +95,8 @@
|
|||
return 'enemy';
|
||||
}
|
||||
if(id.indexOf('coin') !== -1 || id === 'coin_coin') return 'owned';
|
||||
// teleportation: require selecting one of your pieces first (like promotion)
|
||||
if(id.indexOf('teleport') !== -1 || id.indexOf('tele') !== -1 || id.indexOf('t_l_portation') !== -1) return 'owned';
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
@ -777,7 +786,8 @@
|
|||
function emitPlay(){
|
||||
if(!socket) return;
|
||||
const cid = cardEl.dataset.cardId;
|
||||
const requireType = cardRequiresTarget(cid);
|
||||
// try cardId first, then fall back to the human title (helps with accented ids like "Téléportation")
|
||||
const requireType = cardRequiresTarget(cid) || cardRequiresTarget(c.title || '');
|
||||
if(requireType){
|
||||
if(requireType === 'player'){
|
||||
// If there's only one opponent, auto-select them (no modal needed). Otherwise show modal.
|
||||
|
|
|
|||
|
|
@ -129,7 +129,6 @@ function buildDefaultDeck(){
|
|||
['adoubement','La pièce sélectionnée peut maintenant faire les déplacements du cavalier en plus'],
|
||||
['folie','La pièce sélectionnée peut maintenant faire les déplacements du fou en plus'],
|
||||
['fortification','La pièce sélectionnée peut maintenant faire les déplacements de la tour en plus'],
|
||||
['fortification','La pièce sélectionnée peut maintenant faire les déplacements de la tour en plus'],
|
||||
["l'anneau","Le plateau devient un anneau pendant un tour"],
|
||||
// ['brouillard de guerre','Les joueur ne peuvent voir que au alentour de leurs pièces pendant 4 tours'],
|
||||
// ['changer la pièce à capturer','Le joueur choisie la nouvelle pièce jouant le rôle de roi sans la révéler'],
|
||||
|
|
@ -152,7 +151,7 @@ function buildDefaultDeck(){
|
|||
// ['épidémie','Toutes les pièces sur le territoire enemie est est capturée'],
|
||||
// ['glue','Toutes les pièces autour de la pièce désignée ne peuvent pas bouger tant que cette dernière ne bouge pas'],
|
||||
["coin coin","Possibilité de se téléporter depuis un coin vers n'importe quel autre coin"],
|
||||
// ['téléportation','Téléporte n importe quelle pièce de son camp sur une case vide'],
|
||||
['téléportation','Téléporte n importe quelle pièce de son camp sur une case vide'],
|
||||
// ['changement de camp','On retourne le plateau'],
|
||||
// ['ça tangue','Toutes les pièces se décale du même côté'],
|
||||
// ['réinitialisation','Toutes les pièces reviennent à leur position initiale. S il y a des pièces supplémenaires, se rangent devant les pions'],
|
||||
|
|
|
|||
Loading…
Reference in a new issue