commit
6c4400f9da
|
@ -3731,7 +3731,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
list.remove('锁定技');
|
||||
if(list.length>0) continue;
|
||||
var info=get.info(skill);
|
||||
if(info&&(!info.unique||info.gainable)) skills.add(skill);
|
||||
if(info&&(!info.unique||info.gainable)){
|
||||
lib.skill.rehuashen.createAudio(name,skill,'jsrg_xushao');
|
||||
skills.add(skill);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1212,7 +1212,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
target.turnOver(false);
|
||||
},
|
||||
getNum:function(player){
|
||||
return Math.max(2,Math.floor(4-player.countCards('e',card=>get.subtype(card)!='equip5')/2));
|
||||
return player.countCards('e',card=>get.subtype(card)!='equip5')>=3?2:3;
|
||||
},
|
||||
ai:{
|
||||
expose:0.2,
|
||||
|
@ -15723,7 +15723,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
mbhuiyao:'慧夭',
|
||||
mbhuiyao_info:'出牌阶段限一次。你可以受到1点无来源伤害,然后你选择一名其他角色,令其视为对另一名角色造成过1点伤害。',
|
||||
mbquesong:'雀颂',
|
||||
mbquesong_info:'一名角色的结束阶段,若你于本回合受到过伤害,你可以令一名角色选择一项:1.摸X张牌并复原武将牌(X为4-其装备区非宝物牌牌数的一半,X向下取整且至少为2);2.回复1点体力。',
|
||||
mbquesong_info:'一名角色的结束阶段,若你于本回合受到过伤害,你可以令一名角色选择一项:1.摸X张牌并复原武将牌(X为3,若其装备区非宝物牌牌数不小于三张则X为2);2.回复1点体力。',
|
||||
xin_yuanshao:'手杀界袁绍',
|
||||
xin_yuanshao_prefix:'手杀界',
|
||||
re_baosanniang:'手杀鲍三娘',
|
||||
|
|
|
@ -579,10 +579,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var top=[],att=get.sgn(get.attitude(player,target));
|
||||
if(judges.length&&att!=0&&(target!=player||!player.hasWuxie())){
|
||||
for(var i=0;i<judges.length;i++){
|
||||
var judge=get.judge(judges[i])*att;
|
||||
cards.sort((a,b)=>judge(b)-judge(a));
|
||||
if(judge(cards[0])>0) top.unshift(cards.shift());
|
||||
else break;
|
||||
var judge=(card,num)=>get.judge(card)*num;
|
||||
cards.sort((a,b)=>judge(b,att)-judge(a,att));
|
||||
if(judge(cards[0],att)<0) break;
|
||||
else top.unshift(cards.shift());
|
||||
}
|
||||
}
|
||||
return [cards,top];
|
||||
|
@ -763,7 +763,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
discard:false,
|
||||
lose:false,
|
||||
delay:0,
|
||||
usable:2,
|
||||
usable:3,
|
||||
prompt:'将一张红色牌交给一名角色并令其获得此花色的“天香”标记',
|
||||
content:function(){
|
||||
player.give(cards,target);
|
||||
|
@ -803,6 +803,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
target.removeSkill(skills);
|
||||
num+=skills.length;
|
||||
});
|
||||
if(get.mode()=='versus'&&_status.mode=='two') num+=2;
|
||||
player.draw(num);
|
||||
},
|
||||
},
|
||||
|
@ -5715,7 +5716,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sb_xiaoqiao:'谋小乔',
|
||||
sb_xiaoqiao_prefix:'谋',
|
||||
sbtianxiang:'天香',
|
||||
sbtianxiang_info:'①出牌阶段限两次,你可以交给一名没有“天香”标记的其他角色一张红色牌,然后令其获得此牌花色的“天香”标记。②当你受到伤害时,你可以移去一名角色的“天香”标记,若此“天香”标记为:红桃,你防止此伤害,其受到伤害来源对其造成的1点伤害(若没有伤害来源则改为无来源伤害);方片,其交给你两张牌。③准备阶段,你移去场上所有的“天香”标记,然后摸等量的牌。',
|
||||
sbtianxiang_info:'①出牌阶段限三次,你可以交给一名没有“天香”标记的其他角色一张红色牌,然后令其获得此牌花色的“天香”标记。②当你受到伤害时,你可以移去一名角色的“天香”标记,若此“天香”标记为:红桃,你防止此伤害,其受到伤害来源对其造成的1点伤害(若没有伤害来源则改为无来源伤害);方片,其交给你两张牌。③准备阶段,你移去场上所有的“天香”标记,然后摸等量的牌。',
|
||||
sbtianxiang_info_versus_two:'①出牌阶段限三次,你可以交给一名没有“天香”标记的其他角色一张红色牌,然后令其获得此牌花色的“天香”标记。②当你受到伤害时,你可以移去一名角色的“天香”标记,若此“天香”标记为:红桃,你防止此伤害,其受到伤害来源对其造成的1点伤害(若没有伤害来源则改为无来源伤害);方片,其交给你两张牌。③准备阶段,你移去场上所有的“天香”标记,然后摸X张牌(X为移去的“天香”标记数+2)。',
|
||||
sb_sp_zhugeliang:'谋诸葛亮',
|
||||
sb_sp_zhugeliang_prefix:'谋',
|
||||
sb_zhugeliang:'谋诸葛亮',
|
||||
|
|
|
@ -10596,6 +10596,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
olzaowang:{
|
||||
mode:['identity'],
|
||||
available:function(mode){
|
||||
if(mode=='identity'&&_status.mode=='purple') return false;
|
||||
},
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
limited:true,
|
||||
|
@ -17668,7 +17671,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
else num=get.population('fan');
|
||||
}
|
||||
else if(mode=='versus'){
|
||||
num=player.getEnemies().length;
|
||||
if(!_status.mode||_status.mode!='two') num=player.getEnemies().length;
|
||||
else{
|
||||
var target=game.findPlayer(x=>{
|
||||
var num=x.getFriends().length;
|
||||
return !game.hasPlayer(y=>{
|
||||
return x!=y&&y.getFriends().length>num;
|
||||
});
|
||||
});
|
||||
num=(target?target.getFriends(true).length:1);
|
||||
}
|
||||
}
|
||||
else{
|
||||
num=1;
|
||||
|
@ -19871,18 +19883,45 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
fenxin:{
|
||||
mode:['identity'],
|
||||
mode:['identity','versus'],
|
||||
available:function(mode){
|
||||
if(mode=='identity'&&_status.mode=='purple') return false;
|
||||
if(mode=='versus'&&_status.mode!='two') return false;
|
||||
},
|
||||
trigger:{global:'dieAfter'},
|
||||
trigger:{global:['dieAfter','damageEnd']},
|
||||
filter:function(event,player){
|
||||
return ['fan','zhong','nei'].contains(event.player.identity)&&!player.hasSkill('fenxin_'+event.player.identity);
|
||||
var list=['fan','zhong','nei'];
|
||||
if(get.mode()=='identity') return event.name=='die'&&list.includes(event.player.identity)&&!player.hasSkill('fenxin_'+event.player.identity);
|
||||
return event.name=='damage'&&event.player!=player&&list.some(identity=>!player.hasSkill('fenxin_'+identity))&&event.player.getHistory('damage').indexOf(event)==0;
|
||||
},
|
||||
forced:true,
|
||||
logTarget:'player',
|
||||
content:function(){
|
||||
player.addSkill('fenxin_'+trigger.player.identity);
|
||||
player.markSkill('fenxin');
|
||||
'step 0'
|
||||
if(get.mode()=='identity'){
|
||||
event._result={
|
||||
bool:true,
|
||||
links:['fenxin_'+trigger.player.identity],
|
||||
};
|
||||
}
|
||||
else{
|
||||
player.chooseButton([
|
||||
'焚心:请选择〖竭缘〗的升级方式',
|
||||
[[
|
||||
['fenxin_fan','发动〖竭缘〗增加伤害无体力值限制'],
|
||||
['fenxin_zhong','发动〖竭缘〗减少伤害无体力值限制'],
|
||||
['fenxin_nei','将〖竭缘〗中的黑色手牌和红色手牌改为一张牌'],
|
||||
].filter(list=>!player.hasSkill(list[0])),'textbutton']
|
||||
],true).set('ai',function(button){
|
||||
return ['fenxin_fan','fenxin_zhong','fenxin_nei'].indexOf(button.link)+1;
|
||||
});
|
||||
}
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var ideitity=result.links[0];
|
||||
player.addSkill(identity);
|
||||
player.markSkill('fenxin');
|
||||
}
|
||||
},
|
||||
intro:{
|
||||
mark:function(dialog,content,player){
|
||||
|
@ -19902,9 +19941,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhong:{charlotte:true},
|
||||
nei:{charlotte:true}
|
||||
},
|
||||
ai:{
|
||||
combo:'jieyuan'
|
||||
}
|
||||
ai:{combo:'jieyuan'},
|
||||
},
|
||||
xisheng:{
|
||||
enable:'chooseToUse',
|
||||
|
@ -25754,6 +25791,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
hongde_info:'当你一次获得或失去至少两张牌后,你可以令一名其他角色摸一张牌。',
|
||||
dingpan:'定叛',
|
||||
dingpan_info_identity:'出牌阶段限X次,你可以令一名装备区里有牌的角色摸一张牌,然后其选择一项:1.令你弃置其装备区里的一张牌;2.获得其装备区里的所有牌,若如此做,你对其造成1点伤害。(X为场上存活的反贼数)',
|
||||
dingpan_info_versus_two:'出牌阶段限X次,你可以令一名装备区里有牌的角色摸一张牌,然后其选择一项:1.令你弃置其装备区里的一张牌;2.获得其装备区里的所有牌,若如此做,你对其造成1点伤害。(X为场上存活的最大阵营角色数)',
|
||||
dingpan_info_versus:'出牌阶段限X次,你可以令一名装备区里有牌的角色摸一张牌,然后其选择一项:1.令你弃置其装备区里的一张牌;2.获得其装备区里的所有牌,若如此做,你对其造成1点伤害。(X为场上存活的敌方角色数)',
|
||||
dingpan_info:'出牌阶段限一次,你可以令一名装备区里有牌的角色摸一张牌,然后其选择一项:1.令你弃置其装备区里的一张牌;2.获得其装备区里的所有牌,若如此做,你对其造成1点伤害。',
|
||||
weidi:'伪帝',
|
||||
|
@ -25842,6 +25880,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
jieyuan_info:'当你对一名其他角色造成伤害时,若其体力值大于或等于你的体力值,你可弃置一张黑色手牌,令此伤害+1;当你受到一名其他角色造成的伤害时,若其体力值大于或等于你的体力值,你可弃置一张红色手牌,令此伤害-1。',
|
||||
fenxin:'焚心',
|
||||
fenxin_info:'锁定技,一名其他角色死亡后,若其身份为:忠臣,你本局内发动〖竭缘〗减少伤害时无视体力值限制;反贼,你本局内发动〖竭缘〗增加伤害时无视体力值限制;内奸,你本局内选择发动〖竭缘〗的牌时无颜色和区域限制。',
|
||||
fenxin_info_versus:'锁定技,一名其他角色首次受到伤害后,你选择本局游戏未选择过的一项:1.发动〖竭缘〗减少伤害时无视体力值限制;2.发动〖竭缘〗增加伤害时无视体力值限制;3.发动〖竭缘〗选择的牌时无颜色和区域限制。',
|
||||
qingyi:'轻逸',
|
||||
qingyi1:'轻逸',
|
||||
qingyi2:'轻逸',
|
||||
|
|
|
@ -8297,9 +8297,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.addSkill('pingjian_check');
|
||||
if(!player.storage.pingjian_check) player.storage.pingjian_check={};
|
||||
},
|
||||
onremove:function(player){
|
||||
player.removeSkill('pingjian_check');
|
||||
},
|
||||
audio:2,
|
||||
trigger:{player:['damageEnd','phaseJieshuBegin']},
|
||||
frequent:true,
|
||||
|
@ -8359,12 +8356,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
if(list.length>2) break;
|
||||
}
|
||||
if(skills.length) player.chooseControl(skills).set('dialog',['评鉴:请选择尝试发动的技能',[list,'character']]);
|
||||
if(skills.length){
|
||||
event.list=list;
|
||||
player.chooseControl(skills).set('dialog',['评鉴:请选择尝试发动的技能',[list,'character']]);
|
||||
}
|
||||
else event.finish();
|
||||
'step 1'
|
||||
player.markAuto('pingjian',[result.control]);
|
||||
player.addTempSkill(result.control);
|
||||
player.storage.pingjian_check[result.control]=(trigger.name=='damage'?trigger:'phaseJieshu');
|
||||
var name=event.list.find(name=>lib.character[name][3].includes(result.control));
|
||||
if(name) lib.skill.rehuashen.createAudio(name,result.control,'xushao');
|
||||
},
|
||||
group:'pingjian_use',
|
||||
phaseUse_special:[],
|
||||
|
@ -8442,12 +8444,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
if(list.length>2) break;
|
||||
}
|
||||
if(skills.length) player.chooseControl(skills).set('dialog',['评鉴:请选择尝试发动的技能',[list,'character']]);
|
||||
if(skills.length){
|
||||
event.list=list;
|
||||
player.chooseControl(skills).set('dialog',['评鉴:请选择尝试发动的技能',[list,'character']]);
|
||||
}
|
||||
else event.finish();
|
||||
'step 1'
|
||||
player.markAuto('pingjian',[result.control]);
|
||||
player.addTempSkill(result.control);
|
||||
player.storage.pingjian_check[result.control]='phaseUse';
|
||||
var name=event.list.find(name=>lib.character[name][3].includes(result.control));
|
||||
if(name) lib.skill.rehuashen.createAudio(name,result.control,'xushao');
|
||||
},
|
||||
ai:{order:12,result:{player:1}},
|
||||
},
|
||||
|
@ -8455,7 +8462,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
charlotte:true,
|
||||
trigger:{player:['useSkill','logSkillBegin']},
|
||||
filter:function(event,player){
|
||||
if(get.info(event.skill).charlotte) return false;
|
||||
var info=get.info(event.skill);
|
||||
if(info&&info.charlotte) return false;
|
||||
var skill=event.sourceSkill||event.skill;
|
||||
return player.storage.pingjian_check[skill];
|
||||
},
|
||||
|
|
31
game/game.js
31
game/game.js
|
@ -43166,25 +43166,23 @@ new Promise(resolve=>{
|
|||
lib.translate[`${iInfo}_origin`]=lib.translate[iInfo];
|
||||
if(!lib.config.vintageSkills.contains(i)) lib.translate[iInfo]=lib.translate[`${iInfo}_alter`];
|
||||
}
|
||||
else if(_status.mode&&lib.translate[iInfo+'_'+mode+'_'+_status.mode]) lib.translate[iInfo]=lib.translate[iInfo+'_'+mode+'_'+_status.mode];
|
||||
else if(lib.translate[`${iInfo}_${mode}`]) lib.translate[iInfo]=lib.translate[`${iInfo}_${mode}`];
|
||||
else if(lib.translate[`${iInfo}_zhu`]&&(mode=='identity'||mode=='guozhan'&&_status.mode=='four')) lib.translate[iInfo]=lib.translate[`${iInfo}_zhu`];
|
||||
else if(lib.translate[`${iInfo}_combat`]&&get.is.versus()) lib.translate[iInfo]=lib.translate[`${iInfo}_combat`];
|
||||
if(info.forbid&&info.forbid.contains(mode)){
|
||||
lib.skill[i]={};
|
||||
var deleteSkill=function(skill,iInfo){
|
||||
var skillx={},info=get.info(skill);
|
||||
if(info){
|
||||
['audio','audioname','audioname2'].forEach(name=>{
|
||||
if(info[name]) skillx[name]=info[name];
|
||||
});
|
||||
}
|
||||
lib.skill[skill]=skillx;
|
||||
if(lib.translate[iInfo]) lib.translate[iInfo]='此模式下不可用';
|
||||
if(lib.dynamicTranslate[i]) lib.dynamicTranslate[i]=()=>'此模式下不可用';
|
||||
return;
|
||||
}
|
||||
if(info.mode&&info.mode.contains(mode)==false){
|
||||
lib.skill[i]={};
|
||||
if(lib.translate[iInfo]) lib.translate[iInfo]='此模式下不可用';
|
||||
if(lib.dynamicTranslate[i]) lib.dynamicTranslate[i]=()=>'此模式下不可用';
|
||||
return;
|
||||
}
|
||||
if(info.available&&info.available(mode)==false){
|
||||
lib.skill[i]={};
|
||||
if(lib.translate[iInfo]) lib.translate[iInfo]='此模式下不可用';
|
||||
if(lib.dynamicTranslate[i]) lib.dynamicTranslate[i]=()=>'此模式下不可用';
|
||||
if(lib.dynamicTranslate[skill]) lib.dynamicTranslate[skill]=()=>'此模式下不可用';
|
||||
};
|
||||
if((info.forbid&&info.forbid.contains(mode))||(info.mode&&info.mode.contains(mode)==false)||(info.available&&info.available(mode)==false)){
|
||||
deleteSkill(i,iInfo);
|
||||
return;
|
||||
}
|
||||
if(info.viewAs&&typeof info.viewAs!='function'){
|
||||
|
@ -43192,8 +43190,7 @@ new Promise(resolve=>{
|
|||
name:info.viewAs
|
||||
};
|
||||
if(!lib.card[info.viewAs.name]){
|
||||
lib.skill[i]={};
|
||||
lib.translate[iInfo]='技能不可用';
|
||||
deleteSkill(i,iInfo);
|
||||
return;
|
||||
}
|
||||
if(info.ai==undefined) info.ai={};
|
||||
|
|
Loading…
Reference in New Issue