diff --git a/card/guozhan.js b/card/guozhan.js index b595096c9..b86d3a908 100644 --- a/card/guozhan.js +++ b/card/guozhan.js @@ -264,6 +264,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ fullskin:true, type:'equip', subtype:'equip6', + subtypes:['equip3','equip4'], nomod:true, nopower:true, unique:true, @@ -271,10 +272,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){ globalFrom:-1, globalTo:+1, }, - customSwap:function(card){ - var type=get.subtype(card,false); - return type=='equip3'||type=='equip4'||type=='equip6'; - }, skills:['liulongcanjia'], ai:{ equipValue:function(card,player){ @@ -1221,8 +1218,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){ liulongcanjia:{ equipSkill:true, mod:{ - targetEnabled:function(card,player,target){ - if(['equip3','equip4'].contains(get.subtype(card))) return false; + canBeReplaced:function(card,player){ + return false; }, }, }, @@ -1799,7 +1796,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ }, translate:{ liulongcanjia:'六龙骖驾', - liulongcanjia_info:'锁定技。①你计算与其他角色的距离-1,其他角色计算与你的距离+1。②当此牌进入你的装备区时,你弃置你装备区内其他坐骑牌。③你的装备区内不能置入其他坐骑牌。', + liulongcanjia_info:'锁定技。此牌占用1个进攻坐骑和1个防御坐骑槽位,且不可被替换。你计算与其他角色的距离-1,其他角色计算与你的距离+1。', minguangkai:'明光铠', minguangkai_cancel:'明光铠', minguangkai_link:'明光铠', diff --git a/card/standard.js b/card/standard.js index f067a5fca..0681a0d67 100644 --- a/card/standard.js +++ b/card/standard.js @@ -1588,7 +1588,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ multicheck:function(){ var card={name:'sha',isCard:true}; return game.hasPlayer(function(current){ - if(current.getEquip(1)){ + if(current.getEquips(1).length>0){ return game.hasPlayer(function(current2){ return current.inRange(current2)&&lib.filter.targetEnabled(card,current,current2); }) @@ -1597,7 +1597,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ }, filterTarget:function(card,player,target){ var card={name:'sha',isCard:true}; - return player!=target&&target.getEquip(1)&&game.hasPlayer(function(current){ + return player!=target&&target.getEquips(1).length>0&&game.hasPlayer(function(current){ return target!=current&&target.inRange(current)&&lib.filter.targetEnabled(card,target,current); }); }, @@ -1621,7 +1621,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ } "step 1" if(event.directfalse||result.bool==false){ - var cards=target.getCards('e',{subtype:'equip1'}); + var cards=target.getEquips(1); if(cards.length) player.gain(cards,target,'give','bySelf'); } }, @@ -2195,16 +2195,20 @@ game.import('card',function(lib,game,ui,get,ai,_status){ direct:true, audio:true, filter:function(event,player){ - if(event.type!='card'||event.card.name!='sha') return false; - return player.countCards('he',function(card){ - return card!=player.getEquip('guanshi'); - })>=2&&event.target.isAlive(); + if(event.type!='card'||event.card.name!='sha'||!event.target.isIn()) return false; + var min=2; + if(!player.hasSkill('guanshi_skill',null,false)) min+=get.sgn(player.getEquips('guanshi').length) + return player.countCards('he')>=min; }, content:function(){ "step 0" - var next=player.chooseToDiscard(get.prompt('guanshi'),2,'he',function(card){ - return _status.event.player.getEquip('guanshi')!=card; - }); + //装备区内可能有多个贯石斧 或者玩家可能通过其他渠道获得贯石斧技能 只要留一张贯石斧不扔掉即可 + var next=player.chooseToDiscard(get.prompt('guanshi'),2,'he',function(card,player){ + if(_status.event.ignoreCard) return true; + var cards=player.getEquips('guanshi'); + if(!cards.contains(card)) return true; + return cards.some(cardx=>(cardx!=card&&!ui.selected.cards.contains(cardx))); + }).set('ignoreCard',player.hasSkill('guanshi_skill',null,false)).set('complexCard',true) next.logSkill='guanshi_skill'; next.set('ai',function(card){ var evt=_status.event.getTrigger(); diff --git a/character/collab.js b/character/collab.js index 3d4be62f9..89a836400 100644 --- a/character/collab.js +++ b/character/collab.js @@ -727,13 +727,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, mod:{ canBeGained:function(card,source,player){ - if(player.getCards('e',card=>card.name=='ruyijingubang').contains(card)) return false; + if(player.getEquips('ruyijingubang').contains(card)) return false; }, canBeDiscarded:function(card,source,player){ - if(player.getCards('e',card=>card.name=='ruyijingubang').contains(card)) return false; + if(player.getEquips('ruyijingubang').contains(card)) return false; }, canBeReplaced:function(card,player){ - if(player.getCards('e',card=>card.name=='ruyijingubang').contains(card)) return false; + if(player.getEquips('ruyijingubang').contains(card)) return false; }, cardname:function(card){ if(get.subtype(card,false)=='equip1') return 'sha'; @@ -742,10 +742,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(get.subtypes(card,false).contains('equip1')) return false; }, cardDiscardable:function(card,player){ - if(player.getCards('e',card=>card.name=='ruyijingubang').contains(card)) return false; + if(player.getEquips('ruyijingubang').contains(card)) return false; }, cardEnabled2:function(card,player){ - if(player.getCards('e',card=>card.name=='ruyijingubang').contains(card)) return false; + if(player.getEquips('ruyijingubang').contains(card)) return false; }, }, group:'dcruyi_blocker', @@ -755,12 +755,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ forced:true, filter:function(event,player){ if(event.name=='disableEquip') return (event.slots.contains('equip1')); - var cards=player.getCards('e',card=>card.name=='ruyijingubang'); + var cards=player.getEquips('ruyijingubang'); return event.cards.some(card=>cards.contains(card)); }, content:function(){ if(trigger.name=='lose'){ - trigger.cards.remove(player.getCards('e',card=>card.name=='ruyijingubang')); + trigger.cards.remove(player.getEquips('ruyijingubang')); } else{ while(trigger.slots.contains('equip1')) trigger.slots.remove('equip1'); diff --git a/game/game.js b/game/game.js index 7d8adb7e4..af159bd45 100644 --- a/game/game.js +++ b/game/game.js @@ -10597,7 +10597,7 @@ equip3:'防御马', equip4:'攻击马', equip5:'宝物', - equip6:'坐骑', + equip6:'特殊装备', zero:'零', one:'一', two:'二', @@ -18206,7 +18206,7 @@ break; } else if(lib.card[subtype]){ - subtype=lib.card[subtype].subtype; + return this.getCards('e',card=>card.name==subtype); } else return []; case 'number':