@ -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 @@ |
|||||||
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 @@ |
|||||||
# 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 @@ |
|||||||
|
module.exports = { |
||||||
|
presets: [ |
||||||
|
'@vue/cli-plugin-babel/preset' |
||||||
|
] |
||||||
|
} |
@ -0,0 +1,7 @@ |
|||||||
|
/.classpath |
||||||
|
/.project |
||||||
|
/.settings |
||||||
|
/bin/ |
||||||
|
/logs |
||||||
|
/target |
||||||
|
/src/main/resources/static |
@ -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 @@ |
|||||||
|
<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 @@ |
|||||||
|
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 @@ |
|||||||
|
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 @@ |
|||||||
|
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 @@ |
|||||||
|
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 @@ |
|||||||
|
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 @@ |
|||||||
|
package vip.xumy.idle.server.service; |
||||||
|
|
||||||
|
/** Ownership belongs to the company |
||||||
|
* |
||||||
|
* @author:mengyxu |
||||||
|
* @date:2025年4月18日 |
||||||
|
*/ |
||||||
|
|
||||||
|
public class UserService { |
||||||
|
|
||||||
|
} |
@ -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 @@ |
|||||||
|
<?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 @@ |
|||||||
|
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 @@ |
|||||||
|
{ |
||||||
|
"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 @@ |
|||||||
|
<!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 @@ |
|||||||
|
<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 @@ |
|||||||
|
/** |
||||||
|
* 基础样式 |
||||||
|
* @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 @@ |
|||||||
|
@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 @@ |
|||||||
|
* { |
||||||
|
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 |