#include animate.js const MamiYouAreAnIdiot = function() { const html =
you are an idiot
!
; let soundSrc; const pub = { getElement: () => html, onViewPush: () => { return new Promise((resolve, reject) => { const soundMgr = mami.getSound(); const soundSrcs = mami.getSoundLibrary().getSound('misc:youare').getSources(); soundMgr.load('youarebgm', soundSrcs, (success, buffer) => { if(success) { soundSrc = buffer.createSource(); soundSrc.setMuted(true); soundSrc.setLoopStart(0.21); soundSrc.setLoopEnd(5); soundSrc.setLoop(); soundSrc.play(); resolve(); } else reject(); }); }); }, onViewForeground: async () => { if(soundSrc !== undefined) soundSrc.setMuted(false); }, onViewBackground: async () => { if(soundSrc !== undefined) soundSrc.setMuted(true); }, onViewPop: async () => { if(soundSrc !== undefined) soundSrc.stop(); soundSrc = undefined; }, pushOn: async views => views.push(pub, ctx => MamiAnimate({ async: true, duration: 1500, easing: 'outBounce', start: () => ctx.toElem.style.top = '-100%', update: t => ctx.toElem.style.top = `${-100 + (t * 100)}%`, end: () => ctx.toElem.style.top = null, })), }; return pub; };