From c2394b872a7635de90b77be599068483da43c26a Mon Sep 17 00:00:00 2001
From: Tipx-L <138244655+Tipx-L@users.noreply.github.com>
Date: Tue, 26 Sep 2023 09:08:25 -0700
Subject: [PATCH] Use lib.path.
---
game/game.js | 222 +++++++++++++++++++--------------------------------
1 file changed, 84 insertions(+), 138 deletions(-)
diff --git a/game/game.js b/game/game.js
index 277770392..68586be25 100644
--- a/game/game.js
+++ b/game/game.js
@@ -4022,11 +4022,11 @@
show_characternamepinyin:{
name:'显示武将名注解',
intro:'在武将资料卡显示武将名及其注解、性别、势力、体力等信息',
- init:true,
+ init:'showPinyin',
unfrequent:true,
item:{
- false:'不显示',
- true:'显示拼音',
+ doNotShow:'不显示',
+ showPinyin:'显示拼音',
showCodeIdentifier:'显示代码ID'
},
visualMenu:(node,link,name)=>{
@@ -4062,41 +4062,17 @@
show_skillnamepinyin:{
name:'显示技能名注解',
intro:'在武将资料卡显示技能名注解',
- init:true,
- unfrequent:true,
- item:{
- false:'不显示',
- true:'显示拼音',
- showCodeIdentifier:'显示代码ID'
+ get init(){
+ return lib.configMenu.view.config.show_characternamepinyin.init;
},
- visualMenu:(node,link,name)=>{
- node.classList.add('button','character');
- const style=node.style;
- style.alignItems='center';
- style.animation='background-position-left-center-right-center-left-center 15s ease infinite';
- style.background='linear-gradient(-45deg, #EE7752, #E73C7E, #23A6D5, #23D5AB)';
- style.backgroundSize='400% 400%';
- style.display='flex';
- style.height='60px';
- style.justifyContent='center';
- style.width='150px';
- const firstChild=node.firstChild;
- firstChild.removeAttribute('class');
- firstChild.style.position='initial';
- if(link=='false') return;
- const ruby=document.createElement('ruby');
- ruby.textContent=name;
- const leftParenthesisRP=document.createElement('rp');
- leftParenthesisRP.textContent='(';
- ruby.appendChild(leftParenthesisRP);
- const rt=document.createElement('rt');
- rt.style.fontSize='smaller';
- rt.textContent=link=='showCodeIdentifier'?link:get.pinyin(name).join(' ');
- ruby.appendChild(rt);
- const rightParenthesisRP=document.createElement('rp');
- rightParenthesisRP.textContent=')';
- ruby.appendChild(rightParenthesisRP);
- firstChild.innerHTML=ruby.outerHTML;
+ get unfrequent(){
+ return lib.configMenu.view.config.show_characternamepinyin.unfrequent;
+ },
+ get item(){
+ return lib.configMenu.view.config.show_characternamepinyin.item;
+ },
+ get visualMenu(){
+ return lib.configMenu.view.config.show_characternamepinyin.visualMenu;
}
}
}
@@ -20027,7 +20003,7 @@
}
return this;
},
- assgin(obj) {
+ assign(obj) {
if(lib.skill[skillName]!=skill) throw `This skill has been destroyed`;
if(typeof obj=='object'&&obj!==null) Object.assign(skill,obj);
return this;
@@ -34012,67 +33988,51 @@
}
return node;
},
- changeLand:function(url,player){
+ changeLand:(url,player)=>{
game.addVideo('changeLand',player,url);
- if(url.indexOf('/')===-1){
- url='image/card/'+url;
- }
- if(url.indexOf('.png')==-1&&url.indexOf('.jpg')==-1){
- url+='.jpg';
- }
- var name=url.slice(url.lastIndexOf('/')+1,url.lastIndexOf('.'));
- var skill=name+'_skill';
- var node=ui.create.div('.background.upper.land');
- node.setBackgroundImage(url);
- node.destroy=function(){
- if (this.skill) {
- game.removeGlobalSkill(this.skill);
- if(this.system){
- this.system.remove();
+ const parsedPath=lib.path.parse(url);
+ delete parsedPath.base;
+ if(!parsedPath.dir) parsedPath.dir='image/card';
+ if(!parsedPath.ext) parsedPath.ext='.jpg';
+ game.broadcastAll((formattedPath,name,skill,player)=>{
+ const node=ui.create.div('.background.upper.land');
+ node.setBackgroundImage(formattedPath);
+ node.destroy=()=>{
+ if (node.skill) {
+ game.removeGlobalSkill(node.skill);
+ if(node.system) node.system.remove();
}
+ node.classList.add('hidden');
+ setTimeout(()=>node.remove(),3000);
+ if(ui.land==node) ui.land=null;
}
- this.classList.add('hidden');
- var node=this;
- setTimeout(function(){
- node.remove();
- },3000);
- if(ui.land==this){
- ui.land=null;
+ if(ui.land){
+ document.body.insertBefore(node,ui.land);
+ ui.land.destroy();
}
- }
- if(ui.land){
- document.body.insertBefore(node,ui.land);
- ui.land.destroy();
- }
- else{
- node.classList.add('hidden');
- document.body.insertBefore(node,ui.window);
- ui.refresh(node);
- node.classList.remove('hidden');
- }
- ui.land=node;
- if(name){
+ else{
+ node.classList.add('hidden');
+ document.body.insertBefore(node,ui.window);
+ ui.refresh(node);
+ node.classList.remove('hidden');
+ }
+ ui.land=node;
+ if(!name) return;
node.name=name;
node.skill=skill;
if(player){
node.player=player;
player.addTempSkill('land_used');
}
- node.system=ui.create.system(lib.translate[skill],null,true,true);
- lib.setPopped(node.system,function(){
- var uiintro=ui.create.dialog('hidden');
- var str='地图';
- if(player){
- str='来源:'+get.translation(player);
- }
- var caption=uiintro.addText(str);
- caption.style.margin='0';
- uiintro._place_text=uiintro.add('
'+lib.translate[skill+'_info']+'
');
- uiintro.add(ui.create.div('.placeholder.slim'));
- return uiintro;
+ lib.setPopped(node.system=ui.create.system(lib.translate[skill],null,true,true),()=>{
+ const uiIntro=ui.create.dialog('hidden');
+ uiIntro.addText(player?`来源:${get.translation(player)}`:'地图').style.margin='0';
+ uiIntro._place_text=uiIntro.add(ui.create.div('.text',lib.translate[`${skill}_info`]));
+ uiIntro.add(ui.create.div('.placeholder.slim'));
+ return uiIntro;
},200);
game.addGlobalSkill(skill);
- }
+ },lib.path.format(parsedPath),parsedPath.name,`${name}_skill`,player);
},
checkFileList:function(updates,proceed){
var n=updates.length;
@@ -34547,7 +34507,7 @@
audio.oncanplay=()=>Promise.resolve(audio.play()).catch(()=>void 0);
new Promise((resolve,reject)=>{
if(path.indexOf('db:')==0) game.getDB('file',path.slice(3)).then(octetStream=>resolve(get.objectURL(octetStream)),reject);
- else if(path.split('/').pop().split('.').length>1) resolve(`${lib.assetURL}audio/${path}`);
+ else if(lib.path.extname(path)) resolve(`${lib.assetURL}audio/${path}`);
else resolve(`${lib.assetURL}audio/${path}.mp3`);
}).then(resolvedPath=>{
audio.src=resolvedPath;
@@ -37173,28 +37133,24 @@
(triggerevent||_status.event).next.push(next);
return next;
},
- addCharacter:function(name,info){
- var extname=(_status.extension||info.extension);
- var imgsrc;
- if(_status.evaluatingExtension){
- imgsrc='db:extension-'+extname+':'+name+'.jpg';
- }
- else{
- imgsrc='ext:'+extname+'/'+name+'.jpg';
- }
- const audiosrc='die:ext:'+extname+'/'+name+'.mp3';
- var character=[info.sex,info.group,info.hp,info.skills||[],[imgsrc,audiosrc]];
- if(info.tags){
- character[4]=character[4].concat(info.tags);
- }
+ addCharacter:(name,information)=>{
+ const extensionName=_status.extension||information.extension,character=[
+ information.sex,
+ information.group,
+ information.hp,
+ information.skills||[],
+ [
+ _status.evaluatingExtension?`db:extension-${extensionName}:${name}.jpg`:`ext:${extensionName}/${name}.jpg`,
+ `die:ext:${extensionName}/${name}.mp3`
+ ]
+ ];
+ if(information.tags) character[4]=character[4].concat(information.tags);
lib.character[name]=character;
- var packname='mode_extension_'+extname;
- if(!lib.characterPack[packname]){
- lib.characterPack[packname]={};
- }
- lib.translate[name]=info.translate;
- lib.characterPack[packname][name]=character;
- lib.translate[packname+'_character_config']=extname;
+ const packName=`mode_extension_${extensionName}`;
+ if(!lib.characterPack[packName]) lib.characterPack[packName]={};
+ lib.translate[name]=information.translate;
+ lib.characterPack[packName][name]=character;
+ lib.translate[`${packName}_character_config`]=extensionName;
},
addCharacterPack:(pack,packagename)=>{
var extname=_status.extension||'扩展';
@@ -42835,29 +42791,19 @@
var loadData=function(){
var zip=new JSZip();
zip.load(data);
- var images=[],audios=[],fonts=[],directories={},directorylist=[];
- for(var i in zip.files){
- var ext=i.slice(i.lastIndexOf('.')+1).toLowerCase();
- if(i.indexOf('audio/')==0&&(ext=='mp3'||ext=='ogg')){
- audios.push(i);
+ var images=[],audios=[],fonts=[],directories={},directoryList=[];
+ Object.keys(zip.files).forEach(file=>{
+ const parsedPath=lib.path.parse(file),directory=parsedPath.dir,fileExtension=parsedPath.ext.toLowerCase();
+ if(directory.indexOf('audio')==0&&(fileExtension=='.mp3'||fileExtension=='.ogg')) audios.push(file);
+ else if(directory.indexOf('font')==0&&fileExtension=='.woff2') fonts.push(file);
+ else if(directory.indexOf('image')==0&&(fileExtension=='.jpg'||fileExtension=='.png')) images.push(file);
+ else return;
+ if(!directories[directory]){
+ directories[directory]=[];
+ directoryList.push(directory);
}
- else if(i.indexOf('font/')==0&&ext=='woff2'){
- fonts.push(i);
- }
- else if(i.indexOf('image/')==0&&(ext=='jpg'||ext=='png')){
- images.push(i);
- }
- else{
- continue;
- }
- var index=i.lastIndexOf('/');
- var str=i.slice(0,index);
- if(!directories[str]){
- directories[str]=[];
- directorylist.push(str);
- }
- directories[str].push(i.slice(index+1));
- }
+ directories[directory].push(parsedPath.base);
+ });
if(audios.length||fonts.length||images.length){
var str='';
if(audios.length){
@@ -42896,13 +42842,13 @@
assetLoaded();
}
};
- game.ensureDirectory(directorylist,writeFile);
+ game.ensureDirectory(directoryList,writeFile);
}
else{
var getDirectory=function(){
- if(directorylist.length){
- var dir=directorylist.shift();
+ if(directoryList.length){
+ var dir=directoryList.shift();
var filelist=directories[dir];
window.resolveLocalFileSystemURL(lib.assetURL+dir,function(entry){
var writeFile=function(){
@@ -42930,7 +42876,7 @@
assetLoaded();
}
};
- game.ensureDirectory(directorylist,getDirectory);
+ game.ensureDirectory(directoryList,getDirectory);
}
}
else{
@@ -54082,7 +54028,7 @@
fav.classList.add('active');
}
const introduction=ui.create.div('.characterintro',uiintro),showCharacterNamePinyin=lib.config.show_characternamepinyin;
- if(showCharacterNamePinyin){
+ if(showCharacterNamePinyin!='doNotShow'){
const characterIntroTable=ui.create.div('.character-intro-table',introduction),span=document.createElement('span');
span.style.fontWeight='bold';
const nameInfo=get.character(name),exInfo=nameInfo[4],characterName=exInfo&&exInfo.includes('ruby')?lib.translate[name]:get.rawName(name);
@@ -54192,7 +54138,7 @@
const link=this.link,skillName=get.translation(link);
skillNameSpan.innerHTML=skillName;
const showSkillNamePinyin=lib.config.show_skillnamepinyin;
- if(showSkillNamePinyin&&skillName!='阵亡'){
+ if(showSkillNamePinyin!='doNotShow'&&skillName!='阵亡'){
const ruby=document.createElement('ruby');
ruby.appendChild(skillNameSpan);
const leftParenthesisRP=document.createElement('rp');
@@ -54228,7 +54174,7 @@
derivationNameSpanStyle.fontWeight='bold';
const derivationName=get.translation(derivation);
derivationNameSpan.innerHTML=derivationName;
- if(showSkillNamePinyin&&derivationName.length<=5&&derivation.indexOf('_faq')==-1){
+ if(showSkillNamePinyin!='doNotShow'&&derivationName.length<=5&&derivation.indexOf('_faq')==-1){
const ruby=document.createElement('ruby');
ruby.appendChild(derivationNameSpan);
const leftParenthesisRP=document.createElement('rp');