diff --git a/card/gujian.js b/card/gujian.js index bac1b9412..4dabd5ceb 100644 --- a/card/gujian.js +++ b/card/gujian.js @@ -741,7 +741,7 @@ card.gujian={ }, ai:{ order:2, - value:[5,1], + value:[4,1], useful:1, result:{ target:-1.5 diff --git a/card/sp.js b/card/sp.js index 6a7e8b2f2..10ef23cfe 100644 --- a/card/sp.js +++ b/card/sp.js @@ -54,6 +54,13 @@ card.sp={ ai:{ value:-5, useful:6, + result:{ + player:function(player,target){ + if(player.hasSkillTag('usedu')) return 5; + return -1; + } + }, + order:7.5 }, enable:true, modTarget:true, @@ -532,6 +539,7 @@ card.sp={ popup:false, forced:true, filter:function(event,player){ + if(player.hasSkillTag('nodu')) return false; if(event.cards){ for(var i=0;i=0) return false; var hs=player.get('h'); + var dutag=player.hasSkillTag('nodu'); for(var i=0;i=8&&value<=7) return true; diff --git a/character/hearth.js b/character/hearth.js index 12ee72b58..a510807a5 100644 --- a/character/hearth.js +++ b/character/hearth.js @@ -6,7 +6,7 @@ character.hearth={ hs_wuther:['male','qun',4,['fengxian','jieming']], hs_jgarrosh:['male','shu',4,['zhanhou','qiangxi']], hs_malfurion:['male','wu',4,['jihuo']], - hs_guldan:['male','wei',3,['fenliu','hongxi']], + hs_guldan:['male','wei',3,['moxie','fuhua','hongxi']], hs_anduin:['male','qun',3,['shengguang','shijie','anying']], hs_sthrall:['male','wu',4,['tuteng','guozai','zuling']], hs_waleera:['female','shu',3,['jianren','mengun','wlianji']], @@ -47,7 +47,7 @@ character.hearth={ hs_kcthun:['male','qun',4,['luanji','xianji']], hs_anomalus:['male','wei',4,['mobao']], hs_blingtron:['male','shu',3,['zengli','xiubu']], - hs_yogg:['male','wu',4,['kuangluan']], + hs_yogg:['male','wu',3,['kuangluan','qianhou']], hs_xialikeer:['female','shu',3,['duxin']], hs_zhishigushu:['male','shu',4,['jiaohui']], @@ -98,6 +98,264 @@ character.hearth={ hs_malfurion:['hs_malorne'], }, skill:{ + fuhua:{ + enable:'phaseUse', + filterCard:{name:'du'}, + check:function(){return 1}, + filterTarget:function(card,player,target){ + return !target.hasSkill('moxie')&&!target.storage.fuhua_failed; + }, + filter:function(event,player){ + return player.num('h','du'); + }, + discard:false, + prepare:'give', + content:function(){ + 'step 0' + target.gain(cards,player); + var choice=1; + if(ai.get.attitude(target,player)>0||(target.hp<=1&&!target.hasSha())){ + choice=0; + } + target.chooseControl(function(){ + return choice; + }).set('choiceList',['获得技能魔血,每个出牌阶段开始时需交给'+get.translation(player)+'一张牌', + '视为'+get.translation(player)+'对你使用一张决斗,若你赢,本局不能再成为腐化目标']); + 'step 1' + if(result.index==0){ + target.storage.fuhua2=player; + target.addSkill('fuhua2'); + target.addSkill('moxie'); + } + else{ + player.useCard({name:'juedou'},target); + } + }, + ai:{ + threaten:2, + order:8, + expos:0.2, + result:{ + player:function(player,target){ + if(ai.get.attitude(target,player)>0) return 1; + if(ai.get.effect(target,{name:'juedou'},player,player)>0) return 1.5; + return 0; + } + } + }, + group:'fuhua3' + }, + fuhua2:{ + trigger:{player:'phaseUseBegin'}, + forced:true, + filter:function(event,player){ + return player.storage.fuhua2.isIn()&&player.num('he')>0; + }, + mark:'character', + intro:{ + content:function(storage){ + return '每个出牌阶段开始时需交给'+get.translation(storage)+'一张牌'; + } + }, + content:function(){ + 'step 0' + player.chooseCard('he',true,'交给'+player.storage.fuhua2+'一张牌'); + 'step 1' + if(result.bool){ + player.storage.fuhua2.gain(result.cards,player); + player.$give(result.cards,player.storage.fuhua2); + player.line(player.storage.fuhua2,'green'); + } + }, + group:'fuhua2_remove', + onremove:true, + subSkill:{ + remove:{ + trigger:{global:'dieAfter'}, + forced:true, + popup:false, + filter:function(event,player){ + return event.player==player.storage.fuhua2; + }, + content:function(){ + player.removeSkill('fuhua2'); + } + } + } + }, + fuhua3:{ + trigger:{player:'damageBefore'}, + forced:true, + popup:false, + filter:function(event,player){ + var evt=event.getParent(3); + return evt.name=='fuhua'&&evt.target==event.source; + }, + content:function(){ + trigger.getParent(3).target.storage.fuhua_failed=true; + } + }, + moxie:{ + trigger:{player:'duBegin'}, + forced:true, + content:function(){ + player.draw(2); + }, + ai:{ + threaten:1.2, + nodu:true, + usedu:true, + }, + group:'moxie2' + }, + moxie2:{ + trigger:{player:'phaseEnd'}, + forced:true, + content:function(){ + var hs=player.get('h'); + for(var i=0;iplayer.hp; + }); + }, + logTarget:function(event,player){ + return game.filterPlayer(function(current){ + return current.hp>player.hp; + }); + }, + content:function(){ + 'step 0' + event.targets=game.filterPlayer(function(current){ + return current.hp>player.hp; + }); + get.sortSeat(event.targets); + 'step 1' + if(event.targets.length){ + event.target=event.targets.shift(); + if(event.target.num('he',{color:'black'})){ + event.target.chooseCard('he','交给'+get.translation(player)+'一张黑色牌,或失去一点体力',{color:'black'}).ai=function(card){ + if(ai.get.attitude(event.target,player)>0) return 10-ai.get.value(card); + return 7-ai.get.value(card); + } + } + else{ + event.target.loseHp(); + event.redo(); + } + } + else{ + event.finish(); + } + 'step 2' + if(result.bool){ + player.gain(result.cards,event.target); + if(get.position(result.cards[0])=='e'){ + event.target.$give(result.cards,player); + } + else{ + event.target.$give(result.cards.length,player); + } + } + else{ + event.target.loseHp(); + } + event.goto(1); + } + }, + gfuhun:{ + trigger:{player:'phaseEnd'}, + direct:true, + filter:function(event,player){ + return player.num('h')>0&&!player.isTurnedOver(); + }, + content:function(){ + 'step 0' + player.chooseTarget(get.prompt('gfuhun'),function(card,player,target){ + return target!=player&&target.num('h')>0; + }).ai=function(target){ + return -ai.get.attitude(player,target); + } + 'step 1' + if(result.bool){ + player.logSkill('gfuhun',result.targets); + event.target=result.targets[0]; + player.chooseToCompare(event.target); + } + else{ + event.finish(); + } + 'step 2' + if(result.bool){ + event.target.goMad({player:'phaseAfter'}); + if(!player.isTurnedOver()) player.turnOver(); + } + }, + ai:{ + expose:0.2, + threaten:1.5 + } + }, + qianhou:{ + trigger:{player:'phaseBegin'}, + forced:true, + content:function(){ + var list=[]; + for(var i=0;i0&&info.selectTarget[1]>=info.selectTarget[0]){ + list.push(lib.inpile[i]); + } + } + else if(typeof info.selectTarget=='number'){ + list.push(lib.inpile[i]); + } + } + } + } + while(list.length){ + var card={name:list.randomRemove()}; + var info=get.info(card); + var targets=game.filterPlayer(function(current){ + return lib.filter.filterTarget(card,player,current); + }); + if(targets.length){ + targets.sort(lib.sort.seat); + if(info.selectTarget==-1){ + player.useCard(card,targets,'noai'); + } + else{ + var num=info.selectTarget; + if(Array.isArray(num)){ + if(targets.length0; }); diff --git a/character/yxs.js b/character/yxs.js index 1b6c6d1e2..832facf45 100644 --- a/character/yxs.js +++ b/character/yxs.js @@ -928,6 +928,7 @@ character.yxs={ if(result.bool){ result.targets[0].gain(card,player); player.$give(1,result.targets[0]); + player.line(result.targets,'green'); game.delay(); } }, @@ -1051,13 +1052,17 @@ character.yxs={ return _status.currentPhase!=player; }, content:function(){ - player.addTempSkill('chajue2',['phaseAfter','phaseBefore']); + player.addTempSkill('chajue2',{player:'phaseBegin'}); } }, chajue2:{ trigger:{target:'useCardToBefore'}, forced:true, priority:15, + mark:true, + intro:{ + content:'杀或通常锦囊牌对你无效' + }, filter:function(event,player){ return get.type(event.card)=='trick'||event.card.name=='sha'; }, @@ -1077,7 +1082,7 @@ character.yxs={ tiewan:{ trigger:{global:'useCardAfter'}, filter:function(event,player){ - return (event.card.viewAs||event.card.name)=='lebu'&&event.player!=player; + return get.type(event.card.viewAs||event.card.name)=='delay'&&event.player!=player; }, direct:true, content:function(){ @@ -1101,6 +1106,9 @@ character.yxs={ player.logSkill('tiewan'); player.useCard({name:'lebu'},result.cards,result.targets); } + }, + ai:{ + threaten:1.5 } }, qianglue:{ @@ -2674,9 +2682,9 @@ character.yxs={ heqin_info:'限定技,你可以与场上一名男性角色形成【和亲】状态,你与该男性角色于摸牌阶段摸牌数+1。你或者男性角色阵亡,【和亲】状态消失', chajue:'察觉', chajue2:'察觉', - chajue_info:'锁定技,你的回合外,你每受到一次伤害,任何【杀】或通常锦囊牌均对你无效,直到该回合结束。', + chajue_info:'锁定技,你的回合外,你每受到一次伤害,任何【杀】或通常锦囊牌均对你无效,直到你的回合开始', tiewan:'铁腕', - tiewan_info:'每当其他角色使用乐不思蜀时,你可以立即将一张红色牌当作乐不思蜀使用', + tiewan_info:'每当其他角色使用延时类锦囊牌时,你可以立即将一张红色牌当作乐不思蜀使用', qianglue:'强掠', qianglue_info:'每当你的杀被闪避时,你可以进行一次判定,若结果为黑色,你可以获得对方的一张牌', xiadao:'侠盗', diff --git a/game/game.js b/game/game.js index 01163363f..e389ecf3a 100644 --- a/game/game.js +++ b/game/game.js @@ -659,7 +659,7 @@ change_skin:{ name:'开启换肤', init:true, - intro:'双点头像或在右键菜单中换肤,皮肤可在选项-文件-图片文件-皮肤文件中添加' + intro:'双点头像或在右键菜单中换肤,皮肤可在选项-文件-图片文件-皮肤图片中添加' }, change_skin_auto:{ name:'自动换肤', @@ -673,6 +673,7 @@ }, intro:'游戏每进行一段时间自动为一个随机角色更换皮肤', onclick:function(item){ + game.saveConfig('change_skin_auto',item); clearTimeout(_status.skintimeout); if(item!='off'){ _status.skintimeout=setTimeout(ui.click.autoskin,parseInt(item)); @@ -6039,7 +6040,38 @@ targets.add(game.me); source.useCard(game.createCard(card.name,card.suit,card.number,card.nature),targets); }, - r:function(){ + r:function(bool){ + var list=['s','ap','a','am','bp','b','bm','c','d']; + var str=''; + for(var i=0;i