Using distance for duck times.

This commit is contained in:
ThePendulum 2023-06-26 22:56:35 +02:00
parent 09e78a8bbb
commit 00b92f445e
1 changed files with 11 additions and 3 deletions

View File

@ -1,6 +1,7 @@
'use strict';
const config = require('config');
const { intervalToDuration } = require('date-fns');
const style = require('../utils/style');
const pickRandom = require('../utils/pick-random');
@ -56,11 +57,18 @@ function onCommand(args, context) {
}
const hit = Math.random() > config.duck.missRatio;
const time = ((new Date().getTime() - duck.getTime()) / 1000).toFixed(3);
const time = new Date().getTime() - duck.getTime();
const distance = time < 600 * 1000 // show exact time up to ten minutes
? `${(time / 1000).toFixed(3)} seconds`
: Object.entries(intervalToDuration({ start: duck, end: new Date() }))
.filter(([, value]) => value > 0)
.map(([key, value]) => `${value} ${key}`)
.join(', ');
if (['bang', 'shoot'].includes(context.command)) {
if (hit) {
context.sendMessage(`You shot a duck in ${style.bold(`${time} seconds`)}, ${context.user.prefixedUsername}`, context.room.id);
context.sendMessage(`${context.user.prefixedUsername}: You shot a duck in ${style.bold(style.red(distance))}`, context.room.id);
launchDuck(context);
context.setPoints(context.user, 1, { key: 'bang' });
@ -83,7 +91,7 @@ function onCommand(args, context) {
if (['bef', 'befriend'].includes(context.command)) {
if (hit) {
context.sendMessage(`You befriended a duck in ${style.bold(style.green(`${time} seconds`))}, ${context.user.prefixedUsername}`, context.room.id);
context.sendMessage(`${context.user.prefixedUsername}: You befriended a duck in ${style.bold(style.sky(distance))}`, context.room.id);
launchDuck(context);
context.setPoints(context.user, 1, { key: 'befriend' });