Drop/Render: Add card quality

Assign random card quality on drop
Render different border colors based on quality
This commit is contained in:
2022-08-28 22:52:52 +02:00
parent dea943bee4
commit 566a9c5818
4 changed files with 13 additions and 4 deletions

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -28,11 +28,11 @@ module.exports = {
//get number of characters in database
const characterId = Math.floor(Math.random() * await CardUtils.getCharacterCount()) + 1;
console.log(`characterId: ${characterId}`);
//random number between 1 and 6
let newCard = await Card.create({
characterId: characterId,
identifier: CardUtils.generateIdentifier(),
quality: 1,
quality: Math.floor(Math.random() * 6) + 1,
printNr: await CardUtils.getNextPrintNumber(characterId),
});

View File

@@ -3,6 +3,15 @@ const crypto = require('crypto');
const fs = require('fs');
const { Character } = require('../models');
const QualityColors = {
1: {r: 0, g: 0, b: 0}, //bad
2: {r: 150, g: 150, b: 50}, //ok
3: {r: 0, g: 255, b: 0}, //good
4: {r: 0, g: 255, b: 255}, //great
5: {r: 0, g: 0, b: 255}, //epic
6: {r: 255, g: 255, b: 0} //shiny
}
//TODO: Handle missing images
module.exports = {
name: "Rendering",
@@ -48,7 +57,7 @@ module.exports = {
return './assets/cards/card_cover.png';
}
let hash = crypto.createHash('md5').update(character.imageIdentifier).digest('hex');
let hash = crypto.createHash('md5').update(character.imageIdentifier + card.quality).digest('hex');
//TODO: Add switch to turn off or bypass caching
if (fs.existsSync(`./assets/image_cache/${hash}.gif`)) {
return `./assets/image_cache/${hash}.gif`;
@@ -56,7 +65,7 @@ module.exports = {
console.log(`Rendering card ${hash}`);
let border = await sharp(`./assets/border.svg`).toBuffer();
let border = await sharp(`./assets/overlays/border.svg`).tint(QualityColors[card.quality]).toBuffer();
//BUGBUG: Custom fonts not loading
let label = Buffer.from(`
<svg width="300" height="500">