Ship Color goes from blue -> red with %

This commit is contained in:
Dragon Fire
2020-04-17 18:54:14 -04:00
parent 6cfd68684c
commit 286689de06
2 changed files with 27 additions and 2 deletions
+26 -1
View File
@@ -4,6 +4,11 @@ const { createCanvas, loadImage, registerFont } = require('canvas');
const request = require('node-superfetch');
const path = require('path');
registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'Pinky Cupid.otf'), { family: 'Pinky Cupid' });
const percentColors = [
{ pct: 0.0, color: { r: 0, g: 0, b: 255 } },
{ pct: 0.5, color: { r: 255 / 2, g: 0, b: 255 / 2 } },
{ pct: 1.0, color: { r: 255, g: 0, b: 0 } }
];
module.exports = class ShipCommand extends Command {
constructor(client) {
@@ -69,7 +74,7 @@ module.exports = class ShipCommand extends Command {
ctx.fillText(first.username, 270, 448);
ctx.fillText(second.username, 930, 448);
ctx.font = '60px Pinky Cupid';
ctx.fillStyle = 'red';
ctx.fillStyle = this.percentColor(level / 100);
ctx.fillText(`~${level}%~`, 600, 230);
ctx.fillText(this.calculateLevelText(level), 600, 296);
ctx.font = '90px Pinky Cupid';
@@ -98,4 +103,24 @@ module.exports = class ShipCommand extends Command {
if (level === 100) return 'Soulmates';
return '???';
}
percentColor(pct) {
for (let i = 1; i < percentColors.length - 1; i++) {
if (pct < percentColors[i].pct) {
break;
}
}
const lower = percentColors[i - 1];
const upper = percentColors[i];
const range = upper.pct - lower.pct;
const rangePct = (pct - lower.pct) / range;
const pctLower = 1 - rangePct;
const pctUpper = rangePct;
const color = {
r: Math.floor((lower.color.r * pctLower) + (upper.color.r * pctUpper)).toString(16).padStart(2, '0'),
g: Math.floor((lower.color.g * pctLower) + (upper.color.g * pctUpper)).toString(16).padStart(2, '0'),
b: Math.floor((lower.color.b * pctLower) + (upper.color.b * pctUpper)).toString(16).padStart(2, '0')
};
return `#${color.r}${color.g}${color.b}`;
};
};
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "xiao",
"version": "113.0.3",
"version": "113.0.4",
"description": "Your personal server companion.",
"main": "Xiao.js",
"scripts": {