#深渊界面样式微调

`#角色`增加探索度展示
This commit is contained in:
Kokomi 2023-02-11 03:40:55 +08:00
parent 60b53cd3bd
commit c96c32f1fd
16 changed files with 395 additions and 209 deletions

View File

@ -2,7 +2,7 @@
* 测试分支,暂未正式公开
* 重写底层面板、角色数据获取与保存逻辑
* 初步增加`#角色列表功能`,尚未完善
* 初步增加`#角色`功能查询并展示Mys角色信息,尚未完善
# 2.2.1 ~ 2.2.2

View File

@ -18,7 +18,7 @@ export async function renderAvatar (e, avatar, renderType = 'card') {
avatar = { id: char.id, name: char.name, detail: false }
} else {
let player = Player.create(e)
await player.refreshMys()
await player.refreshMysAvatar()
await player.refreshTalent(char.id)
avatar = player.getAvatar(char.id)
if (!avatar) {

View File

@ -164,7 +164,7 @@ export async function pokeWife (e, components) {
}
async function getAvatarList (player, type, mys) {
await player.refreshMys()
await player.refreshMysAvatar()
let list = []
player.forEachAvatar((avatar) => {
if (type !== false) {

View File

@ -1,6 +1,5 @@
import lodash from 'lodash'
import { Cfg, Common, Data } from '../../components/index.js'
import { MysApi, ProfileRank, Player } from '../../models/index.js'
import { Cfg, Common } from '../../components/index.js'
import { MysApi, Player } from '../../models/index.js'
export async function profileStat (e) {
let isMatch = /^#(面板|喵喵|角色|武器|天赋|技能|圣遗物)练度统计?$/.test(e.original_msg || e.msg || '')
@ -24,6 +23,8 @@ export async function profileStat (e) {
let player = Player.create(e)
await player.refreshMysInfo()
let avatarRet = await player.refreshAndGetAvatarData({
rank: true,
retType: 'array',
@ -35,10 +36,11 @@ export async function profileStat (e) {
return await Common.render(isAvatarList ? 'character/avatar-list' : 'character/profile-stat', {
save_id: uid,
uid,
info: player.info || {},
isStat: !isAvatarList,
talentLvMap: '0,1,1,1,2,2,3,3,3,4,5'.split(','),
avatars: avatarRet,
isSelf: e.isSelf,
talentNotice
}, { e, scale: isAvatarList ? 2.2 : 1.8 })
}, { e, scale: 1.4 })
}

View File

@ -196,7 +196,7 @@ async function abyssTeam (e) {
return true
}
let player = Player.create(e)
await player.refreshMys()
await player.refreshMysAvatar()
await player.refreshTalent()
let abyssData = await HutaoApi.getAbyssTeam()
@ -465,7 +465,7 @@ async function uploadData (e) {
}
}
if (ds.percent) {
pct(ds.percent, char.name)
pct(ds.percent, char.sName)
pct(ds.percentTotal, '总记录')
} else {
msg.push({
@ -476,6 +476,18 @@ async function uploadData (e) {
}
addMsg('最强一击', ret.data?.damage || abyssData?.stat?.dmg || {})
addMsg('最高承伤', ret.data?.takeDamage || abyssData?.stat.takeDmg || {})
let abyssStat = abyssData?.stat || {}
lodash.forEach({ defeat: '最多击破', e: '元素战技', q: '元素爆发' }, (title, key) => {
if (abyssStat[key]) {
stat.push({
title,
id: abyssStat[key]?.id || 0,
value: `${abyssStat[key]?.value}`
})
} else {
stat.push({})
}
})
await player.refreshTalent(avatarIds)
let avatarData = player.getAvatarData(avatarIds)
return await Common.render('stat/abyss-summary', {
@ -485,7 +497,7 @@ async function uploadData (e) {
save_id: uid,
totalCount: overview?.collectedPlayerCount || 0,
uid
}, { e, scale: 1.8 })
}, { e, scale: 1.2 })
} else {
e.reply('暂未获得本期深渊挑战数据...')
return true

View File

@ -57,7 +57,7 @@ export default class Player extends Base {
* 保存json文件
*/
save () {
let ret = Data.getData(this, 'uid,name,level,word,face,card,sign,_mys,_profile')
let ret = Data.getData(this, 'uid,name,level,word,face,card,sign,info,_info,_mys,_profile')
ret.avatars = {}
lodash.forEach(this._avatars, (ds) => {
ret.avatars[ds.id] = ds.toJSON()
@ -75,14 +75,16 @@ export default class Player extends Base {
*/
setBasicData (ds) {
this.name = ds.name || this.name || ''
this.level = ds.level || this.level || 1
this.word = ds.word || this.word || 1
this.level = ds.level || this.level || ''
this.word = ds.word || this.word || ''
this.face = ds.face || this.face || ''
this.card = ds.card || this.card || ''
this.sign = ds.sign || this.sign || ''
this.info = ds.info || this.info || false
this._avatars = this._avatars || {}
this._profile = ds._profile || this._profile
this._mys = ds._mys || this._mys
this._info = ds._info || this._info
}
// 设置角色列表
@ -165,8 +167,12 @@ export default class Player extends Base {
}
// 更新米游社数据
async refreshMys (force = false) {
return MysAvatar.refreshMys(this, force)
async refreshMysAvatar (force = false) {
return MysAvatar.refreshMysAvatar(this, force)
}
async refreshMysInfo (force = false) {
return await MysAvatar.refreshMysInfo(this, force)
}
// 通过已有的Mys CharData更新
@ -187,7 +193,7 @@ export default class Player extends Base {
async refreshAndGetAvatarData (cfg) {
// 更新角色信息
await this.refreshMys(cfg.force)
await this.refreshMysAvatar(cfg.force)
// 更新天赋信息
if (cfg.refreshTalent !== false) {

View File

@ -9,7 +9,7 @@ const MysAvatar = {
* @param force
* @returns {Promise<boolean>}
*/
async refreshMys (player, force = false) {
async refreshMysAvatar (player, force = false) {
let mys = player?.e?._mys
if (!mys) {
return false
@ -25,6 +25,27 @@ const MysAvatar = {
MysAvatar.setMysCharData(player, charData)
},
/**
* 更新米游社统计信息
* @param player
* @param force
* @returns {Promise<boolean>}
*/
async refreshMysInfo (player, force = false) {
let mys = player?.e?._mys
if (!mys) {
return false
} // 不必要更新
if (player._info && (new Date() * 1 - player._info < 10 * 60 * 1000) && !force) {
return false
}
let infoData = await mys.getIndex()
if (!infoData) {
return false
}
MysAvatar.setMysInfo(player, infoData)
},
/**
* 根据已有Mys CharData更新player
* @param player
@ -39,7 +60,7 @@ const MysAvatar = {
lodash.forEach(charData.avatars, (ds) => {
let avatar = Data.getData(ds, 'id,level,cons:actived_constellation_num,fetter')
avatar.elem = ds.element.toLowerCase()
// 处理装数据
// 处理装数据
let costume = (ds?.costumes || [])[0]
if (costume && costume.id) {
avatar.costume = costume.id
@ -63,6 +84,45 @@ const MysAvatar = {
player.save()
},
setMysInfo (player, infoData) {
let role = infoData.role
// 设置角色信息
let homeLevel = ((infoData?.homes || [])[0])?.level
player.setBasicData({
level: role.level,
name: role.nickname
})
// 设置角色数据
lodash.forEach(infoData.avatars, (ds) => {
let avatar = Data.getData(ds, 'id,level,cons:actived_constellation_num,fetter')
avatar.elem = ds.element.toLowerCase()
player.setAvatar(avatar, 'mys')
})
let stats = {}
lodash.forEach(infoData.stats, (num, key) => {
key = key.replace('_number', '')
if (key !== 'spiral_abyss') {
stats[lodash.camelCase(key)] = num
}
})
let exploration = {}
lodash.forEach(infoData.world_explorations, (ds) => {
let { name } = ds
if (name === '层岩巨渊') {
return true
}
exploration[name === '层岩巨渊·地下矿区' ? '层岩巨渊' : name] = ds.exploration_percentage
})
player.info = {
homeLevel,
stats,
exploration
}
player._info = new Date() * 1
player.save()
},
/**
* 获取当前角色需要更新天赋的角色ID
* @param player

View File

@ -1,15 +1,44 @@
.container {
width: 525px;
width: 740px;
background-size: cover;
}
.head-box {
margin-top: 0;
}
#profile-stat {
#avatar-list {
width: calc(100% + 30px);
margin: 0 -15px -5px;
overflow: hidden;
}
.exploration {
display: flex;
flex-wrap: wrap;
padding: 6px;
}
.exploration .item {
width: 95px;
height: 106.4px;
background: url('./imgs/exploration.webp') no-repeat;
background-size: auto 100%;
border-radius: 4px;
margin: 4px;
text-align: center;
color: #fff;
}
.exploration .item strong {
font-size: 18px;
display: block;
height: 22px;
line-height: 22px;
text-shadow: 0 0 1px #000, 1px 1px 3px rgba(0, 0, 0, 0.5);
}
.exploration .item span {
margin-top: 60px;
font-size: 12px;
height: 18px;
line-height: 18px;
display: block;
}
.cont-title {
padding: 8px 15px;
}

View File

@ -8,10 +8,21 @@
{{block 'main'}}
<div class="head-box">
<div class="title">#角色列表</div>
<div class="label">UID:{{uid}} 共{{avatars.length }}名角色</div>
<div class="title">#角色</div>
</div>
<div id="profile-stat">
<div id="avatar-list">
{{if info && info.exploration}}
{{set citys = ['蒙德','龙脊雪山','璃月','层岩巨渊','稻妻','渊下宫','须弥'] }}
<div class="exploration">
{{each citys city idx}}
<div class="item city-{{idx+1}}" style="background-position:{{idx}}0% 0">
<span>{{city}}</span>
<strong>{{ (info.exploration[city]||0)/10 || '0'}}%</strong>
</div>
{{/each}}
</div>
{{/if}}
<div class="cont avatar-cont">
<div class="cont-title">角色列表</div>
<div class="avatar-list">

View File

@ -1,6 +1,6 @@
.container {
width: 525px;
width: 740px;
background-size: cover;
}
@ -8,12 +8,47 @@
margin-top: 0;
}
#profile-stat {
#avatar-list {
width: calc(100% + 30px);
margin: 0 -15px -5px;
overflow: hidden;
}
.exploration {
display: flex;
flex-wrap: wrap;
padding: 6px;
.item {
width: 95px;
height: 95*1.12px;
background: url('./imgs/exploration.webp') no-repeat;
background-size: auto 100%;
border-radius: 4px;
margin: 4px;
text-align: center;
color: #fff;
strong {
font-size: 18px;
display: block;
height: 22px;
line-height: 22px;
text-shadow: 0 0 1px #000, 1px 1px 3px rgba(0, 0, 0, .5);
}
span {
margin-top: 60px;
font-size: 12px;
height: 18px;
line-height: 18px;
display: block;
}
}
}
.cont-title {
padding: 8px 15px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

View File

@ -140,21 +140,21 @@
.avatar-card {
margin: 3px;
box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.8);
font-size: 13px;
border-radius: 7px;
font-size: 19.5px;
border-radius: 10.5px;
}
.avatar-card .card {
border-radius: 7px;
box-shadow: 0 2px 6px 0 rgba(132, 93, 90, 0.3);
border-radius: 10.5px;
box-shadow: 0 2px 9px 0 rgba(132, 93, 90, 0.3);
position: relative;
overflow: hidden;
background: #e7e5d9;
width: 70px;
width: 105px;
}
.avatar-card .avatar-face {
width: 70px;
height: 70px;
border-radius: 7px 7px 15px 0;
width: 105px;
height: 105px;
border-radius: 10.5px 10.5px 22.5px 0;
background-size: 100% 100%;
background-repeat: no-repeat;
position: relative;
@ -180,18 +180,18 @@
top: 0;
}
.avatar-card .avatar-talent {
height: 21px;
height: 30px;
padding: 3px 5px 2px;
font-size: 12px;
font-size: 18px;
width: 100%;
color: #222;
text-align: center;
display: flex;
}
.avatar-card .avatar-talent .talent-item {
width: 20px;
height: 16px;
line-height: 17px;
width: 30px;
height: 24px;
line-height: 25.5px;
margin: 0 2px;
text-align: center;
display: block;
@ -211,7 +211,7 @@
box-shadow: 0 0 2px 0 #000;
}
.avatar-card .avatar-talent.no-talent {
font-size: 12px;
font-size: 18px;
color: rgba(100, 100, 100, 0.5);
text-align: center;
padding: 3px 0 2px;
@ -230,10 +230,10 @@
color: #333;
}
.avatar-card .avatar-name strong {
font-size: 14px;
font-size: 30px;
display: block;
height: 23px;
line-height: 20px;
height: 34.5px;
line-height: 30px;
}
.avatar-card .avatar-name .cons {
position: initial;
@ -245,13 +245,13 @@
display: none;
}
.avatar-card.card-wide .card {
width: 146px;
width: 219px;
display: flex;
}
.avatar-card.card-wide .avatar-face {
height: 126px;
height: 189px;
width: 76px;
border-radius: 7px 0 0 7px;
border-radius: 10.5px 0 0 10.5px;
}
.avatar-card.card-wide .img {
background-size: 100% auto;
@ -260,7 +260,7 @@
margin-top: -9px;
}
.avatar-card.card-wide .avatar-info {
width: 70px;
width: 105px;
}
.avatar-card.card-wide .line {
display: block;
@ -271,55 +271,55 @@
transform: scale(0.8);
}
.avatar-card.wide2 .card {
width: 298px;
width: 447px;
}
.avatar-card.wide2 .avatar-face {
width: 146px;
width: 219px;
}
.avatar-card.wide2 .avatar-face .img {
margin-top: -50px;
height: 176px;
margin-top: -75px;
height: 264px;
}
.avatar-card.wide2 .avatar-info {
width: 146px;
padding-left: 5px;
width: 219px;
padding-left: 7.5px;
}
.avatar-detail {
.avatar-card .avatar-detail {
display: flex;
padding: 0 1px 2px;
}
.avatar-detail .item {
width: 31px;
height: 31px;
.avatar-card .avatar-detail .item {
width: 46.5px;
height: 46.5px;
border-radius: 4px;
margin: 1px;
}
.avatar-weapon .icon {
.avatar-card .avatar-weapon .icon {
border-radius: 4px;
}
.avatar-weapon .cons {
.avatar-card .avatar-weapon .cons {
top: initial;
bottom: 0;
padding: 1px 3px;
border-radius: 3px 0 0 0;
}
.avatar-artis {
.avatar-card .avatar-artis {
position: relative;
}
.avatar-artis .artis {
.avatar-card .avatar-artis .artis {
background: rgba(0, 0, 0, 0.5);
}
.avatar-artis.artis2 .img {
.avatar-card .avatar-artis.artis2 .img {
position: absolute;
transform: scale(0.7);
width: 92%;
height: 92%;
margin: 4%;
}
.avatar-artis.artis2 .img:first-child {
.avatar-card .avatar-artis.artis2 .img:first-child {
transform-origin: left top;
}
.avatar-artis.artis2 .img:last-child {
.avatar-card .avatar-artis.artis2 .img:last-child {
transform-origin: right bottom;
}
.item-list {

View File

@ -1,23 +1,27 @@
.avatar-card {
@px: 1.5px;
margin: 3px;
box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.8);
font-size: 13px;
border-radius: 7px;
font-size: @px*13;
border-radius: @px*7;
.card {
border-radius: 7px;
box-shadow: 0 2px 6px 0 rgb(132 93 90 / 30%);
border-radius: @px*7;
box-shadow: 0 2px @px*6 0 rgb(132 93 90 / 30%);
position: relative;
overflow: hidden;
background: #e7e5d9;
width: 70px;
width: @px*70;
}
.avatar-face {
width: 70px;
height: 70px;
border-radius: 7px 7px 15px 0;
width: @px*70;
height: @px*70;
border-radius: @px*7 @px*7 @px*15 0;
background-size: 100% 100%;
background-repeat: no-repeat;
position: relative;
@ -27,7 +31,6 @@
background-position: center bottom;
}
.avatar-level {
position: absolute;
bottom: 0;
@ -38,10 +41,8 @@
color: #fff;
}
}
.cons {
border-radius: 0 0 0 5px;
padding: 2px 5px;
@ -51,18 +52,18 @@
}
.avatar-talent {
height: 21px;
height: @px*20;
padding: 3px 5px 2px;
font-size: 12px;
font-size: @px*12;
width: 100%;
color: #222;
text-align: center;
display: flex;
.talent-item {
width: 20px;
height: 16px;
line-height: 17px;
width: @px*20;
height: @px*16;
line-height: @px*17;
margin: 0 2px;
text-align: center;
display: block;
@ -85,7 +86,7 @@
}
&.no-talent {
font-size: 12px;
font-size: @px*12;
color: rgba(100, 100, 100, .5);
text-align: center;
padding: 3px 0 2px;
@ -109,10 +110,10 @@
color: #333;
strong {
font-size: 14px;
font-size: @px*20px;
display: block;
height: 23px;
line-height: 20px;
height: @px*23;
line-height: @px*20;
}
.cons {
@ -129,14 +130,14 @@
}
.card {
width: 146px;
width: @px*146;
display: flex;
}
.avatar-face {
height: 126px;
height: @px * 126;
width: 76px;
border-radius: 7px 0 0 7px;
border-radius: @px*7 0 0 @px*7;
}
.img {
@ -147,7 +148,7 @@
}
.avatar-info {
width: 70px;
width: @px*70;
}
.line {
@ -162,35 +163,34 @@
&.wide2 {
.card {
width: 298px;
width: @px*298;
}
.avatar-face {
width: 146px;
width: @px*146;
.img {
margin-top: -50px;
height: 176px;
margin-top: @px*-50;
height: @px*176;
}
}
.avatar-info {
width: 146px;
padding-left: 5px;
width: @px*146;
padding-left: @px*5;
}
}
}
.avatar-detail {
display: flex;
padding: 0 1px 2px;
.item {
width: 31px;
height: 31px;
width: @px*31;
height: @px*31;
border-radius: 4px;
margin: 1px;
}
@ -236,3 +236,4 @@
}
}

View File

@ -6,28 +6,41 @@
}
body,
.container {
width: 690px;
width: 970px;
}
.container {
padding: 5px 0 10px 5px;
}
.head-box {
margin-top: 0;
padding-top: 0;
display: flex;
width: 100%;
}
.head-box .title {
font-size: 45px;
padding-bottom: 10px;
width: 70%;
}
.head-box .title span {
font-size: 20px;
margin-left: 5px;
font-size: 30px;
margin-left: 10px;
color: #d3bc8e;
}
.head-box .uid {
text-align: right;
width: 30%;
padding-top: 25px;
padding-right: 10px;
font-size: 25px;
}
.abyss-stat-cont {
display: flex;
padding: 25px 5px 5px;
padding: 5px;
}
.abyss-stat {
display: flex;
}
.abyss-stat .cont {
margin: 5px;
margin: 5px 10px 5px 5px;
}
.abyss-stat strong {
text-shadow: 0 0 3px #000;
@ -58,14 +71,14 @@ body,
padding: 5px 10px;
width: 100%;
text-shadow: 0 0 1px #000;
font-size: 12px;
font-size: 14px;
}
.abyss-stat .stat-msg .msg {
display: block;
line-height: 22px;
line-height: 25px;
}
.abyss-stat .stat-msg .msg strong {
font-size: 16px;
font-size: 20px;
padding: 0 2px;
font-weight: normal;
color: #d3bc8e;
@ -156,34 +169,37 @@ body,
.abyss-level .info {
margin-bottom: 5px;
display: flex;
padding-left: 8px;
}
.abyss-level .title {
font-size: 16px;
white-space: nowrap;
font-weight: bold;
}
.abyss-level .star {
height: 15px;
height: 18px;
display: inline-block;
background: url(./imgs/star.png);
background-size: 15px 15px;
background-size: 18px 18px;
margin-left: 5px;
}
.abyss-level .star.star1 {
width: 15px;
margin-right: 30px;
width: 18px;
margin-right: 36px;
}
.abyss-level .star.star2 {
width: 30px;
margin-right: 15px;
width: 36px;
margin-right: 18px;
}
.abyss-level .star.star3 {
width: 45px;
width: 54px;
margin-right: 0;
}
.abyss-level .time {
text-align: right;
width: 60%;
color: #aaa;
font-size: 14px;
}
.abyss-level .avatars {
display: flex;
@ -194,7 +210,7 @@ body,
position: relative;
}
.abyss-level .avatars .avatar-list.up {
padding-right: 10px;
padding-right: 15px;
}
.abyss-level .avatars .avatar-list.up:after {
content: "";
@ -203,23 +219,26 @@ body,
width: 1px;
height: 16px;
background: rgba(255, 255, 255, 0.3);
right: 5px;
right: 8px;
top: 50%;
margin-top: -8px;
}
.abyss-level .avatars .avatar-icon {
width: 23px;
height: 23px;
width: 33px;
height: 33px;
border-radius: 50%;
margin-right: 1px;
margin-right: 2px;
}
.abyss-level .avatars .avatar-icon .img {
background-size: auto 100%;
background-position: center;
width: 20px;
height: 20px;
width: 29px;
height: 29px;
margin: 2px;
}
.abyss-notice .cont-body {
font-size: 16px;
}
.avatar-banner.avatar-枫原万叶,
.img.wide.avatar-枫原万叶 {
background-position: 0 -13%;

View File

@ -8,31 +8,14 @@
{{block 'main'}}
{{ set upDown = {up:'上半', down:'下半'} }}
<div class="head-box type">
<div class="title">#上传深渊<span>{{abyss.schedule}} · {{abyss.total}}次战斗</span></div>
<div class="uid">UID:{{uid}}</div>
</div>
<div class="info_box">
<div class="abyss-stat-cont">
<div>
<div class="head-box type">
<div class="title">#上传深渊<span>{{abyss.schedule}}</span></div>
<div class="label">UID:{{uid}} <span>· {{abyss.total}}次战斗</span></div>
</div>
<div class="abyss-data cont">
{{set st = abyss?.stat || {} }}
{{set dataMap = {defeat:"最多击破",e:"元素战技",q:"元素爆发"} }}
{{each dataMap title key}}
<div class="abyss-item">
<div class="info">
<strong>{{title}}</strong>
<span>{{st[key]?.value || 0}}</span>
</div>
{{if st[key]}}
<% include(_tpl_path+'/avatar-card.html', [avatars[st[key]?.id],{_res_path}]) %>
{{/if}}
</div>
{{/each}}
</div>
</div>
<div class="abyss-stat">
{{each stat ds}}
{{set avatar = avatars[ds.id]}}
@ -44,6 +27,8 @@
</div>
<div class="avatar-banner avatar-{{avatar.name}}"
style="background-image:url({{_res_path}}{{avatar.gacha}})"></div>
{{if ds.msg}}
<div class="stat-msg">
{{each ds.msg msg}}
{{if msg.txt}}
@ -54,6 +39,7 @@
{{/each}}
</div>
{{/if}}
{{/if}}
</div>
{{/each}}
</div>

View File

@ -1,7 +1,8 @@
@import "../common/base.less";
@scale: 1.4;
body, .container {
width: 690px;
width: 970px;
}
.container {
@ -9,27 +10,40 @@ body, .container {
}
.head-box {
margin-top: 0;
padding-top: 0;
display: flex;
width: 100%;
.title {
font-size: 45px;
padding-bottom: 10px;
width: 70%;
span {
font-size: 20px;
margin-left: 5px;
font-size: 30px;
margin-left: 10px;
color: #d3bc8e;
}
}
.uid {
text-align: right;
width: 30%;
padding-top: 25px;
padding-right: 10px;
font-size: 25px;
}
}
.abyss-stat-cont {
display: flex;
padding: 25px 5px 5px;
padding: 5px;
}
.abyss-stat {
display: flex;
.cont {
margin: 5px;
margin: 5px 10px 5px 5px;
}
strong {
@ -65,14 +79,14 @@ body, .container {
padding: 5px 10px;
width: 100%;
text-shadow: 0 0 1px #000;
font-size: 12px;
font-size: 14px;
.msg {
display: block;
line-height: 22px;
line-height: 25px;
strong {
font-size: 16px;
font-size: 20px;
padding: 0 2px;
font-weight: normal;
color: #d3bc8e;
@ -188,32 +202,36 @@ body, .container {
.info {
margin-bottom: 5px;
display: flex;
padding-left: 8px;
}
.title {
font-size: 16px;
white-space: nowrap;
font-weight: bold;
}
.star {
height: 15px;
@size: 18px;
height: @size;
display: inline-block;
background: url(./imgs/star.png);
background-size: 15px 15px;
background-size: @size @size;
margin-left: 5px;
&.star1 {
width: 15px;
margin-right: 30px;
width: @size;
margin-right: @size * 2;
}
&.star2 {
width: 30px;
margin-right: 15px;
width: @size * 2;
margin-right: @size;
}
&.star3 {
width: 45px;
width: @size * 3;
margin-right: 0;
}
}
@ -222,6 +240,7 @@ body, .container {
text-align: right;
width: 60%;
color: #aaa;
font-size: 14px;
}
.avatars {
@ -233,7 +252,7 @@ body, .container {
position: relative;
&.up {
padding-right: 10px;
padding-right: 15px;
}
&.up:after {
@ -243,29 +262,35 @@ body, .container {
width: 1px;
height: 16px;
background: rgba(255, 255, 255, .3);
right: 5px;
right: 8px;
top: 50%;
margin-top: -8px;
}
}
.avatar-icon {
width: 23px;
height: 23px;
width: 33px;
height: 33px;
border-radius: 50%;
margin-right: 1px;
margin-right: 2px;
.img {
background-size: auto 100%;
background-position: center;
width: 20px;
height: 20px;
width: 29px;
height: 29px;
margin: 2px;
}
}
}
}
.abyss-notice {
.cont-body {
font-size: 16px;
}
}
.avatar-banner, .img.wide {
&.avatar-枫原万叶 {
background-position: 0 -13%;