Add secret theme S11

This commit is contained in:
Hirame1 2022-01-08 22:17:03 +07:00 committed by Andrei Andreev
parent 64b0477d0b
commit 5aa524cff8
7 changed files with 168 additions and 3 deletions

View File

@ -0,0 +1,11 @@
Vue.component("blob-snow", {
template: `
<div class="snowflakes" aria-hidden="true">
<div class="snowflake"></div>
<div class="snowflake"></div>
<div class="snowflake"></div>
<div class="snowflake"></div>
<div class="snowflake"></div>
<div class="snowflake"></div>
<div class="snowflake"></div>
</div>` });

View File

@ -5,6 +5,7 @@ import "./speedrun-status.js";
import "./help-me.js";
import "./tt-shop.js";
import "./new-ui/sidebar.js";
import "./blob-snow.js";
import TabComponents from "@/components/tabs";
import PopupModal from "@/components/modals/PopupModal";
@ -46,6 +47,7 @@ Vue.component("game-ui", {
<modal-progress-bar v-if="view.modal.progressBar" />
<link v-if="view.theme !== 'Normal'" type="text/css" rel="stylesheet" :href="themeCss">
<help-me />
<blob-snow />
</div>
<div id="notification-container" class="l-notification-container" />
<tt-shop v-if="view.subtab === 'studies'" class="l-time-studies-tab__tt-shop" />

View File

@ -75,6 +75,7 @@ Theme.secretThemeIndex = function(name) {
"1bbc0800145e72dfea5bfb218eba824c52510488b3a05ee88feaaa6683322d19",
"dba8336cd3224649d07952b00045a6ec3c8df277aa8a0a0e3e7c2aaa77f1fbb9",
"73de8a7f9efa1cbffc80a8effc9891a799127cd204b3a8b023bea8f513ed4753",
"f3a71114261b4af6517a53f89bf0c6b56bb81b6f0e931d0e0d71249eb196628c",
];
const sha = sha512_256(name.toUpperCase());
return secretThemes.indexOf(sha);
@ -135,6 +136,7 @@ export const Themes = {
Theme.create("S8", { metro: true, secret: true, }),
Theme.create("S9", { secret: true, }),
Theme.create("S10", { dark: true, metro: true, animated: true, secret: true, }),
Theme.create("S11", { dark: true, secret: true, }),
/* eslint-enable no-multi-spaces */
],

Binary file not shown.

View File

@ -114,6 +114,10 @@ body.t-s9 {
animation: a-game-header__antimatter--glow 25s infinite;
}
.t-s11 .o-sidebar-currency--antimatter {
animation: a-game-header__antimatter--glow-blob 25s infinite;
}
.t-dark-metro .o-sidebar-currency--antimatter {
color: #e0e0e0;
}

View File

@ -161,6 +161,21 @@ html {
--color-laitela--accent: white;
}
.t-s11 #ui-container /* csslint allow: empty-rules */
{
--color-text: #E0E0E0;
--color-text-inverted: black;
--color-base: black;
--color-accent: #fbc21b;
--color-prestige--accent: black;
--color-teresa--accent: black;
--color-laitela--base: black;
--color-laitela--accent: white;
}
/* end css vars */
body {
@ -2007,6 +2022,17 @@ screen and (max-width: 480px) {
100% {color: #2196f3;}
}
.t-s11 .c-game-header__antimatter {
animation: a-game-header__antimatter--glow-blob 25s infinite;
}
@keyframes a-game-header__antimatter--glow-blob {
0% {color: #fbc21b;}
33% {color: #caa32c;}
66% {color: #fba11b;}
100% {color: #fbc21b;}
}
.t-dark-metro .c-game-header__antimatter {
color: #e0e0e0;
}
@ -2305,7 +2331,8 @@ screen and (max-width: 480px) {
.t-dark .c-infinity-dim-description__accent,
.t-s6 .c-infinity-dim-description__accent,
.t-s10 .c-infinity-dim-description__accent {
.t-s10 .c-infinity-dim-description__accent,
.t-s11 .c-infinity-dim-description__accent {
color: white;
text-shadow: 0 0 0.7rem #fff;
}
@ -2358,7 +2385,8 @@ screen and (max-width: 480px) {
.t-dark .c-time-dim-description__accent,
.t-s6 .c-time-dim-description__accent,
.t-s10 .c-time-dim-description__accent {
.t-s10 .c-time-dim-description__accent,
.t-s11 .c-time-dim-description__accent {
color: var(--color-dilation);
text-shadow: 0 0 0.7rem var(--color-dilation);
}
@ -3190,7 +3218,9 @@ screen and (max-width: 480px) {
.t-s6 .c-challenge-box--normal,
.t-s6 .c-challenge-box--infinity,
.t-s10 .c-challenge-box--normal,
.t-s10 .c-challenge-box--infinity {
.t-s10 .c-challenge-box--infinity,
.t-s11 .c-challenge-box--normal,
.t-s11 .c-challenge-box--infinity {
background-color: black;
border: 0.1rem solid;
}
@ -4258,6 +4288,10 @@ screen and (max-width: 480px) {
color: #03a9f4;
}
.t-s11 .c-replicanti-description__accent {
color: #fbc21b;
}
.t-metro .c-replicanti-description__accent,
.t-s8 .c-replicanti-description__accent {
text-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.5), -0.1rem 0.1rem 0.1rem black;
@ -4269,6 +4303,10 @@ screen and (max-width: 480px) {
text-shadow: 0 0 0.7rem #03a9f4;
}
.t-s11 .c-replicanti-description__accent {
text-shadow: 0 0 0.7rem #fbc21b;
}
/*#endregion c-replicanti-description*/
.l-replicanti-upgrade-row {

View File

@ -0,0 +1,108 @@
@font-face {
font-family: Typewriter;
src: url('blob_font_bold.ttf'), url('MonospaceTypewriter.ttf');
}
body.t-s11 {
color: #999;
background: black;
background-size: 100%;
background-position: center;
}
.t-s11 .c-tt-amount {
color: #64DD17;
text-shadow: 0 0 7px #64DD17;
}
.t-s11 .c-tt-buy-button--unlocked {
color: #3AACD6;
background: black;
border: 0.1rem solid #3AACD6;
}
.t-s11 .c-tt-buy-button--unlocked:hover {
color: black;
background: #3AACD6;
}
.t-s11 .c-tt-buy-button--locked {
color: grey;
background: black;
border: 0.1rem solid grey;
}
.t-s11 .c-tt-buy-button--locked:hover {
color: black;
background: var(--color-bad);
border: 0.1rem solid var(--color-bad);
}
.t-s11 .c-rm-amount__desc {
color: #999;
}
.t-s11 #realityanimbg {
filter: invert(1);
}
/* customizable snowflake styling */
.snowflake {
color: #fbc21b;
font-size: 6em;
font-family: Typewriter;
/*text-shadow: 0 0 1px #000;*/
text-shadow: 0 0 10px #fff,
0 0 20px #fff,
0 0 30px #fbc21b,
0 0 40px #fbc21b,
0 0 50px #fbc21b,
0 0 60px #fbc21b,
0 0 70px #fbc21b;
opacity: 0.7;
pointer-events: none;
}
@-webkit-keyframes snowflakes-fall{0%{top: -20%}100%{top: 100%}}
@-webkit-keyframes snowflakes-shake{
0%{-webkit-transform: translateX(0px); transform: translateX(0px)}
50%{-webkit-transform: translateX(80px); transform: translateX(80px)}
100%{-webkit-transform: translateX(0px); transform: translateX(0px)}
}
@keyframes snowflakes-fall{
0%{top: -20%}
100%{top: 100%}
}
@keyframes snowflakes-shake{
0%{transform: translateX(0px)}
50%{transform: translateX(80px)}
100%{transform: translateX(0px)}
}
.snowflake{
position: fixed; top: -20%; z-index: 9999;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select:none; cursor:default;
-webkit-animation-name: snowflakes-fall, snowflakes-shake;
-webkit-animation-duration: 10s, 3s;
-webkit-animation-timing-function: linear, ease-in-out;
-webkit-animation-iteration-count: infinite, infinite;
-webkit-animation-play-state: running, running;
animation-name: snowflakes-fall, snowflakes-shake;
animation-duration: 15s, 5s;
animation-timing-function: linear, ease-in-out;
animation-iteration-count: infinite, infinite;
animation-play-state: running, running
}
.snowflake:nth-of-type(0){left: 1%; -webkit-animation-delay: 0s, 0s; animation-delay: 0s, 0s}
.snowflake:nth-of-type(1){left: 10%; -webkit-animation-delay: 1s, 1s; animation-delay: 1s, 1s}
.snowflake:nth-of-type(2){left: 20%; -webkit-animation-delay: 6s, .5s; animation-delay: 6s, .5s}
.snowflake:nth-of-type(3){left: 30%; -webkit-animation-delay: 4s, 2s; animation-delay: 4s, 2s}
.snowflake:nth-of-type(4){left: 40%; -webkit-animation-delay: 2s, 2s; animation-delay: 2s, 2s}
.snowflake:nth-of-type(5){left: 50%; -webkit-animation-delay: 8s, 3s; animation-delay: 8s, 3s}
.snowflake:nth-of-type(6){left: 60%; -webkit-animation-delay: 6s, 2s; animation-delay: 6s, 2s}
.snowflake:nth-of-type(7){left: 70%; -webkit-animation-delay: 2.5s, 1s; animation-delay: 2.5s, 1s}
.snowflake:nth-of-type(8){left: 80%; -webkit-animation-delay: 1s, 0s; animation-delay: 1s, 0s}
.snowflake:nth-of-type(9){left: 90%; -webkit-animation-delay: 3s, 1.5s; animation-delay: 3s, 1.5s}