diff --git a/character/extra.js b/character/extra.js index c83d7425a..ee9ae8ea7 100755 --- a/character/extra.js +++ b/character/extra.js @@ -6379,33 +6379,33 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, yeyan:{ unique:true, - forceDie:true, - enable:'phaseUse', + limited:true, audio:3, - animationColor:'metal', - skillAnimation:'legend', + enable:'phaseUse', + filterCard(card,player){ + return !ui.selected.cards.some(cardx=>get.suit(cardx,player)==get.suit(card,player)); + }, + selectCard:[0,4], filterTarget(card,player,target){ var length=ui.selected.cards.length; - return (length==0||length==4); + return length==0||length==4; }, - filterCard(card){ - var suit=get.suit(card); - for(var i=0;iget.damageEffect(target,player,player,'fire')&&(!lib.skill.yeyan.getBigFire(player)||(target.hp<=3&&!target.hasSkillTag('filterDamage',null,{player:player})))); + if(!targets.includes(target)) return 0; + if(lib.skill.yeyan.getBigFire(player)){ + if(ui.selected.targets.length) return 0; + if(!(targets.length==1||(att<0&&target.identity&&target.identity.indexOf('zhu')!=-1))) return 0; + } + return att*get.damageEffect(target,player,player,'fire'); } } - } + }, + getBigFire(player){ + if(player.getDiscardableCards(player,'h').reduce((list,card)=>list.add(get.suit(card,player)),[]).length<4) return false; + const targets=game.filterPlayer(target=>get.damageEffect(target,player,player,'fire')&&target.hp<=3&&!target.hasSkillTag('filterDamage',null,{player:player})); + if(!targets.length) return false; + if(targets.length==1||targets.some(target=>get.attitude(player,target)<0&&target.identity&&target.identity.indexOf('zhu')!=-1)){ + let suits=player.getDiscardableCards(player,'h').reduce((map,card)=>{ + const suit=get.suit(card,player); + if(!map[suit]) map[suit]=[]; + return map; + },{}),cards=[]; + Object.keys(suits).forEach(i=>{ + suits[i].addArray(player.getDiscardableCards(player,'h').filter(card=>get.suit(card)==i)); + cards.add(suits[i].sort((a,b)=>get.value(a)-get.value(b))[0]); + }); + return player.hp+player.countCards('h',card=>!cards.includes(card)&&player.canSaveCard(card,player))-3>0; + } + return false; + }, }, longhun:{ audio:4, @@ -8146,7 +8171,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ boss_zhaoyun_prefix:'神', boss_juejing:'绝境', boss_juejing2:'绝境', - boss_juejing_info:'锁定技,摸牌阶段开始前,你跳过此阶段。当你得到牌/失去手牌后,若你的手牌数大于4/小于4,则你将手牌弃置至4张/摸至4张。', + boss_juejing_info:'锁定技,摸牌阶段开始前,你跳过此阶段。当你得到牌/失去手牌后,若你的手牌数大于4/小于4,则你将手牌摸至4张/弃置至4张。', zhanjiang:'斩将', zhanjiang_info:'准备阶段开始时,如果其他角色的装备区内有【青釭剑】,你可以获得之。', shen_guojia:'神郭嘉', diff --git a/character/sp.js b/character/sp.js index f74c0de1d..bf5158ee4 100755 --- a/character/sp.js +++ b/character/sp.js @@ -25142,19 +25142,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ skill.removeMark('lianhuan',source,player,true); }); }, - ai:{ - order:1, - fireAttack:true, - result:{ - //等PZ157来写 - /*target:function(player,target){ - if(target.hasSkillTag('nofire')) return 0; - if(lib.config.mode=='versus') return -1; - if(player.hasUnknown()) return 0; - return get.damageEffect(target,player); - }*/ - } - } }, }, },