From 9e7e5eba2c11612369fec260a89eaaeeb6bfd7f6 Mon Sep 17 00:00:00 2001
From: Tipx-L <138244655+Tipx-L@users.noreply.github.com>
Date: Wed, 20 Sep 2023 02:38:09 -0700
Subject: [PATCH 1/5] Optimize ui.click.charactercard alongside all related
code.
---
character/diy.js | 2 +-
character/sp.js | 50 +-
character/sp2.js | 3 +
character/tw.js | 48 ++
character/xianding.js | 2 +-
game/game.js | 270 +++++--
layout/default/menu.css | 1601 +++++++++++++++++++++++++--------------
7 files changed, 1259 insertions(+), 717 deletions(-)
diff --git a/character/diy.js b/character/diy.js
index 6aee4ad77..c997b5a45 100755
--- a/character/diy.js
+++ b/character/diy.js
@@ -19199,7 +19199,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
雾岛佳乃:['Kirishima','Kano'],
苍井绘梨花:['Aoi','Erika'],
藏里见:['Kura','Satomi'],
- 喵呜·喵呼:['Myau','Mya-fu'],
+ '喵呜·喵呼':['Myau','Mya-fu'],
喵呜喵呼:['Myau','Mya-fu'],
伊吹风子:['Ibuki','Fuuko'],
久岛鸥:['Kushima','Kamome'],
diff --git a/character/sp.js b/character/sp.js
index 521bdb11a..90e62fffd 100755
--- a/character/sp.js
+++ b/character/sp.js
@@ -192,9 +192,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xizhicai:['male','wei',3,['tiandu','xianfu','chouce']],
quyi:['male','qun',4,['fuqi','jiaozi']],
- luzhi:['male','wei',3,['qingzhong','weijing']],
-
- //kaisa:["male","western",4,["zhengfu"]],
+ luzhi:['male','wei',3,['qingzhong','weijing']]
},
characterIntro:{
caoxi:'曹羲(?-249年),字昭叔。曹真之子,曹爽之弟。为人有学识,明律法。司马懿曾组织朝议改革九品中正制废除九品而留中正,曹羲认为此举并无区别,最终都是决定于人的人治。曹爽掌权后,受封中领军,掌握禁兵,封安乡侯。曹爽及诸兄弟轻视司马懿,恣意妄为,经常外出狩猎,曹羲屡次劝谏,不被采纳。249年,司马懿发动高平陵政变,被夷三族。',
@@ -12907,47 +12905,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
- //英文版特典武将凯撒
- zhengfu:{
- trigger:{
- player:"useCardToPlayered",
- },
- check:function (event,player){
- return get.attitude(player,event.target)<0;
- },
- filter:function(event,player){
- return event.card.name=='sha';
- },
- logTarget:"target",
- line:false,
- content:function (){
- 'step 0'
- player.line(trigger.target,{color:[220, 90, 139]});
- player.chooseControl(['basic','trick','equip']).set('ai',function(){
- var player=_status.event.target;
- if(!player.countCards('h','sha')&&player.countCards('h','shan')) return 'trick';
- return 'basic';
- }).set('prompt','请选择一种牌的类别').set('target',trigger.target);
- 'step 1'
- trigger.target.chooseCard('he','交给'+get.translation(player)+'一张'+get.translation(result.control)+'牌,否则此【杀】不可被闪避。',function(card){
- return get.type(card,'trick')==result.control;
- }).set('ai',function(card){
- var num=_status.event.num;
- if(num==0) return 0;
- if(card.name=='shan') return num>1?2:0;
- return 8-get.value(card);
- }).set('num',trigger.target.countCards('h','shan'))
- 'step 2'
- if(result.bool){
- var cards=result.cards;
- trigger.target.give(cards,player);
- }
- else{
- trigger.getParent().directHit.add(trigger.target);
- game.delay();
- }
- },
- },
//变权移植
wanwei:{
trigger:{target:['rewriteGainResult','rewriteDiscardResult']},
@@ -24141,7 +24098,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
lvfan:'吕范',
liqueguosi:'李傕郭汜',
cuimao:'崔琰毛玠',
- kaisa:"凯撒",
caoying:"曹婴",
@@ -24211,8 +24167,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"zhenwei_three_info":"锁定技,敌方角色至己方其他角色的距离+1。",
"huanshi_three":"缓释",
"huanshi_three_info":"一名友方角色的判定牌生效前,你可打出一张牌代替之。",
- zhengfu:"征服",
- "zhengfu_info":"当你使用【杀】指定目标时,你可以选择一种牌的类别,然后除非目标角色交给你一种该类别的牌,否则其不能闪避此【杀】。",
yizan:"翊赞",
yizan_info:"你可以将两张牌(其中至少一张是基本牌)当任意基本牌牌使用",
@@ -25141,6 +25095,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_guozhan2:"国战移植",
sp_others:"其他",
sp_waitforsort:'等待分包',
- },
+ }
};
});
diff --git a/character/sp2.js b/character/sp2.js
index a73de5d08..fec3c335a 100644
--- a/character/sp2.js
+++ b/character/sp2.js
@@ -10523,5 +10523,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_danqi:'千里单骑',
sp_decade:'其他新服武将',
},
+ pinyins:{
+ 卑弥呼:['Himiko']
+ }
};
});
diff --git a/character/tw.js b/character/tw.js
index 1e8e80656..606ca0d69 100644
--- a/character/tw.js
+++ b/character/tw.js
@@ -13956,6 +13956,47 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
},
+ //英文版特典武将凯撒
+ zhengfu:{
+ trigger:{
+ player:"useCardToPlayered",
+ },
+ check:function (event,player){
+ return get.attitude(player,event.target)<0;
+ },
+ filter:function(event,player){
+ return event.card.name=='sha';
+ },
+ logTarget:"target",
+ line:false,
+ content:function(){
+ 'step 0'
+ player.line(trigger.target,{color:[220, 90, 139]});
+ player.chooseControl(['basic','trick','equip']).set('ai',function(){
+ var player=_status.event.target;
+ if(!player.countCards('h','sha')&&player.countCards('h','shan')) return 'trick';
+ return 'basic';
+ }).set('prompt','请选择一种牌的类别').set('target',trigger.target);
+ 'step 1'
+ trigger.target.chooseCard('he','交给'+get.translation(player)+'一张'+get.translation(result.control)+'牌,否则此【杀】不可被闪避。',function(card){
+ return get.type(card,'trick')==_status.event.getParent().result.control;
+ }).set('ai',function(card){
+ var num=_status.event.num;
+ if(num==0) return 0;
+ if(card.name=='shan') return num>1?2:0;
+ return 8-get.value(card);
+ }).set('num',trigger.target.countCards('h','shan'))
+ 'step 2'
+ if(result.bool){
+ var cards=result.cards;
+ trigger.target.give(cards,player);
+ }
+ else{
+ trigger.getParent().directHit.add(trigger.target);
+ game.delay();
+ }
+ }
+ }
},
perfectPair:{
tw_liufuren:['yuanshao'],
@@ -14516,6 +14557,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
twquanqian_info:'昂扬技。出牌阶段限一次,你可以将至多四张花色各不相同的手牌交给一名其他角色,然后若你交出的牌数大于1,则你从牌堆中获得一张装备牌,然后选择一项:①将手牌数摸至与其相同;②观看其手牌并获得其一种花色的所有牌。
激昂:你弃置六张手牌。',
twrouke:'柔克',
twrouke_info:'锁定技。当你于摸牌阶段外得到超过一张牌时,你摸一张牌。',
+ kaisa:"凯撒",
+ zhengfu:"征服",
+ zhengfu_info:"当你使用【杀】指定目标时,你可以选择一种牌的类别,然后除非目标角色交给你一种该类别的牌,否则其不能闪避此【杀】。",
tw_mobile:'海外服·稀有专属',
tw_yunchouzhi:'运筹帷幄·智',
@@ -14529,6 +14573,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tw_mobile2:'海外服·异构',
tw_yijiang:'一将成名TW',
tw_english:'英文版',
+ },
+ pinyins:{
+ 凯撒:['Caesar'],
+ 难升米:['Nashime']
}
};
});
diff --git a/character/xianding.js b/character/xianding.js
index c76af4b5b..897d03d13 100644
--- a/character/xianding.js
+++ b/character/xianding.js
@@ -11557,7 +11557,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhouyi:'周夷,游卡桌游旗下产品《三国杀》自行杜撰的人物。设定为周瑜的妹妹,和周瑜一同征战。',
caojinyu:'金乡公主,本姓曹氏,名字不详,沛国谯县(今安徽省亳州市)人。魏武帝曹操的女儿,母为杜夫人。适婚的时候,嫁给曹操的养子何晏。高平陵之变,何晏作为大将军曹爽的党羽,遭到太傅司马懿处死。在何晏母亲尹夫人苦苦哀求下,何晏的儿子得以保全。',
wufan:'吴范(?-226年),字文则,会稽上虞(今浙江绍兴上虞区)人。三国时期孙吴官员,擅长术数。与刘惇、赵达、严武、曹不兴、皇象、宋寿和郑妪合称“吴中八绝”。吴范以推算天象节气和观察气候闻名于郡中。孙权起于东南,他委身事奉,每推算灾祥多应验,遂显名。孙权委以骑都尉,领太史令。初,孙权为将军时,他曾说江南有王气。及孙权立为吴王,论功行封,欲以为都亭侯,但因不愿将其术要诀告知孙权,为权所怨恨,被除名。黄武中,病死。',
- caomao:'曹髦(241年11月15日-260年6月2日)[1],字彦士,沛国谯县(今安徽省亳州市)人,魏文帝曹丕之孙,东海王曹霖之子,曹魏第四位皇帝(254年11月1日-260年6月2日)。正始二年(241年),生于东海王宫,自幼聪明好学,才慧早成,正始五年(244年),封为高贵乡公,嘉平六年(254年),大将军司马师废除齐王曹芳后,拥立为帝,年号正元,曹髦文才武略,崇拜少康,不满司马氏专权秉政,甘露五年(260年),亲自讨伐司马昭,为太子舍人成济所弑,年仅十九岁,以王礼葬于洛阳西北。曹髦擅长诗文,创制了九言诗,传世文章有《伤魂赋并序》《颜子论》等。爱好儒学,亲赴太学论道,著有《春秋左氏传音》(失传)。精通绘画,一说为中国第一位成为画家的皇帝,唐张彦远《历代名画记》目曹髦为中品。',
+ caomao:'曹髦(241年11月15日-260年6月2日),字彦士,沛国谯县(今安徽省亳州市)人,魏文帝曹丕之孙,东海王曹霖之子,曹魏第四位皇帝(254年11月1日-260年6月2日)。正始二年(241年),生于东海王宫,自幼聪明好学,才慧早成,正始五年(244年),封为高贵乡公,嘉平六年(254年),大将军司马师废除齐王曹芳后,拥立为帝,年号正元,曹髦文才武略,崇拜少康,不满司马氏专权秉政,甘露五年(260年),亲自讨伐司马昭,为太子舍人成济所弑,年仅十九岁,以王礼葬于洛阳西北。曹髦擅长诗文,创制了九言诗,传世文章有《伤魂赋并序》《颜子论》等。爱好儒学,亲赴太学论道,著有《春秋左氏传音》(失传)。精通绘画,一说为中国第一位成为画家的皇帝,唐张彦远《历代名画记》目曹髦为中品。',
laiyinger:'来莺儿,是个传说中的人物,正史及古代典籍并无记载。相传来莺儿是东汉歌妓,建安年间洛阳名妓,后爱上曹操的侍卫王图,王图因延误军机而押赴刑场,当时来莺儿奋不顾身以己命换王图一死。新编古装潮剧《曹营恋歌》,秦腔《雀台歌女》讲述了歌女来莺儿与情人王图及曹操三人之间催人泪下的故事。',
caohua:'曹华,东汉末年人物,曹操之女,为汉献帝妃嫔。建安十八年(213年),曹操进为魏公,把曹宪、曹节、曹华三个女儿,一齐都送给汉献帝刘协做了妃子,皆封为夫人,聘以束帛五万匹,年龄尚小者在魏公国待年长而聘。',
zhaoang:'赵昂,字伟章(一作伟璋),天水冀人。汉末时曹操部下。初为羌道令,建安中转参军事徒居州治冀城。建安十八年,马超围冀城多天,城中饥困,凉州刺史韦康不愿百姓再受苦而打算投降,赵昂进劝但不为所纳。后马超背信弃义杀韦康并劫其子赵月为人质,把他送至南郑。欲以此要迫使赵昂为己所用。后与梁宽、赵衢、庞恭、杨阜等结谋为康报仇,并举兵讨伐马超。马超兵败遂弃城,投奔张鲁。得张鲁之援后马超于建安十九年复寇,赵昂与妻子王异坚守祁山三十天至夏侯渊的救兵解围,其子赵月终为马超斩杀。自冀城之难,至于祁山,赵昂出九奇策。',
diff --git a/game/game.js b/game/game.js
index 5feb33e50..913b67f07 100644
--- a/game/game.js
+++ b/game/game.js
@@ -255,13 +255,22 @@
lib.groupnature[id]=id;
}
}
+ if(typeof config.image=='string') Object.defineProperty(lib.card,`group_${id}`,{
+ configurable:true,
+ enumerable:false,
+ writable:true,
+ value:{
+ fullskin:true,
+ image:config.image
+ }
+ });
}],
},
hookmap:{},
imported:{},
layoutfixed:['chess','tafang','stone'],
pinyins:{
- metadata:{
+ _metadata:{
shengmu:['zh','ch','sh','b','p','m','f','d','t','l','n','g','k','h','j','q','x','r','z','c','s','y','w'],
special_shengmu:['j','q','x','y'],
feijiemu:{
@@ -39638,28 +39647,30 @@
}
return node;
},
- putDB:function(type,id,item,callback){
+ putDB:function(type,id,item,onsuccess,onerror){
if(!lib.db) return item;
if(lib.status.reload){
lib[_status.dburgent?'ondb2':'ondb'].push(['putDB',Array.from(arguments)]);
return;
}
lib.status.reload++;
- lib.db.transaction([type],'readwrite').objectStore(type).put(item,id).onsuccess=function(){
- if(callback){
+ const record=lib.db.transaction([type],'readwrite').objectStore(type).put(item,id);
+ record.onsuccess=function(){
+ if(onsuccess){
_status.dburgent=true;
- callback.apply(this,arguments);
+ onsuccess.apply(this,arguments);
delete _status.dburgent;
}
game.reload2();
};
+ if(typeof onerror=='function') record.onerror=onerror;
},
- getDB:function(type,id,callback){
+ getDB:function(type,id,onsuccess,onerror){
if(!lib.db){
- if(callback) callback(null);
+ if(onsuccess) onsuccess(null);
return;
}
- if(!callback) return;
+ if(!onsuccess) return;
if(lib.status.reload){
lib[_status.dburgent?'ondb2':'ondb'].push(['getDB',Array.from(arguments)]);
return;
@@ -39667,31 +39678,34 @@
lib.status.reload++;
const store=lib.db.transaction([type],'readwrite').objectStore(type);
if(id){
- store.get(id).onsuccess=e=>{
+ const record=store.get(id);
+ record.onsuccess=e=>{
_status.dburgent=true;
- callback(e.target.result);
+ onsuccess(e.target.result);
delete _status.dburgent;
game.reload2();
};
+ if(typeof onerror=='function') record.onerror=onerror;
return;
}
- const obj={};
- store.openCursor().onsuccess=e=>{
- const cursor=e.target.result;
- if(cursor){
- obj[cursor.key]=cursor.value;
- cursor.continue();
+ const cursor=store.openCursor(),obj={};
+ cursor.onsuccess=e=>{
+ const result=e.target.result;
+ if(result){
+ obj[result.key]=result.value;
+ result.continue();
return;
}
_status.dburgent=true;
- callback(obj);
+ onsuccess(obj);
delete _status.dburgent;
game.reload2();
- }
+ };
+ if(typeof onerror=='function') cursor.onerror=onerror;
},
- deleteDB:function(type,id,callback){
+ deleteDB:function(type,id,onsuccess,onerror){
if(!lib.db){
- if(callback) callback(false);
+ if(onsuccess) onsuccess(false);
return;
}
if(lib.status.reload){
@@ -39700,10 +39714,12 @@
}
if(arguments.length>1){
lib.status.reload++;
- lib.db.transaction([type],'readwrite').objectStore(type).delete(id).onsuccess=function(){
- if(callback) callback.apply(this,arguments);
+ const record=lib.db.transaction([type],'readwrite').objectStore(type).delete(id);
+ record.onsuccess=function(){
+ if(onsuccess) onsuccess.apply(this,arguments);
game.reload2();
};
+ if(typeof onerror=='function') record.onerror=onerror;
return;
}
game.getDB(type,null,obj=>{
@@ -53214,21 +53230,86 @@
else if(lib.config.favouriteCharacter.contains(name)){
fav.classList.add('active');
}
- var intro=ui.create.div('.characterintro',get.characterIntro(name),uiintro);
+ const intro=ui.create.div('.characterintro',uiintro);
if(lib.config.show_characternamepinyin){
- var charactername=get.rawName(name);
- var characterpinyin=get.pinyin(charactername);
- var nameinfo=get.character(name);
- var charactersex=get.translation(nameinfo[0]);
- const charactergroups=get.is.double(name,true);
- let charactergroup;
- if(charactergroups) charactergroup=charactergroups.map(i=>get.translation(i)).join('/')
- else charactergroup=get.translation(nameinfo[1]);
- var characterhp=nameinfo[2];
- var characterintroinfo=get.characterIntro(name);
- intro.innerHTML=''+charactername+''+''+'['+characterpinyin+']'+''+' | '+charactersex+' | '+charactergroup+' | '+characterhp+'
'+characterintroinfo;
+ const span=document.createElement('span');
+ span.style.fontWeight='bold';
+ const nameInfo=get.character(name),nameExInfo=nameInfo[4],characterName=nameExInfo&&nameExInfo.includes('translateNameAsIs:get.charactercard')?lib.translate[name]:get.rawName(name);
+ span.textContent=characterName;
+ const ruby=document.createElement('ruby');
+ ruby.appendChild(span);
+ const leftParenthesisRP=document.createElement('rp');
+ leftParenthesisRP.textContent='(';
+ ruby.appendChild(leftParenthesisRP);
+ const rt=document.createElement('rt');
+ rt.textContent=get.pinyin(characterName).join(' ');
+ ruby.appendChild(rt);
+ const rightParenthesisRP=document.createElement('rp');
+ rightParenthesisRP.textContent=')';
+ ruby.appendChild(rightParenthesisRP);
+ const tr=document.createElement('tr'),characterNameTD=document.createElement('td');
+ characterNameTD.appendChild(ruby);
+ tr.appendChild(characterNameTD);
+ const characterSexTD=document.createElement('td');
+ characterSexTD.textContent=get.translation(nameInfo[0]);
+ tr.appendChild(characterSexTD);
+ const characterGroupTD=document.createElement('td');
+ const characterGroups=get.is.double(name,true);
+ if(characterGroups) Promise.all(characterGroups.map(value=>new Promise((resolve,reject)=>{
+ const info=lib.card[`group_${value}`];
+ if(!info) resolve(`image/card/group_${value}.png`);
+ const image=info.image;
+ if(!image) resolve(`image/card/group_${value}.png`);
+ else if(image.indexOf('db:')==0) game.getDB('image',image.slice(3),src=>resolve(src),reject);
+ else if(image.indexOf('ext:')==0) resolve(image.replace(/ext:/,'extension/'));
+ else resolve(image);
+ }).then(element=>new Promise((resolve,reject)=>{
+ const image=new Image();
+ image.onload=()=>resolve(image);
+ image.onerror=reject;
+ image.src=element;
+ })))).then(value=>{
+ const documentFragment=document.createDocumentFragment();
+ value.forEach(documentFragment.appendChild,documentFragment);
+ characterGroupTD.appendChild(documentFragment);
+ }).catch(()=>characterGroupTD.textContent=characterGroups.reduce((previousValue,currentValue)=>previousValue?`${previousValue}/${get.translation(currentValue)}`:get.translation(currentValue),''));
+ else{
+ const characterGroup=nameInfo[1];
+ new Promise((resolve,reject)=>{
+ const info=lib.card[`group_${characterGroup}`];
+ if(!info) resolve(`image/card/group_${characterGroup}.png`);
+ const image=info.image;
+ if(!image) resolve(`image/card/group_${characterGroup}.png`);
+ else if(image.indexOf('db:')==0) game.getDB('image',image.slice(3),src=>resolve(src),reject);
+ else if(image.indexOf('ext:')==0) resolve(image.replace(/ext:/,'extension/'));
+ else resolve(image);
+ }).then(value=>new Promise((resolve,reject)=>{
+ const image=new Image();
+ image.onload=()=>resolve(image);
+ image.onerror=reject;
+ image.src=value;
+ })).then(value=>characterGroupTD.appendChild(value)).catch(()=>characterGroupTD.textContent=get.translation(characterGroup));
+ }
+ tr.appendChild(characterGroupTD);
+ const characterHPTD=document.createElement('td'),hpDiv=ui.create.div('.hp',characterHPTD),nameInfoHP=nameInfo[2],infoHP=get.infoHp(nameInfoHP);
+ hpDiv.dataset.condition=infoHP<4?'mid':'high';
+ ui.create.div(hpDiv);
+ const hpTextDiv=ui.create.div('.text',hpDiv),infoMaxHP=get.infoMaxHp(nameInfoHP);
+ hpTextDiv.textContent=infoHP==infoMaxHP?infoHP:`${infoHP}/${infoMaxHP}`;
+ const infoShield=get.infoHujia(nameInfoHP);
+ if(infoShield){
+ ui.create.div('.shield',hpDiv);
+ const shieldTextDiv=ui.create.div('.text',hpDiv);
+ shieldTextDiv.textContent=infoShield;
+ }
+ tr.appendChild(characterHPTD);
+ const table=document.createElement('table');
+ table.appendChild(tr);
+ intro.appendChild(table);
+ intro.appendChild(document.createElement('hr'));
}
- var intro2=ui.create.div('.characterintro.intro2',uiintro);
+ intro.appendChild(new Text(get.characterIntro(name)));
+ const intro2=ui.create.div('.characterintro.intro2',uiintro);
var list=get.character(name,3)||[];
var skills=ui.create.div('.characterskill',uiintro);
if(lib.config.touchscreen){
@@ -53241,38 +53322,75 @@
skills.onmousewheel=ui.click.mousewheel;
}
var clickSkill=function(e){
+ while(intro2.firstChild){
+ intro2.removeChild(intro2.lastChild);
+ }
var current=this.parentNode.querySelector('.active');
if(current){
current.classList.remove('active');
}
this.classList.add('active');
- var skillname=get.translation(this.link);
- var skilltranslationinfo=get.skillInfoTranslation(this.link);
- if(lib.config.show_skillnamepinyin&&skillname!='阵亡'){
- var skillpinyin=get.pinyin(skillname);
- intro2.innerHTML=''+skillname+''+''+'['+skillpinyin+']'+''+' '+skilltranslationinfo;
- }else{
- intro2.innerHTML=''+skillname+''+skilltranslationinfo;
+ const skillNameSpan=document.createElement('span'),skillNameSpanStyle=skillNameSpan.style;
+ skillNameSpanStyle.fontWeight='bold';
+ const skillName=get.translation(this.link);
+ skillNameSpan.textContent=skillName;
+ if(lib.config.show_skillnamepinyin&&skillName!='阵亡'){
+ const ruby=document.createElement('ruby');
+ ruby.appendChild(skillNameSpan);
+ const leftParenthesisRP=document.createElement('rp');
+ leftParenthesisRP.textContent='(';
+ ruby.appendChild(leftParenthesisRP);
+ const rt=document.createElement('rt');
+ rt.textContent=get.pinyin(skillName).join(' ');
+ ruby.appendChild(rt);
+ const rightParenthesisRP=document.createElement('rp');
+ rightParenthesisRP.textContent=')';
+ ruby.appendChild(rightParenthesisRP);
+ const div=ui.create.div(intro2);
+ div.style.marginRight='5px';
+ div.appendChild(ruby);
}
+ else{
+ skillNameSpanStyle.marginRight='5px';
+ intro2.appendChild(skillNameSpan);
+ }
+ intro2.appendChild(new Text(get.skillInfoTranslation(this.link)));
var info=get.info(this.link);
var skill=this.link;
var playername=this.linkname;
var skillnode=this;
- if(info.derivation){
- var derivation=info.derivation;
- if(typeof derivation=='string'){
- derivation=[derivation];
- }
- for(var i=0;i
'+derivationname+''+''+'['+derivationpinyin+']'+''+' '+derivationtranslationinfo;
- }else{
- intro2.innerHTML+='
'+derivationname+''+derivationtranslationinfo;
+ let derivation=info.derivation;
+ if(derivation){
+ if(typeof derivation=='string') derivation=[derivation];
+ derivation.forEach(value=>{
+ intro2.appendChild(document.createElement('br'));
+ intro2.appendChild(document.createElement('br'));
+ const derivationNameSpan=document.createElement('span'),derivationNameSpanStyle=derivationNameSpan.style;
+ derivationNameSpanStyle.fontWeight='bold';
+ const derivationName=get.translation(value);
+ derivationNameSpan.textContent=derivationName;
+ if(lib.config.show_skillnamepinyin&&derivationName.length<=5&&value.indexOf('_faq')==-1){
+ const ruby=document.createElement('ruby');
+ ruby.appendChild(derivationNameSpan);
+ const leftParenthesisRP=document.createElement('rp');
+ leftParenthesisRP.textContent='(';
+ ruby.appendChild(leftParenthesisRP);
+ const rt=document.createElement('rt');
+ rt.textContent=get.pinyin(derivationName).join(' ');
+ ruby.appendChild(rt);
+ const rightParenthesisRP=document.createElement('rp');
+ rightParenthesisRP.textContent=')';
+ ruby.appendChild(rightParenthesisRP);
+ const div=ui.create.div(intro2);
+ div.style.marginRight='5px';
+ div.appendChild(ruby);
}
- }
+ else{
+ derivationNameSpanStyle.marginRight='5px';
+ intro2.appendChild(derivationNameSpan);
+ }
+ intro2.appendChild(new Text(get.skillInfoTranslation(value)));
+ });
}
if(info.alter){
intro2.innerHTML+='
';
@@ -54394,40 +54512,36 @@
return [];
},
//装备栏 END
- pinyin:function(chinese,withtone){
- const util=window.pinyinUtilx;
- if(!window.pinyinUtilx) return [];
- if(lib.pinyins&&lib.pinyins[chinese]){
- const str=lib.pinyins[chinese];
- if(withtone===false){
- for(let i=0;i{
+ const pinyinUtilx=window.pinyinUtilx;
+ if(!pinyinUtilx) return [];
+ const pinyins=lib.pinyins;
+ if(pinyins){
+ const pinyin=pinyins[chinese];
+ if(Array.isArray(pinyin)) return withTone===false?pinyin.map(pinyinUtilx.removeTone):pinyin.slice();
}
- return util.getPinyin(chinese,null,withtone,true);
+ return pinyinUtilx.getPinyin(chinese,null,withTone,true);
},
yunmu:function(str){
//部分整体认读音节特化处理
const util=window.pinyinUtilx;
- if(util&&lib.pinyins.metadata.zhengtirendu.contains(util.removeTone(str))){
+ if(util&&lib.pinyins._metadata.zhengtirendu.contains(util.removeTone(str))){
return '-'+str[str.length-1];
}
//排除声母
- for(let i of lib.pinyins.metadata.shengmu){
+ for(let i of lib.pinyins._metadata.shengmu){
if(str.indexOf(i)==0){
str=str.slice(i.length);
- if(str[0]=='u'&&lib.pinyins.metadata.special_shengmu.contains(i)) str='ü'+str.slice(1);
+ if(str[0]=='u'&&lib.pinyins._metadata.special_shengmu.contains(i)) str='ü'+str.slice(1);
break;
}
}
//排除介母
if(str.length>0){
- for(let i in lib.pinyins.metadata.feijiemu){
+ for(let i in lib.pinyins._metadata.feijiemu){
if(str[0]==i){
let goon=false;
- for(let j of lib.pinyins.metadata.feijiemu[i]){
+ for(let j of lib.pinyins._metadata.feijiemu[i]){
if(str.indexOf(j)==0) goon=true;
}
if(!goon) str=str.slice(1);
@@ -54440,20 +54554,20 @@
yunjiao:function(str){
const util=window.pinyinUtilx;
if(util) str=util.removeTone(str)
- if(lib.pinyins.metadata.zhengtirendu.contains(str)){
+ if(lib.pinyins._metadata.zhengtirendu.contains(str)){
str=('-'+str[str.length-1]);
}
else{
- for(let i of lib.pinyins.metadata.shengmu){
+ for(let i of lib.pinyins._metadata.shengmu){
if(str.indexOf(i)==0){
str=str.slice(i.length);
- if(str[0]=='u'&&lib.pinyins.metadata.special_shengmu.contains(i)) str='ü'+str.slice(1);
+ if(str[0]=='u'&&lib.pinyins._metadata.special_shengmu.contains(i)) str='ü'+str.slice(1);
break;
}
}
}
- for(let i in lib.pinyins.metadata.yunjiao){
- if(lib.pinyins.metadata.yunjiao[i].contains(str)) return i;
+ for(let i in lib.pinyins._metadata.yunjiao){
+ if(lib.pinyins._metadata.yunjiao[i].contains(str)) return i;
}
return null;
},
diff --git a/layout/default/menu.css b/layout/default/menu.css
index 12df29b8b..28e1a7683 100644
--- a/layout/default/menu.css
+++ b/layout/default/menu.css
@@ -1,33 +1,41 @@
-.menu-container{
- z-index:8;
+.menu-container {
+ z-index: 8;
}
-.menu-container div{
- position: relative;
+
+.menu-container div {
+ position: relative;
}
-.menu-container.hidden{
- pointer-events: none;
+
+.menu-container.hidden {
+ pointer-events: none;
}
-#menu-button{
- z-index:6;
+
+#menu-button {
+ z-index: 6;
}
-.popup-container{
- z-index:10;
+
+.popup-container {
+ z-index: 10;
}
-.popup-container.filter-character{
+
+.popup-container.filter-character {
text-align: center;
overflow: scroll;
opacity: 0;
transition: all 0.3s;
}
-.popup-container.filter-character.shown{
+
+.popup-container.filter-character.shown {
opacity: 1;
}
-.popup-container.filter-character.removing>div{
+
+.popup-container.filter-character.removing>div {
pointer-events: none;
}
-.popup-container.filter-character>div{
+
+.popup-container.filter-character>div {
left: 0;
- top:0;
+ top: 0;
left: 0;
width: 100%;
height: auto;
@@ -36,11 +44,13 @@
transition: all 0s;
position: relative;
}
-.popup-container.filter-character>div>div{
+
+.popup-container.filter-character>div>div {
position: relative;
margin: 10px;
}
-.popup-container.filter-character>div>.capt{
+
+.popup-container.filter-character>div>.capt {
width: 80px;
height: 80px;
padding: 0;
@@ -48,145 +58,178 @@
line-height: 90px;
}
-.menu-container,.popup-container{
- width:100%;
- height:100%;
- left:0;
- top:0;
+.menu-container,
+.popup-container {
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
position: absolute;
}
-.menu-buttons,.menu-sym{
+
+.menu-buttons,
+.menu-sym {
padding-bottom: 5px !important;
width: calc(100% - 10px) !important;
padding-right: 5px !important;
}
-.menu-buttons.leftbutton{
+
+.menu-buttons.leftbutton {
text-align: left;
margin-left: 10px;
}
-.menu-buttons.leftbutton:not(.commandbutton){
+
+.menu-buttons.leftbutton:not(.commandbutton) {
width: calc(100% - 30px) !important;
}
+
.menu.main>.menu-content>div>.right.pane>.menu-buttons.leftbutton>.config.toggle:first-child,
-.menu.main>.menu-content>div>.right.pane>.menu-buttons.leftbutton>.config.toggle:first-child+.config.toggle{
- margin-left: 3px !important;
+.menu.main>.menu-content>div>.right.pane>.menu-buttons.leftbutton>.config.toggle:first-child+.config.toggle {
+ margin-left: 3px !important;
width: calc(100% - 15px) !important;
}
-.menu-buttons div{
+
+.menu-buttons div {
position: absolute;
}
-.menu-buttons>.glow{
+
+.menu-buttons>.glow {
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(0, 133, 255, 0.8) 0 0 10px, rgba(0, 133, 255, 0.8) 0 0 10px, rgba(0, 133, 255, 0.8) 0 0 15px !important;
}
-.menu-cheat>div{
- margin:5px;
+
+.menu-cheat>div {
+ margin: 5px;
}
-.menu-cheat>.selecting{
+
+.menu-cheat>.selecting {
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(255, 0, 0, 0.8) 0 0 5px, rgba(255, 0, 0, 0.8) 0 0 5px !important
}
-.menu-cheat.config>.menubutton{
- height:16px;
+
+.menu-cheat.config>.menubutton {
+ height: 16px;
line-height: 16px;
- transform: translateY(-10px);
+ transform: translateY(-10px);
}
-.menu-cheat.config{
+
+.menu-cheat.config {
transition-property: opacity;
}
+
.menu-buttons>.toggle,
-.menu-buttons>.config.more{
- position:relative;
+.menu-buttons>.config.more {
+ position: relative;
margin-bottom: 10px !important;
margin-left: 10px !important;
margin-right: 10px !important;
width: calc(100% - 25px) !important;
display: inline-block;
}
+
.menu-buttons>.config.more,
-.menu-buttons>.toggle.cardpilecfg{
+.menu-buttons>.toggle.cardpilecfg {
margin-bottom: 0 !important;
display: block;
}
-.menu-buttons>.config.more.pile{
+
+.menu-buttons>.config.more.pile {
margin-top: 5px !important;
margin-left: 3px !important;
}
-.menu-buttons>.toggle.cardpilecfgadd:not(.hidden){
+
+.menu-buttons>.toggle.cardpilecfgadd:not(.hidden) {
margin-top: 0 !important;
}
-.menu-buttons>.toggle.cardpilecfg:not(.nomarginleft){
+
+.menu-buttons>.toggle.cardpilecfg:not(.nomarginleft) {
margin-left: 20px !important;
width: calc(100% - 35px) !important;
}
-.menu-buttons>.config.more *{
+
+.menu-buttons>.config.more * {
position: relative;
}
-.menu-buttons>.button{
- zoom:0.75;
+
+.menu-buttons>.button {
+ zoom: 0.75;
}
+
.menu-buttons .cardpiledelete,
-.toggle>.cardpiledelete{
- display: inline-block;
+.toggle>.cardpiledelete {
position: relative;
float: right;
margin-right: 4px;
}
-.menu-buttons .menuplaceholder{
+
+.menu-buttons .menuplaceholder {
display: block;
margin: 0;
padding: 0;
width: 100%;
height: 10px;
}
-.menu-buttons .menuplaceholder.slim{
+
+.menu-buttons .menuplaceholder.slim {
height: 5px;
}
-#window:not(.nopointer) .cardpiledelete{
+
+#window:not(.nopointer) .cardpiledelete {
cursor: pointer;
}
-.menu-help{
+
+.menu-help {
width: calc(100% - 30px) !important;
text-align: left !important;
}
-.menu-help li{
+
+.menu-help li {
margin-bottom: 10px !important;
}
-.menu-container>.menu.main{
+
+.menu-container>.menu.main {
left: 15px;
top: 52px;
}
-.menu-container>.menu.main.center{
- left:calc(50% - 200px);
- top:calc(50% - 150px);
+
+.menu-container>.menu.main.center {
+ left: calc(50% - 200px);
+ top: calc(50% - 150px);
}
-.menu-container.hidden>.menu.main{
- transform:scale(0.5);
- transform-origin:2px -35px;
- opacity:0;
+
+.menu-container.hidden>.menu.main {
+ transform: scale(0.5);
+ transform-origin: 2px -35px;
+ opacity: 0;
}
-.menu-container>.menu.main{
+
+.menu-container>.menu.main {
transition: all 0.3s;
- transform-origin:2px -35px;
+ transform-origin: 2px -35px;
}
-.menu-container.hidden>.menu.main.center{
+
+.menu-container.hidden>.menu.main.center {
/*transform:translateY(300px);*/
transform-origin: center center;
}
-.menu-container>.menu.main.center{
+
+.menu-container>.menu.main.center {
transform-origin: center center;
}
-.menu.main{
+
+.menu.main {
width: 400px;
- height:300px;
+ height: 300px;
position: absolute;
- overflow:hidden;
- padding:0;
+ overflow: hidden;
+ padding: 0;
}
-.removing>.menubg.charactercard{
+
+.removing>.menubg.charactercard {
transform: scale(0.8);
opacity: 0;
transition: all 0.3s;
}
-.menubg.charactercard{
+
+.menubg.charactercard {
width: 500px;
height: 300px;
left: calc(50% - 250px);
@@ -194,7 +237,8 @@
animation: dialog_start2 0.3s;
-webkit-animation: dialog_start2 0.3s;
}
-.menubg.charactercard>.menubutton.large.ava{
+
+.menubg.charactercard>.menubutton.large.ava {
width: 180px;
height: 240px;
left: 10px;
@@ -202,7 +246,8 @@
overflow: hidden;
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 0 5px !important;
}
-.menubg.charactercard>.menubutton.large{
+
+.menubg.charactercard>.menubutton.large {
width: 85px;
height: 30px;
bottom: 10px;
@@ -210,13 +255,16 @@
padding: 0;
font-size: 20px;
}
-.menubg.charactercard>.menubutton.ban{
+
+.menubg.charactercard>.menubutton.ban {
left: 10px;
}
-.menubg.charactercard>.menubutton.fav{
+
+.menubg.charactercard>.menubutton.fav {
left: 105px;
}
-.menubg.charactercard>.ava>.changeskin{
+
+.menubg.charactercard>.ava>.changeskin {
bottom: 6px;
left: 6px;
font-family: 'xinwei';
@@ -229,21 +277,24 @@
pointer-events: none;
opacity: 0.6;
}
+
#window:not(.nopointer) .menubg.charactercard .menubutton:not(.ava):not(.intro):not(.unselectable),
-#window:not(.nopointer) .menubg.charactercard>.ava>.avatars>div{
+#window:not(.nopointer) .menubg.charactercard>.ava>.avatars>div {
cursor: pointer;
}
-.menubg.charactercard>.characterskill{
+
+.menubg.charactercard>.characterskill {
left: 191px;
- padding-left: 9px;
- padding-right: 10px;
- width: 290px;
- top: 125px;
- height: 50px;
- white-space: nowrap;
- overflow-x: scroll;
+ padding-left: 9px;
+ padding-right: 10px;
+ width: 290px;
+ top: 125px;
+ height: 50px;
+ white-space: nowrap;
+ overflow-x: scroll;
}
-.menubg.charactercard>.characterskill>.menubutton.large{
+
+.menubg.charactercard>.characterskill>.menubutton.large {
height: 20px;
line-height: 20px;
padding: 5px;
@@ -252,24 +303,90 @@
font-size: 20px;
margin-right: 10px;
}
-.menubg.charactercard .characterintro{
+
+.menubg.charactercard .characterintro .hp {
+ height: initial;
+ left: initial;
+ top: initial;
+ width: initial;
+}
+
+.menubg.charactercard .characterintro .hp>div:first-child {
+ margin-left: initial;
+}
+
+.menubg.charactercard .characterintro .hp>div:nth-child(odd) {
+ height: 10px;
+ width: 10px;
+}
+
+.menubg.charactercard .characterintro .hp>div.text {
+ background: none !important;
+ border: none !important;
+ box-shadow: none !important;
+ filter: initial;
+ -webkit-filter: initial;
+ height: initial;
+ width: initial;
+}
+
+.menubg.charactercard .characterintro div,
+.menubg.charactercard .characterintro.intro2 div {
+ position: initial;
+}
+
+.menubg.charactercard .characterintro rp,
+.menubg.charactercard .characterintro rt,
+.menubg.charactercard .characterintro.intro2 rp,
+.menubg.charactercard .characterintro.intro2 rt {
+ font-size: smaller;
+}
+
+.menubg.charactercard .characterintro table td img {
+ height: 1.5em;
+ vertical-align: middle;
+}
+
+.menubg.charactercard .characterintro table td {
+ white-space: nowrap;
+}
+
+.menubg.charactercard .characterintro table td:first-child {
+ width: 25%;
+}
+
+.menubg.charactercard .characterintro table td:not(:first-child) {
+ text-align: center;
+}
+
+.menubg.charactercard .characterintro table {
+ border-collapse: collapse;
+ border-color: currentColor;
+ table-layout: auto;
+ width: 100%;
+}
+
+.menubg.charactercard .characterintro {
left: 200px;
width: 280px;
height: 105px;
padding: 5px;
overflow: scroll;
border-radius: 4px;
- box-shadow: rgba(0,0,0,0.2) 0 0 0 1px;
+ box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px;
}
-.menubg.charactercard .characterintro:not(.intro2){
+
+.menubg.charactercard .characterintro:not(.intro2) {
top: 10px;
bottom: auto;
}
-.menubg.charactercard .characterintro.intro2{
+
+.menubg.charactercard .characterintro.intro2 {
top: auto;
bottom: 10px;
}
-.menubg.charactercard>.ava>.avatars{
+
+.menubg.charactercard>.ava>.avatars {
opacity: 0;
pointer-events: none;
width: 100%;
@@ -279,16 +396,18 @@
margin: 0;
padding: 0;
overflow: hidden;
- line-height: 0;
+ line-height: 0;
text-align: left;
transform: scale(0.8);
}
-.menubg.charactercard>.ava>.avatars.scroll{
+
+.menubg.charactercard>.ava>.avatars.scroll {
overflow: scroll;
}
-.menubg.charactercard>.ava>.avatars>div{
+
+.menubg.charactercard>.ava>.avatars>div {
position: relative;
- margin:3px;
+ margin: 3px;
width: 81px;
height: 111px;
border-radius: 4px;
@@ -296,26 +415,32 @@
background-position: 50% 0;
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 0 5px
}
+
.menubg.charactercard>.ava>.avatars>div:first-child,
-.menubg.charactercard>.ava>.avatars>div:first-child+div{
+.menubg.charactercard>.ava>.avatars>div:first-child+div {
margin-top: 6px;
}
-.menubg.charactercard>.ava>.avatars>div:nth-of-type(odd){
+
+.menubg.charactercard>.ava>.avatars>div:nth-of-type(odd) {
margin-left: 6px;
}
-.menubg.charactercard>.ava.scroll>.avatars{
+
+.menubg.charactercard>.ava.scroll>.avatars {
opacity: 1;
pointer-events: auto;
transform: scale(1);
}
-.menubg.charactercard>.ava.scroll>.changeskin{
+
+.menubg.charactercard>.ava.scroll>.changeskin {
opacity: 0;
}
-.menubg.charactercard>.ava.scroll>.avatar{
+
+.menubg.charactercard>.ava.scroll>.avatar {
transform: translateX(-200px);
pointer-events: none;
}
-.menubg.charactercard>.ava>.avatar{
+
+.menubg.charactercard>.ava>.avatar {
left: 5px;
top: 5px;
width: calc(100% - 10px);
@@ -325,210 +450,250 @@
z-index: 1;
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 0 5px;
}
-.menu.main>.menu-tab{
- height:37px;
- text-align:center;
- width:calc(100% - 30px);
- padding-left:15px;
- padding-right:15px;
- position:relative;
- text-align:center;
+
+.menu.main>.menu-tab {
+ height: 37px;
+ text-align: center;
+ width: calc(100% - 30px);
+ padding-left: 15px;
+ padding-right: 15px;
+ position: relative;
+ text-align: center;
border-width: 0 0 1px;
- border-style:solid;
- border-image:linear-gradient(to right, transparent,rgba(0,0,0,0.2) 10%,rgba(0,0,0,0.2) 90%,transparent) 0 1 100%;
+ border-style: solid;
+ border-image: linear-gradient(to right, transparent, rgba(0, 0, 0, 0.2) 10%, rgba(0, 0, 0, 0.2) 90%, transparent) 0 1 100%;
}
-.menu.main>.menu-tab-bar{
- width:45px;
- height:2px;
- top:35px;
- position:absolute;
- background-color:rgb(0, 133, 255);
- transition:transform 0.3s;
+
+.menu.main>.menu-tab-bar {
+ width: 45px;
+ height: 2px;
+ top: 35px;
+ position: absolute;
+ background-color: rgb(0, 133, 255);
+ transition: transform 0.3s;
left: 0;
}
-.menu.main>.menu-tab>div{
- display:inline-block;
- height:32px;
- line-height:30px;
- padding-top:5px;
- width:45px;
- margin-left:5px;
- margin-right:5px;
- transition:color 0.5s;
+
+.menu.main>.menu-tab>div {
+ display: inline-block;
+ height: 32px;
+ line-height: 30px;
+ padding-top: 5px;
+ width: 45px;
+ margin-left: 5px;
+ margin-right: 5px;
+ transition: color 0.5s;
}
+
.menu.main>.menu-tab>div:not(.active):not(*:hover),
-.menu.main>.menu-tab>.disabled{
- color:rgba(255,255,255,0.6);
+.menu.main>.menu-tab>.disabled {
+ color: rgba(255, 255, 255, 0.6);
}
-.menu.main>.menu-content{
- height:calc(100% - 38px);
- position:relative;
- width:100%;
+
+.menu.main>.menu-content {
+ height: calc(100% - 38px);
+ position: relative;
+ width: 100%;
}
-.menu.main>.menu-content>div{
- width:100%;
- height:100%;
+
+.menu.main>.menu-content>div {
+ width: 100%;
+ height: 100%;
}
-.menu.main>.menu-content>div>.pane{
- position:absolute;
- display:inline-block;
- height:100%;
+
+.menu.main>.menu-content>div>.pane {
+ position: absolute;
+ display: inline-block;
+ height: 100%;
}
-.menu.main>.menu-content>div>.left.pane{
- width:34%;
- left:0;
- overflow: scroll;
+
+.menu.main>.menu-content>div>.left.pane {
+ width: 34%;
+ left: 0;
+ overflow: scroll;
}
-.menu.main>.menu-content>div>.left.pane>div{
- width:calc(100% - 30px);
- margin-top:9px;
- margin-left:10px;
- transition:all 0.3s;
- height: 23px;
- font-size: 26px;
- line-height: 26px;
+
+.menu.main>.menu-content>div>.left.pane>div {
+ width: calc(100% - 30px);
+ margin-top: 9px;
+ margin-left: 10px;
+ transition: all 0.3s;
+ height: 23px;
+ font-size: 26px;
+ line-height: 26px;
white-space: nowrap;
}
-.menu.main>.menu-content>div>.left.pane>.menubutton.off{
+
+.menu.main>.menu-content>div>.left.pane>.menubutton.off {
opacity: 0.5;
}
-.menu.main>.menu-content>div>.left.pane>.lefttext{
- font-family: 'xinwei';
- font-size: 20px;
+
+.menu.main>.menu-content>div>.left.pane>.lefttext {
+ font-family: 'xinwei';
+ font-size: 20px;
}
-.menu.main>.menu-content>div>.left.pane>div:last-child{
+
+.menu.main>.menu-content>div>.left.pane>div:last-child {
margin-bottom: 9px;
}
-.menu.main>.menu-content>div>.left.pane.dim>div:not(.active){
- color:rgba(255,255,255,0.5);
+
+.menu.main>.menu-content>div>.left.pane.dim>div:not(.active) {
+ color: rgba(255, 255, 255, 0.5);
}
-.menu.main>.menu-content>div>.right.pane{
- left:34%;
- width:66%;
- overflow:scroll;
+
+.menu.main>.menu-content>div>.right.pane {
+ left: 34%;
+ width: 66%;
+ overflow: scroll;
}
-.menu.main>.menu-content>div>.right.pane>div{
- width:calc(100% - 5px);
- position:absolute;
- top:0;
- left:0;
- padding-left:5px;
- padding-top:5px;
+
+.menu.main>.menu-content>div>.right.pane>div {
+ width: calc(100% - 5px);
+ position: absolute;
+ top: 0;
+ left: 0;
+ padding-left: 5px;
+ padding-top: 5px;
}
-.menu.main>.menu-content>div>.right.pane>.expanded{
- padding-bottom:80px;
+
+.menu.main>.menu-content>div>.right.pane>.expanded {
+ padding-bottom: 80px;
}
-.menu.main>.menu-content>div>.right.pane>.expanded.expanded2{
- padding-bottom:12px;
+
+.menu.main>.menu-content>div>.right.pane>.expanded.expanded2 {
+ padding-bottom: 12px;
}
-.menu.main>.menu-content>div>.right.pane>.morenodes{
- padding-bottom:10px;
+
+.menu.main>.menu-content>div>.right.pane>.morenodes {
+ padding-bottom: 10px;
}
-.menu.main>.menu-content>div>.right.pane>div>.config{
- left:2px;
- margin-top:10px;
+
+.menu.main>.menu-content>div>.right.pane>div>.config {
+ left: 2px;
+ margin-top: 10px;
margin-left: 3px;
- transition:all 0.3s;
- width:calc(100% - 20px);
- overflow: visible;
+ transition: all 0.3s;
+ width: calc(100% - 20px);
+ overflow: visible;
position: relative;
}
-.menu.main>.menu-content>div>.right.pane>div>.config.banskilladd{
+
+.menu.main>.menu-content>div>.right.pane>div>.config.banskilladd {
height: 50px;
transition: all 0s;
}
-.menu.main>.menu-content>div>.right.pane>div>.config.banskilladd.hidden{
+
+.menu.main>.menu-content>div>.right.pane>div>.config.banskilladd.hidden {
margin-top: -50px !important;
}
+
.menu.main>.menu-content>div>.right.pane>div>.config.banskilladd:not(.hidden),
-.menu.main>.menu-content>div>.right.pane>div>.config.cardpileadd:not(.hidden){
- margin-top:0;
+.menu.main>.menu-content>div>.right.pane>div>.config.cardpileadd:not(.hidden) {
+ margin-top: 0;
}
-.menu.main>.menu-content>div>.right.pane>div>.config.banskilladd>select{
+
+.menu.main>.menu-content>div>.right.pane>div>.config.banskilladd>select {
margin-right: 3px;
}
-.menu.main>.menu-content>div>.right.pane>div>.config.toggle{
- left:2px !important;
- text-align: left !important;
+
+.menu.main>.menu-content>div>.right.pane>div>.config.toggle {
+ left: 2px !important;
+ text-align: left !important;
white-space: nowrap;
}
-.menu.main>.menu-content>div>.right.pane>div>.config.toggle.pointerspan.cardpilecfg{
- left:0px !important;
+
+.menu.main>.menu-content>div>.right.pane>div>.config.toggle.pointerspan.cardpilecfg {
+ left: 0px !important;
}
+
.menu.main>.menu-content>div>.right.pane>div>.config.indent,
-.menu.main>.menu-content>div>.right.pane>div>.config.toggle.indent{
- left:12px !important;
+.menu.main>.menu-content>div>.right.pane>div>.config.toggle.indent {
+ left: 12px !important;
width: calc(100% - 32px) !important;
}
+
#window:not(.low_performance) .menu.main>.menu-content>div>.right.pane>div:not(.expanded)>.config.auto-hide,
-#window:not(.low_performance) .menu.main>.menu-content>div>.right.pane>div>.config.hidden{
- margin-top:-25px;
- opacity:0;
- z-index:-1;
+#window:not(.low_performance) .menu.main>.menu-content>div>.right.pane>div>.config.hidden {
+ margin-top: -25px;
+ opacity: 0;
+ z-index: -1;
}
+
#window.low_performance .menu.main>.menu-content>div>.right.pane>div:not(.expanded)>.config.auto-hide,
-#window.low_performance .menu.main>.menu-content>div>.right.pane>div>.config.hidden{
+#window.low_performance .menu.main>.menu-content>div>.right.pane>div>.config.hidden {
display: none;
transition-property: transform;
}
-.menu.main>.menu-content>div>.menubutton.round{
- left:335px;
- top:197px;
- z-index:3;
- transition-property: color, box-shadow;
- transition-duration:0.3s;
- position:absolute;
+
+.menu.main>.menu-content>div>.menubutton.round {
+ left: 335px;
+ top: 197px;
+ z-index: 3;
+ transition-property: color, box-shadow;
+ transition-duration: 0.3s;
+ position: absolute;
}
-.menu.main>.menu-content>div>.menubutton.round.glowing{
+
+.menu.main>.menu-content>div>.menubutton.round.glowing {
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(0, 133, 255, 0.8) 0 0 10px, rgba(0, 133, 255, 0.8) 0 0 15px !important;
}
-.popup-container.hidden{
- pointer-events:none;
+.popup-container.hidden {
+ pointer-events: none;
}
-.popup-container>.menu{
- position:absolute;
- overflow:scroll;
+
+.popup-container>.menu {
+ position: absolute;
+ overflow: scroll;
max-height: 400px;
transition-property: opacity;
}
-.popup-container>.menu.visual{
+
+.popup-container>.menu.visual {
padding: 5px;
overflow: scroll;
}
-.popup-container>.menu>div{
- padding-top:5px;
- padding-bottom:5px;
- padding-left:10px;
- padding-right:10px;
- position: relative;
- display: block;
- transition: all 0s;
+
+.popup-container>.menu>div {
+ padding-top: 5px;
+ padding-bottom: 5px;
+ padding-left: 10px;
+ padding-right: 10px;
+ position: relative;
+ display: block;
+ transition: all 0s;
}
-.popup-container>.menu.visual>.button.transparent{
+
+.popup-container>.menu.visual>.button.transparent {
pointer-events: none;
}
-.popup-container>.menu.visual>.button.transparent:not(.shown){
+
+.popup-container>.menu.visual>.button.transparent:not(.shown) {
display: none;
}
-.popup-container>.menu.visual>.dashedmenubutton{
+
+.popup-container>.menu.visual>.dashedmenubutton {
box-shadow: none !important;
width: 86px;
height: 86px;
- border: 2px dashed rgb(40,40,40);
+ border: 2px dashed rgb(40, 40, 40);
}
-.popup-container>.menu.visual>.controlbutton{
+
+.popup-container>.menu.visual>.controlbutton {
height: 26px;
border-radius: 4px;
}
-.popup-container>.menu.visual>.controlbutton.dashedmenubutton{
+
+.popup-container>.menu.visual>.controlbutton.dashedmenubutton {
height: 22px;
}
-.popup-container>.menu.visual>.controlbutton.dashedmenubutton>div{
+
+.popup-container>.menu.visual>.controlbutton.dashedmenubutton>div {
line-height: 22px;
}
-.popup-container>.menu.visual>.controlbutton>div{
+
+.popup-container>.menu.visual>.controlbutton>div {
width: 100%;
height: 100%;
left: 0 !important;
@@ -539,15 +704,18 @@
text-align: center;
line-height: 26px;
}
-.popup-container>.menu.visual>.controlbutton>div>br{
+
+.popup-container>.menu.visual>.controlbutton>div>br {
display: none;
}
-.popup-container>.menu.visual>.hpbutton{
+
+.popup-container>.menu.visual>.hpbutton {
width: 60px;
height: 60px;
overflow: hidden;
}
-.popup-container>.menu.visual>.hpbutton>div{
+
+.popup-container>.menu.visual>.hpbutton>div {
width: 30px;
height: 30px;
margin: 0;
@@ -557,27 +725,32 @@
background-repeat: no-repeat;
background-position: 50% 50%;
}
-.popup-container>.menu.visual>.hpbutton>div:nth-child(1){
+
+.popup-container>.menu.visual>.hpbutton>div:nth-child(1) {
left: 0;
top: 0;
}
-.popup-container>.menu.visual>.hpbutton>div:nth-child(2){
+
+.popup-container>.menu.visual>.hpbutton>div:nth-child(2) {
right: 0;
left: auto;
top: 0;
}
-.popup-container>.menu.visual>.hpbutton>div:nth-child(3){
+
+.popup-container>.menu.visual>.hpbutton>div:nth-child(3) {
left: 0;
bottom: 0;
top: auto;
}
-.popup-container>.menu.visual>.hpbutton>div:nth-child(4){
+
+.popup-container>.menu.visual>.hpbutton>div:nth-child(4) {
right: 0;
left: auto;
bottom: 0;
top: auto;
}
-.popup-container>.menu.visual>.hpbutton>div>div{
+
+.popup-container>.menu.visual>.hpbutton>div>div {
width: 60%;
height: 60%;
margin: 0;
@@ -586,103 +759,127 @@
left: 20%;
top: 20%;
border-radius: 100%;
- box-shadow: rgba(0,0,0,0.2) 1px -1px 2px inset, rgba(255,255,255,0.15) -1px 1px 5px inset;
- filter: brightness(1.5);
- -webkit-filter: brightness(1.5);
+ box-shadow: rgba(0, 0, 0, 0.2) 1px -1px 2px inset, rgba(255, 255, 255, 0.15) -1px 1px 5px inset;
+ filter: brightness(1.5);
+ -webkit-filter: brightness(1.5);
}
-.popup-container>.menu.visual>.hpbutton>div:nth-child(1)>div{
- background: rgba(57, 123, 4,1);
+
+.popup-container>.menu.visual>.hpbutton>div:nth-child(1)>div {
+ background: rgba(57, 123, 4, 1);
border: 1px solid rgba(39, 79, 7, 1);
}
-.popup-container>.menu.visual>.hpbutton>div:nth-child(2)>div{
- background: rgba(166, 140, 6,1);
- border: 1px solid rgba(79, 64, 7, 1);
+
+.popup-container>.menu.visual>.hpbutton>div:nth-child(2)>div {
+ background: rgba(166, 140, 6, 1);
+ border: 1px solid rgba(79, 64, 7, 1);
}
-.popup-container>.menu.visual>.hpbutton>div:nth-child(3)>div{
- background: rgba(148, 27, 27,1);
- border: 1px solid rgba(79, 7, 7, 1);
+
+.popup-container>.menu.visual>.hpbutton>div:nth-child(3)>div {
+ background: rgba(148, 27, 27, 1);
+ border: 1px solid rgba(79, 7, 7, 1);
}
-.popup-container>.menu.visual>.hpbutton>div:nth-child(4)>div{
- background: rgba(57, 123, 4,1);
- border: 1px solid rgba(39, 79, 7, 1);
+
+.popup-container>.menu.visual>.hpbutton>div:nth-child(4)>div {
+ background: rgba(57, 123, 4, 1);
+ border: 1px solid rgba(39, 79, 7, 1);
}
-.themebutton>div{
- width:50px;
- height:76px;
- top:7px;
- right:7px;
- border-radius:4px;
+
+.themebutton>div {
+ width: 50px;
+ height: 76px;
+ top: 7px;
+ right: 7px;
+ border-radius: 4px;
}
-.themebutton>div>div{
- width:calc(100% - 10px);
- height:12px;
- display:block;
- margin-left:5px;
- margin-top:6px;
- position:relative;
- border-radius:2px;
- box-shadow:rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(0, 0, 0, 0.3) 0 0 5px;
+
+.themebutton>div>div {
+ width: calc(100% - 10px);
+ height: 12px;
+ display: block;
+ margin-left: 5px;
+ margin-top: 6px;
+ position: relative;
+ border-radius: 2px;
+ box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(0, 0, 0, 0.3) 0 0 5px;
transition: all 0s;
}
-.themebutton>div:first-child{
+
+.themebutton>div:first-child {
z-index: 2;
}
-.themebutton.woodden{
- background:url('../../theme/woodden/grid.png'),linear-gradient(#6c7989, #434b55) fixed;
+
+.themebutton.woodden {
+ background: url('../../theme/woodden/grid.png'), linear-gradient(#6c7989, #434b55) fixed;
}
-.themebutton.woodden>div:not(*:first-child){
+
+.themebutton.woodden>div:not(*:first-child) {
background: url('../../theme/woodden/wood2.png');
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 3px 10px;
}
-.themebutton.woodden>div.fakeplayer:not(*:first-child){
+
+.themebutton.woodden>div.fakeplayer:not(*:first-child) {
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 0px 10px;
}
-.themebutton.woodden>div>div{
+
+.themebutton.woodden>div>div {
background: url('../../theme/woodden/wood.png');
}
-.themebutton.woodden>div>div.active{
+
+.themebutton.woodden>div>div.active {
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(0, 133, 255, 0.4) 0 0 0 2px, rgba(0, 133, 255, 1) 0 0 5px !important;
}
-.themebutton.music{
- background:url('../../theme/music/grid.png'),linear-gradient(#333333, #222222) fixed;
+
+.themebutton.music {
+ background: url('../../theme/music/grid.png'), linear-gradient(#333333, #222222) fixed;
}
-.themebutton.music>div:not(*:first-child){
+
+.themebutton.music>div:not(*:first-child) {
background: linear-gradient(#4b4b4b, #464646);
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.2) 0 3px 10px;
}
-.themebutton.music>div>div{
+
+.themebutton.music>div>div {
background: linear-gradient(#4b4b4b, #464646);
}
-.themebutton.ol{
- background:url('../../image/background/ol_bg.jpg');
+
+.themebutton.ol {
+ background: url('../../image/background/ol_bg.jpg');
background-size: cover;
}
-.themebutton.ol>div:not(*:first-child){
+
+.themebutton.ol>div:not(*:first-child) {
background: linear-gradient(#4b4b4b, #464646);
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.2) 0 3px 10px;
}
-.themebutton.ol>div>div{
+
+.themebutton.ol>div>div {
background: linear-gradient(#4b4b4b, #464646);
}
-.themebutton.simple{
- background:url('../../image/background/ol_bg.jpg');
+
+.themebutton.simple {
+ background: url('../../image/background/ol_bg.jpg');
background-size: cover;
}
-.themebutton.simple>div:not(*:first-child){
- background: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4));
+
+.themebutton.simple>div:not(*:first-child) {
+ background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4));
box-shadow: rgba(0, 0, 0, 0.4) 0 0 0 1px, rgba(0, 0, 0, 0.2) 0 3px 10px;
}
-.themebutton.simple>div>div{
- background: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4));
+
+.themebutton.simple>div>div {
+ background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4));
}
+
.themebutton.simple>div>div.active,
-.themebutton.music>div>div.active{
- background-image: linear-gradient(rgba(47,101,150,1), rgba(43, 90, 132,1));
+.themebutton.music>div>div.active {
+ background-image: linear-gradient(rgba(47, 101, 150, 1), rgba(43, 90, 132, 1));
}
-.themebutton>div>div:first-child{
- margin-top:5px;
+
+.themebutton>div>div:first-child {
+ margin-top: 5px;
}
-.themebutton>.fakeplayer>.avatar{
+
+.themebutton>.fakeplayer>.avatar {
width: calc(100% - 2px);
height: calc(100% - 2px);
left: 1px;
@@ -691,12 +888,14 @@
position: absolute;
margin: 0 !important;
padding: 0;
- box-shadow: rgba(0,0,0,0.2) 0 0 0 1px inset;
+ box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px inset;
}
-.themebutton>.fakeplayer.oldlayout>.avatar{
+
+.themebutton>.fakeplayer.oldlayout>.avatar {
width: calc(50% - 2px);
}
-.themebutton>.fakeplayer.me>.avatar{
+
+.themebutton>.fakeplayer.me>.avatar {
width: 22px;
height: 22px;
left: 3px;
@@ -704,11 +903,13 @@
box-shadow: none;
border-radius: 0px;
}
-.themebutton>.fakeplayer.me{
+
+.themebutton>.fakeplayer.me {
clip-path: polygon(-10px 0, 32px 0, 32px 32px, -10px 32px);
-webkit-clip-path: polygon(-10px 0, 32px 0, 32px 32px, -10px 32px);
}
-.themebutton>div>div>div{
+
+.themebutton>div>div>div {
width: 200%;
height: 200%;
left: 0;
@@ -721,49 +922,57 @@
text-align: center;
box-shadow: none !important;
}
-.themebutton.woodden>div>div>div{
+
+.themebutton.woodden>div>div>div {
color: rgba(77, 60, 51, 0.8);
text-shadow: none;
}
-#window:not(.nopointer) .popup-container>.menu>div{
+#window:not(.nopointer) .popup-container>.menu>div {
cursor: pointer;
}
-.popup-container>.menu.visual>div{
+
+.popup-container>.menu.visual>div {
display: inline-block;
- margin:5px !important;
+ margin: 5px !important;
padding: 0 !important;
width: 90px;
height: 90px;
}
-.popup-container>.menu.visual.withbar>div:last-child{
+
+.popup-container>.menu.visual.withbar>div:last-child {
display: block;
width: calc(100% - 10px);
text-align: center;
height: auto;
cursor: default !important;
}
-.popup-container>.menu.visual.withbar>div:last-child>div{
+
+.popup-container>.menu.visual.withbar>div:last-child>div {
display: inline-block;
position: relative;
margin-left: 5px;
margin-right: 5px;
}
-.popup-container>.menu.visual.withbar>div:not(.showdelete)>.deletebutton{
+
+.popup-container>.menu.visual.withbar>div:not(.showdelete)>.deletebutton {
display: none;
}
-.popup-container>.menu.visual.withbar>div.hideadd>.addbutton{
+
+.popup-container>.menu.visual.withbar>div.hideadd>.addbutton {
display: none;
}
-.popup-container>.menu.visual.withbar>div.showdelete>div:first-child:not(.addbutton){
+
+.popup-container>.menu.visual.withbar>div.showdelete>div:first-child:not(.addbutton) {
display: none;
}
-#window:not(.nopointer) .popup-container>.menu.visual.withbar>div:last-child>div{
+
+#window:not(.nopointer) .popup-container>.menu.visual.withbar>div:last-child>div {
cursor: pointer;
}
-input.fileinput{
+input.fileinput {
margin: 0 !important;
padding: 0 !important;
position: absolute !important;
@@ -773,124 +982,220 @@ input.fileinput{
top: 0 !important;
opacity: 0 !important;
}
+
input.fileinput::-webkit-file-upload-button {
- cursor: pointer;
-}
-#window:not(.nopointer) input.fileinput{
cursor: pointer;
}
-.popup-container>.menu.visual>.button.character>.name{
+
+#window:not(.nopointer) input.fileinput {
+ cursor: pointer;
+}
+
+.popup-container>.menu.visual>.button.character>.name {
top: 10px;
}
-.popup-container>.menu>div:first-child{
- margin-top:5px;
-}
-.popup-container>.menu>div:last-child{
- margin-bottom:5px;
+
+.popup-container>.menu>div:first-child {
+ margin-top: 5px;
}
-.config{
- height:25px;
- line-height:25px;
- position:relative;
+.popup-container>.menu>div:last-child {
+ margin-bottom: 5px;
}
+
+.config {
+ height: 25px;
+ line-height: 25px;
+ position: relative;
+}
+
#window:not(.nopointer) .config.switcher>div,
-#window:not(.nopointer) .config.toggle>div{
+#window:not(.nopointer) .config.toggle>div {
cursor: pointer;
}
+
.config.switcher>div,
-.config.toggle>div{
- position:absolute;
- right:0;
- left:auto;
- display:inline-block;
- transition:all 0.3s;
- height:25px;
+.config.toggle>div {
+ position: absolute;
+ right: 0;
+ left: auto;
+ display: inline-block;
+ transition: all 0.3s;
+ height: 25px;
}
-.config.switcher>div{
- border-bottom-width:2px;
- border-bottom-style:solid;
- border-bottom-color:transparent;
+
+.config.switcher>div {
+ border-bottom-width: 2px;
+ border-bottom-style: solid;
+ border-bottom-color: transparent;
margin-right: 4px;
}
-.config.switcher.on>div{
- border-bottom-color:rgb(0, 133, 255);
-}
-.config.toggle>div{
- width:60px;
-}
-.config.toggle>div>div{
- display:inline-block;
- position:relative;
- width:25px;
- height:25px;
- top:0;
- left:0;
- transition:all 0.3s;
- padding: 0;
-}
-.config.toggle.on>div>div{
- left:calc(100% - 25px);
-}
-.config.more{
- z-index:1;
-}
-.config.more>div{
- display:inline-block;
- transition:transform 0.3s
-}
-.config.more>div{
- transform:translateY(-2px);
- font-family: 'huangcao','xinwei';
-}
-.config.more.on>div{
- transform:rotate(90deg) translateX(-2px);
+
+.config.switcher.on>div {
+ border-bottom-color: rgb(0, 133, 255);
}
-.menubutton{
- text-align:center;
- display:inline-block;
- padding:5px;
-}
-.menubutton.large{
- font-size:30px;
- line-height:30px;
- font-family:'STXinwei','xinwei';
-}
-.menubutton.round{
- width:40px;
- height:40px;
- border-radius:100%;
- font-size:36px;
- line-height:40px;
- font-family:'xinwei'
-}
-.menubutton.left{
- float:left;
-}
-.menubutton.right{
- float:right;
-}
-.menubutton.search{
- text-align:left;
-}
-.menubutton.search:not(.focus){
- color:rgba(255,255,255,0.5);
-}
-.menubutton.dim{
- color:rgba(255,255,255,0.5);
+.config.toggle>div {
+ width: 60px;
}
-@keyframes fadein{from{opacity:0}}
-@-webkit-keyframes fadein{from{opacity:0}}
-@keyframes menuslideup{from{top:100%}}
-@-webkit-keyframes menuslideup{from{top:100%}}
-@keyframes menuslidedown{to{top:100%}}
-@-webkit-keyframes menuslidedown{to{top:100%}}
-@keyframes menuzoomin{from{transform:scale(0.5);opacity:0;transform-origin:2px -35px}to{transform-origin:2px -35px}}
-@-webkit-keyframes menuzoomin{from{transform:scale(0.5);opacity:0;transform-origin:2px -35px}to{transform-origin:2px -35px}}
-@keyframes menuzoomout{from{transform-origin:2px -35px}to{transform:scale(0.5);opacity:0;transform-origin:2px -35px}}
-@-webkit-keyframes menuzoomout{from{transform-origin:2px -35px}to{transform:scale(0.5);opacity:0;transform-origin:2px -35px}}
+.config.toggle>div>div {
+ display: inline-block;
+ position: relative;
+ width: 25px;
+ height: 25px;
+ top: 0;
+ left: 0;
+ transition: all 0.3s;
+ padding: 0;
+}
+
+.config.toggle.on>div>div {
+ left: calc(100% - 25px);
+}
+
+.config.more {
+ z-index: 1;
+}
+
+.config.more>div {
+ display: inline-block;
+ transition: transform 0.3s
+}
+
+.config.more>div {
+ transform: translateY(-2px);
+ font-family: 'huangcao', 'xinwei';
+}
+
+.config.more.on>div {
+ transform: rotate(90deg) translateX(-2px);
+}
+
+.menubutton {
+ text-align: center;
+ display: inline-block;
+ padding: 5px;
+}
+
+.menubutton.large {
+ font-size: 30px;
+ line-height: 30px;
+ font-family: 'STXinwei', 'xinwei';
+}
+
+.menubutton.round {
+ width: 40px;
+ height: 40px;
+ border-radius: 100%;
+ font-size: 36px;
+ line-height: 40px;
+ font-family: 'xinwei'
+}
+
+.menubutton.left {
+ float: left;
+}
+
+.menubutton.right {
+ float: right;
+}
+
+.menubutton.search {
+ text-align: left;
+}
+
+.menubutton.search:not(.focus) {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.menubutton.dim {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+@keyframes fadein {
+ from {
+ opacity: 0
+ }
+}
+
+@-webkit-keyframes fadein {
+ from {
+ opacity: 0
+ }
+}
+
+@keyframes menuslideup {
+ from {
+ top: 100%
+ }
+}
+
+@-webkit-keyframes menuslideup {
+ from {
+ top: 100%
+ }
+}
+
+@keyframes menuslidedown {
+ to {
+ top: 100%
+ }
+}
+
+@-webkit-keyframes menuslidedown {
+ to {
+ top: 100%
+ }
+}
+
+@keyframes menuzoomin {
+ from {
+ transform: scale(0.5);
+ opacity: 0;
+ transform-origin: 2px -35px
+ }
+
+ to {
+ transform-origin: 2px -35px
+ }
+}
+
+@-webkit-keyframes menuzoomin {
+ from {
+ transform: scale(0.5);
+ opacity: 0;
+ transform-origin: 2px -35px
+ }
+
+ to {
+ transform-origin: 2px -35px
+ }
+}
+
+@keyframes menuzoomout {
+ from {
+ transform-origin: 2px -35px
+ }
+
+ to {
+ transform: scale(0.5);
+ opacity: 0;
+ transform-origin: 2px -35px
+ }
+}
+
+@-webkit-keyframes menuzoomout {
+ from {
+ transform-origin: 2px -35px
+ }
+
+ to {
+ transform: scale(0.5);
+ opacity: 0;
+ transform-origin: 2px -35px
+ }
+}
@@ -898,75 +1203,87 @@ input.fileinput::-webkit-file-upload-button {
-.menu-buttons>.new_character{
+.menu-buttons>.new_character {
display: block;
position: relative;
width: 100%;
}
-.menu-buttons>.new_character>.avatar{
+
+.menu-buttons>.new_character>.avatar {
background-size: cover;
}
+
.menu-buttons>.new_character>.avatar,
-.menu-buttons>.new_character>.card{
- top:8px;
- left:12px;
+.menu-buttons>.new_character>.card {
+ top: 8px;
+ left: 12px;
position: absolute;
width: 100px;
height: 130px;
margin: 0;
}
-.menu-buttons>.new_character>.card{
+
+.menu-buttons>.new_character>.card {
height: 100px;
}
-.menu-buttons>.new_character>.card:not(.fullskin){
+
+.menu-buttons>.new_character>.card:not(.fullskin) {
color: white;
text-shadow: black 0px 0px 2px;
transform: translateX(0px);
background-image: url("image/card/hslingjian_jinjilengdong.jpg");
background-size: cover;
}
+
.menu-buttons>.new_character>.avatar>input,
-.menu-buttons>.new_character>.card>input{
+.menu-buttons>.new_character>.card>input {
z-index: 3;
border-radius: 8px;
opacity: 0;
width: 100%;
height: 100%;
- left:0;
- top:0;
+ left: 0;
+ top: 0;
position: absolute;
}
+
#window[data-radius_size='reduce'] .menu-buttons>.new_character>.avatar>input,
-#window[data-radius_size='reduce'] .menu-buttons>.new_character>.card>input{
- border-radius:4px;
+#window[data-radius_size='reduce'] .menu-buttons>.new_character>.card>input {
+ border-radius: 4px;
}
+
#window[data-radius_size='off'] .menu-buttons>.new_character>.avatar>input,
-#window[data-radius_size='off'] .menu-buttons>.new_character>.card>input{
- border-radius:0px;
+#window[data-radius_size='off'] .menu-buttons>.new_character>.card>input {
+ border-radius: 0px;
}
+
#window[data-radius_size='increase'] .menu-buttons>.new_character>.avatar>input,
-#window[data-radius_size='increase'] .menu-buttons>.new_character>.card>input{
- border-radius:16px;
+#window[data-radius_size='increase'] .menu-buttons>.new_character>.card>input {
+ border-radius: 16px;
}
+
.menu-buttons>.new_character>.avatar>.select_avatar,
-.menu-buttons>.new_character>.card>.select_avatar{
+.menu-buttons>.new_character>.card>.select_avatar {
font-family: 'xinwei';
font-size: 20px;
width: 100%;
height: 20px;
line-height: 20px;
- top:55px;
- left:0;
+ top: 55px;
+ left: 0;
text-align: center;
}
-.menu-buttons>.new_character>.card>.select_avatar{
- top:40px;
+
+.menu-buttons>.new_character>.card>.select_avatar {
+ top: 40px;
}
+
.menu-buttons>.new_character>.avatar.inited>.select_avatar,
-.menu-buttons>.new_character>.card.inited>.select_avatar{
+.menu-buttons>.new_character>.card.inited>.select_avatar {
display: none;
}
-.menu-buttons>.new_character>.indent{
+
+.menu-buttons>.new_character>.indent {
display: block;
margin-left: 123px;
width: calc(100% - 135px);
@@ -975,13 +1292,16 @@ input.fileinput::-webkit-file-upload-button {
text-align: left;
white-space: nowrap;
}
-.menu-buttons>.new_character>.indent>input{
+
+.menu-buttons>.new_character>.indent>input {
width: 60px;
}
-.menu-buttons>.new_character>div>select{
+
+.menu-buttons>.new_character>div>select {
margin-right: 3px;
}
-.menu-buttons>.new_character>.add_skill{
+
+.menu-buttons>.new_character>.add_skill {
position: absolute;
left: 12px;
top: 205px;
@@ -989,35 +1309,44 @@ input.fileinput::-webkit-file-upload-button {
line-height: 20px;
white-space: nowrap;
}
-.menu-buttons>.new_character>.add_skill.options{
- top:160px;
+
+.menu-buttons>.new_character>.add_skill.options {
+ top: 160px;
}
-.menu-buttons>.new_character>.add_skill.options>span{
+
+.menu-buttons>.new_character>.add_skill.options>span {
margin-right: 10px;
}
-.menu-buttons>.new_character>.add_skill.create{
+
+.menu-buttons>.new_character>.add_skill.create {
top: 220px;
}
-.menu-buttons>.new_character>.add_skill.create>div{
+
+.menu-buttons>.new_character>.add_skill.create>div {
position: relative;
}
-.menu-buttons>.new_character>.add_skill.create>div.hidden{
+
+.menu-buttons>.new_character>.add_skill.create>div.hidden {
display: none;
}
-.menu-buttons>.new_character>.add_skill.create>div>textarea{
+
+.menu-buttons>.new_character>.add_skill.create>div>textarea {
resize: none;
- width: 200px;
- height: 100px;
- margin-top: 5px;
+ width: 200px;
+ height: 100px;
+ margin-top: 5px;
}
-.menu-buttons>.new_character>.add_skill.create>div>div{
+
+.menu-buttons>.new_character>.add_skill.create>div>div {
position: relative;
margin-top: 5px;
}
-.menu-buttons>.new_character>.add_skill.create>div>div>input{
+
+.menu-buttons>.new_character>.add_skill.create>div>div>input {
width: 120px;
}
-.menu-buttons>.new_character>.skill_list{
+
+.menu-buttons>.new_character>.skill_list {
position: absolute;
left: 12px;
top: 265px;
@@ -1027,107 +1356,128 @@ input.fileinput::-webkit-file-upload-button {
padding-bottom: 30px;
transition: all 0s;
}
-.menu-buttons>.new_character>.skill_list>div{
+
+.menu-buttons>.new_character>.skill_list>div {
position: relative;
width: 100%;
margin: 0;
padding: 0;
height: auto;
}
-.menu-buttons>.new_character>.skill_list>div>div{
+
+.menu-buttons>.new_character>.skill_list>div>div {
position: relative;
}
-.menu-buttons>.new_character>.skill_list>div:first-child{
+
+.menu-buttons>.new_character>.skill_list>div:first-child {
margin-bottom: 10px;
}
-.menu-buttons>.new_character>.skill_list>div:first-child>div{
+
+.menu-buttons>.new_character>.skill_list>div:first-child>div {
width: calc(50% - 10px);
margin-right: 10px;
margin-top: 6px;
}
-.menu-buttons>.new_character>.skill_list>div:first-child>div>div{
+
+.menu-buttons>.new_character>.skill_list>div:first-child>div>div {
position: relative;
}
-.menu-buttons>.new_character>.skill_list>div:first-child>div>div:last-child{
+
+.menu-buttons>.new_character>.skill_list>div:first-child>div>div:last-child {
float: right;
}
-.menu-buttons>.new_character.export{
+.menu-buttons>.new_character.export {
text-align: left;
}
-.menu-buttons>.new_character.export>div{
+
+.menu-buttons>.new_character.export>div {
position: relative;
margin-left: 12px;
margin-top: 5px;
}
-.menu-buttons>.new_character.export>div>input{
+
+.menu-buttons>.new_character.export>div>input {
width: 100px;
margin-right: 5px;
}
-.menu-buttons>.new_character.export.import>div>input{
+
+.menu-buttons>.new_character.export.import>div>input {
width: 153px;
}
-.menubutton{
+.menubutton {
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.2) 0 3px 10px;
- border-radius:4px;
- background-image: linear-gradient(rgba(75,75,75,1), rgba(70,70,70,1));
+ border-radius: 4px;
+ background-image: linear-gradient(rgba(75, 75, 75, 1), rgba(70, 70, 70, 1));
}
+
.menubutton.large.blue,
.menubutton.large.red,
-.redbg{
- color:white !important;
+.redbg {
+ color: white !important;
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.3) 0 3px 10px !important;
}
+
.menubutton.active,
-.menubutton.blue{
- background-image: linear-gradient(rgba(47,101,150,1), rgba(43, 90, 132,1));
+.menubutton.blue {
+ background-image: linear-gradient(rgba(47, 101, 150, 1), rgba(43, 90, 132, 1));
}
+
.tdnodes.selected,
.text.selected,
-.bluebg{
- background-image: linear-gradient(rgba(47,101,150,1), rgba(43, 90, 132,1)) !important;
+.bluebg {
+ background-image: linear-gradient(rgba(47, 101, 150, 1), rgba(43, 90, 132, 1)) !important;
}
-#system>div>.pressdown{
+
+#system>div>.pressdown {
transform: scale(0.97);
}
+
.control:not(.disabled) {
transition: all 0.1s;
}
+
.control:not(.disabled).controlpressdownx {
transition: all 0.5s;
}
-#system>div>.pressdown2{
- background-image: linear-gradient(rgba(47,101,150,1), rgba(43, 90, 132,1));
+
+#system>div>.pressdown2 {
+ background-image: linear-gradient(rgba(47, 101, 150, 1), rgba(43, 90, 132, 1));
}
+
.menubutton.highlight,
-.menubutton.red{
+.menubutton.red {
background-image: linear-gradient(rgba(150, 47, 47, 1), rgba(132, 43, 43, 1));
}
+
.menubutton.large.active,
-.menubutton.large.lighlight{
+.menubutton.large.lighlight {
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.3) 0 3px 10px;
}
-.config.toggle>div{
- border-radius:25px;
+.config.toggle>div {
+ border-radius: 25px;
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(0, 0, 0, 0.2) 0 0 10px inset;
}
-.config.toggle.on>div{
- background-color:rgba(47,101,150,1);
+
+.config.toggle.on>div {
+ background-color: rgba(47, 101, 150, 1);
}
-.config.toggle>div>div{
- border-radius:25px;
- background-image: linear-gradient(rgba(75,75,75,1), rgba(70,70,70,1));
+
+.config.toggle>div>div {
+ border-radius: 25px;
+ background-image: linear-gradient(rgba(75, 75, 75, 1), rgba(70, 70, 70, 1));
box-shadow: rgba(51, 51, 51, 1) 0 0 0 1px, rgba(0, 0, 0, 0.2) 0 3px 10px;
}
-.popup-container>.menu:not(.visual)>div:hover{
- color:white;
- background-image: linear-gradient(rgba(47,101,150,1), rgba(43, 90, 132,1));
- box-shadow: rgba(0,0,0,0.2) 0 0 0 1px;
+.popup-container>.menu:not(.visual)>div:hover {
+ color: white;
+ background-image: linear-gradient(rgba(47, 101, 150, 1), rgba(43, 90, 132, 1));
+ box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px;
}
-.videonode.menubutton{
+
+.videonode.menubutton {
width: calc(100% - 50px);
height: 70px;
margin-bottom: 6px;
@@ -1135,34 +1485,41 @@ input.fileinput::-webkit-file-upload-button {
margin-top: 6px;
overflow: hidden;
}
-.videonode.menubutton.extension{
+
+.videonode.menubutton.extension {
text-align: left;
height: auto;
max-height: 90px;
}
-.videonode.menubutton.extension.current{
+
+.videonode.menubutton.extension.current {
max-height: 400px;
}
-.videonode.menubutton>div{
+
+.videonode.menubutton>div {
position: absolute;
}
-.videonode.menubutton.extension>div{
+
+.videonode.menubutton.extension>div {
position: relative;
display: block;
}
-#window:not(.nopointer) .videonode.menubutton.extension>.caption>.menubutton:not(.transparent2):not(.nopointer){
+
+#window:not(.nopointer) .videonode.menubutton.extension>.caption>.menubutton:not(.transparent2):not(.nopointer) {
cursor: pointer;
}
-.videonode.menubutton.extension>.caption>.menubutton{
+
+.videonode.menubutton.extension>.caption>.menubutton {
position: relative;
float: right;
font-size: 16px;
padding: 0;
text-align: center;
width: 80px;
- font-family:'STHeiti','SimHei','Microsoft JhengHei','Microsoft YaHei','WenQuanYi Micro Hei',Helvetica,Arial,sans-serif;
+ font-family: 'STHeiti', 'SimHei', 'Microsoft JhengHei', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Helvetica, Arial, sans-serif;
}
-.videonode.menubutton.extension>.caption>.menubutton>a{
+
+.videonode.menubutton.extension>.caption>.menubutton>a {
margin: 0;
padding: 0;
width: 100%;
@@ -1173,47 +1530,54 @@ input.fileinput::-webkit-file-upload-button {
cursor: pointer;
position: absolute;
}
-.videonode.menubutton>.videoavatar{
+
+.videonode.menubutton>.videoavatar {
width: 56px;
height: 56px;
- top:7px;
- left:7px;
+ top: 7px;
+ left: 7px;
background-size: cover;
}
-.videonode.menubutton>.videoavatar2{
+
+.videonode.menubutton>.videoavatar2 {
width: 20px;
height: 20px;
- top:47px;
- left:3px;
+ top: 47px;
+ left: 3px;
background-size: cover;
border-radius: 100%;
}
-.videonode.menubutton>.caption{
+
+.videonode.menubutton>.caption {
display: inline-block;
left: 84px;
top: 6px;
padding-top: 0;
white-space: nowrap;
}
-.videonode.menubutton.extension>.caption{
+
+.videonode.menubutton.extension>.caption {
left: 0;
top: 0;
margin-left: 2px;
}
-.videonode.menubutton>.text{
+
+.videonode.menubutton>.text {
font-size: 14px;
left: 85px;
top: 35px;
line-height: 20px;
text-align: left;
- font-family:'STHeiti','SimHei','Microsoft JhengHei','Microsoft YaHei','WenQuanYi Micro Hei',Helvetica,Arial,sans-serif
+ font-family: 'STHeiti', 'SimHei', 'Microsoft JhengHei', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Helvetica, Arial, sans-serif
}
-.videonode.menubutton.extension>.text{
+
+.videonode.menubutton.extension>.text {
left: 0;
top: 0;
margin-left: 5px;
}
-.videonode.menubutton.extension>.text.author>span{
+
+.videonode.menubutton.extension>.text.author>span {
/*float: right;*/
position: absolute;
right: 0;
@@ -1223,20 +1587,23 @@ input.fileinput::-webkit-file-upload-button {
text-align: center;
opacity: 0;
}
-.videonode.menubutton.extension.current>.text.author>span{
+
+.videonode.menubutton.extension.current>.text.author>span {
opacity: 1;
}
-.videonode.menubutton>.victory{
- font-family: 'huangcao','xinwei';
+
+.videonode.menubutton>.victory {
+ font-family: 'huangcao', 'xinwei';
font-size: 25px;
- text-shadow: black 0 0 1px,rgba(255, 203, 0,1) 0 0 2px,rgba(255, 203, 0,1) 0 0 5px,rgba(255, 203, 0,1) 0 0 5px,
- rgba(255, 203, 0,1) 0 0 5px,black 0 0 1px;
- color:white;
+ text-shadow: black 0 0 1px, rgba(255, 203, 0, 1) 0 0 2px, rgba(255, 203, 0, 1) 0 0 5px, rgba(255, 203, 0, 1) 0 0 5px,
+ rgba(255, 203, 0, 1) 0 0 5px, black 0 0 1px;
+ color: white;
position: absolute;
left: 48px;
top: 48px;
}
-.videonode>.video_star{
+
+.videonode>.video_star {
opacity: 0;
position: absolute;
left: 196px;
@@ -1247,23 +1614,26 @@ input.fileinput::-webkit-file-upload-button {
line-height: 20px;
text-align: center;
}
-.videonode:not(.starred):hover>.video_star{
+
+.videonode:not(.starred):hover>.video_star {
opacity: 0.5;
}
-.videonode.starred>.video_star{
+
+.videonode.starred>.video_star {
opacity: 1
}
-.onlineclient .videonode{
+.onlineclient .videonode {
margin: 5px;
- padding: 0;
- width: calc(100% - 20px);
- height: 30px;
+ padding: 0;
+ width: calc(100% - 20px);
+ height: 30px;
overflow: visible;
- border-top-left-radius:10px;
- border-bottom-left-radius:10px;
+ border-top-left-radius: 10px;
+ border-bottom-left-radius: 10px;
}
-.onlineclient .videonode>.videoavatar{
+
+.onlineclient .videonode>.videoavatar {
padding: 0;
left: -4px;
top: -2px;
@@ -1271,15 +1641,18 @@ input.fileinput::-webkit-file-upload-button {
height: 34px;
border-radius: 100%;
}
-.onlineclient .videotext{
+
+.onlineclient .videotext {
margin-top: 0px;
font-size: 14px;
width: calc(100% - 30px);
}
-.onlineclient .onlineevent.videotext{
+
+.onlineclient .onlineevent.videotext {
margin-top: 2px;
}
-.onlineclient .videonode>.name{
+
+.onlineclient .videonode>.name {
left: 35px;
max-width: 125px;
overflow: hidden;
@@ -1288,12 +1661,14 @@ input.fileinput::-webkit-file-upload-button {
height: 30px;
line-height: 30px;
font-size: 18px;
- font-family: 'lishu','xinwei';
+ font-family: 'lishu', 'xinwei';
}
-.onlineclient .videonode.videonodestatus{
+
+.onlineclient .videonode.videonodestatus {
height: auto;
}
-.onlineclient .videonode.videonodestatus>.videostatus{
+
+.onlineclient .videonode.videonodestatus>.videostatus {
position: relative;
display: block;
margin-left: 10px;
@@ -1301,50 +1676,56 @@ input.fileinput::-webkit-file-upload-button {
margin-bottom: 5px;
width: calc(100% - 20px);
}
-.onlineevent>div{
+
+.onlineevent>div {
text-align: left;
position: relative;
display: block;
margin-top: 5px;
margin-bottom: 5px;
}
-.onlineevent>div.title{
+
+.onlineevent>div.title {
font-family: 'xinwei';
font-size: 18px;
}
-.button-downloading>.button-progress{
+.button-downloading>.button-progress {
width: 100%;
border-radius: 4px;
z-index: 1;
overflow: hidden;
}
-.button-downloading>.button-progress>div{
+
+.button-downloading>.button-progress>div {
width: 0;
height: 100%;
position: absolute;
left: 0px;
top: 0px;
border-radius: 0px;
- background: linear-gradient(rgb(29,206,68),rgb(1,148,46));
+ background: linear-gradient(rgb(29, 206, 68), rgb(1, 148, 46));
}
-.button-downloading>div:not(.button-progress){
+
+.button-downloading>div:not(.button-progress) {
width: 100% !important;
z-index: 2;
}
-.button-downloading>span{
+
+.button-downloading>span {
opacity: 0;
}
-.button-downloading>div{
+
+.button-downloading>div {
height: 100%;
margin: 0 !important;
padding: 0 !important;
position: absolute !important;
left: 0 !important;
- top:0;
+ top: 0;
}
-.menu-buttons .file-container{
+.menu-buttons .file-container {
position: absolute;
margin: 0;
padding: 0;
@@ -1354,7 +1735,8 @@ input.fileinput::-webkit-file-upload-button {
height: 100%;
overflow: scroll;
}
-.menu-buttons .file-container>div{
+
+.menu-buttons .file-container>div {
position: relative;
left: 0;
display: block;
@@ -1363,37 +1745,43 @@ input.fileinput::-webkit-file-upload-button {
white-space: nowrap;
text-align: left;
}
-.menu-buttons .file-container>div>span{
+
+.menu-buttons .file-container>div>span {
cursor: pointer;
text-decoration: underline;
}
-.menu-buttons .file-container>div>img{
+
+.menu-buttons .file-container>div>img {
display: block;
margin-top: 5px;
}
-.menubutton.large.dashboard{
+.menubutton.large.dashboard {
width: 80px;
height: 80px;
margin: 6px;
position: relative !important;
}
-.menubutton.large.dashboard.dashboard2{
+
+.menubutton.large.dashboard.dashboard2 {
width: 60px;
height: 60px;
margin: 5px;
margin-top: 10px;
}
-.menubutton.large.dashboard.dashboard2>div:first-child{
+
+.menubutton.large.dashboard.dashboard2>div:first-child {
font-size: 40px;
line-height: 40px;
}
-.menubutton.large.dashboard.dashboard2>div:last-child{
+
+.menubutton.large.dashboard.dashboard2>div:last-child {
font-size: 16px;
white-space: nowrap;
}
-.menubutton.large.dashboard>div:first-child{
- font-family: 'lishu','xiaozhuan';
+
+.menubutton.large.dashboard>div:first-child {
+ font-family: 'lishu', 'xiaozhuan';
font-size: 60px;
line-height: 60px;
position: absolute;
@@ -1402,22 +1790,26 @@ input.fileinput::-webkit-file-upload-button {
width: 100%;
height: 60px;
}
-.menubutton.large.dashboard>div:last-child{
+
+.menubutton.large.dashboard>div:last-child {
font-size: 18px;
position: absolute;
left: 0;
bottom: 0;
width: 100%;
}
-.favmode{
+
+.favmode {
float: right;
}
-#create-extension{
+
+#create-extension {
height: calc(100% - 5px);
width: calc(100% - 10px);
overflow: hidden;
}
-#create-extension>div{
+
+#create-extension>div {
position: absolute;
width: 100%;
height: 100%;
@@ -1425,41 +1817,51 @@ input.fileinput::-webkit-file-upload-button {
left: 0;
top: 0;
}
-#create-extension>.menu-buttons{
- left:10px;
+
+#create-extension>.menu-buttons {
+ left: 10px;
height: calc(100% - 5px);
width: calc(100% - 15px) !important;
}
-#create-extension>.menu-buttons>.config.more{
+
+#create-extension>.menu-buttons>.config.more {
margin-left: 0px !important;
margin-top: 10px !important;
}
-#create-extension>.menu-buttons>.config.more.margin-bottom{
+
+#create-extension>.menu-buttons>.config.more.margin-bottom {
margin-left: 0px !important;
margin-top: 10px !important;
margin-bottom: 5px !important;
}
-#create-extension>.hidden{
+
+#create-extension>.hidden {
pointer-events: none;
}
-#create-extension>div:not(*:first-child).hidden{
+
+#create-extension>div:not(*:first-child).hidden {
transform: translateX(200px);
}
-#create-extension>.menu-buttons>.new_character>.skill_list{
- top: 245px;
+
+#create-extension>.menu-buttons>.new_character>.skill_list {
+ top: 245px;
}
-#create-extension>.menu-buttons>.new_character>.skill_list>div:first-child{
+
+#create-extension>.menu-buttons>.new_character>.skill_list>div:first-child {
transition: all 0s;
}
-#create-extension>.menu-buttons>.new_character>.skill_list>div:first-child:not(*:empty){
+
+#create-extension>.menu-buttons>.new_character>.skill_list>div:first-child:not(*:empty) {
margin-top: 10px;
margin-bottom: 10px;
}
-#create-extension>.menu-buttons>.new_character>.skill_list>div:first-child>button{
+
+#create-extension>.menu-buttons>.new_character>.skill_list>div:first-child>button {
margin-right: 3px;
margin-bottom: 3px;
}
-.popup-container.editor>div{
+
+.popup-container.editor>div {
width: 80%;
height: 90%;
position: absolute;
@@ -1470,10 +1872,11 @@ input.fileinput::-webkit-file-upload-button {
background: white;
overflow: hidden;
}
-.popup-container.editor>div>.editbutton{
+
+.popup-container.editor>div>.editbutton {
font-family: 'lishu';
font-size: 18px;
- color: rgb(60,60,60);
+ color: rgb(60, 60, 60);
text-shadow: none;
position: absolute;
left: 0;
@@ -1481,71 +1884,84 @@ input.fileinput::-webkit-file-upload-button {
font-size: 24px;
cursor: pointer;
}
-.popup-container.editor>div>.editbutton:first-child{
+
+.popup-container.editor>div>.editbutton:first-child {
left: auto;
right: 0;
}
-.popup-container.editor>div>div:last-child{
+
+.popup-container.editor>div>div:last-child {
width: 100%;
height: calc(100% - 40px);
position: absolute;
- top:40px;
+ top: 40px;
border-radius: 0 0 4px 4px;
- border-top: 1px solid rgba(0,0,0,0.2);
+ border-top: 1px solid rgba(0, 0, 0, 0.2);
}
-.popup-container.editor>div>div:last-child>textarea{
+
+.popup-container.editor>div>div:last-child>textarea {
width: 100%;
height: 100%;
- border:none;
- margin:0;
+ border: none;
+ margin: 0;
padding: 0;
resize: none;
}
+
.menubutton.large.new_card,
-.menubutton.large.new_card_delete{
+.menubutton.large.new_card_delete {
left: 12px;
top: 130px;
margin-bottom: 20px;
}
-.menubutton.large.new_card_delete{
+
+.menubutton.large.new_card_delete {
left: 155px;
}
-.edit_pile{
+
+.edit_pile {
width: 100%;
left: 0;
padding-bottom: 20px;
}
-.edit_pile>div:last-child{
+
+.edit_pile>div:last-child {
width: 100%;
position: relative;
}
-.edit_pile>div:last-child>button{
+
+.edit_pile>div:last-child>button {
margin-right: 3px;
- margin-top: 3px;
+ margin-top: 3px;
}
-.new_character.new_skill>div{
+
+.new_character.new_skill>div {
position: relative;
margin-top: 2px;
white-space: nowrap;
overflow: visible;
}
-.new_character.new_skill>div>button{
+
+.new_character.new_skill>div>button {
margin-right: 3px;
}
-.menu-buttons.new_skill>.menubutton{
+
+.menu-buttons.new_skill>.menubutton {
position: relative;
- margin:5px;
+ margin: 5px;
}
-.new_character.new_skill>.menubutton.large{
+
+.new_character.new_skill>.menubutton.large {
left: 13px;
position: absolute;
top: 88px;
}
-.new_character.new_skill>.menubutton.large.new_card_delete{
+
+.new_character.new_skill>.menubutton.large.new_card_delete {
left: 155px;
}
-.popup-container>.prompt-container{
+.popup-container>.prompt-container {
display: table;
width: 100%;
height: 100%;
@@ -1554,17 +1970,20 @@ input.fileinput::-webkit-file-upload-button {
margin: 0;
padding: 0;
}
-.popup-container>.prompt-container>div{
+
+.popup-container>.prompt-container>div {
height: auto;
display: table-cell;
vertical-align: middle;
text-align: center;
position: relative;
}
-.popup-container>.prompt-container>div>div{
+
+.popup-container>.prompt-container>div>div {
position: relative;
}
-.popup-container>.prompt-container>div>div>div{
+
+.popup-container>.prompt-container>div>div>div {
display: block;
width: calc(100% - 10px);
margin-top: 15px;
@@ -1575,13 +1994,15 @@ input.fileinput::-webkit-file-upload-button {
position: relative;
width: 230px;
}
+
/* .popup-container>.prompt-container>div>div>div:first-child{ */
- /*text-align: left;*/
+/*text-align: left;*/
/* } */
-.popup-container>.prompt-container>div>div>div:last-child{
+.popup-container>.prompt-container>div>div>div:last-child {
margin-bottom: 15px;
}
-.popup-container>.prompt-container>div>div>div>input{
+
+.popup-container>.prompt-container>div>div>div>input {
text-align: left;
width: 100%;
resize: none;
@@ -1590,7 +2011,8 @@ input.fileinput::-webkit-file-upload-button {
height: 20px;
box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 0px 1px;
}
-.popup-container>.prompt-container>div>div>div>.menubutton{
+
+.popup-container>.prompt-container>div>div>div>.menubutton {
position: relative;
margin-left: 6px;
margin-right: 6px;
@@ -1598,6 +2020,7 @@ input.fileinput::-webkit-file-upload-button {
padding-top: 2px;
padding-bottom: 2px;
}
-#window:not(.nopointer) .popup-container>.prompt-container>div>div>div>.menubutton{
+
+#window:not(.nopointer) .popup-container>.prompt-container>div>div>div>.menubutton {
cursor: pointer;
-}
+}
\ No newline at end of file
From 7cee261cc75e324147c80599a6bd0ae5114e99b4 Mon Sep 17 00:00:00 2001
From: Tipx-L <138244655+Tipx-L@users.noreply.github.com>
Date: Wed, 20 Sep 2023 02:41:16 -0700
Subject: [PATCH 2/5] Add the ability for lib.element.player.damage to detect
lib.element.event.customSource.
---
card/standard.js | 2 +-
game/game.js | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/card/standard.js b/card/standard.js
index 5dd062144..f5bf259d3 100644
--- a/card/standard.js
+++ b/card/standard.js
@@ -895,7 +895,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
"step 1"
if(result.bool==false){
- target.damage(event.baseDamage,event.customSource||player);
+ target.damage(event.baseDamage);
}
},
ai:{
diff --git a/game/game.js b/game/game.js
index 913b67f07..234373256 100644
--- a/game/game.js
+++ b/game/game.js
@@ -23780,7 +23780,7 @@
}
if(next.card==undefined&&!nocard) next.card=event.card;
if(next.cards==undefined&&!nocard) next.cards=event.cards;
- if(next.source==undefined&&!nosource) next.source=event.player;
+ if(next.source==undefined&&!nosource) next.source=event.customSource||event.player;
if(next.source&&next.source.isDead()) delete next.source;
if(next.unreal==undefined) next.unreal=false;
if(next.num==undefined) next.num=1;
From dd5fb6d5afe302775e38ce4012dc4e4abb054826 Mon Sep 17 00:00:00 2001
From: Tipx-L <138244655+Tipx-L@users.noreply.github.com>
Date: Wed, 20 Sep 2023 04:21:51 -0700
Subject: [PATCH 3/5] Add the ability for lib.element.player.damage to detect
lib.element.event.baseDamage and lib.element.event.extraDamage.
---
card/extra.js | 4 ++--
card/guozhan.js | 8 ++++----
card/standard.js | 18 +++++++++---------
card/yingbian.js | 2 +-
card/yongjian.js | 7 ++++---
character/refresh.js | 2 +-
game/game.js | 6 +++---
7 files changed, 24 insertions(+), 23 deletions(-)
diff --git a/card/extra.js b/card/extra.js
index 98187bd2d..f1dc21b7a 100644
--- a/card/extra.js
+++ b/card/extra.js
@@ -68,7 +68,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
content:function(){
if(typeof event.baseDamage!='number') event.baseDamage=1;
if(target.isDying()||event.getParent(2).type=='dying'){
- target.recover(event.baseDamage);
+ target.recover();
if(_status.currentPhase==target){
target.getStat().card.jiu--;
}
@@ -210,7 +210,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
game.delay(2);
"step 2"
if(result.bool){
- target.damage('fire',event.baseDamage||1);
+ target.damage('fire');
}
else{
target.addTempSkill('huogong2');
diff --git a/card/guozhan.js b/card/guozhan.js
index 488a927fb..cde521ddd 100644
--- a/card/guozhan.js
+++ b/card/guozhan.js
@@ -462,13 +462,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
target.discard(target.getCards('e',function(card){
return lib.filter.cardDiscardable(card,target,'shuiyanqijunx');
}));
- target.damage('thunder',event.baseDamage||1);
+ target.damage('thunder');
event.finish();
}
else if(!target.countCards('e',function(card){
return lib.filter.cardDiscardable(card,target,'shuiyanqijunx');
})){
- var next=target.damage(event.baseDamage||1);
+ var next=target.damage();
if(!get.is.single()) next.nature='thunder';
event.finish();
return;
@@ -489,7 +489,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}));
}
else{
- var next=target.damage(event.baseDamage||1);
+ var next=target.damage();
if(!get.is.single()) next.nature='thunder'
}
event.finish();
@@ -861,7 +861,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
selectTarget:-1,
modTarget:true,
content:function(){
- target.damage('fire',event.baseDamage||1);
+ target.damage('fire');
},
ai:{
order:5,
diff --git a/card/standard.js b/card/standard.js
index f5bf259d3..8261b1e42 100644
--- a/card/standard.js
+++ b/card/standard.js
@@ -171,7 +171,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
"step 3"
if((!result||!result.bool||!result.result||result.result!='shaned')&&!event.unhurt){
- target.damage(get.nature(event.card),event.baseDamage+event.extraDamage);
+ target.damage(get.nature(event.card));
event.result={bool:true}
event.trigger('shaDamage');
}
@@ -193,7 +193,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
});
"step 5"
if((!result||!result.bool)&&!event.unhurt){
- target.damage(get.nature(event.card),event.baseDamage+event.extraDamage);
+ target.damage(get.nature(event.card));
event.result={bool:true}
event.trigger('shaDamage');
event.finish();
@@ -203,7 +203,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
"step 6"
if((!result||!result.bool)&&!event.unhurt){
- target.damage(get.nature(event.card),event.baseDamage+event.extraDamage);
+ target.damage(get.nature(event.card));
event.result={bool:true}
event.trigger('shaDamage');
event.finish();
@@ -388,7 +388,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
return target.hp0) return 1;
diff --git a/character/refresh.js b/character/refresh.js
index c2fbdf18d..ab6f5a6f6 100755
--- a/character/refresh.js
+++ b/character/refresh.js
@@ -1080,7 +1080,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.delay(2);
"step 2"
if(result.bool){
- target.damage('fire',event.baseDamage||1);
+ target.damage('fire');
}
else{
target.addTempSkill('huogong2');
diff --git a/game/game.js b/game/game.js
index 234373256..37f976c59 100644
--- a/game/game.js
+++ b/game/game.js
@@ -23783,7 +23783,7 @@
if(next.source==undefined&&!nosource) next.source=event.customSource||event.player;
if(next.source&&next.source.isDead()) delete next.source;
if(next.unreal==undefined) next.unreal=false;
- if(next.num==undefined) next.num=1;
+ if(next.num==undefined) next.num=(event.baseDamage||1)+(event.extraDamage||0);
next.original_num=next.num;
next.change_history=[];
if(next.nature=='poison') delete next._triggered;
@@ -23833,8 +23833,8 @@
}
if(next.card==undefined&&!nocard) next.card=event.card;
if(next.cards==undefined&&!nocard) next.cards=event.cards;
- if(next.source==undefined&&!nosource) next.source=event.player;
- if(next.num==undefined) next.num=1;
+ if(next.source==undefined&&!nosource) next.source=event.customSource||event.player;
+ if(next.num==undefined) next.num=(event.baseDamage||1)+(event.extraDamage||0);
if(next.num<=0) _status.event.next.remove(next);
next.setContent('recover');
return next;
From 98534ec3793cc30d043f2b5c17f6bb8f39079481 Mon Sep 17 00:00:00 2001
From: Tipx-L <138244655+Tipx-L@users.noreply.github.com>
Date: Wed, 20 Sep 2023 04:22:18 -0700
Subject: [PATCH 4/5] Add group images.
---
image/card/group_jin.png | Bin 0 -> 17722 bytes
image/card/group_shen.png | Bin 0 -> 3660 bytes
image/card/group_western.png | Bin 0 -> 2545 bytes
3 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 image/card/group_jin.png
create mode 100644 image/card/group_shen.png
create mode 100644 image/card/group_western.png
diff --git a/image/card/group_jin.png b/image/card/group_jin.png
new file mode 100644
index 0000000000000000000000000000000000000000..dcb09582976c03fcc76cca2922096294f5d8a964
GIT binary patch
literal 17722
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
FV1nUXz%>8>
literal 0
HcmV?d00001
diff --git a/image/card/group_shen.png b/image/card/group_shen.png
new file mode 100644
index 0000000000000000000000000000000000000000..88cf3c33b2f2982ce7e78957a9a8c5938c4cd55f
GIT binary patch
literal 3660
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
Hu0mjfz9gR=
literal 0
HcmV?d00001
From 536d67521a96c370410a46a5dd6541f11c647f3b Mon Sep 17 00:00:00 2001
From: Tipx-L <138244655+Tipx-L@users.noreply.github.com>
Date: Wed, 20 Sep 2023 05:49:55 -0700
Subject: [PATCH 5/5] Ruby and RT.
---
game/game.js | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/game/game.js b/game/game.js
index 37f976c59..6e1aa4272 100644
--- a/game/game.js
+++ b/game/game.js
@@ -53234,7 +53234,7 @@
if(lib.config.show_characternamepinyin){
const span=document.createElement('span');
span.style.fontWeight='bold';
- const nameInfo=get.character(name),nameExInfo=nameInfo[4],characterName=nameExInfo&&nameExInfo.includes('translateNameAsIs:get.charactercard')?lib.translate[name]:get.rawName(name);
+ const nameInfo=get.character(name),characterName=nameInfo[4].includes('ruby')?lib.translate[name]:get.rawName(name);
span.textContent=characterName;
const ruby=document.createElement('ruby');
ruby.appendChild(span);
@@ -53242,7 +53242,7 @@
leftParenthesisRP.textContent='(';
ruby.appendChild(leftParenthesisRP);
const rt=document.createElement('rt');
- rt.textContent=get.pinyin(characterName).join(' ');
+ rt.textContent=lib.translate[`${name}_rt`]||get.pinyin(characterName).join(' ');
ruby.appendChild(rt);
const rightParenthesisRP=document.createElement('rp');
rightParenthesisRP.textContent=')';
@@ -53332,7 +53332,7 @@
this.classList.add('active');
const skillNameSpan=document.createElement('span'),skillNameSpanStyle=skillNameSpan.style;
skillNameSpanStyle.fontWeight='bold';
- const skillName=get.translation(this.link);
+ const link=this.link,skillName=get.translation(link);
skillNameSpan.textContent=skillName;
if(lib.config.show_skillnamepinyin&&skillName!='阵亡'){
const ruby=document.createElement('ruby');
@@ -53341,7 +53341,7 @@
leftParenthesisRP.textContent='(';
ruby.appendChild(leftParenthesisRP);
const rt=document.createElement('rt');
- rt.textContent=get.pinyin(skillName).join(' ');
+ rt.textContent=lib.translate[`${link}_rt`]||get.pinyin(skillName).join(' ');
ruby.appendChild(rt);
const rightParenthesisRP=document.createElement('rp');
rightParenthesisRP.textContent=')';
@@ -53376,7 +53376,7 @@
leftParenthesisRP.textContent='(';
ruby.appendChild(leftParenthesisRP);
const rt=document.createElement('rt');
- rt.textContent=get.pinyin(derivationName).join(' ');
+ rt.textContent=lib.translate[`${value}_rt`]||get.pinyin(derivationName).join(' ');
ruby.appendChild(rt);
const rightParenthesisRP=document.createElement('rp');
rightParenthesisRP.textContent=')';