UNPKG

sif-calculator

Version:

ラブライブ!スクールアイドルフェスティバルのjavascriptヘルパー

144 lines (139 loc) 2.94 kB
const round = require('lodash/round'); /** * LPについて * @param int rank Rank * @return int */ function getLpByRank(rank) { if (rank === 1) { return 25; } if (rank > 1 && rank <= 300) { if (rank % 2 === 0) { return getLpByRank(1) + rank / 2; } return getLpByRank(rank - 1); } if (rank > 300 && rank <= 800) { if ((rank - 300) % 3 === 0) { return getLpByRank(300) + (rank - 300) / 3; } return getLpByRank(rank - 1); } if (rank > 800) { return getLpByRank(800); } } /** * 友達の上限について * @param int rank Rank * @return int */ function getFriendsByRank(rank) { if (rank === 1) { return 10; } if (rank > 1 && rank <= 50) { if (rank % 5 === 0) { return getFriendsByRank(1) + rank / 5; } return getFriendsByRank(rank - 1); } if (rank > 50 && rank <= 840) { if ((rank - 50) % 10 === 0) { return getFriendsByRank(50) + (rank - 50) / 10; } return getFriendsByRank(rank - 1); } if (rank > 840) { return getFriendsByRank(840); } } /** * EXPについて * @param int rank Rank * @return int */ function getExpByRank(rank) { switch (rank) { case 1: return 6; case 2: return 6; case 3: return 8; case 4: return 10; case 5: return 13; case 6: return 16; case 7: return 20; case 8: return 24; case 9: return 28; case 10: return 34; case 11: return 39; case 12: return 46; case 13: return 52; case 14: return 60; case 15: return 68; case 16: return 76; case 17: return 85; case 18: return 94; case 19: return 104; case 20: return 115; case 21: return 125; case 22: return 137; case 23: return 149; case 24: return 162; case 25: return 174; case 26: return 188; case 27: return 203; case 28: return 217; case 29: return 232; case 30: return 247; case 31: return 264; case 32: return 281; case 33: return 298; case 34: return 310; } if (rank > 35 && rank < 100) { return round(round(34.45 * rank - 551, 1) / 2); } if (rank >= 100) { return round(round(34.45 * rank - 551, 1)); } } module.exports = { getLpByRank, getFriendsByRank, getExpByRank };