diff --git a/character/sp.js b/character/sp.js index e2560d265..5626929e2 100755 --- a/character/sp.js +++ b/character/sp.js @@ -797,28 +797,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return get.inpileVCardList(info=>{ const name=info[2]; return get.type(name)=='basic'; - }).some(card=>event.filterCard({name:card[2],nature:card[3]},player,event)); + }).some(card=>event.filterCard({name:card[2],nature:card[3],isCard:true},player,event)); }, chooseButton:{ dialog(event,player){ const list=get.inpileVCardList(info=>{ const name=info[2]; return get.type(name)=='basic'; - }).filter(card=>event.filterCard({name:card[2],nature:card[3]},player,event)); + }).filter(card=>event.filterCard({name:card[2],nature:card[3],isCard:true},player,event)); return ui.create.dialog('诿解',[list,'vcard']); }, filter(button,player){ - return get.event().getParent().filterCard({name:button.link[2],nature:button.link[3]},player,_status.event.getParent()); + return get.event().getParent().filterCard({name:button.link[2],nature:button.link[3],isCard:true},player,_status.event.getParent()); }, check(button){ if(get.event().getParent().type!='phase') return 1; - return get.event('player').getUseValue({name:button.link[2],nature:button.link[3]}); + return get.event('player').getUseValue({name:button.link[2],nature:button.link[3],isCard:true}); }, backup(links,player){ return { viewAs:{ name:links[0][2], nature:links[0][3], + isCard:true, }, filterCard:()=>false, selectCard:-1, @@ -2955,7 +2956,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter:function(event,player){ if(event.responded||event.type=='wuxie'||event.olqifan||!lib.skill.olqifan.getNum()) return false; for(var i of lib.inpile){ - if(i!='wuxie'&&event.filterCard({name:i},player,event)) return true; + if(i!='wuxie'&&event.filterCard(get.autoViewAs({name:i},'unsure'),player,event)) return true; } return false; }, @@ -8455,13 +8456,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, filter:function(event,player){ if(event.type=='wuxie') return false; - if(!player.hasSkill('liangyuan_tao',null,null,false)&&event.filterCard({name:'tao'},player,event)&&game.hasPlayer(function(current){ + if(!player.hasSkill('liangyuan_tao',null,null,false)&&event.filterCard(get.autoViewAs({name:'tao'},'unsure'),player,event)&&game.hasPlayer(function(current){ var storage=current.getExpansions('huamu'); return storage.length>0&&storage.filter(function(i){ return get.color(i,false)=='red'; }).length>0; })) return true; - if(!player.hasSkill('liangyuan_jiu',null,null,false)&&event.filterCard({name:'jiu'},player,event)&&game.hasPlayer(function(current){ + if(!player.hasSkill('liangyuan_jiu',null,null,false)&&event.filterCard(get.autoViewAs({name:'jiu'},'unsure'),player,event)&&game.hasPlayer(function(current){ var storage=current.getExpansions('huamu'); return storage.length>0&&storage.filter(function(i){ return get.color(i,false)=='black'; @@ -8887,12 +8888,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(!bool) return false; for(var name of lib.inpile){ if(get.type(name)!='basic'||list.includes(name)) continue; - var card={name:name}; - if(event.filterCard(card,player,event)) return true; + var card={name}; + if(event.filterCard(get.autoViewAs(card,'unsure'),player,event)) return true; if(name=='sha'){ for(var nature of lib.inpile_nature){ card.nature=nature; - if(event.filterCard(card,player,event)) return true; + if(event.filterCard(get.autoViewAs(card,'unsure'),player,event)) return true; } } } @@ -8904,12 +8905,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var storage=player.getStorage('yilie_count'); for(var i of lib.inpile){ if(get.type(i)!='basic'||storage.includes(i)) continue; - var card={name:i,isCard:true}; - if(event.filterCard(card,player,event)) list.push(['基本','',i]); + var card={name:i}; + if(event.filterCard(get.autoViewAs(card,'unsure'),player,event)) list.push(['基本','',i]); if(i=='sha'){ for(var j of lib.inpile_nature){ card.nature=j; - if(event.filterCard(card,player,event)) list.push(['基本','',i,j]); + if(event.filterCard(get.autoViewAs(card,'unsure'),player,event)) list.push(['基本','',i,j]); } } } @@ -13058,7 +13059,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter:function(event,player){ if(event.responded||event.jinzhi||player.countMark('jinzhi2')>=player.countCards('he')) return false; for(var i of lib.inpile){ - if(get.type(i)=='basic'&&event.filterCard({name:i},player,event)) return true; + if(get.type(i)=='basic'&&event.filterCard({name:i,isCard:true},player,event)) return true; } return false; }, @@ -13066,7 +13067,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ dialog:function(event,player){ var list=[]; for(var i of lib.inpile){ - if(get.type(i)=='basic'&&event.filterCard({name:i},player,event)){ + if(get.type(i)=='basic'&&event.filterCard({name:i,isCard:true},player,event)){ list.push(['基本','',i]); if(i=='sha'){ for(var j of lib.inpile_nature) list.push(['基本','','sha',j]); @@ -17961,10 +17962,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter:function(event,player){ if(!player.storage.fanghun||player.storage.fanghun<=0) return false; var filter=event.filterCard; - if(filter({name:'sha'},player,event)&&player.countCards('hs','shan')) return true; - if(filter({name:'shan'},player,event)&&player.countCards('hs','sha')) return true; - if(filter({name:'tao'},player,event)&&player.countCards('hs','jiu')) return true; - if(filter({name:'jiu'},player, event)&&player.countCards('hs','tao')) return true; + if(filter(get.autoViewAs({name:'sha'},'unsure'),player,event)&&player.countCards('hs','shan')) return true; + if(filter(get.autoViewAs({name:'shan'},'unsure'),player,event)&&player.countCards('hs','sha')) return true; + if(filter(get.autoViewAs({name:'jiu'},'unsure'),player,event)&&player.countCards('hs','jiu')) return true; + if(filter(get.autoViewAs({name:'tao'},'unsure'),player, event)&&player.countCards('hs','tao')) return true; return false; }, onrespond:function(){return this.onuse.apply(this,arguments)}, diff --git a/character/sp2.js b/character/sp2.js index 267e709b3..6d6fac567 100644 --- a/character/sp2.js +++ b/character/sp2.js @@ -874,16 +874,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, enable:'chooseToUse', filter:function(event,player){ - if(!event.filterCard({name:'sha'},player,event)&&!event.filterCard({name:'wuxie'},player,event)) return false; - return player.countCards('hs',card=>{ - return !player.getStorage('starlifeng_count').includes(get.color(card,player))||_status.connectMode; - }); + if(!event.filterCard(get.autoViewAs({name:'sha'},'unsure'),player,event)&&!event.filterCard(get.autoViewAs({name:'wuxie'},'unsure'),player,event)) return false; + return player.hasCard(card=>{ + return !player.getStorage('starlifeng_count').includes(get.color(card,player)); + },'hs'); }, chooseButton:{ dialog:function(event,player){ var list=[]; - if(event.filterCard({name:'sha'},player,event)) list.push(['基本','','sha']); - if(event.filterCard({name:'wuxie'},player,event)) list.push(['锦囊','','wuxie']); + if(event.filterCard(get.autoViewAs({name:'sha'},'unsure'),player,event)) list.push(['基本','','sha']); + if(event.filterCard(get.autoViewAs({name:'wuxie'},'unsure'),player,event)) list.push(['锦囊','','wuxie']); return ui.create.dialog('砺锋',[list,'vcard']); }, check:function(button){ diff --git a/character/standard.js b/character/standard.js index abf2e9215..128354334 100755 --- a/character/standard.js +++ b/character/standard.js @@ -224,7 +224,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(event.responded) return false; if(player.storage.hujiaing) return false; if(!player.hasZhuSkill('hujia')) return false; - if(!event.filterCard({name:'shan'},player,event)) return false; + if(!event.filterCard({name:'shan',isCard:true},player,event)) return false; return game.hasPlayer(current=>current!=player&¤t.group=='wei'); }, check(event,player){ diff --git a/character/tw.js b/character/tw.js index 08f2e1a68..20a7465ca 100644 --- a/character/tw.js +++ b/character/tw.js @@ -9548,8 +9548,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, filter:function(event,player){ const names=[]; - if(event.filterCard({name:'sha'},player,event)) names.push('shan'); - if(event.filterCard({name:'shan'},player,event)) names.push('sha'); + if(event.filterCard(get.autoViewAs({name:'sha'},'unsure'),player,event)) names.push('shan'); + if(event.filterCard(get.autoViewAs({name:'shan'},'unsure'),player,event)) names.push('sha'); return names.length>0&&player.hasCard(function(card){ return names.includes(get.name(card)); },'hs'); @@ -11293,10 +11293,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ for(var i of lib.inpile){ if(i=='wuxie') continue; var type=get.type(i); - if((type=='basic'||type=='trick')&&event.filterCard({name:i},player,event)) return true; + if((type=='basic'||type=='trick')&&event.filterCard({name:i,isCard:true},player,event)) return true; if(i=='sha'){ for(var j of lib.inpile_nature){ - if(event.filterCard({name:i,nature:j},player,event)) return true; + if(event.filterCard({name:i,nature:j,isCard:true},player,event)) return true; } } } diff --git a/character/xianding.js b/character/xianding.js index 1510e8427..cba10ea68 100644 --- a/character/xianding.js +++ b/character/xianding.js @@ -3915,7 +3915,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ })) return false; var storage=player.getStorage('dczhaowen_viewed'); for(var i of lib.inpile){ - if(!storage.includes(i)&&get.type(i)=='trick'&&event.filterCard({name:i},player,event)) return true; + if(!storage.includes(i)&&get.type(i)=='trick'&&event.filterCard(get.autoViewAs({name:i},'unsure'),player,event)) return true; } return false; }, @@ -3927,7 +3927,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var storage=player.getStorage('dczhaowen_viewed'); var list=[]; for(var i of lib.inpile){ - if(!storage.includes(i)&&get.type(i)=='trick'&&event.filterCard({name:i},player,event)){ + if(!storage.includes(i)&&get.type(i)=='trick'&&event.filterCard(get.autoViewAs({name:i},'unsure'),player,event)){ list.push(['锦囊','',i]); } } @@ -6962,7 +6962,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(!storage.length) return false; var storage2=player.getStorage('dcfengying_used') return storage.some(name=>{ - return !storage2.includes(name)&&event.filterCard({name:name},player,event); + return !storage2.includes(name)&&event.filterCard(get.autoViewAs({name},'unsure'),player,event); }); }, hiddenCard:function(player,name){ @@ -6982,7 +6982,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter:function(button,player){ var card={name:button.link[2],storage:{dcfengying:true}}; if(player.getStorage('dcfengying_used').includes(card.name)) return false; - return _status.event.getParent().filterCard(card,player,_status.event.getParent()); + return _status.event.getParent().filterCard(get.autoViewAs(card,'unsure'),player,_status.event.getParent()); }, check:function(button){ var player=_status.event.player; @@ -12702,13 +12702,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter:function(button,player){ var evt=_status.event.getParent(); if(evt&&typeof evt.filterCard=='function') return evt.filterCard({name:button.link[2]},player,evt); - return lib.filter.filterCard({name:button.link[2]},player,_status.event.getParent()); + return lib.filter.filterCard({name:button.link[2],isCard:true},player,_status.event.getParent()); }, check:function(button){ var player=_status.event.player; if(player.countCards('h',button.link[2])) return 0; if(_status.event.getParent().type!='phase'&&!_status.event.getParent().lvli6) return 1; - return player.getUseValue({name:button.link[2]}); + return player.getUseValue({name:button.link[2],isCard:true}); }, backup:function(links,player){ return { diff --git a/character/yijiang.js b/character/yijiang.js index 3c4f37101..b415f28ed 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -2673,7 +2673,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:'taoluan', enable:'chooseToUse', filter:function(event,player){ - return !player.hasSkill('xintaoluan3')&&player.countCards('hes',card=>lib.inpile.some(name=>{ + return !player.hasSkill('xintaoluan3')&&player.hasCard(card=>lib.inpile.some(name=>{ if(player.getStorage('xintaoluan').includes(name)) return false; if(get.type(name)!='basic'&&get.type(name)!='trick') return false; if(event.filterCard({name:name,isCard:true,cards:[card]},player,event)) return true; @@ -2683,7 +2683,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } } return false; - }))>0&&!_status.dying.length; + },'hes'))>0&&!_status.dying.length; }, chooseButton:{ dialog:function(event,player){ @@ -5255,7 +5255,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, enable:'chooseToUse', filter:function(event,player){ - return !player.hasSkill('taoluan3')&&player.countCards('hes',card=>lib.inpile.some(name=>{ + return !player.hasSkill('taoluan3')&&player.hasCard(card=>lib.inpile.some(name=>{ if(player.getStorage('taoluan').includes(name)) return false; if(get.type(name)!='basic'&&get.type(name)!='trick') return false; if(event.filterCard({name:name,isCard:true,cards:[card]},player,event)) return true; @@ -5265,7 +5265,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } } return false; - }))>0; + },'hes'))>0; }, onremove:true, chooseButton:{