This commit is contained in:
libccy 2016-08-15 22:19:58 +08:00
parent 87d7492f21
commit fb508b4b53
211 changed files with 6509 additions and 114 deletions

View File

@ -2298,7 +2298,7 @@ character.boss={
target.loseMaxHp(); target.loseMaxHp();
} }
else{ else{
target.disabledSkills.boss_hujia=lib.character[target.name][3]; target.disableSkill('boss_hujia',lib.character[target.name][3]);
} }
player.discard(result.cards); player.discard(result.cards);
} }
@ -2330,7 +2330,7 @@ character.boss={
player.draw(4); player.draw(4);
"step 2" "step 2"
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
delete game.players[i].disabledSkills.boss_hujia; game.players[i].enableSkill('boss_hujia');
} }
if(game.bossinfo){ if(game.bossinfo){
game.bossinfo.loopType=1; game.bossinfo.loopType=1;

View File

@ -983,12 +983,13 @@ character.refresh={
"step 1" "step 1"
if(result.bool){ if(result.bool){
if(target.hasSkill('yijue2')==false){ if(target.hasSkill('yijue2')==false){
target.disabledSkills.yijue=[]; var list=[];
for(var i=0;i<target.skills.length;i++){ for(var i=0;i<target.skills.length;i++){
if(!get.skillLocked(target.skills[i])){ if(!get.is.locked(target.skills[i])){
target.disabledSkills.yijue.push(target.skills[i]); list.push(target.skills[i]);
} }
} }
target.disableSkill('yijue',list);
target.addSkill('yijue2'); target.addSkill('yijue2');
} }
event.finish(); event.finish();
@ -1036,8 +1037,9 @@ character.refresh={
forced:true, forced:true,
mark:true, mark:true,
audio:false, audio:false,
popup:false,
content:function(){ content:function(){
delete player.disabledSkills.yijue; player.enableSkill('yijue');
player.removeSkill('yijue2'); player.removeSkill('yijue2');
}, },
mod:{ mod:{
@ -1080,12 +1082,13 @@ character.refresh={
player.judge(function(){return 0}); player.judge(function(){return 0});
var target=trigger.target; var target=trigger.target;
if(target.hasSkill('retieji2')==false){ if(target.hasSkill('retieji2')==false){
target.disabledSkills.retieji=[]; var list=[];
for(var i=0;i<target.skills.length;i++){ for(var i=0;i<target.skills.length;i++){
if(!get.skillLocked(target.skills[i])){ if(!get.is.locked(target.skills[i])){
target.disabledSkills.retieji.push(target.skills[i]); list.push(target.skills[i]);
} }
} }
target.disableSkill('retieji',list);
target.addSkill('retieji2'); target.addSkill('retieji2');
} }
"step 1" "step 1"
@ -1110,11 +1113,12 @@ character.refresh={
trigger:{global:'phaseAfter'}, trigger:{global:'phaseAfter'},
forced:true, forced:true,
content:function(){ content:function(){
delete player.disabledSkills.retieji; player.enableSkill('retieji');
player.removeSkill('retieji2'); player.removeSkill('retieji2');
}, },
audio:false, audio:false,
mark:true, mark:true,
popup:false,
intro:{ intro:{
content:function(st,player){ content:function(st,player){
var storage=player.disabledSkills.retieji; var storage=player.disabledSkills.retieji;

View File

@ -1927,18 +1927,20 @@ character.swd={
return '是否弃置一枚破咒标记令'+get.translation(event.player)+ return '是否弃置一枚破咒标记令'+get.translation(event.player)+
'的非锁定技失效?(剩余'+player.storage.pozhou+'枚)'; '的非锁定技失效?(剩余'+player.storage.pozhou+'枚)';
}, },
popup:false,
content:function(){ content:function(){
player.storage.pozhou--; player.storage.pozhou--;
if(!player.storage.pozhou){ if(!player.storage.pozhou){
player.unmarkSkill('pozhou'); player.unmarkSkill('pozhou');
} }
var target=trigger.player; var target=trigger.player;
target.disabledSkills.pozhou=[]; var list=[];
for(var i=0;i<target.skills.length;i++){ for(var i=0;i<target.skills.length;i++){
if(!get.skillLocked(target.skills[i])){ if(!get.is.locked(target.skills[i])){
target.disabledSkills.pozhou.push(target.skills[i]); list.push(target.skills[i]);
} }
} }
target.disableSkill('pozhou',list);
target.addSkill('pozhou3'); target.addSkill('pozhou3');
player.line(target,'green'); player.line(target,'green');
} }
@ -1948,7 +1950,7 @@ character.swd={
forced:true, forced:true,
mark:true, mark:true,
content:function(){ content:function(){
delete player.disabledSkills.pozhou; player.enableSkill('pouzhou');
player.removeSkill('pozhou3'); player.removeSkill('pozhou3');
}, },
intro:{ intro:{

View File

@ -1082,9 +1082,9 @@ window.noname_asset_list=[
'image/splash/chess.jpg', 'image/splash/chess.jpg',
'image/splash/guozhan.jpg', 'image/splash/guozhan.jpg',
'image/splash/identity.jpg', 'image/splash/identity.jpg',
'image/splash/realtime.jpg', 'image/splash/tafang.jpg',
'image/splash/stone.jpg', 'image/splash/stone.jpg',
'image/splash/story.jpg', 'image/splash/brawl.jpg',
'image/splash/versus.jpg', 'image/splash/versus.jpg',
'image/splash/connect.jpg', 'image/splash/connect.jpg',
'audio/background/music_danji.mp3', 'audio/background/music_danji.mp3',

View File

@ -26,7 +26,7 @@ window.config={
forbiddouble:['zhugedan','swd_kangnalishi','dongzhuo','wutugu','jg_simayi','hs_siwangzhiyi','hs_ronghejuren','hs_shanlingjuren'], forbiddouble:['zhugedan','swd_kangnalishi','dongzhuo','wutugu','jg_simayi','hs_siwangzhiyi','hs_ronghejuren','hs_shanlingjuren'],
layoutfixed:['chess'], layoutfixed:['chess'],
all:{ all:{
stockmode:['identity','guozhan','versus','boss','chess','stone','connect','story','realtime'], stockmode:['identity','guozhan','versus','boss','chess','stone','connect','brawl','tafang'],
layout:['default','newlayout'], layout:['default','newlayout'],
theme:['woodden','music','simple'], theme:['woodden','music','simple'],
card_font:['xiaozhuan','huangcao','caoshu','xingshu'], card_font:['xiaozhuan','huangcao','caoshu','xingshu'],

View File

@ -2819,6 +2819,70 @@
}, },
} }
}, },
tafang:{
name:'塔防',
config:{
tafang_turn:{
name:'游戏胜利',
init:'20',
frequent:true,
item:{
'10':'十回合',
'20':'二十回合',
'30':'三十回合',
'1000':'无限',
}
},
tafang_size:{
name:'战场大小',
init:'9',
frequent:true,
item:{
'6':'小',
'9':'中',
'12':'大',
}
},
tafang_difficulty:{
name:'战斗难度',
init:'2',
frequent:true,
item:{
'1':'简单',
'2':'普通',
'3':'困难',
}
},
show_range:{
name:'显示卡牌范围',
init:true,
},
show_distance:{
name:'显示距离',
init:true,
},
ban_weak:{
name:'屏蔽弱将',
init:true,
restart:true,
},
ban_strong:{
name:'屏蔽强将',
init:false,
restart:true,
},
chessscroll_speed:{
name:'边缘滚动速度',
init:'20',
item:{
'0':'不滚动',
'10':'10格/秒',
'20':'20格/秒',
'30':'30格/秒',
}
},
}
},
story:{ story:{
name:'群侠', name:'群侠',
config:{ config:{
@ -2872,12 +2936,6 @@
} }
}, },
} }
},
realtime:{
name:'即时',
config:{
}
}, },
stone:{ stone:{
name:'炉石', name:'炉石',
@ -3303,7 +3361,7 @@
} }
// if(lib.config.debug){ // if(lib.config.debug){
// mode.pack.story='群侠'; // mode.pack.story='群侠';
// mode.pack.realtime='即时'; // mode.pack.tafang='即时';
// } // }
for(i in mode.pack){ for(i in mode.pack){
if(lib.config.hiddenModePack.indexOf(i)==-1){ if(lib.config.hiddenModePack.indexOf(i)==-1){
@ -4631,7 +4689,7 @@
} }
}, },
s:function(skill){ s:function(skill){
game.me.addSkill(skill); game.me.addSkill(skill,true);
game.check(); game.check();
}, },
t:function(num){ t:function(num){
@ -5028,9 +5086,7 @@
var info=get.info(event.skill); var info=get.info(event.skill);
var next=game.createEvent(event.skill); var next=game.createEvent(event.skill);
if(typeof info.usable=='number'){ if(typeof info.usable=='number'){
if(!player.hasSkill('counttrigger')){ player.addSkill('counttrigger');
player.addSkill('counttrigger');
}
if(!player.storage.counttrigger){ if(!player.storage.counttrigger){
player.storage.counttrigger={}; player.storage.counttrigger={};
} }
@ -5070,7 +5126,7 @@
'step 0' 'step 0'
game.delay(0,500); game.delay(0,500);
'step 1' 'step 1'
if(lib.config.mode!='chess'){ if(!game.chess){
ui.control.innerHTML=''; ui.control.innerHTML='';
var nodes=[]; var nodes=[];
for(var i=0;i<ui.arena.childNodes.length;i++){ for(var i=0;i<ui.arena.childNodes.length;i++){
@ -5139,7 +5195,7 @@
ui.refresh(ui.arena); ui.refresh(ui.arena);
ui.arena.show(); ui.arena.show();
} }
if(lib.config.mode!='chess'){ if(!game.chess){
game.playerMap={}; game.playerMap={};
} }
game.finishCards(); game.finishCards();
@ -8191,6 +8247,7 @@
for(var i=0;i<skills.length;i++){ for(var i=0;i<skills.length;i++){
this.addSkill(skills[i]); this.addSkill(skills[i]);
} }
this.checkConflict();
} }
lib.group.add(this.group); lib.group.add(this.group);
if(this.inits){ if(this.inits){
@ -8304,7 +8361,7 @@
this.additionalSkills={}; this.additionalSkills={};
this.disabledSkills={}; this.disabledSkills={};
this.hiddenSkills=[]; this.hiddenSkills=[];
this.forbiddenSkills=[]; this.forbiddenSkills={};
this.stat=[{card:{},skill:{}}]; this.stat=[{card:{},skill:{}}];
this.tempSkills={}; this.tempSkills={};
this.storage={}; this.storage={};
@ -8704,9 +8761,9 @@
} }
} }
} }
for(i=0;i<this.forbiddenSkills.length;i++){ for(var i in this.forbiddenSkills){
skills.remove(this.forbiddenSkills[i]); skills.remove(i);
} }
if(arg4!==false){ if(arg4!==false){
skills=game.filterSkills(skills,this); skills=game.filterSkills(skills,this);
} }
@ -10554,7 +10611,7 @@
if(distance==false) return lib.filter.targetEnabled(card,this,player); if(distance==false) return lib.filter.targetEnabled(card,this,player);
return lib.filter.filterTarget(card,this,player); return lib.filter.filterTarget(card,this,player);
}, },
addSkillTrigger:function(skill,hidden){ addSkillTrigger:function(skill,hidden,triggeronly){
var info=lib.skill[skill]; var info=lib.skill[skill];
if(!info) return; if(!info) return;
if(typeof info.group=='string'){ if(typeof info.group=='string'){
@ -10565,20 +10622,22 @@
this.addSkillTrigger(info.group[i],hidden); this.addSkillTrigger(info.group[i],hidden);
} }
} }
if(info.global&&(!hidden||info.globalSilent)){ if(!triggeronly){
if(typeof info.global=='string'){ if(info.global&&(!hidden||info.globalSilent)){
game.addGlobalSkill(info.global,this); if(typeof info.global=='string'){
} game.addGlobalSkill(info.global,this);
else{ }
for(var j=0;j<info.global.length;j++){ else{
game.addGlobalSkill(info.global[j],this); for(var j=0;j<info.global.length;j++){
game.addGlobalSkill(info.global[j],this);
}
} }
} }
} if(this.initedSkills.contains(skill)) return;
if(this.initedSkills.contains(skill)) return; this.initedSkills.push(skill);
this.initedSkills.push(skill); if(info.init){
if(info.init){ info.init(this);
info.init(this); }
} }
if(info.trigger&&this.playerid){ if(info.trigger&&this.playerid){
var playerid=this.playerid; var playerid=this.playerid;
@ -10613,7 +10672,7 @@
} }
} }
}, },
addSkill:function(skill){ addSkill:function(skill,checkConflict){
if(get.objtype(skill)=='array'){ if(get.objtype(skill)=='array'){
for(var i=0;i<skill.length;i++){ for(var i=0;i<skill.length;i++){
this.addSkill(skill[i]); this.addSkill(skill[i]);
@ -10648,7 +10707,7 @@
} }
} }
} }
this.checkConflict(); if(checkConflict) this.checkConflict();
return skill; return skill;
}, },
addAdditionalSkill:function(skill,skills,keep){ addAdditionalSkill:function(skill,skills,keep){
@ -10674,6 +10733,7 @@
this.skills.remove(skills[i]); this.skills.remove(skills[i]);
this.additionalSkills[skill].push(skills[i]); this.additionalSkills[skill].push(skills[i]);
} }
this.checkConflict();
}, },
removeAdditionalSkill:function(skill){ removeAdditionalSkill:function(skill){
if(this.additionalSkills[skill]){ if(this.additionalSkills[skill]){
@ -10687,6 +10747,30 @@
} }
delete this.additionalSkills[skill]; delete this.additionalSkills[skill];
} }
},
disableSkill:function(skill,skills){
this.disabledSkills[skill]=skills;
if(typeof skills=='string'){
this.removeSkillTrigger(skills,true);
}
else if(Array.isArray(skills)){
for(var i=0;i<skills.length;i++){
this.removeSkillTrigger(skills[i],true);
}
}
},
enableSkill:function(skill){
var skills=this.disabledSkills[skill];
this.disabledSkills[skill]=skills;
if(typeof skills=='string'){
this.addSkillTrigger(skills,false,true);
}
else if(Array.isArray(skills)){
for(var i=0;i<skills.length;i++){
this.addSkillTrigger(skills[i],false,true);
}
}
delete this.disabledSkills[skill];
}, },
checkMarks:function(){ checkMarks:function(){
var skills=this.get('s'); var skills=this.get('s');
@ -10709,7 +10793,7 @@
} }
} }
}, },
removeSkillTrigger:function(skill){ removeSkillTrigger:function(skill,triggeronly){
var info=lib.skill[skill]; var info=lib.skill[skill];
if(!info) return; if(!info) return;
if(typeof info.group=='string'){ if(typeof info.group=='string'){
@ -10720,7 +10804,7 @@
this.removeSkillTrigger(info.group[i]); this.removeSkillTrigger(info.group[i]);
} }
} }
this.initedSkills.remove(skill); if(!triggeronly) this.initedSkills.remove(skill);
if(info.trigger){ if(info.trigger){
var playerid=this.playerid; var playerid=this.playerid;
var removeTrigger=function(i,evt){ var removeTrigger=function(i,evt){
@ -10768,7 +10852,7 @@
else{ else{
this.unmarkSkill(skill); this.unmarkSkill(skill);
this.skills.remove(skill); this.skills.remove(skill);
this.checkConflict(); this.checkConflict(skill);
delete this.tempSkills[skill]; delete this.tempSkills[skill];
var info=lib.skill[skill]; var info=lib.skill[skill];
if(info){ if(info){
@ -10780,12 +10864,44 @@
} }
return skill; return skill;
}, },
addTempSkill:function(skill,expire){ addTempSkill:function(skill,expire,checkConflict){
if(this.hasSkill(skill)&&this.tempSkills[skill]==undefined) return; if(this.hasSkill(skill)&&this.tempSkills[skill]==undefined) return;
this.addSkill(skill); this.addSkill(skill,checkConflict);
this.skills.remove(skill); this.skills.remove(skill);
this.tempSkills[skill]=expire; this.tempSkills[skill]=expire;
this.checkConflict();
if(typeof expire=='string'){
lib.hookmap[expire]=true;
}
else if(Array.isArray(expire)){
for(var i=0;i<expire.length;i++){
lib.hookmap[expire[i]]=true;
}
}
else if(get.objtype(expire)=='object'){
var roles=['player','source','target'];
for(var i=0;i<roles.length;i++){
if(typeof expire[roles[i]]=='string'){
lib.hookmap[expire]=true;
}
else if(Array.isArray(expire[roles[i]])){
for(var j=0;j<expire[roles[i]].length;j++){
lib.hookmap[expire[roles[i]][j]]=true;
}
}
}
}
for(var i in expire){
if(typeof expire[i]=='string'){
lib.hookmap[expire[i]]=true;
}
else if(Array.isArray(expire[i])){
for(var j=0;j<expire.length;j++){
lib.hookmap[expire[i][j]]=true;
}
}
}
return skill; return skill;
}, },
attitudeTo:function(target){ attitudeTo:function(target){
@ -10808,9 +10924,23 @@
this.checkMarks(); this.checkMarks();
return list; return list;
}, },
checkConflict:function(){ checkConflict:function(skill){
if(this.name&&this.name2){ if(skill){
this.forbiddenSkills.length=0; if(this.forbiddenSkills[skill]){
delete this.forbiddenSkills[skill];
}
else{
for(var i in this.forbiddenSkills){
if(this.forbiddenSkills[i].remove(skill)){
if(!this.forbiddenSkills[i].length){
delete this.forbiddenSkills[i];
}
}
}
}
}
else{
this.forbiddenSkills={};
var forbid=[]; var forbid=[];
var getName=function(arr){ var getName=function(arr){
var str=''; var str='';
@ -10820,11 +10950,12 @@
return str.slice(0,str.length-1); return str.slice(0,str.length-1);
} }
var forbidlist=lib.config.forbid.concat(lib.config.customforbid); var forbidlist=lib.config.forbid.concat(lib.config.customforbid);
var skills=this.get('s');
for(var i=0;i<forbidlist.length;i++){ for(var i=0;i<forbidlist.length;i++){
if(lib.config.customforbid.contains(forbidlist[i])|| if(lib.config.customforbid.contains(forbidlist[i])||
!lib.config.forbidlist.contains(getName(forbidlist[i]))){ !lib.config.forbidlist.contains(getName(forbidlist[i]))){
for(var j=0;j<forbidlist[i].length;j++){ for(var j=0;j<forbidlist[i].length;j++){
if(this.skills.contains(forbidlist[i][j])==false) break; if(!skills.contains(forbidlist[i][j])) break;
} }
if(j==forbidlist[i].length){ if(j==forbidlist[i].length){
forbid.push(forbidlist[i]); forbid.push(forbidlist[i]);
@ -10832,7 +10963,12 @@
} }
} }
for(var i=0;i<forbid.length;i++){ for(var i=0;i<forbid.length;i++){
this.forbiddenSkills.add(forbid[i][0]); if(forbid[i][1]||this.name2){
this.forbiddenSkills[forbid[i][0]]=this.forbiddenSkills[forbid[i][0]]||[];
if(forbid[i][1]){
this.forbiddenSkills[forbid[i][0]].add(forbid[i][1]);
}
}
} }
} }
}, },
@ -10921,8 +11057,10 @@
else if(lib.config.mode=='boss'){ else if(lib.config.mode=='boss'){
return this.side==me.side&&get.config('single_control'); return this.side==me.side&&get.config('single_control');
} }
else if(lib.config.mode=='chess'){ else if(game.chess){
if(_status.mode=='combat'&&!get.config('single_control')) return false; if(lib.config.mode=='chess'){
if(_status.mode=='combat'&&!get.config('single_control')) return false;
}
return this.side==me.side; return this.side==me.side;
} }
else if(lib.config.mode=='story'){ else if(lib.config.mode=='story'){
@ -12725,6 +12863,7 @@
var list=[]; var list=[];
var roles=['player','source','target']; var roles=['player','source','target'];
var addList=function(skill,player){ var addList=function(skill,player){
if(player.forbiddenSkills[skill]) return;
var info=lib.skill[skill]; var info=lib.skill[skill];
var num=0; var num=0;
if(info.priority){ if(info.priority){
@ -12743,18 +12882,19 @@
for(var j in player.tempSkills){ for(var j in player.tempSkills){
var expire=player.tempSkills[j]; var expire=player.tempSkills[j];
if(expire==name|| if(expire==name||
(get.objtype(expire)=='array'&&expire.contains(name))|| (Array.isArray(expire)&&expire.contains(name))||
(typeof expire=='function'&&expire(event,player,name))){ (typeof expire=='function'&&expire(event,player,name))){
delete player.tempSkills[j]; delete player.tempSkills[j];
player.removeSkill(j); player.removeSkill(j);
} }
else if(typeof expire=='object'){ else if(get.objtype(expire)=='object'){
if(expire.player==name&&event.player==player|| for(var i=0;i<roles.length;i++){
expire.target==name&&event.target==player|| if(expire[roles[i]]&&player==event[roles[i]]&&
expire.source==name&&event.source==player){ (expire[roles[i]]==name||(Array.isArray(expire[roles[i]])&&expire[roles[i]].contains(name)))){
delete player.tempSkills[j]; delete player.tempSkills[j];
player.removeSkill(j); player.removeSkill(j);
} }
}
} }
} }
for(var i=0;i<roles.length;i++){ for(var i=0;i<roles.length;i++){
@ -15648,7 +15788,7 @@
}, },
videoContent:{ videoContent:{
init:function(players){ init:function(players){
if(lib.config.mode=='chess') return; if(game.chess) return;
if(lib.config.mode=='versus'){ if(lib.config.mode=='versus'){
players.bool=players.pop(); players.bool=players.pop();
} }
@ -16171,7 +16311,7 @@
judge1:function(player,content){ judge1:function(player,content){
if(player&&content){ if(player&&content){
var judging=get.infoCard(content[0]); var judging=get.infoCard(content[0]);
if(lib.config.mode=='chess'){ if(game.chess){
judging.copy('thrown','center','thrownhighlight',ui.arena).animate('start'); judging.copy('thrown','center','thrownhighlight',ui.arena).animate('start');
} }
else{ else{
@ -16315,7 +16455,7 @@
return; return;
} }
player.$die(); player.$die();
if(lib.config.mode=='chess'){ if(game.chess){
delete lib.posmap[player.dataset.position]; delete lib.posmap[player.dataset.position];
setTimeout(function(){ setTimeout(function(){
player.delete(); player.delete();
@ -16641,7 +16781,7 @@
game.me=player; game.me=player;
ui.updatehl(); ui.updatehl();
if(lib.config.mode=='chess'){ if(game.chess){
ui.create.fakeme(); ui.create.fakeme();
} }
} }
@ -16692,7 +16832,7 @@
var dialog=ui.create.dialog('hidden'); var dialog=ui.create.dialog('hidden');
dialog.content.innerHTML=str; dialog.content.innerHTML=str;
dialog.open(); dialog.open();
if(lib.config.mode=='chess'){ if(game.chess){
dialog.classList.add('center'); dialog.classList.add('center');
} }
} }
@ -18247,7 +18387,7 @@
if(range[0]!=range[1]||range[0]>1) auto=false; if(range[0]!=range[1]||range[0]>1) auto=false;
for(i=0;i<game.players.length;i++){ for(i=0;i<game.players.length;i++){
var nochess=true; var nochess=true;
if(lib.config.mode=='chess'&&!event.chessForceAll){ if(game.chess&&!event.chessForceAll){
if(player&&get.distance(player,game.players[i],'pure')>7){ if(player&&get.distance(player,game.players[i],'pure')>7){
nochess=false; nochess=false;
} }
@ -19415,7 +19555,7 @@
return player2; return player2;
}, },
arrangePlayers:function(){ arrangePlayers:function(){
if(lib.config.mode=='chess'&&game.me){ if(game.chess&&game.me){
var friendCount=0; var friendCount=0;
var enemyCount=0; var enemyCount=0;
var rand=Math.random()<0.5; var rand=Math.random()<0.5;
@ -19502,22 +19642,16 @@
}, },
filterSkills:function(skills,player){ filterSkills:function(skills,player){
var out=skills.slice(0); var out=skills.slice(0);
var filter=[];
for(var i in player.disabledSkills){ for(var i in player.disabledSkills){
if(typeof player.disabledSkills[i]=='string'){ if(typeof player.disabledSkills[i]=='string'){
filter.add(player.disabledSkills[i]); out.remove(player.disabledSkills[i]);
} }
else if(Array.isArray(player.disabledSkills[i])){ else if(Array.isArray(player.disabledSkills[i])){
for(var j=0;j<player.disabledSkills[i].length;j++){ for(var j=0;j<player.disabledSkills[i].length;j++){
filter.add(player.disabledSkills[i][j]); out.remove(player.disabledSkills[i][j]);
} }
} }
} }
for(var i=0;i<filter.length;i++){
if(filter[i]){
out.remove(filter[i]);
}
}
return out; return out;
}, },
expandSkills:function(skills){ expandSkills:function(skills){
@ -20401,7 +20535,6 @@
game.saveConfig('forbidlist',list); game.saveConfig('forbidlist',list);
}; };
var forbid=lib.config.forbid; var forbid=lib.config.forbid;
lib.config.forbidmap={};
if(!lib.config.forbidlist){ if(!lib.config.forbidlist){
game.saveConfig('forbidlist',[]); game.saveConfig('forbidlist',[]);
} }
@ -20418,7 +20551,6 @@
str2+=forbid[i][j]+'+'; str2+=forbid[i][j]+'+';
} }
if(skip) continue; if(skip) continue;
lib.config.forbidmap[str2]=forbid[i];
str=str.slice(0,str.length-1); str=str.slice(0,str.length-1);
str2=str2.slice(0,str2.length-1); str2=str2.slice(0,str2.length-1);
@ -27077,7 +27209,7 @@
node.additionalSkills={}; node.additionalSkills={};
node.disabledSkills={}; node.disabledSkills={};
node.hiddenSkills=[]; node.hiddenSkills=[];
node.forbiddenSkills=[]; node.forbiddenSkills={};
node.popups=[]; node.popups=[];
node.damagepopups=[]; node.damagepopups=[];
node.judging=[]; node.judging=[];
@ -29819,6 +29951,14 @@
pos:function(str){ pos:function(str){
return (str=='h'||str=='e'||str=='j'||str=='he'||str=='hj'||str=='ej'||str=='hej'); return (str=='h'||str=='e'||str=='j'||str=='he'||str=='hj'||str=='ej'||str=='hej');
}, },
locked:function(skill){
var info=lib.skill[skill];
if(info.locked==false) return false;
if(info.trigger&&info.forced) return true;
if(info.mod) return true;
if(info.locked) return true;
return false;
},
}, },
benchmark:function(func1,func2,arg,iteration){ benchmark:function(func1,func2,arg,iteration){
var tic,toc; var tic,toc;
@ -30380,14 +30520,6 @@
xyDistance:function(from,to){ xyDistance:function(from,to){
return Math.sqrt((from[0]-to[0])*(from[0]-to[0])+(from[1]-to[1])*(from[1]-to[1])); return Math.sqrt((from[0]-to[0])*(from[0]-to[0])+(from[1]-to[1])*(from[1]-to[1]));
}, },
skillLocked:function(skill){
var info=lib.skill[skill];
if(info.locked==false) return false;
if(info.trigger&&info.forced) return true;
if(info.mod) return true;
if(info.locked) return true;
return false;
},
itemtype:function(obj){ itemtype:function(obj){
var i,j; var i,j;
if(typeof obj=='string'){ if(typeof obj=='string'){
@ -30758,7 +30890,7 @@
} }
return str2; return str2;
} }
if(get.itemtype(str)=='cards'||get.itemtype(str)=='players'){ if(Array.isArray(str)){
var str2=get.translation(str[0],arg); var str2=get.translation(str[0],arg);
for(var i=1;i<str.length;i++){ for(var i=1;i<str.length;i++){
str2+='、'+get.translation(str[i],arg); str2+='、'+get.translation(str[i],arg);
@ -31231,7 +31363,18 @@
if(lib.skill[skills[i]]&&lib.skill[skills[i]].nopop) continue; if(lib.skill[skills[i]]&&lib.skill[skills[i]].nopop) continue;
if(lib.translate[skills[i]+'_info']){ if(lib.translate[skills[i]+'_info']){
translation=get.translation(skills[i]).slice(0,2); translation=get.translation(skills[i]).slice(0,2);
if(!skills2.contains(skills[i])){ if(node.forbiddenSkills[skills[i]]){
var forbidstr='<div style="opacity:0.5"><div class="skill">【'+translation+'】</div><div>';
if(node.forbiddenSkills[skills[i]].length){
forbidstr+='(与'+get.translation(node.forbiddenSkills[skills[i]])+'冲突)<br>';
}
else{
forbidstr+='(双将禁用)<br>';
}
forbidstr+=lib.translate[skills[i]+'_info']+'</div></div>'
uiintro.add(forbidstr);
}
else if(!skills2.contains(skills[i])){
uiintro.add('<div style="opacity:0.5"><div class="skill">【'+translation+'】</div><div>'+lib.translate[skills[i]+'_info']+'</div></div>'); uiintro.add('<div style="opacity:0.5"><div class="skill">【'+translation+'】</div><div>'+lib.translate[skills[i]+'_info']+'</div></div>');
} }
else{ else{
@ -31239,13 +31382,13 @@
} }
} }
} }
var forbidden=node.forbiddenSkills; // var forbidden=node.forbiddenSkills;
for(i=0;i<forbidden.length;i++){ // for(i=0;i<forbidden.length;i++){
if(lib.translate[forbidden[i]+'_info']){ // if(lib.translate[forbidden[i]+'_info']){
translation=get.translation(forbidden[i]).slice(0,2); // translation=get.translation(forbidden[i]).slice(0,2);
uiintro.add('<div><div class="skill">『'+translation+'』</div><div>'+'已禁用'+'</div></div>'); // uiintro.add('<div><div class="skill">『'+translation+'』</div><div>'+'已禁用'+'</div></div>');
} // }
} // }
if(lib.config.show_favourite&&lib.character[node.name]&&get.mode()!='story'){ if(lib.config.show_favourite&&lib.character[node.name]&&get.mode()!='story'){
var addFavourite=ui.create.div('.text.center'); var addFavourite=ui.create.div('.text.center');

View File

@ -41,7 +41,9 @@ mode.pack={
connect:'联机', connect:'联机',
boss:'挑战', boss:'挑战',
chess:'战棋', chess:'战棋',
tafang:'塔防',
stone:'炉石', stone:'炉石',
brawl:'乱斗',
}; };
background.pack={ background.pack={
zhulian_bg:'璧合', zhulian_bg:'璧合',

View File

@ -46,7 +46,7 @@ window.noname_source_list=[
'layout/mode/boss.css', 'layout/mode/boss.css',
'layout/mode/chess.css', 'layout/mode/chess.css',
'layout/mode/stone.css', 'layout/mode/stone.css',
'layout/mode/story.css', 'layout/mode/brawl.css',
'layout/newlayout/equip.css', 'layout/newlayout/equip.css',
'layout/newlayout/global.css', 'layout/newlayout/global.css',
'layout/newlayout/layout.css', 'layout/newlayout/layout.css',
@ -55,9 +55,9 @@ window.noname_source_list=[
'mode/chess.js', 'mode/chess.js',
'mode/guozhan.js', 'mode/guozhan.js',
'mode/identity.js', 'mode/identity.js',
'mode/realtime.js', 'mode/tafang.js',
'mode/stone.js', 'mode/stone.js',
'mode/story.js', 'mode/brawl.js',
'mode/versus.js', 'mode/versus.js',
'mode/connect.js', 'mode/connect.js',
'extension/character/extension.js', 'extension/character/extension.js',

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

Some files were not shown because too many files have changed in this diff Show More