exports.testProgressBar = function(test) { test.expect(4); var progress, str, log = []; try { cli.progress(); } catch(error) { test.throws(error, Error, 'Name required'); } try { cli.progress("test"); } catch(error) { test.throws(error, Error, 'Total required'); } progress = cli.progress("test", 10, true, true); progress.write = function (content) { log.push(content); }; progress.tick(); test.equal(log[0], "test 10% [== ] 0.0s"); progress.tick(8); progress.stop(); test.equal(log[1], "test 90% [================== ] 0.0s"); test.done(); };
command: state => (options, player) => { const active = [...player.questTracker.activeQuests]; if (!active.length) { return say(player, "You have no active quests."); } for (let i in active) { const [, quest] = active[i]; const progress = quest.getProgress(); Broadcast.at(player, '<b><yellow>' + (parseInt(i, 10) + 1) + '</yellow></b>: '); say(player, Broadcast.progress(60, progress.percent, 'yellow') + ` ${progress.percent}%`); say(player, Broadcast.indent('<b><yellow>' + quest.getProgress().display + '</yellow></b>', 2)); if (quest.config.npc) { const npc = state.MobFactory.getDefinition(quest.config.npc); say(player, ` <b><yellow>Questor: ${npc.name}</yellow></b>`); } say(player, ' ' + Broadcast.line(78)); say( player, Broadcast.indent( Broadcast.wrap(`<b><yellow>${quest.config.desc}</yellow></b>`, 78), 2 ) ); say(player, ' ' + Broadcast.line(78)); } }
command: state => (args, player) => { const totalTnl = LevelUtil.expToLevel(player.level + 1); const currentPerc = player.experience ? Math.floor((player.experience / totalTnl) * 100) : 0; Broadcast.sayAt(player, `Level: ${player.level}`); Broadcast.sayAt(player, Broadcast.progress(80, currentPerc, "blue")); Broadcast.sayAt(player, `${player.experience}/${totalTnl} (${currentPerc}%, ${totalTnl - player.experience} til next level)`); }