#include animate.js
const MamiYouAreAnIdiot = function() {
const html =
;
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;
};