diff --git a/audio/die/mb_chengui.mp3 b/audio/die/mb_chengui.mp3
new file mode 100644
index 000000000..a7839954a
Binary files /dev/null and b/audio/die/mb_chengui.mp3 differ
diff --git a/audio/die/mb_huban.mp3 b/audio/die/mb_huban.mp3
new file mode 100644
index 000000000..12168b9ef
Binary files /dev/null and b/audio/die/mb_huban.mp3 differ
diff --git a/audio/skill/guimou1.mp3 b/audio/skill/guimou1.mp3
new file mode 100644
index 000000000..3def1478a
Binary files /dev/null and b/audio/skill/guimou1.mp3 differ
diff --git a/audio/skill/guimou2.mp3 b/audio/skill/guimou2.mp3
new file mode 100644
index 000000000..b51a9eba1
Binary files /dev/null and b/audio/skill/guimou2.mp3 differ
diff --git a/audio/skill/mbyilie1.mp3 b/audio/skill/mbyilie1.mp3
new file mode 100644
index 000000000..de6dd30ab
Binary files /dev/null and b/audio/skill/mbyilie1.mp3 differ
diff --git a/audio/skill/mbyilie2.mp3 b/audio/skill/mbyilie2.mp3
new file mode 100644
index 000000000..330ffad7b
Binary files /dev/null and b/audio/skill/mbyilie2.mp3 differ
diff --git a/audio/skill/mbyilie3.mp3 b/audio/skill/mbyilie3.mp3
new file mode 100644
index 000000000..5327cc5dd
Binary files /dev/null and b/audio/skill/mbyilie3.mp3 differ
diff --git a/audio/skill/zhouxian1.mp3 b/audio/skill/zhouxian1.mp3
new file mode 100644
index 000000000..4fa51512b
Binary files /dev/null and b/audio/skill/zhouxian1.mp3 differ
diff --git a/audio/skill/zhouxian2.mp3 b/audio/skill/zhouxian2.mp3
new file mode 100644
index 000000000..e30f85815
Binary files /dev/null and b/audio/skill/zhouxian2.mp3 differ
diff --git a/character/huicui.js b/character/huicui.js
index a8074ce36..ecd18cae2 100644
--- a/character/huicui.js
+++ b/character/huicui.js
@@ -6882,7 +6882,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
initList:function(){
var list,skills=[];
- var banned=['xunyi'];
+ var banned=['xunyi','mbyilie'];
if(get.mode()=='guozhan'){
list=[];
for(var i in lib.characterPack.mode_guozhan) list.push(i);
@@ -10952,6 +10952,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mengyou:['mengyou','ns_mengyou'],
zhangchu:['zhangchu','jsrg_zhangchu'],
xianglang:['xianglang','mb_xianglang'],
+ chengui:['chengui','mb_chengui'],
},
translate:{
re_panfeng:'潘凤',
diff --git a/character/mobile.js b/character/mobile.js
index 86f27f611..172172d56 100644
--- a/character/mobile.js
+++ b/character/mobile.js
@@ -26,6 +26,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
character:{
+ mb_chengui:['male','qun',3,['guimou','zhouxian']],
mb_xianglang:['male','shu',3,['naxue','yijie']],
yanxiang:['male','qun',3,['kujian','twruilian'],['character:tw_yanxiang','die_audio:tw_yanxiang']],
mb_sunluyu:['female','wu',3,['mbmeibu','mbmumu']],
@@ -389,6 +390,327 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
+ //陈珪
+ guimou:{
+ audio:2,
+ trigger:{
+ global:'phaseBefore',
+ player:['enterGame','phaseEnd','phaseZhunbeiBegin'],
+ },
+ filter:function(event,player,name){
+ if(event.name=='phaseZhunbei'||name=='phaseEnd') return true;
+ return event.name!='phase'||game.phaseNumber==0;
+ },
+ direct:true,
+ locked:true,
+ content:function*(event,map){
+ var player=map.player,trigger=map.trigger;
+ if(trigger.name!='phaseZhunbei'){
+ player.logSkill('guimou');
+ var result,choiceList=[
+ '惩罚期间使用牌最少的角色',
+ '惩罚期间弃置牌最少的角色',
+ '惩罚期间得到牌最少的角色',
+ ];
+ if(trigger.name!='phase'||game.phaseNumber==0) result={index:get.rand(0,2)};
+ else result=yield player.chooseControl().set('choiceList',choiceList).set('ai',()=>get.rand(0,2));
+ var str=choiceList[result.index];
+ game.log(player,'选择','#g'+str);
+ player.addSkill('guimou_'+result.index);
+ return;
+ }
+ var targets=[];
+ for(var i=0;i<=2;i++){
+ var skill='guimou_'+i;
+ if(player.hasSkill(skill)){
+ var storage=player.storage[skill];
+ var targetx=storage[0].sort((a,b)=>storage[1][storage[0].indexOf(a)]-storage[1][storage[0].indexOf(b)]);
+ targetx=targetx.filter(target=>storage[1][storage[0].indexOf(target)]==storage[1][storage[0].indexOf(targetx[0])]);
+ targets.addArray(targetx);
+ player.removeSkill(skill);
+ }
+ }
+ targets=targets.filter(target=>target!=player);
+ if(targets.length){
+ var result=yield player.chooseTarget('请选择【诡谋】的目标','观看一名可选择的角色的手牌并选择其中至多三张牌,然后你可以将其中至多两张牌交给另一名其他角色,然后弃置剩余的牌',(card,player,target)=>{
+ return _status.event.targets.includes(target)&&target.countCards('h');
+ },true).set('ai',target=>{
+ return Math.sqrt(Math.min(3,target.countCards('h')))*get.effect(target,{name:'guohe_copy2'},player,player);
+ }).set('targets',targets);
+ if(result.bool){
+ var target=result.targets[0];
+ player.logSkill('guimou',target);
+ var result2=yield player.choosePlayerCard(target,'h','visible','并选择其中至多三张牌,然后你可以将其中至多两张牌交给另一名其他角色,然后弃置剩余的牌',[1,3],true).set('ai',button=>get.value(button.link));
+ if(result2.bool){
+ var cards=result2.links.slice();
+ var result3;
+ if(!game.hasPlayer(targetx=>targetx!=player&&targetx!=target)) result3={bool:false};
+ else result3=yield player.chooseCardButton('是否将其中至多两张牌交给另一名其他角色',cards,[1,Math.min(2,cards.length)]).set('ai',button=>{
+ var player=_status.event.player;
+ if(!game.hasPlayer(target=>target!=player&&target!=_status.event.target&&get.attitude(player,target)>0)) return 0;
+ return get.value(button.link,_status.event.player);
+ }).set('target',target);
+ if(result3.bool){
+ var result4=yield player.chooseTarget('请选择获得'+get.translation(result3.links)+'的目标',(card,player,target)=>{
+ return target!=player&&target!=_status.event.target;
+ }).set('ai',target=>get.attitude(_status.event.player,target)).set('target',target);
+ if(result4.bool){
+ var targetx=result4.targets[0];
+ player.line(targetx);
+ targetx.gain(result3.links,target,'give');
+ cards.removeArray(result3.links);
+ }
+ }
+ if(cards.length) target.discard(cards).discarder=player;
+ }
+ }
+ }
+ },
+ subSkill:{
+ '0':{
+ charlotte:true,
+ onremove:true,
+ init:function(player,skill){
+ if(!player.storage[skill]){
+ player.storage[skill]=[[],[]];
+ var targets=game.filterPlayer().sortBySeat(player);
+ targets.forEach(target=>{
+ player.storage[skill][0].push(target);
+ player.storage[skill][1].push(0);
+ });
+ }
+ },
+ mark:true,
+ intro:{
+ markcount:storage=>0,
+ content:function(storage,player){
+ var str='当前使用牌数排行榜';
+ var lose=storage[1].slice().sort((a,b)=>a-b)[0];
+ storage[0].forEach(target=>{
+ str+='