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
|
//get number of characters in database
|
||||||
const characterId = Math.floor(Math.random() * await CardUtils.getCharacterCount()) + 1;
|
const characterId = Math.floor(Math.random() * await CardUtils.getCharacterCount()) + 1;
|
||||||
console.log(`characterId: ${characterId}`);
|
console.log(`characterId: ${characterId}`);
|
||||||
|
//random number between 1 and 6
|
||||||
let newCard = await Card.create({
|
let newCard = await Card.create({
|
||||||
characterId: characterId,
|
characterId: characterId,
|
||||||
identifier: CardUtils.generateIdentifier(),
|
identifier: CardUtils.generateIdentifier(),
|
||||||
quality: 1,
|
quality: Math.floor(Math.random() * 6) + 1,
|
||||||
printNr: await CardUtils.getNextPrintNumber(characterId),
|
printNr: await CardUtils.getNextPrintNumber(characterId),
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -3,6 +3,15 @@ const crypto = require('crypto');
|
|||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const { Character } = require('../models');
|
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
|
//TODO: Handle missing images
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "Rendering",
|
name: "Rendering",
|
||||||
@@ -48,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).digest('hex');
|
let hash = crypto.createHash('md5').update(character.imageIdentifier + card.quality).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`;
|
||||||
@@ -56,7 +65,7 @@ module.exports = {
|
|||||||
|
|
||||||
console.log(`Rendering card ${hash}`);
|
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
|
//BUGBUG: Custom fonts not loading
|
||||||
let label = Buffer.from(`
|
let label = Buffer.from(`
|
||||||
<svg width="300" height="500">
|
<svg width="300" height="500">
|
||||||
|
|||||||
Reference in New Issue
Block a user