remove custom characters
This commit is contained in:
parent
1aa26ed0a6
commit
afcddbf2d3
|
@ -286,8 +286,6 @@ window.config={
|
||||||
bannedpile:{},
|
bannedpile:{},
|
||||||
customcardpile:{},
|
customcardpile:{},
|
||||||
addedpile:{},
|
addedpile:{},
|
||||||
customCharacterPack:{},
|
|
||||||
customCardPack:{},
|
|
||||||
|
|
||||||
mode:'identity',
|
mode:'identity',
|
||||||
mode_config:{
|
mode_config:{
|
||||||
|
|
879
game/game.js
879
game/game.js
|
@ -65,8 +65,6 @@
|
||||||
canvasUpdates:[],
|
canvasUpdates:[],
|
||||||
video:[],
|
video:[],
|
||||||
_onDB:[],
|
_onDB:[],
|
||||||
customCharacters:[],
|
|
||||||
customCards:[],
|
|
||||||
skilllist:[],
|
skilllist:[],
|
||||||
characterPack:{},
|
characterPack:{},
|
||||||
cardPack:{},
|
cardPack:{},
|
||||||
|
@ -99,37 +97,6 @@
|
||||||
lib._onDB.push(func);
|
lib._onDB.push(func);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
setTranslate:function(name){
|
|
||||||
if(name.indexOf('|')==-1){
|
|
||||||
lib.translate[name]=name;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
if(name.lastIndexOf('|')>name.indexOf('|')){
|
|
||||||
lib.translate[name]=name.slice(name.indexOf('|')+1,name.lastIndexOf('|'));
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
lib.translate[name]=name.slice(name.indexOf('|')+1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
checkCharacterName:function(name){
|
|
||||||
if(lib.character[name]){
|
|
||||||
if(!lib.customCharacters.contains(name)) return true;
|
|
||||||
for(var i in lib.config.customCharacterPack){
|
|
||||||
if(lib.config.customCharacterPack[i].character.contains(name)) return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
checkSkillName:function(name){
|
|
||||||
if(lib.skill[name]){
|
|
||||||
if(!lib.skill[name].createInfo) return true;
|
|
||||||
for(var i in lib.config.customCharacterPack){
|
|
||||||
if(lib.config.customCharacterPack[i].skill.contains(name)) return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
listenEnd:function(node){
|
listenEnd:function(node){
|
||||||
if(!node._listeningEnd){
|
if(!node._listeningEnd){
|
||||||
node._listeningEnd=true;
|
node._listeningEnd=true;
|
||||||
|
@ -5337,7 +5304,7 @@
|
||||||
var list=lib.rank.s.concat(lib.rank.ap).concat(lib.rank.a).concat(lib.rank.am).
|
var list=lib.rank.s.concat(lib.rank.ap).concat(lib.rank.a).concat(lib.rank.am).
|
||||||
concat(lib.rank.bp).concat(lib.rank.b).concat(lib.rank.bm).concat(lib.rank.c).concat(lib.rank.d);
|
concat(lib.rank.bp).concat(lib.rank.b).concat(lib.rank.bm).concat(lib.rank.c).concat(lib.rank.d);
|
||||||
for(var i in lib.character){
|
for(var i in lib.character){
|
||||||
if(i!='zuoci'&&i.indexOf('boss_')!=0&&i.indexOf('tafang_')!=0&&!list.contains(i)&&!lib.customCharacters.contains(i)) console.log(i);
|
if(i!='zuoci'&&i.indexOf('boss_')!=0&&i.indexOf('tafang_')!=0&&!list.contains(i)) console.log(i);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
h:function(player){
|
h:function(player){
|
||||||
|
@ -16568,50 +16535,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
import:function(type,obj){
|
import:function(type,obj){
|
||||||
if(type=='character'){
|
if(type=='extension'){
|
||||||
if(lib.config.customCharacterPack[obj.name]){
|
|
||||||
alert('武将包已存在');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var pack={
|
|
||||||
name:obj.name,
|
|
||||||
character:[],
|
|
||||||
skill:[],
|
|
||||||
};
|
|
||||||
for(var i in obj.character){
|
|
||||||
if(lib.checkCharacterName(i)){
|
|
||||||
alert('武将名重复:'+i);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
game.putDB('character',i,obj.character[i]);
|
|
||||||
lib.character[i]=obj.character[i];
|
|
||||||
lib.customCharacters.add(i);
|
|
||||||
pack.character.push(i);
|
|
||||||
lib.setTranslate(i);
|
|
||||||
}
|
|
||||||
for(var i in obj.skill){
|
|
||||||
if(lib.checkSkillName(i)){
|
|
||||||
alert('技能名重复:'+i);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var info=obj.skill[i];
|
|
||||||
try{
|
|
||||||
eval('lib.skill["'+info.name+'"]={'+info.content+'}');
|
|
||||||
}
|
|
||||||
catch(e){
|
|
||||||
console.log(e);
|
|
||||||
lib.skill[info.name]={};
|
|
||||||
}
|
|
||||||
lib.skill[info.name].createInfo=info;
|
|
||||||
lib.setTranslate(i);
|
|
||||||
lib.translate[info.name+'_info']=info.description;
|
|
||||||
game.putDB('skill',info.name,info);
|
|
||||||
pack.skill.push(i);
|
|
||||||
}
|
|
||||||
lib.config.customCharacterPack[obj.name]=pack;
|
|
||||||
game.saveConfig('customCharacterPack',lib.config.customCharacterPack);
|
|
||||||
}
|
|
||||||
else if(type=='extension'){
|
|
||||||
lib.extensionMenu['extension_'+obj.name]={
|
lib.extensionMenu['extension_'+obj.name]={
|
||||||
enable:{
|
enable:{
|
||||||
name:'开启',
|
name:'开启',
|
||||||
|
@ -16948,88 +16872,6 @@
|
||||||
downloadLink.click();
|
downloadLink.click();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
exportCharacters:function(packname,list,callback){
|
|
||||||
var zipReady=function(){
|
|
||||||
var zip=new JSZip();
|
|
||||||
var imageLoaded=0;
|
|
||||||
var character={
|
|
||||||
name:packname||'noname',
|
|
||||||
character:{},
|
|
||||||
skill:{},
|
|
||||||
};
|
|
||||||
var load=function(img){
|
|
||||||
var blob = zip.generate({type:"blob"});
|
|
||||||
var fileNameToSaveAs = packname||'noname';
|
|
||||||
fileNameToSaveAs=fileNameToSaveAs.replace(/\\|\/|\:|\?|\"|\*|<|>|\|/g,'.');
|
|
||||||
fileNameToSaveAs+='.zip';
|
|
||||||
|
|
||||||
if(lib.device){
|
|
||||||
var directory;
|
|
||||||
if(lib.device=='android'){
|
|
||||||
directory=cordova.file.externalDataDirectory;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
directory=cordova.file.documentsDirectory;
|
|
||||||
}
|
|
||||||
window.resolveLocalFileSystemURL(directory,function(entry){
|
|
||||||
entry.getFile(fileNameToSaveAs,{create:true},function(fileEntry){
|
|
||||||
fileEntry.createWriter(function(fileWriter){
|
|
||||||
fileWriter.onwriteend=function(){
|
|
||||||
alert('文件已导出至'+directory+fileNameToSaveAs);
|
|
||||||
}
|
|
||||||
fileWriter.write(blob)
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
var downloadLink = document.createElement("a");
|
|
||||||
downloadLink.download = fileNameToSaveAs;
|
|
||||||
downloadLink.innerHTML = "Download File";
|
|
||||||
downloadLink.href = window.URL.createObjectURL(blob);
|
|
||||||
downloadLink.click();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(typeof callback=='function'){
|
|
||||||
callback(character);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
for(var i=0;i<lib.customCharacters.length;i++){
|
|
||||||
var name=lib.customCharacters[i];
|
|
||||||
if(lib.checkCharacterName(name)){
|
|
||||||
imageLoaded++;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if(list&&!list.contains(name)){
|
|
||||||
imageLoaded++;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
character.character[name]=lib.character[name];
|
|
||||||
for(var j=0;j<lib.character[name][3].length;j++){
|
|
||||||
var skillname=lib.character[name][3][j];
|
|
||||||
if(lib.skill[skillname].createInfo){
|
|
||||||
character.skill[skillname]=lib.skill[skillname].createInfo;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
(function(name){
|
|
||||||
game.getDB('image','character:'+name,function(img){
|
|
||||||
imageLoaded++;
|
|
||||||
zip.file(name+'.jpg',img.slice(img.indexOf('base64,')+7),{base64:true});
|
|
||||||
if(imageLoaded==lib.customCharacters.length){
|
|
||||||
load();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}(name));
|
|
||||||
}
|
|
||||||
zip.file('pack.js','game.import("character",'+lib.init.stringify(character)+')');
|
|
||||||
}
|
|
||||||
if(!window.JSZip){
|
|
||||||
lib.init.js(lib.assetURL+'game','jszip',zipReady);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
zipReady();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
multiDownload:function(list,onsuccess,onerror,onfinish,process,dev){
|
multiDownload:function(list,onsuccess,onerror,onfinish,process,dev){
|
||||||
list=list.slice(0);
|
list=list.slice(0);
|
||||||
var download=function(){
|
var download=function(){
|
||||||
|
@ -22571,7 +22413,6 @@
|
||||||
if(node.link){
|
if(node.link){
|
||||||
if(node.mode.indexOf('mode_')==0) continue;
|
if(node.mode.indexOf('mode_')==0) continue;
|
||||||
if(node.mode=='custom') continue;
|
if(node.mode=='custom') continue;
|
||||||
if(lib.config.customCharacterPack[node.mode]) continue;
|
|
||||||
if(connectMenu){
|
if(connectMenu){
|
||||||
if(!lib.config.connect_characters.contains(node.mode)){
|
if(!lib.config.connect_characters.contains(node.mode)){
|
||||||
node.classList.remove('off');
|
node.classList.remove('off');
|
||||||
|
@ -22661,7 +22502,7 @@
|
||||||
init:lib.config.characters.contains(mode),
|
init:lib.config.characters.contains(mode),
|
||||||
onclick:togglePack
|
onclick:togglePack
|
||||||
});
|
});
|
||||||
if(mode.indexOf('mode_')!=0&&!lib.config.customCharacterPack[mode]){
|
if(mode.indexOf('mode_')!=0){
|
||||||
page.appendChild(cfgnode);
|
page.appendChild(cfgnode);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -22707,57 +22548,7 @@
|
||||||
}
|
}
|
||||||
page.classList.add('menu-buttons');
|
page.classList.add('menu-buttons');
|
||||||
if(!connectMenu){
|
if(!connectMenu){
|
||||||
if(lib.config.customCharacterPack[mode]){
|
if(mode.indexOf('mode_')!=0){
|
||||||
ui.create.div('.config.more','编辑武将包',page,function(){
|
|
||||||
if(this.innerHTML=='编辑武将包'){
|
|
||||||
this.innerHTML='确认编辑';
|
|
||||||
var that=this;
|
|
||||||
setTimeout(function(){
|
|
||||||
that.innerHTML='编辑武将包';
|
|
||||||
},1000);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
var pack=lib.config.customCharacterPack[mode];
|
|
||||||
delete lib.config.customCharacterPack[mode];
|
|
||||||
game.saveConfig('customCharacterPack',lib.config.customCharacterPack);
|
|
||||||
page.remove();
|
|
||||||
node.remove();
|
|
||||||
lib.recreateCustomCharacters();
|
|
||||||
|
|
||||||
var active=ui.customCharacter;
|
|
||||||
active.classList.add('active');
|
|
||||||
rightPane.appendChild(active.link);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
ui.create.div('.config.more','删除武将包',page,function(){
|
|
||||||
if(this.innerHTML=='删除武将包'){
|
|
||||||
this.innerHTML='确认删除';
|
|
||||||
var that=this;
|
|
||||||
setTimeout(function(){
|
|
||||||
that.innerHTML='删除武将包';
|
|
||||||
},1000);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
var pack=lib.config.customCharacterPack[mode];
|
|
||||||
delete lib.config.customCharacterPack[mode];
|
|
||||||
game.saveConfig('customCharacterPack',lib.config.customCharacterPack);
|
|
||||||
page.remove();
|
|
||||||
node.remove();
|
|
||||||
for(var i=0;i<pack.character.length;i++){
|
|
||||||
lib.customCharacters.remove(pack.character[i]);
|
|
||||||
delete lib.character[pack.character[i]];
|
|
||||||
game.deleteDB('character',pack.character[i]);
|
|
||||||
game.deleteDB('image','character:'+pack.character[i]);
|
|
||||||
lib.config.banned.remove(pack.character[i])
|
|
||||||
}
|
|
||||||
game.saveConfig('banned',lib.config.banned,true);
|
|
||||||
for(var i=0;i<pack.skill.length;i++){
|
|
||||||
game.deleteDB('skill',pack.skill[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}).style.marginTop='5px';
|
|
||||||
}
|
|
||||||
else if(mode.indexOf('mode_')!=0){
|
|
||||||
ui.create.div('.config.more','隐藏武将包',page,function(){
|
ui.create.div('.config.more','隐藏武将包',page,function(){
|
||||||
if(this.innerHTML=='隐藏武将包'){
|
if(this.innerHTML=='隐藏武将包'){
|
||||||
this.innerHTML='武将包将在重启后隐藏';
|
this.innerHTML='武将包将在重启后隐藏';
|
||||||
|
@ -22805,634 +22596,6 @@
|
||||||
}
|
}
|
||||||
rightPane.appendChild(active.link);
|
rightPane.appendChild(active.link);
|
||||||
|
|
||||||
lib.onDB(function(){
|
|
||||||
if(connectMenu||true) return;
|
|
||||||
var page=ui.create.div('.menu-buttons');
|
|
||||||
var node=ui.create.div('.menubutton.large','自定义',clickMode);
|
|
||||||
ui.customCharacter=node;
|
|
||||||
start.firstChild.insertBefore(node,start.firstChild.querySelector('.lefttext'));
|
|
||||||
node.link=page;
|
|
||||||
node.mode='custom';
|
|
||||||
|
|
||||||
var currentEditing=null;
|
|
||||||
var packExporting=false;
|
|
||||||
|
|
||||||
var clickButton=function(){
|
|
||||||
if(packExporting){
|
|
||||||
this.classList.toggle('selected');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
resetImport();
|
|
||||||
resetEditor();
|
|
||||||
if(currentEditing==this){
|
|
||||||
currentEditing=null;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
currentEditing=this;
|
|
||||||
}
|
|
||||||
toggle.classList.add('on');
|
|
||||||
newCharacter.style.display='';
|
|
||||||
fakeme.classList.add('inited');
|
|
||||||
delete fakeme.image;
|
|
||||||
fakeme.setBackground(this.link,'character');
|
|
||||||
newCharacter.querySelector('.new_name').value=this.link;
|
|
||||||
var info=lib.character[this.link];
|
|
||||||
newCharacter.querySelector('.new_hp').value=info[2];
|
|
||||||
sexes.value=info[0];
|
|
||||||
groups.value=info[1];
|
|
||||||
if(info[4]){
|
|
||||||
for(var i=0;i<options.childNodes.length-1;i++){
|
|
||||||
if(info[4].contains(options.childNodes[i].lastChild.name)){
|
|
||||||
options.childNodes[i].lastChild.checked=true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var skills=info[3];
|
|
||||||
for(var i=0;i<skills.length;i++){
|
|
||||||
var node=ui.create.div(skillList.firstChild);
|
|
||||||
node.skill=skills[i];
|
|
||||||
ui.create.div('',lib.translate[skills[i]],node,editnode);
|
|
||||||
ui.create.div('','×',node,deletenode);
|
|
||||||
if(lib.skill[skills[i]].createInfo){
|
|
||||||
node.createInfo=lib.skill[skills[i]].createInfo;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
toggle.innerHTML='编辑武将 <div>></div>';
|
|
||||||
var confirm=newCharacter.querySelector('.menubutton.large');
|
|
||||||
confirm.innerHTML='编辑武将';
|
|
||||||
confirm._origin=this;
|
|
||||||
var button=this;
|
|
||||||
var delnodefunc=function(){
|
|
||||||
button.remove();
|
|
||||||
lib.customCharacters.remove(button.link);
|
|
||||||
game.deleteDB('character',button.link);
|
|
||||||
game.deleteDB('image','character:'+button.link);
|
|
||||||
var skills=lib.character[button.link][3];
|
|
||||||
delete lib.character[button.link];
|
|
||||||
for(var i=0;i<skills.length;i++){
|
|
||||||
if(!lib.checkSkillName(skills[i])){
|
|
||||||
var keep=false;
|
|
||||||
for(var j=0;j<lib.customCharacters.length;j++){
|
|
||||||
if(lib.customCharacters[j]==button.link) continue;
|
|
||||||
if(lib.character[lib.customCharacters[j]][3].contains(skills[i])){
|
|
||||||
keep=true;break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!keep){
|
|
||||||
game.deleteDB('skill',skills[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
resetEditor();
|
|
||||||
};
|
|
||||||
var delnode=ui.create.div('.menubutton.large','删除',confirm.parentNode,delnodefunc);
|
|
||||||
delnode.style.marginLeft='25px';
|
|
||||||
}
|
|
||||||
|
|
||||||
var createButton=function(name){
|
|
||||||
var button=ui.create.button(name,'character');
|
|
||||||
button.listen(clickButton);
|
|
||||||
button.classList.add('noclick');
|
|
||||||
page.insertBefore(button,page.firstChild);
|
|
||||||
}
|
|
||||||
|
|
||||||
var cl=function(){
|
|
||||||
for(var i in lib.config.customCharacterPack){
|
|
||||||
lib.characterPack[i]={};
|
|
||||||
lib.translate[i+'_character_config']=i;
|
|
||||||
for(var j=0;j<lib.config.customCharacterPack[i].character.length;j++){
|
|
||||||
var namej=lib.config.customCharacterPack[i].character[j];
|
|
||||||
lib.characterPack[i][namej]=lib.character[namej];
|
|
||||||
}
|
|
||||||
createModeConfig(i,start.firstChild,node);
|
|
||||||
}
|
|
||||||
for(var i=0;i<lib.customCharacters.length;i++){
|
|
||||||
var clname=lib.customCharacters[i];
|
|
||||||
for(var j=0;j<lib.character[clname][3].length;j++){
|
|
||||||
if(!lib.skill[lib.character[clname][3][j]]){
|
|
||||||
lib.character[clname][3].splice(j--,1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!lib.checkCharacterName(clname))
|
|
||||||
createButton(clname);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(_status.characterLoaded){
|
|
||||||
cl();
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
lib.onCharacterLoad=cl;
|
|
||||||
}
|
|
||||||
lib.recreateCustomCharacters=function(){
|
|
||||||
var buttons=page.querySelectorAll('.button.character');
|
|
||||||
var list=[];
|
|
||||||
for(var i=0;i<buttons.length;i++){
|
|
||||||
list.push(buttons[i]);
|
|
||||||
}
|
|
||||||
for(var i=0;i<list.length;i++){
|
|
||||||
list[i].remove();
|
|
||||||
}
|
|
||||||
for(var i=0;i<lib.customCharacters.length;i++){
|
|
||||||
if(!lib.checkCharacterName(lib.customCharacters[i]))
|
|
||||||
createButton(lib.customCharacters[i]);
|
|
||||||
}
|
|
||||||
resetEditor();
|
|
||||||
resetImport();
|
|
||||||
resetExport();
|
|
||||||
}
|
|
||||||
|
|
||||||
var importCharacter;
|
|
||||||
var toggle3=ui.create.div('.config.more','导入武将包 <div>></div>',page,function(){
|
|
||||||
this.classList.toggle('on');
|
|
||||||
if(this.classList.contains('on')){
|
|
||||||
importCharacter.style.display='';
|
|
||||||
resetEditor();
|
|
||||||
resetExport();
|
|
||||||
currentEditing=null;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
importCharacter.style.display='none';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
var resetImport=function(){
|
|
||||||
importCharacter.style.display='none';
|
|
||||||
toggle3.classList.remove('on')
|
|
||||||
}
|
|
||||||
importCharacter=ui.create.div('.new_character.export.import',page);
|
|
||||||
importCharacter.style.display='none';
|
|
||||||
ui.create.div('','<input type="file" accept="application/zip"><button>确定</button>',importCharacter);
|
|
||||||
importCharacter.firstChild.lastChild.onclick=function(){
|
|
||||||
var fileToLoad=this.previousSibling.files[0];
|
|
||||||
if(fileToLoad){
|
|
||||||
var zipReady=function(){
|
|
||||||
var fileReader = new FileReader();
|
|
||||||
fileReader.onload = function(fileLoadedEvent)
|
|
||||||
{
|
|
||||||
var data = fileLoadedEvent.target.result;
|
|
||||||
var zip=new JSZip();
|
|
||||||
zip.load(data);
|
|
||||||
var str=zip.file('pack.js').asText();
|
|
||||||
try{
|
|
||||||
eval(str);
|
|
||||||
if(!game.importedPack) throw('err');
|
|
||||||
for(var i in game.importedPack.character){
|
|
||||||
var buttons=page.querySelectorAll('.button.character');
|
|
||||||
for(var j=0;j<buttons.length;j++){
|
|
||||||
if(buttons[j].link==i){
|
|
||||||
buttons[j].remove();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var str=zip.file(i+'.jpg').asArrayBuffer();
|
|
||||||
if(str){
|
|
||||||
var blob=new Blob([str]);
|
|
||||||
var fileReader=new FileReader();
|
|
||||||
fileReader.onload = (function(i){
|
|
||||||
return function(fileLoadedEvent)
|
|
||||||
{
|
|
||||||
var data = fileLoadedEvent.target.result;
|
|
||||||
game.putDB('image','character:'+i,data);
|
|
||||||
};
|
|
||||||
}(i))
|
|
||||||
|
|
||||||
fileReader.readAsDataURL(blob, "UTF-8");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var name=game.importedPack.name;
|
|
||||||
setTimeout(function(){
|
|
||||||
lib.characterPack[name]={};
|
|
||||||
lib.translate[name+'_character_config']=name;
|
|
||||||
for(var j=0;j<lib.config.customCharacterPack[name].character.length;j++){
|
|
||||||
var namej=lib.config.customCharacterPack[name].character[j];
|
|
||||||
lib.characterPack[name][namej]=lib.character[namej];
|
|
||||||
}
|
|
||||||
clickMode.call(createModeConfig(name,start.firstChild,node));
|
|
||||||
},500);
|
|
||||||
|
|
||||||
delete game.importedPack;
|
|
||||||
}
|
|
||||||
catch(e){
|
|
||||||
console.log(e);
|
|
||||||
alert('导入失败');
|
|
||||||
}
|
|
||||||
resetImport();
|
|
||||||
};
|
|
||||||
fileReader.readAsArrayBuffer(fileToLoad, "UTF-8");
|
|
||||||
}
|
|
||||||
if(!window.JSZip){
|
|
||||||
lib.init.js(lib.assetURL+'game','jszip',zipReady);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
zipReady();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var exportCharacter;
|
|
||||||
var toggle2=ui.create.div('.config.more','导出武将包 <div>></div>',page,function(){
|
|
||||||
this.classList.toggle('on');
|
|
||||||
if(this.classList.contains('on')){
|
|
||||||
exportCharacter.style.display='';
|
|
||||||
resetEditor();
|
|
||||||
resetImport();
|
|
||||||
currentEditing=null;
|
|
||||||
packExporting=true;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
resetExport();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
var resetExport=function(){
|
|
||||||
packExporting=false;
|
|
||||||
exportCharacter.style.display='none';
|
|
||||||
toggle2.classList.remove('on');
|
|
||||||
var selected=page.querySelectorAll('.button.character.selected');
|
|
||||||
var list=[];
|
|
||||||
for(var i=0;i<selected.length;i++){
|
|
||||||
list.push(selected[i]);
|
|
||||||
}
|
|
||||||
for(var i=0;i<list.length;i++){
|
|
||||||
list[i].classList.remove('selected');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
exportCharacter=ui.create.div('.new_character.export',page);
|
|
||||||
exportCharacter.style.display='none';
|
|
||||||
ui.create.div('','名称:<input type="text"><button>确定</button>',exportCharacter);
|
|
||||||
exportCharacter.firstChild.lastChild.onclick=function(){
|
|
||||||
var name=this.previousSibling.value;
|
|
||||||
var selected=page.querySelectorAll('.button.character.selected');
|
|
||||||
var list=[];
|
|
||||||
var list2=[];
|
|
||||||
for(var i=0;i<selected.length;i++){
|
|
||||||
list.push(selected[i].link);
|
|
||||||
list2.push(selected[i]);
|
|
||||||
}
|
|
||||||
for(var i=0;i<list2.length;i++){
|
|
||||||
list2[i].classList.remove('selected');
|
|
||||||
}
|
|
||||||
if(name) game.exportCharacters(name,list.length?list:null,function(result){
|
|
||||||
game.import('character',result);
|
|
||||||
for(var i in result.character){
|
|
||||||
var buttons=page.querySelectorAll('.button.character');
|
|
||||||
for(var j=0;j<buttons.length;j++){
|
|
||||||
if(buttons[j].link==i){
|
|
||||||
buttons[j].remove();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
lib.characterPack[name]={};
|
|
||||||
lib.translate[name+'_character_config']=name;
|
|
||||||
for(var j=0;j<lib.config.customCharacterPack[name].character.length;j++){
|
|
||||||
var namej=lib.config.customCharacterPack[name].character[j];
|
|
||||||
lib.characterPack[name][namej]=lib.character[namej];
|
|
||||||
}
|
|
||||||
clickMode.call(createModeConfig(name,start.firstChild,node));
|
|
||||||
resetExport();
|
|
||||||
|
|
||||||
delete game.importedPack;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
var newCharacter;
|
|
||||||
var toggle=ui.create.div('.config.more','创建武将 <div>></div>',page,function(){
|
|
||||||
this.classList.toggle('on');
|
|
||||||
if(this.classList.contains('on')){
|
|
||||||
newCharacter.style.display='';
|
|
||||||
resetExport();
|
|
||||||
resetImport();
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
newCharacter.style.display='none';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
var resetEditor=function(){
|
|
||||||
toggle.classList.remove('on');
|
|
||||||
newCharacter.style.display='none';
|
|
||||||
fakeme.classList.remove('inited');
|
|
||||||
delete fakeme.image;
|
|
||||||
fakeme.style.backgroundImage='';
|
|
||||||
var inputs=newCharacter.querySelectorAll('input');
|
|
||||||
for(var i=0;i<inputs.length;i++){
|
|
||||||
inputs[i].value='';
|
|
||||||
}
|
|
||||||
inputs=newCharacter.querySelectorAll('textarea');
|
|
||||||
for(var i=0;i<inputs.length;i++){
|
|
||||||
inputs[i].value='';
|
|
||||||
}
|
|
||||||
skillList.firstChild.innerHTML='';
|
|
||||||
toggle.innerHTML='创建武将 <div>></div>';
|
|
||||||
var node=newCharacter.querySelector('.menubutton.large');
|
|
||||||
node.innerHTML='创建武将';
|
|
||||||
delete node._origin;
|
|
||||||
if(node.nextSibling){
|
|
||||||
node.nextSibling.remove();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
newCharacter=ui.create.div('.new_character',page);
|
|
||||||
newCharacter.style.display='none';
|
|
||||||
|
|
||||||
var fakeme=ui.create.div('.avatar',newCharacter);
|
|
||||||
|
|
||||||
var input=document.createElement('input');
|
|
||||||
input.type='file';
|
|
||||||
input.accept='image/jpeg';
|
|
||||||
input.onchange=function(){
|
|
||||||
var fileToLoad=input.files[0];
|
|
||||||
if(fileToLoad){
|
|
||||||
var fileReader = new FileReader();
|
|
||||||
fileReader.onload = function(fileLoadedEvent)
|
|
||||||
{
|
|
||||||
var data = fileLoadedEvent.target.result;
|
|
||||||
fakeme.image=data;
|
|
||||||
fakeme.style.backgroundImage='url('+data+')';
|
|
||||||
fakeme.classList.add('inited');
|
|
||||||
};
|
|
||||||
fileReader.readAsDataURL(fileToLoad, "UTF-8");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fakeme.appendChild(input);
|
|
||||||
|
|
||||||
ui.create.div('.select_avatar','选择头像',fakeme);
|
|
||||||
|
|
||||||
ui.create.div('.indent','姓名:<input class="new_name" type="text">',newCharacter).style.paddingTop='10px';
|
|
||||||
ui.create.div('.indent','体力:<input class="new_hp" type="text">',newCharacter).style.paddingTop='10px';
|
|
||||||
var sexes=ui.create.selectlist([
|
|
||||||
['male','男'],
|
|
||||||
['female','女'],
|
|
||||||
['none','无'],
|
|
||||||
],null,ui.create.div('.indent','性别:',newCharacter));
|
|
||||||
var groups=ui.create.selectlist([
|
|
||||||
['wei','魏'],
|
|
||||||
['shu','蜀'],
|
|
||||||
['wu','吴'],
|
|
||||||
['qun','群'],
|
|
||||||
],null,ui.create.div('.indent','势力:',newCharacter));
|
|
||||||
var options=ui.create.div('.add_skill.options','<span>主公<input type="checkbox" name="zhu"></span><span>BOSS<input type="checkbox" name="boss"></span><span>AI禁选<input type="checkbox" name="forbidai"></span><br>',newCharacter);
|
|
||||||
var addSkill=ui.create.div('.add_skill','添加技能<br>',newCharacter);
|
|
||||||
var list=[];
|
|
||||||
for(var i in lib.character){
|
|
||||||
if(!lib.customCharacters.contains(i)&&lib.character[i][3].length)
|
|
||||||
list.push([i,lib.translate[i]]);
|
|
||||||
}
|
|
||||||
list.sort(function(a,b){
|
|
||||||
a=a[0];b=b[0];
|
|
||||||
var aa=a,bb=b;
|
|
||||||
if(aa.indexOf('_')!=-1){
|
|
||||||
aa=aa.slice(aa.indexOf('_')+1);
|
|
||||||
}
|
|
||||||
if(bb.indexOf('_')!=-1){
|
|
||||||
bb=bb.slice(bb.indexOf('_')+1);
|
|
||||||
}
|
|
||||||
if(aa!=bb){
|
|
||||||
return aa>bb?1:-1;
|
|
||||||
}
|
|
||||||
return a>b?1:-1;
|
|
||||||
});
|
|
||||||
var list2=[];
|
|
||||||
var skills=lib.character[list[0][0]][3];
|
|
||||||
for(var i=0;i<skills.length;i++){
|
|
||||||
list2.push([skills[i],lib.translate[skills[i]]]);
|
|
||||||
}
|
|
||||||
var selectname=ui.create.selectlist(list,list[0],addSkill);
|
|
||||||
selectname.onchange=function(){
|
|
||||||
var skills=lib.character[this.value][3];
|
|
||||||
skillopt.innerHTML='';
|
|
||||||
for(var i=0;i<skills.length;i++){
|
|
||||||
var option=document.createElement('option');
|
|
||||||
option.value=skills[i];
|
|
||||||
option.innerHTML=lib.translate[skills[i]];
|
|
||||||
skillopt.appendChild(option);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
selectname.style.maxWidth='85px';
|
|
||||||
var skillopt=ui.create.selectlist(list2,list2[0],addSkill);
|
|
||||||
var editSkillButton=document.createElement('button');
|
|
||||||
editSkillButton.innerHTML='引用';
|
|
||||||
editSkillButton.style.marginRight='3px';
|
|
||||||
addSkill.appendChild(editSkillButton);
|
|
||||||
var addSkillButton=document.createElement('button');
|
|
||||||
addSkillButton.innerHTML='添加';
|
|
||||||
addSkill.appendChild(addSkillButton);
|
|
||||||
var deletenode=function(){
|
|
||||||
this.parentNode.remove();
|
|
||||||
}
|
|
||||||
var editnode=function(){
|
|
||||||
var info=this.parentNode.createInfo;
|
|
||||||
if(info){
|
|
||||||
createSkill.lastChild.classList.remove('hidden');
|
|
||||||
createSkill.firstChild.innerHTML='创建技能';
|
|
||||||
skillList.style.top='435px';
|
|
||||||
|
|
||||||
createSkill.lastChild.querySelector('.skillname').value=info.name;
|
|
||||||
createSkill.lastChild.querySelector('.skilldescription').value=info.description;
|
|
||||||
createSkill.lastChild.querySelector('textarea').value=info.content;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
editSkillButton.onclick=function(){
|
|
||||||
var name=skillopt.value;
|
|
||||||
var info=lib.skill[name];
|
|
||||||
if(info){
|
|
||||||
createSkill.lastChild.classList.remove('hidden');
|
|
||||||
createSkill.firstChild.innerHTML='创建技能';
|
|
||||||
skillList.style.top='435px';
|
|
||||||
|
|
||||||
createSkill.lastChild.querySelector('.skillname').value='skill|'+lib.translate[name]+'|'+name;
|
|
||||||
createSkill.lastChild.querySelector('.skilldescription').value=lib.translate[name+'_info'];
|
|
||||||
createSkill.lastChild.querySelector('textarea').value=lib.init.stringifySkill(info);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
addSkillButton.onclick=function(){
|
|
||||||
for(var i=0;i<skillList.firstChild.childNodes.length;i++){
|
|
||||||
if(skillList.firstChild.childNodes[i].skill==skillopt.value) return;
|
|
||||||
}
|
|
||||||
var node=ui.create.div(skillList.firstChild);
|
|
||||||
node.skill=skillopt.value;
|
|
||||||
ui.create.div('',lib.translate[skillopt.value],node,editnode);
|
|
||||||
ui.create.div('','×',node,deletenode);
|
|
||||||
if(lib.skill[skillopt.value].createInfo){
|
|
||||||
node.createInfo=lib.skill[skillopt.value].createInfo;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var createSkill=ui.create.div('.add_skill.create','<div>创建技能...</div><br><div class="hidden"></div>',newCharacter);
|
|
||||||
createSkill.firstChild.listen(function(){
|
|
||||||
createSkill.lastChild.classList.toggle('hidden');
|
|
||||||
if(createSkill.lastChild.classList.contains('hidden')){
|
|
||||||
this.innerHTML='创建技能...';
|
|
||||||
skillList.style.top='';
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
this.innerHTML='创建技能';
|
|
||||||
skillList.style.top='435px';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
var newSkill=document.createElement('textarea');
|
|
||||||
createSkill.lastChild.appendChild(newSkill);
|
|
||||||
createSkill.lastChild.innerHTML+='<br>';
|
|
||||||
ui.create.div('','技能名称:<input class="skillname" type="text">',createSkill.lastChild);
|
|
||||||
createSkill.lastChild.innerHTML+='<br>';
|
|
||||||
ui.create.div('','技能描述:<input class="skilldescription" type="text"><br><button>确定</button><button>取消</button>',createSkill.lastChild);
|
|
||||||
createSkill.lastChild.lastChild.lastChild.previousSibling.style.marginTop='5px';
|
|
||||||
createSkill.lastChild.lastChild.lastChild.previousSibling.style.marginRight='3px';
|
|
||||||
createSkill.lastChild.lastChild.lastChild.previousSibling.onclick=function(){
|
|
||||||
var node;
|
|
||||||
var name=createSkill.lastChild.querySelector('.skillname').value;
|
|
||||||
var description=createSkill.lastChild.querySelector('.skilldescription').value;
|
|
||||||
var content=createSkill.lastChild.querySelector('textarea').value;
|
|
||||||
if(!name||!description) return;
|
|
||||||
if(lib.checkSkillName(name)){
|
|
||||||
alert('技能名重复');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
for(var i=0;i<skillList.firstChild.childNodes.length;i++){
|
|
||||||
if(skillList.firstChild.childNodes[i].skill==name){
|
|
||||||
node=skillList.firstChild.childNodes[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!node){
|
|
||||||
node=ui.create.div(skillList.firstChild);
|
|
||||||
node.skill=name;
|
|
||||||
var name2=name;
|
|
||||||
if(name.indexOf('|')!=-1){
|
|
||||||
if(name2.lastIndexOf('|')>name2.indexOf('|')){
|
|
||||||
name2=name2.slice(name2.indexOf('|')+1,name2.lastIndexOf('|'));
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
name2=name2.slice(name2.indexOf('|')+1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ui.create.div('',name2,node,editnode);
|
|
||||||
ui.create.div('','×',node,deletenode);
|
|
||||||
}
|
|
||||||
node.createInfo={
|
|
||||||
name:name,
|
|
||||||
description:description,
|
|
||||||
content:content
|
|
||||||
}
|
|
||||||
createSkill.lastChild.querySelector('.skillname').value='';
|
|
||||||
createSkill.lastChild.querySelector('.skilldescription').value='';
|
|
||||||
createSkill.lastChild.querySelector('textarea').value='';
|
|
||||||
|
|
||||||
createSkill.lastChild.classList.add('hidden');
|
|
||||||
createSkill.firstChild.innerHTML='创建技能...';
|
|
||||||
skillList.style.top='';
|
|
||||||
}
|
|
||||||
createSkill.lastChild.lastChild.lastChild.onclick=function(){
|
|
||||||
createSkill.lastChild.querySelector('.skillname').value='';
|
|
||||||
createSkill.lastChild.querySelector('.skilldescription').value='';
|
|
||||||
createSkill.lastChild.querySelector('textarea').value='';
|
|
||||||
|
|
||||||
createSkill.lastChild.classList.add('hidden');
|
|
||||||
createSkill.firstChild.innerHTML='创建技能...';
|
|
||||||
skillList.style.top='';
|
|
||||||
};
|
|
||||||
var skillList=ui.create.div('.skill_list',newCharacter);
|
|
||||||
ui.create.div(skillList);
|
|
||||||
ui.create.div('.menubutton.large','创建武将',ui.create.div(skillList),function(){
|
|
||||||
var image=fakeme.image;if(!image&&this.innerHTML!='编辑武将') return;
|
|
||||||
var name=newCharacter.querySelector('.new_name').value;if(!name) return;
|
|
||||||
if(lib.checkCharacterName(name)){
|
|
||||||
alert('武将名重复');return;
|
|
||||||
}
|
|
||||||
var hp=newCharacter.querySelector('.new_hp').value;
|
|
||||||
hp=parseInt(hp);
|
|
||||||
if(!hp) hp=1;
|
|
||||||
var skills=[];
|
|
||||||
var dontcreate=false;
|
|
||||||
if(this.innerHTML=='编辑武将'&&this._origin&&this._origin.link!=name){
|
|
||||||
dontcreate=true;
|
|
||||||
var origin=this._origin;
|
|
||||||
game.getDB('image','character:'+this._origin.link,function(data){
|
|
||||||
if(data){
|
|
||||||
game.putDB('image','character:'+name,data);
|
|
||||||
origin.remove();
|
|
||||||
lib.customCharacters.remove(origin.link);
|
|
||||||
game.deleteDB('character',origin.link);
|
|
||||||
game.deleteDB('image','character:'+origin.link);
|
|
||||||
if(lib.character[origin.link]){
|
|
||||||
var skills=lib.character[origin.link][3];
|
|
||||||
delete lib.character[origin.link];
|
|
||||||
for(var i=0;i<skills.length;i++){
|
|
||||||
if(!lib.checkSkillName(skills[i])){
|
|
||||||
var keep=false;
|
|
||||||
for(var j=0;j<lib.customCharacters.length;j++){
|
|
||||||
if(lib.customCharacters[j]==origin.link) continue;
|
|
||||||
if(lib.character[lib.customCharacters[j]][3].contains(skills[i])){
|
|
||||||
keep=true;break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!keep){
|
|
||||||
game.deleteDB('skill',skills[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
createButton(name);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
if(image){
|
|
||||||
game.putDB('image','character:'+name,image);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for(var i=0;i<skillList.firstChild.childNodes.length;i++){
|
|
||||||
if(skillList.firstChild.childNodes[i].createInfo&&
|
|
||||||
lib.checkSkillName(skillList.firstChild.childNodes[i].skill)) continue;
|
|
||||||
skills.add(skillList.firstChild.childNodes[i].skill);
|
|
||||||
var info=skillList.firstChild.childNodes[i].createInfo;
|
|
||||||
if(info){
|
|
||||||
try{
|
|
||||||
eval('lib.skill["'+info.name+'"]={'+info.content+'}');
|
|
||||||
}
|
|
||||||
catch(e){
|
|
||||||
console.log(e);
|
|
||||||
lib.skill[info.name]={};
|
|
||||||
}
|
|
||||||
lib.skill[info.name].createInfo=info;
|
|
||||||
lib.setTranslate(info.name);
|
|
||||||
lib.translate[info.name+'_info']=info.description;
|
|
||||||
game.putDB('skill',info.name,info);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var tags=[];
|
|
||||||
for(var i=0;i<options.childNodes.length-1;i++){
|
|
||||||
if(options.childNodes[i].lastChild.checked){
|
|
||||||
tags.push(options.childNodes[i].lastChild.name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(tags.contains('boss')){
|
|
||||||
tags.add('bossallowed');
|
|
||||||
}
|
|
||||||
var charinfo=[sexes.value,groups.value,hp,skills,tags];
|
|
||||||
game.putDB('character',name,charinfo);
|
|
||||||
lib.character[name]=charinfo;
|
|
||||||
lib.customCharacters.add(name);
|
|
||||||
lib.setTranslate(name);
|
|
||||||
if(this.innerHTML=='编辑武将'){
|
|
||||||
var buttons=page.querySelectorAll('.button.character');
|
|
||||||
for(var i=0;i<buttons.length;i++){
|
|
||||||
if(buttons[i].link==name){
|
|
||||||
buttons[i].remove();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!dontcreate) createButton(name);
|
|
||||||
resetEditor();
|
|
||||||
currentEditing=null;
|
|
||||||
delete this._origin;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
if(!connectMenu){
|
if(!connectMenu){
|
||||||
var node1=ui.create.div('.lefttext','全部开启',start.firstChild,function(){
|
var node1=ui.create.div('.lefttext','全部开启',start.firstChild,function(){
|
||||||
game.saveConfig('characters',lib.config.all.characters);
|
game.saveConfig('characters',lib.config.all.characters);
|
||||||
|
@ -23625,7 +22788,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
page.classList.add('menu-buttons');
|
page.classList.add('menu-buttons');
|
||||||
if(!connectMenu&&mode.indexOf('mode_')!=0&&!lib.config.customCardPack[mode]){
|
if(!connectMenu&&mode.indexOf('mode_')!=0){
|
||||||
ui.create.div('.config.more','隐藏卡牌包',page,function(){
|
ui.create.div('.config.more','隐藏卡牌包',page,function(){
|
||||||
if(this.innerHTML=='隐藏卡牌包'){
|
if(this.innerHTML=='隐藏卡牌包'){
|
||||||
this.innerHTML='卡牌包将在重启后隐藏';
|
this.innerHTML='卡牌包将在重启后隐藏';
|
||||||
|
@ -24557,8 +23720,9 @@
|
||||||
var addSkill=ui.create.div('.add_skill','添加技能<br>',newCharacter);
|
var addSkill=ui.create.div('.add_skill','添加技能<br>',newCharacter);
|
||||||
var list=[];
|
var list=[];
|
||||||
for(var i in lib.character){
|
for(var i in lib.character){
|
||||||
if(!lib.customCharacters.contains(i)&&lib.character[i][3].length)
|
if(lib.character[i][3].length){
|
||||||
list.push([i,lib.translate[i]]);
|
list.push([i,lib.translate[i]]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
list.sort(function(a,b){
|
list.sort(function(a,b){
|
||||||
a=a[0];b=b[0];
|
a=a[0];b=b[0];
|
||||||
|
@ -27345,7 +26509,6 @@
|
||||||
for(var i in lib.characterPack){
|
for(var i in lib.characterPack){
|
||||||
if(lib.characterPack[i][name]) return i;
|
if(lib.characterPack[i][name]) return i;
|
||||||
}
|
}
|
||||||
if(lib.customCharacters.contains(name)) return 'custom';
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
var packs={};
|
var packs={};
|
||||||
|
@ -27467,9 +26630,6 @@
|
||||||
}
|
}
|
||||||
var namecapt=[];
|
var namecapt=[];
|
||||||
var getCapt=function(str){
|
var getCapt=function(str){
|
||||||
if(lib.customCharacters.contains(str)){
|
|
||||||
return '自定义';
|
|
||||||
}
|
|
||||||
var capt;
|
var capt;
|
||||||
if(str.indexOf('_')==-1){
|
if(str.indexOf('_')==-1){
|
||||||
capt=str[0];
|
capt=str[0];
|
||||||
|
@ -27788,17 +26948,6 @@
|
||||||
span.addEventListener(lib.config.touchscreen?'touchend':'click',clickCapt);
|
span.addEventListener(lib.config.touchscreen?'touchend':'click',clickCapt);
|
||||||
newlined2.appendChild(span);
|
newlined2.appendChild(span);
|
||||||
}
|
}
|
||||||
if(lib.customCharacters.length){
|
|
||||||
var span=document.createElement('div');
|
|
||||||
span.style.display='inline-block';
|
|
||||||
span.style.width='auto';
|
|
||||||
span.style.margin='5px';
|
|
||||||
// span.style.fontSize='20px';
|
|
||||||
span.innerHTML='自定义';
|
|
||||||
span.link='自定义';
|
|
||||||
span.addEventListener(lib.config.touchscreen?'touchend':'click',clickCapt);
|
|
||||||
newlined2.appendChild(span);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -34412,13 +33561,13 @@
|
||||||
else if(modeimage){
|
else if(modeimage){
|
||||||
src='image/mode/'+modeimage+'/character/'+name+ext;
|
src='image/mode/'+modeimage+'/character/'+name+ext;
|
||||||
}
|
}
|
||||||
else if(type=='character'&&lib.customCharacters.contains(name)){
|
// else if(type=='character'&&lib.customCharacters.contains(name)){
|
||||||
src="";
|
// src="";
|
||||||
var node=this;
|
// var node=this;
|
||||||
game.getDB('image','character:'+name,function(src){
|
// game.getDB('image','character:'+name,function(src){
|
||||||
node.style.backgroundImage="url('"+src+"')";
|
// node.style.backgroundImage="url('"+src+"')";
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
else if(type=='character'&&lib.config.skin[name]){
|
else if(type=='character'&&lib.config.skin[name]){
|
||||||
src='image/skin/'+name+'/'+lib.config.skin[name]+ext;
|
src='image/skin/'+name+'/'+lib.config.skin[name]+ext;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ window.noname_update={
|
||||||
update:'1.9.6.5',
|
update:'1.9.6.5',
|
||||||
changeLog:[
|
changeLog:[
|
||||||
'bug修复',
|
'bug修复',
|
||||||
|
'牌堆设置改进(旧版牌堆设置将被清除)',
|
||||||
],
|
],
|
||||||
files:[
|
files:[
|
||||||
'game/game.js',
|
'game/game.js',
|
||||||
|
|
Loading…
Reference in New Issue