This commit is contained in:
parent
1143782138
commit
40e7ba7400
861
game/game.js
861
game/game.js
|
@ -428,7 +428,7 @@
|
||||||
else{
|
else{
|
||||||
map.round_menu_func.show();
|
map.round_menu_func.show();
|
||||||
}
|
}
|
||||||
if(lib.device=='ios'||lib.device=='android'){
|
if(!lib.node&&lib.device!='ios'){
|
||||||
map.confirm_exit.show();
|
map.confirm_exit.show();
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -3760,6 +3760,415 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
init:{
|
init:{
|
||||||
|
bind:function(){
|
||||||
|
HTMLDivElement.prototype.animate=function(name,time){
|
||||||
|
var that;
|
||||||
|
if(lib.isMobileMe(this)&&name=='target'){
|
||||||
|
that=ui.mebg;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
that=this;
|
||||||
|
}
|
||||||
|
that.classList.add(name);
|
||||||
|
setTimeout(function(){
|
||||||
|
that.classList.remove(name);
|
||||||
|
},time||1000);
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.hide=function(){
|
||||||
|
this.classList.add('hidden');
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.unfocus=function(){
|
||||||
|
this.classList.add('transparent');
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.refocus=function(){
|
||||||
|
this.classList.remove('transparent');
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.show=function(){
|
||||||
|
this.classList.remove('hidden');
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.delete=function(time,callback){
|
||||||
|
if(this.timeout){
|
||||||
|
clearTimeout(this.timeout);
|
||||||
|
delete this.timeout;
|
||||||
|
}
|
||||||
|
if(!this._listeningEnd||this._transitionEnded){
|
||||||
|
if(typeof time!='number') time=500;
|
||||||
|
this.classList.add('removing');
|
||||||
|
var that=this;
|
||||||
|
this.timeout=setTimeout(function(){
|
||||||
|
that.remove();
|
||||||
|
that.classList.remove('removing');
|
||||||
|
if(typeof callback=='function'){
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
},time);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
this._onEndDelete=true;
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.goto=function(position,time){
|
||||||
|
if(this.timeout){
|
||||||
|
clearTimeout(this.timeout);
|
||||||
|
delete this.timeout;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(typeof time!='number') time=500;
|
||||||
|
this.classList.add('removing');
|
||||||
|
|
||||||
|
var that=this;
|
||||||
|
this.timeout=setTimeout(function(){
|
||||||
|
position.appendChild(that);
|
||||||
|
that.classList.remove('removing');
|
||||||
|
delete that.destiny;
|
||||||
|
},time);
|
||||||
|
this.destiny=position;
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.fix=function(){
|
||||||
|
clearTimeout(this.timeout);
|
||||||
|
delete this.timeout;
|
||||||
|
delete this.destiny;
|
||||||
|
this.classList.remove('removing');
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.setBackground=function(name,type,ext,subfolder){
|
||||||
|
var src;
|
||||||
|
ext=ext||'.jpg';
|
||||||
|
subfolder=subfolder||'default'
|
||||||
|
if(type){
|
||||||
|
var dbimage=null,extimage=null,modeimage=null;
|
||||||
|
var nameinfo;
|
||||||
|
var mode=get.mode();
|
||||||
|
if(type=='character'){
|
||||||
|
if(lib.characterPack['mode_'+mode]&&lib.characterPack['mode_'+mode][name]){
|
||||||
|
modeimage=mode;
|
||||||
|
}
|
||||||
|
else if(lib.character[name]){
|
||||||
|
nameinfo=lib.character[name];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!modeimage&&nameinfo&&nameinfo[4]){
|
||||||
|
for(var i=0;i<nameinfo[4].length;i++){
|
||||||
|
if(nameinfo[4][i].indexOf('ext:')==0){
|
||||||
|
extimage=nameinfo[4][i];break;
|
||||||
|
}
|
||||||
|
else if(nameinfo[4][i].indexOf('db:')==0){
|
||||||
|
dbimage=nameinfo[4][i];break;
|
||||||
|
}
|
||||||
|
else if(nameinfo[4][i].indexOf('mode:')==0){
|
||||||
|
modeimage=nameinfo[4][i].slice(5);break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(extimage){
|
||||||
|
src=extimage.replace(/ext:/,'extension/');
|
||||||
|
}
|
||||||
|
else if(dbimage){
|
||||||
|
this.setBackgroundDB(dbimage.slice(3));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
else if(modeimage){
|
||||||
|
src='image/mode/'+modeimage+'/character/'+name+ext;
|
||||||
|
}
|
||||||
|
// else if(type=='character'&&lib.customCharacters.contains(name)){
|
||||||
|
// src="";
|
||||||
|
// var node=this;
|
||||||
|
// game.getDB('image','character:'+name,function(src){
|
||||||
|
// node.style.backgroundImage="url('"+src+"')";
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
else if(type=='character'&&lib.config.skin[name]){
|
||||||
|
src='image/skin/'+name+'/'+lib.config.skin[name]+ext;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(type=='character'){
|
||||||
|
src='image/character/'+name+ext;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
src='image/'+type+'/'+subfolder+'/'+name+ext;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
src='image/'+name+ext;
|
||||||
|
}
|
||||||
|
this.setBackgroundImage(src);
|
||||||
|
this.style.backgroundSize="cover";
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.setBackgroundDB=function(img){
|
||||||
|
var node=this;
|
||||||
|
game.getDB('image',img,function(src){
|
||||||
|
node.style.backgroundImage="url('"+src+"')";
|
||||||
|
node.style.backgroundSize="cover";
|
||||||
|
});
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.setBackgroundImage=function(img){
|
||||||
|
this.style.backgroundImage='url("'+lib.assetURL+img+'")';
|
||||||
|
},
|
||||||
|
HTMLDivElement.prototype.listen=function(func){
|
||||||
|
this.addEventListener(lib.config.touchscreen?'touchend':'click',function(e){
|
||||||
|
if(_status.dragged) return;
|
||||||
|
func.call(this,e);
|
||||||
|
})
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.setPosition=function(){
|
||||||
|
var position;
|
||||||
|
if(arguments.length==4){
|
||||||
|
position=[];
|
||||||
|
for(var i=0;i<arguments.length;i++) position.push(arguments[i]);
|
||||||
|
}
|
||||||
|
else if(arguments.length==1&&get.objtype(arguments[0])=='array'&&arguments[0].length==4){
|
||||||
|
position=arguments[0];
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
var top='calc('+position[0]+'% ';
|
||||||
|
if(position[1]>0) top+='+ '+position[1]+'px)';
|
||||||
|
else top+='- '+Math.abs(position[1])+'px)';
|
||||||
|
var left='calc('+position[2]+'% ';
|
||||||
|
if(position[3]>0) left+='+ '+position[3]+'px)';
|
||||||
|
else left+='- '+Math.abs(position[3])+'px)';
|
||||||
|
this.style.top=top;
|
||||||
|
this.style.left=left;
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.css=function(style){
|
||||||
|
for(var i in style){
|
||||||
|
if(i=='innerHTML'){
|
||||||
|
this.innerHTML=style[i];
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
this.style[i]=style[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.transform=function(transform){
|
||||||
|
var str='';
|
||||||
|
for(var i in transform){
|
||||||
|
switch(i){
|
||||||
|
case 'scale':str+='scale('+transform[i]+') ';break;
|
||||||
|
case 'rotate':str+='rotate('+transform[i]+'deg) ';break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(typeof transform=='object'){
|
||||||
|
if(transform.left&&transform.top){
|
||||||
|
str+='translate('+parseInt(transform.left)+'px,'+parseInt(transform.top)+'px) ';
|
||||||
|
}
|
||||||
|
else if(transform.left){
|
||||||
|
str+='translate('+parseInt(transform.left)+'px) ';
|
||||||
|
}
|
||||||
|
else if(transform.top){
|
||||||
|
str+='translate(0,'+parseInt(transform.top)+'px) ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.style.transform=str;
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLTableElement.prototype.get=function(row,col){
|
||||||
|
if(row<this.childNodes.length){
|
||||||
|
return this.childNodes[row].childNodes[col];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Array.prototype.find=function(item){
|
||||||
|
return this.indexOf(item);
|
||||||
|
};
|
||||||
|
Array.prototype.contains=function(item){
|
||||||
|
return this.indexOf(item)!=-1;
|
||||||
|
};
|
||||||
|
Array.prototype.add=function(){
|
||||||
|
for(var i=0;i<arguments.length;i++){
|
||||||
|
if(this.contains(arguments[i])){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
this.push(arguments[i]);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
Array.prototype.addArray=function(arr){
|
||||||
|
for(var i=0;i<arr.length;i++){
|
||||||
|
this.add(arr[i]);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
Array.prototype.remove=function(item){
|
||||||
|
if(get.objtype(item)=='array'){
|
||||||
|
for(var i=0;i<item.length;i++) this.remove(item[i]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var pos=this.find(item);
|
||||||
|
if(pos==-1){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
this.splice(pos,1);
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
Array.prototype.randomGet=function(){
|
||||||
|
var arr=this.slice(0);
|
||||||
|
for(var i=0;i<arguments.length;i++) arr.remove(arguments[i]);
|
||||||
|
return arr[Math.floor(Math.random()*arr.length)];
|
||||||
|
};
|
||||||
|
Array.prototype.randomRemove=function(num){
|
||||||
|
if(typeof num=='number'){
|
||||||
|
var list=[];
|
||||||
|
for(var i=0;i<num;i++){
|
||||||
|
if(this.length){
|
||||||
|
list.push(this.randomRemove());
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return this.splice(Math.floor(Math.random()*this.length),1)[0];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Array.prototype.randomSort=function(){
|
||||||
|
var list=[];
|
||||||
|
while(this.length){
|
||||||
|
list.push(this.randomRemove());
|
||||||
|
}
|
||||||
|
for(var i=0;i<list.length;i++){
|
||||||
|
this.push(list[i]);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
Array.prototype.randomGets=function(num){
|
||||||
|
if(num>this.length){
|
||||||
|
num=this.length;
|
||||||
|
}
|
||||||
|
var arr=this.slice(0);
|
||||||
|
var list=[];
|
||||||
|
for(var i=0;i<num;i++){
|
||||||
|
list.push(arr.splice(Math.floor(Math.random()*arr.length),1)[0]);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
};
|
||||||
|
if(!Array.from){
|
||||||
|
Array.from=function(args){
|
||||||
|
var list=[];
|
||||||
|
if(args&&args.length){
|
||||||
|
for(var i=0;i<args.length;i++){
|
||||||
|
list.push(args[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.onkeydown=function(e){
|
||||||
|
if(!ui.menuContainer||!ui.menuContainer.classList.contains('hidden')){
|
||||||
|
if(e.keyCode==116||((e.ctrlKey||e.metaKey)&&e.keyCode==82)){
|
||||||
|
if(e.shiftKey){
|
||||||
|
if(confirm('是否重置游戏?')){
|
||||||
|
var noname_inited=localStorage.getItem('noname_inited');
|
||||||
|
localStorage.clear();
|
||||||
|
if(noname_inited){
|
||||||
|
localStorage.setItem('noname_inited',noname_inited);
|
||||||
|
}
|
||||||
|
if(indexedDB) indexedDB.deleteDatabase(lib.configprefix+'data');
|
||||||
|
game.reload();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
game.reload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(e.keyCode==83&&(e.ctrlKey||e.metaKey)){
|
||||||
|
if(window.saveNonameInput){
|
||||||
|
window.saveNonameInput();
|
||||||
|
}
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
game.closePopped();
|
||||||
|
var dialogs=document.querySelectorAll('#window>.dialog.popped:not(.static)');
|
||||||
|
for(var i=0;i<dialogs.length;i++){
|
||||||
|
dialogs[i].delete();
|
||||||
|
}
|
||||||
|
if(e.keyCode==32){
|
||||||
|
var node=ui.window.querySelector('#paused');
|
||||||
|
if(node){
|
||||||
|
node.click();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
ui.click.pause();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(e.keyCode==65){
|
||||||
|
if(ui.auto) ui.auto.click();
|
||||||
|
}
|
||||||
|
else if(e.keyCode==87){
|
||||||
|
if(ui.wuxie&&ui.wuxie.style.display!='none'){
|
||||||
|
ui.wuxie.classList.toggle('glow')
|
||||||
|
}
|
||||||
|
else if(ui.tempnowuxie){
|
||||||
|
ui.tempnowuxie.classList.toggle('glow')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(e.keyCode==73){
|
||||||
|
// if(game.showIdentity){
|
||||||
|
// game.showIdentity();
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
else if(e.keyCode==67){
|
||||||
|
// var node=ui.window.querySelector('#click');
|
||||||
|
// if(node){
|
||||||
|
// node.click();
|
||||||
|
// }
|
||||||
|
// else{
|
||||||
|
// ui.click.config();
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
else if(e.keyCode==116||((e.ctrlKey||e.metaKey)&&e.keyCode==82)){
|
||||||
|
if(e.shiftKey){
|
||||||
|
if(confirm('是否重置游戏?')){
|
||||||
|
var noname_inited=localStorage.getItem('noname_inited');
|
||||||
|
localStorage.clear();
|
||||||
|
if(noname_inited){
|
||||||
|
localStorage.setItem('noname_inited',noname_inited);
|
||||||
|
}
|
||||||
|
if(indexedDB) indexedDB.deleteDatabase(lib.configprefix+'data');
|
||||||
|
game.reload();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
game.reload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(e.keyCode==83&&(e.ctrlKey||e.metaKey)){
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
window.onload=function(){
|
||||||
|
if(_status.packLoaded){
|
||||||
|
delete _status.packLoaded;
|
||||||
|
lib.init.onload();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
_status.windowLoaded=true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
init:function(){
|
init:function(){
|
||||||
if(window.noname_update){
|
if(window.noname_update){
|
||||||
lib.version=window.noname_update.version;
|
lib.version=window.noname_update.version;
|
||||||
|
@ -4262,6 +4671,28 @@
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(!lib.config.touchscreen){
|
||||||
|
document.addEventListener('mousewheel',ui.click.windowmousewheel,{passive:true});
|
||||||
|
document.onmousemove=ui.click.windowmousemove;
|
||||||
|
document.onmousedown=ui.click.windowmousedown;
|
||||||
|
document.onmouseup=ui.click.windowmouseup;
|
||||||
|
document.oncontextmenu=ui.click.right;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
document.ontouchstart=ui.click.windowtouchstart;
|
||||||
|
document.ontouchend=ui.click.windowtouchend;
|
||||||
|
document.ontouchmove=ui.click.windowtouchmove;
|
||||||
|
}
|
||||||
|
if(!lib.device&&!lib.node){
|
||||||
|
window.onbeforeunload=function(){
|
||||||
|
if(lib.config.confirm_exit&&!_status.reloading){
|
||||||
|
return '是否离开游戏?'
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
onload:function(){
|
onload:function(){
|
||||||
if(lib.device){
|
if(lib.device){
|
||||||
|
@ -33814,432 +34245,6 @@
|
||||||
lib.ui=ui;
|
lib.ui=ui;
|
||||||
lib.ai=ai;
|
lib.ai=ai;
|
||||||
lib.game=game;
|
lib.game=game;
|
||||||
|
lib.init.bind();
|
||||||
lib.init.init();
|
lib.init.init();
|
||||||
HTMLDivElement.prototype.animate=function(name,time){
|
|
||||||
var that;
|
|
||||||
if(lib.isMobileMe(this)&&name=='target'){
|
|
||||||
that=ui.mebg;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
that=this;
|
|
||||||
}
|
|
||||||
that.classList.add(name);
|
|
||||||
setTimeout(function(){
|
|
||||||
that.classList.remove(name);
|
|
||||||
},time||1000);
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
HTMLDivElement.prototype.hide=function(){
|
|
||||||
this.classList.add('hidden');
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
HTMLDivElement.prototype.unfocus=function(){
|
|
||||||
this.classList.add('transparent');
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
HTMLDivElement.prototype.refocus=function(){
|
|
||||||
this.classList.remove('transparent');
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
HTMLDivElement.prototype.show=function(){
|
|
||||||
this.classList.remove('hidden');
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
HTMLDivElement.prototype.delete=function(time,callback){
|
|
||||||
if(this.timeout){
|
|
||||||
clearTimeout(this.timeout);
|
|
||||||
delete this.timeout;
|
|
||||||
}
|
|
||||||
if(!this._listeningEnd||this._transitionEnded){
|
|
||||||
if(typeof time!='number') time=500;
|
|
||||||
this.classList.add('removing');
|
|
||||||
var that=this;
|
|
||||||
this.timeout=setTimeout(function(){
|
|
||||||
that.remove();
|
|
||||||
that.classList.remove('removing');
|
|
||||||
if(typeof callback=='function'){
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
},time);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
this._onEndDelete=true;
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
HTMLDivElement.prototype.goto=function(position,time){
|
|
||||||
if(this.timeout){
|
|
||||||
clearTimeout(this.timeout);
|
|
||||||
delete this.timeout;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(typeof time!='number') time=500;
|
|
||||||
this.classList.add('removing');
|
|
||||||
|
|
||||||
var that=this;
|
|
||||||
this.timeout=setTimeout(function(){
|
|
||||||
position.appendChild(that);
|
|
||||||
that.classList.remove('removing');
|
|
||||||
delete that.destiny;
|
|
||||||
},time);
|
|
||||||
this.destiny=position;
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
HTMLDivElement.prototype.fix=function(){
|
|
||||||
clearTimeout(this.timeout);
|
|
||||||
delete this.timeout;
|
|
||||||
delete this.destiny;
|
|
||||||
this.classList.remove('removing');
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
HTMLDivElement.prototype.setBackground=function(name,type,ext,subfolder){
|
|
||||||
var src;
|
|
||||||
ext=ext||'.jpg';
|
|
||||||
subfolder=subfolder||'default'
|
|
||||||
if(type){
|
|
||||||
var dbimage=null,extimage=null,modeimage=null;
|
|
||||||
var nameinfo;
|
|
||||||
var mode=get.mode();
|
|
||||||
if(type=='character'){
|
|
||||||
if(lib.characterPack['mode_'+mode]&&lib.characterPack['mode_'+mode][name]){
|
|
||||||
modeimage=mode;
|
|
||||||
}
|
|
||||||
else if(lib.character[name]){
|
|
||||||
nameinfo=lib.character[name];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!modeimage&&nameinfo&&nameinfo[4]){
|
|
||||||
for(var i=0;i<nameinfo[4].length;i++){
|
|
||||||
if(nameinfo[4][i].indexOf('ext:')==0){
|
|
||||||
extimage=nameinfo[4][i];break;
|
|
||||||
}
|
|
||||||
else if(nameinfo[4][i].indexOf('db:')==0){
|
|
||||||
dbimage=nameinfo[4][i];break;
|
|
||||||
}
|
|
||||||
else if(nameinfo[4][i].indexOf('mode:')==0){
|
|
||||||
modeimage=nameinfo[4][i].slice(5);break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(extimage){
|
|
||||||
src=extimage.replace(/ext:/,'extension/');
|
|
||||||
}
|
|
||||||
else if(dbimage){
|
|
||||||
this.setBackgroundDB(dbimage.slice(3));
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
else if(modeimage){
|
|
||||||
src='image/mode/'+modeimage+'/character/'+name+ext;
|
|
||||||
}
|
|
||||||
// else if(type=='character'&&lib.customCharacters.contains(name)){
|
|
||||||
// src="";
|
|
||||||
// var node=this;
|
|
||||||
// game.getDB('image','character:'+name,function(src){
|
|
||||||
// node.style.backgroundImage="url('"+src+"')";
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
else if(type=='character'&&lib.config.skin[name]){
|
|
||||||
src='image/skin/'+name+'/'+lib.config.skin[name]+ext;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
if(type=='character'){
|
|
||||||
src='image/character/'+name+ext;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
src='image/'+type+'/'+subfolder+'/'+name+ext;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
src='image/'+name+ext;
|
|
||||||
}
|
|
||||||
this.setBackgroundImage(src);
|
|
||||||
this.style.backgroundSize="cover";
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
HTMLDivElement.prototype.setBackgroundDB=function(img){
|
|
||||||
var node=this;
|
|
||||||
game.getDB('image',img,function(src){
|
|
||||||
node.style.backgroundImage="url('"+src+"')";
|
|
||||||
node.style.backgroundSize="cover";
|
|
||||||
});
|
|
||||||
};
|
|
||||||
HTMLDivElement.prototype.setBackgroundImage=function(img){
|
|
||||||
this.style.backgroundImage='url("'+lib.assetURL+img+'")';
|
|
||||||
},
|
|
||||||
HTMLDivElement.prototype.listen=function(func){
|
|
||||||
this.addEventListener(lib.config.touchscreen?'touchend':'click',function(e){
|
|
||||||
if(_status.dragged) return;
|
|
||||||
func.call(this,e);
|
|
||||||
})
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
HTMLDivElement.prototype.setPosition=function(){
|
|
||||||
var position;
|
|
||||||
if(arguments.length==4){
|
|
||||||
position=[];
|
|
||||||
for(var i=0;i<arguments.length;i++) position.push(arguments[i]);
|
|
||||||
}
|
|
||||||
else if(arguments.length==1&&get.objtype(arguments[0])=='array'&&arguments[0].length==4){
|
|
||||||
position=arguments[0];
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
var top='calc('+position[0]+'% ';
|
|
||||||
if(position[1]>0) top+='+ '+position[1]+'px)';
|
|
||||||
else top+='- '+Math.abs(position[1])+'px)';
|
|
||||||
var left='calc('+position[2]+'% ';
|
|
||||||
if(position[3]>0) left+='+ '+position[3]+'px)';
|
|
||||||
else left+='- '+Math.abs(position[3])+'px)';
|
|
||||||
this.style.top=top;
|
|
||||||
this.style.left=left;
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
HTMLDivElement.prototype.css=function(style){
|
|
||||||
for(var i in style){
|
|
||||||
if(i=='innerHTML'){
|
|
||||||
this.innerHTML=style[i];
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
this.style[i]=style[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
HTMLDivElement.prototype.transform=function(transform){
|
|
||||||
var str='';
|
|
||||||
for(var i in transform){
|
|
||||||
switch(i){
|
|
||||||
case 'scale':str+='scale('+transform[i]+') ';break;
|
|
||||||
case 'rotate':str+='rotate('+transform[i]+'deg) ';break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(typeof transform=='object'){
|
|
||||||
if(transform.left&&transform.top){
|
|
||||||
str+='translate('+parseInt(transform.left)+'px,'+parseInt(transform.top)+'px) ';
|
|
||||||
}
|
|
||||||
else if(transform.left){
|
|
||||||
str+='translate('+parseInt(transform.left)+'px) ';
|
|
||||||
}
|
|
||||||
else if(transform.top){
|
|
||||||
str+='translate(0,'+parseInt(transform.top)+'px) ';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.style.transform=str;
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
HTMLTableElement.prototype.get=function(row,col){
|
|
||||||
if(row<this.childNodes.length){
|
|
||||||
return this.childNodes[row].childNodes[col];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
Array.prototype.find=function(item){
|
|
||||||
return this.indexOf(item);
|
|
||||||
};
|
|
||||||
Array.prototype.contains=function(item){
|
|
||||||
return this.indexOf(item)!=-1;
|
|
||||||
};
|
|
||||||
Array.prototype.add=function(){
|
|
||||||
for(var i=0;i<arguments.length;i++){
|
|
||||||
if(this.contains(arguments[i])){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
this.push(arguments[i]);
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
Array.prototype.addArray=function(arr){
|
|
||||||
for(var i=0;i<arr.length;i++){
|
|
||||||
this.add(arr[i]);
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
Array.prototype.remove=function(item){
|
|
||||||
if(get.objtype(item)=='array'){
|
|
||||||
for(var i=0;i<item.length;i++) this.remove(item[i]);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var pos=this.find(item);
|
|
||||||
if(pos==-1){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
this.splice(pos,1);
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
Array.prototype.randomGet=function(){
|
|
||||||
var arr=this.slice(0);
|
|
||||||
for(var i=0;i<arguments.length;i++) arr.remove(arguments[i]);
|
|
||||||
return arr[Math.floor(Math.random()*arr.length)];
|
|
||||||
};
|
|
||||||
Array.prototype.randomRemove=function(num){
|
|
||||||
if(typeof num=='number'){
|
|
||||||
var list=[];
|
|
||||||
for(var i=0;i<num;i++){
|
|
||||||
if(this.length){
|
|
||||||
list.push(this.randomRemove());
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
return this.splice(Math.floor(Math.random()*this.length),1)[0];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
Array.prototype.randomSort=function(){
|
|
||||||
var list=[];
|
|
||||||
while(this.length){
|
|
||||||
list.push(this.randomRemove());
|
|
||||||
}
|
|
||||||
for(var i=0;i<list.length;i++){
|
|
||||||
this.push(list[i]);
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
Array.prototype.randomGets=function(num){
|
|
||||||
if(num>this.length){
|
|
||||||
num=this.length;
|
|
||||||
}
|
|
||||||
var arr=this.slice(0);
|
|
||||||
var list=[];
|
|
||||||
for(var i=0;i<num;i++){
|
|
||||||
list.push(arr.splice(Math.floor(Math.random()*arr.length),1)[0]);
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
};
|
|
||||||
if(!Array.from){
|
|
||||||
Array.from=function(args){
|
|
||||||
var list=[];
|
|
||||||
if(args&&args.length){
|
|
||||||
for(var i=0;i<args.length;i++){
|
|
||||||
list.push(args[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
window.onkeydown=function(e){
|
|
||||||
if(!ui.menuContainer||!ui.menuContainer.classList.contains('hidden')){
|
|
||||||
if(e.keyCode==116||((e.ctrlKey||e.metaKey)&&e.keyCode==82)){
|
|
||||||
if(e.shiftKey){
|
|
||||||
if(confirm('是否重置游戏?')){
|
|
||||||
var noname_inited=localStorage.getItem('noname_inited');
|
|
||||||
localStorage.clear();
|
|
||||||
if(noname_inited){
|
|
||||||
localStorage.setItem('noname_inited',noname_inited);
|
|
||||||
}
|
|
||||||
if(indexedDB) indexedDB.deleteDatabase(lib.configprefix+'data');
|
|
||||||
game.reload();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
game.reload();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(e.keyCode==83&&(e.ctrlKey||e.metaKey)){
|
|
||||||
if(window.saveNonameInput){
|
|
||||||
window.saveNonameInput();
|
|
||||||
}
|
|
||||||
e.preventDefault();
|
|
||||||
e.stopPropagation();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
game.closePopped();
|
|
||||||
var dialogs=document.querySelectorAll('#window>.dialog.popped:not(.static)');
|
|
||||||
for(var i=0;i<dialogs.length;i++){
|
|
||||||
dialogs[i].delete();
|
|
||||||
}
|
|
||||||
if(e.keyCode==32){
|
|
||||||
var node=ui.window.querySelector('#paused');
|
|
||||||
if(node){
|
|
||||||
node.click();
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
ui.click.pause();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(e.keyCode==65){
|
|
||||||
if(ui.auto) ui.auto.click();
|
|
||||||
}
|
|
||||||
else if(e.keyCode==87){
|
|
||||||
if(ui.wuxie&&ui.wuxie.style.display!='none'){
|
|
||||||
ui.wuxie.classList.toggle('glow')
|
|
||||||
}
|
|
||||||
else if(ui.tempnowuxie){
|
|
||||||
ui.tempnowuxie.classList.toggle('glow')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(e.keyCode==73){
|
|
||||||
// if(game.showIdentity){
|
|
||||||
// game.showIdentity();
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
else if(e.keyCode==67){
|
|
||||||
// var node=ui.window.querySelector('#click');
|
|
||||||
// if(node){
|
|
||||||
// node.click();
|
|
||||||
// }
|
|
||||||
// else{
|
|
||||||
// ui.click.config();
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
else if(e.keyCode==116||((e.ctrlKey||e.metaKey)&&e.keyCode==82)){
|
|
||||||
if(e.shiftKey){
|
|
||||||
if(confirm('是否重置游戏?')){
|
|
||||||
var noname_inited=localStorage.getItem('noname_inited');
|
|
||||||
localStorage.clear();
|
|
||||||
if(noname_inited){
|
|
||||||
localStorage.setItem('noname_inited',noname_inited);
|
|
||||||
}
|
|
||||||
if(indexedDB) indexedDB.deleteDatabase(lib.configprefix+'data');
|
|
||||||
game.reload();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
game.reload();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(e.keyCode==83&&(e.ctrlKey||e.metaKey)){
|
|
||||||
e.preventDefault();
|
|
||||||
e.stopPropagation();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
window.onload=function(){
|
|
||||||
if(_status.packLoaded){
|
|
||||||
delete _status.packLoaded;
|
|
||||||
lib.init.onload();
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
_status.windowLoaded=true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
if(!lib.config.touchscreen){
|
|
||||||
document.addEventListener('mousewheel',ui.click.windowmousewheel,{passive:true});
|
|
||||||
document.onmousemove=ui.click.windowmousemove;
|
|
||||||
document.onmousedown=ui.click.windowmousedown;
|
|
||||||
document.onmouseup=ui.click.windowmouseup;
|
|
||||||
document.oncontextmenu=ui.click.right;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
document.ontouchstart=ui.click.windowtouchstart;
|
|
||||||
document.ontouchend=ui.click.windowtouchend;
|
|
||||||
document.ontouchmove=ui.click.windowtouchmove;
|
|
||||||
}
|
|
||||||
// window.onbeforeunload=function(){
|
|
||||||
// if(lib.config.confirm_exit&&!_status.reloading){
|
|
||||||
// return '是否离开游戏?'
|
|
||||||
// }
|
|
||||||
// else{
|
|
||||||
// return null;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}());
|
}());
|
||||||
|
|
Loading…
Reference in New Issue