diff --git a/apps/profile/ProfileStat.js b/apps/profile/ProfileStat.js
index 44e29d65..55ba32c7 100644
--- a/apps/profile/ProfileStat.js
+++ b/apps/profile/ProfileStat.js
@@ -1,5 +1,6 @@
import { Cfg, Common } from '../../components/index.js'
-import { MysApi, Player } from '../../models/index.js'
+import { MysApi, Player, Character } from '../../models/index.js'
+import moment from 'moment'
export async function profileStat (e) {
let isMatch = /^#(面板|喵喵|角色|武器|天赋|技能|圣遗物)练度统计?$/.test(e.original_msg || e.msg || '')
@@ -33,12 +34,22 @@ export async function profileStat (e) {
let talentNotice = ''
+ let faceChar = Character.get(player.face || avatarRet[0]?.id)
+ let face = {
+ banner: faceChar.imgs?.banner,
+ face: faceChar.imgs?.face,
+ name: player.name || `#${uid}`,
+ sign: player.sign,
+ level: player.level
+ }
+
return await Common.render(isAvatarList ? 'character/avatar-list' : 'character/profile-stat', {
save_id: uid,
uid,
- info: player.info || {},
+ info: player.getInfo(),
isStat: !isAvatarList,
talentLvMap: '0,1,1,1,2,2,3,3,3,4,5'.split(','),
+ face,
avatars: avatarRet,
isSelf: e.isSelf,
talentNotice
diff --git a/models/Player.js b/models/Player.js
index f8a7e96d..c5dd1340 100644
--- a/models/Player.js
+++ b/models/Player.js
@@ -161,6 +161,37 @@ export default class Player extends Base {
return ret
}
+ getInfo () {
+ let ret = {
+ ...(this.info || {}),
+ statMap: {
+ achievement: '成就数',
+ commonChest: '普通宝箱',
+ exquisiteChest: '精致宝箱',
+ preciousChest: '珍贵宝箱',
+ luxuriousChest: '豪华宝箱'
+ }
+ }
+ if (ret?.stats?.activeDay) {
+ let num = ret?.stats?.activeDay
+ let year = Math.floor(num / 365)
+ let month = Math.floor((num % 365) / 30.41)
+ let day = Math.floor((num % 365) % 30.41)
+ let msg = ''
+ if (year > 0) {
+ msg += year + '年'
+ }
+ if (month > 0) {
+ msg += month + '个月'
+ }
+ if (day > 0) {
+ msg += day + '天'
+ }
+ ret.activeDay = msg
+ }
+ return ret
+ }
+
// 更新面板
async refreshProfile (force = true) {
return await Profile.refreshProfile(this, force)
diff --git a/resources/character/avatar-list.css b/resources/character/avatar-list.css
index e198381e..cf5c1568 100644
--- a/resources/character/avatar-list.css
+++ b/resources/character/avatar-list.css
@@ -5,6 +5,82 @@
.head-box {
margin-top: 0;
}
+#banner {
+ height: 90px;
+ background-size: auto 100%;
+ background-position: right center;
+ background-repeat: no-repeat;
+ background-color: #f0ece4;
+ border-radius: 50px;
+ padding: 1px;
+ margin: 5px 0;
+ display: flex;
+ white-space: nowrap;
+ position: relative;
+}
+#banner .face {
+ width: 70px;
+ height: 70px;
+ margin: 10px;
+ border-radius: 50%;
+ box-shadow: 0 0 1px #000, 0 0 5px rgba(0, 0, 0, 0.5);
+ border: 3px solid #fff;
+ overflow: hidden;
+ background: url('../common/item/bg5.png');
+ background-size: cover;
+}
+#banner .face span {
+ display: block;
+ width: 64px;
+ height: 64px;
+ background-size: auto 100%;
+ background-repeat: no-repeat;
+}
+#banner .user-info {
+ padding: 15px 5px;
+ color: #414e64;
+}
+#banner .user-info .name {
+ height: 32px;
+ line-height: 32px;
+}
+#banner .user-info .name strong {
+ font-size: 26px;
+}
+#banner .user-info .name span {
+ padding-left: 5px;
+}
+#banner .user-info .uid {
+ height: 28px;
+ line-height: 28px;
+}
+#banner .stat {
+ position: absolute;
+ right: 20px;
+ top: 0;
+ display: flex;
+ background: rgba(255, 255, 255, 0.5);
+ margin: 20px 5px;
+ border-radius: 10px;
+}
+#banner .stat-li {
+ padding: 7px;
+ width: 70px;
+ text-align: center;
+ position: relative;
+}
+#banner .stat-li:nth-child(even) {
+ background: rgba(225, 225, 225, 0.8);
+}
+#banner .stat-li strong {
+ font-size: 22px;
+ display: block;
+}
+#banner .stat-li span {
+ display: block;
+ font-size: 14px;
+ color: #414e64;
+}
#avatar-list {
width: calc(100% + 30px);
margin: 0 -15px -5px;
@@ -13,27 +89,27 @@
.exploration {
display: flex;
flex-wrap: wrap;
- padding: 6px;
+ padding: 16px;
}
.exploration .item {
- width: 95px;
- height: 106.4px;
+ width: 93px;
+ height: 106.95px;
background: url('./imgs/exploration.webp') no-repeat;
background-size: auto 100%;
border-radius: 4px;
- margin: 4px;
+ margin: 3px;
text-align: center;
color: #fff;
}
.exploration .item strong {
- font-size: 18px;
+ font-size: 22px;
display: block;
- height: 22px;
- line-height: 22px;
+ height: 26px;
+ line-height: 26px;
text-shadow: 0 0 1px #000, 1px 1px 3px rgba(0, 0, 0, 0.5);
}
.exploration .item span {
- margin-top: 60px;
+ margin-top: 58px;
font-size: 12px;
height: 18px;
line-height: 18px;
diff --git a/resources/character/avatar-list.html b/resources/character/avatar-list.html
index f76b846c..b0a3da67 100644
--- a/resources/character/avatar-list.html
+++ b/resources/character/avatar-list.html
@@ -7,8 +7,30 @@
{{block 'main'}}
-
-
#角色
+
+
+
+
+
+
+ {{face.name}}
+ {{if face.level}} #{{uid}}{{/if}}
+
+
+ {{if face.level}} Lv.{{face.level}}·{{/if}}
+ {{ if info.activeDay}}{{info.activeDay}} {{/if}}
+
+
+
+ {{each info?.statMap title key}}
+ {{if info.stats[key] }}
+
+ {{info.stats[key]}}
+ {{title}}
+
+ {{/if}}
+ {{/each}}
+
{{if info && info.exploration}}
diff --git a/resources/character/avatar-list.less b/resources/character/avatar-list.less
index 6d56efe1..5e8ed977 100644
--- a/resources/character/avatar-list.less
+++ b/resources/character/avatar-list.less
@@ -8,6 +8,96 @@
margin-top: 0;
}
+#banner {
+ height: 90px;
+ background-size: auto 100%;
+ background-position: right center;
+ background-repeat: no-repeat;
+ background-color: #f0ece4;
+ border-radius: 50px;
+ padding: 1px;
+ margin: 5px 0;
+ display: flex;
+ white-space: nowrap;
+ position: relative;
+
+ .face {
+ width: 70px;
+ height: 70px;
+ margin: 10px;
+ border-radius: 50%;
+ box-shadow: 0 0 1px #000, 0 0 5px rgba(0, 0, 0, .5);
+ border: 3px solid #fff;
+ overflow: hidden;
+ background: url('../common/item/bg5.png');
+ background-size: cover;
+
+ span {
+ display: block;
+ width: 64px;
+ height: 64px;
+ background-size: auto 100%;
+ background-repeat: no-repeat;
+ }
+ }
+
+ .user-info {
+ padding: 15px 5px;
+ color: #414e64;
+
+ .name {
+ height: 32px;
+ line-height: 32px;
+
+ strong {
+ font-size: 26px;
+ }
+
+ span {
+ padding-left: 5px;
+ }
+ }
+
+ .uid {
+ height: 28px;
+ line-height: 28px;
+ }
+ }
+
+ .stat {
+ position: absolute;
+ right: 20px;
+ top: 0;
+ display: flex;
+ background: rgba(255, 255, 255, .5);
+ margin: 20px 5px;
+ border-radius: 10px;
+ }
+
+ .stat-li {
+ padding: 7px;
+ width: 70px;
+ text-align: center;
+ position: relative;
+
+ &:nth-child(even) {
+ background: rgba(225, 225, 225, .8);
+ }
+
+
+ strong {
+ font-size: 22px;
+ display: block;
+ }
+
+ span {
+ display: block;
+ font-size: 14px;
+ color: #414e64;
+ }
+ }
+}
+
#avatar-list {
width: calc(100% + 30px);
margin: 0 -15px -5px;
@@ -17,28 +107,28 @@
.exploration {
display: flex;
flex-wrap: wrap;
- padding: 6px;
+ padding: 16px;
.item {
- width: 95px;
- height: 95*1.12px;
+ width: 93px;
+ height: 93*1.15px;
background: url('./imgs/exploration.webp') no-repeat;
background-size: auto 100%;
border-radius: 4px;
- margin: 4px;
+ margin: 3px;
text-align: center;
color: #fff;
strong {
- font-size: 18px;
+ font-size: 22px;
display: block;
- height: 22px;
- line-height: 22px;
+ height: 26px;
+ line-height: 26px;
text-shadow: 0 0 1px #000, 1px 1px 3px rgba(0, 0, 0, .5);
}
span {
- margin-top: 60px;
+ margin-top: 58px;
font-size: 12px;
height: 18px;
line-height: 18px;
diff --git a/resources/character/imgs/exploration.webp b/resources/character/imgs/exploration.webp
index 636bb17c..ab6dc35b 100644
Binary files a/resources/character/imgs/exploration.webp and b/resources/character/imgs/exploration.webp differ
diff --git a/resources/meta/character/流浪者/data.json b/resources/meta/character/流浪者/data.json
index 5a3e1599..e16a2639 100644
--- a/resources/meta/character/流浪者/data.json
+++ b/resources/meta/character/流浪者/data.json
@@ -45,5 +45,5 @@
"talent": "「笃行」的哲学",
"weekly": "空行的虚铃"
},
- "eta": 1670382000000
+ "eta": 1670378400000
}
\ No newline at end of file
diff --git a/resources/meta/character/流浪者/imgs/banner.webp b/resources/meta/character/流浪者/imgs/banner.webp
index d911558b..5d1f39ac 100644
Binary files a/resources/meta/character/流浪者/imgs/banner.webp and b/resources/meta/character/流浪者/imgs/banner.webp differ
diff --git a/resources/meta/character/珐露珊/data.json b/resources/meta/character/珐露珊/data.json
index b9bd4a69..f17be4f3 100644
--- a/resources/meta/character/珐露珊/data.json
+++ b/resources/meta/character/珐露珊/data.json
@@ -26,7 +26,7 @@
"talentKey": {
"7631": "a",
"7632": "e",
- "7639": "q"
+ "7633": "q"
},
"talentId": {
"10761": 7631,
@@ -45,5 +45,5 @@
"talent": "「诤言」的哲学",
"weekly": "傀儡的悬丝"
},
- "eta": 1670382000000
+ "eta": 1670378400000
}
\ No newline at end of file
diff --git a/resources/meta/character/珐露珊/detail.json b/resources/meta/character/珐露珊/detail.json
index a2da8064..dc7afe18 100644
--- a/resources/meta/character/珐露珊/detail.json
+++ b/resources/meta/character/珐露珊/detail.json
@@ -821,7 +821,8 @@
"3": {
"name": "漫行灵圃",
"desc": [
- "非想风天的技能等级提高3级。至多提升至15级。"
+ "
非想风天的技能等级提高3级。
",
+ "至多提升至15级。"
]
},
"4": {
@@ -834,7 +835,8 @@
"5": {
"name": "繁想奇境",
"desc": [
- "抟风秘道的技能等级提高3级。至多提升至15级。"
+ "抟风秘道的技能等级提高3级。
",
+ "至多提升至15级。"
]
},
"6": {
diff --git a/resources/meta/character/珐露珊/imgs/banner.webp b/resources/meta/character/珐露珊/imgs/banner.webp
index d911558b..c8e63f0a 100644
Binary files a/resources/meta/character/珐露珊/imgs/banner.webp and b/resources/meta/character/珐露珊/imgs/banner.webp differ
diff --git a/resources/meta/character/瑶瑶/data.json b/resources/meta/character/瑶瑶/data.json
index 355e5f46..2a9974cb 100644
--- a/resources/meta/character/瑶瑶/data.json
+++ b/resources/meta/character/瑶瑶/data.json
@@ -45,5 +45,5 @@
"talent": "「勤劳」的哲学",
"weekly": "空行的虚铃"
},
- "eta": 1674010800000
+ "eta": 1674007200000
}
\ No newline at end of file
diff --git a/resources/meta/character/瑶瑶/detail.json b/resources/meta/character/瑶瑶/detail.json
index bc73b74b..b9cddf05 100644
--- a/resources/meta/character/瑶瑶/detail.json
+++ b/resources/meta/character/瑶瑶/detail.json
@@ -1013,7 +1013,8 @@
"3": {
"name": "墩墩善道",
"desc": [
- "云台团团降芦菔的技能等级提高3级。至多提升至15级。"
+ "云台团团降芦菔的技能等级提高3级。",
+ "至多提升至15级。"
]
},
"4": {
@@ -1025,7 +1026,8 @@
"5": {
"name": "恻隐本义",
"desc": [
- "玉颗珊珊月中落的技能等级提高3级。至多提升至15级。"
+ "玉颗珊珊月中落的技能等级提高3级。",
+ "至多提升至15级。"
]
},
"6": {
diff --git a/resources/meta/character/瑶瑶/imgs/banner.webp b/resources/meta/character/瑶瑶/imgs/banner.webp
index ec2f33ab..bbdafb71 100644
Binary files a/resources/meta/character/瑶瑶/imgs/banner.webp and b/resources/meta/character/瑶瑶/imgs/banner.webp differ
diff --git a/resources/meta/character/瑶瑶/imgs/face.webp b/resources/meta/character/瑶瑶/imgs/face.webp
index e96a6859..1b553785 100644
Binary files a/resources/meta/character/瑶瑶/imgs/face.webp and b/resources/meta/character/瑶瑶/imgs/face.webp differ
diff --git a/resources/meta/character/纳西妲/data.json b/resources/meta/character/纳西妲/data.json
index 7948b3ee..d30f087b 100644
--- a/resources/meta/character/纳西妲/data.json
+++ b/resources/meta/character/纳西妲/data.json
@@ -45,5 +45,5 @@
"talent": "「巧思」的哲学",
"weekly": "傀儡的悬丝"
},
- "eta": 1667358000000
+ "eta": 1667354400000
}
\ No newline at end of file
diff --git a/resources/meta/character/纳西妲/imgs/banner.webp b/resources/meta/character/纳西妲/imgs/banner.webp
index 2608f91f..12d7b8e3 100644
Binary files a/resources/meta/character/纳西妲/imgs/banner.webp and b/resources/meta/character/纳西妲/imgs/banner.webp differ
diff --git a/resources/meta/character/艾尔海森/data.json b/resources/meta/character/艾尔海森/data.json
index e84a4696..d2548350 100644
--- a/resources/meta/character/艾尔海森/data.json
+++ b/resources/meta/character/艾尔海森/data.json
@@ -45,5 +45,5 @@
"talent": "「巧思」的哲学",
"weekly": "无心的渊镜"
},
- "eta": 1674010800000
+ "eta": 1674007200000
}
\ No newline at end of file
diff --git a/resources/meta/character/艾尔海森/detail.json b/resources/meta/character/艾尔海森/detail.json
index 42de1bb3..87aa5234 100644
--- a/resources/meta/character/艾尔海森/detail.json
+++ b/resources/meta/character/艾尔海森/detail.json
@@ -1370,7 +1370,8 @@
"3": {
"name": "遮诠",
"desc": [
- "共相·理式摹写的技能等级提高3级。至多提升至15级。"
+ "共相·理式摹写的技能等级提高3级。",
+ "至多提升至15级。"
]
},
"4": {
@@ -1385,7 +1386,8 @@
"5": {
"name": "智度",
"desc": [
- "殊境·显象缚结的技能等级提高3级。至多提升至15级。"
+ "殊境·显象缚结的技能等级提高3级。",
+ "至多提升至15级。"
]
},
"6": {
diff --git a/resources/meta/character/艾尔海森/imgs/banner.webp b/resources/meta/character/艾尔海森/imgs/banner.webp
index ec2f33ab..2bebde16 100644
Binary files a/resources/meta/character/艾尔海森/imgs/banner.webp and b/resources/meta/character/艾尔海森/imgs/banner.webp differ
diff --git a/resources/meta/character/艾尔海森/imgs/face.webp b/resources/meta/character/艾尔海森/imgs/face.webp
index 365ccbd6..35024926 100644
Binary files a/resources/meta/character/艾尔海森/imgs/face.webp and b/resources/meta/character/艾尔海森/imgs/face.webp differ
diff --git a/resources/meta/character/莱依拉/data.json b/resources/meta/character/莱依拉/data.json
index db910eb2..9dc397aa 100644
--- a/resources/meta/character/莱依拉/data.json
+++ b/resources/meta/character/莱依拉/data.json
@@ -45,5 +45,5 @@
"talent": "「巧思」的哲学",
"weekly": "无心的渊镜"
},
- "eta": 1667358000000
+ "eta": 1667354400000
}
\ No newline at end of file
diff --git a/resources/meta/character/莱依拉/imgs/banner.webp b/resources/meta/character/莱依拉/imgs/banner.webp
index 2608f91f..bc4e2683 100644
Binary files a/resources/meta/character/莱依拉/imgs/banner.webp and b/resources/meta/character/莱依拉/imgs/banner.webp differ
diff --git a/tools/char-data.js b/tools/char-data.js
index 822d711b..3901c54a 100644
--- a/tools/char-data.js
+++ b/tools/char-data.js
@@ -275,4 +275,4 @@ let eta = {
迪希雅: '2023-03-01',
米卡: '2023-03-01'
}
-await down('迪希雅,米卡', true)
+await down('艾尔海森,珐露珊,莱依拉,流浪者,纳西妲,瑶瑶', true)