@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
.DS_Store |
||||
node_modules |
||||
/dist |
||||
|
||||
|
||||
# local env files |
||||
.env.local |
||||
.env.*.local |
||||
|
||||
# Log files |
||||
npm-debug.log* |
||||
yarn-debug.log* |
||||
yarn-error.log* |
||||
pnpm-debug.log* |
||||
|
||||
# Editor directories and files |
||||
.idea |
||||
.vscode |
||||
*.suo |
||||
*.ntvs* |
||||
*.njsproj |
||||
*.sln |
||||
*.sw? |
@ -1,3 +0,0 @@
@@ -1,3 +0,0 @@
|
||||
Additional permission under GNU GPL version 3 section 7 |
||||
|
||||
If you modify this Program, or any covered work, by linking or combining it with [name of library] (or a modified version of that library), containing parts covered by the terms of [name of library's license], the licensors of this Program grant you additional permission to convey the resulting work. |
@ -1,3 +1,19 @@
@@ -1,3 +1,19 @@
|
||||
# vue-idle-game |
||||
# code |
||||
|
||||
一个全随机的刷装备小游戏 |
||||
## Project setup |
||||
``` |
||||
yarn install |
||||
``` |
||||
|
||||
### Compiles and hot-reloads for development |
||||
``` |
||||
yarn serve |
||||
``` |
||||
|
||||
### Compiles and minifies for production |
||||
``` |
||||
yarn build |
||||
``` |
||||
|
||||
### Customize configuration |
||||
See [Configuration Reference](https://cli.vuejs.org/config/). |
||||
|
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
module.exports = { |
||||
presets: [ |
||||
'@vue/cli-plugin-babel/preset' |
||||
] |
||||
} |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
/.classpath |
||||
/.project |
||||
/.settings |
||||
/bin/ |
||||
/logs |
||||
/target |
||||
/src/main/resources/static |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
# WEB服务端口配置 |
||||
server.port=80 |
||||
# WEB服务根路径配置 |
||||
server.servlet.context-path=/ |
||||
# 程序自身数据源配置 |
||||
spring.datasource.url=jdbc:mysql://10.100.0.108:3306/idle_game?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true |
||||
spring.datasource.username=root |
||||
spring.datasource.password=mBMjp2v74c7MzhC/5RGeXF1V3E+AcRFs1f5OH6PDHi3nWaM3njaaoewswq8Sl7/AY631t0sONVDG672pX4mFpZx/8xex8BJP3uX1wUu9NGpTCSHskb5cD6KZMNV4jNsfoqxFRyJq8yk86djPsCfR4ch0sPnLH+LCg9XY1DAw8szh93QnKDkiImq2JLkaIwG3R3t8dNWv1wVoMR6vVecPsEUyPJu5vsrvJhjP3uAL7jZYJVGZG6bkrpV3R6I6mja0QnTdF41NCL5Ex0TINSi7GKnrALjZ0qWcT9fe2bTUCKq50+CtVEAQnEz2ZJpYUaBZXJbHh4OrUyqjAmA5s7IelQ== |
@ -0,0 +1,116 @@
@@ -0,0 +1,116 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
<parent> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-parent</artifactId> |
||||
<version>2.7.1</version> |
||||
</parent> |
||||
<groupId>com.sprt.simple</groupId> |
||||
<artifactId>idle_game_server</artifactId> |
||||
<version>0.0.0</version> |
||||
<name>idle_game_server</name> |
||||
<description>idle game server</description> |
||||
<packaging>jar</packaging> |
||||
|
||||
<properties> |
||||
<java.version>17</java.version> |
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
||||
|
||||
<core.version>1.0.0</core.version> |
||||
<log4j.version>1.2.17</log4j.version> |
||||
<fastjson.version>1.2.46</fastjson.version> |
||||
<druid.version>1.1.9</druid.version> |
||||
<mybatis-plus.version>3.5.1</mybatis-plus.version> |
||||
<mybatis.pagehelper.version>1.4.6</mybatis.pagehelper.version> |
||||
</properties> |
||||
|
||||
<dependencies> |
||||
|
||||
<dependency> |
||||
<groupId>vip.xumy.core</groupId> |
||||
<artifactId>xumy_core</artifactId> |
||||
<version>${core.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- 代码修改之后可以实时生效,该模块在完整的打包环境下运行的时候会被禁用 --> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-devtools</artifactId> |
||||
<optional>true</optional> |
||||
</dependency> |
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web --> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-web</artifactId> |
||||
</dependency> |
||||
|
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-test</artifactId> |
||||
<exclusions> |
||||
<!-- 单元测试不使用Junit4,使用Junit5 --> |
||||
<exclusion> |
||||
<groupId>junit</groupId> |
||||
<artifactId>junit</artifactId> |
||||
</exclusion> |
||||
<exclusion> |
||||
<groupId>org.junit.vintage</groupId> |
||||
<artifactId>junit-vintage-engine</artifactId> |
||||
</exclusion> |
||||
</exclusions> |
||||
</dependency> |
||||
|
||||
<!--junit 测试包--> |
||||
<dependency> |
||||
<groupId>org.junit.jupiter</groupId> |
||||
<artifactId>junit-jupiter-api</artifactId> |
||||
<scope>test</scope> |
||||
</dependency> |
||||
|
||||
<!-- mysql驱动 --> |
||||
<dependency> |
||||
<groupId>mysql</groupId> |
||||
<artifactId>mysql-connector-java</artifactId> |
||||
<scope>runtime</scope> |
||||
</dependency> |
||||
<!-- alibaba的druid数据库连接池 --> |
||||
<dependency> |
||||
<groupId>com.alibaba</groupId> |
||||
<artifactId>druid-spring-boot-starter</artifactId> |
||||
<version>${druid.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- mybatis plus--> |
||||
<dependency> |
||||
<groupId>com.baomidou</groupId> |
||||
<artifactId>mybatis-plus-boot-starter</artifactId> |
||||
<version>${mybatis-plus.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- mybatis的pagehelper --> |
||||
<dependency> |
||||
<groupId>com.github.pagehelper</groupId> |
||||
<artifactId>pagehelper-spring-boot-starter</artifactId> |
||||
<version>${mybatis.pagehelper.version}</version> |
||||
</dependency> |
||||
|
||||
|
||||
</dependencies> |
||||
|
||||
<!-- Package as an executable jar --> |
||||
<build> |
||||
<finalName>${project.name}</finalName> |
||||
<plugins> |
||||
<plugin> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-maven-plugin</artifactId> |
||||
<configuration> |
||||
<executable>true</executable> |
||||
</configuration> |
||||
</plugin> |
||||
</plugins> |
||||
</build> |
||||
|
||||
</project> |
@ -0,0 +1,14 @@
@@ -0,0 +1,14 @@
|
||||
package vip.xumy.idle.server; |
||||
|
||||
import org.springframework.boot.SpringApplication; |
||||
|
||||
import vip.xumy.idle.server.conf.SimpleInitializer; |
||||
|
||||
public class SimpleApplocation { |
||||
|
||||
public static void main(String[] args) { |
||||
Class<?>[] arr = new Class<?>[] { SimpleInitializer.class }; |
||||
SpringApplication.run(arr, args); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,75 @@
@@ -0,0 +1,75 @@
|
||||
package vip.xumy.idle.server.conf; |
||||
|
||||
import java.security.KeyFactory; |
||||
import java.security.interfaces.RSAPrivateKey; |
||||
import java.security.interfaces.RSAPublicKey; |
||||
import java.security.spec.PKCS8EncodedKeySpec; |
||||
import java.security.spec.X509EncodedKeySpec; |
||||
|
||||
/** |
||||
* @Description |
||||
* @Author 86199 |
||||
* @Date 2021/12/1 16:36 |
||||
*/ |
||||
|
||||
import java.util.Base64; |
||||
|
||||
import javax.crypto.Cipher; |
||||
public class RSAEncryptDecrypt |
||||
{ |
||||
// 公钥
|
||||
private static String publicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqfkYJn8BHttyGrQYcoXTZK8Za" + |
||||
"MVUkqhEdFIyWZhnUQz6Jr299IkBCrbTnKcQTn3ekyQl5/F+j2p8YuNQDBJiq46T/srI+zh1XIaTIKJoOI8M4ploKOztJ8IP" + |
||||
"L9ucdnv/tEdGDD9kY5JILa5DQnem9HkaS55kGJX6Oet6CRiNekwiG4+K61SjyfqxuLcqm7v2gH2nvTnkci9FLwtErpdF4uT" + |
||||
"Mv6LB46Z9Hpg5iVsHDbwnwqOCfirgwdalJQTy+jcn9UqqNTsneREOxTtt9JQEnsDE/4UIPAYiU6cQDRJ5YrXR56LYC/0g55" + |
||||
"KpMVnMIJgS5Y/YVt66QHtUTCVmmSgxAQIDAQAB"; |
||||
|
||||
// 私钥
|
||||
private static String privateKey = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCp+" + |
||||
"RgmfwEe23IatBhyhdNkrxloxVSSqER0UjJZmGdRDPomvb30iQEKttOcpxBOfd6TJCXn8X6Panxi41AMEmKrjpP+" + |
||||
"ysj7OHVchpMgomg4jwzimWgo7O0nwg8v25x2e/+0R0YMP2RjkkgtrkNCd6b0eRpLnmQYlfo563oJGI16TCIbj4rrVKPJ+" + |
||||
"rG4tyqbu/aAfae9OeRyL0UvC0Sul0Xi5My/osHjpn0emDmJWwcNvCfCo4J+" + |
||||
"KuDB1qUlBPL6Nyf1Sqo1Oyd5EQ7FO230lASewMT/hQg8BiJTpxANEnlitdHnotgL/SDnkqkxWcwgmBLlj" + |
||||
"9hW3rpAe1RMJWaZKDEBAgMBAAECggEBAIHEloaVglJ/sf7nLp8IwxrkgB64QVhytUillKFItOBxau53A" + |
||||
"HaYvr3iVW8NMWrruClYeMQ7YKe34d1RtMRyqPhXs2/cfFMoiJmqeNt6gt1jga/i9V4BfRJUm2mrXiorg" + |
||||
"06s97LUFx3aCdcua1Vsqn+NkeDXvY3zuwXLXPFi2GjcRBnwZL9S2i8mxCSChWy8ePjYW34bJ7viTQ7hf" + |
||||
"Hz5VNA0hqMQrmgzUADq5xelnhQKsEWBaHHhLTKGYF0yNmRJ7zQJkiSncxIrzD5dvRH88Ms2nJ7lJlb1F" + |
||||
"YEpZ8URlK63ofOskvcpvXFH3g7yvi6j9rCRFAL/i2UnP+lFimQ+bs0CgYEA7ZdVrSGMsKRwaX7+lmCTu" + |
||||
"5cR6V74ohZKyDyzp8PcOBxvPmjY5tIULK++12xyOpsMHAwAoKfRedRrvS9vm525g5A+fioALXE74/d2A7" + |
||||
"E/psO6hO89W5AcA91wMTZXLLGZ8JD0LBQp3u4dNGyyZLpDMTgM1WUsted1mOn2msRkK68CgYEAtySKlvaL" + |
||||
"8Rw70LMMYZUUJ6BbUsR85aJHZ3JPsisM01PgEgcJiZHfThVZHqUgEU0noqRDzIVVKk9C1Gqx+t6F3JqU8" + |
||||
"Cewop+nIKboLH5vMr+7OqM5hXLSx9g8Mm779k9P4+u7Kvq4/fY38d7kVayr3TVb5g0jEo1ugsHonwMsKk8Cg" + |
||||
"YBa791/EqRCx+2us0jGTdi9qCjW5d7MSzP8SB+LSs/zOg7qGD9MuYO3Rt0Inx1piQathXqIAzOOKdvC4XEaYtgqnv8" + |
||||
"MUw8WVYzSyFiHOURfk/LEBr25WgMfB5Z1f5MGLEP7a7/JTz5ncUQEWMY+/3vQTt+6narrRNgh2wrkWd7tSQKBgGIs" + |
||||
"YWpZUVz3UI0oXbu1iW9Qg4PTtkv2eKZYXaZZc2+ZJ6UiRpeLLZQS14oY5B7CKDwEKB/rXWLnyCBL7YpYXJOL/cjazd" + |
||||
"HvGUzki9LGF9+xbbEaLEx/58OfA23ZlpFLpLy98cAxVJc2tHigje/rNtnGr7ObWTCpxhKr1YHf1n37AoGBAI64k/lV4" + |
||||
"FJn57cJnIZPp1jjapxSouxO063Z5BTYVsA6/cqXgbNPt1S8TnZRaRB2qtVrN5otRuueO6GIRJf6XTXvwxLV4xQAA/Z5" + |
||||
"g2q2gelK7/ChYRdVn6Fwtnwx4iPBkH6FK+eQ0E8BfcJ5f6XPWp8N7ZpaZrd+dyc3r7uW78gG"; |
||||
|
||||
//加密
|
||||
public static byte[] encrypt(byte[] str) throws Exception |
||||
{ |
||||
// base64编码的公钥
|
||||
byte[] decoded = Base64.getDecoder().decode(publicKey); |
||||
RSAPublicKey pubKey = (RSAPublicKey) KeyFactory.getInstance("RSA") |
||||
.generatePublic(new X509EncodedKeySpec(decoded)); |
||||
// RSA加密
|
||||
Cipher cipher = Cipher.getInstance("RSA"); |
||||
cipher.init(Cipher.ENCRYPT_MODE, pubKey); |
||||
return cipher.doFinal(str); |
||||
} |
||||
|
||||
//解密
|
||||
public static byte[] decrypt(byte[] str) throws Exception |
||||
{ |
||||
// base64编码的私钥
|
||||
byte[] decoded = Base64.getDecoder().decode(privateKey); |
||||
RSAPrivateKey priKey = (RSAPrivateKey) KeyFactory.getInstance("RSA") |
||||
.generatePrivate(new PKCS8EncodedKeySpec(decoded)); |
||||
// RSA解密
|
||||
Cipher cipher = Cipher.getInstance("RSA"); |
||||
cipher.init(Cipher.DECRYPT_MODE, priKey); |
||||
return cipher.doFinal(str); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,18 @@
@@ -0,0 +1,18 @@
|
||||
package vip.xumy.idle.server.conf; |
||||
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; |
||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; |
||||
import org.springframework.boot.builder.SpringApplicationBuilder; |
||||
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; |
||||
import org.springframework.context.annotation.ComponentScan; |
||||
|
||||
@EnableAutoConfiguration(exclude = DataSourceAutoConfiguration.class) |
||||
@ComponentScan(value = "vip.xumy.idle.server, vip.xumy.core") |
||||
public class SimpleInitializer extends SpringBootServletInitializer { |
||||
|
||||
@Override |
||||
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { |
||||
return builder.sources(SimpleInitializer.class); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
package vip.xumy.idle.server.mapper; |
||||
|
||||
import org.apache.ibatis.annotations.Select; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
|
||||
import vip.xumy.idle.server.pojo.User; |
||||
|
||||
/** |
||||
* Ownership belongs to the company |
||||
* |
||||
* @author:mengyxu |
||||
* @date:2025年4月18日 |
||||
*/ |
||||
|
||||
public interface IUserMapper extends BaseMapper<User> { |
||||
|
||||
@Select(""" |
||||
SELECT username, state FROM user WHERE username = #{username} AND password = #{password} |
||||
""") |
||||
User login(User param); |
||||
|
||||
} |
@ -0,0 +1,29 @@
@@ -0,0 +1,29 @@
|
||||
package vip.xumy.idle.server.pojo; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
|
||||
import lombok.Getter; |
||||
import lombok.Setter; |
||||
|
||||
/** Ownership belongs to the company |
||||
* |
||||
* @author:mengyxu |
||||
* @date:2025年4月18日 |
||||
*/ |
||||
|
||||
@Setter |
||||
@Getter |
||||
@TableName("user") |
||||
public class User { |
||||
|
||||
private String useranme; |
||||
private String password; |
||||
private String state; |
||||
private String phone; |
||||
private String idCard; |
||||
private String name; |
||||
private String registerTime; |
||||
private String last_login; |
||||
|
||||
|
||||
} |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
package vip.xumy.idle.server.service; |
||||
|
||||
/** Ownership belongs to the company |
||||
* |
||||
* @author:mengyxu |
||||
* @date:2025年4月18日 |
||||
*/ |
||||
|
||||
public class UserService { |
||||
|
||||
} |
@ -0,0 +1,38 @@
@@ -0,0 +1,38 @@
|
||||
# WEB服务端口配置 |
||||
server.port=80 |
||||
# WEB服务根路径配置 |
||||
server.servlet.context-path=/ |
||||
logging.config=classpath:logback.xml |
||||
|
||||
spring.main.banner-mode=off |
||||
|
||||
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource |
||||
spring.datasource.driver-class-name=com.mysql.jdbc.Driver |
||||
spring.datasource.initialSize=1 |
||||
spring.datasource.minIdle=1 |
||||
spring.datasource.maxActive=20 |
||||
spring.datasource.maxWait=60000 |
||||
spring.datasource.timeBetweenEvictionRunsMillis=60000 |
||||
spring.datasource.minEvictableIdleTimeMillis=300000 |
||||
spring.datasource.validationQuery=SELECT 1 FROM DUAL |
||||
spring.datasource.keepAlive=true |
||||
spring.datasource.testWhileIdle=true |
||||
spring.datasource.testOnBorrow=false |
||||
spring.datasource.testOnReturn=false |
||||
spring.datasource.poolPreparedStatements=false |
||||
|
||||
spring.datasource.driver-class-name=com.mysql.jdbc.Driver |
||||
mcc.datasource.driver-class-name=com.mysql.jdbc.Driver |
||||
|
||||
mybatis.configuration.map-underscore-to-camel-case=true |
||||
|
||||
quartz.cron.clean.global=0 */10 * * * ? |
||||
|
||||
pagehelper.helperDialect=mysql |
||||
pagehelper.reasonable=true |
||||
pagehelper.supportMethodsArguments=true |
||||
pagehelper.params=count=countSql |
||||
pagehelper.returnPageInfo=check |
||||
version.num=1.0.1 |
||||
version.date=2025-03-07 |
||||
disk.info.path= |
@ -0,0 +1,81 @@
@@ -0,0 +1,81 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<configuration debug="false"> |
||||
|
||||
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> |
||||
<property name="LOG_HOME" value="./logs" /> |
||||
<!--普通日志文件名--> |
||||
<property name="FILE_NAME" value="debug" /> |
||||
<!--错误日志文件名--> |
||||
<property name="ERROR_FILE_NAME" value="error" /> |
||||
<!--日志输出格式:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> |
||||
<property name="PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" /> |
||||
<!--日志文件保留天数--> |
||||
<property name="MAX_HISTORY" value="30" /> |
||||
<!--日志文件最大的大小--> |
||||
<property name="MAX_SIZE" value="10MB" /> |
||||
|
||||
<!--控制台日志, 控制台输出 --> |
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> |
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> |
||||
<pattern>${PATTERN}</pattern> |
||||
</encoder> |
||||
</appender> |
||||
|
||||
<!--文件日志, 按照每天生成日志文件 --> |
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
||||
<file>${LOG_HOME}/${FILE_NAME}.log</file> |
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
||||
<FileNamePattern>${LOG_HOME}/${FILE_NAME}-%d{yyyy-MM-dd}%i.log</FileNamePattern> |
||||
<MaxHistory>${MAX_HISTORY}</MaxHistory> |
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> |
||||
<maxFileSize>${MAX_SIZE}</maxFileSize> |
||||
</timeBasedFileNamingAndTriggeringPolicy> |
||||
</rollingPolicy> |
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> |
||||
<pattern>${PATTERN}</pattern> |
||||
</encoder> |
||||
</appender> |
||||
|
||||
<!--错误, 按照每天生成日志文件 --> |
||||
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
||||
<file>${LOG_HOME}/${ERROR_FILE_NAME}.log</file> |
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
||||
<FileNamePattern>${LOG_HOME}/${ERROR_FILE_NAME}-%d{yyyy-MM-dd}%i.log</FileNamePattern> |
||||
<MaxHistory>${MAX_HISTORY}</MaxHistory> |
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> |
||||
<maxFileSize>${MAX_SIZE}</maxFileSize> |
||||
</timeBasedFileNamingAndTriggeringPolicy> |
||||
</rollingPolicy> |
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> |
||||
<pattern>${PATTERN}</pattern> |
||||
</encoder> |
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter"> |
||||
<!-- 只打印DEBUG日志 --> |
||||
<level>ERROR</level> |
||||
<onMatch>ACCEPT</onMatch> |
||||
<onMismatch>DENY</onMismatch> |
||||
</filter> |
||||
</appender> |
||||
|
||||
<logger name="com.sprt" level="DEBUG" additivity="false"> |
||||
<appender-ref ref="STDOUT" /> |
||||
<appender-ref ref="FILE" /> |
||||
<appender-ref ref="ERROR" /> |
||||
</logger> |
||||
<logger name="com.sprt.core" level="INFO" additivity="false"> |
||||
<appender-ref ref="STDOUT" /> |
||||
<appender-ref ref="FILE" /> |
||||
<appender-ref ref="ERROR" /> |
||||
</logger> |
||||
<logger name="org.springframework" level="error" additivity="false"> |
||||
<appender-ref ref="STDOUT" /> |
||||
<appender-ref ref="FILE" /> |
||||
<appender-ref ref="ERROR" /> |
||||
</logger> |
||||
<root level="INFO"> |
||||
<appender-ref ref="STDOUT" /> |
||||
<appender-ref ref="FILE" /> |
||||
<appender-ref ref="ERROR" /> |
||||
</root> |
||||
|
||||
</configuration> |
@ -0,0 +1,70 @@
@@ -0,0 +1,70 @@
|
||||
package com.sprt.simple.test; |
||||
|
||||
import java.io.BufferedReader; |
||||
import java.io.BufferedWriter; |
||||
import java.io.File; |
||||
import java.io.FileReader; |
||||
import java.io.FileWriter; |
||||
import java.util.Base64; |
||||
|
||||
import org.junit.jupiter.api.Test; |
||||
|
||||
import vip.xumy.idle.server.conf.RSAEncryptDecrypt; |
||||
|
||||
/** |
||||
* Ownership belongs to the company |
||||
* |
||||
* @author:mengyxu |
||||
* @date:2024年9月26日 |
||||
*/ |
||||
|
||||
public class RSATester { |
||||
|
||||
@Test |
||||
public void test() throws Exception { |
||||
byte[] message = "mydoris".getBytes(); |
||||
System.out.println("原始字符串为:" + new String(message)); |
||||
byte[] messageEn = RSAEncryptDecrypt.encrypt(message); |
||||
String encryPassword = new String(Base64.getEncoder().encode(messageEn)); |
||||
System.out.println("加密后的Base64字符串为:" + encryPassword); |
||||
|
||||
byte[] decode = Base64.getDecoder().decode(encryPassword); |
||||
byte[] messageDe = RSAEncryptDecrypt.decrypt(decode); |
||||
System.out.println("还原后的字符串为:" + new String(messageDe)); |
||||
} |
||||
|
||||
@Test |
||||
public void checkData() { |
||||
String fileName = "D:\\work\\86.其他未确认项目\\知识库111(1)\\csv\\IPData2.CSV"; |
||||
int idx = fileName.lastIndexOf('.'); |
||||
String pre = fileName.substring(0, idx); |
||||
String suf = fileName.substring(idx); |
||||
String right = pre + "-right" + suf; |
||||
String wrong = pre + "-wrong" + suf; |
||||
|
||||
try (BufferedReader br = new BufferedReader(new FileReader(new File(fileName))); |
||||
BufferedWriter rbw = new BufferedWriter(new FileWriter(new File(right))); |
||||
BufferedWriter wbr = new BufferedWriter(new FileWriter(new File(wrong)));) { |
||||
String line = br.readLine(); |
||||
rbw.write(line); |
||||
wbr.write(line); |
||||
|
||||
line = br.readLine(); |
||||
while (line != null && line.trim() != null) { |
||||
int num = line.length() - line.replace(",", "").length(); |
||||
if (num == 14) { |
||||
rbw.newLine(); |
||||
rbw.write(line); |
||||
} else { |
||||
wbr.newLine(); |
||||
wbr.write(line); |
||||
} |
||||
line = br.readLine(); |
||||
} |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
{ |
||||
"name": "code", |
||||
"version": "0.1.0", |
||||
"private": true, |
||||
"scripts": { |
||||
"dev": "vue-cli-service serve", |
||||
"build": "vue-cli-service build" |
||||
}, |
||||
"dependencies": { |
||||
"core-js": "^3.8.3", |
||||
"js-base64": "^3.7.7", |
||||
"vue": "^3.2.13", |
||||
"vue-class-component": "^8.0.0-0", |
||||
"vue-router": "^4.0.3", |
||||
"vue3-i18n": "^1.1.5", |
||||
"vuex": "^4.0.0" |
||||
}, |
||||
"devDependencies": { |
||||
"@vue/cli-plugin-babel": "~5.0.0", |
||||
"@vue/cli-plugin-router": "~5.0.0", |
||||
"@vue/cli-plugin-typescript": "~5.0.0", |
||||
"@vue/cli-plugin-vuex": "~5.0.0", |
||||
"@vue/cli-service": "~5.0.0", |
||||
"sass": "^1.32.7", |
||||
"sass-loader": "^12.0.0", |
||||
"typescript": "~4.5.5" |
||||
}, |
||||
"browserslist": [ |
||||
"> 1%", |
||||
"last 2 versions", |
||||
"not dead", |
||||
"not ie 11" |
||||
] |
||||
} |
After Width: | Height: | Size: 4.2 KiB |
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html> |
||||
<html lang=""> |
||||
|
||||
<head> |
||||
<meta charset="utf-8"> |
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0"> |
||||
<meta name="Description" content="一个全随机的刷装备小游戏" /> |
||||
<meta name="Keywords" content="游戏,couy,idle,放置游戏,vue,couy.xyz,rougelike" /> |
||||
<link rel="icon" href="./logo.svg"> |
||||
<title>couy-idleGame</title> |
||||
</head> |
||||
|
||||
<body> |
||||
<noscript> |
||||
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. |
||||
Please enable it to continue.</strong> |
||||
</noscript> |
||||
<div id="app"></div> |
||||
<!-- built files will be auto injected --> |
||||
</body> |
||||
|
||||
</html> |
@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
|
||||
<template> |
||||
<router-view /> |
||||
</template> |
||||
|
||||
<style lang="scss"> |
||||
// @import '@/assets/css/base.scss'; |
||||
#app { |
||||
font-family: Avenir, Helvetica, Arial, sans-serif; |
||||
-webkit-font-smoothing: antialiased; |
||||
-moz-osx-font-smoothing: grayscale; |
||||
text-align: center; |
||||
color: #2c3e50; |
||||
width: 100%; |
||||
height: 100%; |
||||
overflow: hidden; |
||||
} |
||||
</style> |
@ -0,0 +1,165 @@
@@ -0,0 +1,165 @@
|
||||
/** |
||||
* 基础样式 |
||||
* @author couy(couy69@gmail.com) |
||||
*/ |
||||
|
||||
* { |
||||
padding: 0; |
||||
margin: 0; |
||||
outline: 0; |
||||
box-sizing: border-box !important; |
||||
} |
||||
|
||||
li { |
||||
list-style: none; |
||||
} |
||||
|
||||
a { |
||||
text-decoration: none; |
||||
} |
||||
|
||||
i { |
||||
font-style: normal; |
||||
} |
||||
|
||||
html, |
||||
body { |
||||
width: 100%; |
||||
height: 100%; |
||||
overflow: hidden !important; |
||||
font-size: 14px; |
||||
} |
||||
|
||||
@font-face { |
||||
font-family: 'sarasa'; |
||||
src: url('../fonts/sarasa-ui-cl-regular.ttf') format('truetype'); |
||||
font-weight: normal; |
||||
font-style: normal; |
||||
} |
||||
@font-face { |
||||
font-family: 'JetBrainsMono'; |
||||
src: url('../fonts/JetBrainsMono-Regular.ttf') format('truetype'); |
||||
font-weight: normal; |
||||
font-style: normal; |
||||
} |
||||
#app { |
||||
font-family: 'NotoSansSC', 'Noto Sans', 'Source Sans Pro', 'Avenir', Helvetica, Arial, sans-serif !important; |
||||
} |
||||
div, |
||||
button, |
||||
span, |
||||
p, |
||||
h1, |
||||
h2, |
||||
h3, |
||||
h4, |
||||
h5, |
||||
b, |
||||
input, |
||||
textarea { |
||||
font-family: 'sarasa', 'JetBrainsMono', 'NotoSansSC', 'Noto Sans', 'Source Sans Pro', 'Avenir', Helvetica, Arial, sans-serif !important; |
||||
} |
||||
|
||||
input, |
||||
textarea { |
||||
border: 1px solid #ccc; |
||||
border-radius: 4px; |
||||
padding: 0.4rem; |
||||
font-size: 1rem; |
||||
background-color: #e0e8ea; |
||||
} |
||||
|
||||
button { |
||||
height: 2.4rem; |
||||
line-height: 2.2rem; |
||||
padding: 0 1rem; |
||||
margin-left: 0.5rem; |
||||
margin-right: 0.5rem; |
||||
cursor: pointer; |
||||
color: #fff; |
||||
background: #000; |
||||
border: 1px solid #fff; |
||||
border-radius: 4px; |
||||
width: fit-content; |
||||
&:hover { |
||||
// background: #222; |
||||
border: 1px solid #ccc; |
||||
text-shadow: 1px 1px 3px #ccc; |
||||
} |
||||
} |
||||
|
||||
/*使用选择器指定字体*/ |
||||
.panel-title { |
||||
font-family: 'MaShanZheng' !important; |
||||
display: flex; |
||||
align-items: center !important; |
||||
justify-content: center; |
||||
font-size: 0.22rem; |
||||
padding: 0.2rem 0.1rem; |
||||
color: #efb96e; |
||||
} |
||||
|
||||
/* 滚动条 */ |
||||
::-webkit-scrollbar-thumb:horizontal { |
||||
/*水平滚动条的样式*/ |
||||
width: 5px; |
||||
background-color: #999; |
||||
border-radius: 6px; |
||||
} |
||||
|
||||
::-webkit-scrollbar-track-piece { |
||||
background-color: transparent; |
||||
/*滚动条的背景颜色*/ |
||||
border-radius: 0; |
||||
/*滚动条的圆角宽度*/ |
||||
} |
||||
|
||||
::-webkit-scrollbar { |
||||
width: 8px; |
||||
/*滚动条的宽度*/ |
||||
height: 8px; |
||||
/*滚动条的高度*/ |
||||
} |
||||
|
||||
::-webkit-scrollbar-thumb:vertical { |
||||
/*垂直滚动条的样式*/ |
||||
height: 20px; |
||||
background-color: #999; |
||||
border-radius: 4px; |
||||
outline: 2px solid transparent; |
||||
outline-offset: -2px; |
||||
border: 2px solid transparent; |
||||
} |
||||
|
||||
::-webkit-scrollbar-thumb:hover { |
||||
/*滚动条的hover样式*/ |
||||
height: 20px; |
||||
background-color: #9f9f9f; |
||||
border-radius: 4px; |
||||
} |
||||
|
||||
.unique { |
||||
background: linear-gradient(125deg, #c90e0d36, #5656d647, 40%, #867d1033, #2c846f4d) !important; |
||||
} |
||||
|
||||
.fade-enter-active, |
||||
.fade-leave-active { |
||||
transition: 0.3s; |
||||
} |
||||
|
||||
.fade-enter, |
||||
.fade-leave-to { |
||||
transform: translateX(100%); |
||||
} |
||||
.icon { |
||||
display: inline-block; |
||||
width: 0.25rem; |
||||
height: 0.25rem; |
||||
background-repeat: no-repeat; |
||||
background-size: contain; |
||||
padding: 2px; |
||||
background-position: center; |
||||
} |
||||
.icon-setting { |
||||
background-image: url(../icons/menu/setting.png); |
||||
} |
@ -0,0 +1,291 @@
@@ -0,0 +1,291 @@
|
||||
@media screen and (max-width: 768px) { |
||||
} |
||||
|
||||
@media screen and (max-width: 768px) { |
||||
.body, |
||||
html, |
||||
#app { |
||||
width: 100%; |
||||
height: 100%; |
||||
overflow: hidden; |
||||
} |
||||
* { |
||||
user-select: text !important; |
||||
} |
||||
#app { |
||||
-webkit-tap-highlight-color: transparent; |
||||
position: fixed; |
||||
top: 0; |
||||
left: 0; |
||||
bottom: 0; |
||||
right: 0; |
||||
|
||||
.main { |
||||
.user-status { |
||||
width: calc(50% - 0.12rem); |
||||
height: calc(25% - 0.02rem); |
||||
padding: 0.05rem; |
||||
|
||||
.hp { |
||||
padding-left: 0.08rem; |
||||
border: none; |
||||
height: 0.25rem; |
||||
img { |
||||
width: 0.35rem; |
||||
height: 0.35rem; |
||||
} |
||||
|
||||
.value { |
||||
font-size: 0.18rem; |
||||
} |
||||
} |
||||
.lv { |
||||
padding-left: 0.08rem; |
||||
border: none; |
||||
height: 0.25rem; |
||||
|
||||
img { |
||||
width: 0.35rem; |
||||
height: 0.35rem; |
||||
} |
||||
|
||||
.value { |
||||
font-size: 0.18rem; |
||||
justify-content: space-between; |
||||
padding-right: 0.1rem; |
||||
} |
||||
} |
||||
|
||||
.other { |
||||
margin-top: 0.02rem; |
||||
padding: 0.04rem; |
||||
border: 1px solid #ccc; |
||||
& > div { |
||||
padding-top: 0.02rem; |
||||
} |
||||
|
||||
img { |
||||
width: 0.3rem; |
||||
height: 0.3rem; |
||||
} |
||||
|
||||
.value { |
||||
font-size: 0.18rem; |
||||
margin-top: 0.04rem; |
||||
span { |
||||
font-size: 0.12rem !important; |
||||
transform: scale(0.8); |
||||
margin-top: -0.02rem; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.user-item { |
||||
margin-top: 0.12rem; |
||||
width: calc(50% - 0.12rem); |
||||
height: calc(25% - 0.02rem); |
||||
top: 25%; |
||||
left: 0.1rem; |
||||
padding: 0; |
||||
|
||||
& > div { |
||||
height: 25%; |
||||
width: 100%; |
||||
|
||||
.title { |
||||
padding: 0 0.1rem; |
||||
display: flex; |
||||
align-items: center; |
||||
|
||||
.icon { |
||||
width: 0.4rem; |
||||
height: 0.4rem; |
||||
|
||||
img { |
||||
width: 0.35rem; |
||||
height: 0.35rem; |
||||
} |
||||
} |
||||
|
||||
.name { |
||||
font-size: 0.18rem; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.uii { |
||||
display: flex; |
||||
flex-direction: column; |
||||
|
||||
.gold { |
||||
width: 100%; |
||||
height: 50% !important; |
||||
height: auto; |
||||
margin: 0; |
||||
font-size: 0.12rem; |
||||
padding-right: 0.12rem; |
||||
|
||||
span { |
||||
padding: 0; |
||||
font-size: 0.16rem !important; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.sys-info { |
||||
width: calc(50% - 0.12rem); |
||||
height: 50%; |
||||
bottom: auto; |
||||
right: 0.1rem; |
||||
top: 0.1rem; |
||||
left: auto; |
||||
padding: 0.05rem; |
||||
font-size: 0.12rem; |
||||
|
||||
.info { |
||||
i { |
||||
display: none; |
||||
} |
||||
} |
||||
|
||||
.clear { |
||||
top: auto; |
||||
bottom: 0.1rem; |
||||
right: 0.1rem; |
||||
background: #000; |
||||
border: 1px solid #ccc; |
||||
border-radius: 0.06rem; |
||||
padding: 0.02rem 0.04rem; |
||||
} |
||||
} |
||||
|
||||
.map { |
||||
height: calc(50% - 0.24rem); |
||||
right: 0.8rem; |
||||
left: 0.1rem; |
||||
top: auto; |
||||
bottom: 0.1rem; |
||||
|
||||
.plan { |
||||
height: 0.6rem; |
||||
} |
||||
|
||||
.dungeons { |
||||
img { |
||||
width: 0.35rem; |
||||
height: 0.35rem; |
||||
} |
||||
} |
||||
|
||||
.event-icon { |
||||
width: 0.35rem; |
||||
height: 0.35rem; |
||||
background-size: 100%; |
||||
|
||||
span { |
||||
font-size: 0.13rem; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.menu { |
||||
display: flex; |
||||
flex-direction: column; |
||||
left: auto; |
||||
right: 0.1rem; |
||||
top: 52%; |
||||
|
||||
& > div { |
||||
margin: 0.03rem; |
||||
|
||||
img { |
||||
width: 0.35rem; |
||||
height: 0.35rem; |
||||
} |
||||
|
||||
span { |
||||
font-size: 0.22rem; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.dialog-backpackPanel { |
||||
transform: translate(-50%, -50%) scale(0.8); |
||||
} |
||||
|
||||
.dialog { |
||||
top: 50% !important; |
||||
left: 50% !important; |
||||
transform: translate(-50%, -50%); |
||||
|
||||
.item-close { |
||||
display: block; |
||||
} |
||||
|
||||
.weapon, |
||||
.armor, |
||||
.ring, |
||||
.neck { |
||||
& > div { |
||||
width: 2.2rem; |
||||
font-size: 0.13rem; |
||||
|
||||
.icon { |
||||
width: 0.45rem; |
||||
height: 0.45rem; |
||||
|
||||
img { |
||||
width: 0.4rem; |
||||
height: 0.4rem; |
||||
} |
||||
} |
||||
} |
||||
|
||||
padding: 0.06rem; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.drawer-update { |
||||
width: 100% !important; |
||||
} |
||||
.qa { |
||||
left: 1.5rem; |
||||
width: 0.45rem; |
||||
height: 0.5rem; |
||||
span { |
||||
font-size: 0.12rem !important; |
||||
} |
||||
img { |
||||
width: 0.25rem; |
||||
height: 0.25rem; |
||||
} |
||||
} |
||||
.extras { |
||||
left: 0.8rem; |
||||
width: 0.45rem; |
||||
height: 0.5rem; |
||||
span { |
||||
font-size: 0.12rem !important; |
||||
} |
||||
img { |
||||
width: 0.25rem; |
||||
height: 0.25rem; |
||||
} |
||||
} |
||||
.setting { |
||||
left: 0.1rem; |
||||
width: 0.45rem; |
||||
height: 0.5rem; |
||||
span { |
||||
font-size: 0.12rem !important; |
||||
} |
||||
img { |
||||
width: 0.25rem; |
||||
height: 0.25rem; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,318 @@
@@ -0,0 +1,318 @@
|
||||
* { |
||||
box-sizing: border-box; |
||||
user-select: none; |
||||
} |
||||
a { |
||||
cursor: pointer; |
||||
} |
||||
.main { |
||||
background: #111; |
||||
box-sizing: border-box; |
||||
margin: 0; |
||||
padding: 0; |
||||
position: absolute; |
||||
top: 0; |
||||
left: 0; |
||||
bottom: 0; |
||||
right: 0; |
||||
color: #eee; |
||||
height: 100%; |
||||
.user-status { |
||||
position: absolute; |
||||
top: 0.1rem; |
||||
left: 0.1rem; |
||||
border: 2px solid #ccc; |
||||
height: 4rem; |
||||
width: 4rem; |
||||
padding: 0.1rem; |
||||
display: flex; |
||||
flex-direction: column; |
||||
.hp { |
||||
cursor: pointer; |
||||
height: 0.7rem; |
||||
width: 100%; |
||||
display: flex; |
||||
border: 2px solid #ccc; |
||||
align-items: center; |
||||
padding-left: 0.2rem; |
||||
margin-bottom: 0.1rem; |
||||
img { |
||||
width: 0.5rem; |
||||
height: 0.5rem; |
||||
} |
||||
.value { |
||||
font-size: 0.26rem; |
||||
font-weight: bold; |
||||
text-align: center; |
||||
flex: 1; |
||||
} |
||||
} |
||||
.lv { |
||||
cursor: pointer; |
||||
height: 0.7rem; |
||||
width: 100%; |
||||
display: flex; |
||||
border: 2px solid #ccc; |
||||
align-items: center; |
||||
padding-left: 0.2rem; |
||||
margin-bottom: 0.1rem; |
||||
img { |
||||
width: 0.5rem; |
||||
height: 0.5rem; |
||||
} |
||||
.value { |
||||
display: flex; |
||||
justify-content: space-around; |
||||
font-size: 0.26rem; |
||||
font-weight: bold; |
||||
text-align: center; |
||||
flex: 1; |
||||
align-items: center; |
||||
} |
||||
} |
||||
.other { |
||||
img { |
||||
width: 0.35rem !important; |
||||
height: 0.35rem !important; |
||||
} |
||||
display: flex; |
||||
flex: 1; |
||||
padding: 0.1rem; |
||||
border: 2px solid #ccc; |
||||
flex-wrap: wrap; |
||||
& > div, |
||||
.item { |
||||
cursor: pointer; |
||||
width: 33.3%; |
||||
height: 50%; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: flex-start; |
||||
padding-top: 0.05rem; |
||||
flex-direction: column; |
||||
.value { |
||||
margin-top: 0.06rem; |
||||
font-size: 0.23rem; |
||||
font-weight: normal; |
||||
flex: 1; |
||||
display: flex; |
||||
align-items: center; |
||||
flex-direction: column; |
||||
} |
||||
} |
||||
.item { |
||||
width: 100%; |
||||
} |
||||
} |
||||
} |
||||
.user-item { |
||||
position: absolute; |
||||
top: 0.1rem; |
||||
left: 4.2rem; |
||||
border: 2px solid #ccc; |
||||
height: 4rem; |
||||
width: 4rem; |
||||
display: flex; |
||||
flex-direction: column; |
||||
align-items: center; |
||||
justify-content: space-around; |
||||
padding: 0.2rem 0; |
||||
padding-top: 0.1rem; |
||||
cursor: pointer; |
||||
& > div { |
||||
background: rgba(0, 0, 0, 0.7); |
||||
width: calc(100% - 0.4rem); |
||||
margin: 0 20rem; |
||||
} |
||||
.uii { |
||||
display: flex; |
||||
width: calc(100% -0.4rem); |
||||
} |
||||
.gold { |
||||
cursor: pointer; |
||||
height: 0.7rem; |
||||
margin: 0.1rem; |
||||
margin-top: 0.08rem; |
||||
width: calc(100%); |
||||
display: flex; |
||||
align-items: center; |
||||
padding-left: 0.1rem; |
||||
font-size: 0.22rem; |
||||
span { |
||||
font-size: 0.2rem; |
||||
font-weight: bold; |
||||
text-align: right; |
||||
flex: 1; |
||||
padding: 0.1rem 0.08rem; |
||||
display: flex; |
||||
align-items: flex-end; |
||||
justify-content: flex-end; |
||||
} |
||||
} |
||||
.title { |
||||
display: flex; |
||||
padding: 0.05rem; |
||||
width: 100%; |
||||
.icon { |
||||
width: 0.56rem; |
||||
height: 0.56rem; |
||||
background-color: #000; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
border-radius: 0.04rem; |
||||
} |
||||
.name { |
||||
font-size: 0.2rem; |
||||
height: 0.46rem; |
||||
margin-left: 0.2rem; |
||||
line-height: 0.46rem; |
||||
} |
||||
} |
||||
} |
||||
.sys-info { |
||||
position: absolute; |
||||
border: 2px solid #ccc; |
||||
height: calc(100% - 4.4rem); |
||||
width: 8.1rem; |
||||
bottom: 0.1rem; |
||||
left: 0.1rem; |
||||
|
||||
transition: 0.2s; |
||||
padding: 0.2rem; |
||||
.clear { |
||||
position: absolute; |
||||
top: 0.2rem; |
||||
right: 0.2rem; |
||||
cursor: pointer; |
||||
&:hover { |
||||
text-decoration: underline; |
||||
} |
||||
} |
||||
#sysInfo { |
||||
overflow-y: auto; |
||||
transition: 0.2s; |
||||
width: 100%; |
||||
height: 100%; |
||||
display: flex; |
||||
flex-direction: column; |
||||
align-items: flex-start; |
||||
justify-content: flex-start; |
||||
} |
||||
.info { |
||||
margin: 0.03rem 0; |
||||
} |
||||
a { |
||||
cursor: pointer; |
||||
text-decoration: underline; |
||||
margin-left: 0.05rem; |
||||
} |
||||
.warning > span { |
||||
color: #f90202; |
||||
} |
||||
.battle > span { |
||||
color: #de8618; |
||||
} |
||||
.win > span { |
||||
color: #24c4de; |
||||
} |
||||
.trophy > span { |
||||
color: #2fe20f; |
||||
} |
||||
} |
||||
.map { |
||||
position: absolute; |
||||
right: 0.1rem; |
||||
left: 8.3rem; |
||||
top: 0.1rem; |
||||
bottom: 0.1rem; |
||||
border: 2px solid #ccc; |
||||
background-image: url(../img/map.jpg); |
||||
background-repeat: no-repeat; |
||||
background-size: 100% 100%; |
||||
.plan { |
||||
position: absolute; |
||||
top: 0.1rem; |
||||
width: calc(100% - 0.3rem); |
||||
left: 0.15rem; |
||||
height: 1rem; |
||||
background: rgba(54, 121, 176, 0.68); |
||||
text-align: center; |
||||
font-size: 0.4rem; |
||||
line-height: 1rem; |
||||
} |
||||
.eventEnd { |
||||
position: absolute; |
||||
top: 1.1rem; |
||||
right: 0rem; |
||||
height: 0.4rem; |
||||
font-size: 0.16rem; |
||||
line-height: initial; |
||||
} |
||||
.event-icon { |
||||
position: absolute; |
||||
cursor: pointer; |
||||
width: 0.55rem; |
||||
height: 0.75rem; |
||||
border: 1px solid #111; |
||||
background: rgba(0, 0, 0, 0.5); |
||||
border-radius: 4px; |
||||
box-shadow: 0 0 4px 4px rgba(100, 255, 36, 0.5); |
||||
display: flex; |
||||
flex-direction: column; |
||||
align-items: center; |
||||
justify-content: center; |
||||
.icon-image { |
||||
width: 0.45rem; |
||||
height: 0.45rem; |
||||
border-radius: 50%; |
||||
background-image: url(../icons/menu/d1.png); |
||||
background-color: rgba(100, 255, 36, 0.6); |
||||
background-repeat: no-repeat; |
||||
background-position: center center; |
||||
background-size: 30px 29px; |
||||
} |
||||
span { |
||||
text-shadow: 1px 1px 3px rgb(0, 0, 0); |
||||
white-space: nowrap; |
||||
width: 100%; |
||||
text-align: center; |
||||
border-top: 1px solid rgba(100, 255, 36, 0.6); |
||||
margin-top: 0.03rem; |
||||
font-size: 0.14rem; |
||||
} |
||||
} |
||||
.low-level { |
||||
} |
||||
.h-level { |
||||
box-shadow: 0 0 4px 4px rgba(245, 241, 0, 0.5); |
||||
.icon-image { |
||||
background-image: url(../icons/menu/d2.png); |
||||
background-color: rgba(245, 241, 0, 0.6); |
||||
} |
||||
span { |
||||
border-top: 1px solid rgba(245, 241, 0, 0.6); |
||||
} |
||||
} |
||||
.boss { |
||||
box-shadow: 0 0 4px 4px rgba(245, 54, 54, 0.5); |
||||
.icon-image { |
||||
background-image: url(../icons/menu/d3.png); |
||||
background-color: rgba(245, 54, 54, 0.6); |
||||
} |
||||
span { |
||||
border-top: 1px solid rgba(245, 54, 54, 0.6); |
||||
} |
||||
} |
||||
.endless { |
||||
box-shadow: 0 0 4px 4px rgba(245, 69, 0, 0.5); |
||||
.icon-image { |
||||
background-image: url(../icons/endless.png); |
||||
background-color: rgba(245, 69, 0, 0.6); |
||||
} |
||||
span { |
||||
border-top: 1px solid rgba(245, 69, 0, 0.6); |
||||
} |
||||
} |
||||
} |
||||
} |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 987 B |
After Width: | Height: | Size: 978 B |
After Width: | Height: | Size: 878 B |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 762 B |
After Width: | Height: | Size: 571 B |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 560 B |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 573 B |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 823 B |
After Width: | Height: | Size: 911 B |
After Width: | Height: | Size: 772 B |
After Width: | Height: | Size: 715 B |
After Width: | Height: | Size: 734 B |
After Width: | Height: | Size: 676 B |
After Width: | Height: | Size: 725 B |
After Width: | Height: | Size: 873 B |
After Width: | Height: | Size: 456 B |
After Width: | Height: | Size: 611 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1007 B |
After Width: | Height: | Size: 596 B |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 840 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 501 B |
After Width: | Height: | Size: 717 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 605 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 530 B |
After Width: | Height: | Size: 887 B |
After Width: | Height: | Size: 636 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 649 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 826 B |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 341 B |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 3.3 KiB |