diff --git a/card/swd.js b/card/swd.js index e75399ff5..7422c8965 100644 --- a/card/swd.js +++ b/card/swd.js @@ -4026,7 +4026,7 @@ card.swd={ content:function(){ target.damage(); target.gain(cards,player); - game.delay(); + // game.delay(); }, check:function(card){ return 10-ai.get.value(card); diff --git a/card/yunchou.js b/card/yunchou.js index f7a08e951..aaad960c5 100644 --- a/card/yunchou.js +++ b/card/yunchou.js @@ -20,6 +20,7 @@ card.yunchou={ chenhuodajie:{ fullskin:true, type:'trick', + filterTarget:true, content:function(){ if(target.num('he')){ player.gainPlayerCard('he',target,true); @@ -712,6 +713,7 @@ card.yunchou={ filter:function(event,player){ if(event.player==player) return false; if(!event.player.num('he')) return false; + if(!lib.filter.targetEnabled({name:'chenhuodajie'},player,event.player)) return false; if(player.num('h','chenhuodajie')) return true; var mn=player.get('e','5'); if(mn&&mn.name=='muniu'&&mn.cards&&mn.cards.length){ diff --git a/character/gujian.js b/character/gujian.js index 91af89b88..d7812468b 100644 --- a/character/gujian.js +++ b/character/gujian.js @@ -873,7 +873,7 @@ character.gujian={ } "step 1" if(result.bool){ - player.logSkill('yangming'); + player.logSkill('yangming',result.targets); for(var i=0;i0) return 'cancel'; if(_status.currentPhase!=source) return 'trick'; if(lib.filter.cardUsable({name:'sha'},source)&&source.num('h')>=2) return 'basic'; return 'trick'; @@ -6820,7 +6822,7 @@ character.sp={ "step 0" event.target1=targets[0]; targets[0].gain(cards,player); - game.delay(); + // game.delay(); for(var i=0;i=0) return false; + return true; + }, + content:function(){ + 'step 0' + player.link(); + 'step 1' + trigger.untrigger(); + trigger.responded=true; + trigger.result={bool:true,card:{name:'shan'}} + }, + ai:{ + effect:{ + target:function(card,player,target,effect){ + if(get.tag(card,'respondShan')) return 0.1; + } + } + } + }, + }, + group:['xuanying_sha','xuanying_shan'] + }, + wendao:{ + audio:2, + trigger:{player:['useCardAfter','respondAfter',]}, + check:function(event,player){ + return ai.get.attitude(player,_status.currentPhase)<=0; + }, + logTarget:function(){ + return _status.currentPhase; + }, + filter:function(event,player){ + if(player==_status.currentPhase) return false; + if(!_status.currentPhase.num('he')) return false; + return event.cards&&event.cards.length==1; + }, + content:function(){ + 'step 0' + var suit=get.suit(trigger.cards[0]); + var goon=(ai.get.attitude(_status.currentPhase,player)<=0); + _status.currentPhase.chooseToDiscard('弃置一张'+get.translation(suit+'2')+ + '牌,或令'+get.translation(player)+'获得你的一张牌',{suit:suit}).ai=function(card){ + if(goon) return 8-ai.get.value(card); + return 0; + } + 'step 1' + if(!result.bool){ + player.gainPlayerCard(_status.currentPhase,'he',true); + } + }, + ai:{ + threaten:0.7 + } + }, + lingfeng:{ + trigger:{player:'phaseEnd'}, + frequent:true, + filter:function(event,player){ + return get.cardCount(true,player)>=Math.min(3,player.hp); + }, + content:function(){ + 'step 0' + player.chooseTarget('凌锋:造成一点伤害,或取消并获得一点护甲',function(card,player,target){ + return player!=target&&get.distance(player,target,'attack')<=1; + }).ai=function(target){ + if(player.hp==1) return 0; + if(player.hp==2&&target.hp>=3) return 0; + return ai.get.damageEffect(target,player,player); + } + 'step 1' + if(result.bool){ + player.line(result.targets[0]); + result.targets[0].damage(); + } + else{ + player.changeHujia(); + } + }, + ai:{ + order:-10, + result:{ + target:2 + }, + threaten:1.5 + } + }, + hxunzhi:{ + unique:true, + enable:'phaseUse', + filter:function(event,player){ + return !player.storage.hxunzhi; + }, + init:function(player){ + player.storage.hxunzhi=false; + }, + mark:true, + intro:{ + content:'limited' + }, + skillAnimation:true, + animationColor:'fire', + content:function(){ + 'step 0' + player.unmarkSkill('hxunzhi'); + player.storage.hxunzhi=true; + var targets=[]; + for(var i=0;i0&& + enemies[i].hp<=2&&!enemies[i].get('e','2')) return 1; + } + return 0; + } + } + } + }, + hxunzhi2:{ + trigger:{player:'phaseUseEnd'}, + forced:true, + popup:false, + content:function(){ + player.removeSkill('xunzhi2'); + player.die(); + } + }, hjifeng:{ trigger:{player:'phaseUseEnd'}, filter:function(event,player){ @@ -181,9 +373,6 @@ character.swd={ discard:false, prepare:'give', content:function(){ - "step 0" - game.delay(); - "step 1" target.storage.lmazui2=cards[0]; target.addSkill('lmazui2'); game.addVideo('storage',target,['lmazui2',get.cardInfo(target.storage.lmazui2),'card']); @@ -5990,7 +6179,7 @@ character.swd={ target.gain(cards,player); target.storage.funiao=true; target.addSkill('funiao2'); - game.delay(); + // game.delay(); "step 1" if(event.isMine()){ event.dialog=ui.create.dialog(get.translation(target.name)+'的手牌',target.get('h')); @@ -7857,9 +8046,6 @@ character.swd={ discard:false, prepare:'give', content:function(){ - "step 0" - game.delay(); - "step 1" target.storage.zhenjiu2=cards[0]; game.addVideo('storage',target,['zhenjiu2',get.cardInfo(target.storage.zhenjiu2),'card']); target.addSkill('zhenjiu2'); @@ -8127,6 +8313,14 @@ character.swd={ swd_quxian:'屈娴', swd_xiyan:'犀衍', + xuanying:'旋影', + xuanying_info:'出牌阶段,你可以横置你的武将牌视为使用一张无视距离的杀;你可以竖置你的武将牌视为使用一张闪', + wendao:'问道', + wendao_info:'每当你于回合外使用或打出一张牌,你可以令当前回合角色弃置一张与之花色相同的牌,否则你获得其一张牌', + lingfeng:'凌锋', + lingfeng_info:'回合结束阶段,若你本回合内使用了至少X张牌,你可以选择一项:获得一点护甲,或对攻击范围内的一名角色造成一点伤害(X为你当前的体力值且最多为3)', + hxunzhi:'殉志', + hxunzhi_info:'限定技,出牌阶段,你可以视为使用一张万箭齐发并获得技能武圣、咆哮,若如此做,你在此阶段结束时死亡', lmazui:'麻醉', lmazui2:'麻醉', lmazui_info:'出牌阶段限一次,你可以将一张黑色手牌置于一名角色的武将牌上,该角色造成的下一次伤害-1,然后获得此牌', diff --git a/character/xiake.js b/character/xiake.js index 5ddccdf04..8ed73dd3c 100644 --- a/character/xiake.js +++ b/character/xiake.js @@ -3,16 +3,13 @@ character.xiake={ character:{ // xk_dongfangweiming:['male','shu',4,[]], xk_guyuexuan:['male','qun',4,['rouquan','gzhenji']], - xk_jinji:['male','shu',4,['lingfeng','lianpo']], + xk_jinji:['male','shu',4,['zhongzhan','lianpo']], // xk_shenxiangyun:['female','wei',3,['zhenjiu']], xk_fujianhan:['male','qun',4,['zuijian','zitong']], }, skill:{ - lingfeng:{ - trigger:{source:'damageEnd'}, - filter:function(event,player){ - return event.parent.name!='lingfeng'&&event.player.isAlive(); - }, + zhongzhan:{ + trigger:{source:'damageBegin'}, logTarget:'player', check:function(event,player){ if(ai.get.damageEffect(event.player,player,player)>0&& @@ -22,9 +19,8 @@ character.xiake={ return false; }, content:function(){ - game.delay(); player.loseHp(); - trigger.player.damage(); + trigger.num++; } }, rouquan:{ @@ -137,8 +133,8 @@ character.xiake={ xk_jinji:'荆棘', xk_shenxiangyun:'沈湘芸', xk_fujianhan:'傅剑寒', - lingfeng:'凌锋', - lingfeng_info:'每当你造成一次伤害,你可流失一点体力并对目标再造成一点伤害', + zhongzhan:'重斩', + zhongzhan_info:'每当你即将造成伤害,你可流失一点体力令伤害+1', gzhenji:'震击', gzhenji_info:'你使用杀造成伤害后,可以摸一张牌,并且本回合内可以额外使用一张杀', rouquan:'柔拳', diff --git a/character/yijiang.js b/character/yijiang.js index 5e77355e0..4a07b3a18 100644 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -5254,7 +5254,7 @@ character.yijiang={ content:function(){ "step 0" targets[0].gain(cards,player); - game.delay(2); + game.delay(); "step 1" targets[0].chooseControl('draw_card','出杀').set('ai',function(){ var event=_status.event; @@ -6555,7 +6555,7 @@ character.yijiang={ content:function(){ "step 0" target.gain(cards,player); - game.delay(); + // game.delay(); "step 1" player.gainPlayerCard(target,'he',true); "step 2" diff --git a/game/asset.js b/game/asset.js index 7e51bf7fe..b6e17be24 100644 --- a/game/asset.js +++ b/game/asset.js @@ -563,6 +563,7 @@ window.noname_asset_list=[ 'image/character/swd_hengai.jpg', 'image/character/swd_huanglei.jpg', 'image/character/swd_huanyuanzhi.jpg', + 'image/character/swd_huiyan.jpg', 'image/character/swd_hupo.jpg', 'image/character/swd_huyue.jpg', 'image/character/swd_huzhongxian.jpg', diff --git a/game/game.js b/game/game.js index 2ed325453..abe90b366 100644 --- a/game/game.js +++ b/game/game.js @@ -6185,6 +6185,12 @@ next.set('selectButton',info.chooseButton.select||1); event.buttoned=event.result.skill; } + else if(info&&info.precontent){ + var next=game.createEvent('pre_'+event.result.skill); + next.setContent(info.precontent); + next.set('argresult',event.result); + next.set('player',player); + } } } "step 3" @@ -9833,7 +9839,7 @@ next.autochoose=function(){ if(!this.forced) return false; if(typeof this.selectCard=='function') return false; - var cards=this.player.num(this.position||'h'); + var cards=this.player.get(this.position||'h'); var num=cards.length; for(var i=0;i=0){ + if(game.players[i]!=this&&ai.get.attitude(game.players[i],this)>0){ return true; } } diff --git a/image/character/swd_huiyan.jpg b/image/character/swd_huiyan.jpg new file mode 100644 index 000000000..0fa20cecd Binary files /dev/null and b/image/character/swd_huiyan.jpg differ diff --git a/mode/boss.js b/mode/boss.js index b8647e12c..2d88e6a59 100644 --- a/mode/boss.js +++ b/mode/boss.js @@ -936,9 +936,6 @@ mode.boss={ discard:false, prepare:'give', content:function(){ - "step 0" - game.delay(); - "step 1" target.storage.mazui2=cards[0]; target.addSkill('mazui2'); game.addVideo('storage',target,['mazui2',get.cardInfo(target.storage.mazui2),'card']);