34 Commits

Author SHA1 Message Date
Vick Scarlet
ab705dd46c build version 2021-12-14 18:48:42 +08:00
Vick Scarlet
a1e4232369 change talent replace before property allocate 2021-12-14 18:47:05 +08:00
Vick Scarlet
f4d7b3ae3c add event grade 2021-12-14 18:06:18 +08:00
Vick Scarlet
0567e40ddc add particle 2021-12-02 21:28:10 +08:00
Vick Scarlet
f17003925e change ui 2021-12-02 20:14:26 +08:00
Vick Scarlet
f8beda1d8f change popup message ui 2021-12-02 19:08:30 +08:00
Vick Scarlet
915a2aa17d new build 2021-12-02 18:34:29 +08:00
Vick Scarlet
b5edabc104 add hint message 2021-12-02 18:18:46 +08:00
Vick Scarlet
a143feadaf fix copy bug 2021-12-02 17:57:31 +08:00
Vick Scarlet
eab1975791 add save/load 2021-12-02 17:56:28 +08:00
Vick Scarlet
acf9b92134 add theme switch 2021-12-02 14:35:33 +08:00
Vick Scarlet
488a6054ab fix uiManager bug 2021-12-01 18:30:36 +08:00
Vick Scarlet
f0317eaf14 add message popup 2021-12-01 16:07:03 +08:00
Vick Scarlet
eb02d1ee6f change relocation 2021-11-28 21:22:54 +08:00
Vick Scarlet
60503eae47 change ScaleButton -> Laya.runtime.ScaleButton 2021-11-28 19:27:16 +08:00
Vick Scarlet
52ef5909c1 change ScaleButton -> Laya.runtime.ScaleButton 2021-11-28 19:26:31 +08:00
Vick Scarlet
0284f6aa71 config webpack 2021-11-28 19:05:24 +08:00
Vick Scarlet
0e272ffd99 add thanks 2021-11-28 13:17:41 +08:00
Vick Scarlet
e1e2ab4701 add light theme 2021-11-28 11:40:21 +08:00
Vick Scarlet
4f55c00f86 fix bug 2021-11-27 22:27:39 +08:00
Vick Scarlet
1d07bdfc46 daily update 2021-11-27 21:48:47 +08:00
Vick Scarlet
52d6a0ca8f daily update 2021-11-24 23:10:04 +08:00
Vick Scarlet
f8dd720d4d daily update 2021-11-24 19:08:13 +08:00
Vick Scarlet
d088c1a862 remove useless 2021-11-21 21:41:46 +08:00
Vick Scarlet
a711fcf3ed add achievement popup
add page adaptive
add talent extends
2021-11-16 00:53:05 +08:00
Vick Scarlet
05e02de3db add github and discord 2021-11-13 01:24:04 +08:00
Vick Scarlet
bff0109cc5 add trajectory auto mode 2021-11-13 00:30:01 +08:00
Vick Scarlet
54c04f65c2 fix property judge negative number bug 2021-11-12 19:54:31 +08:00
Vick Scarlet
660739530b update achievement 2021-11-12 19:48:58 +08:00
Vick Scarlet
c94e9e7433 update daily 2021-11-11 21:37:45 +08:00
Vick Scarlet
c06cd9ea62 update daily 2021-11-09 00:08:05 +08:00
Vick Scarlet
2666983f89 add uiManager auto scan and load skin resource 2021-11-07 23:00:22 +08:00
Vick Scarlet
22fa5d755a update framework 2021-11-07 22:17:04 +08:00
Vick Scarlet
f40698d63e add laya 2021-10-31 00:13:22 +08:00
15 changed files with 24 additions and 1068 deletions

View File

@@ -1,2 +0,0 @@
node_modules
npm-debug.log

View File

@@ -1,15 +0,0 @@
FROM node:alpine
ENV NPM_CONFIG_LOGLEVEL info
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD ["yarn", "dev"]

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -11825,8 +11825,6 @@
"20567*0.01",
"11497*0.05",
"11498*0.05",
"21326",
"21327",
"40065*1000000000000000000",
"40066*100000000000000000",
"40067*100000000000000000",
@@ -12048,8 +12046,6 @@
"11497*0.05",
"11498*0.05",
"11499*0.1",
"21326",
"21327",
"40065*1000000000000000000",
"40066*100000000000000000",
"40067*100000000000000000",
@@ -12271,8 +12267,6 @@
"11498*0.05",
"11499*0.1",
"10426*0.1",
"21326",
"21327",
"40065*1000000000000000000",
"40066*100000000000000000",
"40067*100000000000000000",
@@ -12485,8 +12479,6 @@
"11498*0.05",
"11499*0.1",
"10426*0.1",
"21326",
"21327",
"40065*1000000000000000000",
"40066*100000000000000000",
"40067*100000000000000000",

View File

@@ -390,9 +390,8 @@
"name": "神丶暴龙战士灬张杨"
},
{
"group": 1,
"name": "NovaDNG",
"comment": "感谢你们为世界带来一些欢乐"
"group": 2,
"name": "NovaDNG"
},
{
"group": 2,
@@ -2407,67 +2406,6 @@
"group": 2,
"name": "皓月长歌"
},
{
"group": 2,
"name": "逸云"
},
{
"group": 2,
"name": "那么可爱当然是__",
"color": "#ADFF2F"
},
{
"group": 2,
"name": "嘉然我真的好喜欢你啊"
},
{
"group": 2,
"name": "楪之舞"
},
{
"group": 2,
"name": "山中迷路的小勘"
},
{
"group": 2,
"name": "月幵大fw"
},
{
"group": 2,
"name": "樱saber与魔人archer"
},
{
"group": 2,
"name": "路痴"
},
{
"group": 2,
"name": "拓舟"
},
{
"group": 2,
"name": "又找不到了qwq"
},
{
"group": 2,
"name": "ClearMoon"
},
{
"group": 2,
"name": "碳烤的咕咕蛋"
},
{
"group": 2,
"name": "鞠培雯"
},
{
"group": 2,
"name": "想要内卷"
},
{
"group": 2,
"name": "绝对不是楠桐的仓妖"
},
{
"group": 2,
"name": "超级无敌暴龙战士"
@@ -4298,50 +4236,5 @@
{
"group": 2,
"name": "Buruol"
},
{
"group": 2,
"name": "吃不饱"
},
{
"group": 2,
"name": "姚尼玛"
},
{
"group": 2,
"name": "行者汤恩"
},
{
"group": 2,
"name": "懒惰的肥猿"
},
{
"group": 2,
"name": "库库林白夜"
},
{
"group": 2,
"name": "SSSamuel"
},
{
"group": 2,
"name": "小勘"
},
{
"group": 2,
"name": "『H』"
},
{
"group": 2,
"name": "魔法少女立花响"
},
{
"group": 2,
"name": "凞咥"
},
{
"group": 2,
"name": "INKS",
"color": "#7FFFFD4"
}
]

View File

@@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"><meta name="description" content="やり直すんだ。そして、次はうまくやる。"/><meta name="keywords" content="人生重开模拟器 liferestart life restart remake 人生重来"/><meta name="renderer" content="webkit"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="full-screen" content="true"/><meta name="x5-fullscreen" content="true"/><meta name="360-fullscreen" content="true"/><meta name="theme-color" content="#157878"/><meta name="laya" screenorientation="landscape"/><meta http-equiv="expires" content="0"/><meta http-equiv="Cache-Control" content="no-siteapp"/><title>Life Restart</title><script src="libs/laya/min/laya.core.min.js"></script><script src="libs/laya/min/laya.webgl.min.js"></script><script src="libs/laya/min/laya.filter.min.js"></script><script src="libs/laya/min/laya.particle.min.js"></script><script src="libs/laya/min/laya.ui.min.js"></script><script defer="defer" src="chunk/main.a3242.js"></script></head><body style="background:black"></body></html>
<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"><meta name="description" content="やり直すんだ。そして、次はうまくやる。"/><meta name="keywords" content="人生重开模拟器 liferestart life restart remake 人生重来"/><meta name="renderer" content="webkit"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="full-screen" content="true"/><meta name="x5-fullscreen" content="true"/><meta name="360-fullscreen" content="true"/><meta name="theme-color" content="#157878"/><meta name="laya" screenorientation="landscape"/><meta http-equiv="expires" content="0"/><meta http-equiv="Cache-Control" content="no-siteapp"/><title>Life Restart</title><script src="libs/laya/min/laya.core.min.js"></script><script src="libs/laya/min/laya.webgl.min.js"></script><script src="libs/laya/min/laya.filter.min.js"></script><script src="libs/laya/min/laya.particle.min.js"></script><script src="libs/laya/min/laya.ui.min.js"></script><script defer="defer" src="chunk/main.c7a9c.js"></script></head><body style="background:black"></body></html>

View File

@@ -10,25 +10,6 @@ globalThis.UI =
UIManager;
globalThis.$_ = utils;
globalThis.goto = async tag => {
let url;
switch(tag) {
case 'github': url = 'https://github.com/VickScarlet/lifeRestart'; break;
case 'discord': url = 'https://discord.gg/U3qrf49NMQ'; break;
case 'sponsor_afd': url = 'https://afdian.net/@LifeRestart'; break;
case 'sponsor_ddf': url = 'https://dun.mianbaoduo.com/@vickscarlet'; break;
}
try {
if(Laya.Browser.onIOS) {
window.location.href = url;
} else {
window.open(url, '_blank');
}
} catch (error) {
console.error(error);
}
}
class App{
constructor(){
this.name = 'lifeRestart';
@@ -175,7 +156,6 @@ class App{
dataSet=>Laya.promises.loader.load(`data/${dataSet}.json`, null, Laya.Loader.JSON),
);
await $ui.switchView(UI.pages.MAIN);
}
}

View File

@@ -1,6 +1,21 @@
import App from './app.js';
import Life from './modules/life.js';
globalThis.goto = async tag => {
let url;
switch(tag) {
case 'github': url = 'https://github.com/VickScarlet/lifeRestart'; break;
case 'discord': url = 'https://discord.gg/U3qrf49NMQ'; break;
case 'sponsor_afd': url = 'https://afdian.net/@LifeRestart'; break;
case 'sponsor_ddf': url = 'https://dun.mianbaoduo.com/@vickscarlet'; break;
}
try {
window.open(url, '_blank');
} catch (error) {
console.error(error);
}
}
globalThis.$$eventMap = new Map();
globalThis.$$event = (tag, data) => {
const listener = $$eventMap.get(tag);

View File

@@ -44,12 +44,12 @@ class Event {
}
do(eventId, property) {
const { effect, branch, event: description, postEvent, grade } = this.get(eventId);
const { effect, branch, event: description, postEvent } = this.get(eventId);
if(branch)
for(const [cond, next] of branch)
if(checkCondition(property, cond))
return { effect, next, description, grade };
return { effect, postEvent, description, grade };
return { effect, next, description };
return { effect, postEvent, description };
}
}

View File

@@ -142,14 +142,13 @@ class Life {
}
doEvent(eventId) {
const { effect, next, description, postEvent, grade } = this.#event.do(eventId, this.#property);
const { effect, next, description, postEvent } = this.#event.do(eventId, this.#property);
this.#property.change(this.PropertyTypes.EVT, eventId);
this.#property.effect(effect);
const content = {
type: this.PropertyTypes.EVT,
description,
postEvent,
grade,
}
if(next) return [content, this.doEvent(next)].flat();
return [content];

View File

@@ -1,906 +0,0 @@
@media (min-width:640px){html{font-size:24px;}}
@media (min-width:631px) and (max-width:639px){html{font-size:23.66px;}}
@media (min-width:622px) and (max-width:630px){html{font-size:23.33px;}}
@media (min-width:613px) and (max-width:621px){html{font-size:23px;}}
@media (min-width:604px) and (max-width:612px){html{font-size:22.66px;}}
@media (min-width:595px) and (max-width:603px){html{font-size:22.33px;}}
@media (min-width:586px) and (max-width:594px){html{font-size:22px;}}
@media (min-width:577px) and (max-width:585px){html{font-size:21.66px;}}
@media (min-width:568px) and (max-width:576px){html{font-size:21.33px;}}
@media (min-width:559px) and (max-width:567px){html{font-size:21px;}}
@media (min-width:550px) and (max-width:558px){html{font-size:20.66px;}}
@media (min-width:541px) and (max-width:549px){html{font-size:20.33px;}}
@media (min-width:533px) and (max-width:540px){html{font-size:20px;}}
@media (min-width:524px) and (max-width:532px){html{font-size:19.66px;}}
@media (min-width:515px) and (max-width:523px){html{font-size:19.33px;}}
@media (min-width:506px) and (max-width:514px){html{font-size:19px;}}
@media (min-width:497px) and (max-width:505px){html{font-size:18.66px;}}
@media (min-width:488px) and (max-width:496px){html{font-size:18.33px;}}
@media (min-width:480px) and (max-width:487px){html{font-size:18px;}}
@media (min-width:471px) and (max-width:479px){html{font-size:17.66px;}}
@media (min-width:462px) and (max-width:470px){html{font-size:17.33px;}}
@media (min-width:453px) and (max-width:461px){html{font-size:17px;}}
@media (min-width:444px) and (max-width:452px){html{font-size:17.12px;}}
@media (min-width:435px) and (max-width:443px){html{font-size:16.33px;}}
@media (min-width:426px) and (max-width:434px){html{font-size:16px;}}
@media (min-width:417px) and (max-width:425px){html{font-size:15.66px;}}
@media (min-width:408px) and (max-width:416px){html{font-size:15.33px;}}
@media (min-width:400px) and (max-width:407px){html{font-size:15px;}}
@media (min-width:391px) and (max-width:399px){html{font-size:14.66px;}}
@media (min-width:382px) and (max-width:390px){html{font-size:14.33px;}}
@media (min-width:374px) and (max-width:381px){html{font-size:14px;}}
@media (min-width:365px) and (max-width:373px){html{font-size:13.66px;}}
@media (min-width:356px) and (max-width:364px){html{font-size:13.33px;}}
@media (min-width:347px) and (max-width:355px){html{font-size:13px;}}
@media (min-width:338px) and (max-width:346px){html{font-size:12.66px;}}
@media (min-width:329px) and (max-width:337px){html{font-size:12.44px;}}
@media (max-width:328px){html{font-size:12px;}}
@font-face {
font-family: 'iconfont';
src: url('iconfont.woff2?t=1628944689555') format('woff2'),
url('iconfont.woff?t=1628944689555') format('woff'),
url('iconfont.ttf?t=1628944689555') format('truetype');
}
* {
margin: 0;
padding: 0;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input[type="number"]{
-moz-appearance: textfield;
}
html {
background-color: #241619;
font-family: PingFangSC, 'Noto Sans CJK SC', 'MS Yahei';
}
body {
user-select: none;
}
#main {
display: flex;
flex-direction: column;
width: 100%;
max-width: 30rem;
height: 100%;
text-align: center;
box-sizing: border-box;
position: relative;
}
#title {
position: fixed;
font-size: 3rem;
font-weight: 700;
top: 35%;
left: 50%;
white-space: nowrap;
transform: translate(-50%, -50%);
color: #ff9f27;
}
#restart {
position: fixed;
top: 65%;
left: 50%;
transform: translate(-50%, -50%);
}
#restart .iconfont {
margin-right: 0.5rem;
}
#next {
display: none;
}
#talentSelectedView {
flex: 0 1 auto;
}
.mainbtn {
margin: 0.5rem 1rem 1rem;
padding: 0.5rem 1.5rem;
background-color: #4a0388;
border: 1px #4a0388 solid;
border-radius: 0.2rem;
color: #ff197b;
font-size: 1.6rem;
white-space: nowrap;
cursor: pointer;
}
.mainbtn:hover {
background: #fd373c;
color: #4a0388;
transition: all .4s ease 0s;
}
.btn-area {
display: flex;
flex-direction: row;
}
.btn-area>.mainbtn {
flex: 1;
}
.iconfont {
display: inline-block;
vertical-align: middle;
font-family: "iconfont" !important;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.sponsor,
#rank,
#specialthanks,
#achievement {
position: fixed;
top: 4rem;
right: 1rem;
padding: 0.1rem;
width: 6rem;
border: none;
border-radius: 0.2rem;
background-color: #1a0c18;
font-size: 1.4rem;
color: #ff9f27;
cursor: pointer;
z-index:2;
word-wrap: none;
}
#specialthanks {
background-color: #1a0c18;
top: 1rem;
}
.sponsor {
top: auto;
bottom: 0;
width: auto;
padding: 0.5rem;
}
#rank {
position: absolute;
top: 50%;
right: 1.5rem;
transform: translateY(-50%);
}
#spthx {
position: fixed;
display: grid;
top: 4rem;
bottom: 5rem;
left: 50%;
width: 30rem;
max-width: calc(100% - 2rem);
transform: translateX(-50%);
}
#spthx ul {
list-style-type: none;
padding: 0;
}
#spthx ul li {
margin: 0;
}
#spthx ul.g1 {
display: grid;
max-block-size: 9rem;
max-height: 9rem;
overflow: scroll;
}
#spthx ul.g1 li {
display: inline-grid;
background-color: orange;
margin-bottom: 0.5rem;
padding: 0.2rem 0;
grid-template-columns: 7rem auto;
}
#spthx ul.g1 li .name {
padding: 0 0.5rem;
font-weight: 700;
}
#spthx ul.g1 li .comment {
padding: 0 0.5rem;
}
#spthx ul.g2 {
color: white;
display: grid;
grid-template-columns: 50% 50%;
overflow: scroll;
}
#spthx ul.g2 li {
text-align: center;
}
.title {
color: #ff9f27;
position: relative;
font-size: 1.5rem;
font-weight: 700;
padding: 1rem;
}
ul#total,
#achievements {
list-style-type: none;
display: grid;
justify-items: center;
grid-template-columns: 50% 50%;
grid-auto-columns: max-content;
justify-content: center;
}
ul#total li,
#achievements li {
position: relative;
color: #ff9f27;
display: inline-grid;
margin: 0.5rem;
width: 12rem;
height: 6rem;
align-items: center;
}
ul#total li .achievementtitle,
#achievements li .achievementtitle{
font-weight: 700;
font-size: 1.2rem;
}
#achievements {
overflow: scroll;
}
#save,
#load,
#themeToggleBtn {
padding: 0 0.7rem;
width: 6.5rem;
background-color: #1a0c18;
border: none;
border-radius: 4px;
font-size: 1.4rem;
color: #ff9f27;
line-height: 2.5rem;
text-align: center;
vertical-align: middle;
cursor: pointer;
position: fixed;
z-index:2;
right: 0.5rem;
bottom: 0.5rem;
}
#themeToggleBtn {
display: none;
}
#save {
bottom: 3.5rem;
}
.head {
display: flex;
flex-direction: column;
justify-content: center;
height: 5.2rem;
font-size: 1.4rem;
white-space: nowrap;
color: #ff9f27;
}
.propinitial,
.selectlist {
list-style: none;
flex: 1;
padding: 1rem;
}
.lifeProperty {
list-style: none;
padding: 2rem 1rem 0.5rem 1rem;
display: flex;
color: #fd373c;
overflow: auto;
}
.lifeProperty>li {
flex: 1;
margin: 0.1rem 2px;
display: flex;
flex-direction: column;
border: 1px #fd373c solid;
border-radius: 0.2rem;
font-size: 1rem;
position: relative;
}
.lifeProperty>li>span:last-child {
background: #fd373c;
color: #4a0388;
}
.selectlist>li {
margin-bottom: 0.6rem;
display: block;
border: 1px #ff9f27 solid;
border-radius: 0.2rem;
color: #ff9f27;
font-size: 1.2rem;
line-height: 1.6;
user-select: none;
position: relative;
cursor: pointer;
}
.selectlist>li:last-child {
margin-bottom: 0;
}
.achvg0,
.grade0b {
background-color: #231815;
border: #ff9f27 2px solid !important;
color: #ff9f27 !important;
}
.achvg1,
.grade1b {
background-color: #3b3894;
border: #ff9f27 2px solid !important;
}
.achvg2,
.grade2b {
background-color: #470063;
border: #ff9f27 2px solid !important;
}
.achvg3,
.grade3b {
background-color: #f73c47;
border: #ff9f27 2px solid !important;
color: #f8ea8b !important;
}
.mask::before {
display: block;
content: " ";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #241619;
opacity: 0.5;
}
@media (min-width:1080px) {
.grade0b:hover {
background-color: #452915;
transition: all .3s ease 0s;
}
.grade1b:hover {
background-color: #5553b3;
transition: all .3s ease 0s;
}
.grade2b:hover {
background-color: #672183;
transition: all .3s ease 0s;
}
.grade3b:hover {
background-color: #ff8561;
transition: all .3s ease 0s;
}
}
.grade0b.selected,
.grade1b.selected,
.grade2b.selected,
.grade3b.selected {
box-shadow: #f74745 8px 4px 4px;
overflow: hidden;
}
.grade0b.selected::after,
.grade1b.selected::after,
.grade2b.selected::after,
.grade3b.selected::after {
content: '';
position: absolute;
background-color: #fe028b;
top: 0;
bottom: 0;
left: 0;
right: 0;
box-shadow: 0 0 10px #fe028b;
opacity: 0;
animation: blink 3s linear infinite;
}
@keyframes blink {
0% {
opacity: 0;
transform: translateX(-150%);
}
50% {
opacity: .2;
}
100% {
opacity: 0;
transform: translateX(150%);
}
}
.grade0b.selected {
background-color: #452915 !important;
}
.grade1b.selected {
background-color: #5553b3!important;
}
.grade2b.selected {
background-color: #672183 !important;
}
.grade3b.selected {
background-color: #ff8561 !important;
}
.propinitial {
display: flex;
flex-direction: column;
justify-content: center;
}
.propbtn:hover {
color: #5c5c5c;
transition: all .2s ease 0s;
}
.propinitial>li {
position: relative;
margin: 0.1rem auto;
padding: 0.2rem;
display: inline-block;
border-radius: 0.2rem;
color: #ff9f27;
font-size: 1.6rem;
line-height: 2;
}
.propinitial>li>input {
height: 2.2rem;
width: 2.2rem;
margin: 0 0.5rem;
padding: 0;
font-size: 2rem;
border: 0.1rem #ff9f27 solid;
background-color: #393E46;
color: #ff9f27;
text-align: center;
}
.propbtn {
position: relative;
cursor: pointer;
font-size: 2rem;
color: #ff9f27;
}
.judge>li>span:nth-child(1),
.lifeTrajectory>li>span:nth-child(1) {
width: 5rem;
text-align: right;
}
.judge>li>span:nth-child(2),
.lifeTrajectory>li>span:nth-child(2) {
flex: 1;
text-align: left;
}
.lifeTrajectory {
flex: 1;
margin: 0.5rem 1rem;
padding: 0;
border: 1px #ff9f27 solid;
background-color: #241619;
border-radius: 4px;
overflow: auto;
}
.lifeTrajectory>li {
margin: 10px 0;
padding: 5px 10px;
display: flex;
background-color: #231815;
box-shadow: #ff9f27 0 0 0.4rem;
color: #ff9f27;
font-size: 1rem;
position: relative;
}
.judge {
list-style: none;
flex: 1;
margin: 1rem;
display: flex;
flex-direction: column;
border: 1px solid #ff9f27;
border-radius: 4px;
overflow: scroll;
}
.judge>li {
flex: 1;
display: flex;
align-items: center;
background-color: #231815;
border-bottom: 1px solid #ff9f27;
box-shadow: none;
color: #ff9f27;
}
.judge>li:last-child {
border-bottom: 0
}
.judge>li.grade1 span,
.judge>li.grade1 {
background-color: #3b3894;
}
.judge>li.grade2 span,
.judge>li.grade2 {
background-color: #470063;
}
.judge>li.grade3 span,
.judge>li.grade3 {
background-color: #f73c47;
color: #f8ea8b !important;
}
@import url("https://fonts.googleapis.com/css?family=Montserrat:400,400i,700");
:root {
font-family: "Montserrat";
}
html,
body {
margin: 0;
height: 100%;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
i {
color: inherit;
}
.banners-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 9;
}
.banner {
color: white;
font-weight: 700;
padding: 2rem;
display: flex;
flex-direction: row;
align-items: center;
}
.banner .banner-message {
flex: 1;
padding: 0 2rem;
word-break: break-word;
overflow: auto;
}
.banner .banner-close {
display: flex;
align-items: center;
justify-content: center;
padding: 0.1rem;
border-radius: 4px;
cursor: pointer;
transition: background 0.3s;
}
.banner .iconfont {
font-size: 2rem;
}
.banner .banner-close:hover {
background: rgba(0, 0, 0, 0.12);
}
.banner.success {
background: #c101f9;
}
.banner.success::after {
background: #c101f9;
}
.banner.error {
background: #ff3a3f;
}
.banner.error::after {
background: #ff3a3f;
}
.banner.info {
background: #282366;
}
.banner.info::after {
background: #282366;
}
.banner::after {
content: "";
position: absolute;
height: 10%;
width: 100%;
bottom: 100%;
left: 0;
}
.banner:not(.visible) {
display: none;
transform: translateY(-100%);
}
.banner.visible {
box-shadow: 0 2px 2px 2px rgba(0, 0, 0, 0.12);
animation-name: banner-in;
animation-direction: forwards;
animation-duration: 0.6s;
animation-timing-function: ease-in-out;
animation-fill-mode: forwards;
animation-iteration-count: 1;
}
@keyframes banner-in {
0% {
transform: translateY(-100%);
}
50% {
transform: translateY(10%);
}
100% {
transform: translateY(0);
}
}
.show-banner {
appearance: none;
background: #ededed;
border: 0;
padding: 1rem 2rem;
border-radius: 4px;
cursor: pointer;
text-transform: uppercase;
margin: 0.25rem;
}
/**
* @license
* Copyright Akveo. All Rights Reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*/
.eva-animation {
animation-duration: 1s;
animation-fill-mode: both;
}
.eva-infinite {
animation-iteration-count: infinite;
}
.eva-icon-shake {
animation-name: eva-shake;
}
.eva-icon-zoom {
animation-name: eva-zoomIn;
}
.eva-icon-pulse {
animation-name: eva-pulse;
}
.eva-icon-flip {
animation-name: eva-flipInY;
}
.eva-hover {
display: inline-block;
}
.eva-hover:hover .eva-icon-hover-shake,
.eva-parent-hover:hover .eva-icon-hover-shake {
animation-name: eva-shake;
}
.eva-hover:hover .eva-icon-hover-zoom,
.eva-parent-hover:hover .eva-icon-hover-zoom {
animation-name: eva-zoomIn;
}
.eva-hover:hover .eva-icon-hover-pulse,
.eva-parent-hover:hover .eva-icon-hover-pulse {
animation-name: eva-pulse;
}
.eva-hover:hover .eva-icon-hover-flip,
.eva-parent-hover:hover .eva-icon-hover-flip {
animation-name: eva-flipInY;
}
@keyframes eva-flipInY {
from {
transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
animation-timing-function: ease-in;
opacity: 0;
}
40% {
transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
animation-timing-function: ease-in;
}
60% {
transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
opacity: 1;
}
80% {
transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
}
to {
transform: perspective(400px);
}
}
@keyframes eva-shake {
from,
to {
transform: translate3d(0, 0, 0);
}
10%,
30%,
50%,
70%,
90% {
transform: translate3d(-3px, 0, 0);
}
20%,
40%,
60%,
80% {
transform: translate3d(3px, 0, 0);
}
}
@keyframes eva-pulse {
from {
transform: scale3d(1, 1, 1);
}
50% {
transform: scale3d(1.2, 1.2, 1.2);
}
to {
transform: scale3d(1, 1, 1);
}
}
@keyframes eva-zoomIn {
from {
opacity: 1;
transform: scale3d(0.5, 0.5, 0.5);
}
50% {
opacity: 1;
}
}
::-webkit-scrollbar {
width: 0 !important
}
.deleteFixed {
margin: 0;
padding: 0.5rem 1rem;
border: 0;
border-radius: 0;
overflow: visible;
}
.operateBtn {
padding: 0.5rem 1.5rem;
border: 1px #EEEEEE solid;
border-radius: 0.2rem;
background-color:#393E46;
font-size: 1.6rem;
white-space: nowrap;
transform: translate(-50%,-50%);
cursor: pointer;
z-index:2;
color: #EEEEEE;
}
.operateBtn:hover {
background: #ff7878;
color: #fff;
transition: all .4s ease 0s;
}
.domToImage2wx {
position: fixed;
z-index: 1111;
width: 100%;
}
.domToImage2wx img {
width: 100%;
}
.github-corner,
.discord-btn {
background-color: #1a0c18 !important;
color: #ff9f27 !important;
}
.github-corner > svg path.octo-arm,
.github-corner > svg path.octo-body,
.discord-btn > svg > g > path {
fill: #ff9f27 !important;
}