diff --git a/audio/die/caoxi.mp3 b/audio/die/caoxi.mp3 new file mode 100644 index 000000000..bc942b30f Binary files /dev/null and b/audio/die/caoxi.mp3 differ diff --git a/audio/die/yj_qiaozhou.mp3 b/audio/die/yj_qiaozhou.mp3 new file mode 100644 index 000000000..59ec3e9ef Binary files /dev/null and b/audio/die/yj_qiaozhou.mp3 differ diff --git a/audio/skill/jiangxi1.mp3 b/audio/skill/jiangxi1.mp3 new file mode 100644 index 000000000..e05383eec Binary files /dev/null and b/audio/skill/jiangxi1.mp3 differ diff --git a/audio/skill/jiangxi2.mp3 b/audio/skill/jiangxi2.mp3 new file mode 100644 index 000000000..30c04db63 Binary files /dev/null and b/audio/skill/jiangxi2.mp3 differ diff --git a/audio/skill/olgangshu1.mp3 b/audio/skill/olgangshu1.mp3 new file mode 100644 index 000000000..116f207f3 Binary files /dev/null and b/audio/skill/olgangshu1.mp3 differ diff --git a/audio/skill/olgangshu2.mp3 b/audio/skill/olgangshu2.mp3 new file mode 100644 index 000000000..ec3be9199 Binary files /dev/null and b/audio/skill/olgangshu2.mp3 differ diff --git a/audio/skill/oljianxuan1.mp3 b/audio/skill/oljianxuan1.mp3 new file mode 100644 index 000000000..309a8fa3c Binary files /dev/null and b/audio/skill/oljianxuan1.mp3 differ diff --git a/audio/skill/oljianxuan2.mp3 b/audio/skill/oljianxuan2.mp3 new file mode 100644 index 000000000..a027f36b7 Binary files /dev/null and b/audio/skill/oljianxuan2.mp3 differ diff --git a/audio/skill/shiming1.mp3 b/audio/skill/shiming1.mp3 new file mode 100644 index 000000000..79bb1c83e Binary files /dev/null and b/audio/skill/shiming1.mp3 differ diff --git a/audio/skill/shiming2.mp3 b/audio/skill/shiming2.mp3 new file mode 100644 index 000000000..3bd876756 Binary files /dev/null and b/audio/skill/shiming2.mp3 differ diff --git a/character/refresh.js b/character/refresh.js index 4b804c0b3..6c16df7de 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -167,6 +167,56 @@ game.import('character',function(lib,game,ui,get,ai,_status){ re_guohuai:['xiahouyuan','zhanghe'], }, skill:{ + //界凌统 + olxuanfeng:{ + audio:2, + audioname2:{ + lingtong:'xuanfeng', + }, + trigger:{ + player:['loseAfter'], + global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter','addToExpansionAfter'], + }, + filter:function(event,player){ + var evt=event.getl(player); + return evt&&(evt.es.length||evt.cards2.length>1); + }, + direct:true, + content:function(){ + 'step 0' + event.count=2; + event.logged=false; + 'step 1' + player.chooseTarget(get.prompt('olxuanfeng'),'弃置一名其他角色的一张牌',function(card,player,target){ + if(player==target) return false; + return target.countDiscardableCards(player,'he'); + }).set('ai',function(target){ + return -get.attitude(_status.event.player,target); + }); + 'step 2' + if(result.bool){ + if(!event.logged){ + player.logSkill('olxuanfeng',result.targets); + event.logged=true; + } + else player.line(result.targets[0],'green'); + player.discardPlayerCard(result.targets[0],'he',true); + event.count--; + } + else event.finish(); + 'step 3' + if(event.count) event.goto(1); + }, + ai:{ + effect:{ + target:function(card,player,target,current){ + if(get.type(card)=='equip'&&!get.cardtag(card,'gifts')) return [1,3]; + } + }, + reverseEquip:true, + noe:true + }, + }, ollianhuan:{ audio:'xinlianhuan', audioname:['ol_pangtong'], @@ -15378,6 +15428,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ caoren_prefix:'界', ollianhuan:'连环', ollianhuan_info:'你可以将一张♣牌当【铁索连环】使用或重铸。你使用【铁索连环】选择目标后,可以给此牌增加一个目标。', + ol_lingtong:'OL界凌统', + ol_lingtong_prefix:'OL界', + olxuanfeng:'旋风', + olxuanfeng_info:'当你一次性失去超过两张牌后,或失去装备区的牌后,你可以依次弃置一至两名其他角色的共计两张牌。', refresh_standard:'界限突破·标', refresh_feng:'界限突破·风', diff --git a/character/sp.js b/character/sp.js index 0e2509b0b..7181a7eb0 100755 --- a/character/sp.js +++ b/character/sp.js @@ -13,7 +13,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sp_huben:['duanjiong','ol_mengda',"caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng","wuyan","ol_zhuling","tianyu","huojun",'zhaoyǎn','dengzhong','ol_furong','macheng','ol_zhangyì','ol_zhujun','maxiumatie','luoxian','ol_huban','haopu','ol_qianzhao'], sp_liesi:['mizhu','weizi','ol_liuba','zhangshiping'], sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao','sp_ol_zhanghe','sp_menghuo'], - sp_waitforsort:['ol_luyusheng','ol_pengyang','ol_tw_zhangji','ol_feiyi','lvboshe','zhangyan','ol_dingshangwan'], + sp_waitforsort:['ol_luyusheng','ol_pengyang','ol_tw_zhangji','ol_feiyi','lvboshe','zhangyan','ol_dingshangwan','ol_liwan'], sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv','jin_zhouchu'], sp_wanglang:['ol_wanglang','ol_puyuan','ol_zhouqun'], sp_zhongdan:["cuiyan","huangfusong"], @@ -33,6 +33,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, character:{ + ol_liwan:['female','wei',3,['ollianju','olsilv']], ol_dingshangwan:['female','wei',3,['olfudao','olfengyan']], zhangyan:['male','qun',4,['olsuji','ollangdao']], ol_tw_zhangji:['male','wei',3,['skill_zhangji_A','skill_zhangji_B'],['unseen']], @@ -707,6 +708,118 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, skill:{ + //李婉 + ollianju:{ + audio:2, + trigger:{player:'phaseJieshuBegin'}, + filter:function(event,player){ + var history=player.getHistory('useCard'); + if(!history.length) return false; + var evt=history[history.length-1]; + return evt.cards&&evt.cards.filterInD('d').length; + }, + direct:true, + content:function(){ + 'step 0' + var history=player.getHistory('useCard'); + var evt=history[history.length-1]; + event.evt=evt; + player.chooseTarget(get.prompt('ollianju'),'令一名角色获得'+get.translation(evt.cards.filterInD('d'))+'并记录'+get.translation(evt.card.name),lib.filter.notMe).set('ai',target=>{ + var player=_status.event.player,att=get.attitude(player,target); + var cards=_status.event.cards; + if(cards.filter(card=>get.name(card,false)=='du').length>=Math.ceil(cards.length/2)) att*=-1; + if(target.skipList.contains('phaseUse')||target.hasJudge('lebu')) return att/20; + return att; + }).set('cards',evt.cards.filterInD('d')); + 'step 1' + if(result.bool){ + var evt=event.evt; + var target=result.targets[0]; + player.logSkill('oliandui',target); + target.gain(evt.cards.filterInD('d'),'gain2'); + player.addSkill('ollianju_effect'); + player.storage.ollianju=evt.card.name; + player.markSkill('ollianju'); + if(!player.storage.ollianju_effect[target.playerid]) player.storage.ollianju_effect[target.playerid]=[]; + player.storage.ollianju_effect[target.playerid].add(evt.card.name); + } + }, + onunmark:true, + intro:{ + content:function(storage,player){ + var str='当前最后一次记录牌名:'+get.translation(storage); + if(player.storage.ollianju_effect){ + for(var i in player.storage.ollianju_effect){ + var target=game.findPlayer(target=>target.playerid==i); + if(!i) continue; + str+='
'; + str+=get.translation(target)+'的下个结束阶段,其可令你获得其本回合使用的最后一张牌对应的所有位于弃牌堆的实体牌'; + str+=',然后若此牌名为'+get.translation(player.storage.ollianju_effect[i])+',则你失去1点体力'; + } + } + return str; + }, + }, + subSkill:{ + effect:{ + init:function(player){ + if(!player.storage.ollianju_effect) player.storage.ollianju_effect={}; + }, + charlotte:true, + trigger:{global:['phaseJieshuBegin','die']}, + filter:function(event,player){ + return player.storage.ollianju_effect[event.player.playerid]; + }, + direct:true, + content:function(){ + 'step 0' + if(trigger.name=='phaseJieshu') event.list=player.storage.ollianju_effect[trigger.player.playerid]; + delete player.storage.ollianju_effect[trigger.player.playerid]; + var history=trigger.player.getHistory('useCard'); + var evt=history[history.length-1]; + event.evt=evt; + if(trigger.name=='die'||!history.length||!evt.cards||!evt.cards.filterInD('d').length) event.finish(); + 'step 1' + var evt=event.evt; + trigger.player.chooseBool(get.prompt('ollianju',player),'令'+get.translation(player)+'获得'+get.translation(evt.cards.filterInD('d'))+(event.list.contains(evt.card.name)?',然后'+get.translation(player)+'失去1点体力':'')).set('choice',get.attitude(trigger.player,player)>0&&(!event.list.contains(evt.card.name)||player.getHp()>1)); + 'step 2' + if(result.bool){ + var evt=event.evt; + trigger.player.line(player); + player.gain(evt.cards.filterInD('d'),'gain2'); + if(event.list.contains(evt.card.name)) player.loseHp(); + } + }, + }, + }, + }, + olsilv:{ + audio:2, + trigger:{ + player:['loseAfter','gainAfter'], + global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter','addToExpansionAfter'], + }, + filter:function(event,player){ + var name=player.storage.ollianju; + if(!name) return false; + if(event.getg) return event.getg(player).some(card=>card.name==name); + return event.getl(player).cards2.some(card=>card.name==name); + }, + forced:true, + usable:1, + content:function(){ + 'step 0' + if(!trigger.visible){ + var cards,name=player.storage.ollianju; + if(trigger.getg) cards=trigger.getg(player).filter(card=>card.name==name); + else cards=trigger.getl(player).cards2.filter(card=>card.name==name); + if(cards.length) player.showCards(cards,get.translation(player)+'发动了【思闾】'); + } + 'step 1' + player.draw(); + }, + ai:{combo:'ollianju'}, + }, //丁尚涴 olfudao:{ audio:2, @@ -26048,6 +26161,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ olfudao_info:'①游戏开始时,你选择弃置或摸至多四张牌,然后记录你的手牌数。②一名角色的回合结束时,若其手牌数和你发动〖抚悼①〗记录的数值相同,则你可以与其各摸一张牌。', olfengyan:'讽言', olfengyan_info:'锁定技。①当你受到其他角色造成的伤害后,你摸一张牌,然后交给其一张牌。②当你响应其他角色使用的牌时,其摸一张牌,然后弃置两张牌。', + ol_liwan:'OL李婉', + ol_liwan_prefix:'OL', + ollianju:'联句', + ollianju_info:'结束阶段,你可以令一名其他角色获得你本回合使用的最后一张牌A对应的所有位于弃牌堆的实体牌并记录A的牌名,然后其下个结束阶段可以令你获得其本回合使用的最后一张牌B对应的所有位于弃牌堆的实体牌,且若A与B的牌名相同,则你失去1点体力。', + olsilv:'思闾', + olsilv_info:'锁定技,每回合限一次,当你获得或失去你发动〖联句〗记录的最后一次牌名的同名牌后,你展示这些牌,然后摸一张牌。', sp_tianji:'天极·皇室宗亲', diff --git a/character/yijiang.js b/character/yijiang.js index ec2fca16c..adbf3be78 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -44,7 +44,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ zhuran:['male','wu',4,['danshou']], xusheng:['male','wu',4,['xinpojun']], wuguotai:['female','wu',3,['ganlu','buyi']], - lingtong:['male','wu',4,['xuanfeng']], + lingtong:['male','wu',4,['olxuanfeng']], liubiao:['male','qun',3,['rezishou','zongshi']], yufan:['male','wu',3,['zhiyan','zongxuan']], chengong:['male','qun',3,['mingce','zhichi']], @@ -13965,6 +13965,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ liyan:['liyan','old_liyan'], zhangsong:['zhangsong','re_zhangsong'], zhongyao:['zhongyao','re_zhongyao'], + liwan:['ol_liwan','liwan'], }, translate:{ old_huaxiong:'将华雄', diff --git a/image/character/ol_liwan.jpg b/image/character/ol_liwan.jpg new file mode 100644 index 000000000..6727be3e5 Binary files /dev/null and b/image/character/ol_liwan.jpg differ