你在凝视欧派的时候,欧派也在凝视着你。

This commit is contained in:
Spmario233 2020-12-22 21:57:12 +08:00
parent 6e0dbee7e8
commit 18539af71b
40 changed files with 625 additions and 223 deletions

View File

@ -887,6 +887,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
})) return false; })) return false;
if(event.card.name=='nanman') return true; if(event.card.name=='nanman') return true;
if(event.card.name=='wanjian') return true; if(event.card.name=='wanjian') return true;
if(event.card.name=='chuqibuyi') return true;
return false;
}, },
content:function(){ content:function(){
trigger.cancel(); trigger.cancel();
@ -904,7 +906,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
target:player, target:player,
card:card card:card
})) return; })) return;
if(card.name=='nanman'||card.name=='wanjian') return 'zerotarget'; if(card.name=='nanman'||card.name=='wanjian'||card.name=='chuqibuyi') return 'zerotarget';
if(card.name=='sha'){ if(card.name=='sha'){
var equip1=player.getEquip(1); var equip1=player.getEquip(1);
if(equip1&&equip1.name=='zhuque') return 1.9; if(equip1&&equip1.name=='zhuque') return 1.9;
@ -1068,7 +1070,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
guding_info:'锁定技,当你使用【杀】对目标角色造成伤害时,若其没有手牌,此伤害+1。', guding_info:'锁定技,当你使用【杀】对目标角色造成伤害时,若其没有手牌,此伤害+1。',
guding_skill:'古锭刀', guding_skill:'古锭刀',
tengjia:'藤甲', tengjia:'藤甲',
tengjia_info:'锁定技,【南蛮入侵】、【万箭齐发】和普通【杀】对你无效。你每次受到火焰伤害时,该伤害+1。', tengjia_info:'锁定技,【南蛮入侵】、【万箭齐发】、【出其不意】和普通【杀】对你无效。你受到火焰伤害时,该伤害+1。',
tengjia1:'藤甲', tengjia1:'藤甲',
tengjia2:'藤甲', tengjia2:'藤甲',
tengjia3:'藤甲', tengjia3:'藤甲',

View File

@ -1493,6 +1493,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
forced:true, forced:true,
popup:false, popup:false,
nopop:true, nopop:true,
forceLoad:true,
intro:{ intro:{
content:function(storage,player){ content:function(storage,player){
return '结束阶段,你随机弃置一名随机敌人的一张随机牌(剩余'+player.storage.mapodoufu_markcount+'回合)' return '结束阶段,你随机弃置一名随机敌人的一张随机牌(剩余'+player.storage.mapodoufu_markcount+'回合)'

View File

@ -205,6 +205,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
return target!=player&&(get.mode()!='guozhan'||target.countCards('e')>0); return target!=player&&(get.mode()!='guozhan'||target.countCards('e')>0);
}, },
enable:true, enable:true,
yingbian_prompt:'此牌的效果改为依次执行所有选项',
content:function(){ content:function(){
'step 0' 'step 0'
if(get.mode()!='guozhan'&&!get.is.single()) event.goto(2); if(get.mode()!='guozhan'&&!get.is.single()) event.goto(2);
@ -235,7 +236,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
} }
event.finish(); event.finish();
'step 2' 'step 2'
target.chooseToDiscard(2,event.forceExecute,'e').set('ai',function(card){ target.chooseToDiscard(2,card.yingbian,'e').set('ai',function(card){
var player=_status.event.player; var player=_status.event.player;
var source=_status.event.getParent().player; var source=_status.event.getParent().player;
if(get.damageEffect(player,source,player,'thunder')>=0){ if(get.damageEffect(player,source,player,'thunder')>=0){
@ -259,15 +260,26 @@ game.import('card',function(lib,game,ui,get,ai,_status){
natureDamage:1, natureDamage:1,
loseCard:1, loseCard:1,
}, },
yingbian:function(card,player,targets,viewer){
if(get.attitude(viewer,player)<=0) return 0;
if(targets.filter(function(current){
return get.damageEffect(current,player,player,'thunder')>0&&current.countCards('e',function(card){
return get.value(card,current)<=0;
})<2&&current.countCards('e',function(card){
return get.value(card,current)>0;
})>0;
}).length) return 6;
return 0;
},
result:{ result:{
target:function(player,target){ target:function(player,target){
if(get.mode()!='guozhan'&&!get.is.single()){ if(get.mode()!='guozhan'&&!get.is.single()){
if(target.countCards('e',function(card){ if(target.countCards('e',function(card){
return get.value(card,target)<=0; return get.value(card,target)<=0;
})) return 1; })>1) return 1;
var es=target.countCards('e'); var es=target.countCards('e');
if(es<2) return -1.5; if(es<2) return -1.5;
return 3/es; return -3/es;
} }
return -1-target.countCards('e'); return -1-target.countCards('e');
} }

View File

@ -83,6 +83,14 @@ game.import('card',function(lib,game,ui,get,ai,_status){
global:'icesha_skill', global:'icesha_skill',
range:{attack:1}, range:{attack:1},
selectTarget:1, selectTarget:1,
yingbian_prompt:function(card){
if(card.nature=='fire'){
return '此牌的伤害值基数+1';
}
else{
return '当你使用此牌选择目标后,你可为此牌增加一个目标';
}
},
yingbian:function(event){ yingbian:function(event){
if(event.card.nature=='fire'){ if(event.card.nature=='fire'){
if(typeof event.baseDamage!='number') event.baseDamage=1; if(typeof event.baseDamage!='number') event.baseDamage=1;
@ -255,6 +263,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
cardcolor:'red', cardcolor:'red',
notarget:true, notarget:true,
nodelay:true, nodelay:true,
yingbian_prompt:'当你声明使用此牌后,你摸一张牌',
yingbian:function(event){ yingbian:function(event){
event.player.draw(); event.player.draw();
}, },
@ -760,6 +769,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
type:'trick', type:'trick',
enable:true, enable:true,
selectTarget:-1, selectTarget:-1,
yingbian_prompt:'当你使用此牌选择目标后,你可为此牌减少一个目标',
yingbian:function(event){ yingbian:function(event){
event.yingbian_removeTarget=true; event.yingbian_removeTarget=true;
}, },
@ -948,6 +958,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
fullskin:true, fullskin:true,
type:'trick', type:'trick',
enable:true, enable:true,
yingbian_prompt:'你令此牌不可被响应',
yingbian:function(event){ yingbian:function(event){
event.directHit.addArray(game.players); event.directHit.addArray(game.players);
}, },
@ -1058,7 +1069,15 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}, },
result:{ result:{
target:-1.5, target:-1.5,
player:function(player,target){ player:function(player,target,card){
if(get.cardtag(card,'yingbian_fujia')){
var num=player.countCards('h',function(cardx){
return cardx!=card&&(!card.cards||!card.cards.contains(cardx));
});
if(!game.hasPlayer(function(current){
return current.countCards('h')>num;
})) return 0;
}
if(get.damageEffect(target,player,target)>0&&get.attitude(player,target)>0&&get.attitude(target,player)>0){ if(get.damageEffect(target,player,target)>0&&get.attitude(player,target)>0&&get.attitude(target,player)>0){
return 0; return 0;
} }
@ -1322,6 +1341,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
expose:0.2 expose:0.2
}, },
notarget:true, notarget:true,
yingbian_prompt:'当此牌生效后,你获得此牌响应的目标牌',
contentBefore:function(){ contentBefore:function(){
'step 0' 'step 0'
if(get.mode()=='guozhan'&&get.cardtag(card,'guo')){ if(get.mode()=='guozhan'&&get.cardtag(card,'guo')){
@ -2031,6 +2051,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
} }
return true; return true;
}, },
forceLoad:true,
content:function(){ content:function(){
'step 0' 'step 0'
delete event.wuxieresult; delete event.wuxieresult;

View File

@ -2,7 +2,7 @@
game.import('card',function(lib,game,ui,get,ai,_status){ game.import('card',function(lib,game,ui,get,ai,_status){
return { return {
name:'yingbian', name:'yingbian',
//connect:true, connect:true,
card:{ card:{
suijiyingbian:{ suijiyingbian:{
global:'suijiyingbian_skill', global:'suijiyingbian_skill',
@ -16,6 +16,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
return target!=player&&target.countCards('hej')>0; return target!=player&&target.countCards('hej')>0;
}, },
yingbian_prompt:'此牌的效果改为依次执行所有选项',
content:function(){ content:function(){
var dist=get.distance(player,target); var dist=get.distance(player,target);
if(dist>1||card.yingbian) player.discardPlayerCard(target,'hej',true); if(dist>1||card.yingbian) player.discardPlayerCard(target,'hej',true);
@ -31,6 +32,19 @@ game.import('card',function(lib,game,ui,get,ai,_status){
return 0; return 0;
} }
}, },
yingbian:function(card,player,targets,viewer){
if(get.attitude(viewer,player)<=0) return 0;
if(targets.filter(function(current){
var att=get.attitude(player,current);
if(att<=0) return current.countCards('he',function(card){
return get.value(card,current)>0;
})>1;
return current.countCards('ej',function(card){
return get.position(card)=='j'||get.value(card,current)<=0;
})>1;
}).length) return 6;
return 0;
},
basic:{ basic:{
order:7.5, order:7.5,
useful:4, useful:4,
@ -116,6 +130,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
return target!=player&&target.countCards('h')>0; return target!=player&&target.countCards('h')>0;
}, },
yingbian_prompt:'当你使用此牌选择目标后,你可为此牌增加一个目标',
yingbian:function(event){ yingbian:function(event){
event.yingbian_addTarget=true; event.yingbian_addTarget=true;
}, },
@ -138,6 +153,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
useful:2, useful:2,
value:6 value:6
}, },
yingbian:function(card,player,targets,viewer){
if(get.attitude(viewer,player)<=0) return 0;
if(game.hasPlayer(function(current){
return !targets.contains(current)&&lib.filter.targetEnabled2(card,player,current)&&get.effect(current,card,player,player)>0;
})) return 6;
return 0;
},
result:{ result:{
target:function(player,target,cardx){ target:function(player,target,cardx){
if(player.hasSkillTag('viewHandcard',null,target,true)) return target.countCards('h',function(card){ if(player.hasSkillTag('viewHandcard',null,target,true)) return target.countCards('h',function(card){
@ -240,7 +262,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
equipValue:2 equipValue:2
} }
}, },
skills:['taigongyinfu_skill'] skills:['taigongyinfu_skill','taigongyinfu_link'],
}, },
}, },
skill:{ skill:{
@ -249,20 +271,24 @@ game.import('card',function(lib,game,ui,get,ai,_status){
cardname:function(card,player){ cardname:function(card,player){
if(card.name=='suijiyingbian'&&player.storage.suijiyingbian) return player.storage.suijiyingbian; if(card.name=='suijiyingbian'&&player.storage.suijiyingbian) return player.storage.suijiyingbian;
}, },
cardnature:function(card,player){
if(card.name=='suijiyingbian'&&player.storage.suijiyingbian_nature) return player.storage.suijiyingbian_nature;
},
}, },
trigger:{ trigger:{
player:['useCard1','respond','phaseBeginStart'], player:['useCard1','respond'],
}, },
silent:true, silent:true,
firstDo:true, firstDo:true,
filter:function(event,player,name){ filter:function(event,player,name){
if(name=='phaseBeginStart') return true; //if(name=='phaseBeginStart') return true;
var type=get.type(event.card); var type=get.type(event.card);
return type=='basic'||type=='trick'; return type=='basic'||type=='trick';
}, },
content:function(){ content:function(){
if(event.triggername=='phaseBeginStart') delete player.storage.suijiyingbian; //if(event.triggername=='phaseBeginStart') delete player.storage.suijiyingbian;
else player.storage.suijiyingbian=trigger.card.name; player.storage.suijiyingbian=trigger.card.name;
player.storage.suijiyingbian_nature=trigger.card.nature;
}, },
}, },
wuxinghelingshan_skill:{ wuxinghelingshan_skill:{
@ -330,7 +356,52 @@ game.import('card',function(lib,game,ui,get,ai,_status){
audio:true, audio:true,
}, },
taigongyinfu_skill:{ taigongyinfu_skill:{
equipSkill:true,
audio:true, audio:true,
trigger:{player:'phaseUseEnd'},
direct:true,
filter:function(event,player){
return player.countCards('h')>0;
},
content:function(){
'step 0'
player.chooseCard('h','是否发动【太公阴符】重铸一张手牌?').set('ai',function(card){
return 5-get.value(card);
});
'step 1'
if(result.bool){
player.logSkill('taigongyinfu_skill');
player.lose(result.cards,ui.discardPile);
player.$throw(result.cards,1000);
game.log(player,'将',result.cards,'置入了弃牌堆');
player.draw();
}
},
},
taigongyinfu_link:{
audio:'taigongyinfu_skill',
trigger:{player:'phaseUseBegin'},
equipSkill:true,
filter:function(event,player){
return game.hasPlayer(function(current){
return !current.isLinked();
});
},
direct:true,
content:function(){
'step 0'
player.chooseTarget(true,function(card,player,target){
return !target.isLinked();
},'是否发动【太公阴符】横置一名角色?').set('',function(target){
return get.effect(target,{name:'tiesuo'},_status.event.player);
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('taigongyinfu_skill',target);
target.link();
}
},
}, },
_yingbian:{ _yingbian:{
trigger:{player:'useCard1'}, trigger:{player:'useCard1'},
@ -343,7 +414,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(get.cardtag(card,'yingbian_kongchao')&&(!player.countCards('h')||bool)) return true; if(get.cardtag(card,'yingbian_kongchao')&&(!player.countCards('h')||bool)) return true;
if(get.cardtag(card,'yingbian_canqu')&&(player.hp==1||bool)) return true; if(get.cardtag(card,'yingbian_canqu')&&(player.hp==1||bool)) return true;
if(get.cardtag(card,'yingbian_fujia')&&(player.isMaxHandcard()||bool)) return true; if(get.cardtag(card,'yingbian_fujia')&&(player.isMaxHandcard()||bool)) return true;
if(get.cardtag(card,'yingbian_zhuzhan')||bool) return true; if(get.cardtag(card,'yingbian_zhuzhan')) return true;
return false; return false;
}, },
content:function(){ content:function(){
@ -370,23 +441,35 @@ game.import('card',function(lib,game,ui,get,ai,_status){
} }
'step 1' 'step 1'
event._global_waiting=true; event._global_waiting=true;
event.send=function(player,card,source,id,id2,skillState){ event.send=function(player,card,source,targets,id,id2,skillState){
if(skillState){ if(skillState){
player.applySkills(skillState); player.applySkills(skillState);
} }
var type=get.type(card); var type=get.type(card);
var str=get.translation(source);
if(targets&&targets.length){
str+='对';
str+=get.translation(targets);
}
str+='使用了';
var next=player.chooseCard({ var next=player.chooseCard({
filterCard:function(card){ filterCard:function(card){
return get.type(card)==type&&lib.filter.cardDiscardable.apply(this,arguments); return get.type(card)==type&&lib.filter.cardDiscardable.apply(this,arguments);
}, },
prompt:(get.translation(source)+'使用了'+get.translation(card)+',是否弃置一张'+get.translation(type)+'为其助战?'), prompt:str+=(get.translation(card)+',是否弃置一张'+get.translation(type)+'为其助战?'),
position:'h', position:'h',
_global_waiting:true, _global_waiting:true,
id:id, id:id,
id2:id2, id2:id2,
ai:function(card){ ai:function(cardx){
if(get.attitude(player,source)<=0) return false; var info=get.info(card);
return 5-get.value(card); if(info&&info.ai&&info.ai.yingbian){
var ai=info.ai.yingbian(card,source,targets,player);
if(!ai) return 0;
return ai-get.value(cardx);
}
else if(get.attitude(player,source)<=0) return 0;
return 5-get.value(cardx);
}, },
}); });
if(game.online){ if(game.online){
@ -418,7 +501,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
} }
else{ else{
event.current=event.list.shift(); event.current=event.list.shift();
event.send(event.current,event.card,player,event.id,trigger.parent.id); event.send(event.current,event.card,player,trigger.targets,event.id,trigger.parent.id);
} }
'step 4' 'step 4'
if(result.bool){ if(result.bool){
@ -461,12 +544,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(list[i].isOnline()){ if(list[i].isOnline()){
withol=true; withol=true;
list[i].wait(sendback); list[i].wait(sendback);
list[i].send(event.send,list[i],event.card,player,event.id,trigger.parent.id,get.skillState(list[i])); list[i].send(event.send,list[i],event.card,player,trigger.targets,event.id,trigger.parent.id,get.skillState(list[i]));
list.splice(i--,1); list.splice(i--,1);
} }
else if(list[i]==game.me){ else if(list[i]==game.me){
withme=true; withme=true;
event.send(list[i],event.card,event.source,event.id,trigger.parent.id); event.send(list[i],event.card,player,trigger.targets,event.id,trigger.parent.id);
list.splice(i--,1); list.splice(i--,1);
} }
} }
@ -570,7 +653,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}, },
translate:{ translate:{
suijiyingbian:'随机应变', suijiyingbian:'随机应变',
suijiyingbian_info:'此牌的牌名视为你本回合内使用或打出的上一张基本牌或普通锦囊牌的牌名。', suijiyingbian_info:'此牌的牌名视为你本局游戏内使用或打出的上一张基本牌或普通锦囊牌的牌名。',
zhujinqiyuan:'逐近弃远', zhujinqiyuan:'逐近弃远',
zhujinqiyuan_info:'出牌阶段对一名有牌的其他角色使用。若你与其距离的大于1你弃置其区域内的一张牌若你与其的距离等于1你获得其区域内的一张牌。', zhujinqiyuan_info:'出牌阶段对一名有牌的其他角色使用。若你与其距离的大于1你弃置其区域内的一张牌若你与其的距离等于1你获得其区域内的一张牌。',
dongzhuxianji:'洞烛先机', dongzhuxianji:'洞烛先机',
@ -582,7 +665,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
wuxinghelingshan_info:'当你声明使用不为神属性的属性【杀】时,你可将此【杀】的属性改为不为神属性的其他属性。', wuxinghelingshan_info:'当你声明使用不为神属性的属性【杀】时,你可将此【杀】的属性改为不为神属性的其他属性。',
wutiesuolian:'乌铁锁链', wutiesuolian:'乌铁锁链',
wutiesuolian_skill:'乌铁锁链', wutiesuolian_skill:'乌铁锁链',
wutiesuolian_skill_info:'当你使用【杀】指定目标后,若其:已横置,你观看其手牌。未横置,其横置。', wutiesuolian_info:'锁定技,当你使用【杀】指定目标后,若其:已横置,你观看其手牌。未横置,其横置。',
heiguangkai:'黑光铠', heiguangkai:'黑光铠',
heiguangkai_skill:'黑光铠', heiguangkai_skill:'黑光铠',
heiguangkai_info:'锁定技当你成为【杀】或普通锦囊牌的目标后若此牌的目标数大于1则你令此牌对你无效。', heiguangkai_info:'锁定技当你成为【杀】或普通锦囊牌的目标后若此牌的目标数大于1则你令此牌对你无效。',
@ -592,7 +675,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
tianjitu_skill:'天机图', tianjitu_skill:'天机图',
tianjitu_info:'锁定技,当此牌进入你的装备区时,你弃置一张不为此【天机图】的牌。当此牌离开你的装备区后,你将手牌摸至五张。', tianjitu_info:'锁定技,当此牌进入你的装备区时,你弃置一张不为此【天机图】的牌。当此牌离开你的装备区后,你将手牌摸至五张。',
taigongyinfu:'太公阴符', taigongyinfu:'太公阴符',
taigongyinfu_info:'出牌阶段开始时,你可以横置一名角色。出牌阶段结束时,你可以重置一张手牌。', taigongyinfu_info:'出牌阶段开始时,你可以横置一名角色。出牌阶段结束时,你可以重铸一张手牌。',
taigongyinfu_skill:'太公阴符',
taigongyinfu_link:'太公阴符',
yingbian_zhuzhan_tag:'助战', yingbian_zhuzhan_tag:'助战',
yingbian_kongchao_tag:'空巢', yingbian_kongchao_tag:'空巢',
yingbian_fujia_tag:'富甲', yingbian_fujia_tag:'富甲',
@ -765,5 +850,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
['diamond',13,'zixin'], ['diamond',13,'zixin'],
['diamond',13,'hualiu'], ['diamond',13,'hualiu'],
], ],
help:{
'应变篇':('<div style="margin:10px">应变机制</div><ul style="margin-top:0">'+
'<li>当一名角色声明使用右下角标注了应变条件的卡牌后,若其满足应变条件,则其触发此牌的“应变”效果。<br><li>长按或鼠标右键点击卡牌,即可查看此牌所拥有的应变效果。'+
'<br><li>应变条件<br><ul style="padding-left:20px;padding-top:5px"><li>空巢该角色声明使用此牌后其手牌数为0。<br><li>富甲:该角色声明使用此牌后,其手牌数为全场最多或之一。<br><li>残躯该角色声明使用此牌后其体力值为1。<br><li>助战:该角色声明使用此牌后,其发起“助战”。其他角色可弃置一张与此牌类型系统的卡牌,响应此“助战”。若有角色响应,则视为其应变成功。</ul></ul>'),
},
} }
}); });

View File

@ -59,7 +59,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_kotori:['female','key',3,['kotori_yumo','kotori_huazhan']], key_kotori:['female','key',3,['kotori_yumo','kotori_huazhan']],
key_jojiro:['male','key',4,['jojiro_shensu','jojiro_shunying']], key_jojiro:['male','key',4,['jojiro_shensu','jojiro_shunying']],
key_shiroha:['female','key',3,['shiroha_yuzhao','shiroha_guying','shiroha_jiezhao']], key_shiroha:['female','key',3,['shiroha_yuzhao','shiroha_guying','shiroha_jiezhao']],
key_shizuku:['female','key',3,['shizuku_sizhi','shizuku_biyi']], key_shizuku:['female','key',3,['shizuku_sizhi','shizuku_biyi','shizuku_sanhua']],
key_hiroto:['male','key',3,['hiroto_huyu','hiroto_tuolao']], key_hiroto:['male','key',3,['hiroto_huyu','hiroto_tuolao']],
key_kud:['female','key',3,['kud_qiaoshou','kud_buhui']], key_kud:['female','key',3,['kud_qiaoshou','kud_buhui']],
@ -632,6 +632,37 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result.bool) player.recover(); if(result.bool) player.recover();
}, },
}, },
shizuku_sanhua:{
trigger:{player:'die'},
forceDie:true,
skillAnimation:true,
animationColor:'thunder',
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt2('shizuku_sanhua'),lib.filter.notMe).set('ai',function(target){
return get.attitude(_status.event.player,target);
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('shizuku_sanhua',target);
var names=[];
var cards=[];
while(cards.length<4){
var card=get.cardPile2(function(card){
return !cards.contains(card)&&!names.contains(card.name)&&get.type(card)=='basic';
});
if(card){
cards.push(card);
names.push(card.name);
}
else break;
}
if(cards.length) target.gain(cards,'gain2');
}
},
},
shiroha_yuzhao:{ shiroha_yuzhao:{
trigger:{ trigger:{
global:'gameDrawAfter', global:'gameDrawAfter',
@ -1572,6 +1603,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(i=='sha'){ if(i=='sha'){
list.push([type,'',i,'fire']); list.push([type,'',i,'fire']);
list.push([type,'',i,'thunder']); list.push([type,'',i,'thunder']);
list.push([type,'',i,'ice']);
} }
} }
player.chooseButton(['是否视为使用一张基本牌或普通锦囊牌?',[list,'vcard']]).set('filterButton',function(button){ player.chooseButton(['是否视为使用一张基本牌或普通锦囊牌?',[list,'vcard']]).set('filterButton',function(button){
@ -4603,6 +4635,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
['基本','','sha'], ['基本','','sha'],
['基本','','sha','fire'], ['基本','','sha','fire'],
['基本','','sha','thunder'], ['基本','','sha','thunder'],
['基本','','sha','ice'],
]); ]);
} }
else if(get.type(name)=='basic'){ else if(get.type(name)=='basic'){
@ -4865,6 +4898,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
list.push(['基本','','sha']); list.push(['基本','','sha']);
list.push(['基本','','sha','fire']); list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']); list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
} }
else if(get.type(name)=='trick') list.push(['锦囊','',name]); else if(get.type(name)=='trick') list.push(['锦囊','',name]);
else if(get.type(name)=='basic') list.push(['基本','',name]); else if(get.type(name)=='basic') list.push(['基本','',name]);
@ -6674,6 +6708,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
list.push(['基本','','sha']); list.push(['基本','','sha']);
list.push(['基本','','sha','fire']); list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']); list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
} }
else if(get.type(name)=='trick') list.push(['锦囊','',name]); else if(get.type(name)=='trick') list.push(['锦囊','',name]);
else if(get.type(name)=='basic') list.push(['基本','',name]); else if(get.type(name)=='basic') list.push(['基本','',name]);
@ -11998,6 +12033,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shiroha_guying_rewrite_info:'当你受到伤害/对其他角色造成伤害时,你可进行判定。若结果为红色/黑色,此伤害-1/+1。', shiroha_guying_rewrite_info:'当你受到伤害/对其他角色造成伤害时,你可进行判定。若结果为红色/黑色,此伤害-1/+1。',
shiroha_jiezhao:'解兆', shiroha_jiezhao:'解兆',
shiroha_jiezhao_info:'一名角色的判定牌生效前你可打出一张「兆」代替之。当你以此法移去最后一张「兆」后你加1点体力上限并回复1点体力然后修改〖孤影〗并随机获得以下技能中的一个〖炒饭〗/〖习事〗/〖呣啾〗/〖结伴〗。', shiroha_jiezhao_info:'一名角色的判定牌生效前你可打出一张「兆」代替之。当你以此法移去最后一张「兆」后你加1点体力上限并回复1点体力然后修改〖孤影〗并随机获得以下技能中的一个〖炒饭〗/〖习事〗/〖呣啾〗/〖结伴〗。',
//猴年马月爆料再利用
shizuku_sizhi:'思智',
shizuku_sizhi2:'思智',
shizuku_sizhi_info:'出牌阶段限一次你可以弃置任意张点数之和为13的牌然后摸两倍数量的牌。以此法获得的牌中黑色牌本回合无距离和次数限制红色牌本回合不计入手牌上限。',
shizuku_biyi:'避忆',
shizuku_biyi_info:'当你受到伤害后你可以进行一次判定然后若你弃置任意张点数之和与判定结果点数相同的牌你回复1点体力。',
shizuku_sanhua:'散花',
shizuku_sanhua_info:'当你死亡时,你可令一名其他角色从牌堆中获得四张名称各不相同的基本牌。',
hiroto_huyu:'虎驭', hiroto_huyu:'虎驭',
hiroto_huyu2:'虎驭', hiroto_huyu2:'虎驭',
hiroto_huyu_info:'其他角色的出牌阶段结束时,若你没有技能〖纵略〗,则其可将两张手牌交给你。若如此做,你获得〖纵略〗。你的下回合结束时,你失去〖纵略〗并将本回合内获得的所有牌交给该角色。', hiroto_huyu_info:'其他角色的出牌阶段结束时,若你没有技能〖纵略〗,则其可将两张手牌交给你。若如此做,你获得〖纵略〗。你的下回合结束时,你失去〖纵略〗并将本回合内获得的所有牌交给该角色。',
@ -12040,12 +12083,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
nao_shouqing2:'守情', nao_shouqing2:'守情',
nao_shouqing3:'守情', nao_shouqing3:'守情',
nao_shouqing_info:'其他角色的出牌阶段内可以对你使用【桃】。若如此做,其摸一张牌且本局游戏内的手牌上限+1。', nao_shouqing_info:'其他角色的出牌阶段内可以对你使用【桃】。若如此做,其摸一张牌且本局游戏内的手牌上限+1。',
//猴年马月爆料再利用
shizuku_sizhi:'思智',
shizuku_sizhi2:'思智',
shizuku_sizhi_info:'出牌阶段限一次你可以弃置任意张点数之和为13的牌然后摸两倍数量的牌。以此法获得的牌中黑色牌本回合无距离和次数限制红色牌本回合不计入手牌上限。',
shizuku_biyi:'避忆',
shizuku_biyi_info:'当你受到伤害后你可以进行一次判定然后若你弃置任意张点数之和与判定结果点数相同的牌你回复1点体力。',
ns_huangchengyan:'黄承彦', ns_huangchengyan:'黄承彦',
nslongyue:'龙岳', nslongyue:'龙岳',

View File

@ -1794,7 +1794,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filterCard:lib.filter.cardDiscardable, filterCard:lib.filter.cardDiscardable,
filterTarget:lib.filter.notMe, filterTarget:lib.filter.notMe,
position:'he', position:'he',
ai1:function(){return -1}, ai1:function(card){
var friend=0,enemy=0,player=_status.event.player;
var num=game.countPlayer(function(target){
var att=get.attitude(player,target);
if(att<0) enemy++;
if(target!=player&&att>0) friend++;
return true;
});
if(num>(friend+enemy+2)) return 0;
if(friend<enemy) return 0;
if(card.name=='sha') return 10-enemy;
return 10-enemy-get.value(card);
},
ai2:function(target){
return -get.attitude(_status.event.player,target)*(1+target.countCards('h'));
},
}); });
'step 1' 'step 1'
if(result.bool){ if(result.bool){
@ -1809,7 +1824,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(get.type(name)=='trick') list.push(['锦囊','',name]); if(get.type(name)=='trick') list.push(['锦囊','',name]);
else if(get.type(name)=='basic') list.push(['基本','',name]); else if(get.type(name)=='basic') list.push(['基本','',name]);
} }
player.chooseButton(['请选择一个牌名',[list,'vcard'],true]); player.chooseButton(['请选择一个牌名',[list,'vcard'],true]).set('ai',function(button){
return button.link[2]=='sha'?1:0;
});
} }
else event.finish(); else event.finish();
'step 2' 'step 2'
@ -1923,6 +1940,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return 0; return 0;
}).set('goon',function(){ }).set('goon',function(){
if(get.attitude(trigger.player,player)>0) return true; if(get.attitude(trigger.player,player)>0) return true;
if(!trigger.player.countCards('he')) return true;
if(!player.hasShan()) return true; if(!player.hasShan()) return true;
return event.getRand()<0.5; return event.getRand()<0.5;
}()); }());
@ -1938,18 +1956,31 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
else event.finish(); else event.finish();
'step 2' 'step 2'
trigger.player.chooseToDiscard('弃置一张牌令'+get.translation(player)+'不能闪避此【杀】,或点「取消」摸两张牌并令此【杀】对其无效','he').set('ai',function(card){ var sha=get.translation(trigger.card);
if(_status.event.goon) return 6-get.value(card); if(!trigger.player.countCards('he',function(card){
return lib.filter.cardDiscardable(card,trigger.player,'duoduan');
})) event.finish();
else player.chooseControl().set('choiceList',[
'令其摸两张牌,然后令'+sha+'对你无效',
'令其弃置一张牌,然后你不可响应'+sha,
]).set('prompt','度断:令'+get.translation(trigger.player)+'执行一项').set('ai',function(){
var player=_status.event.player;
var source=_status.event.getTrigger().player;
if(get.attitude(player,source)>0) return 0;
if(!player.hasShan()&&player.hp>=2) return 1;
return 0; return 0;
}).set('goon',get.attitude(trigger.player,player)<0); });
'step 3' 'step 3'
if(result.index==0) event.goto(5);
else trigger.player.chooseToDiscard('弃置一张牌令'+get.translation(player)+'不能闪避此【杀】','he',true);
'step 4'
if(result.bool){ if(result.bool){
trigger.directHit.add(player); trigger.directHit.add(player);
} }
else{ event.finish();
trigger.player.draw(2); 'step 5'
trigger.excluded.add(player); trigger.player.draw(2);
} trigger.excluded.add(player);
}, },
}, },
duoduan_im:{ duoduan_im:{
@ -2778,6 +2809,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
case 'fire':name='huosha';break; case 'fire':name='huosha';break;
case 'thunder':name='leisha';break; case 'thunder':name='leisha';break;
case 'kami':name='kamisha';break; case 'kami':name='kamisha';break;
case 'ice':name='icesha';break;
} }
} }
list.add(name); list.add(name);
@ -2791,6 +2823,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
case 'fire':name='huosha';break; case 'fire':name='huosha';break;
case 'thunder':name='leisha';break; case 'thunder':name='leisha';break;
case 'kami':name='kamisha';break; case 'kami':name='kamisha';break;
case 'ice':name='icesha';break;
} }
} }
list.add(name); list.add(name);
@ -3845,6 +3878,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
list.push(['基本','','sha']); list.push(['基本','','sha']);
list.push(['基本','','sha','fire']); list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']); list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
} }
if(event.filterCard({name:'tao'},player,event)){ if(event.filterCard({name:'tao'},player,event)){
list.push(['基本','','tao']); list.push(['基本','','tao']);
@ -3867,7 +3901,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}; };
case 'sha': case 'sha':
if(button.link[3]=='fire') return 2.95; if(button.link[3]=='fire') return 2.95;
else if(button.link[3]=='thunder') return 2.92; else if(button.link[3]=='thunder'||button.link[3]=='ice') return 2.92;
else return 2.9; else return 2.9;
} }
} }
@ -4660,6 +4694,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
list.push(['基本','','sha']); list.push(['基本','','sha']);
list.push(['基本','','sha','fire']); list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']); list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
} }
if(event.filterCard({name:'shan'},player,event)){ if(event.filterCard({name:'shan'},player,event)){
list.push(['基本','','shan']); list.push(['基本','','shan']);
@ -4685,7 +4720,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}; };
case 'sha': case 'sha':
if(button.link[3]=='fire') return 2.95; if(button.link[3]=='fire') return 2.95;
else if(button.link[3]=='thunder') return 2.92; else if(button.link[3]=='thunder'||button.link[3]=='ice') return 2.92;
else return 2.9; else return 2.9;
} }
} }

View File

@ -102,6 +102,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
list.push(['基本','','sha']); list.push(['基本','','sha']);
list.push(['基本','','sha','fire']); list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']); list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
} }
else if(get.type(name)=='trick') list.push(['锦囊','',name]); else if(get.type(name)=='trick') list.push(['锦囊','',name]);
else if(get.type(name)=='basic') list.push(['基本','',name]); else if(get.type(name)=='basic') list.push(['基本','',name]);
@ -558,6 +559,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
list.push(['基本','','sha']); list.push(['基本','','sha']);
list.push(['基本','','sha','fire']); list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']); list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
} }
if(event.filterCard({name:'tao'},player,event)){ if(event.filterCard({name:'tao'},player,event)){
list.push(['基本','','tao']); list.push(['基本','','tao']);

View File

@ -422,6 +422,7 @@ window.noname_character_rank={
'sp_pangtong', 'sp_pangtong',
'ns_jiaxu', 'ns_jiaxu',
'old_jiakui', 'old_jiakui',
'jin_simayi',
'key_kyousuke', 'key_kyousuke',
'key_yusa', 'key_yusa',
'key_misa', 'key_misa',
@ -436,7 +437,7 @@ window.noname_character_rank={
'tw_beimihu', 'tw_beimihu',
'ns_caoshuang', 'ns_caoshuang',
'key_shizuku', 'key_shizuku',
'luyusheng', 'wangrong',
'mini_lvbu', 'mini_lvbu',
], ],
bp:[ bp:[
@ -771,6 +772,7 @@ window.noname_character_rank={
'jianggan', 'jianggan',
'yj_chendao', 'yj_chendao',
'yj_caoang', 'yj_caoang',
'jin_zhangchunhua',
'ns_caimao', 'ns_caimao',
'key_nao', 'key_nao',
'key_haruko', 'key_haruko',
@ -1229,6 +1231,8 @@ window.noname_character_rank={
'mini_zuoci', 'mini_zuoci',
'mini_lvbu', 'mini_lvbu',
'mini_zhugeliang', 'mini_zhugeliang',
'jin_simayi',
'jin_zhangchunhua',
'key_haruko', 'key_haruko',
'key_akiko', 'key_akiko',
'key_sunohara', 'key_sunohara',

View File

@ -3731,7 +3731,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(i=='shan'||i=='wuxie') continue; if(i=='shan'||i=='wuxie') continue;
var type=get.type(i); var type=get.type(i);
if((type=='basic'||type=='trick')&&event.filterCard({name:i},player,event)) return true; if((type=='basic'||type=='trick')&&event.filterCard({name:i},player,event)) return true;
if(i=='sha'&&(event.filterCard({name:i,nature:'fire'},player,event)||event.filterCard({name:i,nature:'thunder'},player,event))) return true; if(i=='sha'&&(event.filterCard({name:i,nature:'ice'},player,event)||event.filterCard({name:i,nature:'fire'},player,event)||event.filterCard({name:i,nature:'thunder'},player,event))) return true;
} }
return false; return false;
}, },
@ -3745,6 +3745,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(i=='sha'){ if(i=='sha'){
list.push([type,'',i,'fire']); list.push([type,'',i,'fire']);
list.push([type,'',i,'thunder']); list.push([type,'',i,'thunder']);
list.push([type,'',i,'ice']);
} }
} }
return ui.create.dialog('蛊惑',[list,'vcard']); return ui.create.dialog('蛊惑',[list,'vcard']);
@ -4799,13 +4800,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"new_rewusheng":{ "new_rewusheng":{
mod:{ mod:{
targetInRange:function (card){ targetInRange:function (card){
if(get.suit(card)=='diamond'&&(_status.event.skill=='new_rewusheng'||card.name=='sha')) return true; if(get.suit(card)=='diamond'&&card.name=='sha') return true;
}, },
}, },
audio:"wusheng", audio:"wusheng",
audioname:['re_guanyu','guanzhang','jsp_guanyu','guansuo'], audioname:['re_guanyu','guanzhang','jsp_guanyu','guansuo'],
enable:["chooseToRespond","chooseToUse"], enable:["chooseToRespond","chooseToUse"],
filterCard:function (card,player){ filterCard:function(card,player){
if(get.zhu(player,'shouyue')) return true; if(get.zhu(player,'shouyue')) return true;
return get.color(card)=='red'; return get.color(card)=='red';
}, },
@ -4822,9 +4823,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
prompt:"将一张红色牌当杀使用或打出", prompt:"将一张红色牌当杀使用或打出",
check:function (card){return 4-get.value(card)}, check:function(card){return 4-get.value(card)},
ai:{ ai:{
skillTagFilter:function (player){ skillTagFilter:function(player){
if(get.zhu(player,'shouyue')){ if(get.zhu(player,'shouyue')){
if(!player.countCards('he')) return false; if(!player.countCards('he')) return false;
} }
@ -4832,48 +4833,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!player.countCards('he',{color:'red'})) return false; if(!player.countCards('he',{color:'red'})) return false;
} }
}, },
respondSha:true,
basic:{
useful:[5,1],
value:[5,1],
},
order:function (){
if(_status.event.player.hasSkillTag('presha',true,null,true)) return 10;
return 3;
},
result:{
target:function (player,target){
if(player.hasSkill('jiu')&&!target.getEquip('baiyin')){
if(get.attitude(player,target)>0){
return -6;
}
else{
return -3;
}
}
return -1.5;
},
},
tag:{
respond:1,
respondShan:1,
damage:function (card){
if(card.nature=='poison') return;
return 1;
},
natureDamage:function (card){
if(card.nature) return 1;
},
fireDamage:function (card,nature){
if(card.nature=='fire') return 1;
},
thunderDamage:function (card,nature){
if(card.nature=='thunder') return 1;
},
poisonDamage:function (card,nature){
if(card.nature=='poison') return 1;
},
},
}, },
}, },
"new_yijue":{ "new_yijue":{
@ -5852,6 +5811,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
list.push(['基本','','sha']); list.push(['基本','','sha']);
list.push(['基本','','sha','fire']); list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']); list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
} }
if(lib.filter.cardUsable({name:'tao'},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){ if(lib.filter.cardUsable({name:'tao'},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){
return player.canUse('tao',current); return player.canUse('tao',current);
@ -5878,7 +5838,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return player.canUse(card,current)&&get.effect(current,card,player,player)>0 return player.canUse(card,current)&&get.effect(current,card,player,player)>0
})){ })){
if(card.nature=='fire') return 2.95; if(card.nature=='fire') return 2.95;
if(card.nature=='thunder') return 2.92; if(card.nature=='thunder'||card.nature=='ice') return 2.92;
return 2.9; return 2.9;
} }
return 0; return 0;

View File

@ -3238,7 +3238,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target:function(card,player,target,current){ target:function(card,player,target,current){
if(!target.hasFriend()&&!player.hasUnknown()) return; if(!target.hasFriend()&&!player.hasUnknown()) return;
if(_status.currentPhase==target) return; if(_status.currentPhase==target) return;
if(get.tag(card,'loseCard')&&target.countCards('he')){ if(card.name!='shuiyanqijunx'&&get.tag(card,'loseCard')&&target.countCards('he')){
if(target.hasSkill('ziliang')) return 0.7; if(target.hasSkill('ziliang')) return 0.7;
return [0.5,Math.max(2,target.countCards('h'))]; return [0.5,Math.max(2,target.countCards('h'))];
} }
@ -6785,6 +6785,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
list.push(['基本','','sha']); list.push(['基本','','sha']);
list.push(['基本','','sha','fire']); list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']); list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
} }
else if(get.type(name)=='trick') list.push(['锦囊','',name]); else if(get.type(name)=='trick') list.push(['锦囊','',name]);
else if(get.type(name)=='basic') list.push(['基本','',name]); else if(get.type(name)=='basic') list.push(['基本','',name]);

View File

@ -3804,12 +3804,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1' 'step 1'
if(target.countCards('h','shan')){ if(target.countCards('h','shan')){
player.viewHandcards(target); player.viewHandcards(target);
player.useCard({name:'sha',isCard:true},target,false); if(player.canUse({name:'sha',isCard:true},target,false)) player.useCard({name:'sha',isCard:true},target,false);
player.storage.weikui2=target; player.storage.weikui2=target;
player.addTempSkill('weikui2'); player.addTempSkill('weikui2');
} }
else{ else{
player.discardPlayerCard(target,'visible',true,'h'); player.discardPlayerCard(target,'visible',true,'h').set('ai',function(button){
return get.value(button.link,_status.event.target);
});
} }
}, },
ai:{ ai:{
@ -8691,7 +8693,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
if(!player.countCards(player.hasSkill('fenxin_nei')?'he':'h',function(card){ if(!player.countCards(player.hasSkill('fenxin_nei')?'he':'h',function(card){
if(_status.connectMode&&get.position(card)=='h') return true; if(player.hasSkill('fenxin_nei')||(_status.connectMode&&get.position(card)=='h')) return true;
return get.color(card)=='black'; return get.color(card)=='black';
})) return false; })) return false;
return (event.player.hp>=player.hp||player.hasSkill('fenxin_fan'))&&player!=event.player; return (event.player.hp>=player.hp||player.hasSkill('fenxin_fan'))&&player!=event.player;
@ -8728,7 +8730,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'damageBegin2'}, trigger:{player:'damageBegin2'},
filter:function(event,player){ filter:function(event,player){
if(!player.countCards(player.hasSkill('fenxin_nei')?'he':'h',function(card){ if(!player.countCards(player.hasSkill('fenxin_nei')?'he':'h',function(card){
if(_status.connectMode&&get.position(card)=='h') return true; if(player.hasSkill('fenxin_nei')||(_status.connectMode&&get.position(card)=='h')) return true;
return get.color(card)=='red'; return get.color(card)=='red';
})) return false; })) return false;
return event.source&&(event.source.hp>=player.hp||player.hasSkill('fenxin_zhong'))&&player!=event.source; return event.source&&(event.source.hp>=player.hp||player.hasSkill('fenxin_zhong'))&&player!=event.source;

View File

@ -5,10 +5,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true, connect:true,
character:{ character:{
jin_zhangchunhua:['female','jin',3,['huishi','qingleng','xuanmu'],['hiddenSkill']], jin_zhangchunhua:['female','jin',3,['huishi','qingleng','xuanmu'],['hiddenSkill']],
jin_simayi:['male','jin',3,['buchen','smyyingshi','xiongzhi','quanbian'],['hiddenSkill']],
dongxie:['female','qun','3/4',['juntun','jiaojie']], dongxie:['female','qun','3/4',['juntun','jiaojie']],
//jin_simayi:['female','wei',3,['reyingzi','gzyinghun'],['hiddenSkill']],
re_xinxianying:['female','wei',3,['rezhongjian','recaishi']], re_xinxianying:['female','wei',3,['rezhongjian','recaishi']],
luyusheng:['female','wu',3,['sicong','xianzhao'],['unseen']], wangrong:['female','qun',3,['sicong','xianzhao'],['unseen']],
ol_dingyuan:['male','qun',4,['weihuan','shouchong'],['unseen']], ol_dingyuan:['male','qun',4,['weihuan','shouchong'],['unseen']],
liubian:['male','qun',3,['shiyuan','dushi']], liubian:['male','qun',3,['shiyuan','dushi']],
xin_baosanniang:['female','shu',3,['decadewuniang','decadexushen']], xin_baosanniang:['female','shu',3,['decadewuniang','decadexushen']],
@ -74,7 +74,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
characterSort:{ characterSort:{
sp2:{ sp2:{
sp_yingbian:['jin_zhangchunhua'], sp_yingbian:['jin_zhangchunhua','jin_simayi'],
sp_whlw:["xurong","lijue","zhangji","fanchou","guosi"], sp_whlw:["xurong","lijue","zhangji","fanchou","guosi"],
sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"], sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"],
sp_longzhou:["xf_tangzi","xf_huangquan","xf_sufei","sp_liuqi"], sp_longzhou:["xf_tangzi","xf_huangquan","xf_sufei","sp_liuqi"],
@ -92,6 +92,160 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
skill:{ skill:{
buchen:{
audio:2,
trigger:{player:'showCharacterAfter'},
filter:function(event,player){
var target=_status.currentPhase;
return target&&target!=player&&target.countGainableCards(player,'he')>0;
},
direct:true,
content:function(){
var target=_status.currentPhase;
player.gainPlayerCard(target,'he',get.prompt('buchen',target)).set('logSkill',['buchen',target]);
},
},
smyyingshi:{
enable:'phaseUse',
locked:true,
onChooseToUse:function(event){
if(game.online) return;
var cards=[];
for(var i=0;i<event.player.maxHp;i++){
var card=ui.cardPile.childNodes[i];
if(card) cards.push(card);
else break;
}
event.set('smyyingshi',cards);
},
chooseButton:{
dialog:function(event){
var dialog=ui.create.dialog('鹰视','hidden');
if(event.smyyingshi&&event.smyyingshi.length) dialog.add(event.smyyingshi);
else dialog.addText('牌堆无牌');
for(var i of dialog.buttons){
i.classList.add('noclick');
}
dialog.buttons.length=0;
return dialog;
},
filter:function(){
return false;
},
},
},
xiongzhi:{
enable:'phaseUse',
limited:true,
skillAnimation:true,
animationColor:'thunder',
content:function(){
'step 0'
player.awakenSkill('xiongzhi');
'step 1'
var card=get.cards()[0];
event.card=card;
player.showCards(card);
'step 2'
player.chooseUseTarget(card,true);
'step 3'
if(result.bool) event.goto(1);
else{
card.fix();
ui.cardPile.insertBefore(card,ui.cardPile.firstChild);
game.updateRoundNumber();
}
},
ai:{
order:1,
result:{
player:function(player){
if(!player.hasSkill('smyyingshi')) return 1;
var cards=[];
for(var i=0;i<Math.min(2,player.maxHp);i++){
var card=ui.cardPile.childNodes[i];
if(card){
if(!player.hasValueTarget(card)) return 0;
}
else break;
}
return 1;
},
},
},
},
quanbian:{
trigger:{player:['useCard','respond']},
hasHand:function(event){
var evts=event.player.getHistory('lose',function(evt){
return evt.getParent()==event;
});
return evts&&evts.length==1&&evts[0].hs.length>0;
},
filter:function(event,player){
var phase=event.getParent('phaseUse');
if(!phase||phase.player!=player) return false;
var suit=get.suit(event.card);
if(!lib.suit.contains(suit)||!lib.skill.quanbian.hasHand(event)) return false;
return player.getHistory('useCard',function(evt){
return evt!=event&&get.suit(evt.card)==suit&&lib.skill.quanbian.hasHand(evt)&&evt.getParent('phaseUse')==phase;
}).length+player.getHistory('respond',function(evt){
return evt!=event&&get.suit(evt.card)==suit&&lib.skill.quanbian.hasHand(evt)&&evt.getParent('phaseUse')==phase;
}).length==0;
},
direct:true,
content:function(){
'step 0'
player.chooseControl('cancel2').set('prompt',get.prompt('quanbian')).set('choiceList',[
'摸一张牌',
'观看牌堆顶的'+get.cnNumber(player.maxHp)+'张牌并将其中一张置于牌堆底',
]).set('ai',function(){
var player=_status.event.player;
var suit=get.suit(_status.event.getTrigger().card);
if(player.countCards('h',function(card){
return get.suit(card)==suit&&player.hasValueTarget(card,null,true);
})) return 'cancel2';
return 0;
});
'step 1'
if(result.control=='cancel2'){
event.finish();
return;
}
player.addTempSkill('quanbian2');
player.storage.quanbian2.add(get.suit(trigger.card));
player.markSkill('quanbian2');
if(result.index==0){
player.draw();
event.finish();
return;
}
event.cards=get.cards(player.maxHp);
player.chooseButton(['将一张牌置于牌堆底',event.cards],true);
'step 2'
while(cards.length){
var card=cards.pop();
card.fix();
if(card==result.links[0]) ui.cardPile.appendChild(card);
else ui.cardPile.insertBefore(card,ui.cardPile.firstChild);
}
game.updateRoundNumber();
},
},
quanbian2:{
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=[];
},
onremove:true,
mod:{
cardEnabled2:function(card,player){
if(get.position(card)=='h'&&player.storage.quanbian2.contains(get.suit(card))) return false;
},
},
intro:{
content:'本回合内不能使用$花色的手牌',
},
},
juntun:{ juntun:{
trigger:{player:'phaseZhunbeiBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
@ -5981,20 +6135,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
"xinfu_tanbei":{ "xinfu_tanbei":{
locked:false,
mod:{
targetInRange:function(card,player,target){
if(target.hasSkill('tanbei_effect1')){
return true;
}
},
cardUsableTarget:function(card,player,target){
if(target.hasSkill('tanbei_effect1')) return true;
},
playerEnabled:function(card,player,target){
if(target.hasSkill('tanbei_effect2')) return false;
},
},
audio:2, audio:2,
enable:"phaseUse", enable:"phaseUse",
usable:1, usable:1,
@ -6016,13 +6156,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}); });
} }
"step 1" "step 1"
player.addTempSkill('tanbei_effect3');
if(result.index==0){ if(result.index==0){
var card=target.getCards('hej').randomGet(); var card=target.getCards('hej').randomGet();
player.gain(card,target,'giveAuto','bySelf'); player.gain(card,target,'giveAuto','bySelf');
target.addTempSkill('tanbei_effect2','phaseAfter'); target.addTempSkill('tanbei_effect2');
} }
else{ else{
target.addTempSkill('tanbei_effect1','phaseAfter'); target.addTempSkill('tanbei_effect1');
} }
}, },
ai:{ ai:{
@ -6037,6 +6178,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
threaten:1.1, threaten:1.1,
}, },
}, },
tanbei_effect3:{
charlotte:true,
mod:{
targetInRange:function(card,player,target){
if(target.hasSkill('tanbei_effect1')){
return true;
}
},
cardUsableTarget:function(card,player,target){
if(target.hasSkill('tanbei_effect1')) return true;
},
playerEnabled:function(card,player,target){
if(target.hasSkill('tanbei_effect2')) return false;
},
},
},
"xinfu_sidao":{ "xinfu_sidao":{
audio:2, audio:2,
trigger:{ trigger:{
@ -6090,8 +6247,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
xinfu_sidaoy:{}, xinfu_sidaoy:{},
"tanbei_effect1":{ "tanbei_effect1":{
charlotte:true,
}, },
"tanbei_effect2":{ "tanbei_effect2":{
charlotte:true,
}, },
"xinfu_tunan":{ "xinfu_tunan":{
audio:2, audio:2,
@ -6852,6 +7011,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liuhong:'汉灵帝刘宏157年一作156年189年5月13日生于冀州河间国今河北深州。东汉第十二位皇帝168年189年在位汉章帝刘炟的玄孙。刘宏早年世袭解渎亭侯。永康元年167年十二月汉桓帝刘志逝世刘宏被外戚窦氏挑选为皇位继承人于建宁元年168年正月即位。刘宏在位的大部分时期施行党锢及宦官政治。他又设置西园巧立名目搜刮钱财甚至卖官鬻爵以用于自己享乐。在位晚期爆发了黄巾起义而凉州等地也陷入持续动乱之中。中平六年189年刘宏去世谥号孝灵皇帝葬于文陵。刘宏喜好辞赋作有《皇羲篇》、《追德赋》、《令仪颂》、《招商歌》等。', liuhong:'汉灵帝刘宏157年一作156年189年5月13日生于冀州河间国今河北深州。东汉第十二位皇帝168年189年在位汉章帝刘炟的玄孙。刘宏早年世袭解渎亭侯。永康元年167年十二月汉桓帝刘志逝世刘宏被外戚窦氏挑选为皇位继承人于建宁元年168年正月即位。刘宏在位的大部分时期施行党锢及宦官政治。他又设置西园巧立名目搜刮钱财甚至卖官鬻爵以用于自己享乐。在位晚期爆发了黄巾起义而凉州等地也陷入持续动乱之中。中平六年189年刘宏去世谥号孝灵皇帝葬于文陵。刘宏喜好辞赋作有《皇羲篇》、《追德赋》、《令仪颂》、《招商歌》等。',
liubian:'刘辩176年190年3月6日是汉灵帝刘宏与何皇后的嫡长子。刘辩在灵帝驾崩后继位为帝史称少帝由于年幼实权掌握在临朝称制的母亲何太后和母舅大将军何进手中。少帝在位时期东汉政权已经名存实亡他即位后不久即遭遇以何进为首的外戚集团和以十常侍为首的内廷宦官集团这两大敌对政治集团的火并被迫出宫回宫后又受制于以“勤王”为名进京的凉州军阀董卓终于被废为弘农王成为东汉唯一被废黜的皇帝其同父异母弟陈留王刘协继位为帝是为汉献帝。被废黜一年之后刘辩在董卓胁迫下自尽时年仅十五岁一说十八岁其弟献帝追谥他为怀王。中国古代的史书中称刘辩为皇子辩、少帝和弘农王等。因为在位不逾年传统上称东汉共十二帝刘辩与东汉另一位少帝刘懿都不在其中亦皆无本纪不过现代史学界也有观点承认两位少帝均是汉朝皇帝则刘辩为东汉第十三位皇帝。', liubian:'刘辩176年190年3月6日是汉灵帝刘宏与何皇后的嫡长子。刘辩在灵帝驾崩后继位为帝史称少帝由于年幼实权掌握在临朝称制的母亲何太后和母舅大将军何进手中。少帝在位时期东汉政权已经名存实亡他即位后不久即遭遇以何进为首的外戚集团和以十常侍为首的内廷宦官集团这两大敌对政治集团的火并被迫出宫回宫后又受制于以“勤王”为名进京的凉州军阀董卓终于被废为弘农王成为东汉唯一被废黜的皇帝其同父异母弟陈留王刘协继位为帝是为汉献帝。被废黜一年之后刘辩在董卓胁迫下自尽时年仅十五岁一说十八岁其弟献帝追谥他为怀王。中国古代的史书中称刘辩为皇子辩、少帝和弘农王等。因为在位不逾年传统上称东汉共十二帝刘辩与东汉另一位少帝刘懿都不在其中亦皆无本纪不过现代史学界也有观点承认两位少帝均是汉朝皇帝则刘辩为东汉第十三位皇帝。',
luyusheng:'陆郁生(?年-三国时期吴国官员陆绩之女。陆郁生的父亲陆绩是吴郡公认的才子又是当时吴郡陆氏的领袖。陆绩赴任担任郁林太守遂取此名。陆郁生年少的时候就定下坚贞的志向。建安二十四年219年)陆绩早亡她与两个兄弟陆宏、陆睿当时都只有几岁一起返回吴县被他们的从兄陆瑁接回抚养。13周岁的陆郁生嫁给同郡出身的张白为妻。出嫁3个月后张白因为其兄张温一族的案件遭到连坐被处以流刑后死于流放地陆郁生成为了寡妇其后公开宣言不再改嫁困难于生计但拒绝了所有提亲在艰苦中从未停止服侍、照顾张白的姐妹。事情传到朝廷皇帝褒奖陆郁生号其为“义姑”。她的表侄姚信在文集中称赞她的义举。', luyusheng:'陆郁生(?年-三国时期吴国官员陆绩之女。陆郁生的父亲陆绩是吴郡公认的才子又是当时吴郡陆氏的领袖。陆绩赴任担任郁林太守遂取此名。陆郁生年少的时候就定下坚贞的志向。建安二十四年219年)陆绩早亡她与两个兄弟陆宏、陆睿当时都只有几岁一起返回吴县被他们的从兄陆瑁接回抚养。13周岁的陆郁生嫁给同郡出身的张白为妻。出嫁3个月后张白因为其兄张温一族的案件遭到连坐被处以流刑后死于流放地陆郁生成为了寡妇其后公开宣言不再改嫁困难于生计但拒绝了所有提亲在艰苦中从未停止服侍、照顾张白的姐妹。事情传到朝廷皇帝褒奖陆郁生号其为“义姑”。她的表侄姚信在文集中称赞她的义举。',
wangrong:'汉灵怀皇后王荣(?~181年赵国邯郸今河北邯郸市人。五官中郎将王苞孙女汉灵帝刘宏妃子汉献帝刘协生母。初以良家子选入掖庭封为美人服侍汉灵帝。光和四年181年生下陈留王刘协惨遭灵思皇后毒杀。王荣死后汉灵帝曾作《追德赋》、《令仪颂》。永汉元年189年其子刘协即位是为汉献帝追谥灵怀皇后葬于文昭陵。',
}, },
characterTitle:{ characterTitle:{
wulan:'#b对决限定武将', wulan:'#b对决限定武将',
@ -7223,6 +7383,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shouchong:'首冲', shouchong:'首冲',
shouchong_info:'锁定技有角色造成伤害后若此伤害是本轮第一次造成伤害且伤害来源是其他角色则你摸一张牌若伤害来源是你则你对受伤角再造成1点伤害。', shouchong_info:'锁定技有角色造成伤害后若此伤害是本轮第一次造成伤害且伤害来源是其他角色则你摸一张牌若伤害来源是你则你对受伤角再造成1点伤害。',
luyusheng:'陆郁生', luyusheng:'陆郁生',
wangrong:'王荣',
sicong:'思聪', sicong:'思聪',
sicong2:'思聪', sicong2:'思聪',
sicong_info:'出牌阶段限一次你可以弃置任意张点数之和为13的牌然后摸两倍数量的牌。以此法获得的牌中黑色牌本回合无距离和次数限制红色牌本回合不计入手牌上限。', sicong_info:'出牌阶段限一次你可以弃置任意张点数之和为13的牌然后摸两倍数量的牌。以此法获得的牌中黑色牌本回合无距离和次数限制红色牌本回合不计入手牌上限。',
@ -7289,6 +7450,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
juntun_info:'锁定技准备阶段若X大于1则你减1点体力上限并摸X张牌X为你的体力上限。', juntun_info:'锁定技准备阶段若X大于1则你减1点体力上限并摸X张牌X为你的体力上限。',
jiaojie:'狡黠', jiaojie:'狡黠',
jiaojie_info:'锁定技,你的红色牌不计入手牌上限。你使用黑色牌无距离和次数限制。', jiaojie_info:'锁定技,你的红色牌不计入手牌上限。你使用黑色牌无距离和次数限制。',
buchen:'不臣',
buchen_info:'隐匿技,你于其他角色的回合登场时,可获得当前回合角色的一张牌。',
smyyingshi:'鹰视',
smyyingshi_info:'锁定技出牌阶段你可观看牌堆顶的X张牌X为你的体力上限。',
xiongzhi:'雄志',
xiongzhi_info:'限定技,出牌阶段,你可展示牌堆顶的一张牌并使用之。若如此做,你重复此流程,直到你以此法展示的牌无法使用。',
quanbian:'权变',
quanbian2:'权变',
quanbian_info:'当你于出牌阶段内使用/打出手牌时,若此牌有花色且你本回合内未使用/打出过该花色的其他手牌则你可以选择一项①摸一张牌。②将牌堆顶X张牌中的一张置于牌堆底X为你的体力上限。若你发动此技能则你本回合内不能再使用与此牌花色相同的手牌。',
sp_yingbian:'应变篇', sp_yingbian:'应变篇',
sp_whlw:"文和乱武", sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原", sp_zlzy:"逐鹿中原",

View File

@ -1110,6 +1110,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
list.push(['基本','','sha']); list.push(['基本','','sha']);
list.push(['基本','','sha','fire']); list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']); list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
} }
else if(get.type(name)=='trick') list.push(['锦囊','',name]); else if(get.type(name)=='trick') list.push(['锦囊','',name]);
else if(get.type(name)=='basic') list.push(['基本','',name]); else if(get.type(name)=='basic') list.push(['基本','',name]);
@ -3770,6 +3771,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
list.push(['基本','','sha']); list.push(['基本','','sha']);
list.push(['基本','','sha','fire']); list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']); list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
} }
else if(get.type(name)=='trick') list.push(['锦囊','',name]); else if(get.type(name)=='trick') list.push(['锦囊','',name]);
else if(get.type(name)=='basic') list.push(['基本','',name]); else if(get.type(name)=='basic') list.push(['基本','',name]);
@ -4323,7 +4325,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.finish(); event.finish();
return; return;
} }
var list=['sha','sha','sha','shan','tao','jiu']; var list=['sha','sha','sha','sha','shan','tao','jiu'];
if(player.storage.jiaozhao1){ if(player.storage.jiaozhao1){
list=list.concat(['taoyuan','wugu','juedou','huogong','jiedao','tiesuo','guohe','shunshou','wuzhong','wanjian','nanman']); list=list.concat(['taoyuan','wugu','juedou','huogong','jiedao','tiesuo','guohe','shunshou','wuzhong','wanjian','nanman']);
} }
@ -4335,6 +4337,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else if(i==2){ else if(i==2){
list[i]=['基本','',list[i],'thunder']; list[i]=['基本','',list[i],'thunder'];
} }
else if(i==3){
list[i]=['基本','',list[i],'ice'];
}
else{ else{
list[i]=['基本','',list[i]]; list[i]=['基本','',list[i]];
} }
@ -7152,6 +7157,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
list.push(['基本','','sha']); list.push(['基本','','sha']);
list.push(['基本','','sha','fire']); list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']); list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
} }
if(!player.storage.huomo.tao&&event.filterCard({name:'tao'},player,event)){ if(!player.storage.huomo.tao&&event.filterCard({name:'tao'},player,event)){
list.push(['基本','','tao']); list.push(['基本','','tao']);

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[ window.noname_asset_list=[
'v1.9.106.4.2', 'v1.9.107',
'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3', 'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3', 'audio/background/aozhan_rewrite.mp3',
@ -3253,6 +3253,17 @@ window.noname_asset_list=[
'image/card/qiaosi_card4.png', 'image/card/qiaosi_card4.png',
'image/card/qiaosi_card5.png', 'image/card/qiaosi_card5.png',
'image/card/qiaosi_card6.png', 'image/card/qiaosi_card6.png',
'image/card/chuqibuyi.png',
'image/card/dongzhuxianji.png',
'image/card/heiguangkai.png',
'image/card/suijiyingbian.png',
'image/card/taigongyinfu.png',
'image/card/tianjitu.png',
'image/card/tongque.png',
'image/card/wutiesuolian.png',
'image/card/wuxinghelingshan.png',
'image/card/zhujinqiyuan.png',
'image/character/shenpei.jpg', 'image/character/shenpei.jpg',
'image/character/re_menghuo.jpg', 'image/character/re_menghuo.jpg',
'image/character/re_zhurong.jpg', 'image/character/re_zhurong.jpg',
@ -3516,6 +3527,7 @@ window.noname_asset_list=[
'image/character/re_xinxianying.jpg', 'image/character/re_xinxianying.jpg',
'image/character/jin_zhangchunhua.jpg', 'image/character/jin_zhangchunhua.jpg',
'image/character/dongxie.jpg', 'image/character/dongxie.jpg',
'image/character/jin_simayi.jpg',
'image/character/baiwuchang.jpg', 'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg', 'image/character/baosanniang.jpg',

View File

@ -15,7 +15,7 @@ window.config={
forbidthreecard:['qiankunbiao','shenhuofeiya','gw_ciguhanshuang','gw_birinongwu','gw_qinpendayu','gw_poxiao'], forbidthreecard:['qiankunbiao','shenhuofeiya','gw_ciguhanshuang','gw_birinongwu','gw_qinpendayu','gw_poxiao'],
all:{ all:{
sgscharacters:['standard','shenhua','xinghuoliaoyuan','refresh','yijiang','sp','sp2','extra','old','mobile','tw'], sgscharacters:['standard','shenhua','xinghuoliaoyuan','refresh','yijiang','sp','sp2','extra','old','mobile','tw'],
sgscards:['standard','extra','sp','guozhan','zhulu'], sgscards:['standard','extra','sp','guozhan','zhulu','yingbian'],
sgsmodes:['identity','guozhan','versus','doudizhu','single','brawl','connect'], sgsmodes:['identity','guozhan','versus','doudizhu','single','brawl','connect'],
stockmode:['identity','guozhan','versus','boss','doudizhu','single','chess','stone','connect','brawl','tafang'], stockmode:['identity','guozhan','versus','boss','doudizhu','single','chess','stone','connect','brawl','tafang'],
stockextension:['boss','cardpile','coin','wuxing'], stockextension:['boss','cardpile','coin','wuxing'],
@ -129,7 +129,7 @@ window.config={
cards:['standard','ex','extra','sp','classic','basic'], cards:['standard','ex','extra','sp','classic','basic'],
characters:['standard','shenhua','sp','sp2','yijiang','refresh','xinghuoliaoyuan','mobile','extra'], characters:['standard','shenhua','sp','sp2','yijiang','refresh','xinghuoliaoyuan','mobile','extra'],
connect_characters:['diy'], connect_characters:['diy'],
connect_cards:['huanlekapai','guozhan','sp','zhulu'], connect_cards:['huanlekapai','guozhan','sp','zhulu','yingbian'],
plays:[], plays:[],
extensions:[], extensions:[],
banned:[], banned:[],

View File

@ -8253,7 +8253,7 @@
lib.skilllist.add(character[i][j][k][3][l]); lib.skilllist.add(character[i][j][k][3][l]);
} }
} }
if(j=='skill'&&k[0]=='_'&&(!lib.config.characters.contains(i)||(lib.config.mode=='connect'&&!character[i].connect))){ if(j=='skill'&&k[0]=='_'&&(lib.config.mode!='connect'?(!lib.config.characters.contains(i)):(!character[i].connect))){
continue; continue;
} }
if(j=='translate'&&k==i){ if(j=='translate'&&k==i){
@ -8261,7 +8261,7 @@
} }
else{ else{
if(lib[j][k]==undefined){ if(lib[j][k]==undefined){
if(j=='skill'&&lib.config.mode=='connect'&&!character[i].connect){ if(j=='skill'&&!character[i][j][k].forceLoad&&lib.config.mode=='connect'&&!character[i].connect){
lib[j][k]={ lib[j][k]={
nopop:character[i][j][k].nopop, nopop:character[i][j][k].nopop,
derivation:character[i][j][k].derivation derivation:character[i][j][k].derivation
@ -8362,7 +8362,7 @@
} }
else{ else{
for(k in card[i][j]){ for(k in card[i][j]){
if(j=='skill'&&k[0]=='_'&&(!lib.config.cards.contains(i)||(lib.config.mode=='connect'&&!card[i].connect))){ if(j=='skill'&&k[0]=='_'&&!card[i][j][k].forceLoad&&(lib.config.mode!='connect'?(!lib.config.cards.contains(i)):(!card[i].connect))){
continue; continue;
} }
if(j=='translate'&&k==i){ if(j=='translate'&&k==i){
@ -8370,7 +8370,7 @@
} }
else{ else{
if(lib[j][k]==undefined){ if(lib[j][k]==undefined){
if(j=='skill'&&lib.config.mode=='connect'&&!card[i].connect){ if(j=='skill'&&!card[i][j][k].forceLoad&&lib.config.mode=='connect'&&!card[i].connect){
lib[j][k]={ lib[j][k]={
nopop:card[i][j][k].nopop, nopop:card[i][j][k].nopop,
derivation:card[i][j][k].derivation derivation:card[i][j][k].derivation
@ -15243,7 +15243,7 @@
if(unseen){ if(unseen){
player.classList.add('unseen'); player.classList.add('unseen');
} }
if(source&&source!=player){ if(source){
game.log(player,'被',source,'杀害'); game.log(player,'被',source,'杀害');
if(source.stat[source.stat.length-1].kill==undefined){ if(source.stat[source.stat.length-1].kill==undefined){
source.stat[source.stat.length-1].kill=1; source.stat[source.stat.length-1].kill=1;
@ -16360,11 +16360,14 @@
if(!this.hiddenSkills) this.hiddenSkills=[]; if(!this.hiddenSkills) this.hiddenSkills=[];
this.hiddenSkills.addArray(skills); this.hiddenSkills.addArray(skills);
skills=[]; skills=[];
this.classList.add('unseen'); this.classList.add(_status.video?'unseen_v':'unseen');
this.name='unknown'; this.name='unknown';
this.node.name_seat=ui.create.div('.name.name_seat',get.verticalStr(get.translation(this.name)),this); if(!this.node.name_seat&&!_status.video){
this.node.name_seat=ui.create.div('.name.name_seat',get.verticalStr(get.translation(this.name)),this);
this.node.name_seat.dataset.nature=get.groupnature(this.group);
}
this.sex='male'; this.sex='male';
this.group='unknown'; //this.group='unknown';
this.storage.nohp=true; this.storage.nohp=true;
} }
if(character2&&lib.character[character2]){ if(character2&&lib.character[character2]){
@ -16420,7 +16423,7 @@
if(info2[4].contains('hiddenSkill')){ if(info2[4].contains('hiddenSkill')){
if(!this.hiddenSkills) this.hiddenSkills=[]; if(!this.hiddenSkills) this.hiddenSkills=[];
this.hiddenSkills.addArray(info2[3]); this.hiddenSkills.addArray(info2[3]);
this.classList.add('unseen2'); this.classList.add(_status.video?'unseen2_v':'unseen2');
this.storage.nohp=true; this.storage.nohp=true;
} }
else skills=skills.concat(info2[3]); else skills=skills.concat(info2[3]);
@ -24951,19 +24954,22 @@
}, },
cardDiscardable:function(card,player,event){ cardDiscardable:function(card,player,event){
event=event||_status.event; event=event||_status.event;
var mod=game.checkMod(card,player,event.getParent().name,'unchanged','cardDiscardable',player); if(typeof event!='string') event=event.getParent().name;
var mod=game.checkMod(card,player,event,'unchanged','cardDiscardable',player);
if(mod!='unchanged') return mod; if(mod!='unchanged') return mod;
return true; return true;
}, },
canBeDiscarded:function(card,player,target,event){ canBeDiscarded:function(card,player,target,event){
event=event||_status.event; event=event||_status.event;
var mod=game.checkMod(card,player,target,event.getParent().name,'unchanged','canBeDiscarded',target); if(typeof event!='string') event=event.getParent().name;
var mod=game.checkMod(card,player,target,event,'unchanged','canBeDiscarded',target);
if(mod!='unchanged') return mod; if(mod!='unchanged') return mod;
return true; return true;
}, },
canBeGained:function(card,player,target,event){ canBeGained:function(card,player,target,event){
event=event||_status.event; event=event||_status.event;
var mod=game.checkMod(card,player,target,event.getParent().name,'unchanged','canBeGained',target); if(typeof event!='string') event=event.getParent().name;
var mod=game.checkMod(card,player,target,event,'unchanged','canBeGained',target);
if(mod!='unchanged') return mod; if(mod!='unchanged') return mod;
return true; return true;
}, },
@ -25268,6 +25274,12 @@
return player.isUnseen(2)&&get.mode()!='guozhan'; return player.isUnseen(2)&&get.mode()!='guozhan';
}, },
content:function(){ content:function(){
if(trigger.name=='loseMaxHp') trigger.cancel();
else if(trigger.name=='changeHp'){
player.hp-=trigger.num;
trigger.cancel();
if(trigger.getParent().name=='damage'||trigger.getParent().name=='loseHp') trigger.getParent().cancel();
}
player.showCharacter(2); player.showCharacter(2);
}, },
}, },
@ -26059,7 +26071,7 @@
game.broadcast(function(player){ game.broadcast(function(player){
player.setNickname(); player.setNickname();
},player); },player);
this.send('reinit',lib.configOL,get.arenaState(),game.getState?game.getState():{},game.ip,null,_status.onreconnect); this.send('reinit',lib.configOL,get.arenaState(),game.getState?game.getState():{},game.ip,null,_status.onreconnect,_status.cardtag);
} }
else if(version!=lib.versionOL){ else if(version!=lib.versionOL){
this.send('denied','version'); this.send('denied','version');
@ -26069,7 +26081,7 @@
else if(!_status.waitingForPlayer){ else if(!_status.waitingForPlayer){
if(game.phaseNumber&&lib.configOL.observe){ if(game.phaseNumber&&lib.configOL.observe){
lib.node.observing.push(this); lib.node.observing.push(this);
this.send('reinit',lib.configOL,get.arenaState(),game.getState?game.getState():{},game.ip,game.players[0].playerid); this.send('reinit',lib.configOL,get.arenaState(),game.getState?game.getState():{},game.ip,game.players[0].playerid,null,_status.cardtag);
if(!ui.removeObserve){ if(!ui.removeObserve){
ui.removeObserve=ui.create.system('移除旁观',function(){ ui.removeObserve=ui.create.system('移除旁观',function(){
lib.configOL.observe=false; lib.configOL.observe=false;
@ -26652,7 +26664,7 @@
} }
} }
}, },
reinit:function(config,state,state2,ip,observe,onreconnect){ reinit:function(config,state,state2,ip,observe,onreconnect,cardtag){
ui.auto.show(); ui.auto.show();
ui.pause.show(); ui.pause.show();
game.clearConnect(); game.clearConnect();
@ -26732,6 +26744,7 @@
if(mode.onreinit){ if(mode.onreinit){
mode.onreinit(); mode.onreinit();
} }
_status.cardtag=get.parsedResult(cardtag);
state=get.parsedResult(state); state=get.parsedResult(state);
game.players=[]; game.players=[];
game.dead=[]; game.dead=[];
@ -27033,7 +27046,7 @@
} }
}, },
suit:['club','spade','diamond','heart'], suit:['club','spade','diamond','heart'],
group:['wei','shu','wu','qun','shen'], group:['wei','shu','wu','qun','jin','shen'],
nature:['fire','thunder','poison','kami','ice'], nature:['fire','thunder','poison','kami','ice'],
linked:['fire','thunder','kami','ice'], linked:['fire','thunder','kami','ice'],
groupnature:{ groupnature:{
@ -28883,6 +28896,11 @@
player.classList.remove('unseen2_v'); player.classList.remove('unseen2_v');
break; break;
} }
if(!player.classList.contains('unseen_v')&&(!player.name2||!player.classList.contains('unseen2_v'))&&player.storage.nohp){
delete player.storage.nohp;
player.node.hp.show();
player.update();
}
} }
else{ else{
console.log(num); console.log(num);
@ -43951,11 +43969,12 @@
} }
} }
lib.inpile.sort(lib.sort.card); lib.inpile.sort(lib.sort.card);
game.broadcastAll(function(num,pile,top){ game.broadcastAll(function(num,pile,top,cardtag){
if(ui.cardPileNumber) ui.cardPileNumber.innerHTML='0轮 剩余牌: '+num; if(ui.cardPileNumber) ui.cardPileNumber.innerHTML='0轮 剩余牌: '+num;
lib.inpile=pile; lib.inpile=pile;
_status.pileTop=top; _status.pileTop=top;
},ui.cardPile.childNodes.length,lib.inpile,ui.cardPile.firstChild); _status.cardtag=cardtag;
},ui.cardPile.childNodes.length,lib.inpile,ui.cardPile.firstChild,_status.cardtag);
}, },
}, },
click:{ click:{
@ -48136,6 +48155,9 @@
return 0; return 0;
}, },
is:{ is:{
yingbian:function(node){
return get.cardtag(node,'yingbian_zhuzhan')||get.cardtag(node,'yingbian_fujia')||get.cardtag(node,'yingbian_canqu')||get.cardtag(node,'yingbian_kongchao');
},
emoji:function(substring){ emoji:function(substring){
if(substring){ if(substring){
var reg=new RegExp("[~#^$@%&!?%*]",'g'); var reg=new RegExp("[~#^$@%&!?%*]",'g');
@ -48984,6 +49006,7 @@
roomId:game.roomId, roomId:game.roomId,
over:_status.over, over:_status.over,
inpile:lib.inpile, inpile:lib.inpile,
cardtag:_status.cardtag,
}; };
for(var i in lib.playerOL){ for(var i in lib.playerOL){
state.players[i]=lib.playerOL[i].getState(); state.players[i]=lib.playerOL[i].getState();
@ -50601,7 +50624,7 @@
node=node.link; node=node.link;
} }
var capt=get.translation(node.name); var capt=get.translation(node.name);
if(lib.character[node.name]&&(lib.character[node.name][1]||lib.group.contains(node.group))){ if((lib.character[node.name]&&lib.character[node.name][1])||lib.group.contains(node.group)){
capt+='&nbsp;&nbsp;'+(lib.group.contains(node.group)?get.translation(node.group):lib.translate[lib.character[node.name][1]]); capt+='&nbsp;&nbsp;'+(lib.group.contains(node.group)?get.translation(node.group):lib.translate[lib.character[node.name][1]]);
} }
uiintro.add(capt); uiintro.add(capt);
@ -51102,6 +51125,7 @@
uiintro.add(ui.create.div('.placeholder.slim')); uiintro.add(ui.create.div('.placeholder.slim'));
} }
else if(node.classList.contains('card')){ else if(node.classList.contains('card')){
//卡牌长按介绍
if(ui.arena.classList.contains('observe')&&node.parentNode.classList.contains('handcards')){ if(ui.arena.classList.contains('observe')&&node.parentNode.classList.contains('handcards')){
return; return;
} }
@ -51258,6 +51282,10 @@
uiintro._place_text=placetext; uiintro._place_text=placetext;
} }
} }
if(lib.card[name].yingbian_prompt&&get.is.yingbian(node.link||node)){
if(typeof lib.card[name].yingbian_prompt=='function') uiintro.add('<div class="text" style="font-family: yuanli">应变:'+lib.card[name].yingbian_prompt(node.link||node)+'</div>');
else uiintro.add('<div class="text" style="font-family: yuanli">应变:'+lib.card[name].yingbian_prompt+'</div>');
}
if(lib.translate[name+'_append']){ if(lib.translate[name+'_append']){
uiintro.add('<div class="text" style="display:inline">'+lib.translate[name+'_append']+'</div>'); uiintro.add('<div class="text" style="display:inline">'+lib.translate[name+'_append']+'</div>');
} }
@ -52254,6 +52282,9 @@
else if(nature=='thunder'){ else if(nature=='thunder'){
name='thunderdamage'; name='thunderdamage';
} }
else if(nature=='ice'){
name='icedamage';
}
var eff=get.effect(target,{name:name},player,viewer); var eff=get.effect(target,{name:name},player,viewer);
if(eff>0&&target.hujia>0) return 0; if(eff>0&&target.hujia>0) return 0;
return eff; return eff;

View File

@ -27,6 +27,7 @@ window.noname_package={
sp:'SP', sp:'SP',
guozhan:'国战', guozhan:'国战',
zhulu:'逐鹿天下', zhulu:'逐鹿天下',
yingbian:'应变篇',
zhenfa:'阵法', zhenfa:'阵法',
yunchou:'运筹帷幄', yunchou:'运筹帷幄',
swd:'轩辕剑', swd:'轩辕剑',

View File

@ -9,6 +9,7 @@ window.noname_source_list=[
'card/sp.js', 'card/sp.js',
'card/standard.js', 'card/standard.js',
'card/swd.js', 'card/swd.js',
'card/yingbian.js',
'card/yunchou.js', 'card/yunchou.js',
'card/zhenfa.js', 'card/zhenfa.js',
'card/zhulu.js', 'card/zhulu.js',

View File

@ -1,21 +1,21 @@
window.noname_update={ window.noname_update={
version:'1.9.106.4.2', version:'1.9.107',
update:'1.9.106.4.1', update:'1.9.106.4.2',
changeLog:[ changeLog:[
'晋张春华', '应变篇卡牌包',
'董翓', '晋司马懿',
'bug修复', 'bug修复',
], ],
files:[ files:[
//'card/extra.js', 'card/extra.js',
'card/gujian.js',
'card/guozhan.js',
//'card/gwent.js',
//'card/huanlekapai.js', //'card/huanlekapai.js',
//'card/mtg.js',
//'card/sp.js', //'card/sp.js',
'card/standard.js', 'card/standard.js',
//'card/swd.js', //'card/swd.js',
//'card/mtg.js',
//'card/gujian.js',
'card/guozhan.js',
//'card/gwent.js',
//'card/yunchou.js', //'card/yunchou.js',
'card/yingbian.js', 'card/yingbian.js',
//'card/zhenfa.js', //'card/zhenfa.js',
@ -28,10 +28,10 @@ window.noname_update={
//'character/hearth.js', //'character/hearth.js',
'character/mobile.js', 'character/mobile.js',
//'character/mtg.js', //'character/mtg.js',
//'character/old.js', 'character/old.js',
//'character/rank.js', 'character/rank.js',
//'character/refresh.js', 'character/refresh.js',
//'character/shenhua.js', 'character/shenhua.js',
'character/sp.js', 'character/sp.js',
'character/sp2.js', 'character/sp2.js',
//'character/tw.js', //'character/tw.js',
@ -44,22 +44,22 @@ window.noname_update={
//'extension/boss/extension.js', //'extension/boss/extension.js',
'layout/default/layout.css', 'layout/default/layout.css',
//'layout/nova/layout.css', //'layout/nova/layout.css',
//'mode/identity.js', 'mode/identity.js',
//'mode/doudizhu.js', 'mode/doudizhu.js',
'mode/guozhan.js', 'mode/guozhan.js',
//'mode/chess.js', //'mode/chess.js',
//'mode/tafang.js', //'mode/tafang.js',
//'mode/single.js', 'mode/single.js',
//'mode/stone.js', 'mode/stone.js',
'mode/brawl.js', //'mode/brawl.js',
//'mode/versus.js', 'mode/versus.js',
//'mode/boss.js', 'mode/boss.js',
'game/game.js', 'game/game.js',
//'game/keyWords.js', //'game/keyWords.js',
//'game/server.js', //'game/server.js',
//'game/NoSleep.js', //'game/NoSleep.js',
//'game/config.js', 'game/config.js',
//'game/package.js', 'game/package.js',
//'game/asset.js', //'game/asset.js',
//'game/source.js', //'game/source.js',
//'theme/style/hp/xinglass.css', //'theme/style/hp/xinglass.css',

BIN
image/card/chuqibuyi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
image/card/heiguangkai.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
image/card/taigongyinfu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
image/card/tianjitu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
image/card/tongque.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
image/card/wutiesuolian.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
image/card/zhujinqiyuan.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 264 KiB

View File

@ -1303,6 +1303,8 @@ body>.background.land {
bottom: 5px; bottom: 5px;
right: 5px; right: 5px;
text-align: right; text-align: right;
text-shadow: rgba(213, 194, 179,1) 0 0 3px,rgba(213, 194, 179,1) 0 0 3px,rgba(213, 194, 179,1) 0 0 3px,
rgba(213, 194, 179,1) 0 0 3px,black 0 0 3px;
} }
.card>.name { .card>.name {
top: 9px; top: 9px;
@ -3477,7 +3479,7 @@ div:not(.handcards)>.card>.info>span,
color: rgba(90,118,99,0.3); color: rgba(90,118,99,0.3);
} }
.ice { .ice {
color: rgba(80,160,255,0.3); color: rgba(0,153,255,0.3);
} }
.poison { .poison {
color: rgba(30, 133, 51,0.4); color: rgba(30, 133, 51,0.4);
@ -4125,8 +4127,8 @@ div[data-decoration="bronze"]::after{
border: 1px solid #1F3C38; border: 1px solid #1F3C38;
} }
.card.fullskin.ice>.name { .card.fullskin.ice>.name {
color: #152E63; color: #3B6273;
border: 1px solid #152E63; border: 1px solid #3B6273;
} }
.card.fullskin.fire>.name { .card.fullskin.fire>.name {
color: #631515; color: #631515;
@ -4300,8 +4302,10 @@ div[data-decoration="bronze"]::after{
.greentext { .greentext {
color: rgb(104,221,127); color: rgb(104,221,127);
} }
.icetext {
color: rgb(59, 98, 115);
}
.thundertext, .thundertext,
.icetext,
.controlthundertext { .controlthundertext {
color: rgb(117,186,255); color: rgb(117,186,255);
} }

View File

@ -424,7 +424,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var info=[]; var info=[];
for(var i=0;i<players.length;i++){ for(var i=0;i<players.length;i++){
info.push({ info.push({
name:players[i].name, name:players[i].name1,
identity:players[i].identity, identity:players[i].identity,
position:players[i].dataset.position position:players[i].dataset.position
}); });

View File

@ -71,7 +71,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var info=[]; var info=[];
for(var i=0;i<players.length;i++){ for(var i=0;i<players.length;i++){
info.push({ info.push({
name:players[i].name, name:players[i].name1,
name2:players[i].name2, name2:players[i].name2,
identity:players[i].identity identity:players[i].identity
}); });
@ -404,7 +404,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
player.update(); player.update();
} }
if(back){ if(back){
list.remove(get.sourceCharacter(player.name)); list.remove(get.sourceCharacter(player.name1));
list.remove(get.sourceCharacter(player.name2)); list.remove(get.sourceCharacter(player.name2));
for(var i=0;i<list.length;i++){ for(var i=0;i<list.length;i++){
back.push(list[i]); back.push(list[i]);
@ -773,7 +773,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
else{ else{
game.me.init(event.choosed[0]); game.me.init(event.choosed[0]);
} }
event.list.remove(get.sourceCharacter(game.me.name)); event.list.remove(get.sourceCharacter(game.me.name1));
event.list.remove(get.sourceCharacter(game.me.name2)); event.list.remove(get.sourceCharacter(game.me.name2));
if(game.me==game.zhu){ if(game.me==game.zhu){
game.me.hp++; game.me.hp++;
@ -789,7 +789,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
"step 3" "step 3"
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
_status.characterlist.remove(get.sourceCharacter(game.players[i].name)); _status.characterlist.remove(get.sourceCharacter(game.players[i].name1));
_status.characterlist.remove(get.sourceCharacter(game.players[i].name2)); _status.characterlist.remove(get.sourceCharacter(game.players[i].name2));
} }
setTimeout(function(){ setTimeout(function(){
@ -938,7 +938,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
for(i in lib.characterReplace){ for(i in lib.characterReplace){
var ix=lib.characterReplace[i]; var ix=lib.characterReplace[i];
for(var j=0;j<ix.length;j++){ for(var j=0;j<ix.length;j++){
if(!libCharacter[i]||lib.filter.characterDisabled(ix[j],libCharacter)) ix.splice(j--,1); if(!libCharacter[ix[j]]||lib.filter.characterDisabled(ix[j],libCharacter)) ix.splice(j--,1);
} }
if(ix.length){ if(ix.length){
var name=ix.randomGet(); var name=ix.randomGet();

View File

@ -121,9 +121,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
game.chooseCharacter(); game.chooseCharacter();
} }
"step 2" "step 2"
game.broadcast(function(cardtag){ //game.broadcast(function(cardtag){
_status.cardtag=cardtag; // _status.cardtag=cardtag;
},_status.cardtag); //},_status.cardtag);
if(ui.coin){ if(ui.coin){
_status.coinCoeff=get.coinCoeff([game.me.name1,game.me.name2]); _status.coinCoeff=get.coinCoeff([game.me.name1,game.me.name2]);
} }
@ -6928,6 +6928,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(!lib.characterPack.mode_guozhan[i]) continue; if(!lib.characterPack.mode_guozhan[i]) continue;
if(get.is.jun(i)) continue; if(get.is.jun(i)) continue;
} }
if(lib.character[i][4].contains('hiddenSkill')) continue;
if(lib.character[i][2]==3||lib.character[i][2]==4||lib.character[i][2]==5) if(lib.character[i][2]==3||lib.character[i][2]==4||lib.character[i][2]==5)
event.list.push(i); event.list.push(i);
} }
@ -6973,6 +6974,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
} }
} }
if(lib.character[button.link][4].contains('hiddenSkill')) return false;
if(ui.selected.buttons.length==0){ if(ui.selected.buttons.length==0){
for(var i=0;i<ui.dialog.buttons.length;i++){ for(var i=0;i<ui.dialog.buttons.length;i++){
if(ui.dialog.buttons[i]!=button&&lib.character[button.link][1]==lib.character[ui.dialog.buttons[i].link][1]){ if(ui.dialog.buttons[i]!=button&&lib.character[button.link][1]==lib.character[ui.dialog.buttons[i].link][1]){
@ -7145,11 +7147,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
for(var i in lib.characterPack.mode_guozhan){ for(var i in lib.characterPack.mode_guozhan){
if(i.indexOf('gz_shibing')==0) continue; if(i.indexOf('gz_shibing')==0) continue;
if(get.is.jun(i)) continue; if(get.is.jun(i)) continue;
if(lib.character[i][4].contains('hiddenSkill')) continue;
list.push(i); list.push(i);
} }
} }
else{ else{
list=get.charactersOL(); list=get.charactersOL(function(i){
return lib.character[i][4].contains('hiddenSkill');
});
} }
_status.characterlist=list.slice(0); _status.characterlist=list.slice(0);
_status.yeidentity=[]; _status.yeidentity=[];

View File

@ -18,6 +18,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
group_key:{ group_key:{
fullskin:true, fullskin:true,
}, },
group_jin:{
fullskin:true,
},
}, },
start:function(){ start:function(){
"step 0" "step 0"
@ -310,7 +313,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var info=[]; var info=[];
for(var i=0;i<players.length;i++){ for(var i=0;i<players.length;i++){
info.push({ info.push({
name:players[i].name, name:players[i].name1,
name2:players[i].name2, name2:players[i].name2,
identity:players[i].identity identity:players[i].identity
}); });
@ -1083,7 +1086,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
} }
if(back){ if(back){
list.remove(get.sourceCharacter(player.name)); list.remove(get.sourceCharacter(player.name1));
list.remove(get.sourceCharacter(player.name2)); list.remove(get.sourceCharacter(player.name2));
for(var i=0;i<list.length;i++){ for(var i=0;i<list.length;i++){
back.push(list[i]); back.push(list[i]);
@ -1466,7 +1469,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
if(game.zhu!=game.me){ if(game.zhu!=game.me){
event.ai(game.zhu,event.list,list2) event.ai(game.zhu,event.list,list2)
event.list.remove(get.sourceCharacter(game.zhu.name)); event.list.remove(get.sourceCharacter(game.zhu.name1));
event.list.remove(get.sourceCharacter(game.zhu.name2)); event.list.remove(get.sourceCharacter(game.zhu.name2));
if(_status.brawl&&_status.brawl.chooseCharacter){ if(_status.brawl&&_status.brawl.chooseCharacter){
list=_status.brawl.chooseCharacter(event.list,num); list=_status.brawl.chooseCharacter(event.list,num);
@ -1705,7 +1708,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
else{ else{
game.me.init(event.choosed[0]); game.me.init(event.choosed[0]);
} }
event.list.remove(get.sourceCharacter(game.me.name)); event.list.remove(get.sourceCharacter(game.me.name1));
event.list.remove(get.sourceCharacter(game.me.name2)); event.list.remove(get.sourceCharacter(game.me.name2));
if(game.me==game.zhu&&game.players.length>4){ if(game.me==game.zhu&&game.players.length>4){
game.me.hp++; game.me.hp++;
@ -1942,9 +1945,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(game.me!=game.zhu){ if(game.me!=game.zhu){
game.zhu.init(result.links[0],result.links[1]) game.zhu.init(result.links[0],result.links[1])
} }
event.list.remove(get.sourceCharacter(game.zhu.name)); event.list.remove(get.sourceCharacter(game.zhu.name1));
event.list.remove(get.sourceCharacter(game.zhu.name2)); event.list.remove(get.sourceCharacter(game.zhu.name2));
event.list2.remove(get.sourceCharacter(game.zhu.name)); event.list2.remove(get.sourceCharacter(game.zhu.name1));
event.list2.remove(get.sourceCharacter(game.zhu.name2)); event.list2.remove(get.sourceCharacter(game.zhu.name2));
if(game.players.length>4){ if(game.players.length>4){
@ -1964,7 +1967,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},game.zhu,game.zhu.name,game.zhu.name2,game.players.length>4); },game.zhu,game.zhu.name,game.zhu.name2,game.players.length>4);
if(game.zhu.group=='shen'){ if(game.zhu.group=='shen'){
var list=['wei','shu','wu','qun','key']; var list=['wei','shu','wu','qun','jin','key'];
for(var i=0;i<list.length;i++){ for(var i=0;i<list.length;i++){
if(!lib.group.contains(list[i])) list[i].splice(i--,1); if(!lib.group.contains(list[i])) list[i].splice(i--,1);
else list[i]=['','','group_'+list[i]]; else list[i]=['','','group_'+list[i]];
@ -2045,7 +2048,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
event.result2=result; event.result2=result;
if(shen.length){ if(shen.length){
var list=['wei','shu','wu','qun','key']; var list=['wei','shu','wu','qun','jin','key'];
for(var i=0;i<list.length;i++){ for(var i=0;i<list.length;i++){
if(!lib.group.contains(list[i])) list[i].splice(i--,1); if(!lib.group.contains(list[i])) list[i].splice(i--,1);
list[i]=['','','group_'+list[i]]; list[i]=['','','group_'+list[i]];
@ -2109,11 +2112,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
group_wu:"吴势力", group_wu:"吴势力",
group_qun:"群势力", group_qun:"群势力",
group_key:"键势力", group_key:"键势力",
group_jin:"晋势力",
group_wei_bg:"魏", group_wei_bg:"魏",
group_shu_bg:"蜀", group_shu_bg:"蜀",
group_wu_bg:"吴", group_wu_bg:"吴",
group_qun_bg:"群", group_qun_bg:"群",
group_key_bg:"键", group_key_bg:"键",
group_jin_bg:"晋",
zhu:"主", zhu:"主",
zhong:"忠", zhong:"忠",
mingzhong:"忠", mingzhong:"忠",

View File

@ -219,7 +219,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var info=[]; var info=[];
for(var i=0;i<players.length;i++){ for(var i=0;i<players.length;i++){
info.push({ info.push({
name:players[i].name, name:players[i].name1,
name2:players[i].name2, name2:players[i].name2,
identity:players[i].identity identity:players[i].identity
}); });

View File

@ -496,7 +496,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var info=[]; var info=[];
for(var i=0;i<players.length;i++){ for(var i=0;i<players.length;i++){
info.push({ info.push({
name:players[i].name, name:players[i].name1,
name2:players[i].name2, name2:players[i].name2,
count:players[i].actcount count:players[i].actcount
}); });
@ -952,7 +952,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
ui.arena.appendChild(player); ui.arena.appendChild(player);
game.addVideo('stoneSwap',null,{ game.addVideo('stoneSwap',null,{
name:player.name, name:player.name1,
name2:player.name2, name2:player.name2,
position:player.dataset.position, position:player.dataset.position,
actcount:player.actcount, actcount:player.actcount,
@ -1012,7 +1012,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
ui.arena.appendChild(player); ui.arena.appendChild(player);
game.addVideo('stoneSwap',null,{ game.addVideo('stoneSwap',null,{
name:player.name, name:player.name1,
name2:player.name2, name2:player.name2,
position:player.dataset.position, position:player.dataset.position,
actcount:player.actcount, actcount:player.actcount,

View File

@ -326,7 +326,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var info=[]; var info=[];
for(var i=0;i<players.length;i++){ for(var i=0;i<players.length;i++){
info.push({ info.push({
name:players[i].name, name:players[i].name1,
name2:players[i].name2, name2:players[i].name2,
identity:players[i].node.identity.firstChild.innerHTML, identity:players[i].node.identity.firstChild.innerHTML,
color:players[i].node.identity.dataset.color color:players[i].node.identity.dataset.color
@ -594,10 +594,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var zhu=game.findPlayer2(function(current){ var zhu=game.findPlayer2(function(current){
return current.side==game.me.side&&current.identity=='zhu'; return current.side==game.me.side&&current.identity=='zhu';
}); });
var str=(game.me.side?'暖/':'冷/')+get.translation(zhu.previousSeat.name)+'/'+get.translation(zhu.name)+'/'+get.translation(zhu.nextSeat.name); var str=(game.me.side?'暖/':'冷/')+get.translation(zhu.previousSeat.name1)+'/'+get.translation(zhu.name1)+'/'+get.translation(zhu.nextSeat.name1);
return ['统率三军',str] return ['统率三军',str]
} }
var str=get.translation(game.me.name); var str=get.translation(game.me.name1);
if(game.me.name2){ if(game.me.name2){
str+='/'+get.translation(game.me.name2); str+='/'+get.translation(game.me.name2);
} }
@ -813,7 +813,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var double=(result.links.length==2); var double=(result.links.length==2);
game.me.init(result.links[0],result.links[1]); game.me.init(result.links[0],result.links[1]);
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
if(game.players[i].name) continue; if(game.players[i].name1) continue;
if(game.players[i].type!='human'){ if(game.players[i].type!='human'){
game.players[i].init(event.list[game.players[i].identity+game.players[i].type].randomRemove()); game.players[i].init(event.list[game.players[i].identity+game.players[i].type].randomRemove());
} }
@ -1069,7 +1069,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
enemyChoice._skipped=true; enemyChoice._skipped=true;
} }
} }
if(!game.players[i].name) game.players[i].init(event.list[game.players[i].side].randomRemove()); if(!game.players[i].name1) game.players[i].init(event.list[game.players[i].side].randomRemove());
} }
} }
game.players[i].addSkill('longchuanzhibao'); game.players[i].addSkill('longchuanzhibao');
@ -1087,7 +1087,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
} }
_status.firstAct.gainZhibao(); _status.firstAct.gainZhibao();
game.addRecentCharacter(game.me.name); game.addRecentCharacter(game.me.name1);
setTimeout(function(){ setTimeout(function(){
ui.arena.classList.remove('choose-character'); ui.arena.classList.remove('choose-character');
},500); },500);
@ -1365,15 +1365,15 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(_status.replacetwo){ if(_status.replacetwo){
game.me.replacetwo=result.links[1]; game.me.replacetwo=result.links[1];
} }
event.list.remove(game.me.name); event.list.remove(game.me.name1);
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
if(game.players[i]!=game.me){ if(game.players[i]!=game.me){
if(_status.brawl&&_status.brawl.chooseCharacter){ if(_status.brawl&&_status.brawl.chooseCharacter){
var list=_status.brawl.chooseCharacter(event.list,game.players[i]); var list=_status.brawl.chooseCharacter(event.list,game.players[i]);
game.players[i].init(list.randomGet()); game.players[i].init(list.randomGet());
event.list.remove(game.players[i].name); event.list.remove(game.players[i].name1);
if(_status.replacetwo){ if(_status.replacetwo){
game.players[i].replacetwo=list.randomGet(game.players[i].name); game.players[i].replacetwo=list.randomGet(game.players[i].name1);
event.list.remove(game.players[i].replacetwo); event.list.remove(game.players[i].replacetwo);
} }
} }
@ -1401,7 +1401,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
} }
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
_status.characterlist.remove(game.players[i].name); _status.characterlist.remove(game.players[i].name1);
_status.characterlist.remove(game.players[i].replacetwo); _status.characterlist.remove(game.players[i].replacetwo);
} }
setTimeout(function(){ setTimeout(function(){
@ -1549,7 +1549,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
game.addRecentCharacter(result.links[i]); game.addRecentCharacter(result.links[i]);
} }
game.me.init(result.links[0]); game.me.init(result.links[0]);
event.list.remove(game.me.name); event.list.remove(game.me.name1);
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
if(game.players[i]!=game.me){ if(game.players[i]!=game.me){
game.players[i].init(event.list.randomRemove()); game.players[i].init(event.list.randomRemove());
@ -1594,8 +1594,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
else{ else{
player.init(list[0]); player.init(list[0]);
} }
this.list.remove(player.name); this.list.remove(player.name1);
this.list2.remove(player.name); this.list2.remove(player.name1);
} }
next.setContent(function(){ next.setContent(function(){
"step 0" "step 0"
@ -1791,8 +1791,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
var names=[]; var names=[];
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
if(game.players[i].name){ if(game.players[i].name1){
names.push(game.players[i].name); names.push(game.players[i].name1);
} }
} }
for(var i=0;i<dialog.buttons.length;i++){ for(var i=0;i<dialog.buttons.length;i++){
@ -1840,8 +1840,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(event.current==game.me){ if(event.current==game.me){
game.addRecentCharacter(result.buttons[0].link); game.addRecentCharacter(result.buttons[0].link);
} }
event.list.remove(event.current.name); event.list.remove(event.current.name1);
event.list2.remove(event.current.name); event.list2.remove(event.current.name1);
if(event.current.identity=='zhu'){ if(event.current.identity=='zhu'){
event.current.hp++; event.current.hp++;
event.current.maxHp++; event.current.maxHp++;
@ -1851,7 +1851,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
if(event.four_assign){ if(event.four_assign){
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
if(!game.players[i].name) break; if(!game.players[i].name1) break;
} }
if(i<game.players.length){ if(i<game.players.length){
var side=event.current.side; var side=event.current.side;
@ -1859,7 +1859,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(event.flipassign){ if(event.flipassign){
for(var iwhile=0;iwhile<8;iwhile++){ for(var iwhile=0;iwhile<8;iwhile++){
event.current=event.current.next; event.current=event.current.next;
if(event.current.side!=side&&!event.current.name){ if(event.current.side!=side&&!event.current.name1){
break; break;
} }
} }
@ -1867,7 +1867,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
else{ else{
for(var iwhile=0;iwhile<8;iwhile++){ for(var iwhile=0;iwhile<8;iwhile++){
event.current=event.current.previous; event.current=event.current.previous;
if(event.current.side==side&&!event.current.name){ if(event.current.side==side&&!event.current.name1){
break; break;
} }
} }
@ -1878,7 +1878,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
else{ else{
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
if(!game.players[i].name){ if(!game.players[i].name1){
event.ai(game.players[i],event.list.splice(0,3),event.list2); event.ai(game.players[i],event.list.splice(0,3),event.list2);
game.players[i].node.name_seat.remove(); game.players[i].node.name_seat.remove();
} }
@ -2869,7 +2869,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
event.current.classList.remove('selectedx'); event.current.classList.remove('selectedx');
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
if(!game.players[i].name) break; if(!game.players[i].name1) break;
} }
if(i<game.players.length){ if(i<game.players.length){
var side=event.current.side; var side=event.current.side;
@ -2877,7 +2877,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(event.flipassign){ if(event.flipassign){
for(var iwhile=0;iwhile<8;iwhile++){ for(var iwhile=0;iwhile<8;iwhile++){
event.current=event.current.next; event.current=event.current.next;
if(event.current.side!=side&&!event.current.name){ if(event.current.side!=side&&!event.current.name1){
break; break;
} }
} }
@ -2885,7 +2885,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
else{ else{
for(var iwhile=0;iwhile<8;iwhile++){ for(var iwhile=0;iwhile<8;iwhile++){
event.current=event.current.previous; event.current=event.current.previous;
if(event.current.side==side&&!event.current.name){ if(event.current.side==side&&!event.current.name1){
break; break;
} }
} }
@ -2985,7 +2985,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
lib.setPopped(_status.enemyCount,func2); lib.setPopped(_status.enemyCount,func2);
for(var i in result){ for(var i in result){
if(!lib.playerOL[i].name){ if(!lib.playerOL[i].name1){
lib.playerOL[i].init(result[i][0]); lib.playerOL[i].init(result[i][0]);
} }
if(lib.playerOL[i].side==game.me.side){ if(lib.playerOL[i].side==game.me.side){
@ -3148,13 +3148,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
result[i]=result[i].links[0]; result[i]=result[i].links[0];
} }
_status.characterlist.remove(result[i]); _status.characterlist.remove(result[i]);
if(!lib.playerOL[i].name){ if(!lib.playerOL[i].name1){
lib.playerOL[i].init(result[i]); lib.playerOL[i].init(result[i]);
} }
} }
game.broadcast(function(result){ game.broadcast(function(result){
for(var i in result){ for(var i in result){
if(!lib.playerOL[i].name){ if(!lib.playerOL[i].name1){
lib.playerOL[i].init(result[i]); lib.playerOL[i].init(result[i]);
} }
} }
@ -3349,20 +3349,20 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
else{ else{
result2=_status.enemy.randomGet(); result2=_status.enemy.randomGet();
} }
if(!game.players[0].name) game.players[0].init(result1); if(!game.players[0].name1) game.players[0].init(result1);
if(!game.players[1].name) game.players[1].init(result2); if(!game.players[1].name1) game.players[1].init(result2);
_status.friend.remove(result1); _status.friend.remove(result1);
_status.enemy.remove(result2); _status.enemy.remove(result2);
game.broadcast(function(result1,result2){ game.broadcast(function(result1,result2){
if(game.me.side){ if(game.me.side){
if(!game.me.name) game.me.init(result1); if(!game.me.name1) game.me.init(result1);
if(!game.me.next.name) game.me.next.init(result2); if(!game.me.next.name1) game.me.next.init(result2);
_status.friend.remove(result1); _status.friend.remove(result1);
_status.enemy.remove(result2); _status.enemy.remove(result2);
} }
else{ else{
if(!game.me.name) game.me.init(result2); if(!game.me.name1) game.me.init(result2);
if(!game.me.next.name) game.me.next.init(result1); if(!game.me.next.name1) game.me.next.init(result1);
_status.friend.remove(result2); _status.friend.remove(result2);
_status.enemy.remove(result1); _status.enemy.remove(result1);
} }
@ -6463,11 +6463,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(_status.mode=='1v1'||_status.mode=='3v3'){ if(_status.mode=='1v1'||_status.mode=='3v3'){
game.broadcastAll(function(dead){ game.broadcastAll(function(dead){
if(dead.side==game.me.side){ if(dead.side==game.me.side){
_status.friendDied.push(dead.name); _status.friendDied.push(dead.name1);
_status.friendCount.innerHTML='阵亡: '+get.cnNumber(_status.friendDied.length,true); _status.friendCount.innerHTML='阵亡: '+get.cnNumber(_status.friendDied.length,true);
} }
else{ else{
_status.enemyDied.push(dead.name); _status.enemyDied.push(dead.name1);
_status.enemyCount.innerHTML='杀敌: '+get.cnNumber(_status.enemyDied.length,true); _status.enemyCount.innerHTML='杀敌: '+get.cnNumber(_status.enemyDied.length,true);
} }
},this); },this);
@ -6675,11 +6675,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return; return;
} }
if(this.side==me.side){ if(this.side==me.side){
_status.friendDied.push(this.name); _status.friendDied.push(this.name1);
_status.friendCount.innerHTML='阵亡: '+get.cnNumber(_status.friendDied.length,true); _status.friendCount.innerHTML='阵亡: '+get.cnNumber(_status.friendDied.length,true);
} }
else{ else{
_status.enemyDied.push(this.name); _status.enemyDied.push(this.name1);
_status.enemyCount.innerHTML='杀敌: '+get.cnNumber(_status.enemyDied.length,true); _status.enemyCount.innerHTML='杀敌: '+get.cnNumber(_status.enemyDied.length,true);
} }