Drop/Render: Fix button sorting issue

Buttons would not correspond to the correct card
in a rendered card-stack.
This commit is contained in:
2022-08-28 23:25:19 +02:00
parent 566a9c5818
commit de326e3cd5
2 changed files with 6 additions and 11 deletions

View File

@@ -44,20 +44,14 @@ module.exports = {
const row = new ActionRowBuilder(); const row = new ActionRowBuilder();
let deckImage = await Rendering.renderCardStack(cards); let deckImage = await Rendering.renderCardStack(cards);
for (const [i, card] of cards.entries()) { for (let i = 0; i < cards.length; i++) {
let character = await Character.findOne({
where: {
id: card.characterId
}
});
//Add claim button for each card //Add claim button for each card
row.addComponents( row.addComponents(
new ButtonBuilder() new ButtonBuilder()
.setCustomId(`claim-${i}-${card.identifier}`) .setCustomId(`claim-${i}-${cards[i].identifier}`)
.setLabel(`Claim ${i+1}`) .setLabel(`Claim ${i+1}`)
.setStyle(ButtonStyle.Primary), .setStyle(ButtonStyle.Primary),
); );
} }
const file = new AttachmentBuilder(deckImage); const file = new AttachmentBuilder(deckImage);

View File

@@ -57,7 +57,7 @@ module.exports = {
return './assets/cards/card_cover.png'; return './assets/cards/card_cover.png';
} }
let hash = crypto.createHash('md5').update(character.imageIdentifier + card.quality).digest('hex'); let hash = crypto.createHash('md5').update(character.imageIdentifier + card.quality + (card.userId == 1 ? 'unclaimed' : 'claimed')).digest('hex');
//TODO: Add switch to turn off or bypass caching //TODO: Add switch to turn off or bypass caching
if (fs.existsSync(`./assets/image_cache/${hash}.gif`)) { if (fs.existsSync(`./assets/image_cache/${hash}.gif`)) {
return `./assets/image_cache/${hash}.gif`; return `./assets/image_cache/${hash}.gif`;
@@ -78,8 +78,9 @@ module.exports = {
await cardImage.composite([ await cardImage.composite([
{input: border, top:0, left: 0, tile: true}, {input: border, top:0, left: 0, tile: true},
{input: label, top:0, left: 0, tile: true}]); {input: label, top:0, left: 0, tile: true}]);
//BUGBUG: Grayscale does not apply to card border
if (card.userId === 1) { if (card.userId === 1) {
cardImage.grayscale() await cardImage.grayscale()
.modulate({ .modulate({
brightness: 0.5 brightness: 0.5
}); });