Friendship Command

This commit is contained in:
Dragon Fire
2020-04-18 18:03:34 -04:00
parent c087e3b40c
commit 77e9a087e8
6 changed files with 137 additions and 24 deletions
+3 -22
View File
@@ -3,6 +3,7 @@ const { MersenneTwister19937, integer } = require('random-js');
const { createCanvas, loadImage, registerFont } = require('canvas');
const request = require('node-superfetch');
const path = require('path');
const { percentColor } = require('../../util/Util');
registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'Pinky Cupid.otf'), { family: 'Pinky Cupid' });
const percentColors = [
{ pct: 0.0, color: { r: 0, g: 0, b: 255 } },
@@ -14,6 +15,7 @@ module.exports = class ShipCommand extends Command {
constructor(client) {
super(client, {
name: 'ship',
aliases: ['compatability-meter', 'compatability', 'love-tester', 'love-test'],
group: 'random-seed',
memberName: 'ship',
description: 'Ships two users together.',
@@ -75,7 +77,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 = this.percentColor(level / 100);
ctx.fillStyle = percentColor(level / 100, percentColors);
ctx.fillText(`~${level}%~`, 600, 230);
ctx.fillText(this.calculateLevelText(level), 600, 296);
ctx.font = '90px Pinky Cupid';
@@ -104,25 +106,4 @@ module.exports = class ShipCommand extends Command {
if (level === 100) return 'Soulmates';
return '???';
}
percentColor(pct) {
let i = 1;
for (i; 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}`;
}
};