sp&yxs
|
@ -39,7 +39,7 @@ character.hearth={
|
|||
hs_huzhixiannv:['female','wu',3,['jingmeng','qingliu']],
|
||||
// hs_tgolem:['male','qun',4,['guozai']],
|
||||
hs_totemic:['male','wu',3,['s_tuteng']],
|
||||
hs_xsylvanas:['female','qun',3,['busi','shixin','xmojian']],
|
||||
hs_xsylvanas:['female','qun',3,['busi','xshixin','xmojian']],
|
||||
hs_siwangzhiyi:['male','qun',12,['mieshi']],
|
||||
hs_bilanyoulong:['male','wei',4,['lingzhou']],
|
||||
},
|
||||
|
@ -225,7 +225,7 @@ character.hearth={
|
|||
}
|
||||
},
|
||||
xmojian2:{},
|
||||
shixin:{
|
||||
xshixin:{
|
||||
trigger:{source:'damageEnd'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
|
@ -2223,8 +2223,8 @@ character.hearth={
|
|||
lingzhou_info:'每当你使用一张锦囊牌,可令一名角色摸一张牌或回复一点体力',
|
||||
mieshi:'灭世',
|
||||
mieshi_info:'锁定技,回合结束阶段,你流失一点体力,并对一名随机的其他角色造成一点火焰伤害',
|
||||
shixin:'蚀心',
|
||||
shixin_info:'锁定技,每当你对一名其他角色造成一次伤害,受伤害角色与你各流失一点体力',
|
||||
xshixin:'蚀心',
|
||||
xshixin_info:'锁定技,每当你对一名其他角色造成一次伤害,受伤害角色与你各流失一点体力',
|
||||
xmojian:'魔箭',
|
||||
xmojian_info:'每当你翻面时,你可以指定一名角色视为对其使用了一张杀,每回合最多发动一次',
|
||||
enze:'恩泽',
|
||||
|
|
|
@ -366,7 +366,7 @@ character.refresh={
|
|||
},
|
||||
discard:false,
|
||||
prepare:function(cards,player,targets){
|
||||
player.$give(1,targets[0]);
|
||||
player.$give(cards,targets[0]);
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
|
|
355
character/sp.js
|
@ -35,6 +35,11 @@ character.sp={
|
|||
wutugu:['male','qun',15,['ranshang','hanyong']],
|
||||
sp_caiwenji:['female','wei',3,['chenqing','mozhi']],
|
||||
zhugeguo:['female','shu',3,['yuhua','qirang']],
|
||||
liuzan:['male','wu',4,['fenyin']],
|
||||
lingcao:['male','wu',4,['dujin']],
|
||||
sunru:['female','wu',3,['shixin','qingyi']],
|
||||
lingju:['female','qun',3,['jieyuan','fenxin']],
|
||||
lifeng:['male','shu',3,['tunchu','shuliang']],
|
||||
},
|
||||
perfectPair:{
|
||||
zhugejin:['zhugeke'],
|
||||
|
@ -46,8 +51,337 @@ character.sp={
|
|||
zhangbao:['zhangliang','zhangjiao'],
|
||||
zhangliang:['zhangjiao'],
|
||||
maliang:['masu'],
|
||||
lingcao:['lingtong'],
|
||||
lingju:['diaochan','lvbu'],
|
||||
},
|
||||
skill:{
|
||||
tunchu:{
|
||||
trigger:{player:'phaseDrawBegin'},
|
||||
check:function(event,player){
|
||||
return player.num('h')-player.num('h',{type:'equip'})+2<=player.hp;
|
||||
},
|
||||
content:function(){
|
||||
trigger.num+=2;
|
||||
player.addTempSkill('tunchu_choose','phaseDrawAfter');
|
||||
},
|
||||
init:function(player){
|
||||
player.storage.tunchu=[];
|
||||
},
|
||||
intro:{
|
||||
content:'cards'
|
||||
},
|
||||
group:'tunchu_disable',
|
||||
subSkill:{
|
||||
choose:{
|
||||
trigger:{player:'phaseDrawEnd'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.removeSkill('tunchu_choose');
|
||||
if(player.num('h')){
|
||||
player.chooseCard('h',true);
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 1'
|
||||
player.lose(result.cards,ui.special);
|
||||
player.storage.tunchu=player.storage.tunchu.concat(result.cards);
|
||||
player.markSkill('tunchu');
|
||||
player.syncStorage('tunchu');
|
||||
}
|
||||
},
|
||||
disable:{
|
||||
mod:{
|
||||
cardEnabled:function(card,player){
|
||||
if(player.storage.tunchu&&player.storage.tunchu.length&&
|
||||
(card.name=='sha'||card.name=='juedou')){
|
||||
return false;
|
||||
}
|
||||
},
|
||||
cardUsable:function(card,player){
|
||||
if(player.storage.tunchu&&player.storage.tunchu.length&&
|
||||
(card.name=='sha'||card.name=='juedou')){
|
||||
return false;
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
shuliang:{
|
||||
trigger:{global:'phaseEnd'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player.storage.tunchu&&player.storage.tunchu.length>0&&event.player.num('h')==0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var goon=(ai.get.attitude(player,trigger.player)>0);
|
||||
player.chooseCardButton('是否对'+get.translation(trigger.player)+'发动【输粮】?',player.storage.tunchu).ai=function(){
|
||||
if(goon) return 1;
|
||||
return 0;
|
||||
}
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('shuliang',trigger.player);
|
||||
player.storage.tunchu.remove(result.links[0]);
|
||||
player.$throw(result.links);
|
||||
ui.discardPile.appendChild(result.links[0]);
|
||||
player.syncStorage('tunchu');
|
||||
if(player.storage.tunchu.length==0){
|
||||
player.unmarkSkill('tunchu');
|
||||
}
|
||||
trigger.player.draw(2);
|
||||
}
|
||||
}
|
||||
},
|
||||
jieyuan:{
|
||||
group:['jieyuan_more','jieyuan_less'],
|
||||
subSkill:{
|
||||
more:{
|
||||
trigger:{source:'damageBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
if(!player.num('h',{color:'black'})) return false;
|
||||
return event.player.hp>=player.hp&&player!=event.player;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var goon=(ai.get.attitude(player,trigger.player)<0);
|
||||
var next=player.chooseToDiscard('是否对'+get.translation(trigger.player)+'发动【竭缘】?',{color:'black'});
|
||||
next.ai=function(){
|
||||
if(goon){
|
||||
return 8-ai.get.value(card);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
next.logSkill=['jieyuan',trigger.player];
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('jieyuan',trigger.player);
|
||||
trigger.num++;
|
||||
}
|
||||
}
|
||||
},
|
||||
less:{
|
||||
trigger:{player:'damageBegin'},
|
||||
filter:function(event,player){
|
||||
if(!player.num('h',{color:'red'})) return false;
|
||||
return event.source&&event.source.hp>=player.hp&&player!=event.source;
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
var next=player.chooseToDiscard('竭缘:是否弃置一张红色手牌令伤害-1?',{color:'red'});
|
||||
next.ai=function(card){
|
||||
if(player.hp==1||trigger.num>1){
|
||||
return 9-ai.get.value(card);
|
||||
}
|
||||
if(player.hp==2){
|
||||
return 8-ai.get.value(card);
|
||||
}
|
||||
return 7-ai.get.value(card);
|
||||
};
|
||||
next.logSkill='jieyuan';
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
game.delay();
|
||||
trigger.num--;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
expose:0.2,
|
||||
threaten:1.5
|
||||
}
|
||||
},
|
||||
fenxin:{
|
||||
mode:['identity'],
|
||||
trigger:{source:'dieBegin'},
|
||||
filter:function(event,player){
|
||||
return event.player.identity!='zhu'&&player.identity!='zhu'&&
|
||||
player.identity!='mingzhong'&&event.player.identity!='mingzhong';
|
||||
},
|
||||
check:function(event,player){
|
||||
if(player.identity==event.player.identity) return Math.random()<0.5;
|
||||
var stat=ai.get.situation();
|
||||
switch(player.identity){
|
||||
case 'fan':
|
||||
if(stat<0) return false;
|
||||
if(stat==0) return Math.random()<0.6;
|
||||
return true;
|
||||
case 'zhong':
|
||||
if(stat>0) return false;
|
||||
if(stat==0) return Math.random()<0.6;
|
||||
return true;
|
||||
case 'nei':
|
||||
if(event.player.identity=='fan'&&stat<0) return true;
|
||||
if(event.player.identity=='zhong'&&stat>0) return true;
|
||||
if(stat==0) return Math.random()<0.7;
|
||||
return false;
|
||||
}
|
||||
},
|
||||
prompt:function(event,player){
|
||||
return '焚心:是否与'+get.translation(event.player)+'交换身份?';
|
||||
},
|
||||
content:function(){
|
||||
var identity=player.identity;
|
||||
player.identity=trigger.player.identity;
|
||||
if(player.identityShown||player==game.me){
|
||||
player.setIdentity();
|
||||
}
|
||||
trigger.player.identity=identity;
|
||||
player.line(trigger.player,'green');
|
||||
}
|
||||
},
|
||||
qingyi:{
|
||||
group:['qingyi1','qingyi2']
|
||||
},
|
||||
qingyi1:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseBegin'},
|
||||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.addSkill('qingyi3');
|
||||
var check= player.num('h')>2;
|
||||
player.chooseTarget('是否发动【轻逸】?',function(card,player,target){
|
||||
if(player==target) return false;
|
||||
return player.canUse({name:'sha'},target);
|
||||
}).ai=function(target){
|
||||
if(!check) return 0;
|
||||
return ai.get.effect(target,{name:'sha'},_status.event.player);
|
||||
}
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('qingyi1',result.targets);
|
||||
player.useCard({name:'sha'},result.targets[0],false);
|
||||
player.skip('phaseJudge');
|
||||
player.skip('phaseDraw');
|
||||
}
|
||||
player.removeSkill('qingyi3');
|
||||
}
|
||||
},
|
||||
qingyi2:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseUseBefore'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player.num('he',{type:'equip'})>0;
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.addSkill('qingyi3');
|
||||
var check=player.num('h')<=player.hp;
|
||||
player.chooseCardTarget({
|
||||
prompt:'是否发动【轻逸】?',
|
||||
filterCard:function(card){
|
||||
return get.type(card)=='equip'
|
||||
},
|
||||
position:'he',
|
||||
filterTarget:function(card,player,target){
|
||||
if(player==target) return false;
|
||||
return player.canUse({name:'sha'},target);
|
||||
},
|
||||
ai1:function(card){
|
||||
if(!check) return 0;
|
||||
return 6-ai.get.value(card);
|
||||
},
|
||||
ai2:function(target){
|
||||
if(!check) return 0;
|
||||
return ai.get.effect(target,{name:'sha'},_status.event.player);
|
||||
}
|
||||
});
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('qingyi2',result.targets);
|
||||
player.discard(result.cards[0]);
|
||||
player.useCard({name:'sha'},result.targets[0]);
|
||||
trigger.untrigger();
|
||||
trigger.finish();
|
||||
}
|
||||
player.removeSkill('qingyi3');
|
||||
}
|
||||
},
|
||||
qingyi3:{
|
||||
mod:{
|
||||
targetInRange:function(card,player,target,now){
|
||||
return true;
|
||||
}
|
||||
},
|
||||
},
|
||||
shixin:{
|
||||
trigger:{player:'damageBefore'},
|
||||
filter:function(event){
|
||||
return event.nature=='fire';
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
trigger.untrigger();
|
||||
trigger.finish();
|
||||
},
|
||||
ai:{
|
||||
nofire:true,
|
||||
effect:{
|
||||
target:function(card,player,target,current){
|
||||
if(get.tag(card,'fireDamage')) return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
fenyin:{
|
||||
audio:2,
|
||||
trigger:{player:'useCard'},
|
||||
frequent:true,
|
||||
filter:function(event,player){
|
||||
if(!event.cards||event.cards.length!=1) return false;
|
||||
if(_status.currentPhase!=player) return false;
|
||||
if(!player.storage.fenyin) return false;
|
||||
return get.color(player.storage.fenyin)!=get.color(event.cards[0]);
|
||||
},
|
||||
content:function(){
|
||||
player.draw();
|
||||
},
|
||||
intro:{
|
||||
content:'card'
|
||||
},
|
||||
group:['fenyin2','fenyin3']
|
||||
},
|
||||
fenyin3:{
|
||||
trigger:{player:'useCard'},
|
||||
priority:-1,
|
||||
forced:true,
|
||||
popup:false,
|
||||
silent:true,
|
||||
filter:function(event,player){
|
||||
if(!event.cards||event.cards.length!=1) return false;
|
||||
if(_status.currentPhase!=player) return false;
|
||||
return true;
|
||||
},
|
||||
content:function(){
|
||||
player.storage.fenyin=trigger.cards[0];
|
||||
}
|
||||
},
|
||||
fenyin2:{
|
||||
trigger:{player:'phaseAfter'},
|
||||
forced:true,
|
||||
silent:true,
|
||||
popup:false,
|
||||
content:function(){
|
||||
player.storage.fenyin=null;
|
||||
}
|
||||
},
|
||||
dujin:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseDrawBegin'},
|
||||
frequent:true,
|
||||
content:function(){
|
||||
trigger.num+=1+Math.floor(player.num('e')/2);
|
||||
}
|
||||
},
|
||||
qirang:{
|
||||
audio:2,
|
||||
trigger:{player:'equipEnd'},
|
||||
|
@ -3367,7 +3701,26 @@ character.sp={
|
|||
mateng:'马腾',
|
||||
sp_caiwenji:'sp蔡文姬',
|
||||
zhugeguo:'诸葛果',
|
||||
liuzan:'留赞',
|
||||
lingcao:'凌操',
|
||||
sunru:'孙茹',
|
||||
lingju:'灵雎',
|
||||
lifeng:'李丰',
|
||||
|
||||
tunchu:'屯储',
|
||||
tunchu_info:'摸牌阶段摸牌时,你可以额外摸两张牌,若如此做,将一张手牌置于你的武将上,称为“粮”,只要你的武将牌上有“粮”,你便不能使用【杀】和【决斗】',
|
||||
shuliang:'输粮',
|
||||
shuliang_info:'每当一名角色的结束阶段开始时,若其没有手牌,你可以将一张“粮”置入弃牌堆,然后该角色摸两张牌',
|
||||
jieyuan:'竭缘',
|
||||
jieyuan_info:'当你对一名其他角色造成伤害时,若其体力值大于或等于你的体力值,你可弃置一张黑色手牌令此伤害+1;当你受到一名其他角色造成的伤害时,若其体力值大于或等于你的体力值,你可弃置一张红色手牌令此伤害-1。',
|
||||
fenxin:'焚心',
|
||||
fenxin_info:'定技,当你杀死一名非主公角色时,在其翻开身份牌之前,你可以与该角色交换身份牌。(你的身份为主公时不能发动此技能)',
|
||||
shixin:'释衅',
|
||||
shixin_info:'锁定技,当你受到火属性伤害时,你防止此伤害',
|
||||
qingyi:'轻逸',
|
||||
qingyi_info:'你可以跳过摸牌阶段,或跳过出牌阶段并弃置一张装备牌,若如此则视为对任意一名使用一张【杀】',
|
||||
dujin:'独进',
|
||||
dujin_info:'摸牌阶段,你可以额外摸X+1张牌(X为你装备区里牌数的一半且向下取整)',
|
||||
yuhua:'羽化',
|
||||
yuhua_info:'锁定技,弃牌阶段内,你的非基本牌不计入手牌数,且你不能弃置你的非基本牌',
|
||||
qirang:'祈禳',
|
||||
|
@ -3472,6 +3825,8 @@ character.sp={
|
|||
jilei2:'鸡肋',
|
||||
fulu:'符箓',
|
||||
fuji:'助祭',
|
||||
fenyin:'奋音',
|
||||
fenyin_info:'你的回合内,当你使用牌时,若此牌与你于此回合内使用的上一张牌颜色不同,则你可以摸一张牌',
|
||||
fuji_info:'当一名角色造成雷电伤害时,你可以令其进行一次判定,若结果为黑色,此伤害+1;若结果为红色,该角色获得此牌。',
|
||||
fulu_info:'你可以将【杀】当雷【杀】使用。',
|
||||
jilei_info:'每当你受到一次伤害,可以令伤害来源不能使用或打出其手牌直到回合结束',
|
||||
|
|
|
@ -884,6 +884,9 @@ character.standard={
|
|||
tieji:{
|
||||
audio:2,
|
||||
trigger:{player:'shaBegin'},
|
||||
check:function(event,player){
|
||||
return ai.get.attitude(player,event.target)<=0;
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.judge(function(card){
|
||||
|
|
|
@ -166,17 +166,6 @@ character.swd={
|
|||
threaten:2
|
||||
}
|
||||
},
|
||||
miaobi:{
|
||||
enable:'phaseUse',
|
||||
viewAs:{name:'wugu'},
|
||||
filterCard:{suit:'heart'},
|
||||
filter:function(event,player){
|
||||
return !player.getStat('skill').miaobi&&player.num('h',{suit:'heart'})>0;
|
||||
},
|
||||
check:function(card){
|
||||
return 5-ai.get.value(card);
|
||||
}
|
||||
},
|
||||
huajing:{
|
||||
trigger:{source:'damageEnd'},
|
||||
filter:function(event,player){
|
||||
|
@ -7736,9 +7725,6 @@ character.swd={
|
|||
}
|
||||
}
|
||||
},
|
||||
zhexian:{
|
||||
inherit:'lingbo'
|
||||
}
|
||||
},
|
||||
translate:{
|
||||
swd_yangshuo:'杨硕',
|
||||
|
@ -7839,9 +7825,6 @@ character.swd={
|
|||
jingjie_old_info:'限定技,出牌阶段,你可以令所有角色弃置所有牌,然后摸两张牌(不触发任何技能)',
|
||||
kongmo:'恐魔',
|
||||
kongmo_info:'锁定技,你使用基本牌或非延时锦囊牌后将额外结算一次卡牌效果',
|
||||
miaobi:'妙笔',
|
||||
miaobi_info:'出牌阶段限一次,你可以将一张红桃牌当作五谷丰登使用',
|
||||
zhexian:'谪仙',
|
||||
jufu:'巨斧',
|
||||
jufu_info:'锁定技,当你有武器牌时,杀造成的伤害+1',
|
||||
huajing:'化精',
|
||||
|
@ -8231,7 +8214,6 @@ character.swd={
|
|||
xingdian_info:'出牌阶段限一次,你可以弃置一张手牌,然后指定至多两名角色令其各弃置一张牌',
|
||||
yulin_info:'每当你即将受到伤害,你可以弃置一张装备牌抵消此伤害',
|
||||
funiao_info:'出牌阶段,你可以交给一名角色一张手牌,然后观看其手牌,每个阶段对一名角色只能发动一次',
|
||||
zhexian_info:'每当你使用或打出一张闪,你可以摸两张牌',
|
||||
lingbo_info:'每当你使用或打出一张闪,你可以摸两张牌',
|
||||
xuehuang_info:'出牌阶段限一次,你可以弃置一张红色手牌令距离你一以内的所有角色受到一点火焰伤害',
|
||||
zhuyu_info:'每当有横置的角色即将受到非火焰伤害,你可以弃置一张红色牌使其额外受到一点火焰伤害',
|
||||
|
|
|
@ -94,7 +94,7 @@ character.wind={
|
|||
"step 0"
|
||||
player.addSkill('shensu3');
|
||||
var check= player.num('h')>2;
|
||||
player.chooseTarget('是否发动神速?',function(card,player,target){
|
||||
player.chooseTarget('是否发动【神速】?',function(card,player,target){
|
||||
if(player==target) return false;
|
||||
return player.canUse({name:'sha'},target);
|
||||
}).ai=function(target){
|
||||
|
|
|
@ -27,7 +27,7 @@ character.xianjian={
|
|||
pal_hanlingsha:['female','shu',3,['tannang','tuoqiao']],
|
||||
pal_liumengli:['female','wei',3,['tianxian','runxin','zhimeng']],
|
||||
pal_murongziying:['male','wei',4,['xuanning','poyun','qianfang']],
|
||||
pal_xuanxiao:['male','wei',4,['xuanyan','ningbin','fenxin']],
|
||||
pal_xuanxiao:['male','wei',4,['xuanyan','ningbin','xfenxin']],
|
||||
|
||||
},
|
||||
skill:{
|
||||
|
@ -80,14 +80,14 @@ character.xianjian={
|
|||
effect:{
|
||||
target:function(card,player,target){
|
||||
if(get.tag(card,'thunderDamage')){
|
||||
if(target.hp<=1||!target.skills.contains('fenxin')) return [0,0];
|
||||
if(target.hp<=1||!target.skills.contains('xfenxin')) return [0,0];
|
||||
return [0,1.5];
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
fenxin:{
|
||||
xfenxin:{
|
||||
trigger:{player:'changeHp'},
|
||||
forced:true,
|
||||
filter:function(event){
|
||||
|
@ -106,9 +106,9 @@ character.xianjian={
|
|||
}
|
||||
}
|
||||
},
|
||||
group:'fenxin2'
|
||||
group:'xfenxin2'
|
||||
},
|
||||
fenxin2:{
|
||||
xfenxin2:{
|
||||
trigger:{source:'dieAfter'},
|
||||
forced:true,
|
||||
content:function(){
|
||||
|
@ -1366,9 +1366,9 @@ character.xianjian={
|
|||
xuanyan_info:'锁定技,你的火属性伤害+1;你造成火属性伤害后流失1点体力',
|
||||
ningbin:'凝冰',
|
||||
ningbin_info:'锁定技,每当你受到1次雷属性伤害,你回复1点体力',
|
||||
fenxin:'焚心',
|
||||
fenxin2:'焚心',
|
||||
fenxin_info:'锁定技,每当你的体力值发生改变,你摸等量的牌;每当你杀死一名角色,你增加一点体力上限并回复一点体力',
|
||||
xfenxin:'焚心',
|
||||
xfenxin2:'焚心',
|
||||
xfenxin_info:'锁定技,每当你的体力值发生改变,你摸等量的牌;每当你杀死一名角色,你增加一点体力上限并回复一点体力',
|
||||
luanjian:'乱剑',
|
||||
luanjian_info:'你可以将两张杀当杀使用,此杀无视距离和防具,且可以指定任意名目标',
|
||||
tianfu:'天符',
|
||||
|
|
|
@ -1018,6 +1018,8 @@ character.yijiang={
|
|||
if(result&&result.cards){
|
||||
event.card=result.cards[0];
|
||||
event.current.lose(result.cards,ui.special);
|
||||
var cardx=ui.create.card();
|
||||
cardx.classList.add('infohidden')
|
||||
event.current.$throw(ui.create.card(),1000);
|
||||
}
|
||||
else{
|
||||
|
@ -2776,7 +2778,7 @@ character.yijiang={
|
|||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
var next=player.chooseToDiscard('he','是否弃置一张装备牌令伤害-1?',function(card,player){
|
||||
var next=player.chooseToDiscard('he','骄矜:是否弃置一张装备牌令伤害-1?',function(card,player){
|
||||
return get.type(card)=='equip';
|
||||
});
|
||||
next.ai=function(card){
|
||||
|
|
588
character/yxs.js
|
@ -8,8 +8,412 @@ character.yxs={
|
|||
yxs_aijiyanhou:['female','qun',3,['seyou','sheshi']],
|
||||
yxs_diaochan:['female','qun',3,['fengyi','wange']],
|
||||
yxs_yangyuhuan:['female','wu',3,['fengyan','nichang']],
|
||||
yxs_baosi:['female','qun',3,['jieyin','fenghuo']],
|
||||
yxs_napolun:['male','qun',4,['tongling','fanpu']],
|
||||
yxs_kaisa:['male','qun',4,['ducai']],
|
||||
yxs_zhuyuanzhang:['male','qun',4,['qiangyun']],
|
||||
yxs_jinke:['male','qun',3,['cike','qiangxi']],
|
||||
yxs_libai:['male','qun',3,['miaobi','zhexian']],
|
||||
yxs_luban:['male','qun',3,['guifu','lshengong']],
|
||||
yxs_lvzhi:['female','qun',4,['zhensha','xumou']],
|
||||
yxs_goujian:['male','qun',3,['keji','tuqiang']],
|
||||
yxs_lishimin:['male','qun',4,['kongju']],
|
||||
yxs_huamulan:['female','qun',3,['xiaoji','yizhuang']],
|
||||
yxs_luobinhan:['male','qun',4,['xiadao','lzhangyi']],
|
||||
},
|
||||
skill:{
|
||||
xiadao:{
|
||||
enable:['chooseToRespond'],
|
||||
filterCard:true,
|
||||
viewAs:{name:'shan'},
|
||||
viewAsFilter:function(player){
|
||||
if(!player.num('h')) return false;
|
||||
if(player.num('e')) return false;
|
||||
},
|
||||
prompt:'将一张手牌当闪打出',
|
||||
check:function(){return 1},
|
||||
ai:{
|
||||
respondShan:true,
|
||||
skillTagFilter:function(player){
|
||||
if(!player.num('h')) return false;
|
||||
if(player.num('e')) return false;
|
||||
},
|
||||
result:{
|
||||
target:function(card,player,target,current){
|
||||
if(get.tag(card,'respondShan')&¤t<0&&!target.num('e')) return 0.6
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
lzhangyi:{
|
||||
trigger:{player:'discardAfter'},
|
||||
filter:function(event,player){
|
||||
for(var i=0;i<event.cards.length;i++){
|
||||
if(get.position(event.cards[i])=='d'){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
direct:true,
|
||||
popup:false,
|
||||
content:function(){
|
||||
"step 0"
|
||||
if(trigger.delay==false) game.delay();
|
||||
"step 1"
|
||||
player.chooseTarget('是否发动【仗义】?',function(card,player,target){
|
||||
return player!=target
|
||||
}).ai=function(target){
|
||||
return ai.get.attitude(player,target);
|
||||
};
|
||||
"step 2"
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.logSkill('lzhangyi',target);
|
||||
var cards=[];
|
||||
for(var i=0;i<trigger.cards.length;i++){
|
||||
if(get.position(trigger.cards[i])=='d'){
|
||||
cards.push(trigger.cards[i]);
|
||||
}
|
||||
}
|
||||
target.gain(cards);
|
||||
if(event.isMine()){
|
||||
target.$draw(cards);
|
||||
}
|
||||
else{
|
||||
target.$gain2(cards);
|
||||
}
|
||||
if(target==game.me){
|
||||
game.delay();
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
threaten:0.9,
|
||||
expose:0.1
|
||||
}
|
||||
},
|
||||
yizhuang:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
group:'yizhuang2',
|
||||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.unmark(player.storage.yizhuang+'_charactermark');
|
||||
delete player.storage.yizhuang;
|
||||
delete player.additionalSkills.yizhuang;
|
||||
player.checkMarks();
|
||||
if(player.num('he')){
|
||||
player.chooseCardTarget({
|
||||
prompt:'是否发动【易装】?',
|
||||
filterCard:true,
|
||||
position:'he',
|
||||
filterTarget:function(card,player,target){
|
||||
if(target==player) return false;
|
||||
if(target.sex!='male') return false;
|
||||
var name=target.name.indexOf('unknown')==0?target.name2:target.name;
|
||||
|
||||
var info=lib.character[name];
|
||||
if(info){
|
||||
var skills=info[3];
|
||||
for(var j=0;j<skills.length;j++){
|
||||
if(lib.translate[skills[j]+'_info']&&lib.skill[skills[j]]&&
|
||||
!lib.skill[skills[j]].unique&&!player.skills.contains(skills[j])){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
ai1:function(card){
|
||||
return 7-ai.get.value(card);
|
||||
},
|
||||
ai2:function(target){
|
||||
if(target.isMin()) return 0;
|
||||
return 6-target.maxHp;
|
||||
}
|
||||
});
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.discard(result.cards);
|
||||
player.logSkill('yizhuang',result.targets);
|
||||
var name=result.targets[0].name;
|
||||
if(name.indexOf('unknown')==0){
|
||||
name=result.targets[0].name2;
|
||||
}
|
||||
var list=[];
|
||||
var skills=lib.character[name][3];
|
||||
for(var j=0;j<skills.length;j++){
|
||||
if(lib.translate[skills[j]+'_info']&&lib.skill[skills[j]]&&
|
||||
!lib.skill[skills[j]].unique&&!player.skills.contains(skills[j])){
|
||||
list.push(skills[j]);
|
||||
}
|
||||
}
|
||||
for(var i=0;i<list.length;i++){
|
||||
player.addSkill(list[i]);
|
||||
player.skills.remove(list[i]);
|
||||
}
|
||||
player.additionalSkills.yizhuang=list;
|
||||
player.markCharacter(name,null,true,true);
|
||||
game.addVideo('markCharacter',player,{
|
||||
name:'易装',
|
||||
content:'',
|
||||
id:'yizhuang',
|
||||
target:name
|
||||
});
|
||||
player.storage.yizhuang=name;
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
threaten:1.5
|
||||
}
|
||||
},
|
||||
yizhuang2:{
|
||||
trigger:{player:'damageAfter'},
|
||||
priority:-15,
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.additionalSkills.yizhuang?true:false;
|
||||
},
|
||||
content:function(){
|
||||
player.unmark(player.storage.yizhuang+'_charactermark');
|
||||
delete player.storage.yizhuang;
|
||||
delete player.additionalSkills.yizhuang;
|
||||
player.checkMarks();
|
||||
}
|
||||
},
|
||||
kongju:{
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
if(player.hp<player.maxHp) return num+player.maxHp-player.hp;
|
||||
},
|
||||
targetEnabled:function(card,player,target,now){
|
||||
if(target.num('h')<target.maxHp){
|
||||
if(card.name=='shunshou'||card.name=='guohe') return false;
|
||||
}
|
||||
else if(target.num('h')>target.maxHp){
|
||||
if(card.name=='lebu') return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
tuqiang:{
|
||||
trigger:{player:'respond'},
|
||||
filter:function(event,player){
|
||||
return event.card.name=='shan';
|
||||
},
|
||||
frequent:true,
|
||||
content:function(){
|
||||
player.draw();
|
||||
},
|
||||
ai:{
|
||||
mingzhi:false,
|
||||
effect:{
|
||||
target:function(card,player,target){
|
||||
if(get.tag(card,'respondShan')){
|
||||
return 0.8;
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
xumou:{
|
||||
inherit:'jushou'
|
||||
},
|
||||
zhensha:{
|
||||
trigger:{global:'dying'},
|
||||
priority:11,
|
||||
filter:function(event,player){
|
||||
return event.player.hp<=0&&player.num('h','jiu')>0&&player!=event.player;
|
||||
},
|
||||
check:function(event,player){
|
||||
return ai.get.attitude(player,event.player)<0;
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
var goon=(ai.get.attitude(player,trigger.player)<0);
|
||||
var next=player.chooseToDiscard({name:'jiu'},'鸠杀:是否弃置一张酒令'+get.translation(trigger.player)+'立即死亡?');
|
||||
next.ai=function(card){
|
||||
if(goon) return 1;
|
||||
return 0;
|
||||
};
|
||||
next.logSkill=['zhensha',trigger.player];
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
trigger.player.die();
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
if(!trigger.player.isAlive()){
|
||||
trigger.untrigger(true);
|
||||
trigger.finish();
|
||||
}
|
||||
}
|
||||
},
|
||||
ducai:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
unique:true,
|
||||
forceunique:true,
|
||||
check:function(card){
|
||||
return 5-ai.get.value(card);
|
||||
},
|
||||
position:'he',
|
||||
filterCard:true,
|
||||
content:function(){
|
||||
player.storage.ducai2=cards[0];
|
||||
player.addTempSkill('ducai2',{player:'phaseBegin'});
|
||||
},
|
||||
ai:{
|
||||
order:8,
|
||||
result:{
|
||||
player:1
|
||||
}
|
||||
},
|
||||
global:'ducai3'
|
||||
},
|
||||
ducai2:{
|
||||
mark:'card',
|
||||
intro:{
|
||||
content:'card'
|
||||
}
|
||||
},
|
||||
ducai3:{
|
||||
mod:{
|
||||
cardEnabled:function(card,player){
|
||||
if(player.skills.contains('ducai2')) return;
|
||||
var suit;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].skills.contains('ducai2')){
|
||||
suit=get.suit(game.players[i].storage.ducai2);
|
||||
}
|
||||
}
|
||||
if(suit&&get.suit(card)==suit) return false;
|
||||
},
|
||||
cardUsable:function(card,player){
|
||||
if(player.skills.contains('ducai2')) return;
|
||||
var suit;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].skills.contains('ducai2')){
|
||||
suit=get.suit(game.players[i].storage.ducai2);
|
||||
}
|
||||
}
|
||||
if(suit&&get.suit(card)==suit) return false;
|
||||
},
|
||||
cardSavable:function(card,player){
|
||||
if(player.skills.contains('ducai2')) return;
|
||||
var suit;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].skills.contains('ducai2')){
|
||||
suit=get.suit(game.players[i].storage.ducai2);
|
||||
}
|
||||
}
|
||||
if(suit&&get.suit(card)==suit) return false;
|
||||
}
|
||||
},
|
||||
},
|
||||
tongling:{
|
||||
init:function(player){
|
||||
player.storage.tongling=0;
|
||||
},
|
||||
intro:{
|
||||
content:'mark'
|
||||
},
|
||||
forced:true,
|
||||
trigger:{global:'damageAfter'},
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&player.storage.tongling<3;
|
||||
},
|
||||
content:function(){
|
||||
player.storage.tongling++;
|
||||
player.syncStorage('tongling');
|
||||
player.markSkill('tongling');
|
||||
}
|
||||
},
|
||||
fanpu:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return player.storage.tongling>=3;
|
||||
},
|
||||
promptfunc:function(){
|
||||
return '令自己在本轮内不能成为出杀的目标(选择自己),或对攻击范围内的一名其他角色造成一点伤害'
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return player==target||get.distance(player,target,'attack')<=1;
|
||||
},
|
||||
content:function(){
|
||||
if(target==player){
|
||||
target.addTempSkill('fanpu_disable',{player:'phaseBegin'});
|
||||
}
|
||||
else{
|
||||
target.damage();
|
||||
}
|
||||
player.storage.tongling-=3;
|
||||
player.unmarkSkill('tongling');
|
||||
player.syncStorage('tongling');
|
||||
},
|
||||
subSkill:{
|
||||
disable:{
|
||||
mark:true,
|
||||
intro:{
|
||||
content:'不能成为杀的目标'
|
||||
},
|
||||
mod:{
|
||||
targetEnabled:function(card,player,target,now){
|
||||
if(card.name=='sha') return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:2,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(player==target){
|
||||
if(player.hp<=2&&!player.num('h','shan')){
|
||||
return 2;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
else{
|
||||
return ai.get.damageEffect(target,player,target);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
fenghuo:{
|
||||
enable:'chooseToUse',
|
||||
filter:function(event,player){
|
||||
return player.num('e')>0;
|
||||
},
|
||||
filterCard:true,
|
||||
position:'e',
|
||||
viewAs:{name:'nanman'},
|
||||
prompt:'将一张装备区内的牌当南蛮入侵使用',
|
||||
check:function(card){
|
||||
var player=_status.currentPhase;
|
||||
if(player.num('he',{subtype:get.subtype(card)})>1){
|
||||
return 11-ai.get.equipValue(card);
|
||||
}
|
||||
if(player.num('h')<player.hp){
|
||||
return 6-ai.get.value(card);
|
||||
}
|
||||
return 2-ai.get.equipValue(card);
|
||||
},
|
||||
ai:{
|
||||
order:9,
|
||||
threaten:1.1
|
||||
}
|
||||
},
|
||||
nichang:{
|
||||
trigger:{player:'phaseDrawBefore'},
|
||||
check:function(event,player){
|
||||
|
@ -908,6 +1312,141 @@ character.yxs={
|
|||
expose:0.2,
|
||||
threaten:1.5
|
||||
}
|
||||
},
|
||||
qiangyun:{
|
||||
trigger:{player:'loseEnd'},
|
||||
frequent:true,
|
||||
filter:function(event,player){
|
||||
if(player.num('h')) return false;
|
||||
for(var i=0;i<event.cards.length;i++){
|
||||
if(event.cards[i].original=='h') return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
player.draw(2);
|
||||
},
|
||||
ai:{
|
||||
effect:{
|
||||
target:function(card){
|
||||
if(card.name=='guohe'||card.name=='liuxinghuoyu') return 0.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
cike:{
|
||||
trigger:{player:'shaBegin'},
|
||||
check:function(event,player){
|
||||
return ai.get.attitude(player,event.target)<=0;
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.judge();
|
||||
"step 1"
|
||||
if(result.color=='red'){
|
||||
trigger.directHit=true;
|
||||
}
|
||||
else{
|
||||
player.discardPlayerCard(trigger.target);
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
threaten:1.2
|
||||
}
|
||||
},
|
||||
miaobi:{
|
||||
enable:'phaseUse',
|
||||
viewAs:{name:'wugu'},
|
||||
filterCard:{suit:'heart'},
|
||||
filter:function(event,player){
|
||||
return !player.getStat('skill').miaobi&&player.num('h',{suit:'heart'})>0;
|
||||
},
|
||||
check:function(card){
|
||||
return 5-ai.get.value(card);
|
||||
}
|
||||
},
|
||||
zhexian:{
|
||||
inherit:'niepan',
|
||||
},
|
||||
guifu:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterTarget:function(card,player,target){
|
||||
return player!=target&&target.num('e')>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.discardPlayerCard(target,'e',true);
|
||||
'step 1'
|
||||
game.asyncDraw([player,target]);
|
||||
},
|
||||
ai:{
|
||||
order:8,
|
||||
threaten:1.5,
|
||||
result:{
|
||||
target:-1,
|
||||
player:0.5
|
||||
}
|
||||
}
|
||||
},
|
||||
lshengong:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterTarget:function(card,player,target){
|
||||
return player!=target&&target.num('e')>0;
|
||||
},
|
||||
check:function(card){
|
||||
return 6-ai.get.value(card);
|
||||
},
|
||||
filterCard:true,
|
||||
discard:false,
|
||||
lose:false,
|
||||
prepare:function(cards,player,targets){
|
||||
player.line(targets,'green');
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.choosePlayerCard(target,'e',true).ai=ai.get.buttonValue;
|
||||
'step 1'
|
||||
if(result.links[0]){
|
||||
cards[0].init([result.links[0].suit,result.links[0].number,result.links[0].name,result.links[0].nature]);
|
||||
event.card=cards[0];
|
||||
player.chooseTarget('选择一个角色装备'+get.translation(result.links),function(card,player,target){
|
||||
return !target.isMin();
|
||||
}).ai=function(target){
|
||||
if(!target.num('e',{subtype:get.subtype(event.card)})){
|
||||
return ai.get.attitude(player,target);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
if(result.targets&&result.targets[0]&&event.card){
|
||||
player.$give(event.card,result.targets[0]);
|
||||
game.delay();
|
||||
event.toequip=result.targets[0];
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 3'
|
||||
if(event.toequip){
|
||||
event.toequip.equip(event.card);
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:9,
|
||||
threaten:1.5,
|
||||
result:{
|
||||
player:function(player){
|
||||
if(player.num('e')<3) return 1;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
translate:{
|
||||
|
@ -919,7 +1458,56 @@ character.yxs={
|
|||
yxs_aijiyanhou:'埃及艳后',
|
||||
yxs_diaochan:'貂蝉',
|
||||
yxs_yangyuhuan:'杨玉环',
|
||||
yxs_baosi:'褒姒',
|
||||
yxs_napolun:'拿破仑',
|
||||
yxs_kaisa:'凯撒',
|
||||
yxs_zhuyuanzhang:'朱元璋',
|
||||
yxs_jinke:'荆轲',
|
||||
yxs_libai:'李白',
|
||||
yxs_luban:'鲁班',
|
||||
yxs_lvzhi:'吕雉',
|
||||
yxs_goujian:'勾践',
|
||||
yxs_lishimin:'李世民',
|
||||
yxs_huamulan:'花木兰',
|
||||
yxs_luobinhan:'罗宾汉',
|
||||
|
||||
xiadao:'侠盗',
|
||||
xiadao_info:'当你的装备区内没有牌时,你可以将一张手牌当作闪使用或打出',
|
||||
lzhangyi:'仗义',
|
||||
lzhangyi_info:'你可以将你弃置的卡牌交给一名其他角色',
|
||||
yizhuang:'易装',
|
||||
yizhuang2:'易装',
|
||||
yizhuang_info:'回合开始阶段,你可以弃置一张牌并选择一名男性角色,获得其所有技能,直到你首次受到伤害',
|
||||
kongju:'控局',
|
||||
kongju_info:'锁定技,你的手牌上限为你的体力上限;当你的手牌数小于体力上限时,你不能成为过河拆桥或顺手牵羊的目标;当你的手牌数大于体力上限时,你不能成为乐不思蜀的目标',
|
||||
tuqiang:'图强',
|
||||
tuqiang_info:'每当你使用或打出一张闪,你可以摸一张牌',
|
||||
zhensha:'鸩杀',
|
||||
zhensha_info:'当场上有角色进入濒死状态时,你可以弃置一张酒,则该角色立即死亡。',
|
||||
xumou:'蓄谋',
|
||||
xumou_info:'回合结束阶段,你可以将武将牌翻页并摸3张牌',
|
||||
guifu:'鬼斧',
|
||||
guifu_info:'出牌阶段限一次,你可以指定一名角色装备区内的一张牌,将其弃掉,自己和对方同时摸取一张牌',
|
||||
lshengong:'神工',
|
||||
lshengong_info:'出牌阶段限一次,你可以选定场上任意一名角色的装备区的牌,出自己的一张手牌复制该装备,然后可以选择装备上自己或者别的角色的装备区',
|
||||
zhexian:'谪仙',
|
||||
zhexian_info:'当你处于濒死状态时,你可以丢弃你所有的牌和你判定区里的牌,并重置你的武将牌,然后摸三张牌且体力回复至3点。',
|
||||
miaobi:'妙笔',
|
||||
miaobi_info:'出牌阶段限一次,你可以将一张红桃牌当作五谷丰登使用',
|
||||
cike:'刺客',
|
||||
cike_info:'你对别的角色出【杀】时可以选择做一次判定:若判定牌为红色花色,则此【杀】不可回避,直接命中;若判定牌为黑色花色,你可以选择弃掉对方一张牌。',
|
||||
qiangyun:'强运',
|
||||
qiangyun_info:'每当你失去最后一张手牌,可摸两张牌',
|
||||
ducai:'独裁',
|
||||
ducai2:'独裁',
|
||||
ducai3:'独裁',
|
||||
ducai_info:'出牌阶段限一次,你可以弃置一张牌,则本轮内除你外的角色不能使用与该手牌花色相同的手牌',
|
||||
tongling:'统领',
|
||||
tongling_info:'每当其他角色受到一次伤害时,你获得1个统领标记(标记上限为3)',
|
||||
fanpu:'反扑',
|
||||
fanpu_info:'出牌阶段限一次,你可以弃掉3个统领标记并选择1项执行:(1)本轮内不能成为【杀】的目标;(2)对你攻击范围内的1名其他角色造成1点伤害。',
|
||||
fenghuo:'烽火',
|
||||
fenghuo_info:'你可以将一张装备区内的牌当作南蛮入侵使用',
|
||||
weiyi:'威仪',
|
||||
weiyi_info:'每当你受到一次伤害,可以令伤害来源弃置两张牌',
|
||||
xieling:'挟令',
|
||||
|
|
24
game/game.js
|
@ -16,15 +16,16 @@
|
|||
dieClose:[]
|
||||
};
|
||||
var lib={
|
||||
version:1.71,
|
||||
changeLog:[],
|
||||
configprefix:'noname_0.9_',
|
||||
updates:[
|
||||
version:1.72,
|
||||
changeLog:[
|
||||
'DIY命名规则修改:冒号改为竖线|',
|
||||
'DIY技能引用现有配音',
|
||||
'从现有技能创建新技能',
|
||||
'记住对话框位置',
|
||||
'新武将(SP&英雄杀)'
|
||||
],
|
||||
configprefix:'noname_0.9_',
|
||||
updates:[],
|
||||
canvasUpdates:[],
|
||||
video:[],
|
||||
arenaReady:[],
|
||||
|
@ -6641,7 +6642,6 @@
|
|||
}
|
||||
if(this.marks[name]){
|
||||
this.marks[name].info=info;
|
||||
this.updateMarks();
|
||||
}
|
||||
else{
|
||||
if(card){
|
||||
|
@ -6651,6 +6651,7 @@
|
|||
this.marks[name]=this.mark(name,info);
|
||||
}
|
||||
}
|
||||
this.updateMarks();
|
||||
return this;
|
||||
},
|
||||
unmarkSkill:function(name){
|
||||
|
@ -8011,6 +8012,7 @@
|
|||
this.node.info.classList.add('red');
|
||||
}
|
||||
this.node.name.innerHTML='';
|
||||
this.node.image.className='image';
|
||||
var name=get.translation(card[2]);
|
||||
if(card[2]=='sha'){
|
||||
if(card[3]=='fire'){
|
||||
|
@ -8040,6 +8042,10 @@
|
|||
if(lib.nature.contains(card[3])) this.nature=card[3];
|
||||
this.classList.add(card[3]);
|
||||
}
|
||||
else if(this.nature){
|
||||
this.classList.remove(this.nature);
|
||||
delete this.nature;
|
||||
}
|
||||
if(lib.card[card[2]].subtype) this.classList.add(lib.card[card[2]].subtype);
|
||||
if(this.inits){
|
||||
for(var i=0;i<lib.element.card.inits.length;i++){
|
||||
|
@ -9347,6 +9353,7 @@
|
|||
if(lib.config.mode!='chess'){
|
||||
game.playerMap={};
|
||||
}
|
||||
game.finishCards();
|
||||
'step 2'
|
||||
if(event.video.length){
|
||||
var content=event.video.shift();
|
||||
|
@ -14528,7 +14535,8 @@
|
|||
for(var i=0;i<skills.length;i++){
|
||||
list2.push([skills[i],lib.translate[skills[i]]]);
|
||||
}
|
||||
ui.create.selectlist(list,list[0],addSkill).onchange=function(){
|
||||
var selectname=ui.create.selectlist(list,list[0],addSkill);
|
||||
selectname.onchange=function(){
|
||||
var skills=lib.character[this.value][3];
|
||||
skillopt.innerHTML='';
|
||||
for(var i=0;i<skills.length;i++){
|
||||
|
@ -14538,9 +14546,11 @@
|
|||
skillopt.appendChild(option);
|
||||
}
|
||||
};
|
||||
selectname.style.maxWidth='85px';
|
||||
var skillopt=ui.create.selectlist(list2,list2[0],addSkill);
|
||||
var editSkillButton=document.createElement('button');
|
||||
editSkillButton.innerHTML='编辑';
|
||||
editSkillButton.style.marginRight='3px';
|
||||
addSkill.appendChild(editSkillButton);
|
||||
var addSkillButton=document.createElement('button');
|
||||
addSkillButton.innerHTML='添加';
|
||||
|
@ -20560,7 +20570,7 @@
|
|||
var list=lib.rank.s.concat(lib.rank.ap).concat(lib.rank.a).concat(lib.rank.am).
|
||||
concat(lib.rank.bp).concat(lib.rank.b).concat(lib.rank.bm).concat(lib.rank.c).concat(lib.rank.d);
|
||||
for(var i in lib.character){
|
||||
if(i!='zuoci'&&!list.contains(i)) console.log(i);
|
||||
if(i!='zuoci'&&i.indexOf('boss_')!=0&&!list.contains(i)) console.log(i);
|
||||
}
|
||||
},
|
||||
h:function(player){
|
||||
|
|
After Width: | Height: | Size: 61 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 23 KiB |
|
@ -447,6 +447,7 @@
|
|||
top:170px;
|
||||
text-align: left;
|
||||
line-height: 20px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.menu-buttons>.new_character>.add_skill.options{
|
||||
top:145px;
|
||||
|
|
|
@ -405,7 +405,11 @@ mode.guozhan={
|
|||
game.players[i].node.identity.firstChild.innerHTML='猜';
|
||||
game.players[i].node.identity.dataset.color='unknown';
|
||||
}
|
||||
game.players[i].hiddenSkills=lib.character[game.players[i].name][3].concat(lib.character[game.players[i].name2][3]);
|
||||
game.players[i].hiddenSkills=lib.character[game.players[i].name][3].slice(0);
|
||||
var hiddenSkills2=lib.character[game.players[i].name2][3];
|
||||
for(var j=0;j<hiddenSkills2.length;j++){
|
||||
game.players[i].hiddenSkills.add(hiddenSkills2[j]);
|
||||
}
|
||||
game.players[i].group='unknown';
|
||||
game.players[i].sex='unknown';
|
||||
game.players[i].name1=game.players[i].name;
|
||||
|
@ -768,24 +772,56 @@ mode.guozhan={
|
|||
event.finish();
|
||||
}
|
||||
else{
|
||||
event.name=(game.expandSkills(lib.character[player.name1][3]).contains(trigger.skill))?
|
||||
player.name1:player.name2;
|
||||
var info=get.info(trigger.skill);
|
||||
var yes=!info.check||info.check(trigger._trigger,player);
|
||||
player.chooseBool('是否明置'+get.translation(event.name)+'以发动'+get.translation(trigger.skill)+'?').ai=function(){
|
||||
return yes;
|
||||
};
|
||||
var bool1=(game.expandSkills(lib.character[player.name1][3]).contains(trigger.skill));
|
||||
var bool2=(game.expandSkills(lib.character[player.name2][3]).contains(trigger.skill));
|
||||
if(bool1&&bool2){
|
||||
event.name=player.name1;
|
||||
event.name2=player.name2;
|
||||
var info=get.info(trigger.skill);
|
||||
var yes=!info.check||info.check(trigger._trigger,player);
|
||||
player.chooseBool('是否明置'+get.translation(event.name)+'以发动【'+get.translation(trigger.skill)+'】?').ai=function(){
|
||||
return yes;
|
||||
};
|
||||
}
|
||||
else{
|
||||
event.name=bool1?player.name1:player.name2;
|
||||
var info=get.info(trigger.skill);
|
||||
var yes=!info.check||info.check(trigger._trigger,player);
|
||||
player.chooseBool('是否明置'+get.translation(event.name)+'以发动【'+get.translation(trigger.skill)+'】?').ai=function(){
|
||||
return yes;
|
||||
};
|
||||
}
|
||||
}
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
if(event.name==player.name1) player.showCharacter(0);
|
||||
else player.showCharacter(1);
|
||||
trigger.revealed=true;
|
||||
event.finish();
|
||||
}
|
||||
else if(event.name2){
|
||||
var info=get.info(trigger.skill);
|
||||
var yes=!info.check||info.check(trigger._trigger,player);
|
||||
player.chooseBool('是否明置'+get.translation(event.name2)+'以发动【'+get.translation(trigger.skill)+'】?').ai=function(){
|
||||
return yes;
|
||||
};
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
trigger.untrigger();
|
||||
trigger.cancelled=true;
|
||||
}
|
||||
"step 2"
|
||||
if(event.name2){
|
||||
if(result.bool){
|
||||
player.showCharacter(1);
|
||||
trigger.revealed=true;
|
||||
}
|
||||
else{
|
||||
trigger.untrigger();
|
||||
trigger.cancelled=true;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
|
|