Merge branch 'PR-Branch' of https://github.com/libccy/noname into PR-Branch
This commit is contained in:
commit
4a05e9727b
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -18,6 +18,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
clan_zhongyan:['female','jin',3,['clanguangu','clanxiaoyong','clanbaozu'],['clan:颍川钟氏']],
|
clan_zhongyan:['female','jin',3,['clanguangu','clanxiaoyong','clanbaozu'],['clan:颍川钟氏']],
|
||||||
clan_wangyun:['male','qun',3,['clanjiexuan','clanmingjie','clanzhongliu'],['clan:太原王氏']],
|
clan_wangyun:['male','qun',3,['clanjiexuan','clanmingjie','clanzhongliu'],['clan:太原王氏']],
|
||||||
clan_wanghun:['male','jin',3,['clanfuxun','clanchenya','clanzhongliu'],['clan:太原王氏']],
|
clan_wanghun:['male','jin',3,['clanfuxun','clanchenya','clanzhongliu'],['clan:太原王氏']],
|
||||||
|
clan_zhonghui:['male','wei','3/4',['clanyuzhi','clanxieshu','clanbaozu'],['clan:颍川钟氏']],
|
||||||
},
|
},
|
||||||
characterSort:{
|
characterSort:{
|
||||||
clan:{
|
clan:{
|
||||||
|
@ -25,10 +26,102 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
clan_xun:['clan_xunshu','clan_xunchen','clan_xuncai','clan_xuncan'],
|
clan_xun:['clan_xunshu','clan_xunchen','clan_xuncai','clan_xuncan'],
|
||||||
clan_han:['clan_hanshao','clan_hanrong'],
|
clan_han:['clan_hanshao','clan_hanrong'],
|
||||||
clan_wang:['clan_wangling','clan_wangyun','clan_wanghun'],
|
clan_wang:['clan_wangling','clan_wangyun','clan_wanghun'],
|
||||||
clan_zhong:['clan_zhongyan'],
|
clan_zhong:['clan_zhongyan','clan_zhonghui'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//族钟会
|
||||||
|
clanyuzhi:{
|
||||||
|
mod:{
|
||||||
|
aiOrder:function(player,card,num){
|
||||||
|
if(card.name=='tao') return num/114514;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
audio:2,
|
||||||
|
trigger:{global:'roundStart'},
|
||||||
|
direct:true,
|
||||||
|
locked:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var num1=0,num2=0,num3=0,bool=true;
|
||||||
|
var history=player.actionHistory;
|
||||||
|
for(var i=history.length-2;i>=0;i--){
|
||||||
|
for(var evt of history[i].gain){
|
||||||
|
if(evt.getParent().name=='draw'&&evt.getParent(2).name=='clanyuzhi'){
|
||||||
|
if(bool) num1+=evt.cards.length;
|
||||||
|
else num2+=evt.cards.length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(bool) num3+=history[i].useCard.length;
|
||||||
|
if(history[i].isRound){
|
||||||
|
if(bool) bool=false;
|
||||||
|
else break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
event.num1=num1;
|
||||||
|
if(num1>0&&(num2>0&&num1>num2)||num1>num3){
|
||||||
|
player.logSkill('clanyuzhi');
|
||||||
|
if(num2>0&&num1>num2) game.log(player,'的野心已开始膨胀','#y('+num1+'张>'+num2+'张)');
|
||||||
|
if(num1>num3) game.log(player,'的行动未达到野心','#y('+num3+'张<'+num1+'张)');
|
||||||
|
if(player.hasSkill('clanbaozu',null,false,false)) player.chooseBool('迂志:是否失去〖保族〗?','若选择“否”,则你失去1点体力').set('choice',player.awakenedSkills.contains('clanbaozu'));
|
||||||
|
else event._result={bool:false};
|
||||||
|
}
|
||||||
|
else event.goto(2);
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
player.removeSkill('clanbaozu');
|
||||||
|
player.popup('保族');
|
||||||
|
game.log(player,'失去了技能','#g【保族】');
|
||||||
|
}
|
||||||
|
else player.loseHp();
|
||||||
|
'step 2'
|
||||||
|
if(!player.countCards('h')) event.finish();
|
||||||
|
'step 3'
|
||||||
|
player.chooseCard('迂志:请展示一张手牌','摸此牌牌名字数的牌。下一轮开始时,若本轮你使用的牌数或上一轮你以此法摸的牌数小于此牌牌名字数,则你失去1点体力。',true,function(card,player){
|
||||||
|
var num=lib.skill.dcweidang.getLength(card);
|
||||||
|
return typeof num=='number'&&num>0;
|
||||||
|
}).set('ai',function(card){
|
||||||
|
if(_status.event.dying&&_status.event.num>0&&lib.skill.dcweidang.getLength(card)>_status.event.num) return 1/lib.skill.dcweidang.getLength(card);//怂
|
||||||
|
return lib.skill.dcweidang.getLength(card);//勇
|
||||||
|
}).set('dying',player.hp+player.countCards('hs',{name:['tao','jiu']})<1).set('num',event.num);
|
||||||
|
'step 4'
|
||||||
|
if(result.bool){
|
||||||
|
player.logSkill('clanyuzhi');
|
||||||
|
player.showCards(result.cards,get.translation(player)+'发动了【迂志】');
|
||||||
|
player.draw(lib.skill.dcweidang.getLength(result.cards[0]));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
threaten:3,
|
||||||
|
nokeep:true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
clanxieshu:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'damageEnd',source:'damageSource'},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(!event.card) return false;
|
||||||
|
var num=lib.skill.dcweidang.getLength(event.card);
|
||||||
|
return typeof num=='number'&&num>0&&player.countCards('he');
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var num=lib.skill.dcweidang.getLength(trigger.card),str='';
|
||||||
|
if(player.getDamagedHp()>0) str+=('并摸'+get.cnNumber(player.getDamagedHp())+'张牌');
|
||||||
|
player.chooseToDiscard(get.prompt('clanxieshu'),'弃置'+get.cnNumber(num)+'张牌'+str,'he',num).set('ai',function(card){
|
||||||
|
var player=_status.event.player;
|
||||||
|
var num=_status.event.num;
|
||||||
|
var num2=player.getDamagedHp();
|
||||||
|
if(num>num2) return 7-get.value(card);
|
||||||
|
if(num==num2) return lib.skill.zhiheng.check(card);
|
||||||
|
return 0;
|
||||||
|
}).set('num',num).logSkill='clanxieshu';
|
||||||
|
'step 1'
|
||||||
|
if(result.bool&&player.getDamagedHp()>0) player.draw(player.getDamagedHp());
|
||||||
|
},
|
||||||
|
ai:{threaten:3},
|
||||||
|
},
|
||||||
//族王浑
|
//族王浑
|
||||||
clanfuxun:{
|
clanfuxun:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -644,16 +737,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
clanbaozu:{
|
clanbaozu:{
|
||||||
audio:2,
|
audio:2,
|
||||||
audioname:['clan_zhongyan'],
|
audioname:['clan_zhongyan','clan_zhonghui'],
|
||||||
trigger:{
|
trigger:{global:'dying'},
|
||||||
gloabl:'dying',
|
|
||||||
},
|
|
||||||
clanSkill:true,
|
clanSkill:true,
|
||||||
limited:true,
|
limited:true,
|
||||||
skillAnimation:true,
|
skillAnimation:true,
|
||||||
animationColor:'water',
|
animationColor:'water',
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return event.player.hasClan('颍川钟氏')&&event.player.hp<=0&&!event.player.isLinked();
|
return (event.player==player||event.player.hasClan('颍川钟氏'))&&event.player.hp<=0&&!event.player.isLinked();
|
||||||
},
|
},
|
||||||
logTarget:'player',
|
logTarget:'player',
|
||||||
check:function(event,player){
|
check:function(event,player){
|
||||||
|
@ -672,9 +763,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
|
player.awakenSkill('clanbaozu');
|
||||||
|
'step 1'
|
||||||
trigger.player.link(true);
|
trigger.player.link(true);
|
||||||
trigger.player.recover();
|
trigger.player.recover();
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
//族王凌
|
//族王凌
|
||||||
clanbolong:{
|
clanbolong:{
|
||||||
|
@ -2281,6 +2374,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
clanfuxun_info:'出牌阶段限一次。你可以获得或交给一名其他角色一张手牌,然后若其手牌数与你相等且于此阶段仅以此法获得或失去过牌,你可以将一张牌当任意基本牌使用。',
|
clanfuxun_info:'出牌阶段限一次。你可以获得或交给一名其他角色一张手牌,然后若其手牌数与你相等且于此阶段仅以此法获得或失去过牌,你可以将一张牌当任意基本牌使用。',
|
||||||
clanchenya:'沉雅',
|
clanchenya:'沉雅',
|
||||||
clanchenya_info:'当一名角色发动“出牌阶段限一次”的技能后,你可以令其重铸任意张牌名字数为X的牌(X为其手牌数)。',
|
clanchenya_info:'当一名角色发动“出牌阶段限一次”的技能后,你可以令其重铸任意张牌名字数为X的牌(X为其手牌数)。',
|
||||||
|
clan_zhonghui:'族钟会',
|
||||||
|
clanyuzhi:'迂志',
|
||||||
|
clanyuzhi_info:'锁定技。新的一轮开始时,你依次执行以下项:①若你上一轮使用的牌数或你上上轮因〖迂志〗摸的牌数小于你上轮因〖迂志〗摸的牌数,你失去1点体力或失去〖保族〗。②你展示一张手牌,然后摸X张牌(X为此牌牌名字数)。',
|
||||||
|
clanxieshu:'挟术',
|
||||||
|
clanxieshu_info:'当你使用牌造成伤害后,或受到来自牌造成的伤害后,你可以弃置Y张牌并摸你已损失体力值张牌(Y为此牌牌名字数)。',
|
||||||
|
|
||||||
clan_wu:'陈留·吴氏',
|
clan_wu:'陈留·吴氏',
|
||||||
clan_xun:'颍川·荀氏',
|
clan_xun:'颍川·荀氏',
|
||||||
|
|
|
@ -504,8 +504,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var names=map[first];
|
var names=map[first];
|
||||||
return !names.contains(changshi);
|
return !names.contains(changshi);
|
||||||
});
|
});
|
||||||
if(list.length==0) return others.randomGets(1);
|
return list.length?list:others;
|
||||||
return list;
|
|
||||||
}());
|
}());
|
||||||
next.set('ai',button=>{
|
next.set('ai',button=>{
|
||||||
if(button.link=='scs_gaowang') return 10;
|
if(button.link=='scs_gaowang') return 10;
|
||||||
|
@ -1492,6 +1491,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
wuxie:function(){
|
wuxie:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
var trigger=event.getParent().getTrigger();
|
var trigger=event.getParent().getTrigger();
|
||||||
|
if(!trigger.respondTo){event.finish();return;}
|
||||||
var target=trigger.respondTo[0];
|
var target=trigger.respondTo[0];
|
||||||
event.target=target;
|
event.target=target;
|
||||||
if(!target||!target.countGainableCards(player,player==target?'e':'he')) event._result={bool:false};
|
if(!target||!target.countGainableCards(player,player==target?'e':'he')) event._result={bool:false};
|
||||||
|
|
|
@ -9864,7 +9864,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
else if(event.isMine()){
|
else if(event.isMine()){
|
||||||
func(event.videoId);
|
func(event.videoId);
|
||||||
}
|
}
|
||||||
event._result={control:'弃置化身'};
|
event._result={control:'更换技能'};
|
||||||
event.goto(1);
|
event.goto(1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
game.import('character',function(lib,game,ui,get,ai,_status){
|
game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return {
|
return {
|
||||||
name:'shiji',
|
name:'shiji',
|
||||||
|
@ -257,24 +256,44 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
var name=result.links[0][2],target=trigger.player;
|
var name=result.links[0][2],target=trigger.player;
|
||||||
target.addTempSkill('zhengsu',{player:['phaseDiscardAfter','phaseAfter']});
|
target.addTempSkill('houfeng_share',{player:['phaseDiscardAfter','phaseAfter']});
|
||||||
|
target.markAuto('houfeng_share',[player]);
|
||||||
target.addTempSkill(name,{player:['phaseDiscardAfter','phaseAfter']});
|
target.addTempSkill(name,{player:['phaseDiscardAfter','phaseAfter']});
|
||||||
target.popup(name,'thunder');
|
target.popup(name,'thunder');
|
||||||
player.addTempSkill('houfeng_share');
|
|
||||||
game.delayx();
|
game.delayx();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
subSkill:{
|
subSkill:{
|
||||||
share:{
|
share:{
|
||||||
trigger:{global:['drawAfter','recoverAfter']},
|
charlotte:true,
|
||||||
|
onremove:true,
|
||||||
|
trigger:{player:'phaseDiscardEnd'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return lib.skill.zhengsu.filter(event,player);
|
||||||
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
popup:false,
|
popup:false,
|
||||||
charlotte:true,
|
|
||||||
filter:function(event,player){
|
|
||||||
return event.getParent(2).name=='zhengsu';
|
|
||||||
},
|
|
||||||
content:function(){
|
content:function(){
|
||||||
player.chooseDrawRecover(2,true);
|
'step 0'
|
||||||
|
var list=player.getStorage('houfeng_share').filter(i=>i.isIn());
|
||||||
|
list.unshift(player);
|
||||||
|
event.list=list;
|
||||||
|
var num1=0,num2=0;
|
||||||
|
for(var target of list){
|
||||||
|
num1+=get.effect(target,{name:'wuzhong'},player,player);
|
||||||
|
num2+=get.recoverEffect(target,player,player);
|
||||||
|
}
|
||||||
|
if(!list.some(i=>i.isDamaged())) result.index=0;
|
||||||
|
else trigger.player.chooseControl('摸两张牌','回复体力').set('prompt','整肃奖励:请选择'+get.translation(list)+'的整肃奖励').set('ai',function(){
|
||||||
|
return _status.event.goon?0:1;
|
||||||
|
}).set('goon',num1>=num2);
|
||||||
|
'step 1'
|
||||||
|
if(result.index==0) game.asyncDraw(event.list,2);
|
||||||
|
else{
|
||||||
|
for(var i of event.list) i.recover();
|
||||||
|
}
|
||||||
|
'step 2'
|
||||||
|
game.delayx();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -317,9 +336,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
var target=result.targets[0];
|
var target=result.targets[0];
|
||||||
player.logSkill('spzhengjun',target);
|
event.target=target;
|
||||||
target.chooseDrawRecover(2,true);
|
var num1=get.effect(target,{name:'wuzhong'},target,player);
|
||||||
|
var num2=get.recoverEffect(target,target,player);
|
||||||
|
player.line(target);
|
||||||
|
if(target.isHealthy()) result.index=0;
|
||||||
|
else player.chooseControl('摸牌','回血').set('prompt','整肃奖励:令'+get.translation(target)+'摸两张牌或回复1点体力').set('ai',function(){
|
||||||
|
return _status.event.goon?0:1;
|
||||||
|
}).set('goon',num1>=num2);
|
||||||
}
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 2'
|
||||||
|
if(result.index==0) target.draw(2);
|
||||||
|
else target.recover();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -504,7 +533,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
spyanji:{
|
spyanji:{
|
||||||
audio:2,
|
audio:3,
|
||||||
trigger:{player:'phaseUseBegin'},
|
trigger:{player:'phaseUseBegin'},
|
||||||
direct:true,
|
direct:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
|
@ -6435,7 +6464,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
spyanji_info:'出牌阶段开始时,你可以进行“整肃”。',
|
spyanji_info:'出牌阶段开始时,你可以进行“整肃”。',
|
||||||
sp_huangfusong:'手杀皇甫嵩',
|
sp_huangfusong:'手杀皇甫嵩',
|
||||||
spzhengjun:'整军',
|
spzhengjun:'整军',
|
||||||
spzhengjun_info:'①出牌阶段开始时,你可进行“整肃”。②当你因整肃而摸牌或回复体力后,你可令一名其他角色选择摸两张牌或回复1点体力。',
|
spzhengjun_info:'①出牌阶段开始时,你可进行“整肃”。②当你因整肃而摸牌或回复体力后,你可令一名其他角色摸两张牌或回复1点体力。',
|
||||||
spshiji:'势击',
|
spshiji:'势击',
|
||||||
spshiji_info:'当你对其他角色造成属性伤害时,若你的手牌数不为全场唯一最多,则你可以观看其手牌。你令其弃置其中的所有红色牌,然后摸等量的牌。',
|
spshiji_info:'当你对其他角色造成属性伤害时,若你的手牌数不为全场唯一最多,则你可以观看其手牌。你令其弃置其中的所有红色牌,然后摸等量的牌。',
|
||||||
sptaoluan:'讨乱',
|
sptaoluan:'讨乱',
|
||||||
|
@ -6446,7 +6475,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
zjjuxiang:'拒降',
|
zjjuxiang:'拒降',
|
||||||
zjjuxiang_info:'限定技。一名其他角色脱离濒死状态时,你可以对其造成1点伤害,然后摸X张牌(X为其体力上限且至多为5)。',
|
zjjuxiang_info:'限定技。一名其他角色脱离濒死状态时,你可以对其造成1点伤害,然后摸X张牌(X为其体力上限且至多为5)。',
|
||||||
houfeng:'厚俸',
|
houfeng:'厚俸',
|
||||||
houfeng_info:'每轮限一次。一名其他角色的出牌阶段开始时,若其在你的攻击范围内,则你可以令其进行“整肃”。然后当其于本回合内因整肃而摸牌或回复体力后,你可选择摸两张牌或回复1点体力。',
|
houfeng_info:'每轮限一次。一名其他角色的出牌阶段开始时,若其在你的攻击范围内,则你可以令其进行“整肃”。然后当其于本回合内因整肃而摸牌或回复体力后,你获得相同的整肃奖励。',
|
||||||
liuba:'刘巴',
|
liuba:'刘巴',
|
||||||
duanbi:'锻币',
|
duanbi:'锻币',
|
||||||
duanbi_info:'出牌阶段限一次。若场上所有角色的手牌数之和大于角色数之和的二倍,则你可以令所有其他角色各弃置X张手牌(X为该角色手牌数的一半且向下取整且至多为3)。然后你可选择一名角色,令其随机获得三张以此法被弃置的牌。',
|
duanbi_info:'出牌阶段限一次。若场上所有角色的手牌数之和大于角色数之和的二倍,则你可以令所有其他角色各弃置X张手牌(X为该角色手牌数的一半且向下取整且至多为3)。然后你可选择一名角色,令其随机获得三张以此法被弃置的牌。',
|
||||||
|
|
|
@ -10018,7 +10018,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return str;
|
return str;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
perfectPair:{},
|
perfectPair:{
|
||||||
|
nanhualaoxian:['zuoci','yuji'],
|
||||||
|
re_nanhualaoxian:['zuoci','yuji'],
|
||||||
|
},
|
||||||
characterReplace:{
|
characterReplace:{
|
||||||
lijue:['lijue','ns_lijue'],
|
lijue:['lijue','ns_lijue'],
|
||||||
fanchou:['fanchou','tw_fanchou','ns_fanchou'],
|
fanchou:['fanchou','tw_fanchou','ns_fanchou'],
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 302 KiB |
175
mode/guozhan.js
175
mode/guozhan.js
|
@ -525,7 +525,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
gz_miheng:['male','qun',3,['gzrekuangcai','gzshejian'],['gzskin']],
|
gz_miheng:['male','qun',3,['gzrekuangcai','gzshejian'],['gzskin']],
|
||||||
gz_fengxi:['male','wu',3,['gzyusui','gzboyan'],['gzskin']],
|
gz_fengxi:['male','wu',3,['gzyusui','gzboyan'],['gzskin']],
|
||||||
gz_dengzhi:['male','shu',3,['gzjianliang','gzweimeng'],['gzskin']],
|
gz_dengzhi:['male','shu',3,['gzjianliang','gzweimeng'],['gzskin']],
|
||||||
gz_re_nanhualaoxian:['male','qun',4,['gzgongxiu','gztaidan','gzrejinghe']],
|
gz_re_nanhualaoxian:['male','qun',3,['gzgongxiu','gztaidan','gzrejinghe']],
|
||||||
gz_zhouyi:['female','wu',3,['gzzhukou','gzduannian','gzlianyou']],
|
gz_zhouyi:['female','wu',3,['gzzhukou','gzduannian','gzlianyou']],
|
||||||
gz_re_xunchen:['male','qun',3,['gzfenglve','gzanyong']],
|
gz_re_xunchen:['male','qun',3,['gzfenglve','gzanyong']],
|
||||||
gz_lvlingqi:['female','qun',4,['guowu','gzshenwei','gzzhuangrong'],['gzskin']],
|
gz_lvlingqi:['female','qun',4,['guowu','gzshenwei','gzzhuangrong'],['gzskin']],
|
||||||
|
@ -661,7 +661,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
return event.player.isFriendOf(player)&&event.targets.some(target=>target.isMajor());
|
return event.player.isFriendOf(player)&&event.targets.some(target=>target.isMajor());
|
||||||
},
|
},
|
||||||
check:function(event,player){
|
check:function(event,player){
|
||||||
var num=0,targets=event.targets.some(target=>target.isMajor());
|
var num=0,targets=event.targets.filter(target=>target.isMajor());
|
||||||
for(var target of targets) num+=get.sgn(get.attitude(player,target)*get.effect(target,event.card,event.player,player));
|
for(var target of targets) num+=get.sgn(get.attitude(player,target)*get.effect(target,event.card,event.player,player));
|
||||||
return num>=0;
|
return num>=0;
|
||||||
},
|
},
|
||||||
|
@ -7619,6 +7619,146 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
yigui_gzshan:{
|
||||||
|
enable:'chooseToUse',
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.type!='respondShan'||!event.filterCard({name:'shan'},player,event)||!lib.inpile.contains('shan')) return false;
|
||||||
|
var storage=player.storage.yigui,target=event.getParent().player;
|
||||||
|
if(!storage||!target||!storage.character.length||storage.used.contains('shan')) return false;
|
||||||
|
var identity=target.identity;
|
||||||
|
return ['unknown','ye'].contains(identity)||storage.character.some(function(i){
|
||||||
|
if(lib.character[i][1]=='ye') return true;
|
||||||
|
var double=get.is.double(i,true);
|
||||||
|
var groups=(double?double:[lib.character[i][1]]);
|
||||||
|
return groups.contains(identity);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
chooseButton:{
|
||||||
|
dialog:function(event,player){
|
||||||
|
var dialog=ui.create.dialog('役鬼','hidden');
|
||||||
|
dialog.add([player.storage.yigui.character,'character']);
|
||||||
|
return dialog;
|
||||||
|
},
|
||||||
|
filter:function(button,player){
|
||||||
|
var evt=_status.event.getParent('chooseToUse');
|
||||||
|
var target=evt.getParent().player,identity=target.identity;
|
||||||
|
if(['unknown','ye'].contains(identity)) return true;
|
||||||
|
if(lib.character[button.link][1]=='ye') return true;
|
||||||
|
var double=get.is.double(button.link,true);
|
||||||
|
var groups=(double?double:[lib.character[button.link][1]]);
|
||||||
|
return groups.contains(identity);
|
||||||
|
},
|
||||||
|
check:function(button){
|
||||||
|
return 1/(1+game.countPlayer(function(current){
|
||||||
|
return current.identity==button.link;
|
||||||
|
}));
|
||||||
|
},
|
||||||
|
backup:function(links,player){
|
||||||
|
var character=links[0];
|
||||||
|
var next={
|
||||||
|
character:character,
|
||||||
|
filterCard:()=>false,
|
||||||
|
selectCard:-1,
|
||||||
|
complexCard:true,
|
||||||
|
check:()=>1,
|
||||||
|
popname:true,
|
||||||
|
audio:'yigui',
|
||||||
|
viewAs:{name:'shan',isCard:true},
|
||||||
|
onuse:function(result,player){
|
||||||
|
player.logSkill('yigui');
|
||||||
|
var character=lib.skill.yigui_gzshan_backup.character;
|
||||||
|
player.flashAvatar('yigui',character);
|
||||||
|
player.storage.yigui.character.remove(character);
|
||||||
|
_status.characterlist.add(character);
|
||||||
|
game.log(player,'从「魂」中移除了','#g'+get.translation(character));
|
||||||
|
player.syncStorage('yigui');
|
||||||
|
player.updateMarks('yigui');
|
||||||
|
player.storage.yigui.used.add(result.card.name);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
return next;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
respondShan:true,
|
||||||
|
skillTagFilter:function(player){
|
||||||
|
var storage=player.storage.yigui;
|
||||||
|
if(!storage||!storage.character.length||storage.used.contains('shan')||!lib.inpile.contains('shan')) return false;
|
||||||
|
},
|
||||||
|
order:0.1,
|
||||||
|
result:{player:1},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
yigui_gzwuxie:{
|
||||||
|
hiddenCard:function(player,name){
|
||||||
|
var storage=player.storage.yigui;
|
||||||
|
if(name!='wuxie'||!storage||!storage.character.length||storage.used.contains(name)||!lib.inpile.contains(name)) return false;
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
enable:'chooseToUse',
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.type!='wuxie'||!event.filterCard({name:'wuxie'},player,event)||!lib.inpile.contains('wuxie')) return false;
|
||||||
|
var storage=player.storage.yigui,target=event.getParent(2).player;
|
||||||
|
if(!storage||!target||!storage.character.length||storage.used.contains('wuxie')) return false;
|
||||||
|
var identity=target.identity;
|
||||||
|
return ['unknown','ye'].contains(identity)||storage.character.some(function(i){
|
||||||
|
if(lib.character[i][1]=='ye') return true;
|
||||||
|
var double=get.is.double(i,true);
|
||||||
|
var groups=(double?double:[lib.character[i][1]]);
|
||||||
|
return groups.contains(identity);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
chooseButton:{
|
||||||
|
dialog:function(event,player){
|
||||||
|
var dialog=ui.create.dialog('役鬼','hidden');
|
||||||
|
dialog.add([player.storage.yigui.character,'character']);
|
||||||
|
return dialog;
|
||||||
|
},
|
||||||
|
filter:function(button,player){
|
||||||
|
var evt=_status.event.getParent('chooseToUse');
|
||||||
|
var target=evt.getParent(2).player,identity=target.identity;
|
||||||
|
if(['unknown','ye'].contains(identity)) return true;
|
||||||
|
if(lib.character[button.link][1]=='ye') return true;
|
||||||
|
var double=get.is.double(button.link,true);
|
||||||
|
var groups=(double?double:[lib.character[button.link][1]]);
|
||||||
|
return groups.contains(identity);
|
||||||
|
},
|
||||||
|
check:function(button){
|
||||||
|
return 1/(1+game.countPlayer(function(current){
|
||||||
|
return current.identity==button.link;
|
||||||
|
}));
|
||||||
|
},
|
||||||
|
backup:function(links,player){
|
||||||
|
var character=links[0];
|
||||||
|
var next={
|
||||||
|
character:character,
|
||||||
|
filterCard:()=>false,
|
||||||
|
selectCard:-1,
|
||||||
|
complexCard:true,
|
||||||
|
check:()=>1,
|
||||||
|
popname:true,
|
||||||
|
audio:'yigui',
|
||||||
|
viewAs:{name:'wuxie',isCard:true},
|
||||||
|
onuse:function(result,player){
|
||||||
|
player.logSkill('yigui');
|
||||||
|
var character=lib.skill.yigui_gzwuxie_backup.character;
|
||||||
|
player.flashAvatar('yigui',character);
|
||||||
|
player.storage.yigui.character.remove(character);
|
||||||
|
_status.characterlist.add(character);
|
||||||
|
game.log(player,'从「魂」中移除了','#g'+get.translation(character));
|
||||||
|
player.syncStorage('yigui');
|
||||||
|
player.updateMarks('yigui');
|
||||||
|
player.storage.yigui.used.add(result.card.name);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
return next;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
order:0.1,
|
||||||
|
result:{player:1},
|
||||||
|
},
|
||||||
|
},
|
||||||
jihun:{
|
jihun:{
|
||||||
trigger:{
|
trigger:{
|
||||||
player:'damageEnd',
|
player:'damageEnd',
|
||||||
|
@ -14409,15 +14549,17 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
gzzongyu_info:'当【六龙骖驾】进入其他角色的装备区后,你可以将你装备区内所有坐骑牌(至少一张)与【六龙骖驾】交换位置。锁定技,当你使用坐骑牌后,若场上或弃牌堆中有【六龙骖驾】,则将【六龙骖驾】置入你的装备区。',
|
gzzongyu_info:'当【六龙骖驾】进入其他角色的装备区后,你可以将你装备区内所有坐骑牌(至少一张)与【六龙骖驾】交换位置。锁定技,当你使用坐骑牌后,若场上或弃牌堆中有【六龙骖驾】,则将【六龙骖驾】置入你的装备区。',
|
||||||
|
|
||||||
yigui:"役鬼",
|
yigui:"役鬼",
|
||||||
"yigui_info":"当你首次明置此武将牌时,你将剩余武将牌堆的两张牌扣置于游戏外,称为“魂”;你可以展示一张“魂”并将其置入剩余武将牌堆,视为使用了一张本回合内未以此法使用过的基本牌或普通锦囊牌。(此牌需指定目标,且目标须为未确定势力的角色或野心家或与此“魂”势力相同的角色)",
|
"yigui_info":"当你首次明置此武将牌时,你将剩余武将牌堆的两张牌置于武将牌上,称为“魂”;你可以展示一张武将牌上的“魂”并将其置入剩余武将牌堆,视为使用一张本回合内未以此法使用过的基本牌或普通锦囊牌。(此牌须指定目标,且目标须为未确定势力的角色或野心家或与此“魂”势力相同的角色)",
|
||||||
"yigui_init":"役鬼",
|
"yigui_init":"役鬼",
|
||||||
"yigui_init_info":"",
|
"yigui_init_info":"",
|
||||||
"yigui_refrain":"役鬼",
|
"yigui_refrain":"役鬼",
|
||||||
"yigui_refrain_info":"",
|
"yigui_refrain_info":"",
|
||||||
yigui_shan:'役鬼',
|
yigui_shan:'役鬼',
|
||||||
yigui_wuxie:'役鬼',
|
yigui_wuxie:'役鬼',
|
||||||
|
yigui_gzshan:'役鬼',
|
||||||
|
yigui_gzwuxie:'役鬼',
|
||||||
jihun:"汲魂",
|
jihun:"汲魂",
|
||||||
jihun_info:"当你受到伤害后,或与你势力不同的角色脱离濒死状态后,你可以将剩余武将牌堆的一张牌当做“魂”扣置于游戏外。",
|
jihun_info:"当你受到伤害后,或与你势力不同的角色脱离濒死状态后,你可以将剩余武将牌堆的一张牌置于武将牌上,称为“魂”。",
|
||||||
|
|
||||||
_guozhan_marks:'标记',
|
_guozhan_marks:'标记',
|
||||||
_guozhan_marks_backup:'标记',
|
_guozhan_marks_backup:'标记',
|
||||||
|
@ -15892,22 +16034,23 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
if(name2.indexOf('gz_shibing')==0) return false;
|
if(name2.indexOf('gz_shibing')==0) return false;
|
||||||
if(get.is.jun(this.name1)) return true;
|
if(get.is.jun(this.name1)) return true;
|
||||||
if(choosing&&lib.character[name1][1]!='ye'&&lib.character[name2][1]!='ye'&&lib.character[name1][1]!=lib.character[name2][1]) return false;
|
if(choosing&&lib.character[name1][1]!='ye'&&lib.character[name2][1]!='ye'&&lib.character[name1][1]!=lib.character[name2][1]) return false;
|
||||||
var list=['re','diy','sp','jsp','shen','jg','xin','old','ol','sb','sc','gz'];
|
if(name1.indexOf('gz_')==0){
|
||||||
for(var i=0;i<list.length;i++){
|
name1=name1.slice(name1.indexOf('_')+1);
|
||||||
if(name1.indexOf(list[i]+'_')==0){
|
}
|
||||||
name1=name1.slice(list[i].length+1);
|
else{
|
||||||
}
|
while(name1.indexOf('_')!=-1&&!lib.perfectPair[name1]){
|
||||||
if(name2.indexOf(list[i]+'_')==0){
|
name1=name1.slice(name1.indexOf('_')+1);
|
||||||
name2=name2.slice(list[i].length+1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(lib.perfectPair[name1]&&lib.perfectPair[name1].contains(name2)){
|
if(name2.indexOf('gz_')==0){
|
||||||
return true;
|
name2=name2.slice(name2.indexOf('_')+1);
|
||||||
}
|
}
|
||||||
if(lib.perfectPair[name2]&&lib.perfectPair[name2].contains(name1)){
|
else{
|
||||||
return true;
|
while(name2.indexOf('_')!=-1&&!lib.perfectPair[name2]){
|
||||||
|
name2=name2.slice(name2.indexOf('_')+1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return (lib.perfectPair[name1]&&lib.perfectPair[name1].contains(name2))||(lib.perfectPair[name2]&&lib.perfectPair[name2].contains(name1));
|
||||||
},
|
},
|
||||||
siege:function(player){
|
siege:function(player){
|
||||||
if(this.identity=='unknown'||this.hasSkill('undist')) return false;
|
if(this.identity=='unknown'||this.hasSkill('undist')) return false;
|
||||||
|
|
Loading…
Reference in New Issue