MCPcopy Index your code
hub / github.com/KilledByAPixel/LittleJS / medalsInit

Function medalsInit

plugins/medalSystem.js:58–93  ·  view source on GitHub ↗

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)

Source from the content-addressed store, hash-verified

56 * @param {string} saveName
57 * @memberof Medals */
58function 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

Callers 2

gameInitFunction · 0.85
game.jsFile · 0.85

Calls 3

medalsForEachFunction · 0.85
engineAddPluginFunction · 0.85
storageKeyMethod · 0.80

Tested by

no test coverage detected