mirror of
https://github.com/arthur-pbty/xiao.git
synced 2026-06-22 10:19:11 +02:00
Friendship Command
This commit is contained in:
@@ -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}`;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user