diff --git a/audio/die/dc_jiben.mp3 b/audio/die/dc_jiben.mp3 new file mode 100644 index 000000000..5228d050d Binary files /dev/null and b/audio/die/dc_jiben.mp3 differ diff --git a/audio/die/licaiwei.mp3 b/audio/die/licaiwei.mp3 new file mode 100644 index 000000000..dc5e72465 Binary files /dev/null and b/audio/die/licaiwei.mp3 differ diff --git a/audio/die/tw_wangchang.mp3 b/audio/die/tw_wangchang.mp3 new file mode 100644 index 000000000..3c8c3cf66 Binary files /dev/null and b/audio/die/tw_wangchang.mp3 differ diff --git a/audio/skill/lieyi1.mp3 b/audio/skill/lieyi1.mp3 new file mode 100644 index 000000000..94f8d93a3 Binary files /dev/null and b/audio/skill/lieyi1.mp3 differ diff --git a/audio/skill/lieyi2.mp3 b/audio/skill/lieyi2.mp3 new file mode 100644 index 000000000..ab93edf98 Binary files /dev/null and b/audio/skill/lieyi2.mp3 differ diff --git a/audio/skill/qibie1.mp3 b/audio/skill/qibie1.mp3 new file mode 100644 index 000000000..c8cf3cd9d Binary files /dev/null and b/audio/skill/qibie1.mp3 differ diff --git a/audio/skill/qibie2.mp3 b/audio/skill/qibie2.mp3 new file mode 100644 index 000000000..774bfc933 Binary files /dev/null and b/audio/skill/qibie2.mp3 differ diff --git a/audio/skill/twkaiji1.mp3 b/audio/skill/twkaiji1.mp3 new file mode 100644 index 000000000..22eb86e9f Binary files /dev/null and b/audio/skill/twkaiji1.mp3 differ diff --git a/audio/skill/twkaiji2.mp3 b/audio/skill/twkaiji2.mp3 new file mode 100644 index 000000000..bb43edc99 Binary files /dev/null and b/audio/skill/twkaiji2.mp3 differ diff --git a/audio/skill/twshepan1.mp3 b/audio/skill/twshepan1.mp3 new file mode 100644 index 000000000..a7a151869 Binary files /dev/null and b/audio/skill/twshepan1.mp3 differ diff --git a/audio/skill/twshepan2.mp3 b/audio/skill/twshepan2.mp3 new file mode 100644 index 000000000..8c4f9c8f8 Binary files /dev/null and b/audio/skill/twshepan2.mp3 differ diff --git a/audio/skill/xunli1.mp3 b/audio/skill/xunli1.mp3 new file mode 100644 index 000000000..e883adcd8 Binary files /dev/null and b/audio/skill/xunli1.mp3 differ diff --git a/audio/skill/xunli2.mp3 b/audio/skill/xunli2.mp3 new file mode 100644 index 000000000..7685cad7d Binary files /dev/null and b/audio/skill/xunli2.mp3 differ diff --git a/audio/skill/yijiao1.mp3 b/audio/skill/yijiao1.mp3 new file mode 100644 index 000000000..7a527b170 Binary files /dev/null and b/audio/skill/yijiao1.mp3 differ diff --git a/audio/skill/yijiao2.mp3 b/audio/skill/yijiao2.mp3 new file mode 100644 index 000000000..2989e842f Binary files /dev/null and b/audio/skill/yijiao2.mp3 differ diff --git a/audio/skill/zhishi1.mp3 b/audio/skill/zhishi1.mp3 new file mode 100644 index 000000000..81974cdf0 Binary files /dev/null and b/audio/skill/zhishi1.mp3 differ diff --git a/audio/skill/zhishi2.mp3 b/audio/skill/zhishi2.mp3 new file mode 100644 index 000000000..ff8e17a14 Binary files /dev/null and b/audio/skill/zhishi2.mp3 differ diff --git a/character/diy.js b/character/diy.js index 5febf5e38..6c9d42ab8 100755 --- a/character/diy.js +++ b/character/diy.js @@ -737,7 +737,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ logTarget:'player', content:function(){ 'step 0' - var index=event.player.getHistory('useCard',function(evt){ + var index=trigger.player.getHistory('useCard',function(evt){ return evt.targets.contains(player); }).indexOf(trigger.getParent()); if(index==2){ @@ -757,15 +757,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{player:'phaseJieshuBegin'}, direct:true, filter:function(event,player){ - return player.group=='key'&&player.hasHistory('useCard',function(evt){ - return evt.card.name=='sha'||(get.type(evt.card)=='trick'&&get.tag(evt.card,'damage')>0); - }); + return player.group=='key'; }, content:function(){ 'step 0' var num=player.getHistory('useCard',function(evt){ return evt.card.name=='sha'||(get.type(evt.card)=='trick'&&get.tag(evt.card,'damage')>0); - }).length; + }).length+1; player.chooseTarget(get.prompt('liyingxia_zhenjun'),[1,num],'令至多'+get.cnNumber(num)+'名角色各摸一张牌').set('ai',(serafu)=>get.attitude(_status.event.player,serafu)); 'step 1' if(result.bool){ @@ -15707,7 +15705,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ liyingxia_sanli:'三礼', liyingxia_sanli_info:'锁定技。其他角色于其回合内前两次使用牌指定你为目标后,你摸一张牌;第三次使用牌指定你为目标后,你交给其一张牌。', liyingxia_zhenjun:'振军', - liyingxia_zhenjun_info:'键势力技。结束阶段,你可以令至多X名角色各摸一张牌,且这些角色于自己的下个回合内第一次造成的伤害+1(X为你本回合内使用【杀】和伤害性锦囊牌的次数)。', + liyingxia_zhenjun_info:'键势力技。结束阶段,你可以令至多X+1名角色各摸一张牌,且这些角色于自己的下个回合内第一次造成的伤害+1(X为你本回合内使用【杀】和伤害性锦囊牌的次数)。', liyingxia_wumai:'武脉', liyingxia_wumai_info:'蜀势力技。一轮游戏开始时,你可以选择获得其中一个未选择过的技能直到本轮结束:〖八阵〗/〖集智〗/〖观星〗/〖游龙〗。若均已选择过,则你可以摸X张牌(X为场上已受伤的角色数且至多为3)。', erika_shisong:'识诵', diff --git a/character/extra.js b/character/extra.js index cd184be48..1867a7a20 100755 --- a/character/extra.js +++ b/character/extra.js @@ -44,7 +44,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ shen_ganning:["male","shen","3/6",["drlt_poxi","drlt_jieying"],["wu"]], ol_zhangliao:['male','shen',4,['olduorui','olzhiti'],['wei']], shen_caopi:['male','shen',5,['chuyuan','dengji'],['wei']], - shen_zhenji:['female','shen',4,['shenfu','qixian'],['wei']], + shen_zhenji:['female','shen',3,['shenfu','qixian'],['wei']], boss_zhaoyun:['male','shen',1,['boss_juejing','xinlonghun','zhanjiang'],['shu']], }, characterIntro:{ diff --git a/character/mobile.js b/character/mobile.js index 3de60a707..65b20c9f5 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -8930,14 +8930,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter:function(button,player){ return _status.event.getParent().filterCard({name:button.link[2]},player,_status.event.getParent()); }, - check:function(button){ - var player=_status.event.player; - if(player.countCards('hs',button.link[2])>0) return 0; - if(['wugu','zhulu_card'].contains(button.link[2])) return 0; - var effect=player.getUseValue(button.link[2]); - if(effect>0) return effect; - return 0; - }, check:function(button){ if(_status.event.getParent().type!='phase') return 1; var player=_status.event.player; @@ -15789,7 +15781,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sufei:['sp_sufei','xf_sufei'], jiakui:['jiakui','old_jiakui'], shenpei:['shenpei','sp_shenpei'], - wangcan:['wangcan','sp_wangcan'], + wangcan:['tw_wangcan','wangcan','sp_wangcan'], sunshao:['sp_sunshao','sunshao'], xunchen:['re_xunchen','xunchen','sp_xunchen'], xinpi:['xinpi','sp_xinpi'], @@ -15800,6 +15792,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ huaman:['huaman','sp_huaman'], gaolan:['gaolan','sp_gaolan'], cuiyan:['sp_cuiyan','cuiyan'], + wujing:['tw_wujing','wujing'], }, translate:{ liuzan:'手杀留赞', @@ -15985,7 +15978,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ reqianxin:'遣信', reqianxin_info:'出牌阶段限一次,你可将至多两张手牌随机交给等量的其他角色,称为「信」。这些角色的准备阶段开始时,若其手牌中有「信」,则其选择一项:令你摸两张牌,本回合手牌上限-2。', rebiaozhao:"表召", - "rebiaozhao_info":"结束阶段,你可以将一张牌置于武将牌上,称为「表」。当有一张与「表」点数相同的牌进入弃牌堆时,你将「表」置入弃牌堆并失去1点体力。准备阶段,若你的武将牌上有「表」,则你移去「表」并选择一名角色,该角色回复1点体力并摸三张牌。", + "rebiaozhao_info":"结束阶段,你可以将一张牌置于武将牌上,称为「表」。当有一张与「表」点数相同的牌进入弃牌堆后,你将「表」置入弃牌堆并失去1点体力。准备阶段,若你的武将牌上有「表」,则你移去「表」并选择一名角色,该角色回复1点体力并摸三张牌。", "rebiaozhao2":"表召", "rebiaozhao2_info":"", "rebiaozhao3":"表召", @@ -16064,7 +16057,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ zhengjing_info:'出牌阶段,你可以整理卡牌。然后,你将整理出的卡牌中的至少一张作为“经”置于一名角色的武将牌上,然后获得其余的牌。该角色的准备阶段获得这些牌,且跳过此回合的判定和摸牌阶段。', zhengjing2:'整经', - mobile_yijiang:'武将设计征集大赛', + mobile_yijiang:'将星独具', yj_zhanghe:'☆张郃', yj_zhangliao:'☆张辽', yj_xuhuang:'☆徐晃', diff --git a/character/offline.js b/character/offline.js index 057c7bd6b..2ac2194fb 100644 --- a/character/offline.js +++ b/character/offline.js @@ -2610,7 +2610,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ nskuishe_info:'出牌阶段限一次,你可以选择一名其他角色A的一张牌,并将此牌交给不为A的一名角色。然后A可以对你使用一张【杀】。', sp_xiahoushi:"SP夏侯氏", xinfu_yanyu:"燕语", - xinfu_yanyu_info:"一名角色的出牌阶段开始时,你可以弃置一张牌。若如此做,则该出牌阶段内,当有与你弃置的牌类别相同的其他牌进入弃牌堆时,你可令任意一名角色获得此牌。每阶段以此法获得的牌不能超过三张。", + xinfu_yanyu_info:"一名角色的出牌阶段开始时,你可以弃置一张牌。若如此做,则该出牌阶段内,当有与你弃置的牌类别相同的其他牌进入弃牌堆后,你可令任意一名角色获得此牌。每阶段以此法获得的牌不能超过三张。", xinfu_yanyu2:"燕语", xinfu_xiaode:"孝德", xinfu_xiaode_info:"其他角色死亡后,你可以声明该角色武将牌上的一个技能(主公技、觉醒技、隐匿技、使命技除外)。若如此做,你获得此技能且不能再发动〖孝德〗直到你的回合结束。", diff --git a/character/rank.js b/character/rank.js index 95c0e4754..77f219af0 100644 --- a/character/rank.js +++ b/character/rank.js @@ -764,6 +764,10 @@ window.noname_character_rank={ 're_zhanghe', 'wufan', 'yanfuren', + 'tw_wangcan', + 'tw_wangchang', + 'jin_jiachong', + 'licaiwei', ], b:[ 'diy_feishi', @@ -985,6 +989,7 @@ window.noname_character_rank={ 'tw_caocao', 'xin_wuguotai', 'dc_xushu', + 'dc_jiben', ], bm:[ 'diy_xizhenxihong', @@ -1142,6 +1147,7 @@ window.noname_character_rank={ 'peixiu', 'haomeng', 'mamidi', + 'tw_wujing', ], c:[ 'xiahoudun', @@ -1897,6 +1903,10 @@ window.noname_character_rank={ 'jin_yanghu', 'qinghegongzhu', 'tw_guohuai', + 'tw_wangcan', + 'tw_wangchang', + 'licaiwei', + 'jin_jiachongp', ], junk:[ 'sunshao', diff --git a/character/refresh.js b/character/refresh.js index a385a9ec5..dc3fb8777 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -221,7 +221,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, check:function(event,player){ return game.countPlayer(function(current){ - if(target==player||target.countGainableCards(player,'h')==0) return false; + if(current==player||current.countGainableCards(player,'h')==0) return false; var att=get.attitude(player,current); if(current.hasSkill('tuntian')) return att>0; return att<1; @@ -11458,7 +11458,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ jianyan_info:'出牌阶段限一次,你可以声明一种牌的类别或颜色,并亮出牌库中第一张符合你声明的牌,然后你令一名男性角色获得此牌', rekurou_info:'出牌阶段限一次,你可以弃置一张牌,然后失去1点体力。', zhaxiang_info:'锁定技 每当你失去1点体力后,你摸三张牌。然后若此时是你的出牌阶段,则直到回合结束,你使用红色【杀】无距离限制且不能被【闪】响应,你可以额外使用一张【杀】。', - qiaomeng_info:'当你使用黑色【杀】对一名角色造成伤害后,你可以弃置该角色装备区里的一张牌,若此牌是坐骑牌,你于此牌置入弃牌堆时获得之。', + qiaomeng_info:'当你使用黑色【杀】对一名角色造成伤害后,你可以弃置该角色装备区里的一张牌,若此牌是坐骑牌,你于此牌置入弃牌堆后获得之。', reyicong_info:'锁定技,你计算与其他角色的距离时-1。若你的体力值不大于2,则其他角色计算与你的距离时+1。', refankui_info:'每当你受到1点伤害后,你可以获得伤害来源的一张牌。', retieji_info:'当你使用【杀】指定一名角色为目标后,你可以进行一次判定并令该角色的非锁定技失效直到回合结束,除非该角色弃置一张与判定结果花色相同的牌,否则不能使用【闪】抵消此【杀】。', @@ -11561,7 +11561,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ reluoying:'落英', reluoying_discard:'落英', reluoying_judge:'落英', - reluoying_info:'当其他角色的梅花牌因弃置或判定而进入弃牌堆时,你可以获得之。', + reluoying_info:'当其他角色的梅花牌因弃置或判定而进入弃牌堆后,你可以获得之。', rejiushi:'酒诗', rejiushi_info:'当你需要使用【酒】时,若你的武将牌正面向上,你可以翻面,视为使用一张【酒】。当你受到伤害后,若你的武将牌背面向上,你可以翻面并获得牌堆中的一张随机锦囊。', rejiushi1:'酒诗', @@ -11653,7 +11653,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ rejunxing_info:'出牌阶段限一次,你可以弃置任意张手牌并选择一名其他角色。该角色选择一项:1.弃置X张牌并失去1点体力。2.翻面并摸X张牌。(X为你弃置的牌数)', re_gongsunzan:'界公孙瓒', reqiaomeng:'趫猛', - reqiaomeng_info:'当你使用【杀】对一名角色造成伤害后,你可以弃置该角色区域内的一张牌。若此牌是坐骑牌,你于此牌置入弃牌堆时获得之。', + reqiaomeng_info:'当你使用【杀】对一名角色造成伤害后,你可以弃置该角色区域内的一张牌。若此牌为坐骑牌,则你于此弃置事件结算结束后获得此牌。', ol_dengai:'界邓艾', oltuntian:'屯田', olzaoxian:'凿险', diff --git a/character/shenhua.js b/character/shenhua.js index 0d6fbaf26..6fb53fa36 100755 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -1666,10 +1666,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player:'useCardAfter' }, filter:function(event,player){ - if(event.card.name!='sha') return false; + if(event.card.name!='sha'||player.group!='wu') return false; if(player.hasSkill('nzry_lijun2')) return false; - if(player.group!='wu') return false; - if(_status.currentPhase!=player) return false; + if(!player.isPhaseUsing()) return false; if(!game.hasPlayer(function(target){ return player!=target&&target.hasZhuSkill('nzry_lijun',player); })) return false; @@ -7432,7 +7431,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xinshensu:'神速', xinshensu_info:'你可以选择一至三项:1. 跳过判定阶段和摸牌阶段;2. 跳过出牌阶段并弃置一张装备牌;3. 跳过弃牌阶段并将你的武将牌翻面。你每选择一项,视为你对一名其他角色使用一张没有距离限制的【杀】', yinghun:'英魂', - yinghun_info:'准备阶段开始时,若你已受伤,你可令一名其他角色执行一项:摸X张牌,然后弃置一张牌;或摸一张牌,然后弃置X张牌(X为你已损失的体力值)', + yinghun_info:'准备阶段开始时,你可令一名其他角色执行一项:摸X张牌,然后弃置一张牌;或摸一张牌,然后弃置X张牌(X为你已损失的体力值)', gzyinghun:'英魂', gzyinghun_info:'准备阶段开始时,若你已受伤,你可令一名其他角色执行一项:摸X张牌,然后弃置一张牌;或摸一张牌,然后弃置X张牌(X为你已损失的体力值)', @@ -7543,7 +7542,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ huoshou_info:'锁定技,【南蛮入侵】对你无效;你视为所有【南蛮入侵】的伤害来源。', zaiqi_info:'摸牌阶段,若你已受伤,则你可以改为展示牌堆顶的X张牌(X为你已损失的体力值),并回复X点体力(X为其中♥牌的数目)。然后你将这些♥牌置入弃牌堆,并获得其余的牌。', zaiqixx_info:'摸牌阶段,若你已受伤,则你可以改为展示牌堆顶的X张牌(X为你已损失的体力值+1),并回复X点体力(X为其中♥牌的数目)。然后你将这些♥牌置入弃牌堆,并获得其余的牌。', - juxiang_info:'锁定技,【南蛮入侵】对你无效。其他角色使用的【南蛮入侵】结算后进入弃牌堆时,你获得之。', + juxiang_info:'锁定技。①【南蛮入侵】对你无效。②其他角色使用的【南蛮入侵】结算结束后,你获得此牌对应的所有实体牌。', lieren_info:'当你使用【杀】造成伤害后,可与受到该伤害的角色进行拼点;若你赢,你获得对方的一张牌。', xingshang_info:'当有角色死亡后,你可以获得该角色的所有牌。', fangzhu_info:'当你受到伤害后,你可令一名其他角色摸X张牌(X为你已损失的体力值),然后该角色将武将牌翻面。', diff --git a/character/sp.js b/character/sp.js index 35d682d90..3c5d080dd 100755 --- a/character/sp.js +++ b/character/sp.js @@ -6,7 +6,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ characterSort:{ sp:{ sp_tianji:["sunhao","liuxie","caoang","hetaihou","sunluyu",'ol_wangrong',"zuofen","ganfuren","ol_bianfuren","qinghegongzhu"], - sp_sibi:["yangxiu","chenlin","chengyu","shixie","fuwan","wangyun","zhugejin","simalang","maliang","buzhi","dongyun","kanze","sunqian","xizhicai","sunshao",'duxi',"jianggan",'ol_dengzhi','ol_yangyi','ol_dongzhao','ol_chendeng'], + sp_sibi:["yangxiu","chenlin","chengyu","shixie","fuwan","wangyun","zhugejin","simalang","maliang","buzhi","dongyun","kanze","sunqian","xizhicai","sunshao",'duxi',"jianggan",'ol_dengzhi','ol_yangyi','ol_dongzhao','ol_chendeng','jin_yanghu'], sp_tianzhu:["wutugu","yanbaihu","shamoke","panfeng","zhugedan",'huangzu','gaogan',"tadun"], sp_nvshi:["lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu','ol_xinxianying',"daxiaoqiao"], sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan'], @@ -28,6 +28,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, character:{ + jin_yanghu:['male','jin',4,['huaiyuan','chongxin','dezhang']], qinghegongzhu:['female','wei',3,['zengou','qhzhangji']], fanjiangzhangda:['male','wu',4,['yuanchou','juesheng']], tianyu:['male','wei',4,['saodi','zhuitao']], @@ -294,7 +295,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ characterTitle:{}, perfectPair:{ yuejin:['re_lidian'], - zhugejin:['zhugeke'], + zhugejin:['zhugeke','sunquan'], guanyinping:['guanyu'], zhangxingcai:['liushan'], fuwan:['fuhuanghou'], @@ -1647,13 +1648,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){ event.target=target; if(target.isIn()&&player.canUse('sha',target,false)) player.chooseBool('狷狭:是否视为对'+get.translation(target)+'依次使用'+get.cnNumber(player.storage.oljuanxia_counter[target.playerid])+'张【杀】?').set('goon',get.effect(target,{name:'sha'},player,player)>0).set('ai',()=>_status.event.goon); 'step 2' - if(result.bool){ - for(var i=0;i0) event.redo(); + else if(event.num锦囊牌:“诔”标记。当拥有者进入濒死状态时,其可弃置所有“诔”,将体力回复至1点并摸1张牌。
装备牌:“赋”标记。拥有者的出牌阶段开始时,其可弃置所有“赋”,弃置一名角色区域内的至多两张牌,然后可令其摸一张牌。
基本牌:“颂”标记。当使用者使用仅指定一个目标的【杀】时,其可弃置“颂”,为此【杀】增加至多两个目标。', lisi:'离思', - lisi_info:'每当你于回合外使用牌的置入弃牌堆时,你可将其交给一名手牌数不大于你的其他角色。', + lisi_info:'当你于回合外使用的牌结算结束后,你可将其交给一名手牌数不大于你的其他角色。', ol_yangyi:'杨仪', oljuanxia:'狷狭', oljuanxia_info:'结束阶段,你可选择一名其他角色,并依次视为对其使用至多两种单目标普通锦囊牌。然后其下回合结束时,可视为对你使用等量的【杀】。', diff --git a/character/sp2.js b/character/sp2.js index 894d71350..ca7bb8d59 100644 --- a/character/sp2.js +++ b/character/sp2.js @@ -4,6 +4,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ name:'sp2', connect:true, character:{ + dc_jiben:['male','qun',3,['xunli','zhishi','lieyi']], + licaiwei:['female','wei',3,['yijiao','qibie']], mamidi:['male','qun','4/6',['bingjie','zhengding']], re_fengfangnv:['female','qun',3,['tiqi','baoshu']], wufan:['male','wu',4,['tianyun','wfyuyan']], @@ -137,17 +139,296 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sp_xuzhou:['re_taoqian','caosong','zhangmiao','qiuliju'], sp_zhongyuan:['re_hucheer','re_zoushi','caoanmin','re_dongcheng'], sp_xiaohu:['haomeng','yanfuren'], - sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','re_dongzhao','yangwan','re_panshu','dufuren','zhouyi','caojinyu','re_sunyi','re_zhangbao','re_fengfangnv','mamidi'], + sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','re_dongzhao','yangwan','re_panshu','dufuren','zhouyi','caojinyu','re_sunyi','re_zhangbao','re_fengfangnv','mamidi','dc_jiben','licaiwei'], } }, skill:{ + //吉本 + xunli:{ + audio:2, + trigger:{global:'loseAfter'}, + forced:true, + filter:function(event,player){ + if(event.type!='discard'||player.getExpansions('xunli').length>=9) return false; + for(var i of event.cards){ + if(get.color(i,event.cards2.contains(i)?event.player:false)=='black') return true; + } + return false; + }, + content:function(){ + 'step 0' + var num=9-player.getExpansions('xunli').length; + var cards=[]; + for(var i of trigger.cards){ + if(get.color(i,trigger.cards2.contains(i)?trigger.player:false)=='black') cards.push(i); + } + if(cards.length<=num) event._result={ + bool:true, + links:cards, + } + else player.chooseButton(true,num,['寻疠:将'+get.cnNumber(num)+'张牌置于武将牌上',cards]).set('forceAuto',true).set('ai',function(button){ + return get.value(button.link,_status.event.player); + }); + 'step 1' + if(result.bool){ + player.addToExpansion('gain2',result.links).gaintag.add('xunli'); + } + }, + marktext:'疠', + intro:{ + content:'expansion', + markcount:'expansion', + }, + group:'xunli_exchange', + subSkill:{ + exchange:{ + audio:'xunli', + trigger:{player:'phaseUseBegin'}, + direct:true, + filter:function(event,player){ + return player.getExpansions('xunli').length>0&&player.hasCard((card)=>get.color(card,player)=='black','h'); + }, + content:function(){ + "step 0" + var cards=player.getExpansions('xunli'); + if(!cards.length||!player.countCards('h')){ + event.finish(); + return; + } + var next=player.chooseToMove('寻疠:是否交换“疠”和手牌?'); + next.set('list',[ + [get.translation(player)+'(你)的疠',cards], + ['手牌区',player.getCards('h',(card)=>get.color(card,player)=='black')], + ]); + next.set('filterMove',function(from,to){ + return typeof to!='number'; + }); + next.set('processAI',function(list){ + var player=_status.event.player; + var getv=function(card){ + if(get.info(card).toself) return 0; + return player.getUseValue(card,false); + }; + var cards=list[0][1].concat(list[1][1]).sort(function(a,b){ + return getv(b)-getv(a); + }),cards2=cards.splice(0,player.getExpansions('xunli').length); + return [cards2,cards]; + }); + "step 1" + if(result.bool){ + var pushs=result.moved[0],gains=result.moved[1]; + pushs.removeArray(player.getExpansions('xunli')); + gains.removeArray(player.getCards('h')); + if(!pushs.length||pushs.length!=gains.length) return; + player.logSkill('xunli_exchange'); + player.addToExpansion(pushs,player,'giveAuto').gaintag.add('xunli'); + game.log(player,'将',pushs,'作为“疠”置于武将牌上'); + player.gain(gains,'gain2'); + } + }, + }, + }, + }, + zhishi:{ + audio:2, + trigger:{player:'phaseJieshuBegin'}, + direct:true, + content:function(){ + 'step 0' + player.chooseTarget(get.prompt2('zhishi')).set('ai',function(target){ + var player=_status.event.player; + var att=get.attitude(player,target); + if(att<=4) return 0; + if(target.hasSkillTag('nogain')) att/=10; + return att; + }); + 'step 1' + if(result.bool){ + var target=result.targets[0]; + player.logSkill('zhishi',target); + player.storage.zhishi_mark=target; + player.addTempSkill('zhishi_mark',{player:'phaseBegin'}); + } + }, + ai:{expose:0.3}, + subSkill:{ + mark:{ + trigger:{ + global:['dying','useCardToTargeted'], + }, + direct:true, + charlotte:true, + filter:function(event,player){ + if(!player.getExpansions('xunli').length) return false; + var target=player.storage.zhishi_mark; + if(event.name=='dying') return event.player==target; + return event.card.name=='sha'&&event.target==target; + }, + content:function(){ + 'step 0' + var target=player.storage.zhishi_mark; + event.target=target; + player.chooseButton([get.prompt('zhishi',target),'
弃置任意张“疠”并令其摸等量的牌
',player.getExpansions('xunli')],[1,Infinity]).set('ai',function(button){ + var player=_status.event.player,target=player.storage.zhishi_mark; + if(target.hp<1&&target!=get.zhu(player)) return 0; + if(target.hasSkillTag('nogain')) return 0; + return 3-player.getUseValue(card,false); + }); + 'step 1' + if(result.bool){ + player.logSkill('zhishi',target); + player.loseToDiscardpile(result.links); + target.draw(result.links.length); + } + }, + mark:'character', + intro:{ + content:'决定帮助$,具体帮不帮另说', + }, + }, + }, + }, + lieyi:{ + enable:'phaseUse', + usable:1, + filter:function(event,player){ + return player.getExpansions('xunli').length>0; + }, + filterTarget:lib.filter.notMe, + content:function(){ + 'step 0' + var cards=player.getExpansions('xunli'); + var cards2=cards.filter(function(card){ + return target.isIn()&&player.canUse(card,target,false); + }); + if(cards2.length){ + player.chooseButton(['对'+get.translation(target)+'使用一张牌',cards2],true).set('ai',function(button){ + return get.order(button.link); + }); + } + else{ + event.finish(); + if(cards.length) player.loseToDiscardpile(cards); + if(target.isAlive()&&!target.hasHistory('damage',function(evt){ + return evt.getParent('lieyi')==event&&evt._dyinged; + })) player.loseHp(); + } + 'step 1' + player.useCard(result.links[0],target,false); + event.goto(0); + }, + ai:{ + order:2, + result:{ + target:function(player,target){ + var cards=player.getExpansions('xunli'); + var effect=0,damage=0; + for(var i of cards){ + if(player.canUse(i,target,false)){ + effect+=get.effect(target,i,player,target); + damage+=get.tag(i,'damage'); + } + } + if(damage>=target.hp) return effect; + if(player.hp>2&&cards.length>3) return effect/3; + return 0; + }, + }, + }, + }, + //李采薇 + yijiao:{ + audio:2, + enable:'phaseUse', + usable:1, + filter:function(event,player){ + return game.hasPlayer(function(current){ + return current!=player&&!current.hasMark('yijiao'); + }); + }, + filterTarget:function(card,player,target){ + return target!=player&&!target.hasMark('yijiao'); + }, + content:function(){ + 'step 0' + player.chooseControl('10个','20个','30个','40个').set('prompt','要令'+get.translation(target)+'获得多少标记?').set('ai',function(){ + var player=_status.event.player,target=_status.event.getParent().target; + if(get.attitude(player,target)<0&&game.hasPlayer(function(current){ + return current!=player&¤t!=target&&!current.hasMark('yijiao')&&get.attitude(player,current)<0; + })) return 3; + return 0; + }); + 'step 1' + target.addMark('yijiao',10*(1+result.index)); + }, + ai:{ + order:1.1, + result:{ + player:1, + target:-0.5, + }, + }, + group:'yijiao_effect', + subSkill:{ + effect:{ + trigger:{global:'phaseJieshuBegin'}, + forced:true, + filter:function(event,player){ + return event.player.isIn()&&event.player!=player&&event.player.hasMark('yijiao'); + }, + logTarget:'player', + content:function(){ + var target=trigger.player,num=target.countMark('yijiao'); + var num2=0; + target.getHistory('useCard',function(evt){ + var numz=get.number(evt.card); + if(typeof numz=='number') num2+=numz; + }); + if(num>num2){ + var hs=target.getCards('h',function(card){ + return lib.filter.cardDiscardable(card,target,'yijiao_effect'); + }); + if(hs.length) target.discard(hs.randomGet()); + } + else if(num==num2) target.insertPhase(); + else{ + player.draw(2); + target.removeMark('yijiao',num); + } + }, + }, + }, + intro:{ + onunmark:true, + name2:'异', + content:'mark', + }, + }, + qibie:{ + audio:2, + trigger:{global:'die'}, + filter:function(event,player){ + return player.countCards('h')>0&&!player.hasCard(function(card){ + return !lib.filter.cardDiscardable(card,player,'qibie'); + },'h'); + }, + check:function(event,player){ + return player.isDamaged()&&player.countCards('h','tao')3&&player.isDamaged()&&player.hasCard(function(card){ return game.hasPlayer(function(current){ - return current!=player&&get.attitude(player,current)<0&&player.canUse(card,current,null,true)&&get.effect(target,card,player,player)>0; + return current!=player&&get.attitude(player,current)<0&&player.canUse(card,current,null,true)&&get.effect(current,card,player,player)>0; })&&player.hasValueTarget(card); },'hs'); }, @@ -192,7 +473,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ //冯妤 tiqi:{ audio:2, - trigger:{global:'phaseDrawEnd'}, + trigger:{global:['phaseDrawEnd','phaseDrawSkipped','phaseDrawCancelled']}, filter:function(event,player){ if(player==event.player) return false; var num=0; @@ -214,7 +495,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.draw(num); 'step 1' if(trigger.player.isIn()){ - player.chooseControl(' +'+num+' ',' -'+num+' ','cancel').set('prompt','是否改变'+get.translation(trigger.player)+'本回合的手牌上限?').set('ai',function(){ + player.chooseControl(' +'+num+' ',' -'+num+' ','cancel2').set('prompt','是否改变'+get.translation(trigger.player)+'本回合的手牌上限?').set('ai',function(){ var sgn=get.sgn(get.attitude(_status.event.player,_status.event.getTrigger().player)); if(sgn==0) return 2; if(sgn==1) return 0; @@ -260,7 +541,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.chooseTarget([1,player.maxHp],get.prompt('baoshu'),'令至多'+get.cnNumber(player.maxHp)+'名角色重置武将牌并获得“梳”').set('ai',function(target){ var att=get.attitude(player,target); if(att<=0) return 0; - if(target.isTurnedOver()) return 3*att; + //if(target.isTurnedOver()) return 3*att; if(target.isLinked()&&get.effect(target,{name:'tiesuo'},player,player)>0) return 1.6*att; if(ui.selected.targets.length>=Math.sqrt(1+player.maxHp)) return 0; if(target!=player) return 1.3*att; @@ -288,15 +569,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } else if(target.isLinked()) target.link(); 'step 3' - if(!target.isIn()){ - if(num0).set('ai',()=>_status.event.goon); + player.chooseButton(['是否按“锦绘”规则使用其中一张牌?',cards]).set('ai',function(button){ + var player=_status.event.player,target=_status.event.getParent().target; + var card=button.link,targetx=lib.skill.jinhui.getUsableTarget(card,player,target); + return get.effect(targetx,card,player,player) + }); } else event.finish(); 'step 4' - if(!result.bool) event.finish(); - 'step 5' - for(var card of cards){ + if(result.bool){ + var card=result.links[0]; + cards.remove(card); var targetx=lib.skill.jinhui.getUsableTarget(card,player,target); if(targetx){ player.useCard(card,targetx,false,'noai'); - cards.remove(card); - if(cards.length) event.redo(); - break; } + if(cards.length) event.goto(3); } + else event.finish(); }, getUsableTarget:function(card,player,target){ var info=get.info(card,false); if(info.toself) return player.canUse(card,player,false)?player:false; - return (target.isIn&&player.canUse(card,target,false))?target:false; + return (target.isIn()&&player.canUse(card,target,false))?target:false; }, ai:{ order:5, @@ -1508,8 +1779,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var player=_status.event.player; var ph=player.countCards('h'); if(get.position(card)=='h') ph--; - var num=Math.min(_status.event.getTrigger().ph,5-ph); + var num=Math.min(_status.event.getTrigger().player.countCards('h'),5-ph); if(num>0) return 3.5*num+0.01-get.value(card); + return 0.01-get.value(card); }).logSkill=['mingluan',trigger.player]; 'step 1' if(result.bool){ @@ -2085,7 +2357,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, filter:function(event,player){ return event.source&&event.source==_status.currentPhase&&event.num==1&& - event.player!=event.source&&event.player.isIn()&&player.countCards('h')>0&& + event.player!=event.source&&event.player.isIn()&&player.countCards('he')>0&& event.source.getHistory('sourceDamage',function(evt){ return evt.player!=event.source; }).indexOf(event)==0; @@ -8322,6 +8594,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.chooseToDiscard('h',true); }, }, + refenyin_wufan:{audio:2}, //新岩泽(划掉)留赞 refenyin:{ audio:2, @@ -13011,6 +13284,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ haomeng:'郝萌(?-196年),东汉末年吕布帐下名将。建安元年(196年),郝萌在袁术的怂恿下反叛吕布,曾一度打得吕布躲入厕所。后来,被吕布部将高顺所阻,其部将曹性临阵反叛,最终被高顺所杀。在小说《三国演义》中,吕布被围下邳时,郝萌护送许汜王楷回城时,被张飞擒获,被曹操所杀。', wufan:'吴范(?-226年),字文则,会稽上虞(今浙江绍兴上虞区)人。三国时期孙吴官员,擅长术数。与刘惇、赵达、严武、曹不兴、皇象、宋寿和郑妪合称“吴中八绝”。吴范以推算天象节气和观察气候闻名于郡中。孙权起于东南,他委身事奉,每推算灾祥多应验,遂显名。孙权委以骑都尉,领太史令。初,孙权为将军时,他曾说江南有王气。及孙权立为吴王,论功行封,欲以为都亭侯,但因不愿将其术要诀告知孙权,为权所怨恨,被除名。黄武中,病死。', mamidi:'马日(mì)磾(dí)(?~194年),字翁叔。扶风茂陵(今陕西省兴平市)人。东汉中后期大臣,经学大师马融之族孙(一作族子)。马日磾年轻时即继承马融学说,以才学入仕。曾任谏议大夫,与蔡邕、卢植等人东观典校官藏的《五经》记传,并参与续写《东观汉记》。后历任射声校尉、太尉、太常等职。初平三年(192年),掌权的李傕任命马日磾为太傅、录尚书事,与太仆赵岐共同出使关东。他到寿春袁术处后,对其多有所求,遭袁术轻鄙,袁术遂夺其符节,来随意征辟将士,并企图强迫马日磾任其军师,马日磾求去不能,忧愤发病,兴平元年(194年),卒于寿春。', + licaiwei:'李采薇,生卒年不详,汉末将领庞德之妻,庞会之母。襄樊之战时,庞德任先锋,随于禁率军增援驻守樊城的曹仁。出战前,他将妻子李采薇与年仅六岁的儿子庞会叫来面前,对李采薇说:“吾今为先锋,义当效死疆场。我若死,汝好生看养吾儿。吾儿有异相,长大必当与吾报仇也。”李采薇闻言,与儿子痛哭送别庞德。她知道丈夫已下定决心,若无法胜利归还则必当战死沙场,绝不会投降求生。其后前线果然传来消息:魏军全军覆没,于禁投降,庞德誓死不降被关羽所杀。其子庞会自幼丧父,由母亲抚养长大。成年后,庞会性格勇烈,有先父之风。他多次立下战功,深受魏文帝曹丕的喜爱。后来庞会随钟会、邓艾伐蜀,成都城破之后,尽灭关氏家以报父仇。', }, characterTitle:{ wulan:'#b对决限定武将', @@ -13122,7 +13396,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "xinfu_langxi":"狼袭", "xinfu_langxi_info":"准备阶段,你可以对一名体力小于或等于你的其他角色造成0~2点随机伤害。", "xinfu_yisuan":"亦算", - "xinfu_yisuan_info":"每回合限一次。当你于出牌阶段使用的锦囊牌进入弃牌堆时,你可以减1点体力上限,从弃牌堆中获得之。", + "xinfu_yisuan_info":"每回合限一次。当你于出牌阶段使用的锦囊牌结算结束后,你可以减1点体力上限并获得此牌对应的所有实体牌。", "xinfu_xingluan":"兴乱", "xinfu_xingluan_info":"每回合限一次。当你于出牌阶段使用的仅指定一个目标的牌结算完成后,你可以从牌堆中随机获得一张点数为6的牌。", "xinfu_lveming":"掠命", @@ -13249,7 +13523,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ spjiedao:"截刀", "spjiedao_info":"当你每回合第一次造成伤害时,你可令此伤害至多+X(X为你损失的体力值)。然后若受到此伤害的角色没有死亡,你弃置等同于此伤害加值的牌。", biaozhao:"表召", - "biaozhao_info":"结束阶段,你可以将一张牌置于武将牌上,称为“表”。当有一张与“表”花色点数均相同的牌进入弃牌堆时,你将“表”置入弃牌堆并失去1点体力,若此牌是其他角色因弃置而进入弃牌堆的,则改为该角色获得“表”。准备阶段,若你的武将牌上有“表”,则你将“表”置入弃牌堆。然后你选择一名角色,该角色回复1点体力且将手牌摸至与全场手牌数最多的人相同(最多摸五张)。", + "biaozhao_info":"结束阶段,你可以将一张牌置于武将牌上,称为“表”。当有一张与“表”花色点数均相同的牌进入弃牌堆后,你将“表”置入弃牌堆并失去1点体力,若此牌是其他角色因弃置而进入弃牌堆的,则改为该角色获得“表”。准备阶段,若你的武将牌上有“表”,则你将“表”置入弃牌堆。然后你选择一名角色,该角色回复1点体力且将手牌摸至与全场手牌数最多的人相同(最多摸五张)。", "biaozhao2":"表召", "biaozhao2_info":"", "biaozhao3":"表召", @@ -13742,7 +14016,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ syxiongyi_info:'限定技。当你处于濒死状态时,若剩余武将牌堆中:有“徐氏”,则你将体力值回复至3点,并将此武将牌替换为“徐氏”;没有“徐氏”,则你将体力值回复至1点并获得〖魂姿〗。', zhaoyan:'赵嫣', jinhui:'锦绘', - jinhui_info:'出牌阶段限一次,你可以随机展示牌堆中的三张不具有“伤害”标签且使用目标范围为“自己”或“一名角色”的牌,然后选择一名其他角色。该角色选择并按如下“锦绘”规则使用其中一张,然后你可以依次按如下“锦绘”规则使用其余两张:若此牌的使用目标为“自己”,则对自己使用该牌,否则对对方使用该牌(无距离限制且不计入次数限制)。', + jinhui_info:'出牌阶段限一次,你可以随机展示牌堆中的三张不具有“伤害”标签且使用目标范围为“自己”或“一名角色”的牌,然后选择一名其他角色。该角色选择并按如下“锦绘”规则使用其中一张,然后你可以按如下“锦绘”规则使用剩余的任意张牌:若此牌的使用目标为“自己”,则对自己使用该牌,否则对对方使用该牌(无距离限制且不计入次数限制)。', qingman:'轻幔', qingman_info:'锁定技。一名角色的回合结束时,你将手牌摸至X张(X为其装备区中空栏的数量)。', re_zhangbao:'张宝', @@ -13781,7 +14055,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ wfyuyan_info:'一轮游戏开始时,你选择一名角色(对其他角色不可见):当第一次有角色于本轮内进入濒死状态时,若其是你选择的角色,则你获得〖奋音〗直到你的回合结束;当第一次有角色于本轮内造成伤害后,若其是你选择的角色,则你摸两张牌。', re_fengfangnv:'冯妤', tiqi:'涕泣', - tiqi_info:'其他角色的摸牌阶段结束时,若其于本阶段内因摸牌而获得的牌数X不等于2,则你可以摸|X-2|张牌,并可令其本回合的手牌上限±|X-2|。', + tiqi_info:'其他角色的摸牌阶段结束时/被跳过时,若其于本阶段内因摸牌而获得的牌数X不等于2,则你可以摸|X-2|张牌,并可令其本回合的手牌上限±|X-2|。', baoshu:'宝梳', baoshu_info:'①准备阶段,你可选择Y名角色,这些角色重置武将牌并获得(X-Y+1)个“梳”(X为你的体力上限,Y∈[1, X])。②一名角色的摸牌阶段开始时,若其有“梳”,则其本阶段的额定摸牌数+Z且移去Z个“梳”(Z为其“梳”的数量)。', mamidi:'马日磾', @@ -13789,6 +14063,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){ bingjie_info:'出牌阶段开始时,你可减1点体力上限,然后当你于本阶段内使用【杀】或普通锦囊牌指定其他角色为目标后,其弃置一张牌。', zhengding:'正订', zhengding_info:'锁定技。当你于回合外使用或打出牌响应其他角色使用的牌时,若这两张牌花色相同,则你加1点体力上限。', + licaiwei:'李采薇', + yijiao:'异教', + yijiao_info:'出牌阶段限一次,你可以选择一名没有“异”标记的其他角色并声明一个整数X(X∈[1,4]),该角色获得10X个“异”标记。有“异”标记的角色的结束阶段,若其本回合使用牌的点数之和:1.小于“异”标记数,其随机弃置一张手牌;2.等于“异”标记数,该角色本回合结束后进行一个额外的回合;3.大于“异”标记数,你摸两张牌。回合结束时移去“异”标记。', + qibie:'泣别', + qibie_info:'一名角色死亡后,若你有手牌且这些手牌均可被弃置,则你可以弃置所有手牌,然后回复1点体力并摸X+1张牌(X为你弃置的牌数)。', + dc_jiben:'吉本', + xunli:'寻疠', + xunli_info:'锁定技。①当有黑色牌因弃置而进入弃牌堆后,若X大于0,则你将其中的X张牌置于武将牌上作为“疠”(X=min(这些牌的数量,9-Y),Y=你的“疠”数)。②出牌阶段开始时,你可以用任意张黑色手牌交换等量的“疠”。', + zhishi:'指誓', + zhishi_info:'结束阶段,你可选择一名角色。当该角色于你的下回合开始前{成为【杀】的目标后或进入濒死状态时},你可移去任意张“疠”,然后其摸等量的牌。', + lieyi:'烈医', + lieyi_info:'出牌阶段限一次。你可以展示所有“疠”并选择一名其他角色,对其使用其中的一张可对其使用的牌(无距离和次数限制)并重复此流程,并将其余的牌置于弃牌堆。然后若其存活且未于此流程中因受到伤害而进入过濒死状态,则你失去1点体力。', sp_whlw:"文和乱武", sp_zlzy:"逐鹿中原", diff --git a/character/standard.js b/character/standard.js index 2165a3f65..c2e427e90 100755 --- a/character/standard.js +++ b/character/standard.js @@ -89,7 +89,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ machao:['madai','mayunlu'], zhangliao:['zangba'], ganning:['lingtong','xf_sufei'], - guanyu:['zhangfei'], + guanyu:['zhangfei','liaohua'], }, skill:{ rewangzun:{ diff --git a/character/tw.js b/character/tw.js index fe9bda501..010561b1c 100644 --- a/character/tw.js +++ b/character/tw.js @@ -5,13 +5,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){ connect:true, characterSort:{ tw:{ - tw_mobile:['nashime','tw_dongzhao','jiachong','duosidawang','wuban','yuejiu','tw_huojun','tw_caocao','tw_zhangmancheng','tw_caozhao'], - tw_mobile2:['tw_beimihu','tw_gexuan','tw_fuwan','tw_yujin','tw_zhaoxiang','tw_hucheer','tw_hejin','tw_mayunlu','tw_re_caohong','tw_zangba','tw_liuhong','tw_chengpu','tw_guohuai'], + tw_mobile:['nashime','tw_dongzhao','jiachong','duosidawang','wuban','yuejiu','tw_huojun','tw_caocao','tw_zhangmancheng','tw_caozhao','tw_wangchang'], + tw_mobile2:['tw_beimihu','tw_gexuan','tw_fuwan','tw_yujin','tw_zhaoxiang','tw_hucheer','tw_hejin','tw_mayunlu','tw_re_caohong','tw_zangba','tw_liuhong','tw_chengpu','tw_guohuai','tw_wujing','tw_wangcan'], tw_yijiang:['tw_caoang','tw_caohong','tw_zumao','tw_dingfeng','tw_maliang','tw_xiahouba'], tw_english:['kaisa'], }, }, character:{ + tw_wujing:['male','wu',4,['twfenghan','twcongji']], + tw_wangcan:['male','wei',3,['twdianyi','twyingji','twshanghe']], + tw_wangchang:['male','wei',3,['twkaiji','twshepan']], tw_caozhao:['male','wei',4,['twfuzuan','twchongqi']], tw_guohuai:["male","wei",4,["twjingce","yuzhang"]], tw_chengpu:['male','wu',4,['twlihuo','twchunlao']], @@ -52,6 +55,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ huojun:'霍峻(178年—217年),字仲邈,南郡枝江(今湖北枝江)人,东汉末年刘备麾下名将。其兄霍笃曾在故乡聚部众数百人。后霍笃逝世,刘表以霍峻继承其部曲。208年(建安十三年),刘表病逝,霍峻便率部曲归降刘备,并被任为中郎将。后随刘备入蜀,刘备从葭萌还袭刘璋,留霍峻守葭萌城。张鲁遣将杨帛劝降霍峻,霍峻严词拒绝,杨帛退去。后刘璋将扶禁、向存等率万余人由阆水上,攻围霍峻,城中兵不过数百人,霍峻坚守一年,伺机将其击破。刘备定蜀,嘉霍峻之功,于是分广汉为梓潼郡,以峻为梓潼太守、裨将军。三年后去世,还葬成都。刘备亲率群僚临会吊祭,留宿墓上,当时的人都为他感到荣幸。', zhangmancheng:'张曼成(?—184年6月),东汉末年黄巾之乱时南阳黄巾军首领,杀郡守褚贡,一度占据宛城数月,后为秦颉所杀。', caozhao:'曹肇(?-244年),字长思,沛国谯县(今安徽亳州)人。三国时期魏国大臣,大司马曹休之子。容貌俊美,有当世才度,深得魏明帝宠信,官至散骑常侍、屯骑校尉。魏明帝临死,与燕王曹宇等托付后事。不果,以长平侯归第。正始五年(244年)卒,追赠为卫将军。', + wangchang:'王昶(2世纪-259年),字文舒,太原郡晋阳县(今山西太原)人。三国时期曹魏将领,东汉代郡太守王泽之子。出身太原王氏,少有名气,进入曹丕幕府,授太子文学。曹丕即位后,拜散骑侍郎,迁兖州刺史,撰写《治论》、《兵书》,作为朝廷提供施政参考。魏明帝曹叡即位后,升任扬烈将军,封关内侯。齐王曹芳即位,迁徐州刺史,拜征南将军。太傅司马懿掌权后,深得器重,奏请伐吴,在江陵取得重大胜利,升任征南大将军、开府仪同三司,晋爵京陵侯。正元年间(255年),参与平定“淮南三乱”有功,迁骠骑大将军,守司空。甘露四年(259年),去世,赠司徒,谥号为穆。', }, card:{ dz_mantianguohai:{ @@ -165,6 +169,339 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, skill:{ + //吴景 + twfenghan:{ + audio:2, + trigger:{player:'useCardToPlayered'}, + direct:true, + usable:1, + filter:function(event,player){ + return event.isFirstTarget&&event.targets.length>0&&(event.card.name=='sha'||get.type(event.card,false)=='trick'&&get.tag(event.card,'damage')>0); + }, + content:function(){ + 'step 0' + var num=trigger.targets.length; + player.chooseTarget([1,num],get.prompt('twfenghan'),'令至多'+get.cnNumber(num)+'名角色各摸一张牌').set('ai',function(target){ + return Math.sqrt(5-Math.min(4,target.countCards('h')))*get.attitude(_status.event.player,target)*(target.hasSkillTag('nogain')?0.1:1); + }); + 'step 1' + if(result.bool){ + var targets=result.targets.sortBySeat(); + player.logSkill('twfenghan',targets); + if(targets.length>1) game.asyncDraw(targets); + else{ + targets[0].draw(); + event.finish(); + } + } + else{ + player.storage.counttrigger.twfenghan--; + event.finish(); + } + 'step 2' + game.delayx(); + }, + }, + twcongji:{ + audio:2, + trigger:{player:'loseAfter'}, + direct:true, + filter:function(event,player){ + if(player==_status.currentPhase||event.type!='discard'||event.position!=ui.discardPile||!game.hasPlayer((current)=>current!=player)) return false; + for(var i of event.cards2){ + if(get.color(i,player)=='red'&&get.position(i,true)=='d') return true; + } + return false; + }, + content:function(){ + 'step 0' + var cards=[]; + for(var i of trigger.cards2){ + if(get.color(i,player)=='red'&&get.position(i,true)=='d') cards.push(i); + } + player.chooseButton(['从击:选择任意张牌交给其他角色',cards],[1,cards.length]).set('goon',game.hasPlayer(function(current){ + return current!=player&&get.attitude(player,current)>0; + })).set('ai',function(button){ + if(_status.event.goon) return get.value(button.link); + return button.link.name=='du'?1:0; + }); + 'step 1' + if(result.bool){ + event.cards=result.links; + player.chooseTarget('选择一名角色获得以下牌:',get.translation(cards),true,lib.filter.notMe).set('ai',function(target){ + var player=_status.event.player,cards=_status.event.getParent().cards; + if(cards[0].name=='du') return -get.attitude(player,target); + var att=get.attitude(player,target); + if(att<=0) return 0; + if(target.hasSkillTag('nogain')) att/=10; + if(target.hasJudge('lebu')) att/=4; + return get.value(cards,target)*att; + }); + } + else event.finish(); + 'step 2' + if(result.bool){ + var target=result.targets[0]; + player.logSkill('twcongji',target); + target.gain(cards,'gain2'); + } + }, + }, + //王粲 + twdianyi:{ + audio:2, + trigger:{player:'phaseEnd'}, + forced:true, + filter:function(event,player){ + if(!player.getHistory('sourceDamage').length) return player.countCards('h')!=4; + return player.countCards('h')>0; + }, + content:function(){ + var num=player.countCards('h'); + if(player.getHistory('sourceDamage').length) player.chooseToDiscard('h',true,num); + else if(num>4) player.chooseToDiscard('h',true,num-4); + else player.drawTo(4); + }, + }, + twyingji:{ + audio:2, + enable:['chooseToUse','chooseToRespond'], + hiddenCard:function(player,name){ + return player!=_status.currentPhase&&lib.inpile.contains(name)&&player.countCards('h')==0; + }, + filter:function(event,player){ + if(player==_status.currentPhase||player.countCards('h')>0) return false; + for(var i of lib.inpile){ + if(i=='wuxie') continue; + var type=get.type(i); + if((type=='basic'||type=='trick')&&event.filterCard({name:i},player,event)) return true; + if(i=='sha'){ + for(var j of lib.inpile_nature){ + if(event.filterCard({name:i,nature:j},player,event)) return true; + } + } + } + return false; + }, + chooseButton:{ + dialog:function(event,player){ + var list=[]; + for(var i of lib.inpile){ + if(i=='wuxie') continue; + var type=get.type(i); + if(type=='basic'||type=='trick'){ + var card={name:i,isCard:true}; + if(event.filterCard(card,player,event)) list.push([type,'',i]); + if(i=='sha'){ + for(var j of lib.inpile_nature){ + card.nature=j; + if(event.filterCard(card,player,event)) list.push(['基本','','sha',j]); + } + } + } + } + return ui.create.dialog('应机',[list,'vcard']); + }, + check:function(button){ + var player=_status.event.player; + var card={name:button.link[2],nature:button.link[3]}; + var val=_status.event.getParent().type=='phase'?player.getUseValue(card):1; + return val; + }, + backup:function(links,player){ + return { + viewAs:{ + name:links[0][2], + nature:links[0][3], + isCard:true, + }, + filterCard:()=>false, + selectCard:-1, + precontent:function(){ + player.logSkill('twyingji'); + player.draw('nodelay'); + delete event.result.skill; + }, + } + }, + prompt:function(links){ + return '将一张手牌当做'+(get.translation(links[0][3])||'')+get.translation(links[0][2])+'使用'; + }, + }, + ai:{ + fireAttack:true, + respondShan:true, + respondSha:true, + skillTagFilter:function(player){ + if(player==_status.currentPhase||player.countCards('h')>0) return false; + }, + order:10, + result:{ + player:1, + }, + }, + group:['twyingji_wuxie'], + }, + twyingji_wuxie:{ + enable:'chooseToUse', + viewAs:{ + name:'wuxie', + isCard:true, + }, + viewAsFilter:function(player){ + return player!=_status.currentPhase&&player.countCards('h')==0; + }, + filterCard:()=>false, + prompt:'视为使用【无懈可击】并摸一张牌', + selectCard:[0,1], + check:()=>1, + precontent:function(){ + player.logSkill('twyingji'); + player.draw('nodelay'); + delete event.result.skill; + }, + ai:{ + order:4, + }, + }, + twshanghe:{ + trigger:{player:'dying'}, + limited:true, + audio:2, + filter:function(event,player){ + return game.hasPlayer(function(current){ + return current!=player&¤t.countCards('he')>0; + }) + }, + prompt:'是否发动【觞贺】?', + skillAnimation:true, + animationColor:'soil', + logTarget:(event,player)=>game.filterPlayer((current)=>current!=player), + content:function(){ + "step 0" + player.awakenSkill('twshanghe'); + event.targets=game.filterPlayer((current)=>current!=player); + event.num=0; + event.jiu=false; + "step 1" + event.current=targets[num]; + if(!event.current.countCards('he')) event.goto(3); + else event.current.chooseCard('交给'+get.translation(player)+'一张牌','he',true).set('ai',function(card){ + var evt=_status.event.getParent(); + return 100-get.value(card); + }); + "step 2" + if(result.bool&&result.cards&&result.cards.length){ + player.gain(result.cards,event.current,'giveAuto'); + if(!event.jiu&&get.name(result.cards[0],player)=='jiu') event.jiu=true; + } + "step 3" + event.num++; + if(event.num1) game.delayx(); + if(game.hasPlayer(function(current){ + return targets.contains(current)&¤t.hasHistory('gain',function(evt){ + return evt.getParent(2)==event&&get.type(evt.cards[0],current)!='basic'; + }) + })) player.draw(); + }, + group:'twkaiji_count', + subSkill:{ + count:{ + trigger:{global:'dying'}, + forced:true, + firstDo:true, + silent:true, + popup:false, + charlotte:true, + filter:function(event,player){ + return !player.getStorage('twkaiji').contains(event.player); + }, + content:function(){ + player.markAuto('twkaiji',[trigger.player]); + }, + }, + }, + }, + twshepan:{ + audio:2, + trigger:{target:'useCardToTargeted'}, + usable:1, + direct:true, + filter:function(event,player){ + return player!=event.player; + }, + content:function(){ + 'step 0' + var target=trigger.player; + event.target=target; + var choiceList=[ + '摸一张牌', + '将'+get.translation(target)+'区域内的一张牌置于牌堆顶', + ]; + var choices=['选项一']; + if(target.countCards('hej')>0) choices.push('选项二'); + else choiceList[1]=''+choiceList[1]+''; + choices.push('cancel2'); + player.chooseControl(choices).set('choiceList',choiceList).set('choice',function(){ + if(choices.length>2&&get.effect(target,{name:'guohe_copy'},player,player)>0) return 1; + return 0; + }()) + 'step 1' + if(result.control!='cancel2'){ + player.logSkill('twshepan',target); + if(result.index==1) player.choosePlayerCard(target,'hej',true); + else{ + player.draw(); + event.goto(3); + } + } + else{ + player.storage.counttrigger.twshepan--; + event.finish(); + } + 'step 2' + var card=result.cards[0]; + target.$throw(get.position(card)=='h'?1:card,1000); + target.lose(card,ui.cardPile,'insert'); + 'step 3' + game.delayx(); + if(target.isIn()&&player.countCards('h')==target.countCards('h')){ + player.storage.counttrigger.twshepan--; + player.chooseBool('是否令'+get.translation(trigger.card)+'对自己无效?').set('ai',function(){ + var evt=_status.event.getTrigger(); + return get.effect(evt.target,evt.card,evt.player,evt.target)<0; + }); + } + else event.finish(); + 'step 4' + if(result.bool) trigger.excluded.add(player); + }, + }, //曹肇 twfuzuan:{ audio:2, @@ -370,6 +707,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }).set('source',trigger.source); 'step 1' if(result.control!='cancel2'){ + player.logSkill('yuzhang',trigger.source); player.removeMark('twjingce',1); if(result.index==0) trigger.source.addTempSkill('yuzhang_dontuse'); else trigger.source.chooseToDiscard('he',trigger.source.hp,true); @@ -1554,7 +1892,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var names=[]; for(var i of cards) names.add(i.name); if(names.length=0) return -20; return lib.card.sha.ai.result.target.apply(this,arguments); }, @@ -3726,7 +4064,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ twyingjia_info:'一名角色的回合结束时,若你本回合内使用过两张或更多的同名锦囊牌,则你可弃置一张手牌并令一名角色进行一个额外回合。', dz_mantianguohai:'瞒天过海', dz_mantianguohai_info:'此牌不计入拥有者的手牌上限。出牌阶段,对一至两名区域内有牌的其他角色使用。你获得目标角色一张牌,然后依次交给每名目标角色各一张牌。', - jiachong:'贾充', + jiachong:'TW贾充', beini:'悖逆', beini_info:'出牌阶段限一次,你可以选择一名体力值不小于你的角色,令你或其摸两张牌,然后未摸牌的角色视为对摸牌的角色使用一张【杀】。', dingfa:'定法', @@ -3829,6 +4167,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){ twchongqi_info:'锁定技。游戏开始时,你令所有角色获得〖非服〗。然后你可减1点体力上限,令一名其他角色获得〖复纂〗。', twfeifu:'非服', twfeifu_info:'转换技。阴:当你成为【杀】的唯一目标后;阳:当你使用【杀】指定唯一目标后;目标角色须交给使用者一张牌。若此牌为装备牌,则使用者可使用此牌。', + tw_wangchang:'王昶', + twkaiji:'开济', + twkaiji_info:'准备阶段,你可令至多X名角色各摸一张牌(X为本局游戏内进入过濒死状态的角色数+1)。若有角色以此法获得了非基本牌,则你摸一张牌。', + twshepan:'慑叛', + twshepan_info:'每回合限一次。当你成为其他角色使用牌的目标后,你可选择一项:⒈摸一张牌。⒉将其区域内的一张牌置于牌堆顶。然后若你的手牌数与其相等,则你将此技能的发动次数归零,且可以令此牌对你无效。', + tw_wangcan:'TW王粲', + twdianyi:'典仪', + twdianyi_info:'锁定技。你的回合结束时,若你本回合内:造成过伤害,你弃置所有手牌;未造成过伤害,你将手牌数调整至四张。', + twyingji:'应机', + twyingji_wuxie:'应机', + twyingji_info:'当你于回合外需要使用或打出一张基本牌或普通锦囊牌时,若你没有手牌,则你可摸一张牌,然后视为使用或打出此牌。', + twshanghe:'觞贺', + twshanghe_info:'限定技。当你进入濒死状态时,你可令所有其他角色依次交给你一张牌;若这些牌中没有【酒】,则你将体力回复至1点。', + tw_wujing:'TW吴景', + twfenghan:'锋捍', + twfenghan_info:'每回合限一次。当你使用【杀】或伤害类锦囊牌指定第一个目标后,你可令至多X名角色各摸一张牌(X为此牌的目标数)。', + twcongji:'从击', + twcongji_info:'当你的红色牌于回合外因弃置而进入弃牌堆后,你可令一名其他角色获得这些牌。', tw_mobile:'移动版·海外服', tw_mobile2:'海外服异构', diff --git a/character/yijiang.js b/character/yijiang.js index b20941e70..360647183 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -7814,14 +7814,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ check:function(event,player){ return get.attitude(player,event.player)>=0; }, - //priority:-5, logTarget:'player', content:function(){ game.asyncDraw([trigger.player,player]); }, - ai:{ - expose:0.1 - } }, yanyu:{ audio:2, @@ -12610,7 +12606,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ zhuiyi_info:'当你死亡时,你可以令一名其他角色(杀死你的角色除外)摸三张牌,然后其回复1点体力。', anxu_info:'出牌阶段限一次,你可以选择两名手牌数不同的其他角色,令其中手牌多的角色将一张手牌交给手牌少的角色,然后若这两名角色手牌数相等,你摸一张牌或回复1点体力', old_anxu_info:'出牌阶段限一次,你可以选择两名手牌数不同的其他角色,令其中手牌少的角色获得手牌多的角色的一张手牌并展示之。然后若此牌不为黑桃,则你摸一张牌。', - zongxuan_info:'当你的牌因弃置而进入弃牌堆时,你可以将其按任意顺序置于牌堆顶', + zongxuan_info:'当你的牌因弃置而进入弃牌堆后,你可以将其按任意顺序置于牌堆顶', zhiyan_info:'结束阶段,你可以令一名角色摸一张牌并展示之,若为装备牌,其使用此牌并回复一点体力。', miji_info:'结束阶段,若你已受伤,则可以摸X张牌,然后可以将等量的牌交给一名其他角色(X为你已损失的体力值)。', zhenlie_info:'当你成为其他角色使用【杀】或普通锦囊牌的目标后,你可以失去一点体力并令此牌对你无效,然后弃置对方一张牌。', @@ -12624,7 +12620,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xinwuyan_info:'锁定技,当你使用锦囊牌造成伤害时,你防止此伤害;锁定技,当你受到锦囊牌对你造成的伤害时,你防止此伤害。', jujian_info:'出牌阶段限一次,你可以弃至多三张牌,然后令一名其他角色摸等量的牌。若你以此法弃牌不少于三张且均为同一类别,你回复1点体力。', xinjujian_info:'结束阶段开始时,你可以弃置一张非基本牌并选择一名其他角色,令其选择一项:1.摸两张牌;2.回复1点体力;3.将其武将牌翻转至正面朝上并重置之。', - luoying_info:'当其他角色的梅花牌因弃置或判定而进入弃牌堆时,你可以获得之。', + luoying_info:'当其他角色的梅花牌因弃置或判定而进入弃牌堆后,你可以获得之。', jiushi_info:'当你需要使用一张【酒】时,若你的武将牌正面朝上,则你可以将武将牌翻面并视为使用了一张【酒】;当你受到伤害时,若你的武将牌背面朝上,则你可在此伤害结算后将武将牌翻回正面。', jueqing_info:'锁定技,你即将造成的伤害均视为失去体力。', shangshi_info:'当你的手牌数小于X时,你可以将手牌摸至X张(X为你已损失的体力值)', diff --git a/character/yingbian.js b/character/yingbian.js index 4b511375e..702e032d5 100644 --- a/character/yingbian.js +++ b/character/yingbian.js @@ -4,7 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ name:'yingbian', connect:true, character:{ - jin_yanghu:['male','jin',4,['huaiyuan','chongxin','dezhang']], + jin_jiachong:['male','jin',3,['xiongshu','jianhui']], xuangongzhu:['female','jin',3,['gaoling','qimei','ybzhuiji'],['hiddenSkill']], xinchang:['male','jin',3,['canmou','congjian']], yangzhi:['female','jin',3,['wanyi','maihuo']], @@ -30,12 +30,126 @@ game.import('character',function(lib,game,ui,get,ai,_status){ yingbian:{ yingbian_pack1:['jin_simayi','jin_zhangchunhua','ol_lisu','simazhou','cheliji','ol_huaxin'], yingbian_pack2:['jin_simashi','jin_xiahouhui','zhanghuyuechen','shibao','jin_yanghuiyu'], - yingbian_pack3:['jin_simazhao','jin_wangyuanji','duyu','weiguan','xuangongzhu','jin_yanghu'], + yingbian_pack3:['jin_simazhao','jin_wangyuanji','duyu','weiguan','xuangongzhu','jin_jiachong'], yingbian_pack4:['zhongyan','xinchang'], yingbian_pack5:['yangyan','yangzhi'], }, }, skill:{ + xiongshu:{ + audio:2, + trigger:{global:'phaseUseBegin'}, + direct:true, + filter:function(event,player){ + return player!=event.player&&event.player.countCards('he')>0&&player.countCards('he')>player.countMark('xiongshu_count'); + }, + content:function(){ + 'step 0' + event.target=trigger.player; + var num=1+player.countMark('xiongshu_count'); + player.chooseToDiscard('he',num,get.prompt('xiongshu',trigger.player),'弃置'+get.cnNumber(num)+'张牌并展示其一张牌').set('goon',get.attitude(player,event.target)<0).set('ai',function(card){ + if(!_status.event.goon) return 0; + return 6-_status.event.player.countMark('xiongshu_count')-get.value(card); + }).logSkill=['xiongshu',trigger.player]; + 'step 1' + if(result.bool){ + player.addTempSkill('xiongshu_count','roundStart'); + player.addMark('xiongshu_count',1,false); + } + if(result.bool&&target.countCards('he')>0){ + player.choosePlayerCard(target,true,'he'); + } + else event.finish(); + 'step 2' + var card=result.cards[0],name=get.name(card),str=get.translation(target); + player.showCards(card,get.translation(player)+'对'+str+'发动了【凶竖】'); + player.addTempSkill('xiongshu_effect','phaseUseAfter'); + player.storage.xiongshu_effect=[card,name]; + if(Math.random()<0.5){ + target.storage.xiongshu_ai=name; + target.addTempSkill('xiongshu_ai','phaseUseAfter'); + } + player.chooseControl('会使用','不会使用').set('prompt','预测:'+str+'是否会使用'+get.translation(name)+'?').set('choice',function(){ + if(!target.hasValueTarget(card)) return 1; + return Math.random()<0.5?0:1; + }()).set('ai',()=>_status.event.choice); + 'step 3' + player.storage.xiongshu_effect[2]=(result.index==0); + }, + ai:{expose:0.35}, + subSkill:{ + ai:{ + charlotte:true, + onremove:true, + ai:{ + effect:{ + player:function(card,player,target){ + if(card.name==player.storage.xiongshu_ai) return 'zeroplayertarget'; + }, + }, + }, + }, + count:{ + charlotte:true, + onremove:true, + }, + effect:{ + trigger:{global:'phaseUseEnd'}, + forced:true, + charlotte:true, + onremove:true, + filter:function(event,player){ + var info=player.storage.xiongshu_effect; + return Array.isArray(info)&&event.player.isIn(); + }, + logTarget:'player', + content:function(){ + var target=trigger.player; + var info=player.storage.xiongshu_effect; + if(target.hasHistory('useCard',function(evt){ + return evt.card.name==info[1]&&evt.getParent('phaseUse')==trigger; + })==info[2]) target.damage(); + else if(target.getCards('he').contains(card)) player.gain(card,target,'give'); + }, + }, + }, + }, + jianhui:{ + audio:2, + getLastPlayer:function(evt,player){ + var history=player.getAllHistory('damage'); + if(!history.length) return null; + var i=history.indexOf(evt); + if(i==-1) i=history.length-1; + else i--; + for(i;i>=0;i--){ + if(history[i].source) return history[i].source; + } + return null; + }, + trigger:{player:'damageEnd'}, + forced:true, + filter:function(event,player){ + return event.source&&event.source.isIn()&&event.source==lib.skill.jianhui.getLastPlayer(event,player)&&event.source.countCards('he')>0; + }, + content:function(){ + trigger.source.chooseToDiscard('he',true); + }, + group:'jianhui_draw', + subSkill:{ + draw:{ + trigger:{source:'damageSource'}, + forced:true, + logTarget:'player', + filter:function(event,player){ + return event.player==lib.skill.jianhui.getLastPlayer(event,player); + }, + content:function(){ + player.draw(); + }, + }, + }, + }, huaiyuan:{ audio:2, trigger:{ @@ -3032,6 +3146,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, characterReplace:{ yanghu:['jin_yanghu','sp_yanghu'], + jiachong:['jin_jiachong','jiachong'], }, translate:{ jin_zhangchunhua:'晋张春华', @@ -3205,6 +3320,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ dezhang_info:'觉醒技。准备阶段,若你没有“绥”,则你减1点体力上限并获得〖卫戍〗。', weishu:'卫戍', weishu_info:'锁定技。①当你于摸牌阶段外不因〖卫戊①〗而摸牌后,你令一名角色摸一张牌。②当你于弃牌阶段外不因〖卫戊②〗而弃置牌后,你弃置一名其他角色的一张牌。', + jin_jiachong:'贾充', + xiongshu:'凶竖', + xiongshu_info:'其他角色的出牌阶段开始时,你可弃置X张牌(X为你本轮内已发动过此技能的次数+1)并展示其一张牌,然后你预测“其本阶段内是否会使用与展示牌牌名相同的牌”。此阶段结束时,若你的预测正确,则你对其造成1点伤害;否则你获得展示牌。', + jianhui:'奸回', + jianhui_info:'锁定技。当你造成伤害后,若受伤角色为A,则你摸一张牌;当你受到伤害后,若伤害来源为A,则A弃置一张牌。(A为除本次伤害外最近一次对你造成过伤害的角色)', yingbian_pack1:'文德武备·理', yingbian_pack2:'文德武备·备', diff --git a/game/asset.js b/game/asset.js index 519d95ec5..0ec45346f 100644 --- a/game/asset.js +++ b/game/asset.js @@ -886,6 +886,9 @@ window.noname_asset_list=[ 'audio/die/wufan.mp3', 'audio/die/yanfuren.mp3', 'audio/die/zhangmancheng.mp3', + 'audio/die/dc_jiben.mp3', + 'audio/die/licaiwei.mp3', + 'audio/die/tw_wangchang.mp3', 'audio/skill/decadezishou1.mp3', 'audio/skill/decadezishou2.mp3', @@ -4071,6 +4074,20 @@ window.noname_asset_list=[ 'audio/skill/zhaofu2.mp3', 'audio/skill/zhengding1.mp3', 'audio/skill/zhengding2.mp3', + 'audio/skill/lieyi1.mp3', + 'audio/skill/lieyi2.mp3', + 'audio/skill/qibie1.mp3', + 'audio/skill/qibie2.mp3', + 'audio/skill/twkaiji1.mp3', + 'audio/skill/twkaiji2.mp3', + 'audio/skill/twshepan1.mp3', + 'audio/skill/twshepan2.mp3', + 'audio/skill/xunli1.mp3', + 'audio/skill/xunli2.mp3', + 'audio/skill/yijiao1.mp3', + 'audio/skill/yijiao2.mp3', + 'audio/skill/zhishi1.mp3', + 'audio/skill/zhishi2.mp3', 'audio/voice/male/0.mp3', 'audio/voice/male/1.mp3', @@ -5141,6 +5158,12 @@ window.noname_asset_list=[ 'image/character/tw_guohuai.jpg', 'image/character/wufan.jpg', 'image/character/yanfuren.jpg', + 'image/character/dc_jiben.jpg', + 'image/character/jin_jiachong.jpg', + 'image/character/licaiwei.jpg', + 'image/character/tw_wangcan.jpg', + 'image/character/tw_wangchang.jpg', + 'image/character/tw_wujing.jpg', 'image/character/baiwuchang.jpg', 'image/character/baosanniang.jpg', diff --git a/game/update.js b/game/update.js index aa49ab9d7..71ddb4aeb 100644 --- a/game/update.js +++ b/game/update.js @@ -1,10 +1,10 @@ window.noname_update={ - version:'1.9.114.1', - update:'1.9.113.5', + version:'1.9.114.2', + update:'1.9.114.1', changeLog:[ - '转换技机制优化', - '十周年郝萌、马日磾、冯妤、吴范', - '海外服曹肇、郭淮', + 'OL贾充', + '十周年李采薇、吉本', + '海外服吴景、王粲、王昶', 'bug修复', ], files:[ @@ -30,7 +30,7 @@ window.noname_update={ //'character/hearth.js', 'character/mobile.js', //'character/mtg.js', - //'character/offline.js', + 'character/offline.js', //'character/old.js', //'character/ow.js', 'character/rank.js', @@ -38,7 +38,7 @@ window.noname_update={ 'character/shenhua.js', 'character/sp.js', 'character/sp2.js', - //'character/standard.js', + 'character/standard.js', 'character/tw.js', //'character/swd.js', //'character/xianjian.js', diff --git a/image/character/dc_jiben.jpg b/image/character/dc_jiben.jpg new file mode 100644 index 000000000..4a52cc67c Binary files /dev/null and b/image/character/dc_jiben.jpg differ diff --git a/image/character/jin_jiachong.jpg b/image/character/jin_jiachong.jpg new file mode 100644 index 000000000..5715901d8 Binary files /dev/null and b/image/character/jin_jiachong.jpg differ diff --git a/image/character/licaiwei.jpg b/image/character/licaiwei.jpg new file mode 100644 index 000000000..01aa6ac72 Binary files /dev/null and b/image/character/licaiwei.jpg differ diff --git a/image/character/tw_wangcan.jpg b/image/character/tw_wangcan.jpg new file mode 100644 index 000000000..66ae45976 Binary files /dev/null and b/image/character/tw_wangcan.jpg differ diff --git a/image/character/tw_wangchang.jpg b/image/character/tw_wangchang.jpg new file mode 100644 index 000000000..4013e4338 Binary files /dev/null and b/image/character/tw_wangchang.jpg differ diff --git a/image/character/tw_wujing.jpg b/image/character/tw_wujing.jpg new file mode 100644 index 000000000..d2362794d Binary files /dev/null and b/image/character/tw_wujing.jpg differ diff --git a/mode/guozhan.js b/mode/guozhan.js index e4f50c9f3..7af610f5a 100644 --- a/mode/guozhan.js +++ b/mode/guozhan.js @@ -1075,7 +1075,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }).setHiddenSkill('gzshensu').set('goon',player.needsToDiscard()).set('ai',function(target){ var player=_status.event.player; if(!_status.event.goon||player.hp<=target.hp) return false; - return get.effect(target,{name:'',isCard:true},player,player); + return get.effect(target,{name:'sha',isCard:true},player,player); }); 'step 1' if(result.bool){ @@ -11913,7 +11913,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ gzxiaoguo_info:'其他角色的结束阶段开始时,你可以弃置一张基本牌,令该角色选择一项:1.弃置一张装备牌;2.受到你对其造成的1点伤害。', gzdangxian:'当先', - gzdangxian_info:'锁定技。当你首次明置此武将牌时,你获得一枚“”标记。回合开始时,你获得一个额外的出牌阶段。', + gzdangxian_info:'锁定技。当你首次明置此武将牌时,你获得一枚“先驱”标记。回合开始时,你获得一个额外的出牌阶段。', gzhuanshi:'缓释', gzhuanshi_info:'一名己方角色的判定牌生效前,你可打出一张牌代替之。', gzhongyuan:'弘援',