diff --git a/character/diy.js b/character/diy.js index e38c71ade..b8882d1df 100755 --- a/character/diy.js +++ b/character/diy.js @@ -840,7 +840,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } 'step 2' if(result.bool){ - player.chooseUseTarget(cards[0],event.hidden?'选择此牌的目标':null); + player.chooseUseTarget(true,cards[0],event.hidden?'选择此牌的目标':null); } else{ var evt=_status.event.getParent('phaseUse'); diff --git a/character/extra.js b/character/extra.js index abe57cbec..ef5cfb20f 100755 --- a/character/extra.js +++ b/character/extra.js @@ -1393,10 +1393,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(targets.length==1) event.goto(4); else{ player.chooseTarget('请选择受到2点伤害的角色',true,function(card,player,target){ - return targets.contains(target) + return _status.event.targets.contains(target) }).set('ai',function(target){ return 1; - }).set('forceDie',true); + }).set('forceDie',true).set('targets',targets); } "step 3" if(event.num4&¤t.countCards('h','tao') + })?1:0; + }, + }, + }, }, rexushen2:{ charlotte:true, @@ -1134,7 +1147,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ retuntian_info:'当你于回合外失去牌时,你可以进行一次判定。若判定结果为♥,你获得此判定牌。否则你将此牌置于你的武将牌上,称之为【田】。锁定技,你计算与其他角色的距离时-X(X为你武将牌上【田】的数目)', retiaoxin_info:'出牌阶段限一次,你可以指定一名有牌的其他角色,该角色需对你使用一张【杀】,否则你弃置其一张牌。', rebeige_info:'当有角色受到【杀】造成的伤害后,你可以弃一张牌,并令其进行一次判定,若判定结果为:♥该角色回复X点体力(X为伤害点数);♦︎该角色摸三张牌;♣伤害来源弃两张牌;♠伤害来源将其武将牌翻面', - meiyong:'妹勇', + meiyong:'姝勇', meiyong_info:'当你使用或打出【杀】时,你可以获得一名其他角色的一张牌,然后其摸一张牌。', rexushen:'许身', rexushen_info:'限定技,出牌阶段,你可以失去X点体力(X为场上男性角色的数量)。若你以此法进入了濒死状态,则当你因一名角色而脱离此濒死状态后,你可以令其获得技能〖武圣〗和〖当先〗。', diff --git a/character/mtg.js b/character/mtg.js index 2ffe62863..aa20d2d72 100644 --- a/character/mtg.js +++ b/character/mtg.js @@ -205,7 +205,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 1' if(result.bool){ trigger.cancel(); - player.chooseUseTarget(trigger.card); + player.chooseUseTarget(true,trigger.card); } } }, diff --git a/character/refresh.js b/character/refresh.js index f988b152b..771dd08bc 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -2198,7 +2198,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, reqianxun2:{ - trigger:{global:'phaseAfter'}, + trigger:{global:'phaseEnd'}, forced:true, audio:false, content:function(){ diff --git a/character/shenhua.js b/character/shenhua.js index f7c5a121e..533112162 100755 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -299,7 +299,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "drlt_zhenggu2":{ audio:2, trigger:{ - player:"phaseAfter", + player:"phaseEnd", }, forced:true, popup:false, @@ -1434,7 +1434,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 1' if(!result.bool) event.finish(); else{ - player.addTempSkill('nzry_lijun2'); + player.addTempSkill('nzry_lijun2','phaseUseEnd'); var zhu=result.targets[0]; player.logSkill('nzry_lijun1',zhu); var list=[]; @@ -2599,7 +2599,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, fangquan2:{ - trigger:{player:'phaseAfter'}, + trigger:{player:'phaseEnd'}, forced:true, popup:false, audio:false, @@ -3506,7 +3506,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{global:'gameStart',player:['enterGame','damageBefore']}, forced:true, popup:false, - priority:10, + //priority:10, filter:function(event,player){ return !player.storage.huasheninited; }, @@ -3516,9 +3516,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, huashen2:{ audio:2, - trigger:{player:['phaseBeginStart','phaseAfter','huashenStart']}, + trigger:{player:['phaseBegin','phaseEnd','huashenStart']}, filter:function(event,player,name){ - if(name=='phaseBeginStart'&&game.phaseNumber==1) return false; + if(name=='phaseBegin'&&game.phaseNumber==1) return false; return true; }, //priority:50, @@ -4638,6 +4638,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, bazhen:{ audio:2, + equipSkill:true, inherit:'bagua_skill', filter:function(event,player){ if(!lib.skill.bagua_skill.filter(event,player)) return false; diff --git a/character/sp.js b/character/sp.js index 79aca8c5b..7e4b5663a 100755 --- a/character/sp.js +++ b/character/sp.js @@ -3113,7 +3113,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, discard2:{ - trigger:{global:'phaseAfter'}, + trigger:{global:'phaseEnd'}, audio:"zishu", forced:true, filter:function(event,player){ @@ -7466,7 +7466,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ intro:{ content:'cards' }, - trigger:{global:'phaseAfter'}, + trigger:{global:'phaseEnd'}, forced:true, content:function(){ player.gain(player.storage.zhenwei2,'gain2'); @@ -9586,7 +9586,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ unique:true, juexingji:true, audio:2, - derivation:'tiaoxin', + derivation:'retiaoxin', trigger:{player:'dying'}, //priority:10, forced:true, @@ -9601,7 +9601,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.recover(2-player.hp); } "step 2" - player.addSkill('tiaoxin'); + player.addSkill('retiaoxin'); player.storage.kunfen=true; player.awakenSkill('fengliang'); }, @@ -10145,7 +10145,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, zhoufu3:{ - trigger:{global:'phaseJieshuBegin'}, + trigger:{global:'phaseEnd'}, silent:true, content:function(){ if(player.storage.zhoufu3.isIn()){ @@ -10742,7 +10742,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, qiluan2:{ audio:2, - trigger:{global:'phaseAfter'}, + trigger:{global:'phaseEnd'}, frequent:true, filter:function(event,player){ return player.storage.qiluan?true:false; @@ -12050,12 +12050,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ "step 0" if(player.storage.bifa[1].isAlive()&&player.countCards('h')){ - player.chooseCard(get.translation(player.storage.bifa[1])+ - '的笔伐牌为'+get.translation(player.storage.bifa[0]),function(card){ + player.chooseCard(get.translation(player.storage.bifa[1])+'的笔伐牌为:',function(card){ return get.type(card,'trick')==_status.event.type; }).set('ai',function(card){ return 8-get.value(card); - }).set('type',get.type(player.storage.bifa[0],'trick')); + }).set('type',get.type(player.storage.bifa[0],'trick')).set('promptx',[[player.storage.bifa[0]],'请交给其一张与此牌类别相同的手牌,否则失去1点体力' ]); } else{ event.directfalse=true; @@ -12063,8 +12062,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "step 1" if(result.bool&&!event.directfalse){ player.storage.bifa[1].gain(result.cards,player); - player.$give(result.cards,player.storage.bifa[1]); - player.gain(player.storage.bifa[0],'draw2','log','fromStorage'); + player.$giveAuto(result.cards,player.storage.bifa[1]); + player.gain(player.storage.bifa[0],'draw','log','fromStorage'); } else{ game.cardsDiscard(player.storage.bifa[0]); @@ -12115,10 +12114,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ result:{ target:function(player,target){ if(target.countCards('h')target.hp){ - if(target.countCards('h')<=3) return -1; + return -1; } } } @@ -12130,13 +12129,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ forced:true, popup:false, unique:true, - derivation:['tiaoxin','new_repaoxiao','xinshensu'], + derivation:['retiaoxin','new_repaoxiao','xinshensu'], content:function(){ player.removeAdditionalSkill('baobian'); var list=[]; if(player.hp<=3){ - if(trigger.num!=undefined&&trigger.num<0) player.logSkill('baobian'); - list.push('tiaoxin'); + if(trigger.num!=undefined&&trigger.num<0&&player.hp-trigger.num>1) player.logSkill('baobian'); + list.push('retiaoxin'); } if(player.hp<=2){ list.push('new_repaoxiao'); diff --git a/character/swd.js b/character/swd.js index 66e6bce51..dc4763f7c 100644 --- a/character/swd.js +++ b/character/swd.js @@ -258,7 +258,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } "step 2" if(result.bool){ - player.chooseUseTarget(game.createCard(result.links[0][2])); + player.chooseUseTarget(true,game.createCard(result.links[0][2])); } event.num--; if(event.num>0){ diff --git a/character/xinghuoliaoyuan.js b/character/xinghuoliaoyuan.js index 3aed9bff9..ca490789d 100755 --- a/character/xinghuoliaoyuan.js +++ b/character/xinghuoliaoyuan.js @@ -952,8 +952,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ target.chooseToUse({ prompt:'是否使用'+get.translation(card)+'?', filterCard:function(cardx,player,target){ - return cardx==card; + return cardx==_status.event.cardx; }, + cardx:card, }); } }, @@ -1019,8 +1020,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ event.card=result[0]; if(event.card&&get.owner(event.card)==player&&(event.ablers.length>1||event.ablers[0]!=player)){ player.chooseTarget('是否将'+get.translation(event.card)+'交给其他角色?',function(card,player,target){ - return event.ablers.contains(target)&&target!=player; - }).ai=function(){ + return _status.event.ablers.contains(target)&&target!=player; + }).set('ablers',event.ablers).ai=function(){ return false; }; } @@ -1049,10 +1050,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function (){ 'step 0' player.chooseTarget(get.prompt2('xinfu_lingren'),function(card,player,target){ - return trigger.targets.contains(target); + return _status.event.targets.contains(target); }).set('ai',function(target){ return 2-get.attitude(_status.event.player,target); - }); + }).set('targets',trigger.targets); 'step 1' if(result.bool){ player.logSkill('xinfu_lingren',result.targets); @@ -1174,18 +1175,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, "lingren_xingshang":{ audio:1, - unique:true, - gainable:true, - trigger:{global:'die'}, - //priority:5, - filter:function(event){ - return event.player.countCards('he')>0; - }, - content:function(){ - "step 0" - event.togain=trigger.player.getCards('he'); - player.gain(event.togain,trigger.player,'giveAuto'); - }, + inherit:'rexingshang', }, "xinfu_fujian":{ audio:2, @@ -1762,10 +1752,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(targets.length==1) event.goto(4); else{ player.chooseTarget('请选择受到2点伤害的角色',true,function(card,player,target){ - return targets.contains(target) + return _status.event.targets.contains(target) }).set('ai',function(target){ return 1; - }); + }).set('targets',targets).set('forceDie',true); } "step 3" if(event.num2){ if(card.name=='jiu') return 120; @@ -2729,6 +2720,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(result.bool&&result.cards&&result.cards.length){ player.gain(result.cards,event.current,'giveAuto'); } + "step 3" event.current=event.current.next; if(event.current!=player) event.goto(1); }, @@ -3815,7 +3807,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(player.hasJudge('lebu')) return false; return player.countCards('he',{suit:'diamond'})>0; }, - prepare:"throw", + viewAs:{name:'lebu'}, + //prepare:"throw", position:"he", filterCard:{ suit:"diamond", @@ -3842,11 +3835,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(card.name=='tao') return 10; return 9-get.value(card); }, - content:function (){ - var next=player.useCard({name:'lebu'},target,cards); - next.animate=false; - next.audio=false; - player.recover(); + onuse:function (links,player){ + var next=game.createEvent('limu_recover',false,_status.event.getParent()); + next.player=player; + next.setContent(function(){player.recover()}); }, ai:{ result:{ @@ -4280,7 +4272,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ prompt+='移动到另一名角色的装备区中'; var next=player.chooseTarget(2,function(card,player,target){ if(ui.selected.targets.length){ - if(!event.ingame){ + if(!_status.event.ingame){ return target.isEmpty(2)?true:false; } var from=ui.selected.targets[0]; @@ -4301,6 +4293,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return target.countCards('e')>0; } }); + next.set('ingame',event.ingame) next.set('ai',function(target){ var player=_status.event.player; var att=get.attitude(player,target); @@ -4912,12 +4905,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ enable:"phaseUse", usable:1, audio:2, - filter:function(){ - return ui.cardPile.hasChildNodes(); - }, + //filter:function(){ + //return ui.cardPile.hasChildNodes(); + //}, content:function (){ 'step 0' - event.card=ui.cardPile.lastChild; + //event.card=ui.cardPile.lastChild; + event.card=get.bottomCards()[0]; var content=['牌堆底的一张牌',[event.card]]; game.log(player,'观看了牌堆底的一张牌'); player.chooseControl('ok').set('dialog',content); @@ -4939,8 +4933,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ event.target=result.targets[0]; player.line(event.target,'green'); player.give(event.card,event.target); - game.updateRoundNumber(); } + else ui.cardPile.appendChild(event.card); + game.updateRoundNumber(); }, ai:{ order:7.2, @@ -4987,8 +4982,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ suits.add(get.suit(cards[i])); } trigger.source.chooseCard('he','交给'+get.translation(player)+'一张满足条件的牌,否则防止此伤害。',function(card){ - return !suits.contains(get.suit(card)); - }).ai=function(card){ + return !_status.event.suits.contains(get.suit(card)); + }).set('suits',suits).ai=function(card){ var player=_status.event.player; var target=_status.event.getParent('xinfu_daigong').player; if(get.damageEffect(target,player,player)>0) return 6.5-get.value(card); @@ -5618,7 +5613,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "xinfu_lianpian_info":"出牌阶段限三次。当你对一名角色连续使用牌时,你可以摸一张牌,然后可以将一张牌交给该角色。", "xinfu_lingren":"凌人", - "xinfu_lingren_info":"每回合限一次。当你于出牌阶段使用带有“伤害”这一标签的基本牌或普通锦囊牌指定目标后,你可以猜测其中的一个目标的手牌中是否有基本牌,锦囊牌或装备牌。若你猜中的项目数:≥1,此牌对该角色的伤害+1;≥2,你摸两张牌;≥3,你获得技能〖奸雄〗(新界)和〖行殇〗直到下回合开始。", + "xinfu_lingren_info":"每回合限一次。当你于出牌阶段使用带有“伤害”这一标签的基本牌或普通锦囊牌指定目标后,你可以猜测其中的一个目标的手牌中是否有基本牌,锦囊牌或装备牌。若你猜中的项目数:≥1,此牌对该角色的伤害+1;≥2,你摸两张牌;≥3,你获得技能〖奸雄〗和〖行殇〗直到下回合开始。", "lingren_adddamage":"凌人", "lingren_adddamage_info":"", "lingren_jianxiong":"奸雄", diff --git a/character/yijiang.js b/character/yijiang.js index 7dc266906..aab52d0e1 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -658,7 +658,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, xindangxian:{ - trigger:{player:'phaseZhunbeiBegin'}, + trigger:{player:'phaseBegin'}, forced:true, audio:'dangxian', audioname:['guansuo'], @@ -1499,6 +1499,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ fenli:{ audio:2, group:['fenli_draw','fenli_use','fenli_discard'], + subfrequent:['discard'], subSkill:{ draw:{ audio:'fenli', @@ -1539,6 +1540,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:'fenli', trigger:{player:'phaseDiscardBefore'}, prompt:'是否发动【奋励】跳过弃牌阶段?', + frequent:true, filter:function(event,player){ return player.isMaxEquip()&&player.countCards('e'); }, @@ -1556,7 +1558,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ group:['pingkou_init','pingkou_count'], subSkill:{ init:{ - trigger:{player:'phaseZhunbeiBegin'}, + trigger:{player:'phaseBefore'}, silent:true, content:function(){ player.storage.pingkou=0; @@ -1564,10 +1566,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, count:{ trigger:{player:[ + 'phaseZhunbeiCancelled','phaseZhunbeiSkipped', 'phaseJudgeCancelled','phaseJudgeSkipped', 'phaseDrawCancelled','phaseDrawSkipped', 'phaseUseCancelled','phaseUseSkipped', - 'phaseDiscardCancelled','phaseDiscardSkipped' + 'phaseDiscardCancelled','phaseDiscardSkipped', + 'phaseJieshuCancelled','phaseJieshuCancelled' ]}, silent:true, content:function(){ @@ -1576,7 +1580,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } } }, - trigger:{player:'phaseJieshuBegin'}, + trigger:{player:'phaseEnd'}, direct:true, filter:function(event,player){ return player.storage.pingkou>0; @@ -4502,6 +4506,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } else{ target.addSkill('duliang2'); + target.storage.duliang2++; event.finish(); } 'step 3' @@ -4519,15 +4524,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, duliang2:{ - trigger:{player:'phaseDrawBegin'}, + trigger:{player:'phaseDrawBefore'}, forced:true, mark:true, audio:false, + onremove:true, + charlotte:true, + init:function(player,skill){ + if(!player.storage[skill]) player.storage[skill]=0; + }, intro:{ - content:'下个摸牌阶段额外摸一张牌' + content:'下个摸牌阶段额外摸#张牌' }, content:function(){ - trigger.num++; + trigger.num+=player.storage.duliang2; player.removeSkill('duliang2'); } }, @@ -5551,7 +5561,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, dangxian:{ - trigger:{player:'phaseZhunbeiBegin'}, + trigger:{player:'phaseBegin'}, forced:true, audio:2, audioname:['guansuo'], @@ -6846,6 +6856,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.$give(cards.length,target); target.gain(cards,player); target.addTempSkill('mingjian2',{player:'phaseAfter'}); + target.storage.mingjian2++; }, ai:{ order:1, @@ -6862,16 +6873,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, mingjian2:{ + charlotte:true, mark:true, intro:{ - content:'手牌上限+1,出杀次数+1' + content:'手牌上限+#,出杀次数+#' }, + init:function(player,skill){ + if(!player.storage[skill]) player.storage[skill]=0; + }, + onremove:true, mod:{ maxHandcard:function(player,num){ - return num+1; + return num+player.storage.mingjian2; }, cardUsable:function(card,player,num){ - if(card.name=='sha') return num+1; + if(card.name=='sha') return num+player.storage.mingjian2; } }, }, @@ -7047,7 +7063,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, xinpojun2:{ - trigger:{global:'phaseJieshuBegin'}, + trigger:{global:'phaseEnd'}, forced:true, audio:false, mark:true, @@ -8279,7 +8295,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, global:'qieting2', globalSilent:true, - trigger:{global:'phaseJieshuBegin'}, + trigger:{global:'phaseEnd'}, filter:function(event,player){ return event.player!=player&&!event.player.tempSkills.qieting3&&event.player.isAlive(); },