Initialize medals with a save name used for storage * - Call this after creating all medals * - Checks if medals are unlocked * @param {string} saveName * @memberof Medals
(saveName)
| 56 | * @param {string} saveName |
| 57 | * @memberof Medals */ |
| 58 | function medalsInit(saveName) |
| 59 | { |
| 60 | // check if medals are unlocked |
| 61 | medalsSaveName = saveName; |
| 62 | if (!debugMedals) |
| 63 | medalsForEach(medal=> medal.unlocked = !!localStorage[medal.storageKey()]); |
| 64 | |
| 65 | // engine automatically renders medals |
| 66 | engineAddPlugin(undefined, medalsRender); |
| 67 | |
| 68 | // plugin functions |
| 69 | function medalsRender() |
| 70 | { |
| 71 | if (!medalsDisplayQueue.length) return; |
| 72 | |
| 73 | // update first medal in queue |
| 74 | const medal = medalsDisplayQueue[0]; |
| 75 | const time = timeReal - medalsDisplayTimeLast; |
| 76 | if (!medalsDisplayTimeLast) |
| 77 | medalsDisplayTimeLast = timeReal; |
| 78 | else if (time > medalDisplayTime) |
| 79 | { |
| 80 | medalsDisplayTimeLast = 0; |
| 81 | medalsDisplayQueue.shift(); |
| 82 | } |
| 83 | else |
| 84 | { |
| 85 | // slide on/off medals |
| 86 | const slideOffTime = medalDisplayTime - medalDisplaySlideTime; |
| 87 | const hidePercent = |
| 88 | time < medalDisplaySlideTime ? 1 - time / medalDisplaySlideTime : |
| 89 | time > slideOffTime ? (time - slideOffTime) / medalDisplaySlideTime : 0; |
| 90 | medal.render(hidePercent); |
| 91 | } |
| 92 | } |
| 93 | } |
| 94 | |
| 95 | /** |
| 96 | * @callback MedalCallbackFunction - Function that processes a medal |
no test coverage detected