Drop/Render: Add card quality
Assign random card quality on drop Render different border colors based on quality
This commit is contained in:
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -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),
|
||||
|
||||
});
|
||||
|
||||
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user