'use strict';

module.exports = {
	platform: 'schat',
	user: {
		id: 'clive',
		username: 'Clive',
		realName: 'Clive',
		avatar: null,
		key: null,
	},
	style: {
		// color: 'var(--message-56)',
	},
	operators: ['admin'],
	server: 'irc.libera.chat',
	port: 6697,
	socket: 'ws://127.0.0.1:3000/socket',
	api: 'http://127.0.0.1:3000/api',
	reconnectDelay: 10, // seconds
	prefix: '~',
	labels: true,
	greeting: 'Hi, I am Clive, your game host!',
	usernamePrefix: '@',
	channels: ['GamesNight'],
	games: [
		'chat',
		'mash',
		'trivia',
		'letters',
		'hunt',
		'8ball',
		'geo',
		'riddle',
		'dice',
		'rock-paper-scissors',
		'duck',
		'ping',
		'say',
		'kill',
		'uptime',
		'help',
	],
	schatColors: {
		white: 'white',
		blue: 'var(--message-40)',
		navy: 'var(--message-40)',
	},
	schatColorAliases: {
		red: 'red',
		brown: 'brown',
		orange: 'orange',
		beige: 'beige',
		yellow: 'yellow',
		forest: 'forest',
		green: 'green',
		mint: 'mint',
		cyan: 'cyan',
		blue: 'blue',
		sky: 'sky',
		purple: 'purple',
		violet: 'violet',
		pink: 'pink',
		grey: 'shadow',
		silver: 'shadow',
	},
	chat: {
		apiKey: null, // OpenAI
		validModels: [
			'gpt-3.5-turbo',
			'text-davinci-003',
			'gpt-4',
		],
		model: 'gpt-3.5-turbo',
		replyTokenLimit: 1000,
		userTokenLimit: 20000, // daily, roughly 100+ messages or $0.04 per user
		userTokenPeriod: 24, // hours
		temperature: 1,
		history: 3,
		rule: 'a tired game host',
		rulePublic: true,
	},
	trivia: {
		mode: 'first', // first or timeout
		rounds: 10,
		timeout: 60,
		bounds: {
			rounds: [1, 30],
			timeout: [5, 300],
		},
	},
	duck: {
		interval: [10, 3600], // seconds
		duck: ':duck:',
		missRatio: 0.25,
	},
	letters: {
		length: 9,
		timeout: 60,
	},
	riddle: {
		timeout: 30,
		score: false,
	},
	dice: {
		maxRolls: 20,
		maxFaces: 1000,
	},
	hunt: {
		minLength: 5,
		maxLength: 9,
		guesses: [4, 4, 6, 7, 9],
		// guesses: [2, 3, 4, 5, 6, 7], // by word length, last number repeats for longer words
	},
	geo: {
		url: 'https://geo.unknown.name/',
	},
};