diff --git a/audio/die/huangchengyan.mp3 b/audio/die/huangchengyan.mp3 new file mode 100644 index 000000000..952b0747f Binary files /dev/null and b/audio/die/huangchengyan.mp3 differ diff --git a/audio/die/ol_jiangwei.mp3 b/audio/die/ol_jiangwei.mp3 new file mode 100644 index 000000000..85ac63a0e Binary files /dev/null and b/audio/die/ol_jiangwei.mp3 differ diff --git a/audio/die/ol_zhurong.mp3 b/audio/die/ol_zhurong.mp3 new file mode 100644 index 000000000..27c8a73fb Binary files /dev/null and b/audio/die/ol_zhurong.mp3 differ diff --git a/audio/die/zhongyan.mp3 b/audio/die/zhongyan.mp3 new file mode 100644 index 000000000..b6e845004 Binary files /dev/null and b/audio/die/zhongyan.mp3 differ diff --git a/audio/skill/bolan1.mp3 b/audio/skill/bolan1.mp3 new file mode 100644 index 000000000..b75b42588 Binary files /dev/null and b/audio/skill/bolan1.mp3 differ diff --git a/audio/skill/bolan2.mp3 b/audio/skill/bolan2.mp3 new file mode 100644 index 000000000..80b7e5241 Binary files /dev/null and b/audio/skill/bolan2.mp3 differ diff --git a/audio/skill/changbiao1.mp3 b/audio/skill/changbiao1.mp3 new file mode 100644 index 000000000..da1756c93 Binary files /dev/null and b/audio/skill/changbiao1.mp3 differ diff --git a/audio/skill/changbiao2.mp3 b/audio/skill/changbiao2.mp3 new file mode 100644 index 000000000..74ffe6db6 Binary files /dev/null and b/audio/skill/changbiao2.mp3 differ diff --git a/audio/skill/guanxing_ol_jiangwei1.mp3 b/audio/skill/guanxing_ol_jiangwei1.mp3 new file mode 100644 index 000000000..c91b3ec1c Binary files /dev/null and b/audio/skill/guanxing_ol_jiangwei1.mp3 differ diff --git a/audio/skill/guanxing_ol_jiangwei2.mp3 b/audio/skill/guanxing_ol_jiangwei2.mp3 new file mode 100644 index 000000000..b0c52c401 Binary files /dev/null and b/audio/skill/guanxing_ol_jiangwei2.mp3 differ diff --git a/audio/skill/guanxu1.mp3 b/audio/skill/guanxu1.mp3 new file mode 100644 index 000000000..ef49485a9 Binary files /dev/null and b/audio/skill/guanxu1.mp3 differ diff --git a/audio/skill/guanxu2.mp3 b/audio/skill/guanxu2.mp3 new file mode 100644 index 000000000..1c97a32c9 Binary files /dev/null and b/audio/skill/guanxu2.mp3 differ diff --git a/audio/skill/juxiang1_ol_zhurong1.mp3 b/audio/skill/juxiang1_ol_zhurong1.mp3 new file mode 100644 index 000000000..7d40d1054 Binary files /dev/null and b/audio/skill/juxiang1_ol_zhurong1.mp3 differ diff --git a/audio/skill/juxiang1_ol_zhurong2.mp3 b/audio/skill/juxiang1_ol_zhurong2.mp3 new file mode 100644 index 000000000..bfe7be14a Binary files /dev/null and b/audio/skill/juxiang1_ol_zhurong2.mp3 differ diff --git a/audio/skill/lieren_ol_zhurong1.mp3 b/audio/skill/lieren_ol_zhurong1.mp3 new file mode 100644 index 000000000..6c2e53d7b Binary files /dev/null and b/audio/skill/lieren_ol_zhurong1.mp3 differ diff --git a/audio/skill/lieren_ol_zhurong2.mp3 b/audio/skill/lieren_ol_zhurong2.mp3 new file mode 100644 index 000000000..64ac77c64 Binary files /dev/null and b/audio/skill/lieren_ol_zhurong2.mp3 differ diff --git a/audio/skill/olzhiji1.mp3 b/audio/skill/olzhiji1.mp3 new file mode 100644 index 000000000..a31dd2499 Binary files /dev/null and b/audio/skill/olzhiji1.mp3 differ diff --git a/audio/skill/olzhiji2.mp3 b/audio/skill/olzhiji2.mp3 new file mode 100644 index 000000000..b98ea036f Binary files /dev/null and b/audio/skill/olzhiji2.mp3 differ diff --git a/audio/skill/tiaoxin_ol_jiangwei1.mp3 b/audio/skill/tiaoxin_ol_jiangwei1.mp3 new file mode 100644 index 000000000..8e2b1d7ec Binary files /dev/null and b/audio/skill/tiaoxin_ol_jiangwei1.mp3 differ diff --git a/audio/skill/tiaoxin_ol_jiangwei2.mp3 b/audio/skill/tiaoxin_ol_jiangwei2.mp3 new file mode 100644 index 000000000..1ed95e5e9 Binary files /dev/null and b/audio/skill/tiaoxin_ol_jiangwei2.mp3 differ diff --git a/audio/skill/yashi1.mp3 b/audio/skill/yashi1.mp3 new file mode 100644 index 000000000..1175ee7e8 Binary files /dev/null and b/audio/skill/yashi1.mp3 differ diff --git a/audio/skill/yashi2.mp3 b/audio/skill/yashi2.mp3 new file mode 100644 index 000000000..062139020 Binary files /dev/null and b/audio/skill/yashi2.mp3 differ diff --git a/audio/skill/yifa1.mp3 b/audio/skill/yifa1.mp3 new file mode 100644 index 000000000..58a880c4c Binary files /dev/null and b/audio/skill/yifa1.mp3 differ diff --git a/audio/skill/yifa2.mp3 b/audio/skill/yifa2.mp3 new file mode 100644 index 000000000..c3dc68808 Binary files /dev/null and b/audio/skill/yifa2.mp3 differ diff --git a/card/guozhan.js b/card/guozhan.js index 03f85a86c..cbb8133d3 100644 --- a/card/guozhan.js +++ b/card/guozhan.js @@ -4,6 +4,40 @@ game.import('card',function(lib,game,ui,get,ai,_status){ name:'guozhan', connect:true, card:{ + zhaoshu:{ + audio:true, + mode:['guozhan'], + fullskin:true, + type:'equip', + subtype:'equip5', + skills:['zhaoshu_skill'], + content:function(){ + cards=cards.filterInD(); + if(cards.length&&target.isAlive()){ + player.$gain2(cards,false); + target.markAuto('zhaoshu_skill',cards); + target.addSkill('zhaoshu_skill'); + game.addGlobalSkill('zhaoshu_global'); + } + }, + onEquip:function(){ + if(player.isAlive()){ + player.lose(card)._triggered=null; + player.markAuto('zhaoshu_skill',[card]); + player.addSkill('zhaoshu_skill'); + game.addGlobalSkill('zhaoshu_global'); + } + }, + ai:{ + order:12, + value:3, + useful:1, + result:{ + keepAI:true, + target:1, + }, + } + }, gz_haolingtianxia:{ audio:true, mode:['guozhan'], @@ -1060,6 +1094,135 @@ game.import('card',function(lib,game,ui,get,ai,_status){ }, }, skill:{ + zhaoshu_skill:{ + equipSkill:true, + charlotte:true, + enable:'phaseUse', + usable:1, + filter:function(event,player){ + var cards=player.getStorage('zhaoshu_cards'); + if(cards.length<4) return false; + var list=[]; + for(var i of cards){ + list.add(get.suit(i,false)); + if(list.length>=4) return true; + } + return false; + }, + delay:false, + content:function(){ + 'step 0' + var cards=player.getStorage('zhaoshu_cards'); + game.cardsDiscard(cards); + player.$throw(cards); + game.log(player,'移去了',cards); + cards.length=0; + player.markSkill('zhaoshu_cards'); + game.delayx(); + 'step 1' + var list=[ + ['spade',12,'gz_haolingtianxia'], + ['diamond',1,'gz_kefuzhongyuan'], + ['heart',1,'gz_guguoanbang'], + ['club',12,'gz_wenheluanwu'], + ]; + for(var i=0;i
  • 与你势力相同的角色的出牌阶段限一次,其可以将一张手牌(小势力角色改为至多两张)置于【诏书】上,称为“应”。
  • 出牌阶段限一次,若你的“应”中包含至少四种花色,则你可以发动“锦囊召唤”,将所有“应”置入弃牌堆,然后随机获得一张未加入游戏的势力锦囊牌。',false); + if(player.storage.zhaoshu_cards&&player.storage.zhaoshu_cards.length){ + dialog.addAuto(player.storage.zhaoshu_cards) + } + }, + content:'cards', + markcount:function(content,player){ + return player.getStorage('zhaoshu_cards').length; + }, + onunmark:function(storage,player){ + var cards=player.getStorage('zhaoshu_skill').concat(player.getStorage('zhaoshu_cards')); + if(cards.length){ + game.log(cards,'进入了弃牌堆'); + game.cardsDiscard(cards); + player.$throw(cards,1000); + } + delete player.storage.zhaoshu_skill; + delete player.storage.zhaoshu_cards; + player.removeSkill('zhaoshu_skill'); + }, + }, + }, + zhaoshu_global:{ + enable:'phaseUse', + usable:1, + filter:function(event,player){ + if(!player.countCards('h')) return false; + return game.hasPlayer(function(current){ + return current.hasSkill('zhaoshu_skill')&¤t.isFriendOf(player); + }); + }, + filterCard:true, + selectCard:function(){ + if(_status.event.player.isNotMajor()) return [1,2]; + return [1,1]; + }, + position:'h', + discard:false, + toStorage:true, + check:function(card){ + var player=_status.event.player,cards=ui.selected.cards.concat(game.findPlayer(function(current){ + return current.hasSkill('zhaoshu_skill')&¤t.isFriendOf(player); + }).getStorage('zhaoshu_cards')),suit=get.suit(card,false); + for(var i of cards){ + if(get.suit(i)==suit) return 0; + } + return 5+player.needsToDiscard()*1.5-get.value(card); + }, + filterTarget:function(card,player,target){ + return target.hasSkill('zhaoshu_skill')&&target.isFriendOf(player); + }, + selectTarget:function(){ + if(game.countPlayer(function(current){ + return current.hasSkill('zhaoshu_skill')&¤t.isFriendOf(_status.event.player); + })==1) return -1; + return 1; + }, + prompt:function(){ + var player=_status.event.player; + return '将'+(player.isNotMajor()?'至多两':'一')+'张手牌置于'+get.translation(game.filterPlayer(function(current){ + return current.hasSkill('zhaoshu_skill')&¤t.isFriendOf(player); + }))+'的【诏书】上'; + }, + prepare:function(cards,player,targets){ + var target=targets[0] + player.$give(cards,target,false); + game.log(player,'将',cards,'放在了',target,'的',target.getStorage('zhaoshu_skill'),'上'); + target.markAuto('zhaoshu_cards',cards); + target.markSkill('zhaoshu_skill'); + }, + content:function(){}, + ai:{ + order:1, + result:{ + player:1, + }, + }, + }, liulongcanjia:{ equipSkill:true, mod:{ @@ -1463,6 +1626,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){ _status.chiling=true; if(player&&player.popup) player.popup('敕令'); } + if(!lib.inpile.contains('zhaoshu')){ + lib.inpile.push('zhaoshu'); + var card=game.createCard2('zhaoshu','club',3); + game.log(card,'被置于了牌堆底'); + ui.cardPile.appendChild(card); + game.updateRoundNumber(); + } }, }, g_chiling2:{}, @@ -1683,7 +1853,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ lianjunshengyan_info:'出牌阶段,对你和你选择的除你的势力外的一个势力的所有角色。若目标角色:为你,你选择摸Y张牌并回复X-Y点体力(X为该势力的角色数,Y∈[0,X]);不为你,其摸一张牌,然后重置。', lianjunshengyan_info_boss:'出牌阶段,对场上所有角色使用。你摸X张牌(X为目存活角色数),其他角色依次选择回复1点体力或摸一张牌。', chiling:'敕令', - chiling_info:'出牌阶段,对所有没有势力的角色使用。目标角色选择一项:1、明置一张武将牌,然后摸一张牌;2、弃置一张装备牌;3、失去1点体力。当【敕令】因判定或弃置而置入弃牌堆时,系统将之移出游戏,然后系统于当前回合结束后视为对所有没有势力的角色使用【敕令】', + chiling_info:'出牌阶段,对所有没有势力的角色使用。目标角色选择一项:1、明置一张武将牌,然后摸一张牌;2、弃置一张装备牌;3、失去1点体力。当【敕令】因判定或弃置而置入弃牌堆时,系统将之移出游戏并将【诏书】置于牌堆底,然后系统于当前回合结束后视为对所有没有势力的角色使用【敕令】。', diaohulishan:'调虎离山', diaohulishan_info:'出牌阶段,对至多两名其他角色使用。目标角色于此回合结束之前不计入距离的计算且不能使用牌且不是牌的合法目标且不能失去或回复体力或受到伤害。', huoshaolianying:'火烧连营', @@ -1721,6 +1891,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){ gz_guguoanbang_info:'出牌阶段,对你自己使用。你摸八张牌,然后弃置至少六张手牌。然后若你的势力为吴,则你可以将你以此法弃置的牌交给其他吴势力角色(每名角色至多获得两张牌)。', gz_wenheluanwu:'文和乱武', gz_wenheluanwu_info:'出牌阶段,对所有角色使用。目标角色展示所有手牌,然后你选择一项:①令其弃置两张类型不同的手牌;②你弃置其一张手牌。然后若其为群势力角色且其没有手牌,则其将手牌摸至当前体力值(至多为5)。', + zhaoshu:'诏书', + zhaoshu_skill:'锦囊召唤', + zhaoshu_global:'诏书', + zhaoshu_info:'
  • 出牌阶段,对你自己使用。你将此牌置于目标的武将牌上。
  • 与你势力相同的角色的出牌阶段限一次,其可以将一张手牌(小势力角色改为至多两张)置于【诏书】上,称为“应”。
  • 出牌阶段限一次,若你的“应”中包含至少四种花色,则你可以发动“锦囊召唤”,将所有“应”置入弃牌堆,然后随机获得一张未加入游戏的势力锦囊牌。', }, list:[ ['heart',9,'yuanjiao'], diff --git a/character/mobile.js b/character/mobile.js index 3fe12673c..cc1fbbee4 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -4145,7 +4145,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return Math.min(5,target.maxHp,target.countMark('zhengjian_mark')); }); } - else if(list.length==1) list[0].draw(Math.min(5,target.maxHp,target.countMark('zhengjian_mark'))); + else if(list.length==1) list[0].draw(Math.min(5,list[0].maxHp,list[0].countMark('zhengjian_mark'))); 'step 1' game.countPlayer(function(current){ current.removeSkill('zhengjian_mark'); diff --git a/character/refresh.js b/character/refresh.js index 672807b7c..967fa0d1e 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -183,7 +183,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } } var next=player.chooseToDiscard(get.prompt('longyin'),'弃置一张牌'+(get.color(trigger.card)=='red'?'并摸一张牌':'')+',令'+get.translation(trigger.player)+'本次使用的【杀】不计入使用次数','he'); - next.logSkill=['longyin',trigger.player]; + next.logSkill=['relongyin',trigger.player]; next.set('ai',function(card){ if(_status.event.go){ return 6-get.value(card); @@ -208,6 +208,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, jiezhong:{ + audio:2, trigger:{player:'phaseUseBegin'}, limited:true, skillAnimation:true, @@ -6534,7 +6535,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ reguanxing:{ audio:'guanxing', - audioname:['jiangwei','re_jiangwei','re_zhugeliang','gexuan'], + audioname:['jiangwei','re_jiangwei','re_zhugeliang','gexuan','ol_jiangwei'], trigger:{player:['phaseZhunbeiBegin','phaseJieshuBegin']}, frequent:true, filter:function(event,player,name){ diff --git a/character/shenhua.js b/character/shenhua.js index f374690f9..af4bb8e69 100755 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -2824,7 +2824,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, tiaoxin:{ audio:2, - audioname:['sp_jiangwei','xiahouba','re_jiangwei','gz_jiangwei'], + audioname:['sp_jiangwei','xiahouba','re_jiangwei','gz_jiangwei','ol_jiangwei'], enable:'phaseUse', usable:1, filterTarget:function(card,player,target){ @@ -4239,7 +4239,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ //unique:true, locked:true, audio:"juxiang1", - audioname:['re_zhurong'], + audioname:['re_zhurong','ol_zhurong'], group:['juxiang1','juxiang2'], ai:{ effect:{ @@ -4251,7 +4251,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, juxiang1:{ audio:2, - audioname:['re_zhurong'], + audioname:['re_zhurong','ol_zhurong'], trigger:{target:'useCardToBefore'}, forced:true, priority:15, @@ -4264,7 +4264,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, juxiang2:{ audio:"juxiang1", - audioname:['re_zhurong'], + audioname:['re_zhurong','ol_zhurong'], trigger:{global:'useCardAfter'}, forced:true, filter:function(event,player){ @@ -4277,7 +4277,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ lieren:{ shaRelated:true, audio:2, - audioname:['boss_lvbu3'], + audioname:['boss_lvbu3','ol_zhurong'], trigger:{source:'damageSource'}, filter:function(event,player){ if(event._notrigger.contains(event.player)) return false; diff --git a/character/sp.js b/character/sp.js index 2f93df083..9eddc1e75 100755 --- a/character/sp.js +++ b/character/sp.js @@ -536,6 +536,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ai:{ order:2, }, + group:'olzhennan2', + }, + olzhennan2:{ + trigger:{target:'useCardToBefore'}, + forced:true, + locked:false, + audio:'olzhennan', + filter:function(event,player){ + return event.card.name=='nanman'; + }, + content:function(){ + trigger.cancel(); + }, }, //糜芳傅士仁 mffengshi:{ @@ -17533,6 +17546,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ olxushen:'许身', olxushen_info:'限定技,当你进入濒死状态时,你可将体力回复至1点并获得技能〖镇南〗。然后若场上没有存活的“关索”,则你可以令一名其他男性角色选择是否将一张武将牌替换为“关索”。', olzhennan:'镇南', + olzhennan2:'镇南', olzhennan_info:'【南蛮入侵】对你无效。出牌阶段限一次,你可以将任意张手牌当做【南蛮入侵】对等量的角色使用。', sp_default:"常规", diff --git a/character/sp2.js b/character/sp2.js index 125ab74eb..71d80ea64 100644 --- a/character/sp2.js +++ b/character/sp2.js @@ -447,8 +447,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ check:function(event,player){ return get.attitude(player,event.player)>0; }, + prompt2:'令其将体力值回复至1点', content:function(){ - trigger.player.recover(1-player.hp); + trigger.player.recover(1-trigger.player.hp); player.addTempSkill('jielie_temp','roundStart'); }, }, @@ -459,6 +460,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter:function(event,player){ return event.player==player.storage.jielie; }, + forced:true, content:function(){ var cards=player.getCards('he'); if(cards.length) player.discard(cards); @@ -472,7 +474,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, kangge:{ audio:2, - trigger:{player:'damageBegin2'}, + trigger:{player:'damageBegin4'}, direct:true, filter:function(event,player){ return event.source!=player&&event.source!=player.storage.jielie; @@ -487,7 +489,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ event.suit=result.control; player.logSkill('kangge'); trigger.cancel(); - player.loseHp(); + player.loseHp(trigger.num); } else event.finish(); 'step 2' diff --git a/character/yingbian.js b/character/yingbian.js index 8cb6df89d..3b4400e90 100644 --- a/character/yingbian.js +++ b/character/yingbian.js @@ -1982,7 +1982,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ characterFilter:{}, dynamicTranslate:{}, perfectPair:{ - jin_simayi:['jin_zhangchunhua'], + jin_simayi:['jin_zhangchunhua','shibao'], jin_simazhao:['jin_wangyuanji'], jin_simashi:['jin_xiahouhui','jin_yanghuiyu'], }, diff --git a/game/asset.js b/game/asset.js index cd7130b4b..ec2ef2f60 100644 --- a/game/asset.js +++ b/game/asset.js @@ -1,5 +1,5 @@ window.noname_asset_list=[ - 'v1.9.110.8.3', + 'v1.9.110.8.3.1', 'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_online.mp3', 'audio/background/aozhan_rewrite.mp3', @@ -746,6 +746,10 @@ window.noname_asset_list=[ 'audio/die/tangji.mp3', 'audio/die/yangwan.mp3', 'audio/die/zhangheng.mp3', + 'audio/die/huangchengyan.mp3', + 'audio/die/ol_jiangwei.mp3', + 'audio/die/ol_zhurong.mp3', + 'audio/die/zhongyan.mp3', 'audio/skill/decadezishou1.mp3', 'audio/skill/decadezishou2.mp3', @@ -3298,6 +3302,26 @@ window.noname_asset_list=[ 'audio/skill/youyan2.mp3', 'audio/skill/zhuihuan1.mp3', 'audio/skill/zhuihuan2.mp3', + 'audio/skill/bolan1.mp3', + 'audio/skill/bolan2.mp3', + 'audio/skill/changbiao1.mp3', + 'audio/skill/changbiao2.mp3', + 'audio/skill/guanxing_ol_jiangwei1.mp3', + 'audio/skill/guanxing_ol_jiangwei2.mp3', + 'audio/skill/guanxu1.mp3', + 'audio/skill/guanxu2.mp3', + 'audio/skill/juxiang1_ol_zhurong1.mp3', + 'audio/skill/juxiang1_ol_zhurong2.mp3', + 'audio/skill/lieren_ol_zhurong1.mp3', + 'audio/skill/lieren_ol_zhurong2.mp3', + 'audio/skill/olzhiji1.mp3', + 'audio/skill/olzhiji2.mp3', + 'audio/skill/tiaoxin_ol_jiangwei1.mp3', + 'audio/skill/tiaoxin_ol_jiangwei2.mp3', + 'audio/skill/yashi1.mp3', + 'audio/skill/yashi2.mp3', + 'audio/skill/yifa1.mp3', + 'audio/skill/yifa2.mp3', 'audio/voice/male/0.mp3', 'audio/voice/male/1.mp3', @@ -3412,6 +3436,7 @@ window.noname_asset_list=[ 'image/card/miki_hydrogladiator.png', 'image/card/hina_shenji.png', 'image/card/miki_binoculars.png', + 'image/card/zhaoshu.png', 'image/card/bagua.png', 'image/card/baihupifeng.png', diff --git a/game/update.js b/game/update.js index 1314b643e..e8b24f6bb 100644 --- a/game/update.js +++ b/game/update.js @@ -1,10 +1,9 @@ window.noname_update={ - version:'1.9.110.8.3', - update:'1.9.110.8.2', + version:'1.9.110.8.3.1', + update:'1.9.110.8.3', changeLog:[ - '天王寺瑚太朗', - '界于禁、界郭淮、界关平', - '华歆、糜芳傅士仁、董承、胡车儿、唐姬、杨婉、张横', + '国战石苞', + '诏书', 'bug修复', ], files:[ diff --git a/image/card/zhaoshu.png b/image/card/zhaoshu.png new file mode 100644 index 000000000..21407ea45 Binary files /dev/null and b/image/card/zhaoshu.png differ diff --git a/mode/guozhan.js b/mode/guozhan.js index 04555a0c1..0093524bf 100644 --- a/mode/guozhan.js +++ b/mode/guozhan.js @@ -158,9 +158,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ game.chooseCharacter(); } "step 2" - game.broadcastAll(function(){ - lib.inpile.removeArray(['gz_haolingtianxia','gz_kefuzhongyuan','gz_guguoanbang','gz_wenheluanwu']); - }); + //game.broadcastAll(function(){ + // lib.inpile.removeArray(['gz_haolingtianxia','gz_kefuzhongyuan','gz_guguoanbang','gz_wenheluanwu']); + //}); if(ui.coin){ _status.coinCoeff=get.coinCoeff([game.me.name1,game.me.name2]); } @@ -264,11 +264,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ '4':[ 'gz_re_lidian','gz_yuejin','gz_huangzhong', 'gz_menghuo','gz_sunshangxiang','gz_lvmeng', - 'gz_lvbu','gz_shibao', + 'gz_lvbu', ], '3':[ 'gz_simayi','gz_luxun','gz_wuguotai', - 'gz_caiwenji', + 'gz_caiwenji','gz_shibao', ], '2':[ 'gz_re_lusu','gz_zhangzhang', @@ -295,7 +295,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ 'gz_weiyan','gz_huangyueying','gz_zhugeliang', 'gz_lingtong','gz_sunshangxiang','gz_sunce', 'gz_re_yuanshao','gz_yuanshu','gz_hetaihou', - 'gz_jin_simashi','gz_sp_duyu', + 'gz_jin_simashi','gz_sp_duyu','gz_shibao', ], '6':[ 'gz_zhenji','gz_guojia','gz_yujin', @@ -311,7 +311,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ 'gz_zhangxiu','gz_liqueguosi','gz_huatuo', 'gz_zhanghuyuechen','gz_re_xushu','gz_mifangfushiren', 'gz_wujing','gz_weiguan','gz_miheng', - 'gz_shibao', ], '4':[ 'gz_dianwei','gz_dengai','gz_xunyu', @@ -512,7 +511,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ gz_zhanghuyuechen:['male','jin',4,['xijue']], gz_jin_yanghuiyu:['female','jin',3,['ciwei','caiyuan']], gz_simazhou:['male','jin',4,['caiwang','naxiang']], - gz_shibao:['male','jin',4,['zhuosheng']], + gz_shibao:['male','jin',4,['gzzhuosheng']], gz_weiguan:['male','jin',3,['zhongyun','shenpin']], gz_zhongyan:['female','jin',3,['bolan','yifa']], @@ -520,6 +519,123 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ } }, skill:{ + gzzhuosheng:{ + trigger:{global:'damageEnd'}, + logTarget:'player', + filter:function(event,player){ + return event.player.isFriendOf(player); + }, + content:function(){ + var target=trigger.player; + target.addTempSkill('gzzhuosheng2',{player:'phaseJieshuBegin'}); + target.draw().gaintag=['gzzhuosheng2']; + }, + }, + gzzhuosheng2:{ + onremove:function(player,skill){ + player.removeGaintag(skill); + }, + mod:{ + targetInRange:function(card,player,target){ + if(!card.cards||get.type(card)!='basic') return; + for(var i of card.cards){ + if(i.hasGaintag('gzzhuosheng2')) return (game.online?player==_status.currentPhase:player.isPhaseUsing()); + } + }, + cardUsable:function(card,player,target){ + if(!card.cards||get.type(card)!='basic'||!(game.online?player==_status.currentPhase:player.isPhaseUsing())) return; + for(var i of card.cards){ + if(i.hasGaintag('gzzhuosheng2')) return Infinity; + } + }, + aiOrder:function(player,card,num){ + if(get.itemtype(card)=='card'&&card.hasGaintag('gzzhuosheng2')&&get.type(card)=='basic') return num-0.1; + }, + }, + trigger:{player:'useCard2'}, + direct:true, + filterx:function(event,player){ + if(!player.isPhaseUsing()) return false; + return player.getHistory('lose',function(evt){ + if(evt.getParent()!=event) return false; + for(var i in evt.gaintag_map){ + if(evt.gaintag_map[i].contains('gzzhuosheng2')) return true; + } + return false; + }).length>0; + }, + filter:function(event,player){ + if(!lib.skill.gzzhuosheng2.filterx(event,player)) return false; + if(get.type(event.card)!='trick') return false; + if(event.targets&&event.targets.length>0) return true; + var info=get.info(event.card); + if(info.allowMultiple==false) return false; + if(event.targets&&!info.multitarget){ + if(game.hasPlayer(function(current){ + return !event.targets.contains(current)&&lib.filter.targetEnabled2(event.card,player,current)&&lib.filter.targetInRange(event.card,player,current); + })){ + return true; + } + } + return false; + }, + content:function(){ + 'step 0' + var prompt2='为'+get.translation(trigger.card)+'增加或减少一个目标' + player.chooseTarget(get.prompt('gzzhuosheng2'),function(card,player,target){ + var player=_status.event.player; + if(_status.event.targets.contains(target)) return true; + return lib.filter.targetEnabled2(_status.event.card,player,target)&&lib.filter.targetInRange(_status.event.card,player,target); + }).set('prompt2',prompt2).set('ai',function(target){ + var trigger=_status.event.getTrigger(); + var player=_status.event.player; + return get.effect(target,trigger.card,player,player)*(_status.event.targets.contains(target)?-1:1); + }).set('targets',trigger.targets).set('card',trigger.card); + 'step 1' + if(result.bool){ + if(!event.isMine()&&!event.isOnline()) game.delayx(); + event.targets=result.targets; + } + else{ + event.finish(); + } + 'step 2' + if(event.targets){ + player.logSkill('gzzhuosheng2',event.targets); + if(trigger.targets.contains(event.targets[0])) trigger.targets.removeArray(event.targets); + else trigger.targets.addArray(event.targets); + } + }, + group:['gzzhuosheng2_equip','gzzhuosheng2_silent'], + subSkill:{ + equip:{ + audio:'gzzhuosheng2', + trigger:{player:'useCard'}, + filter:function(event,player){ + return get.type(event.card)=='equip'&&lib.skill.gzzhuosheng2.filterx(event,player); + }, + prompt:'是否发动【擢升】摸一张牌?', + content:function(){ + player.draw(); + }, + }, + silent:{ + trigger:{ + player:'useCard1', + }, + silent:true, + firstDo:true, + filter:function(event,player){ + return get.type(event.card)=='basic'&&lib.skill.gzzhuosheng2.filterx(event,player)&&event.addCount!==false; + }, + content:function(){ + trigger.addCount=false; + var stat=player.getStat(); + if(stat&&stat.card&&stat.card[trigger.card.name]) stat.card[trigger.card.name]--; + }, + }, + }, + }, gzzhuhai:{ audio:'zhuhai', audioname:['gz_re_xushu'], @@ -551,8 +667,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ unequip_ai:true, skillTagFilter:function(player,tag,arg){ var evt=_status.event.getParent(); - if(evt.name!='gzzhuhai') return false; - if(!target.getHistory('sourceDamage',function(evt){ + if(evt.name!='gzzhuhai'||!arg||!arg.target) return false; + if(!arg.target.getHistory('sourceDamage',function(evt){ return evt.player.sameIdentityAs(player); }).length) return false; return true; @@ -3184,13 +3300,16 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ return current.isFriendOf(player)||current.isUnseen(); }).sort(lib.sort.seat); event.num=0; + event.filterName=function(name){ + return lib.character[name][1]==player.identity&&!get.is.double(name); + } 'step 2' if(num1) event.current.chooseControl(['主将','副将']).set('ai',function(){ if(player.name1=='gz_fazheng') return 0; if(player.name2=='gz_fazheng') return 1; @@ -8962,6 +9081,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ gzjiancai_info:'副将技,此武将牌上单独的阴阳鱼个数-1。与你势力相同的角色即将受到伤害而进入濒死状态时,你可以防止此伤害,若如此做,你须变更副将;与你势力相同的角色变更副将时,其额外获得两张备选武将牌。', gzzhuhai:'诛害', gzzhuhai_info:'其他角色的结束阶段开始时,若其本回合内造成过伤害,则你可以对其使用一张【杀】(无距离限制)。若其本回合内对与你势力相同的角色造成过伤害,则此【杀】无视防具,且当其抵消此【杀】后,其须弃置一张牌。', + gzzhuosheng:'擢升', + gzzhuosheng2:'擢升', + gzzhuosheng_info:'当一名与你势力相同的角色受到伤害后,你可令其摸一张牌。然后直到其下个结束阶段前,其使用此牌根据类型执行以下效果:1. 基本牌,不计入次数且无距离限制;2. 普通锦囊牌,此牌目标可+1或-1;3. 装备牌,可摸1张牌。', gz_tangzi:'唐咨', gz_mengda:'孟达', @@ -9023,9 +9145,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ gzjieyue:'节钺', gzjieyue_info:'准备阶段开始时,你可以将一张手牌交给一名非魏势力角色,然后选择一个“军令”并令其选择一项:执行该军令,然后你摸一张牌;或令你于此回合摸牌阶段额外摸三张牌。', gz_wangping:'王平', - - jianglue:'将略', - jianglue_info:'限定技,出牌阶段,你可以选择一个“军令”,然后与你势力相同的其他角色可以执行该军令(未确定势力角色可以在此时明置一张武将牌)。你与所有执行该军令的角色增加一点体力上限,然后回复一点体力,然后你摸X张牌(X为以此法回复了体力的角色数)。', + jianglue:'将略', + jianglue_info:'限定技,出牌阶段,你可以选择一个“军令”,然后与你势力相同的其他角色可以执行该军令(未确定势力角色可以在此时明置一张单势力武将牌)。你与所有执行该军令的角色增加一点体力上限,然后回复一点体力,然后你摸X张牌(X为以此法回复了体力的角色数)。', gz_fazheng:'法正', gzxuanhuo:'眩惑', gzxuanhuo_info:'与你势力相同的其他角色的出牌阶段限一次,其可弃置一张手牌,然后选择获得以下一项技能直到回合结束:〖武圣〗、〖咆哮〗、〖龙胆〗、〖铁骑〗、〖烈弓〗、〖狂骨〗。', @@ -9722,10 +9843,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ ['diamond',6,'dinglanyemingzhu'], ['heart',13,'liulongcanjia'], - ['spade',12,'gz_haolingtianxia'], - ['diamond',1,'gz_kefuzhongyuan'], - ['heart',1,'gz_guguoanbang'], - ['club',12,'gz_wenheluanwu'], + //['spade',12,'gz_haolingtianxia'], + //['diamond',1,'gz_kefuzhongyuan'], + //['heart',1,'gz_guguoanbang'], + //['club',12,'gz_wenheluanwu'], ], element:{ content:{