mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-12-24 18:08:50 +00:00
Easter egg special Manon
This commit is contained in:
parent
4c92f3398d
commit
8bbf55c7ed
1
assets/3rdparty/clippy.js/Agents/Merlin/agent.js
vendored
Normal file
1
assets/3rdparty/clippy.js/Agents/Merlin/agent.js
vendored
Normal file
File diff suppressed because one or more lines are too long
BIN
assets/3rdparty/clippy.js/Agents/Merlin/map.png
vendored
Normal file
BIN
assets/3rdparty/clippy.js/Agents/Merlin/map.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 1013 KiB |
1
assets/3rdparty/clippy.js/Agents/Merlin/sounds-mp3.js
vendored
Normal file
1
assets/3rdparty/clippy.js/Agents/Merlin/sounds-mp3.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
assets/3rdparty/clippy.js/Agents/Merlin/sounds-ogg.js
vendored
Normal file
1
assets/3rdparty/clippy.js/Agents/Merlin/sounds-ogg.js
vendored
Normal file
File diff suppressed because one or more lines are too long
62
assets/3rdparty/clippy.js/clippy.css
vendored
Normal file
62
assets/3rdparty/clippy.js/clippy.css
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
.clippy, .clippy-balloon {
|
||||
position: fixed;
|
||||
z-index: 1000;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.clippy-balloon {
|
||||
|
||||
background: #FFC;
|
||||
color: black;
|
||||
padding: 8px;
|
||||
border: 1px solid black;
|
||||
border-radius: 5px;
|
||||
|
||||
}
|
||||
|
||||
.clippy-content {
|
||||
max-width: 200px;
|
||||
min-width: 120px;
|
||||
font-family: "Microsoft Sans", sans-serif;
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
.clippy-tip {
|
||||
width: 10px;
|
||||
height: 16px;
|
||||
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAgCAMAAAAlvKiEAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAlQTFRF///MAAAA////52QwgAAAAAN0Uk5T//8A18oNQQAAAGxJREFUeNqs0kEOwCAIRFHn3//QTUU6xMyyxii+jQosrTPkyPEM6IN3FtzIRk1U4dFeKWQiH6pRRowMVKEmvronEynkwj0uZJgR22+YLopPSo9P34wJSamLSU7lSIWLJU7NkNomNlhqxUeAAQC+TQLZyEuJBwAAAABJRU5ErkJggg==) no-repeat;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.clippy-top-left .clippy-tip {
|
||||
top: 100%;
|
||||
margin-top: 0px;
|
||||
left: 100%;
|
||||
margin-left: -50px;
|
||||
}
|
||||
|
||||
.clippy-top-right .clippy-tip {
|
||||
top: 100%;
|
||||
margin-top: 0px;
|
||||
left: 0;
|
||||
margin-left: 50px;
|
||||
background-position: -10px 0;
|
||||
|
||||
}
|
||||
|
||||
.clippy-bottom-right .clippy-tip {
|
||||
top: 0;
|
||||
margin-top: -16px;
|
||||
left: 0;
|
||||
margin-left: 50px;
|
||||
background-position: -10px -16px;
|
||||
}
|
||||
|
||||
.clippy-bottom-left .clippy-tip {
|
||||
top: 0;
|
||||
margin-top: -16px;
|
||||
left: 100%;
|
||||
margin-left: -50px;
|
||||
background-position: 0px -16px;
|
||||
}
|
||||
|
1
assets/3rdparty/clippy.js/clippy.min.js
vendored
Normal file
1
assets/3rdparty/clippy.js/clippy.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
70
assets/js/components/manon.js
Normal file
70
assets/js/components/manon.js
Normal file
@ -0,0 +1,70 @@
|
||||
/**
|
||||
* Manon's special (hidden) features
|
||||
*
|
||||
* @author Pierre Hubert
|
||||
*/
|
||||
|
||||
/**
|
||||
* Check if it is Manon's birthday
|
||||
*/
|
||||
async function checkManonBirthday() {
|
||||
|
||||
// Manon's feature only
|
||||
if(userID() !== 150)
|
||||
return;
|
||||
|
||||
const date = new Date();
|
||||
|
||||
if(date.getMonth() != 4 && date.getDay() != 8)//TODO: replace
|
||||
return;
|
||||
|
||||
// Load clippy
|
||||
const css = document.createElement("link");
|
||||
css.rel = "stylesheet";
|
||||
css.type = "text/css";
|
||||
css.href = ComunicWeb.__config.assetsURL + "3rdparty/clippy.js/clippy.css"
|
||||
document.head.appendChild(css);
|
||||
|
||||
const js = document.createElement("script");
|
||||
js.type = "text/javascript";
|
||||
js.src = ComunicWeb.__config.assetsURL + "3rdparty/clippy.js/clippy.min.js"
|
||||
document.body.appendChild(js);
|
||||
|
||||
await new Promise((res, rej) => js.addEventListener("load", res));
|
||||
|
||||
|
||||
// Configure clippy
|
||||
clippy.BASE_PATH = ComunicWeb.__config.assetsURL + "3rdparty/clippy.js/Agents/";
|
||||
|
||||
// Load Merlin
|
||||
const agent = await new Promise((res, rej) => clippy.load('Merlin', res));
|
||||
|
||||
|
||||
|
||||
// Wait for Manon
|
||||
await new Promise((res, rej) => window.addEventListener("mousedown", res, {once: true}));
|
||||
|
||||
|
||||
|
||||
|
||||
// Show the agent
|
||||
agent.show();
|
||||
|
||||
agent.play("Announce");
|
||||
|
||||
|
||||
|
||||
agent.speak("Joyeux anniversaire Manon ! Que cette nouvelle année qui commence pour toi t'apporte la joie !", true);
|
||||
setTimeout(() => agent.stopCurrent(), 8000);
|
||||
|
||||
agent.play("Pleased", 6000, () => agent.hide());
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Do the check on first page load only
|
||||
document.addEventListener("wsOpen", () => {
|
||||
setTimeout(() => checkManonBirthday(), 1000);
|
||||
}, {
|
||||
once: true
|
||||
})
|
@ -472,6 +472,7 @@ class Dev {
|
||||
|
||||
//Pacman component (easter egg)
|
||||
"js/components/pacman.js",
|
||||
"js/components/manon.js",
|
||||
|
||||
//User scripts
|
||||
"js/user/loginTokens.js",
|
||||
|
Loading…
Reference in New Issue
Block a user