diff --git a/card/extra.js b/card/extra.js index a95886430..4fe4f7b46 100644 --- a/card/extra.js +++ b/card/extra.js @@ -123,7 +123,7 @@ card.extra={ return 0; }, target:function(player,target){ - if(target.skills.contains('huogong2')) return 0; + if(target.skills.contains('huogong2')||target.num('h')==0) return 0; return -1.5; } }, @@ -159,6 +159,7 @@ card.extra={ if(target.classList.contains('linked')) return 1; if(ai.get.attitude(player,target)>=0) return -1; if(player.isMin()) return -1; + if(ui.selected.targets.length) return -1; for(var i=0;i0; + }, content:function(){ trigger.num--; player.addSkill('huxinjing2'); diff --git a/card/standard.js b/card/standard.js index 630963240..47d97fd5a 100644 --- a/card/standard.js +++ b/card/standard.js @@ -676,8 +676,13 @@ card.standard={ if(ai.get.damageEffect(target,player,target)>0&&ai.get.attitude(player,target)>0&&ai.get.attitude(target,player)>0){ return 0; } - if(target.num('h','sha')>player.num('h','sha')){ - if(Math.random()<0.5) return -2; + var hs1=target.num('h','sha'); + var hs2=player.num('h','sha'); + if(hs1.length>hs2.length+1){ + return -2; + } + if(hs1.length>hs2.length&&hs1[0].number>hs2[0].number){ + return -2; } return -0.5; } diff --git a/character/diy.js b/character/diy.js index 62c866a97..60ecc8c05 100644 --- a/character/diy.js +++ b/character/diy.js @@ -475,9 +475,11 @@ character.diy={ } var be=target.num('e',{color:'black'}); if(target.num('h','shan')&&be){ + if(!target.skills.contains('guidao')) return 0; return [0,hastarget?target.num('he')/2:0]; } if(target.num('h','shan')&&target.num('h')>2){ + if(!target.skills.contains('guidao')) return 0; return [0,hastarget?target.num('h')/4:0]; } if(target.num('h')>3||(be&&target.num('h')>=2)){ @@ -489,6 +491,7 @@ character.diy={ if(target.num('h')==1&&!be){ return [1.2,0]; } + if(!target.skills.contains('guidao')) return [1,0.05]; return [1,Math.min(0.5,(target.num('h')+be)/4)]; } } diff --git a/character/hearth.js b/character/hearth.js new file mode 100644 index 000000000..4c0660bf2 --- /dev/null +++ b/character/hearth.js @@ -0,0 +1,333 @@ +character.hearth={ + character:{ + // hs_jaina:['female','wei',3,[],['fullskin']], + // hs_rexxar:['male','qun',4,[],['fullskin']], + // hs_uther:['male','qun',4,[],['fullskin']], + // hs_garrosh:['male','qun',4,[],['fullskin']], + hs_malfurion:['male','wu',4,['jihuo'],['fullskin']], + hs_guldan:['male','wei',3,['fenliu','hongxi'],['fullskin']], + // hs_anduin:['male','qun',4,[],['fullskin']], + hs_thrall:['male','qun',4,['tuteng','tzhenji'],['fullskin']], + // hs_waleera:['female','qun',4,[],['fullskin']], + }, + skill:{ + jihuo:{ + trigger:{player:'phaseEnd'}, + filter:function(event,player){ + return !player.storage.jihuo&&player.num('h')>0; + }, + direct:true, + content:function(){ + "step 0" + player.chooseToDiscard('是否发动【激活】?').ai=ai.get.unuseful2; + "step 1" + if(result.bool){ + player.logSkill('jihuo'); + player.storage.jihuo=true; + } + else{ + event.finish(); + } + "step 2" + player.phase(); + "step 3" + player.storage.jihuo=false; + }, + ai:{ + threaten:1.2 + } + }, + tzhenji:{ + trigger:{player:'respond'}, + filter:function(event,player){ + return event.card.name=='shan'; + }, + direct:true, + content:function(){ + "step 0"; + player.chooseTarget('是否发动【震击】?').ai=function(target){ + return ai.get.damageEffect(target,player,player,'thunder')-1; + }; + "step 1" + if(result.bool){ + player.logSkill('tzhenji',result.targets,'thunder'); + event.target=result.targets[0]; + event.target.judge(function(card){ + if(get.color(card)=='black') return -2; + return 0; + }); + } + else{ + event.finish(); + } + "step 2" + if(result.bool==false){ + event.target.damage('thunder'); + var cs=event.target.get('he'); + if(cs.length){ + event.target.discard(cs.randomGet()); + } + } + }, + ai:{ + effect:{ + target:function(card,player,target,current){ + if(get.tag(card,'respondShan')){ + var hastarget=false; + for(var i=0;i1){ + return [0,hastarget?1:0]; + } + if(ns&&nh>=2){ + return [0,0]; + } + if(nh>3){ + return [0,0]; + } + if(nh==0){ + return [1.5,0]; + } + return [1,0.05]; + } + } + } + } + }, + tuteng_s:{ + trigger:{player:'phaseUseBegin'}, + forced:true, + filter:function(event,player){ + var rand=['tuteng1','tuteng2','tuteng3','tuteng4']; + for(var i=0;i0; + }, + content:function(){ + trigger.num--; + }, + }, + tuteng4:{ + mark:'image', + intro:{ + content:'你的锦囊牌造成的伤害+1' + }, + trigger:{source:'damageBegin'}, + forced:true, + filter:function(event,player){ + return event.card&&get.type(event.card)=='trick'; + }, + content:function(){ + trigger.num++; + } + }, + fenliu:{ + enable:'phaseUse', + prompt:'流失1点体力并摸两张牌', + usable:1, + content:function(){ + "step 0" + player.loseHp(1); + "step 1" + player.draw(3); + }, + ai:{ + order:1, + result:{ + player:function(player){ + if(player.num('h')>=player.hp-1) return -1; + if(player.hp<3) return -1; + return 1; + } + }, + effect:{ + target:function(card){ + if(get.tag(card,'damage')||get.tag(card,'loseHp')){ + return 1.5; + } + } + }, + threaten:1.2 + } + }, + hongxi:{ + trigger:{global:'dieAfter'}, + filter:function(event,player){ + return player.hp0; }, direct:true, - check:function(event,player){ - - }, content:function(){ "step 0" var check,i,num=0,num2=0; diff --git a/character/refresh.js b/character/refresh.js index 5dea29fa2..572c3be1f 100644 --- a/character/refresh.js +++ b/character/refresh.js @@ -856,19 +856,18 @@ character.refresh={ usable:1, filterCard:true, check:function(card){ - return 9-ai.get.value(card); + return 8-ai.get.value(card); }, position:'he', content:function(){ player.loseHp(); }, ai:{ - order:9, + order:8, result:{ player:function(player){ - if(player.hp<=2) return 0; - if(player.num('h')+1recover&&lose>0) return 0; if(lose0) return 1; @@ -3547,44 +3547,6 @@ character.swd={ player.storage.kunlunjing3=table.outerHTML; } }, - swdshelie:{ - trigger:{player:'phaseDrawBefore'}, - content:function(){ - "step 0" - trigger.untrigger(); - trigger.finish(); - "step 1" - event.cards=get.cards(5); - if(event.isMine()==false){ - event.dialog=ui.create.dialog('涉猎',event.cards); - game.delay(2); - } - "step 2" - if(event.dialog) event.dialog.close(); - var dialog=ui.create.dialog('涉猎',event.cards); - player.chooseButton([0,5],dialog,true).filterButton=function(button){ - for(var i=0;i