From a4178cb2b9cb0b36609e7df25669fa3b561199ea Mon Sep 17 00:00:00 2001 From: kuangshen04 <2832899707@qq.com> Date: Mon, 6 Nov 2023 23:22:32 +0800 Subject: [PATCH] fix some bugs with eslint --- .eslintrc.json | 9 ++- game/game.js | 150 ++++++++++++++++++++++++------------------------- 2 files changed, 81 insertions(+), 78 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 88229aedd..201a75a19 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,5 +1,5 @@ { - "extends": "chrome 46", + "extends": "eslint:recommended", "env": { "browser": true, "node": true, @@ -10,6 +10,11 @@ "no-console": 0, "no-unused-vars": 0, "no-undef": 0, - "no-redeclare": 0 + "no-redeclare": 0, + "no-prototype-builtins": 0, + "no-irregular-whitespace": ["error", { "skipStrings": true, "skipTemplates": true }], + "no-constant-condition": ["error", { "checkLoops": false }]/* , + "comma-dangle": ["error", "only-multiline"], + "complexity": ["error",100] */ } } \ No newline at end of file diff --git a/game/game.js b/game/game.js index 378da6e1f..18d6157f4 100644 --- a/game/game.js +++ b/game/game.js @@ -6511,7 +6511,7 @@ else{ lib.codeMirrorReady(node,editor); } - }; + } }, }, reset_character_three:{ @@ -6603,7 +6603,7 @@ else{ lib.codeMirrorReady(node,editor); } - }; + } }, }, reset_character_four:{ @@ -7057,7 +7057,7 @@ else{ lib.codeMirrorReady(node,editor); } - }; + } }, }, reset_character:{ @@ -7694,9 +7694,9 @@ }else if(newMessage.includes("Invalid regular expression flags")){ newMessage="无效的正则表达式的标记"; }else if(newMessage.includes("missing ) after argument list")){ - newMessage="参数列表后面缺少 \')\' (丢失运算符或者转义字符等)"; + newMessage="参数列表后面缺少 ')' (丢失运算符或者转义字符等)"; }else if(newMessage.includes("Invalid shorthand property initializer")){ - newMessage="在定义一个{}对象时,应该使用\':\'而不是\'=\'"; + newMessage="在定义一个{}对象时,应该使用':'而不是'='"; }else if(newMessage.includes("Missing initializer in const declaration")){ newMessage="在使用const定义一个对象时,必须指定初始值"; }else if(newMessage.includes("Unexpected number")||newMessage.includes("Unexpected string")){ @@ -7723,11 +7723,11 @@ }else if(newMessage.includes("Cannot read property")){ messageName=newMessage.replace('TypeError: Cannot read property ', '').replace(' of null', '').replace(' of undefined', ''); let ofName=newMessage.slice(newMessage.indexOf(" of ")+4); - newMessage="无法读取\'"+ofName+"\'的属性值"+messageName; + newMessage="无法读取'"+ofName+"'的属性值"+messageName; }else if(newMessage.includes("Cannot read properties")){ messageName=newMessage.slice(newMessage.indexOf("reading '")+9,-2); let ofName=newMessage.slice(newMessage.indexOf(" of ")+4,newMessage.indexOf("(")-1); - newMessage="无法读取\'"+ofName+"\'的属性值"+messageName; + newMessage="无法读取'"+ofName+"'的属性值"+messageName; }else if(newMessage.includes("Property description must be an object")){ messageName=newMessage.replace('TypeError: Property description must be an object: ', ''); newMessage=messageName+"是非对象类型的值"; @@ -7740,7 +7740,7 @@ messageName=newMessage.slice(newMessage.indexOf('\'')+1); messageName=messageName.slice(0,messageName.indexOf('\'')); let obj=newMessage.slice(newMessage.indexOf(messageName)+16); - newMessage=obj+"不能添加或修改\'"+messageName+"\'属性,任何 Primitive 值都不允许有property"; + newMessage=obj+"不能添加或修改'"+messageName+"'属性,任何 Primitive 值都不允许有property"; }else if(newMessage.includes("Can't add property")&&newMessage.includes("is not extensible")){ newMessage="对象不可添加属性(不可扩展)"; }else if(newMessage.includes("Cannot redefine property")){ @@ -7810,10 +7810,10 @@ code=node.editor.getValue(); }else if(node.textarea){ code=node.textarea.value; - }; + } //动态绑定文本 if(code.length&&change.origin=="+input" && - /{|}|\s|=|;|:|,|,|。|?|!|\!|\?|&|#|%|@|‘|’|;/.test(change.text[0])==false&& + /{|}|\s|=|;|:|,|,|。|?|!|!|\?|&|#|%|@|‘|’|;/.test(change.text[0])==false&& change.text.length==1) { //输入了代码,并且不包括空格,{},=, ; , : , 逗号等,才可以自动提示 node.editor.showHint(); @@ -7942,7 +7942,7 @@ } function javascriptHint(editor,options){ return scriptHint(editor,javascriptKeywords,function(e,cur){return e.getTokenAt(cur);},options); - }; + } //覆盖原本的javascript提示 CodeMirror.registerHelper("hint","javascript",javascriptHint); const stringProps=Object.getOwnPropertyNames(String.prototype); @@ -8136,7 +8136,7 @@ run:function(time){ lib.status.time=time; for(var i=0;i=10){ if(line>4){ @@ -11368,7 +11368,7 @@ function Legacy(func){ //Remove all comments //移除所有注释 - let str=func.toString().replace(/((?:(?:^[ \t]*)?(?:\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\/(?:[ \t]*\r?\n(?=[ \t]*(?:\r?\n|\/\*|\/\/)))?|\/\/(?:[^\\]|\\(?:\r?\n)?)*?(?:\r?\n(?=[ \t]*(?:\r?\n|\/\*|\/\/))|(?=\r?\n))))+)|("(?:\\[\s\S]|[^"\\])*"|'(?:\\[\s\S]|[^'\\])*'|(?:\r?\n|[\s\S])[^\/"'\\\s]*)/mg,'$2').trim(); + let str=func.toString().replace(/((?:(?:^[ \t]*)?(?:\/\*[^*]*\*+(?:[^/*][^*]*\*+)*\/(?:[ \t]*\r?\n(?=[ \t]*(?:\r?\n|\/\*|\/\/)))?|\/\/(?:[^\\]|\\(?:\r?\n)?)*?(?:\r?\n(?=[ \t]*(?:\r?\n|\/\*|\/\/))|(?=\r?\n))))+)|("(?:\\[\s\S]|[^"\\])*"|'(?:\\[\s\S]|[^'\\])*'|(?:\r?\n|[\s\S])[^/"'\\\s]*)/mg,'$2').trim(); //获取第一个 { 后的所有字符 str=str.slice(str.indexOf('{')+1); //判断代码中是否有debugger @@ -11502,7 +11502,7 @@ } else if(typeof func=='object'){ for(var i in func){ - if(func.hasOwnProperty(i)){ + if(Object.prototype.hasOwnProperty.call(func, i)){ func[i]=lib.init.eval(func[i]); } } @@ -14469,7 +14469,7 @@ event.finish(); return; } - }; + } event.doing=event.map.shift(); 'step 3' event.num=0; @@ -15021,7 +15021,7 @@ current.getHistory().isRound=true; current.getStat().isRound=true; } - }; + } if(isRound){ game.getGlobalHistory().isRound=true; } @@ -16185,7 +16185,7 @@ result[0].cards=lib.skill[result[0].skill].onCompare(player) } else lose_list.push([player,result[0].cards]); - }; + } for(var j=0; j1){ - if(Boolean(event.small)) return getn(card)-get.value(card)/2+addi; + if(event.small) return getn(card)-get.value(card)/2+addi; return -getn(card)-get.value(card)/2+addi; } - if(Boolean(event.small)) return -getn(card)-get.value(card)/2+addi; + if(event.small) return -getn(card)-get.value(card)/2+addi; return getn(card)-get.value(card)/2+addi; } else{ - if(Boolean(event.small)) return -getn(card)-get.value(card)/2+addi; + if(event.small) return -getn(card)-get.value(card)/2+addi; return getn(card)-get.value(card)/2+addi; } } @@ -24118,7 +24118,7 @@ var addi=(get.value(card)>=8&&get.type(card)!='equip')?-6:0; if(card.name=='du') addi-=5; if(player==event.player){ - if(Boolean(event.small)){ + if(event.small){ return -getn(card)-get.value(card)/2+addi; } return getn(card)-get.value(card)/2+addi; @@ -25346,7 +25346,7 @@ } } if(next.animate=='gain2'||next.animate=='draw2'){ - if(!next.hasOwnProperty('log')){ + if(!Object.prototype.hasOwnProperty.call(next, 'log')){ next.log=true; } } @@ -25433,7 +25433,7 @@ } } if(next.animate=='gain2'||next.animate=='draw2'||next.animate=='give'){ - if(!next.hasOwnProperty('log')){ + if(!Object.prototype.hasOwnProperty.call(next, 'log')){ next.log=true; } } @@ -26056,7 +26056,7 @@ const position=get.position(card,true); return position!='j'&&position!='o'; })){ - game.log(card,'已被移出处理区,无法置入判定区'); + game.log(card,'已被移出处理区,无法置入判定区'); return; } for(let iwhile=0;iwhile<20;iwhile++){ @@ -26237,7 +26237,7 @@ } clearTimeout(lib.node.torespondtimeout[this.playerid]); delete lib.node.torespondtimeout[this.playerid]; - if(!lib.node.torespond.hasOwnProperty(this.playerid)){ + if(!Object.prototype.hasOwnProperty.call(lib.node.torespond, this.playerid)){ return; } var noresume=false; @@ -26264,7 +26264,7 @@ else if(_status.paused&&!noresume) game.resume(); } tempUnwait(result){ - if(!lib.node.torespond.hasOwnProperty(this.playerid)){ + if(!Object.prototype.hasOwnProperty.call(lib.node.torespond, this.playerid)){ return; } var proceed; @@ -31289,7 +31289,6 @@ parent=parent.parent; if(historys.contains(parent)) return toreturn; } - if(!parent) return toreturn; } if(toreturn===null){ return null; @@ -31521,7 +31520,7 @@ for(var i=0;i|\|/g,'-')}.zip`; + }),fileNameToSaveAs=`${exportExtension.replace(/\\|\/|:|\?|"|\*|<|>|\|/g,'-')}.zip`; if(lib.device){ const directory=lib.device=='android'?cordova.file.externalDataDirectory:cordova.file.documentsDirectory; @@ -37589,7 +37588,7 @@ const config=game.importedPack.config; Object.keys(config).forEach(value=>{ const configObject=config[value]; - if(configObject&&configObject.hasOwnProperty('init')) game.saveConfig(`extension_${extensionName}_${value}`,configObject.init); + if(configObject&&Object.prototype.hasOwnProperty.call(configObject, 'init')) game.saveConfig(`extension_${extensionName}_${value}`,configObject.init); }); if(game.download){ const files=zip.files,hiddenFileFlags=['.','_'],fileList=Object.keys(files).filter(key=>!files[key].dir&&!hiddenFileFlags.includes(key[0])).reverse(); @@ -37667,7 +37666,7 @@ export:function(textToWrite,name){ var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'}); var fileNameToSaveAs = name||'noname'; - fileNameToSaveAs=fileNameToSaveAs.replace(/\\|\/|\:|\?|\"|\*|<|>|\|/g,'.'); + fileNameToSaveAs=fileNameToSaveAs.replace(/\\|\/|:|\?|"|\*|<|>|\|/g,'.'); if(lib.device){ var directory; @@ -42029,7 +42028,7 @@ config.num=config.num||num||3; config.ratio=config.ratio||ratio||1.2; config.update=config.update||update; - if(!config.hasOwnProperty('first')){ + if(!Object.prototype.hasOwnProperty.call(config, 'first')){ if(typeof first=='boolean'){ config.first=first; } @@ -42643,10 +42642,10 @@ } if(info.marktext) lib.translate[`${i}_bg`]=info.marktext; if(info.silent){ - if(!info.hasOwnProperty('forced')) info.forced=true; - if(!info.hasOwnProperty('popup')) info.popup=false; + if(!Object.prototype.hasOwnProperty.call(info, 'forced')) info.forced=true; + if(!Object.prototype.hasOwnProperty.call(info, 'popup')) info.popup=false; } - if(!info.hasOwnProperty('_priority')){ + if(!Object.prototype.hasOwnProperty.call(info, '_priority')){ let priority=0; if(info.priority){ priority=info.priority*100; @@ -43065,7 +43064,7 @@ game.reload2(); reject(event); } - };; + }; record.onsuccess=event=>{ if(typeof onSuccess=='function'){ _status.dburgent=true; @@ -43105,7 +43104,7 @@ game.reload2(); reject(event); } - };; + }; idbRequest.onsuccess=event=>{ const result=event.target.result; if(typeof onSuccess=='function'){ @@ -43129,7 +43128,7 @@ game.reload2(); reject(event); } - };; + }; idbRequest.onsuccess=event=>{ const result=event.target.result; if(result){ @@ -43190,7 +43189,7 @@ request.onerror=event=>{ game.reload2(); reject(event); - };; + }; request.onsuccess=event=>{ game.reload2(); resolve(event); @@ -44943,7 +44942,7 @@ var cfg=copyObj(infoconfig[j]); cfg._name=j; cfg.mode=mode; - if(!config.hasOwnProperty(j)){ + if(!Object.prototype.hasOwnProperty.call(config, j)){ game.saveConfig(j,cfg.init,mode); } else{ @@ -45411,7 +45410,7 @@ } var cfg=copyObj(info.config[j]); cfg._name=j; - if(!config.hasOwnProperty(j)){ + if(!Object.prototype.hasOwnProperty.call(config, j)){ if(cfg.type!='autoskill'&&cfg.type!='banskill'){ game.saveConfig(j,cfg.init); } @@ -45529,7 +45528,7 @@ } var link=(game.writeFile?'cdv_':'custom_')+name; if(lib.config.customBackgroundMusic[link]){ - if(!confirm('已经存在文件名称相同的背景音乐,是否仍然要继续导入?')){_status.music_importing=false;return}; + if(!confirm('已经存在文件名称相同的背景音乐,是否仍然要继续导入?')){_status.music_importing=false;return} for(var i=1;i<1000;i++){ if(!lib.config.customBackgroundMusic[link+'_'+i]){ link=link+'_'+i;break; @@ -47285,7 +47284,7 @@ j=mode+'_'+i+'_playpackconfig'; } cfg._name=j; - if(!lib.config.hasOwnProperty(j)){ + if(!Object.prototype.hasOwnProperty.call(lib.config, j)){ game.saveConfig(j,cfg.init); } else{ @@ -48538,7 +48537,7 @@ editnode.classList.add('disabled'); delnode.innerHTML='取消'; delete delnode.button; - container.code='card={\n \n}\n\n\/*\n示例:\ncard={\n type:"basic",\n enable:true,\n filterTarget:true,\n content:function(){\n target.draw()\n },\n ai:{\n order:1,\n result:{\n target:1\n }\n }\n}\n此例的效果为目标摸一张牌\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/'; + container.code='card={\n \n}\n\n/*\n示例:\ncard={\n type:"basic",\n enable:true,\n filterTarget:true,\n content:function(){\n target.draw()\n },\n ai:{\n order:1,\n result:{\n target:1\n }\n }\n}\n此例的效果为目标摸一张牌\n导出时本段代码中的换行、缩进以及注释将被清除\n*/'; } newCard=ui.create.div('.new_character',page); @@ -48737,7 +48736,7 @@ delete window.saveNonameInput; }; var editor=ui.create.editor(container,saveInput); - container.code='card={\n \n}\n\n\/*\n示例:\ncard={\n type:"basic",\n enable:true,\n filterTarget:true,\n content:function(){\n target.draw()\n },\n ai:{\n order:1,\n result:{\n target:1\n }\n }\n}\n此例的效果为目标摸一张牌\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/'; + container.code='card={\n \n}\n\n/*\n示例:\ncard={\n type:"basic",\n enable:true,\n filterTarget:true,\n content:function(){\n target.draw()\n },\n ai:{\n order:1,\n result:{\n target:1\n }\n }\n}\n此例的效果为目标摸一张牌\n导出时本段代码中的换行、缩进以及注释将被清除\n*/'; var editnode=ui.create.div('.menubutton.large.new_card.disabled','创建卡牌',newCard,function(){ var name=page.querySelector('input.new_name').value; @@ -49088,7 +49087,7 @@ editnode.classList.add('disabled'); delnode.innerHTML='取消'; delete delnode.button; - container.code='skill={\n \n}\n\n\/*\n示例:\nskill={\n trigger:{player:"phaseJieshuBegin"},\n frequent:true,\n content:function(){\n player.draw()\n }\n}\n此例为闭月代码\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/'; + container.code='skill={\n \n}\n\n/*\n示例:\nskill={\n trigger:{player:"phaseJieshuBegin"},\n frequent:true,\n content:function(){\n player.draw()\n }\n}\n此例为闭月代码\n导出时本段代码中的换行、缩进以及注释将被清除\n*/'; if(page.fromchar=='add'){ page.fromchar=true; } @@ -49174,7 +49173,7 @@ delete window.saveNonameInput; }; var editor=ui.create.editor(container,saveInput); - container.code='skill={\n \n}\n\n\/*\n示例:\nskill={\n trigger:{player:"phaseJieshuBegin"},\n frequent:true,\n content:function(){\n player.draw()\n }\n}\n此例为闭月代码\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/'; + container.code='skill={\n \n}\n\n/*\n示例:\nskill={\n trigger:{player:"phaseJieshuBegin"},\n frequent:true,\n content:function(){\n player.draw()\n }\n}\n此例为闭月代码\n导出时本段代码中的换行、缩进以及注释将被清除\n*/'; var citebutton=document.createElement('button'); citebutton.innerHTML='引用代码'; @@ -49402,10 +49401,10 @@ } } else{ - dashes.content.node.code='function(config,pack){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之后、界面加载之前\n参数1扩展选项(见选项代码);参数2为扩展定义的武将、卡牌和技能等(可在此函数中修改)\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/'; - dashes.precontent.node.code='function(){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之前,且不受禁用扩展的限制\n除添加模式外请慎用\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/'; - dashes.config.node.code='config={\n \n}\n\n\/*\n示例:\nconfig={\n switcher_example:{\n name:"示例列表选项",\n init:"3",\n item:{"1":"一","2":"二","3":"三"}\n },\n toggle_example:{\n name:"示例开关选项",\n init:true\n }\n}\n此例中传入的主代码函数的默认参数为{switcher_example:"3",toggle_example:true}\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/'; - dashes.help.node.code='help={\n \n}\n\n\/*\n示例:\nhelp={\n "帮助条目":"
  • 列表1-条目1
  • 列表1-条目2
  1. 列表2-条目1
  2. 列表2-条目2"\n}\n帮助内容将显示在菜单-选项-帮助中\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/'; + dashes.content.node.code='function(config,pack){\n \n}\n\n/*\n函数执行时机为游戏数据加载之后、界面加载之前\n参数1扩展选项(见选项代码);参数2为扩展定义的武将、卡牌和技能等(可在此函数中修改)\n导出时本段代码中的换行、缩进以及注释将被清除\n*/'; + dashes.precontent.node.code='function(){\n \n}\n\n/*\n函数执行时机为游戏数据加载之前,且不受禁用扩展的限制\n除添加模式外请慎用\n导出时本段代码中的换行、缩进以及注释将被清除\n*/'; + dashes.config.node.code='config={\n \n}\n\n/*\n示例:\nconfig={\n switcher_example:{\n name:"示例列表选项",\n init:"3",\n item:{"1":"一","2":"二","3":"三"}\n },\n toggle_example:{\n name:"示例开关选项",\n init:true\n }\n}\n此例中传入的主代码函数的默认参数为{switcher_example:"3",toggle_example:true}\n导出时本段代码中的换行、缩进以及注释将被清除\n*/'; + dashes.help.node.code='help={\n \n}\n\ns/*\n示例:\nhelp={\n "帮助条目":"
    • 列表1-条目1
    • 列表1-条目2
    1. 列表2-条目1
    2. 列表2-条目2"\n}\n帮助内容将显示在菜单-选项-帮助中\n导出时本段代码中的换行、缩进以及注释将被清除\n*/'; } }; var dashes={}; @@ -49511,10 +49510,10 @@ } }; page.content={} - createCode('主','主代码',page,clickCode,'content','function(config,pack){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之后、界面加载之前\n参数1扩展选项(见选项代码);参数2为扩展定义的武将、卡牌和技能等(可在此函数中修改)\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/'); - createCode('启','启动代码',page,clickCode,'precontent','function(){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之前,且不受禁用扩展的限制\n除添加模式外请慎用\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/'); - createCode('选','选项代码',page,clickCode,'config','config={\n \n}\n\n\/*\n示例:\nconfig={\n switcher_example:{\n name:"示例列表选项",\n init:"3",\n item:{"1":"一","2":"二","3":"三"}\n },\n toggle_example:{\n name:"示例开关选项",\n init:true\n }\n}\n此例中传入的主代码函数的默认参数为{switcher_example:"3",toggle_example:true}\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/'); - createCode('帮','帮助代码',page,clickCode,'help','help={\n \n}\n\n\/*\n示例:\nhelp={\n "帮助条目":"
      • 列表1-条目1
      • 列表1-条目2
      1. 列表2-条目1
      2. 列表2-条目2"\n}\n帮助内容将显示在菜单-选项-帮助中\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/'); + createCode('主','主代码',page,clickCode,'content','function(config,pack){\n \n}\n\n/*\n函数执行时机为游戏数据加载之后、界面加载之前\n参数1扩展选项(见选项代码);参数2为扩展定义的武将、卡牌和技能等(可在此函数中修改)\n导出时本段代码中的换行、缩进以及注释将被清除\n*/'); + createCode('启','启动代码',page,clickCode,'precontent','function(){\n \n}\n\n/*\n函数执行时机为游戏数据加载之前,且不受禁用扩展的限制\n除添加模式外请慎用\n导出时本段代码中的换行、缩进以及注释将被清除\n*/'); + createCode('选','选项代码',page,clickCode,'config','config={\n \n}\n\n/*\n示例:\nconfig={\n switcher_example:{\n name:"示例列表选项",\n init:"3",\n item:{"1":"一","2":"二","3":"三"}\n },\n toggle_example:{\n name:"示例开关选项",\n init:true\n }\n}\n此例中传入的主代码函数的默认参数为{switcher_example:"3",toggle_example:true}\n导出时本段代码中的换行、缩进以及注释将被清除\n*/'); + createCode('帮','帮助代码',page,clickCode,'help','help={\n \n}\n\n/*\n示例:\nhelp={\n "帮助条目":"
        • 列表1-条目1
        • 列表1-条目2
        1. 列表2-条目1
        2. 列表2-条目2"\n}\n帮助内容将显示在菜单-选项-帮助中\n导出时本段代码中的换行、缩进以及注释将被清除\n*/'); return page; }()); @@ -49678,7 +49677,7 @@ game.saveConfig('extension_'+extname+'_enable',true); game.saveConfig('extension_'+extname+'_version',that.info.version); for(var i in game.importedPack.config){ - if(game.importedPack.config[i]&&game.importedPack.config[i].hasOwnProperty('init')){ + if(game.importedPack.config[i]&&Object.prototype.hasOwnProperty.call(game.importedPack.config[i], 'init')){ game.saveConfig('extension_'+extname+'_'+i,game.importedPack.config[i].init); } } @@ -56919,7 +56918,7 @@ if(!information) { resolve(`${lib.assetURL}image/card/${imageName}.png`) return; - }; + } const image=information.image; if(!image) resolve(`${lib.assetURL}image/card/${imageName}.png`); else if(image.startsWith('db:')) game.getDB('image',image.slice(3)).then(resolve,reject); @@ -58298,7 +58297,7 @@ priority:skill=>{ const info=get.info(skill); if(!info) return 0; - if(info.hasOwnProperty('_priority')) return info._priority; + if(Object.prototype.hasOwnProperty.call(info, '_priority')) return info._priority; let priority=0; if(info.priority){ priority=info.priority*100; @@ -58946,7 +58945,7 @@ character:(name,num)=>{ let info=lib.character[name]; if(!info){ - const pack=Object.keys(lib.characterPack).find(pack=>lib.characterPack[pack].hasOwnProperty(name)); + const pack=Object.keys(lib.characterPack).find(pack=>Object.prototype.hasOwnProperty.call(lib.characterPack[pack], name)); if(pack) info=lib.characterPack[pack][name]; } if(info){ @@ -59145,7 +59144,7 @@ } num=Math.floor(num/4); for(i=0;i