Anego!Akane!Rikiko!
|
@ -78,7 +78,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
if(typeof event.baseDamage!='number') event.baseDamage=1;
|
||||
if(typeof event.extraDamage!='number') event.extraDamage=0;
|
||||
"step 1"
|
||||
if(event.directHit||(!_status.connectMode&&lib.config.skip_shan&&!target.hasShan())){
|
||||
if(event.directHit||event.directHit2||(!_status.connectMode&&lib.config.skip_shan&&!target.hasShan())){
|
||||
event._result={bool:false};
|
||||
}
|
||||
else if(event.skipShan){
|
||||
|
@ -109,18 +109,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
else if(get.damageEffect(target,evt.player,target,evt.card.nature)>=0) bool=false;
|
||||
if(bool){
|
||||
if(typeof card=='string'){
|
||||
var info=get.info(card);
|
||||
if(info.ai&&info.ai.order){
|
||||
if(typeof info.ai.order=='number'){
|
||||
return info.ai.order;
|
||||
}
|
||||
else if(typeof info.ai.order=='function'){
|
||||
return info.ai.order();
|
||||
}
|
||||
}
|
||||
}
|
||||
return 3;
|
||||
return get.order(card);
|
||||
}
|
||||
return 0;
|
||||
}).set('shanRequired',event.shanRequired);
|
||||
|
@ -246,6 +235,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
game.delay(0.5);
|
||||
},
|
||||
ai:{
|
||||
order:3,
|
||||
basic:{
|
||||
useful:[7,2],
|
||||
value:[7,2],
|
||||
|
|
427
character/diy.js
|
@ -31,9 +31,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_harukakanata:['female','key',3,['haruka_shuangche']],
|
||||
key_inari:['female','key',2,['inari_baiwei','inari_huhun']],
|
||||
key_shiina:['female','key',3,['shiina_qingshen','shiina_feiyan']],
|
||||
key_sunohara:['unknown','key',3,['sunohara_chengshuang','sunohara_tiaoyin','sunohara_jianren']],
|
||||
key_sunohara:['unknown','key','3/4',['sunohara_chengshuang','sunohara_tiaoyin','sunohara_jianren']],
|
||||
key_rin:['female','key',3,['rin_baoqiu']],
|
||||
key_sasami:['female','key',3,['sasami_miaobian']],
|
||||
key_akane:['female','key',3,['akane_jugu','akane_quanqing','akane_yifu'],['zhu']],
|
||||
key_doruji:['female','key',16,['doruji_feiqu']],
|
||||
key_yuiko:['female','key',3,['yuiko_fenglun','yuiko_dilve']],
|
||||
key_riki:['female','key',3,['riki_spwenji','riki_nvzhuang','riki_mengzhong']],
|
||||
// diy_caocao:['male','wei',4,['xicai','diyjianxiong','hujia']],
|
||||
// diy_hanlong:['male','wei',4,['siji','ciqiu']],
|
||||
diy_feishi:['male','shu',3,['shuaiyan','moshou']],
|
||||
|
@ -113,7 +117,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
diy:{
|
||||
diy_tieba:["diy_wenyang","ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua","ns_zhangwei"],
|
||||
diy_default:["diy_feishi","diy_liuyan","diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji","diy_liufu","diy_xizhenxihong","diy_liuzan","diy_zaozhirenjun","diy_yangyi","diy_tianyu"],
|
||||
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_kagari","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami"],
|
||||
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_kagari","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki"],
|
||||
diy_yongjian:["ns_chendao","yj_caoang"],
|
||||
},
|
||||
},
|
||||
|
@ -129,6 +133,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
|
||||
},
|
||||
characterTitle:{
|
||||
key_riki:'#bLittle Busters!',
|
||||
key_yuiko:'#bLittle Busters!',
|
||||
key_akane:'#bRewrite',
|
||||
key_sasami:'#bLittle Busters!',
|
||||
key_rin:'#bLittle Busters!',
|
||||
key_shiina:'#rAngel Beats!',
|
||||
|
@ -187,6 +194,325 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
yuji:['zuoci']
|
||||
},
|
||||
skill:{
|
||||
riki_spwenji:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseUseBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return game.hasPlayer(function(current){
|
||||
return current!=player&¤t.countCards('he');
|
||||
});
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt2('riki_spwenji'),function(card,player,target){
|
||||
return target!=player&&target.countCards('he');
|
||||
}).set('ai',function(target){
|
||||
var att=get.attitude(_status.event.player,target);
|
||||
if(att>0) return Math.sqrt(att)/10;
|
||||
return 5-att;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
event.target=target;
|
||||
player.logSkill('riki_spwenji',target);
|
||||
target.chooseCard('he',true,'问计:将一张牌交给'+get.translation(player));
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
if(result.bool){
|
||||
player.addTempSkill('riki_spwenji_respond');
|
||||
player.storage.riki_spwenji_respond=result.cards[0].name;
|
||||
event.target.give(result.cards,player,true);
|
||||
}
|
||||
},
|
||||
subSkill:{
|
||||
respond:{
|
||||
onremove:true,
|
||||
trigger:{player:'useCard'},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
audio:'riki_spwenji',
|
||||
filter:function(event,player){
|
||||
return event.card.name==player.storage.riki_spwenji_respond;
|
||||
},
|
||||
content:function(){
|
||||
trigger.directHit.addArray(game.players);
|
||||
},
|
||||
}
|
||||
}
|
||||
},
|
||||
riki_nvzhuang:{
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
forced:true,
|
||||
content:function(){
|
||||
player.draw(player.countCards('h')==0?2:1);
|
||||
},
|
||||
},
|
||||
riki_mengzhong:{
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
forced:true,
|
||||
derivation:'riki_chongzhen',
|
||||
juexingji:true,
|
||||
unique:true,
|
||||
skillAnimation:true,
|
||||
animationColor:'key',
|
||||
filter:function(event,player){
|
||||
var num=0;
|
||||
player.getAllHistory('gain',function(evt){
|
||||
if(evt.getParent().name=='riki_spwenji') num+=evt.cards.length;
|
||||
});
|
||||
return num>=3;
|
||||
},
|
||||
content:function(){
|
||||
player.awakenSkill('riki_mengzhong');
|
||||
player.removeSkill('riki_spwenji');
|
||||
player.gainMaxHp();
|
||||
player.recover();
|
||||
player.addSkill('riki_chongzhen');
|
||||
},
|
||||
},
|
||||
riki_chongzhen:{
|
||||
trigger:{
|
||||
player:"phaseUseBegin",
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt2('riki_chongzhen'),function(card,player,target){
|
||||
return player.canCompare(target);
|
||||
}).set('ai',function(target){
|
||||
return -get.attitude(player,target)*(1+target.countCards('e'))/(1+target.countCards('j'));
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
event.target=target;
|
||||
player.logSkill('riki_chongzhen',target);
|
||||
player.chooseToCompare(target);
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
if(result.bool){
|
||||
var num=0;
|
||||
if(target.countCards('h')) num++;
|
||||
if(target.countCards('e')) num++;
|
||||
if(target.countCards('j')) num++;
|
||||
if(num){
|
||||
player.gainPlayerCard(target,num,'hej',true).set('filterButton',function(button){
|
||||
for(var i=0;i<ui.selected.buttons.length;i++){
|
||||
if(get.position(button.link)==get.position(ui.selected.buttons[i].link)) return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
}
|
||||
else{
|
||||
player.addTempSkill('zishou2','phaseEnd');
|
||||
}
|
||||
},
|
||||
},
|
||||
yuiko_fenglun:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return player.countCards('h')>0&&game.hasPlayer(function(current){
|
||||
return player.canCompare(current);
|
||||
});
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return player.canCompare(target);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseToCompare(target);
|
||||
'step 1'
|
||||
if(result.bool) player.addTempSkill('yuiko_fenglun2','phaseUseEnd');
|
||||
},
|
||||
ai:{
|
||||
order:10,
|
||||
result:{target:-1},
|
||||
},
|
||||
},
|
||||
yuiko_fenglun2:{
|
||||
mod:{
|
||||
cardUsable:function(){return Infinity},
|
||||
targetInRange:function(){return true},
|
||||
},
|
||||
},
|
||||
yuiko_dilve:{
|
||||
enable:"chooseCard",
|
||||
check:function(){
|
||||
return 20;
|
||||
},
|
||||
filter:function(event){
|
||||
return event.type=='compare'&&!event.directresult;
|
||||
},
|
||||
onCompare:function(player){
|
||||
return game.cardsGotoOrdering(get.bottomCards()).cards;
|
||||
},
|
||||
group:'yuiko_dilve_gain',
|
||||
subSkill:{
|
||||
gain:{
|
||||
trigger:{
|
||||
player:['chooseToCompareAfter','compareMultipleAfter'],
|
||||
target:['chooseToCompareAfter','compareMultipleAfter']
|
||||
},
|
||||
filter:function(event,player){
|
||||
if(event.preserve) return false;
|
||||
return [event.card1,event.card2].filterInD('od').length>0;
|
||||
},
|
||||
prompt2:function(event,player){
|
||||
return '获得'+get.translation([event.card1,event.card2].filterInD('od'));
|
||||
},
|
||||
content:function(){
|
||||
player.gain([trigger.card1,trigger.card2].filterInD('od'),'gain2','log');
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
doruji_feiqu:{
|
||||
trigger:{
|
||||
player:'useCard',
|
||||
target:'useCardToTargeted',
|
||||
},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.card.name=='sha';
|
||||
},
|
||||
content:function(){
|
||||
if(trigger.name=='useCard') trigger.directHit.addArray(game.players);
|
||||
else trigger.directHit.add(player);
|
||||
},
|
||||
},
|
||||
akane_jugu:{
|
||||
audio:2,
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
return num+player.maxHp;
|
||||
}
|
||||
},
|
||||
trigger:{global:'gameDrawAfter',player:'enterGame'},
|
||||
forced:true,
|
||||
content:function(){
|
||||
player.draw(player.maxHp);
|
||||
}
|
||||
},
|
||||
akane_quanqing:{
|
||||
enable:'phaseUse',
|
||||
filterCard:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&player.inRange(target);
|
||||
},
|
||||
position:'he',
|
||||
check:function(card){
|
||||
var val=get.value(card);
|
||||
var num=card.number;
|
||||
if(num>10) return 8-val;
|
||||
var player=_status.event.player;
|
||||
if(player.getUseValue(card,null,true)>player.getUseValue({name:'guohe'})) return 0;
|
||||
if(num>6) return 6-val;
|
||||
return 3-val;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var num=cards[0].number;
|
||||
var trans=get.translation(target);
|
||||
var list=['令'+trans+'摸一张牌'];
|
||||
event.addIndex=0;
|
||||
if(num>6){
|
||||
if(target.countDiscardableCards(player,'hej')>0) list.push('弃置'+trans+'区域内的一张牌');
|
||||
else event.addIndex++;
|
||||
}
|
||||
if(num>10) list.push('对'+trans+'造成1点伤害');
|
||||
if(list.length==1) event._result={index:0};
|
||||
else player.chooseControl().set('choiceList',list).set('index',list.length-1).set('ai',function(){return _status.event.index});
|
||||
'step 1'
|
||||
if(result.index>0) result.index+=event.addIndex;
|
||||
switch(result.index){
|
||||
case 0:target.draw();break;
|
||||
case 1:player.discardPlayerCard(target,'hej',true);break;
|
||||
case 2:target.damage('nocard');break;
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:4,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
var card=ui.selected.cards[0];
|
||||
if(card){
|
||||
if(card.number>10) return get.damageEffect(target,player,target);
|
||||
if(card.number>6) return lib.card.guohe.ai.result.target.apply(this,arguments);
|
||||
return 1;
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
akane_yifu:{
|
||||
unique:true,
|
||||
global:'akane_yifu2',
|
||||
zhuSkill:true,
|
||||
},
|
||||
akane_yifu2:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
discard:false,
|
||||
line:true,
|
||||
direct:true,
|
||||
delay:false,
|
||||
lose:false,
|
||||
prepare:function(cards,player,targets){
|
||||
targets[0].logSkill('akane_yifu');
|
||||
},
|
||||
prompt:function(){
|
||||
var player=_status.event.player;
|
||||
var list=game.filterPlayer(function(target){
|
||||
return target!=player&&target.hasZhuSkill('akane_yifu',player);
|
||||
});
|
||||
var str='将一张手牌交给'+get.translation(list);
|
||||
if(list.length>1) str+='中的一人';
|
||||
return str;
|
||||
},
|
||||
filter:function(event,player){
|
||||
if(player.group!='key') return false;
|
||||
if(player.countCards('h')==0) return 0;
|
||||
return game.hasPlayer(function(target){
|
||||
return target!=player&&target.hasZhuSkill('akane_yifu',player)&&!target.hasSkill('akane_yifu3');
|
||||
});
|
||||
},
|
||||
filterCard:true,
|
||||
log:false,
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&target.hasZhuSkill('akane_yifu',player)&&!target.hasSkill('akane_yifu3');
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
target.gain(cards,player,'giveAuto');
|
||||
target.addTempSkill('akane_yifu3','phaseUseEnd');
|
||||
target.draw();
|
||||
'step 1'
|
||||
if(target.countCards('h')>0) target.chooseCard('h',true,'交给'+get.translation(player)+'一张牌').set('ai',function(card){
|
||||
return 14-get.value(card);
|
||||
});
|
||||
else event.finish();
|
||||
'step 2'
|
||||
player.gain(result.cards,target,'giveAuto');
|
||||
},
|
||||
ai:{
|
||||
expose:0.3,
|
||||
order:10,
|
||||
result:{
|
||||
target:5
|
||||
}
|
||||
}
|
||||
},
|
||||
akane_yifu3:{},
|
||||
sasami_miaobian:{
|
||||
derivation:['sasami_gongqing','sasami_funan','sasami_baoqiu'],
|
||||
init2:function(player){
|
||||
|
@ -501,7 +827,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
shiina_feiyan:{
|
||||
animalList:['key_inari'],
|
||||
animalList:['key_inari','key_doruji'],
|
||||
trigger:{global:'phaseBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
|
@ -637,7 +963,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(max>0) max+=0.5;
|
||||
return max;
|
||||
}
|
||||
return 3;
|
||||
return 4;
|
||||
},
|
||||
result:{
|
||||
player:1,
|
||||
|
@ -1311,11 +1637,72 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function(){
|
||||
if(trigger.name=='dying') trigger.cancel();
|
||||
else if(event.triggername=='phaseBeginStart') player.addTempSkill('iwasawa_fenyin');
|
||||
else if(event.triggername=='phaseBeginStart') player.addTempSkill('iwasawa_refenyin');
|
||||
else player.die();
|
||||
},
|
||||
nobracket:true,
|
||||
derivation:'iwasawa_fenyin',
|
||||
derivation:'iwasawa_refenyin',
|
||||
},
|
||||
iwasawa_refenyin:{
|
||||
trigger:{global:['loseAfter','cardsDiscardAfter']},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
if(player!=_status.currentPhase) return false;
|
||||
if(event.name=='lose'&&event.position!=ui.discardPile) return false;
|
||||
var list=[];
|
||||
for(var i=0;i<event.cards.length;i++){
|
||||
var card=event.cards[i];
|
||||
list.add(card.suit);
|
||||
}
|
||||
game.getGlobalHistory('cardMove',function(evt){
|
||||
if(evt==event||(evt.name!='lose'&&evt.name!='cardsDiscard')) return false;
|
||||
if(evt.name=='lose'&&evt.position!=ui.discardPile) return false;
|
||||
for(var i=0;i<evt.cards.length;i++){
|
||||
var card=evt.cards[i];
|
||||
list.remove(card.suit);
|
||||
}
|
||||
});
|
||||
return list.length>0;
|
||||
},
|
||||
content:function(){
|
||||
var list=[];
|
||||
var list2=[];
|
||||
for(var i=0;i<trigger.cards.length;i++){
|
||||
var card=trigger.cards[i];
|
||||
var suit=card.suit;
|
||||
list.add(suit);
|
||||
list2.add(suit);
|
||||
}
|
||||
game.getGlobalHistory('cardMove',function(evt){
|
||||
if(evt==trigger||(evt.name!='lose'&&evt.name!='cardsDiscard')) return false;
|
||||
if(evt.name=='lose'&&evt.position!=ui.discardPile) return false;
|
||||
for(var i=0;i<evt.cards.length;i++){
|
||||
var card=evt.cards[i];
|
||||
var suit=card.suit;
|
||||
list.remove(suit);
|
||||
list2.add(suit);
|
||||
}
|
||||
});
|
||||
list2.sort();
|
||||
player.draw(list.length);
|
||||
player.storage.iwasawa_refenyin_mark=list2;
|
||||
player.addTempSkill('iwasawa_refenyin_mark');
|
||||
player.markSkill('iwasawa_refenyin_mark');
|
||||
},
|
||||
subSkill:{
|
||||
mark:{
|
||||
onremove:true,
|
||||
intro:{
|
||||
content:function(s){
|
||||
var str='本回合已经进入过弃牌堆的卡牌的花色:';
|
||||
for(var i=0;i<s.length;i++){
|
||||
str+=get.translation(s[i]);
|
||||
}
|
||||
return str;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
iwasawa_fenyin:{
|
||||
mod:{
|
||||
|
@ -7023,6 +7410,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
//该武将国战模式下不可用
|
||||
key_rin:'枣铃',
|
||||
key_sasami:'笹濑川佐佐美',
|
||||
key_akane:'千里朱音',
|
||||
key_doruji:'多鲁基',
|
||||
key_yuiko:'来谷唯湖',
|
||||
key_riki:'直枝理树'/*+'子'*/,
|
||||
lucia_duqu:'毒躯',
|
||||
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
|
||||
lucia_zhenren:'振刃',
|
||||
|
@ -7071,6 +7462,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
iwasawa_mysong_info:'锁定技,当你即将进行濒死结算时,取消之。回合开始时,若你的体力值小于1,则你获得技能〖奋音〗直到回合结束。回合结束时,若你的体力值小于1,你死亡。',
|
||||
iwasawa_fenyin:'奋音',
|
||||
iwasawa_fenyin_info:'你的回合内,当你使用牌时,若此牌与你于此回合内使用的上一张牌的颜色不同,则你可以摸一张牌。',
|
||||
iwasawa_refenyin:'奋音',
|
||||
iwasawa_refenyin_info:'锁定技,你的回合内,当一张牌进入弃牌堆后,若本回合内没有过与此牌花色相同的卡牌进入过弃牌堆,则你摸一张牌。',
|
||||
//卡牌花色的计算不受【红颜】等技能的影响
|
||||
kengo_weishang:'伪伤',
|
||||
key_weishang_sha:'伪伤',
|
||||
key_weishang_shan:'伪伤',
|
||||
|
@ -7137,6 +7531,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sasami_funan_info:'其他角色使用或打出牌响应你使用的牌时,你可令其获得你使用的牌(其本回合不能使用或打出这些牌),然后你获得其使用或打出的牌。',
|
||||
sasami_baoqiu:'暴球',
|
||||
sasami_baoqiu_info:'锁定技,你的攻击范围+2。当你使用【杀】指定目标后,你进行判定。若结果:为红色,此【杀】对其的伤害值基数+1;为黑色,其无法闪避此【杀】;为♠/♥,此【杀】不计入使用次数限制且你摸一张牌;为♦/♣,目标角色的所有非锁定技失效直到回合结束,且你弃置其一张牌。',
|
||||
akane_jugu:'巨贾',
|
||||
akane_jugu_info:'锁定技,1.你的手牌上限+X。2.游戏开始时,你摸X张牌(X为你的体力上限)',
|
||||
akane_quanqing:'权倾',
|
||||
akane_quanqing_info:'出牌阶段,你可选择:1.弃置一张点数大于10的牌并对攻击范围内的一名其他角色造成1点伤害;2.弃置一张点数大于6的牌并弃置攻击范围内的一名其他角色区域内的一张牌。3.弃置一张牌并令攻击范围内的一名其他角色摸一张牌。',
|
||||
akane_yifu:'蚁附',
|
||||
akane_yifu2:'蚁附',
|
||||
akane_yifu_info:'主公技,其他键势力角色的出牌阶段限一次,其可交给你一张手牌。然后你摸一张牌,并将一张手牌交给该角色。',
|
||||
doruji_feiqu:'肥躯',
|
||||
doruji_feiqu_info:'锁定技,当你使用【杀】时,或你成为【杀】的目标后,你令此【杀】不可被响应。',
|
||||
yuiko_fenglun:'锋论',
|
||||
yuiko_fenglun_info:'出牌阶段限一次,你可以和一名其他角色拼点。若你赢,你本阶段内使用牌没有次数和距离限制。',
|
||||
yuiko_dilve:'底略',
|
||||
yuiko_dilve_info:'你可以使用牌堆底的一张牌进行拼点。当你拼点后,你可以获得两张拼点牌。',
|
||||
riki_spwenji:'问计',
|
||||
riki_spwenji_info:'出牌阶段开始时,你可以令一名其他角色交给你一张牌。你于本回合内使用与该牌名称相同的牌时不能被其他角色响应。',
|
||||
riki_nvzhuang:'女装',
|
||||
riki_nvzhuang_info:'锁定技,此武将牌的性别视为女性。结束阶段,若你:有手牌,你摸一张牌;没有手牌,你摸两张牌。',
|
||||
riki_mengzhong:'梦终',
|
||||
riki_mengzhong_info:'觉醒技,准备阶段,若你已因〖问计〗获得了三张或更多的牌,则你加1点体力上限并回复1点体力,失去〖问计〗并获得〖重振〗。',
|
||||
riki_chongzhen:'重振',
|
||||
riki_chongzhen_info:'出牌阶段开始时,你可以与一名角色拼点。若你赢,你获得该角色手牌区,装备区,判定区的各一张牌;若你没赢,你于此阶段内使用牌时不能指定其他角色为目标。',
|
||||
|
||||
yj_caoang:'SP曹昂',
|
||||
yjxuepin:'血拼',
|
||||
|
|
|
@ -11,7 +11,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
extra_shan:['shen_zhaoyun','shen_simayi'],
|
||||
extra_yin:['shen_liubei','shen_luxun'],
|
||||
extra_lei:['shen_ganning','shen_zhangliao'],
|
||||
extra_ol:['ol_zhangliao'],
|
||||
extra_ol:['ol_zhangliao','shen_caopi','shen_zhenji'],
|
||||
},
|
||||
},
|
||||
character:{
|
||||
|
@ -29,6 +29,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"shen_zhangliao":["male","shen",4,["drlt_duorui","drlt_zhiti"],["wei"]],
|
||||
"shen_ganning":["male","shen","3/6",["drlt_poxi","drlt_jieying"],["wu"]],
|
||||
ol_zhangliao:['male','shen',4,['olduorui','olzhiti'],['wei']],
|
||||
shen_caopi:['male','shen',6,['chuyuan','dengji'],['wei']],
|
||||
shen_zhenji:['female','shen',4,['shenfu','qixian'],['wei']],
|
||||
},
|
||||
characterIntro:{
|
||||
shen_guanyu:'关羽,字云长。曾水淹七军、擒于禁、斩庞德、威震华夏,吓得曹操差点迁都躲避,但是东吴偷袭荆州,关羽兵败被害。后传说吕蒙因关羽之魂索命而死。',
|
||||
|
@ -40,6 +42,151 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
//shen_ganning:"体力上限:6",
|
||||
},
|
||||
skill:{
|
||||
shenfu:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseEnd'},
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
event.logged=false;
|
||||
event.targets=[];
|
||||
event.goto(player.countCards('h')%2==1?1:4);
|
||||
'step 1'
|
||||
player.chooseTarget(get.prompt('shenfu'),'对一名其他角色造成1点雷属性伤害',lib.filter.notMe).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
return get.damageEffect(target,player,player,'thunder')*(target.hp==1?2:1);
|
||||
});
|
||||
'step 2'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
event.target=target;
|
||||
if(!event.logged){
|
||||
event.logged=true;
|
||||
player.logSkill('shenfu',target,'thunder');
|
||||
}
|
||||
else player.line(target,'thunder');
|
||||
target.damage('thunder');
|
||||
}
|
||||
else event.finish();
|
||||
'step 3'
|
||||
if(target.isDead()) event.goto(1);
|
||||
else event.finish();
|
||||
'step 4'
|
||||
player.chooseTarget(get.prompt('shenfu'),'令一名角色摸一张牌或弃置其一张手牌',function(card,player,target){
|
||||
return !_status.event.getParent().targets.contains(target);
|
||||
}).set('ai',function(target){
|
||||
var att=get.attitude(_status.event.player,target);
|
||||
var delta=target.hp-target.countCards('h');
|
||||
if(Math.abs(delta)==1&&get.sgn(delta)==get.sgn(att)) return 3*Math.abs(att);
|
||||
if(att>0||target.countCards('h')>0) return Math.abs(att);
|
||||
return 0;
|
||||
});
|
||||
'step 5'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
event.target=target;
|
||||
if(!event.logged){
|
||||
event.logged=true;
|
||||
player.logSkill('shenfu',target);
|
||||
}
|
||||
else player.line(target,'green');
|
||||
targets.push(target);
|
||||
if(!target.countCards('h')) event._result={bool:false};
|
||||
else player.discardPlayerCard(target,'h','弃置'+get.translation(target)+'一张手牌,或点【取消】令其摸一张牌。');
|
||||
}
|
||||
else event.finish();
|
||||
'step 6'
|
||||
if(!result.bool) target.draw();
|
||||
'step 7'
|
||||
if(target.hp==target.countCards('h')) event.goto(4);
|
||||
},
|
||||
},
|
||||
qixian:{
|
||||
mod:{
|
||||
maxHandcardFinal:function(player,num){
|
||||
return num-player.hp+7;
|
||||
},
|
||||
},
|
||||
},
|
||||
chuyuan:{
|
||||
audio:2,
|
||||
trigger:{global:'damageEnd'},
|
||||
filter:function(event,player){
|
||||
return event.player.isAlive();
|
||||
},
|
||||
logTarget:'player',
|
||||
content:function(){
|
||||
'step 0'
|
||||
trigger.player.draw();
|
||||
'step 1'
|
||||
if(!trigger.player.countCards('h')) event.finish();
|
||||
else trigger.player.chooseCard('h',true,'选择一张牌置于'+get.translation(player)+'的武将牌上作为「储」');
|
||||
'step 2'
|
||||
trigger.player.lose(result.cards,ui.special,'visible','toStorage');
|
||||
trigger.player.$give(result.cards,player,false);
|
||||
game.log(trigger.player,'选择了',result.cards);
|
||||
player.markAuto('chuyuan',result.cards);
|
||||
},
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
return num+player.getStorage('chuyuan').length;
|
||||
},
|
||||
},
|
||||
intro:{
|
||||
content:'cards',
|
||||
onunmark:'throw',
|
||||
},
|
||||
},
|
||||
dengji:{
|
||||
audio:2,
|
||||
derivation:['tianxing','new_rejianxiong','rerende','rezhiheng','olluanji','olfangquan'],
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
forced:true,
|
||||
unique:true,
|
||||
juexingji:true,
|
||||
skillAnimation:true,
|
||||
animationColor:'water',
|
||||
filter:function(event,player){
|
||||
return player.getStorage('chuyuan').length>=3;
|
||||
},
|
||||
content:function(){
|
||||
player.awakenSkill(event.name);
|
||||
player.addSkill('tianxing');
|
||||
player.addSkill('new_rejianxiong');
|
||||
player.loseMaxHp();
|
||||
player.gain(player.storage.chuyuan,'gain2','fromStorage');
|
||||
player.unmarkAuto('chuyuan',player.storage.chuyuan);
|
||||
},
|
||||
},
|
||||
tianxing:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
forced:true,
|
||||
unique:true,
|
||||
juexingji:true,
|
||||
skillAnimation:true,
|
||||
animationColor:'thunder',
|
||||
filter:function(event,player){
|
||||
return player.getStorage('chuyuan').length>=3;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.awakenSkill(event.name);
|
||||
player.loseMaxHp();
|
||||
player.gain(player.storage.chuyuan,'gain2','fromStorage');
|
||||
player.unmarkAuto('chuyuan',player.storage.chuyuan);
|
||||
player.removeSkill('chuyuan');
|
||||
player.chooseControl('rerende','rezhiheng','olluanji','olfangquan').set('prompt','选择获得一个技能').set('ai',function(){
|
||||
var player=_status.event.player;
|
||||
if(!player.hasSkill('luanji')&&!player.hasSkill('olluanji')&&player.getUseValue({name:'wanjian'})>4) return 'olluanji';
|
||||
if(!player.hasSkill('rezhiheng')) return 'rezhiheng';
|
||||
if(!player.hasSkill('rerende')) return 'rerende';
|
||||
return 'olfangquan';
|
||||
});
|
||||
'step 1'
|
||||
player.addSkillLog(result.control);
|
||||
},
|
||||
},
|
||||
olzhiti:{
|
||||
audio:'drlt_zhiti',
|
||||
global:'olzhiti2',
|
||||
|
@ -2866,6 +3013,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
olduorui_info:'当你于出牌阶段内对一名角色造成伤害后,你可以选择该角色武将牌上的一个技能。若如此做,你结束出牌阶段,且你令此技能于其下个回合结束之前无效。',
|
||||
olzhiti:'止啼',
|
||||
olzhiti_info:'锁定技,你攻击范围内已受伤角色的手牌上限-1。若场上已受伤的角色数:不小于1,你的手牌上限+1;不小于3,你于摸牌阶段开始时令额定摸牌数+1;不小于5,回合结束时,你随机废除一名角色的一个随机装备栏。',
|
||||
shen_caopi:'神曹丕',
|
||||
chuyuan:'储元',
|
||||
chuyuan_info:'一名角色受到伤害后,你可以令其摸一张牌。然后其将一张手牌置于你的武将牌上,称为「储」。你的手牌上限+X(X为你武将牌上的「储」数)。',
|
||||
dengji:'登极',
|
||||
dengji_info:'觉醒技,准备阶段,若你武将牌上的「储」数不小于3,则你减1点体力上限并获得所有「储」,然后获得技能〖天行〗和〖奸雄〗',
|
||||
tianxing:'天行',
|
||||
tianxing_info:'觉醒技,准备阶段,若你武将牌上的「储」数不小于3,则你减1点体力上限并获得所有「储」,然后失去技能〖储元〗,选择获得以下技能中的一个:〖仁德〗/〖制衡〗/〖乱击〗/〖放权〗',
|
||||
shen_zhenji:'神甄姬',
|
||||
shenfu:'神赋',
|
||||
shenfu_info:'回合结束时,若你的手牌数为:奇数,你可对一名其他角色造成1点伤害。若其死亡,你可重复此流程。偶数,你可选择一名本回合内未选择过的角色,你令其摸一张牌或弃置其一张手牌。若其手牌数等于体力值,你可重复此流程。',
|
||||
qixian:'七弦',
|
||||
qixian_info:'锁定技,你的手牌上限视为7。',
|
||||
|
||||
extra_feng:'神话再临·风',
|
||||
extra_huo:'神话再临·火',
|
||||
extra_lin:'神话再临·林',
|
||||
|
|
|
@ -6,12 +6,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
connect:true,
|
||||
characterSort:{
|
||||
mobile:{
|
||||
mobile_default:["miheng","taoqian","liuzan","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng"],
|
||||
mobile_others:["re_jikang","old_bulianshi","old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","xin_yuanshao","re_liushan","xin_xiahoudun","re_sp_zhugeliang","re_heqi","re_guanqiujian","re_pangtong"],
|
||||
mobile_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi"],
|
||||
mobile_others:["re_jikang","old_bulianshi","old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","xin_yuanshao","re_liushan","xin_xiahoudun","re_sp_zhugeliang","re_heqi","re_guanqiujian","re_pangtong","old_liuzan"],
|
||||
mobile_sunben:["re_sunben"],
|
||||
},
|
||||
},
|
||||
character:{
|
||||
yangyi:['male','shu',3,['duoduan','gongsun']],
|
||||
dongcheng:['male','qun',4,['chengzhao']],
|
||||
re_pangtong:['male','shu',3,['xinlianhuan','niepan'],[]],
|
||||
re_guanqiujian:['male','wei',4,['rezhengrong','rehongju']],
|
||||
chendeng:['male','qun',3,['zhouxuan','fengji']],
|
||||
|
@ -25,7 +27,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
old_bulianshi:['female','wu',3,['anxu','zhuiyi']],
|
||||
miheng:['male','qun',3,['kuangcai','shejian']],
|
||||
taoqian:['male','qun',3,['zhaohuo','yixiang','yirang']],
|
||||
liuzan:['male','wu',4,['fenyin']],lingcao:['male','wu',4,['dujin']],
|
||||
old_liuzan:['male','wu',4,['fenyin']],lingcao:['male','wu',4,['dujin']],
|
||||
sunru:['female','wu',3,['yingjian','shixin']],
|
||||
lifeng:['male','shu',3,['tunchu','shuliang']],
|
||||
zhuling:['male','wei',4,['xinzhanyi']],
|
||||
|
@ -53,6 +55,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_sunben:['male','wu',4,['jiang','rehunzi','zhiba'],['zhu']],
|
||||
},
|
||||
characterIntro:{
|
||||
yangyi:'杨仪(?-235年),字威公,襄阳(今湖北襄阳)人,三国时期蜀汉官员。最初为荆州刺史傅群的主簿,后投奔关羽,任为功曹。关羽遣其至成都,大受刘备赞赏,擢为尚书。因与尚书令刘巴不和,调为弘农太守。建兴三年(225年)任丞相参军,此后一直跟随诸葛亮战斗。亮卒,他部署安全退军。诸葛亮在生前定蒋琬继己任,杨仪仅拜中军师。建兴十三年(235年),因多出怨言,被削职流放至汉嘉郡。但杨仪仍不自省,又上书诽谤,言辞激烈,最后下狱,自杀身亡。',
|
||||
dongcheng:'董承(?~200年),字号不详,冀州河间人(今河北献县)人。东汉末年外戚大臣,汉灵帝母亲董太后侄子,汉献帝嫔妃董贵人之父。初从西凉军,为董卓女婿牛辅部曲。护卫汉献帝刘协从长安东归洛阳,拜为卫将军,受封列侯。建安四年(199年),拜车骑将军。自称领受汉献帝衣带诏,联合刘备、种辑、吴子兰、王子服、吴硕等人密谋诛杀曹操。五年正月,图谋泄露,董承诸人及董贵人全部遇害。',
|
||||
chendeng:'陈登(163—201),字元龙,下邳淮浦(今江苏涟水西)人。东汉末年将领、官员。沛相陈珪之子。为人爽朗,性格沈静,智谋过人,少年时有扶世济民之志,并且博览群书,学识渊博。二十五岁时,举孝廉,任东阳县长。虽然年轻,但他能够体察民情,抚弱育孤,深得百姓敬重。后来,徐州牧陶谦提拔他为典农校尉,主管一州农业生产。他亲自考察徐州的土壤状况,开发水利,发展农田灌溉,使汉末迭遭破坏的徐州农业得到一定程度的恢复,百姓们安居乐业,“秔稻丰积”。建安初奉使赴许,向曹操献灭吕布之策,被授广陵太守。以灭吕布有功,加伏波将军。又迁东城太守。年三十九卒。其子陈肃,魏文帝时追陈登之功,为郎中。',
|
||||
yangbiao:'杨彪(142年-225年),字文先。弘农郡华阴县(今陕西华阴)人。东汉末年名臣,太尉杨赐之子、名士杨修之父。杨彪少年时受家学熏陶,初举孝廉、茂才。其后征拜为议郎,参与续写《东观汉记》。任京兆尹时,揭发黄门令王甫的贪赃行为,使其被定罪诛杀。累任侍中、五官中郎将、卫尉等职。汉献帝时,遍历三公(司空、司徒、太尉)之职。权臣董卓意图迁都时,他据理力争。献帝东迁时,杨彪尽节护主。曹操挟献帝定都许县后,将杨彪下狱,获释后又任太常。他见汉室衰微,便诈称脚疾,不理世事。曹魏建立后,拒绝出任太尉,改光禄大夫,待以客礼。黄初六年(225年),杨彪去世,年八十四。其著作现仅存《答曹公书》一篇。',
|
||||
zhangyì:'张翼(?-264年),字伯恭,益州犍为郡武阳县人。三国时期蜀汉将领。历任梓潼、广汉、蜀郡三郡太守,出任庲降都督,后随诸葛亮和姜维北伐,官至左车骑将军,领冀州刺史。初封关内侯,进爵都亭侯。蜀汉灭亡后,魏将钟会密谋造反,成都大乱,张翼亦为乱兵所杀。张翼是蜀汉第三任庲降都督,由于执法严厉,不得南夷欢心。在北伐上,张翼认为国小民疲,不应滥用武力,是蜀汉朝廷当时极少敢当朝和姜维争辩北伐问题的大臣。',
|
||||
|
@ -268,6 +272,225 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
characterFilter:{},
|
||||
skill:{
|
||||
gongsun:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseUseBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player.countCards('he')>1;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseCardTarget({
|
||||
prompt:get.prompt2('gongsun'),
|
||||
selectCard:2,
|
||||
filterCard:lib.filter.cardDiscardable,
|
||||
filterTarget:lib.filter.notMe,
|
||||
position:'he',
|
||||
ai1:function(){return -1},
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
event.target=target;
|
||||
player.logSkill('gongsun',target);
|
||||
player.discard(result.cards);
|
||||
player.addTempSkill('gongsun_shadow',{player:['phaseBegin','die']});
|
||||
var list=[];
|
||||
for(var i=0;i<lib.inpile.length;i++){
|
||||
var name=lib.inpile[i];
|
||||
if(get.type(name)=='trick') list.push(['锦囊','',name]);
|
||||
else if(get.type(name)=='basic') list.push(['基本','',name]);
|
||||
}
|
||||
player.chooseButton(['请选择一个牌名',[list,'vcard'],true]);
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
player.storage.gongsun_shadow.push([target,result.links[0][2]]);
|
||||
player.popup(result.links[0][2],'soil');
|
||||
game.log(player,'选择了',''+get.translation(result.links[0][2]));
|
||||
player.markSkill('gongsun_shadow');
|
||||
},
|
||||
},
|
||||
gongsun_shadow:{
|
||||
global:'gongsun_shadow2',
|
||||
init:function(player,skill){
|
||||
if(!player.storage[skill]) player.storage[skill]=[];
|
||||
},
|
||||
marktext:'损',
|
||||
onremove:true,
|
||||
intro:{
|
||||
content:function(shadow){
|
||||
var str='';
|
||||
for(var i=0;i<shadow.length;i++){
|
||||
if(i>0) str+='<br>'
|
||||
str+=get.translation(shadow[i][0]);
|
||||
str+=':';
|
||||
str+=get.translation(shadow[i][1]);
|
||||
}
|
||||
return str;
|
||||
},
|
||||
},
|
||||
mod:{
|
||||
cardEnabled:function(card,player){
|
||||
var list=player.storage.gongsun_shadow;
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(list[i][1]==card.name) return false;
|
||||
}
|
||||
},
|
||||
cardRespondable:function(card,player){
|
||||
var list=player.storage.gongsun_shadow;
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(list[i][1]==card.name) return false;
|
||||
}
|
||||
},
|
||||
cardSavable:function(card,player){
|
||||
var list=player.storage.gongsun_shadow;
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(list[i][1]==card.name) return false;
|
||||
}
|
||||
},
|
||||
cardDiscardable:function(card,player){
|
||||
var list=player.storage.gongsun_shadow;
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(list[i][1]==card.name) return false;
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
gongsun_shadow2:{
|
||||
mod:{
|
||||
cardEnabled:function(card,player){
|
||||
if(game.hasPlayer(function(current){
|
||||
var list=current.storage.gongsun_shadow;
|
||||
if(!list) return false;
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(list[i][0]==player&&list[i][1]==card.name) return true;
|
||||
}
|
||||
return false;
|
||||
})) return false;
|
||||
},
|
||||
cardSavable:function(card,player){
|
||||
if(game.hasPlayer(function(current){
|
||||
var list=current.storage.gongsun_shadow;
|
||||
if(!list) return false;
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(list[i][0]==player&&list[i][1]==card.name) return true;
|
||||
}
|
||||
return false;
|
||||
})) return false;
|
||||
},
|
||||
cardRespondable:function(card,player){
|
||||
if(game.hasPlayer(function(current){
|
||||
var list=current.storage.gongsun_shadow;
|
||||
if(!list) return false;
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(list[i][0]==player&&list[i][1]==card.name) return true;
|
||||
}
|
||||
return false;
|
||||
})) return false;
|
||||
},
|
||||
cardDiscardable:function(card,player){
|
||||
if(game.hasPlayer(function(current){
|
||||
var list=current.storage.gongsun_shadow;
|
||||
if(!list) return false;
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(list[i][0]==player&&list[i][1]==card.name) return true;
|
||||
}
|
||||
return false;
|
||||
})) return false;
|
||||
},
|
||||
},
|
||||
},
|
||||
duoduan:{
|
||||
audio:2,
|
||||
trigger:{target:'useCardToTargeted'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return event.card.name=='sha'&&player.countCards('he')>0&&!player.hasSkill('duoduan_im');
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseCard('he',get.prompt2('duoduan')).set('ai',function(card){
|
||||
if(_status.event.goon) return 8-get.value(card);
|
||||
return 0;
|
||||
}).set('goon',function(){
|
||||
if(get.attitude(trigger.player,player)>0) return true;
|
||||
if(!player.hasShan()) return true;
|
||||
return event.getRand()<0.5;
|
||||
}());
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.addTempSkill('duoduan_im');
|
||||
var card=result.cards[0];
|
||||
player.logSkill('duoduan',trigger.player);
|
||||
player.lose(card,ui.discardPile,'visible');
|
||||
player.$throw(card,1000);
|
||||
game.log(player,'将',card,'置入弃牌堆');
|
||||
player.draw();
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
trigger.player.chooseToDiscard('弃置一张牌令'+get.translation(player)+'不能闪避此【杀】,或点「取消」摸两张牌并令此【杀】对其无效').set('ai',function(card){
|
||||
if(_status.event.goon) return 6-get.value(card);
|
||||
return 0;
|
||||
}).set('goon',get.attitude(trigger.player,player)<0);
|
||||
'step 3'
|
||||
if(result.bool){
|
||||
trigger.directHit.add(player);
|
||||
}
|
||||
else{
|
||||
trigger.player.draw(2);
|
||||
trigger.excluded.add(player);
|
||||
}
|
||||
},
|
||||
},
|
||||
duoduan_im:{
|
||||
//'im' refers to 'Iwasawa Masami' in 'Angel Beats!'
|
||||
//Although she disappeared in the Episode 3 of the anime, but her route in the game is really worth to play.
|
||||
},
|
||||
chengzhao:{
|
||||
audio:2,
|
||||
trigger:{global:'phaseJieshuBegin'},
|
||||
filter:function(event,player){
|
||||
var num=0;
|
||||
player.getHistory('gain',function(evt){
|
||||
num+=evt.cards.length;
|
||||
});
|
||||
if(num<2) return false;
|
||||
return player.countCards('h')>0&&game.hasPlayer(function(current){
|
||||
return player!=current&&player.canCompare(current);
|
||||
});
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt2('chengzhao'),function(card,player,target){
|
||||
return player.canCompare(target);
|
||||
}).set('ai',function(target){
|
||||
return -get.attitude(_status.event.player,target)/target.countCards('h');
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
event.target=target;
|
||||
player.logSkill('chengzhao',target);
|
||||
player.chooseToCompare(target);
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
if(result.bool){
|
||||
var card={name:'sha',isCard:true};
|
||||
if(player.canUse(card,target,false)) player.useCard(card,target,false).card.chengzhao=true;
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
unequip:true,
|
||||
skillTagFilter:function(player,tag,arg){
|
||||
if(!arg||!arg.card||arg.card.chengzhao!=true) return false;
|
||||
},
|
||||
},
|
||||
},
|
||||
rezhengrong:{
|
||||
trigger:{player:'useCardAfter'},
|
||||
direct:true,
|
||||
|
@ -481,8 +704,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
fengji3:{
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
return num+player.getDamagedHp();
|
||||
maxHandcardBase:function(player,num){
|
||||
return player.maxHp;
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -702,7 +925,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
trigger:{player:['equipEnd','loseEnd']},
|
||||
forced:true,
|
||||
popup:false,
|
||||
derivation:['reyingzi','qixi','xuanfeng'],
|
||||
derivation:['reyingzi','qixi','rexuanfeng'],
|
||||
filter:function(event,player){
|
||||
if(player.equiping) return false;
|
||||
var suits=[];
|
||||
|
@ -732,7 +955,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
switch(suits.length){
|
||||
case 1:player.addAdditionalSkill(skill,['reyingzi']);break;
|
||||
case 2:player.addAdditionalSkill(skill,['reyingzi','qixi']);break;
|
||||
case 3:player.addAdditionalSkill(skill,['reyingzi','qixi','xuanfeng']);break;
|
||||
case 3:player.addAdditionalSkill(skill,['reyingzi','qixi','rexuanfeng']);break;
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
|
@ -1586,8 +1809,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
huaizi:{
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
return num+player.getDamagedHp();
|
||||
maxHandcardBase:function(player,num){
|
||||
return player.maxHp;
|
||||
},
|
||||
},
|
||||
//audio:2,
|
||||
|
@ -1881,7 +2104,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
shouye:{
|
||||
audio:2,
|
||||
group:'shouye_after',
|
||||
trigger:{target:"useCardToTargeted"},
|
||||
trigger:{target:"useCardToTarget"},
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&event.targets.length==1;
|
||||
},
|
||||
|
@ -1897,7 +2120,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.chooseToDuiben(trigger.player);
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
trigger.excluded.add(player);
|
||||
trigger.targets.remove(player);
|
||||
trigger.getParent().triggeredTargets2.remove(player);
|
||||
trigger.getParent().shouyeer=player;
|
||||
}
|
||||
},
|
||||
|
@ -3904,7 +4128,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
db_def2:'开城诱敌',
|
||||
|
||||
shouye:'守邺',
|
||||
shouye_info:'每回合限一次。当其他角色使用牌指定你为唯一目标时,你可以与其进行【对策】。若你赢,则此牌对你无效,且你于此牌结算完成后获得其对应的所有实体牌。',
|
||||
shouye_info:'每回合限一次。当其他角色使用牌指定你为唯一目标时,你可以与其进行【对策】。若你赢,则你取消此牌的目标,且你于此牌结算完成后获得其对应的所有实体牌。',
|
||||
liezhi:'烈直',
|
||||
liezhi_info:'准备阶段,你可以依次弃置至多两名角色区域内的各一张牌。若你受到过伤害,则〖烈直〗于你的下个回合无效。',
|
||||
|
||||
|
@ -3923,7 +4147,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
|
||||
hujinding:'胡金定',
|
||||
huaizi:'怀子',
|
||||
huaizi_info:'锁定技,你的手牌上限+X(X为你已损失的体力值)',
|
||||
huaizi_info:'锁定技,你的手牌上限为你的体力上限。',
|
||||
renshi:'仁释',
|
||||
renshi_info:'锁定技,当你受到【杀】的伤害时,若你已受伤,则你防止此伤害并获得此【杀】对应的所有实体牌,然后减1点体力上限。',
|
||||
wuyuan:'武缘',
|
||||
|
@ -3980,7 +4204,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhouxuan2:'周旋',
|
||||
zhouxuan_info:'结束阶段,你可以弃置一张牌并指定一名角色,然后选择一个基本牌的名称或非基本牌的类型。其使用或打出下一张牌时,若此牌的名称或类型和你选择的相同,则你观看牌堆顶的三张牌,然后将这些牌分配给任意角色。',
|
||||
fengji:'丰积',
|
||||
fengji_info:'锁定技,回合结束时,你记录你的手牌数。回合开始时,若你的手牌数不小于你记录的手牌数,则你摸两张牌且本回合手牌上限+X。(X为你已损失的体力值)',
|
||||
fengji_info:'锁定技,回合结束时,你记录你的手牌数。回合开始时,若你的手牌数不小于你记录的手牌数,则你摸两张牌且本回合手牌上限为体力上限。',
|
||||
re_guanqiujian:'手杀毌丘俭',
|
||||
rezhengrong:'征荣',
|
||||
rehongju:'鸿举',
|
||||
|
@ -3990,6 +4214,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
rehongju_info:'觉醒技,准备阶段,若你武将牌上「荣」的数量不小于3且有角色死亡,则你摸等同于「荣」数量的牌。然后可以用任意数量的手牌交换等量的「荣」。你减1点体力上限并获得技能〖清侧〗。',
|
||||
reqingce_info:'出牌阶段,你可以将一张「荣」置入弃牌堆,然后弃置场上的一张牌。',
|
||||
re_pangtong:"手杀庞统",
|
||||
dongcheng:'董承',
|
||||
chengzhao:'承诏',
|
||||
chengzhao_info:'一名角色的结束阶段,若你于本回合内获得了两张以上的牌,则你可以与一名其他角色拼点。若你赢,你视为对其使用一张无视防具的【杀】。',
|
||||
yangyi:'杨仪',
|
||||
duoduan:'度断',
|
||||
duoduan_info:'每回合限一次,当你成为【杀】的目标后,你可以重铸一张牌。若如此做,此【杀】的使用者选择一项:摸两张牌令此【杀】无效,或弃置一张牌并令你不能闪避此【杀】。',
|
||||
gongsun:'共损',
|
||||
gongsun_info:'出牌阶段开始时,你可以弃置两张牌并指定一名其他角色。你选择一个基本牌或普通锦囊牌的牌名。直到你的下回合开始或你死亡,你与其不能使用或打出或弃置此名称的牌。',
|
||||
gongsun_shadow:'共损',
|
||||
}
|
||||
};
|
||||
});
|
||||
|
|
|
@ -7,9 +7,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
old_shenhua:["yuji","zhangjiao","old_zhugezhan","old_guanqiujian","xiahouyuan","weiyan","xiaoqiao"],
|
||||
old_refresh:["old_zhangfei","old_huatuo"],
|
||||
old_yijiang1:["masu","xushu","fazheng","yujin","xin_yujin","old_xusheng","old_lingtong","ol_yujin"],
|
||||
old_yijiang2:["old_madai","old_zhonghui","old_wangyi","old_guanzhang","ol_liaohua"],
|
||||
old_yijiang3:["liru","old_zhuran","ol_zhuran","ol_manchong","ol_guohuai","old_fuhuanghou","old_caochong"],
|
||||
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan","ol_wuyi"],
|
||||
old_yijiang2:["old_madai","old_zhonghui","old_wangyi","old_guanzhang"],
|
||||
old_yijiang3:["liru","old_zhuran","ol_manchong","old_fuhuanghou","old_caochong"],
|
||||
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan"],
|
||||
old_yijiang5:["old_caoxiu","old_quancong","old_zhuzhi"],
|
||||
old_yijiang67:["ol_xinxianying","ol_zhangrang","ol_liuyu"],
|
||||
old_sp:["old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai","old_huangfusong","ol_maliang","panfeng"],
|
||||
|
@ -63,12 +63,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ol_xinxianying:['female','wei',3,['caishi','zhongjian']],
|
||||
ol_zhangrang:['male','qun',3,['taoluan']],
|
||||
ol_yujin:['male','wei',4,['rezhenjun']],
|
||||
ol_zhuran:['male','wu',4,['danshou']],
|
||||
ol_liaohua:['male','shu',4,['dangxian','fuli']],
|
||||
ol_guansuo:['male','shu',4,['zhengnan','xiefang']],
|
||||
ol_manchong:['male','wei',3,['yuce','junxing']],
|
||||
ol_guohuai:['male','wei',4,['jingce']],
|
||||
ol_wuyi:['male','shu',4,['benxi']],
|
||||
ol_liuyu:['male','qun',2,['zongzuo','zhige']],
|
||||
old_guanqiujian:["male","wei",4,["drlt_zhenrong","drlt_hongju"],[]],
|
||||
},
|
||||
|
@ -876,8 +872,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ol_guansuo:'OL关索',
|
||||
ol_manchong:'OL满宠',
|
||||
ol_guohuai:'OL郭淮',
|
||||
ol_wuyi:'OL吴懿',
|
||||
ol_liuyu:'OL刘虞',
|
||||
old_fuhuanghou:'旧伏皇后',
|
||||
old_caochong:'旧曹冲',
|
||||
old_guanqiujian:'旧毌丘俭',
|
||||
|
|
|
@ -9,11 +9,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
refresh_huo:["ol_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","ol_pangtong","ol_yuanshao","re_pangde"],
|
||||
refresh_lin:['re_zhurong','re_menghuo','re_dongzhuo','re_sunjian','re_caopi','re_xuhuang'],
|
||||
refresh_shan:['re_dengai','re_jiangwei','re_caiwenji','ol_liushan','re_zhangzhang','re_zuoci','re_sunce'],
|
||||
refresh_yijiang:['re_xusheng','re_wuguotai','re_gaoshun','re_zhangyi','re_caozhi'],
|
||||
refresh_yijiang:['re_xusheng','re_wuguotai','re_gaoshun','re_zhangyi','re_caozhi','re_zhuran','re_wuyi','re_liaohua','re_guohuai','re_zhuran','re_chengpu','re_caozhang','re_quancong','yujin_yujin','re_lingtong'],
|
||||
},
|
||||
},
|
||||
connect:true,
|
||||
character:{
|
||||
re_lingtong:['male','wu',4,['rexuanfeng']],
|
||||
yujin_yujin:['male','wei',4,['rejieyue']],
|
||||
re_caozhang:['male','wei',4,['new_jiangchi']],
|
||||
re_chengpu:['male','wu',4,['lihuo','rechunlao']],
|
||||
re_quancong:['male','wu',4,['xinyaoming']],
|
||||
re_liaohua:['male','shu',4,['xindangxian','xinfuli']],
|
||||
re_guohuai:['male','wei',4,['xinjingce']],
|
||||
re_wuyi:['male','shu',4,['xinbenxi']],
|
||||
re_zhuran:['male','wu',4,['xindanshou']],
|
||||
re_caozhi:['male','wei',3,['reluoying','rejiushi','chengzhang']],
|
||||
ol_pangtong:['male','shu',3,['xinlianhuan','olniepan'],[]],
|
||||
re_zhangyi:['male','shu',4,['rewurong','shizhi']],
|
||||
|
@ -94,6 +103,376 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sunben:['zhouyu','taishici','daqiao'],
|
||||
},
|
||||
skill:{
|
||||
rexuanfeng:{
|
||||
audio:'xuanfeng',
|
||||
audioname:['boss_lvbu3','re_heqi','re_lingtong'],
|
||||
trigger:{player:['loseAfter','phaseDiscardEnd']},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
if(!game.hasPlayer(function(current){
|
||||
return current!=player&¤t.countCards('he')>0;
|
||||
})) return false;
|
||||
if(event.name=='phaseDiscard'){
|
||||
var cards=[];
|
||||
player.getHistory('lose',function(evt){
|
||||
if(evt&&evt.getParent('phaseDiscard')==event&&evt.hs) cards.addArray(evt.hs);
|
||||
});
|
||||
return cards.length>1;
|
||||
}
|
||||
else return event.es&&event.es.length>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=['弃置至多两名其他角色的合计两张牌'];
|
||||
if(lib.skill.rexuanfeng.canMoveCard(player)) list.push('将一名其他角色装备区内的一张牌移动到另一名角色的装备区内');
|
||||
player.chooseControl('cancel2').set('choiceList',list).set('prompt',get.prompt('rexuanfeng')).set('ai',function(){
|
||||
if(lib.skill.rexuanfeng.canMoveCard(player,true)) return 1;
|
||||
return 0;
|
||||
});
|
||||
'step 1'
|
||||
if(result.control!='cancel2'){
|
||||
player.logSkill('rexuanfeng');
|
||||
if(result.index==1) event.goto(5);
|
||||
else event.count=2;
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
player.chooseTarget('弃置一名其他角色的一张牌',function(card,player,target){
|
||||
if(player==target) return false;
|
||||
return target.countDiscardableCards(player,'he');
|
||||
}).set('ai',function(target){
|
||||
return -get.attitude(_status.event.player,target);
|
||||
});
|
||||
'step 3'
|
||||
if(result.bool){
|
||||
player.line(result.targets[0],'green');
|
||||
player.discardPlayerCard(result.targets[0],'he',true);
|
||||
event.count--;
|
||||
}
|
||||
else event.finish();
|
||||
'step 4'
|
||||
if(event.count) event.goto(2);
|
||||
else event.finish();
|
||||
'step 5'
|
||||
var next=player.chooseTarget(2,function(card,player,target){
|
||||
if(player==target) return false;
|
||||
if(ui.selected.targets.length){
|
||||
var from=ui.selected.targets[0];
|
||||
if(target.isMin()) return false;
|
||||
var es=from.getCards('e');
|
||||
for(var i=0;i<es.length;i++){
|
||||
if(target.isEmpty(get.subtype(es[i]))) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
else{
|
||||
return target.countCards('e')>0;
|
||||
}
|
||||
});
|
||||
next.set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
var att=get.attitude(player,target);
|
||||
var sgnatt=get.sgn(att);
|
||||
if(ui.selected.targets.length==0){
|
||||
if(att>0){
|
||||
if(target.countCards('e',function(card){
|
||||
return get.value(card,target)<0&&game.hasPlayer(function(current){
|
||||
return current!=player&¤t!=target&&get.attitude(player,current)<0&¤t.isEmpty(get.subtype(card))
|
||||
});
|
||||
})>0) return 9;
|
||||
}
|
||||
else if(att<0){
|
||||
if(game.hasPlayer(function(current){
|
||||
if(current!=target&¤t!=player&&get.attitude(player,current)>0){
|
||||
var es=target.getCards('e');
|
||||
for(var i=0;i<es.length;i++){
|
||||
if(get.value(es[i],target)>0&¤t.isEmpty(get.subtype(es[i]))&&get.value(es[i],current)>0) return true;
|
||||
}
|
||||
}
|
||||
})){
|
||||
return -att;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
var es=ui.selected.targets[0].getCards('e');
|
||||
var i;
|
||||
var att2=get.sgn(get.attitude(player,ui.selected.targets[0]));
|
||||
for(i=0;i<es.length;i++){
|
||||
if(sgnatt!=0&&att2!=0&&
|
||||
get.sgn(get.value(es[i],ui.selected.targets[0]))==-att2&&
|
||||
get.sgn(get.value(es[i],target))==sgnatt&&
|
||||
target.isEmpty(get.subtype(es[i]))){
|
||||
return Math.abs(att);
|
||||
}
|
||||
}
|
||||
if(i==es.length){
|
||||
return 0;
|
||||
}
|
||||
return -att*get.attitude(player,ui.selected.targets[0]);
|
||||
});
|
||||
next.set('multitarget',true);
|
||||
next.set('targetprompt',['被移走','移动目标']);
|
||||
next.set('prompt',event.prompt||'移动场上的一张装备牌');
|
||||
next.set('forced',true);
|
||||
'step 6'
|
||||
if(result.bool){
|
||||
player.line2(result.targets,'green');
|
||||
event.targets=result.targets;
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 7'
|
||||
game.delay();
|
||||
'step 8'
|
||||
if(targets.length==2){
|
||||
player.choosePlayerCard('e',true,function(button){
|
||||
var player=_status.event.player;
|
||||
var targets0=_status.event.targets0;
|
||||
var targets1=_status.event.targets1;
|
||||
if(get.attitude(player,targets0)>get.attitude(player,targets1)){
|
||||
if(get.value(button.link,targets0)<0) return 10;
|
||||
return 0;
|
||||
}
|
||||
else{
|
||||
return get.equipValue(button.link);
|
||||
}
|
||||
},targets[0]).set('targets0',targets[0]).set('targets1',targets[1]).set('filterButton',function(button){
|
||||
var targets1=_status.event.targets1;
|
||||
return targets1.isEmpty(get.subtype(button.link));
|
||||
});
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 9'
|
||||
if(result.bool&&result.links.length){
|
||||
var link=result.links[0];
|
||||
event.targets[1].equip(link);
|
||||
event.targets[0].$give(link,event.targets[1])
|
||||
game.delay();
|
||||
event.result={bool:true};
|
||||
}
|
||||
},
|
||||
canMoveCard:function(player,withatt){
|
||||
return game.hasPlayer(function(current){
|
||||
if(player==current) return false;
|
||||
var att=get.sgn(get.attitude(player,current));
|
||||
if(!withatt||att!=0){
|
||||
var es=current.getCards('e');
|
||||
for(var i=0;i<es.length;i++){
|
||||
if(game.hasPlayer(function(current2){
|
||||
if(player==current2) return false;
|
||||
if(withatt){
|
||||
if(get.sgn(get.value(es[i],current))!=-att) return false;
|
||||
var att2=get.sgn(get.attitude(player,current2));
|
||||
if(att2!=get.sgn(get.value(es[i],current2))) return false;
|
||||
}
|
||||
return current!=current2&&!current2.isMin()&¤t2.isEmpty(get.subtype(es[i]));
|
||||
})){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
ai:{
|
||||
effect:{
|
||||
target:function(card,player,target,current){
|
||||
if(get.type(card)=='equip'&&!get.cardtag(card,'gifts')) return [1,3];
|
||||
}
|
||||
},
|
||||
reverseEquip:true,
|
||||
noe:true
|
||||
}
|
||||
},
|
||||
rejieyue:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player.countCards('he')>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseCardTarget({
|
||||
prompt:get.prompt2('rejieyue'),
|
||||
filterCard:true,
|
||||
position:'he',
|
||||
filterTarget:lib.filter.notMe,
|
||||
ai1:function(card){
|
||||
var player=_status.event.player;
|
||||
if(get.name(card)=='du') return 20;
|
||||
if(get.position(card)=='e'&&get.value(card)<=0) return 14;
|
||||
if(get.position(card)=='h'&&game.hasPlayer(function(current){
|
||||
return current!=player&&get.attitude(player,current)>0&¤t.getUseValue(card)>player.getUseValue(card)&¤t.getUseValue(card)>player.getUseValue(card);
|
||||
})) return 12;
|
||||
if(game.hasPlayer(function(current){
|
||||
return current!=player&&get.attitude(player,current)>0;
|
||||
})){
|
||||
if(card.name=='wuxie') return 11;
|
||||
if(card.name=='shan'&&player.countCards('h','shan')>1) return 9
|
||||
}
|
||||
return 6/Math.max(1,get.value(card));
|
||||
},
|
||||
ai2:function(target){
|
||||
var player=_status.event.player;
|
||||
var card=ui.selected.cards[0];
|
||||
var att=get.attitude(player,target);
|
||||
if(card.name=='du') return -6*att;
|
||||
if(att>0){
|
||||
if(get.position(card)=='h'&&target.getUseValue(card)>player.getUseValue(card)) return 4*att;
|
||||
if(get.value(card,target)>get.value(card,player)) return 2*att;
|
||||
return 1.2*att;
|
||||
}
|
||||
return -att*Math.min(4,target.countCards('he'))/4;
|
||||
},
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
event.target=target;
|
||||
player.logSkill('rejieyue',target);
|
||||
target.gain(result.cards,player,'giveAuto');
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
var num=0;
|
||||
if(target.countCards('h')) num++;
|
||||
if(target.countCards('e')) num++;
|
||||
if(num>0){
|
||||
var next=target.chooseCard('he',num,'选择保留每个区域的各一张牌,然后弃置其余的牌。或点取消,令'+get.translation(player)+'摸三张牌',function(card){
|
||||
for(var i=0;i<ui.selected.cards.length;i++){
|
||||
if(get.position(ui.selected.cards[i])==get.position(card)) return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
next.set('complexCard',true);
|
||||
next.set('goon',get.attitude(target,player)>=0);
|
||||
next.set('maxNum',num);
|
||||
next.set('ai',function(card){
|
||||
if(_status.event.goon) return -1;
|
||||
var num=_status.event.maxNum;
|
||||
if(ui.selected.cards.length>=num-1){
|
||||
var val=get.value(player.getCards('he',function(cardx){
|
||||
return cardx!=card&&!ui.selected.cards.contains(cardx);
|
||||
}));
|
||||
if(val>=14) return 0;
|
||||
}
|
||||
return get.value(card);
|
||||
});
|
||||
}
|
||||
else event._result={bool:false};
|
||||
'step 3'
|
||||
if(!result.bool) player.draw(3);
|
||||
else {
|
||||
var cards=target.getCards('he');
|
||||
cards.removeArray(result.cards);
|
||||
if(cards.length) target.discard(cards);
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
threaten:1.3,
|
||||
expose:0.2,
|
||||
},
|
||||
},
|
||||
rechunlao:{
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
direct:true,
|
||||
audio:2,
|
||||
filter:function(event,player){
|
||||
return player.countCards('h')>0&&(_status.connectMode||player.countCards('h','sha')>0)&&!player.storage.rechunlao.length;
|
||||
},
|
||||
init:function(player){
|
||||
if(!player.storage.rechunlao) player.storage.rechunlao=[];
|
||||
},
|
||||
intro:{
|
||||
content:'cards',
|
||||
onunmark:function(storage,player){
|
||||
if(storage&&storage.length){
|
||||
player.$throw(storage,1000);
|
||||
game.cardsDiscard(storage);
|
||||
game.log(storage,'被置入了弃牌堆');
|
||||
storage.length=0;
|
||||
}
|
||||
},
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseCard([1,Math.max(1,player.countCards('h','sha'))],get.prompt('rechunlao'),{name:'sha'}).set('ai',function(){
|
||||
return 1;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('rechunlao');
|
||||
player.storage.rechunlao=player.storage.rechunlao.concat(result.cards);
|
||||
player.syncStorage('rechunlao');
|
||||
player.markSkill('rechunlao');
|
||||
player.lose(result.cards,ui.special,'toStorage');
|
||||
player.$give(result.cards,player,false);
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
effect:{
|
||||
player:function(card,player,target){
|
||||
if(_status.currentPhase!=player) return;
|
||||
if(card.name=='sha'&&!player.needsToDiscard()&&
|
||||
!player.storage.rechunlao.length&&target.hp>1){
|
||||
return 'zeroplayertarget';
|
||||
}
|
||||
}
|
||||
},
|
||||
threaten:1.4
|
||||
},
|
||||
group:'rechunlao2'
|
||||
},
|
||||
rechunlao2:{
|
||||
enable:'chooseToUse',
|
||||
filter:function(event,player){
|
||||
return event.type=='dying'&&event.dying&&event.dying.hp<=0&&player.storage.rechunlao.length>0;
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return target==_status.event.dying;
|
||||
},
|
||||
direct:true,
|
||||
delay:false,
|
||||
selectTarget:-1,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseCardButton(get.translation('rechunlao'),player.storage.rechunlao,true);
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('rechunlao');
|
||||
player.$throw(result.links);
|
||||
player.storage.rechunlao.remove(result.links[0]);
|
||||
game.cardsDiscard(result.links[0]);
|
||||
player.syncStorage('rechunlao')
|
||||
event.type='dying';
|
||||
target.useCard({name:'jiu',isCard:true},target);
|
||||
if(!player.storage.rechunlao.length){
|
||||
player.unmarkSkill('rechunlao');
|
||||
}
|
||||
else{
|
||||
player.markSkill('rechunlao');
|
||||
}
|
||||
var nature=get.nature(result.links[0]);
|
||||
if(nature=='fire') player.recover();
|
||||
if(nature=='thunder') player.draw(2);
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:6,
|
||||
skillTagFilter:function(player){
|
||||
return player.storage.rechunlao.length>0;
|
||||
},
|
||||
save:true,
|
||||
result:{
|
||||
target:3
|
||||
},
|
||||
threaten:1.6
|
||||
},
|
||||
},
|
||||
reluoying:{
|
||||
audio:2,
|
||||
group:['reluoying_discard','reluoying_judge'],
|
||||
|
@ -124,7 +503,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
if(cards.length){
|
||||
player.chooseButton(['落英:选择要获得的牌',cards],[1,cards.length]).ai=get.buttonValue;
|
||||
player.chooseButton(['落英:选择要获得的牌',cards],[1,cards.length]).set('ai',function(button){
|
||||
return get.value(button.link,player,'raw');
|
||||
});
|
||||
}
|
||||
"step 2"
|
||||
if(result.bool){
|
||||
|
@ -149,7 +530,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseButton(['落英:选择要获得的牌',trigger.cards],[1,trigger.cards.length]).ai=get.buttonValue;
|
||||
player.chooseButton(['落英:选择要获得的牌',trigger.cards],[1,trigger.cards.length]).set('ai',function(button){
|
||||
return get.value(button.link,player,'raw');
|
||||
});
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill(event.name);
|
||||
|
@ -340,6 +723,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
rehongyan:{
|
||||
audio:2,
|
||||
mod:{
|
||||
suit:function(card,suit){
|
||||
if(suit=='spade') return 'heart';
|
||||
|
@ -1084,6 +1468,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
olfangquan:{
|
||||
audio:2,
|
||||
audioname:['shen_caopi'],
|
||||
trigger:{player:'phaseUseBefore'},
|
||||
filter:function(event,player){
|
||||
return player.countCards('h')>0&&!player.hasSkill('olfangquan3');
|
||||
|
@ -1158,6 +1543,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
olluanji:{
|
||||
inherit:'luanji',
|
||||
audioname:['shen_caopi'],
|
||||
audio:2,
|
||||
line:false,
|
||||
group:'olluanji_remove',
|
||||
|
@ -2903,7 +3289,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
}
|
||||
return num==0||num<=player.countCards('h')-player.maxHandcard;
|
||||
return num==0||num<=player.countCards('h')-player.getHandcardLimit();
|
||||
},
|
||||
content:function (){
|
||||
var list=[];
|
||||
|
@ -3529,6 +3915,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
rezhiheng:{
|
||||
audio:2,
|
||||
audioname:['shen_caopi'],
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
position:'he',
|
||||
|
@ -3666,7 +4053,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
rerende:{
|
||||
audio:2,
|
||||
audioname:['gz_jun_liubei'],
|
||||
audioname:['gz_jun_liubei','shen_caopi'],
|
||||
enable:'phaseUse',
|
||||
filterCard:true,
|
||||
selectCard:[1,Infinity],
|
||||
|
@ -4182,8 +4569,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
threaten:1.5
|
||||
},
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
if(player.hp<player.maxHp) return num+player.getDamagedHp();
|
||||
maxHandcardBase:function(player,num){
|
||||
return player.maxHp;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -5221,8 +5608,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
refangquan2:{
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
return num+player.getDamagedHp();
|
||||
maxHandcardBase:function(player,num){
|
||||
return player.maxHp;
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -5893,7 +6280,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
retishen_info:'限定技,准备阶段开始时,你可以将体力回复至等同于你上回合结束时的体力值,然后你每以此法回复1点体力,便摸一张牌。',
|
||||
reqianxun_info:'每当一张延时类锦囊牌或其他角色使用的普通锦囊牌生效时,若你是此牌的唯一目标,你可以将所有手牌置于你的武将牌上,若如此做,此回合结束时,你获得你武将牌上的所有牌。',
|
||||
relianying_info:'当你失去最后的手牌时,你可以令至多X名角色各摸一张牌(X为你此次失去的手牌数)。',
|
||||
reyingzi_info:'锁定技,摸牌阶段摸牌时,你额外摸一张牌;你的手牌上限不会因体力值的减少而减少。',
|
||||
reyingzi_info:'锁定技,摸牌阶段摸牌时,你额外摸一张牌;你的手牌上限为你的体力上限。',
|
||||
refanjian_info:'出牌阶段限一次,你可以展示一张手牌并将此牌交给一名其他角色。然后该角色选择一项:展示其手牌并弃置所有与此牌花色相同的牌,或失去一点体力。',
|
||||
qingjian_info:'每当你于摸牌阶段外获得牌时,你可以将其中任意牌以任意顺序交给其他角色,每回合最多发动四次',
|
||||
qinxue_info:'觉醒技,准备阶段开始时,若你的手牌数比体力值多3(人数不少于7时改为2)或更多,你须减一点体力上限并获得技能【攻心】',
|
||||
|
@ -5955,7 +6342,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
rehunzi_info:'觉醒技,准备阶段,若你的体力值不大于2,你减1点体力上限,并获得技能〖英姿〗和〖英魂〗。',
|
||||
rezhijian_info:'出牌阶段,你可以将手牌中的一张装备牌置于一名其他角色装备区里(不得替换原装备),然后摸一张牌。当你使用装备牌时,你可以摸一张牌。',
|
||||
refangquan:'放权',
|
||||
refangquan_info:'你可跳过你的出牌阶段,若如此做,你本回合的手牌上限+X(X为你已损失的体力值),且回合结束时,你可以弃置一张手牌并令一名其他角色进行一个额外的回合。',
|
||||
refangquan_info:'你可跳过你的出牌阶段,若如此做,你本回合的手牌上限为你的体力上限,且回合结束时,你可以弃置一张手牌并令一名其他角色进行一个额外的回合。',
|
||||
re_wuguotai:'界吴国太',
|
||||
re_gaoshun:'界高顺',
|
||||
re_xusheng:'界徐盛',
|
||||
|
@ -6001,6 +6388,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
rejiushi_mark_info:'当你需要使用【酒】时,若你的武将牌正面向上,你可以翻面,视为使用一张【酒】。当你受到伤害后,若你的武将牌背面向上,你可以翻面。当你翻面时,你获得牌堆中的一张随机锦囊。',
|
||||
chengzhang:'成章',
|
||||
chengzhang_info:'觉醒技,准备阶段开始时,若你造成伤害与受到伤害值之和累计7点或以上,则你回复1点体力并摸1张牌,然后改写〖酒诗〗。',
|
||||
re_wuyi:'界吴懿',
|
||||
re_zhuran:'界朱然',
|
||||
re_quancong:'界全琮',
|
||||
re_liaohua:'界廖化',
|
||||
re_guohuai:'界郭淮',
|
||||
re_chengpu:'界程普',
|
||||
rechunlao:'醇醪',
|
||||
rechunlao2:'醇醪',
|
||||
rechunlao_info:'结束阶段开始时,若你没有“醇”,你可以将至少一张【杀】置于你的武将牌上,称为“醇”。当一名角色处于濒死状态时,你可以移去一张“醇”,视为该角色使用一张【酒】,然后若此“醇”的属性为:火,你回复1点体力、雷,你摸两张牌。',
|
||||
re_caozhang:'界曹彰',
|
||||
yujin_yujin:'界于禁',
|
||||
rejieyue:'节钺',
|
||||
rejieyue_info:'结束阶段开始时,你可以将一张牌交给一名其他角色。然后其选择一项:令你摸三张牌:或其保留一张手牌和装备区的牌,然后弃置其余的牌。',
|
||||
re_lingtong:'界凌统',
|
||||
rexuanfeng:'旋风',
|
||||
rexuanfeng_info:'当你失去装备区内的牌时,或于弃牌阶段弃置了两张或更多的手牌后,你可以依次弃置一至两名其他角色的共计两张牌,或将一名其他角色装备区内的一张牌移动到另一名其他角色的装备区内。',
|
||||
|
||||
refresh_standard:'界限突破·标',
|
||||
refresh_feng:'界限突破·风',
|
||||
|
|
|
@ -165,7 +165,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var target=result.targets[0];
|
||||
event.target=result.targets[0];
|
||||
player.logSkill('zhengrong',target);
|
||||
player.choosePlayerCard(target,'he').ai=get.buttonValue;
|
||||
player.choosePlayerCard(target,'he',true).ai=get.buttonValue;
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
|
@ -5878,7 +5878,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
tianxiang:{
|
||||
audio:2,
|
||||
audioname:['daxiaoqiao','re_xiaoqiao'],
|
||||
audioname:['daxiaoqiao','re_xiaoqiao','ol_xiaoqiao'],
|
||||
trigger:{player:'damageBegin3'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
|
@ -5967,7 +5967,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
retianxiang:{
|
||||
audio:'tianxiang',
|
||||
audioname:['daxiaoqiao','re_xiaoqiao'],
|
||||
audioname:['daxiaoqiao','re_xiaoqiao','ol_xiaoqiao'],
|
||||
trigger:{player:'damageBegin4'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
|
@ -6398,8 +6398,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
if(get.mode()!='guozhan'&&player.storage.buqu&&player.storage.buqu.length) return num-player.hp+player.storage.buqu.length;
|
||||
maxHandcardBase:function(player,num){
|
||||
if(get.mode()!='guozhan'&&player.storage.buqu&&player.storage.buqu.length) return player.storage.buqu.length;
|
||||
},
|
||||
},
|
||||
ai:{
|
||||
|
|
116
character/sp.js
|
@ -5,7 +5,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
connect:true,
|
||||
characterSort:{
|
||||
sp:{
|
||||
sp_default:["caoying","simahui","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","liuxie","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","fuwan","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","lingju","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","wenyang","xujing","yuantanyuanshang","wangshuang","sunshao"],
|
||||
sp_default:["caoying","simahui","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","liuxie","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","fuwan","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","lingju","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","wenyang","xujing","yuantanyuanshang","wangshuang","sunshao","liuzan"],
|
||||
sp_guansuo:['guansuo','baosanniang','huaman'],
|
||||
sp_whlw:["xurong","lijue","zhangji","fanchou","guosi"],
|
||||
sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"],
|
||||
|
@ -24,6 +24,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
character:{
|
||||
liuzan:['male','wu',4,['refenyin','liji']],
|
||||
re_panfeng:['male','qun',4,['xinkuangfu']],
|
||||
gaolan:['male','qun',4,['xiying']],
|
||||
sp_shenpei:['male','qun',3,['gangzhi','beizhan']],
|
||||
|
@ -512,6 +513,101 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
skill:{
|
||||
//新岩泽(划掉)留赞
|
||||
refenyin:{
|
||||
audio:'fenyin',
|
||||
trigger:{global:['loseAfter','cardsDiscardAfter']},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
if(player!=_status.currentPhase) return false;
|
||||
if(event.name=='lose'&&event.position!=ui.discardPile) return false;
|
||||
var list=[];
|
||||
var num=event.cards.length;
|
||||
for(var i=0;i<event.cards.length;i++){
|
||||
var card=event.cards[i];
|
||||
list.add(get.suit(card,(event.cards2&&event.cards2.contains(card))?event.player:false));
|
||||
}
|
||||
game.getGlobalHistory('cardMove',function(evt){
|
||||
if(evt==event||(evt.name!='lose'&&evt.name!='cardsDiscard')) return false;
|
||||
if(evt.name=='lose'&&evt.position!=ui.discardPile) return false;
|
||||
num+=evt.cards.length;
|
||||
for(var i=0;i<evt.cards.length;i++){
|
||||
var card=evt.cards[i];
|
||||
list.remove(get.suit(card,(evt.cards2&&evt.cards2.contains(card))?evt.player:false));
|
||||
}
|
||||
},event);
|
||||
player.storage.refenyin_mark2=num;
|
||||
return list.length>0;
|
||||
},
|
||||
content:function(){
|
||||
var list=[];
|
||||
var list2=[];
|
||||
for(var i=0;i<trigger.cards.length;i++){
|
||||
var card=trigger.cards[i];
|
||||
var suit=get.suit(card,(trigger.cards2&&trigger.cards2.contains(card))?trigger.player:false);
|
||||
list.add(suit);
|
||||
list2.add(suit);
|
||||
}
|
||||
game.getGlobalHistory('cardMove',function(evt){
|
||||
if(evt==trigger||(evt.name!='lose'&&evt.name!='cardsDiscard')) return false;
|
||||
if(evt.name=='lose'&&evt.position!=ui.discardPile) return false;
|
||||
for(var i=0;i<evt.cards.length;i++){
|
||||
var card=evt.cards[i];
|
||||
var suit=get.suit(card,(evt.cards2&&evt.cards2.contains(card))?evt.player:false);
|
||||
list.remove(suit);
|
||||
list2.add(suit);
|
||||
}
|
||||
},trigger);
|
||||
list2.sort();
|
||||
player.draw(list.length);
|
||||
player.storage.refenyin_mark=list2;
|
||||
player.addTempSkill('refenyin_mark');
|
||||
player.markSkill('refenyin_mark');
|
||||
},
|
||||
subSkill:{
|
||||
mark:{
|
||||
onremove:function(player){
|
||||
delete player.storage.refenyin_mark;
|
||||
delete player.storage.refenyin_mark2;
|
||||
},
|
||||
intro:{
|
||||
content:function(s,p){
|
||||
var str='本回合已经进入过弃牌堆的卡牌的花色:';
|
||||
for(var i=0;i<s.length;i++){
|
||||
str+=get.translation(s[i]);
|
||||
}
|
||||
str+='<br>本回合进入过弃牌堆的牌数:'
|
||||
str+=p.storage.refenyin_mark2;
|
||||
return str;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
liji:{
|
||||
enable:'phaseUse',
|
||||
filter:function(event,player){
|
||||
return (player.getStat().skill.liji||0)<(event.liji_num||0);
|
||||
},
|
||||
onChooseToUse:function(event){
|
||||
var num=0;
|
||||
game.getGlobalHistory('cardMove',function(evt){
|
||||
if(evt.name=='cardsDiscard'||(evt.name=='lose'&&evt.position==ui.discardPile)) num+=evt.cards.length;
|
||||
});
|
||||
event.set('liji_num',Math.floor(num/(game.players.length>4?8:4)));
|
||||
},
|
||||
filterCard:true,
|
||||
position:'he',
|
||||
check:function(card){
|
||||
var val=get.value(card);
|
||||
if(!_status.event.player.getStorage('fenyin_mark').contains(get.suit(card))) return 12-val;
|
||||
return 8-val;
|
||||
},
|
||||
filterTarget:lib.filter.notMe,
|
||||
content:function(){
|
||||
target.damage('nocard');
|
||||
},
|
||||
},
|
||||
//新潘凤
|
||||
xinkuangfu:{
|
||||
enable:'phaseUse',
|
||||
|
@ -4393,11 +4489,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return event.card&&event.card.name=='sha'&&player.isDamaged();
|
||||
return event.card&&event.card.name=='sha';//&&player.isDamaged();
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var num=player.getDamagedHp();
|
||||
var num=Math.max(1,player.getDamagedHp());
|
||||
player.chooseTarget('是否发动【誓仇】,令至多'+num+'名其他角色也成为此【杀】的目标?',[1,num],function(card,player,target){
|
||||
return target!=player&&!trigger.targets.contains(target)&&player.canUse({name:'sha'},target);
|
||||
}).ai=function(target){
|
||||
|
@ -4863,7 +4959,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return event.card.name==player.storage.spwenji_respond;
|
||||
},
|
||||
content:function(){
|
||||
trigger.directHit.addArray(game.players);
|
||||
trigger.directHit.addArray(game.filterPlayer(function(current){
|
||||
return current!=player;
|
||||
}));
|
||||
},
|
||||
}
|
||||
}
|
||||
|
@ -7893,7 +7991,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
else{
|
||||
num=1;
|
||||
}
|
||||
if(player.getStat().skill.dingpan>=num) return false;
|
||||
if((player.getStat().skill.dingpan||0)>=num) return false;
|
||||
return true;
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
|
@ -13175,6 +13273,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
selectTarget:function(){
|
||||
return [1,ui.selected.cards.length];
|
||||
},
|
||||
complexSelect:true,
|
||||
check:function(card){
|
||||
if(get.color(card)=='black') return -1;
|
||||
return 9-get.value(card);
|
||||
|
@ -17288,7 +17387,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"new_luoyan_liuli":"流离",
|
||||
"new_luoyan_liuli_info":"",
|
||||
ol_shichou:"誓仇",
|
||||
ol_shichou_info:"当你使用【杀】时,你可以令至多X名角色也成为此【杀】的目标。(X为你已损失的体力值)",
|
||||
ol_shichou_info:"当你使用【杀】时,你可以令至多X名角色也成为此【杀】的目标。(X为你已损失的体力值且至少为1)",
|
||||
"zhenwei_three":"镇卫",
|
||||
"zhenwei_three_info":"锁定技,敌方角色至己方其他角色的距离+1。",
|
||||
"huanshi_three":"缓释",
|
||||
|
@ -17870,6 +17969,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_panfeng:'潘凤',
|
||||
xinkuangfu:'狂斧',
|
||||
xinkuangfu_info:'出牌阶段限一次,你可选择:1,弃置装备区里的一张牌,你使用无对应实体牌的普【杀】。若此【杀】造成伤害,你摸两张牌。2,弃置一名其他角色装备区里的一张牌,你使用无对应实体牌的普【杀】。若此【杀】未造成伤害,你弃置两张牌。',
|
||||
old_liuzan:'手杀留赞',
|
||||
refenyin:'奋音',
|
||||
refenyin_info:'锁定技,你的回合内,当一张牌进入弃牌堆后,若本回合内没有过与此牌花色相同的卡牌进入过弃牌堆,则你摸一张牌。',
|
||||
liji:'力激',
|
||||
liji_info:'出牌阶段限X次,你可以弃置一张牌并对一名其他角色造成1点伤害。(X为本回合内进入过弃牌堆的卡牌数除以8,若场上人数小于5则改为除以4,向下取整)',
|
||||
|
||||
sp_default:"常规",
|
||||
sp_whlw:"文和乱武",
|
||||
|
|
|
@ -7,7 +7,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
standard:{
|
||||
standard_2008:["caocao","simayi","xiahoudun","zhangliao","xuzhu","guojia","zhenji","liubei","guanyu","zhangfei","zhugeliang","zhaoyun","machao","huangyueying","sunquan","ganning","lvmeng","huanggai","zhouyu","daqiao","luxun","sunshangxiang","huatuo","lvbu","diaochan",],
|
||||
standard_2013:["huaxiong","re_yuanshu"],
|
||||
standard_2019:["gongsunzan","caozhang","xf_yiji"],
|
||||
standard_2019:["gongsunzan","xf_yiji"],
|
||||
},
|
||||
},
|
||||
character:{
|
||||
|
@ -39,7 +39,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
huaxiong:['male','qun',6,['yaowu']],
|
||||
gongsunzan:['male','qun',4,['yicong']],
|
||||
|
||||
caozhang:['male','wei',4,['new_jiangchi']],
|
||||
xf_yiji:["male","shu",3,["xinfu_jijie","xinfu_jiyuan"],[]],
|
||||
re_yuanshu:['male','qun',4,['wangzun','tongji']],
|
||||
},
|
||||
|
@ -2618,7 +2617,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xinbiyue:'闭月',
|
||||
pileTop:'牌堆顶',
|
||||
pileBottom:'牌堆底',
|
||||
ganglie_info:'当你受到伤害后,你可以进行一次判定。若结果不为红桃,则伤害来源须弃置两张手牌,否则受到来自你的一点伤害。',
|
||||
ganglie_info:'当你受到伤害后,你可以进行判定。若结果不为红桃,则伤害来源须弃置两张手牌,否则受到来自你的一点伤害。',
|
||||
tuxi_info:'摸牌阶段,你可以改为获得至多两名其他角色的各一张手牌。',
|
||||
luoyi_info:'摸牌阶段,你可以少摸一张牌。若如此做,当你本回合内使用【杀】或【决斗】造成伤害时,此伤害+1。',
|
||||
tiandu_info:'当你的判定牌生效后,你可以获得之。',
|
||||
|
@ -2640,9 +2639,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
longdan_info:'你可以将【杀】当做【闪】,或将【闪】当做【杀】使用或打出。',
|
||||
mashu_info:'锁定技,你计算与其他角色的距离时-1。',
|
||||
mashu2_info:'锁定技,你计算与其他角色的距离时-1。',
|
||||
feiying_info:'锁定技,其他角色计算与你的距离时+1',
|
||||
tieji_info:'当你使用【杀】指定目标时,你可以进行判定。若结果为红色,则此【杀】不可被闪避。',
|
||||
jizhi_info:'当你使用一张非转化的普通锦囊牌时,你可以摸一张牌。',
|
||||
feiying_info:'锁定技,其他角色计算与你的距离时+1。',
|
||||
tieji_info:'当你使用【杀】指定目标后,你可以进行判定。若结果为红色,则此【杀】不可被闪避。',
|
||||
jizhi_info:'当你使用非转化的普通锦囊牌时,你可以摸一张牌。',
|
||||
xinjizhi:'集智',
|
||||
xinjizhi_info:'当你使用非转化的普通锦囊牌时,你可以摸一张牌。',
|
||||
xinjizhi_info_alter:'每当你使用一张非转化的锦囊牌,可以摸一张牌,如果摸到的是基本牌,你可以弃置这张牌,然后本回合手牌上限+1',
|
||||
|
@ -2654,7 +2653,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xinzhiheng:'制衡',
|
||||
xinzhiheng_info:'出牌阶段限1次,你可以弃置任意张牌并摸等量的牌',
|
||||
xinzhiheng_info_alter:'出牌阶段限1次,你可以弃置任意张牌并摸等量的牌,如果在发动制衡时弃置了所有手牌,你额外摸一张牌',
|
||||
jiuyuan_info:'主公技,锁定技,其他吴势力角色对濒死的你使用【桃】时,你额外回复一点体力。',
|
||||
jiuyuan_info:'主公技,锁定技,其他吴势力角色对你使用的【桃】的回复值+1。',
|
||||
xinjiuyuan:'救援',
|
||||
xinjiuyuan_info:'主公技,锁定技,濒死阶段,吴势力角色对你使用的[桃]额外回复一点体力',
|
||||
xinjiuyuan_info_alter:'主公技,其他吴国角色对自己使用【桃】时,如果他的体力值大于你,他可以选择让你回复1点体力,然后他摸1张牌',
|
||||
|
@ -2663,8 +2662,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
kurou_info:'出牌阶段,你可以失去一点体力,然后摸两张牌。',
|
||||
yingzi_info:'摸牌阶段,你可以多摸一张牌。',
|
||||
fanjian_info:'出牌阶段限一次,你可以令一名角色选择一种花色并展示你的一张手牌,若选择的花色与展示的不同,该角色受到来自你的一点伤害。然后该角色获得展示的牌。',
|
||||
guose_info:'你可以将一张方片的手牌当做【乐不思蜀】使用。',
|
||||
liuli_info:'当你成为【杀】的目标时,你可以弃置一张牌并将此【杀】转移给攻击范围内的一名其他角色(不能是此【杀】的使用者或其他目标)。',
|
||||
guose_info:'你可以将一张方片手牌当做【乐不思蜀】使用。',
|
||||
liuli_info:'当你成为【杀】的目标时,你可以弃置一张牌并将此【杀】转移给攻击范围内的一名其他角色(不能是此【杀】的使用者)。',
|
||||
qianxun_info:'锁定技,你不能成为【顺手牵羊】和【乐不思蜀】的目标。',
|
||||
lianying_info:'当你失去最后的手牌时,你可以摸一张牌。',
|
||||
xiaoji_info:'当你失去一张装备区内的牌后,你可以摸两张牌。',
|
||||
|
@ -2675,13 +2674,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xinjieyin_info_alter:'出牌阶段限1次,你可以选择一名男性角色,弃置一张手牌或将一张装备牌置于其装备区,你与其体力较高的角色摸一张牌,体力值较低的角色回复1点体力',
|
||||
qingnang_info:'出牌阶段限一次,你可以弃置一张手牌并令一名角色回复一点体力。',
|
||||
jijiu_info:'你的回合外,你可以将一张红色牌当做【桃】使用。',
|
||||
wushuang_info:'锁定技,你使用的【杀】或【决斗】需要两张【闪】或【杀】响应。',
|
||||
wushuang_info:'锁定技,当你使用【杀】或【决斗】指定目标后,你令此牌需要依次使用或打出两张【闪】或【杀】响应。',
|
||||
lijian_info:'出牌阶段限一次,你可以弃置一张牌,视为一名男性角色对另一名男性角色使用一张【决斗】(不可被【无懈可击】响应)。',
|
||||
biyue_info:'结束阶段,你可以摸一张牌。',
|
||||
xinbiyue_info:'结束阶段,你可以摸一张牌',
|
||||
xinbiyue_info_alter:'结束阶段,你可以摸一张牌,如果你没有手牌,改为摸2张牌',
|
||||
yaowu:'耀武',
|
||||
yaowu_info:'锁定技,当任意一名角色使用红色【杀】对你造成伤害时,该角色回复1点体力或摸一张牌。',
|
||||
yaowu_info:'锁定技,一名角色使用红色【杀】对你造成伤害时,该角色回复1点体力或摸一张牌。',
|
||||
"new_jiangchi":"将驰",
|
||||
"new_jiangchi_info":"摸牌阶段结束时,你可以选择一项:1、摸一张牌,若如此做,你本回合内不能使用或打出【杀】。 2、弃置一张牌,若如此做,出牌阶段你使用【杀】无距离限制且你可以额外使用一张【杀】,直到回合结束。",
|
||||
"xinfu_jijie":"机捷",
|
||||
|
|
|
@ -329,7 +329,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
trigger:{global:'useCardToPlayer'},
|
||||
filter:function(event,player){
|
||||
return event.card&&event.card.name=='sha'&&event.player!=player&&event.target!=player&&
|
||||
event.targets.length==1&&event.player.inRange(player)<=1;
|
||||
event.targets.length==1&&event.player.inRange(player);
|
||||
},
|
||||
logTarget:'target',
|
||||
check:function(event,player){
|
||||
|
|
|
@ -7,7 +7,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
characterSort:{
|
||||
yijiang:{
|
||||
yijiang_2011:['caozhi','re_yujin','zhangchunhua','xin_fazheng','xin_masu','xin_xushu','xusheng','lingtong','wuguotai','chengong','gaoshun'],
|
||||
yijiang_2012:['wangyi','xunyou','zhonghui','madai','liaohua','guanzhang','bulianshi','handang','chengpu','liubiao','old_huaxiong'],
|
||||
yijiang_2012:['wangyi','xunyou','zhonghui','madai','liaohua','guanzhang','bulianshi','handang','chengpu','liubiao','old_huaxiong','caozhang'],
|
||||
yijiang_2013:['manchong','guohuai','caochong','guanping','liufeng','jianyong','yufan','panzhangmazhong','zhuran','xin_liru','fuhuanghou'],
|
||||
yijiang_2014:['hanhaoshihuan','chenqun','caozhen','zhangsong','wuyi','zhoucang','zhuhuan','guyong','sunluban','yj_jushou','caifuren'],
|
||||
yijiang_2015:['caoxiu','caorui','zhongyao','xiahoushi','liuchen','zhangyi','zhuzhi','quancong','sunxiu','gongsunyuan','guotufengji'],
|
||||
|
@ -16,7 +16,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
character:{
|
||||
guohuai:['male','wei',4,['xinjingce']],
|
||||
caozhang:['male','wei',4,['jiangchi']],
|
||||
guohuai:['male','wei',4,['jingce']],
|
||||
zhangchunhua:['female','wei',3,['jueqing','shangshi']],
|
||||
caozhi:['male','wei',3,['luoying','jiushi']],
|
||||
caochong:['male','wei',3,['chengxiang','renxin']],
|
||||
|
@ -24,7 +25,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xin_xushu:['male','shu',3,['xinwuyan','xinjujian']],
|
||||
xin_masu:['male','shu',3,['sanyao','zhiman']],
|
||||
xin_fazheng:['male','shu',3,['xinenyuan','xinxuanhuo'],['die_audio']],
|
||||
zhuran:['male','wu',4,['xindanshou']],
|
||||
zhuran:['male','wu',4,['danshou']],
|
||||
xusheng:['male','wu',4,['xinpojun']],
|
||||
wuguotai:['female','wu',3,['ganlu','buyi']],
|
||||
lingtong:['male','wu',4,['xuanfeng']],
|
||||
|
@ -53,11 +54,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
panzhangmazhong:['male','wu',4,['duodao','anjian']],
|
||||
zhoucang:['male','shu',4,['xinzhongyong']],
|
||||
guanping:['male','shu',4,['longyin']],
|
||||
liaohua:['male','shu',4,['xindangxian','xinfuli']],
|
||||
liaohua:['male','shu',4,['dangxian','fuli']],
|
||||
chengpu:['male','wu',4,['lihuo','chunlao']],
|
||||
gaoshun:['male','qun',4,['xinxianzhen','jinjiu']],
|
||||
caozhen:['male','wei',4,['xinsidi']],
|
||||
wuyi:['male','shu',4,['xinbenxi']],
|
||||
wuyi:['male','shu',4,['benxi']],
|
||||
hanhaoshihuan:['male','wei',4,['shenduan','yonglve']],
|
||||
|
||||
caorui:['male','wei',3,['huituo','mingjian','xingshuai'],['zhu']],
|
||||
|
@ -67,7 +68,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhangyi:['male','shu',4,['wurong','shizhi']],
|
||||
sunxiu:['male','wu',3,['yanzhu','xingxue','zhaofu'],['zhu']],
|
||||
zhuzhi:['male','wu',4,['xinanguo']],
|
||||
quancong:['male','wu',4,['xinyaoming']],
|
||||
quancong:['male','wu',4,['yaoming']],
|
||||
gongsunyuan:['male','qun',4,['huaiyi']],
|
||||
guotufengji:['male','qun',3,['jigong','shifei']],
|
||||
|
||||
|
@ -306,7 +307,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var list=[
|
||||
'为XXX多指定一个目标',
|
||||
'令XXX无视防具',
|
||||
'令XXX不可被响应',
|
||||
'令XXX不可被抵消',
|
||||
'当XXX造成伤害时摸一张牌',
|
||||
];
|
||||
var choiceList=ui.create.dialog('【奔袭】:请选择一至两项','forcebutton');
|
||||
|
@ -392,7 +393,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
function(trigger,player,event){
|
||||
player.storage.xinbenxi_directHit.add(trigger.card);
|
||||
trigger.directHit.addArray(game.players);
|
||||
trigger.nowuxie=true;
|
||||
trigger.customArgs.default.directHit2=true;
|
||||
},
|
||||
function(trigger,player,event){
|
||||
player.storage.xinbenxi_damage.add(trigger.card);
|
||||
|
@ -411,7 +413,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
ai:{
|
||||
unequip:true,
|
||||
norespond:true,
|
||||
//norespond:true,
|
||||
skillTagFilter:function(player,tag,arg){
|
||||
if(tag=='unequip'){
|
||||
if(arg&&player.storage.xinbenxi_unequip.contains(arg.card)) return true;
|
||||
|
@ -5734,9 +5736,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
jigong2:{
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
maxHandcardBase:function(player,num){
|
||||
var damage=player.getStat().damage;
|
||||
if(typeof damage=='number') return num-player.hp+damage;
|
||||
if(typeof damage=='number') return damage;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -9474,7 +9476,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
if(cards.length){
|
||||
player.chooseButton(['落英:选择要获得的牌',cards],[1,cards.length]).ai=get.buttonValue;
|
||||
player.chooseButton(['落英:选择要获得的牌',cards],[1,cards.length]).set('ai',function(button){
|
||||
return get.value(button.link,player,'raw');
|
||||
});
|
||||
}
|
||||
"step 2"
|
||||
if(result.bool){
|
||||
|
@ -9500,7 +9504,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseButton(['落英:选择要获得的牌',trigger.cards],[1,trigger.cards.length]).ai=get.buttonValue;
|
||||
player.chooseButton(['落英:选择要获得的牌',trigger.cards],[1,trigger.cards.length]).set('ai',function(button){
|
||||
return get.value(button.link,player,'raw');
|
||||
});
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill(event.name);
|
||||
|
@ -11287,7 +11293,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
benxi:'奔袭',
|
||||
benxi_info:'锁定技,你的回合内,你每使用一次牌后,你的进攻距离+1直到回合结束;你的回合内,若你与所有角色的距离均为1,你无视其他角色的防具,且你使用的【杀】可额外指定一个目标',
|
||||
xinbenxi:'奔袭',
|
||||
xinbenxi_info:'锁定技,当你于回合内使用牌时,你本回合计算与其他角色的距离-1。你的回合内,若你至场上所有其他角色的距离均不大于1,则当你使用【杀】或普通锦囊牌选择唯一目标后,你选择至多两项:1.为此牌多指定一个目标;2.令此牌无视防具;3.令此牌不可被响应;4.你因此牌造成伤害时摸一张牌。',
|
||||
xinbenxi_info:'锁定技,当你于回合内使用牌时,你本回合计算与其他角色的距离-1。你的回合内,若你至场上所有其他角色的距离均不大于1,则当你使用【杀】或普通锦囊牌选择唯一目标后,你选择至多两项:1.为此牌多指定一个目标;2.令此牌无视防具;3.令此牌不可被抵消;4.你因此牌造成伤害时摸一张牌。',
|
||||
sidi:'司敌',
|
||||
sidi2:'司敌',
|
||||
sidi3:'司敌',
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'v1.9.99',
|
||||
'v1.9.99.1',
|
||||
'audio/background/aozhan_chaoming.mp3',
|
||||
'audio/background/aozhan_online.mp3',
|
||||
'audio/background/aozhan_rewrite.mp3',
|
||||
|
@ -560,6 +560,13 @@ window.noname_asset_list=[
|
|||
'audio/die/xunchen.mp3',
|
||||
'audio/die/re_caozhi.mp3',
|
||||
'audio/die/wangshuang.mp3',
|
||||
'audio/die/dongcheng.mp3',
|
||||
'audio/die/ol_xiaoqiao.mp3',
|
||||
'audio/die/re_lingtong.mp3',
|
||||
'audio/die/shen_caopi.mp3',
|
||||
'audio/die/shen_zhenji.mp3',
|
||||
'audio/die/yangyi.mp3',
|
||||
'audio/die/yujin_yujin.mp3',
|
||||
|
||||
'audio/skill/anguo1.mp3',
|
||||
'audio/skill/anguo2.mp3',
|
||||
|
@ -2449,6 +2456,38 @@ window.noname_asset_list=[
|
|||
'audio/skill/reluoying2.mp3',
|
||||
'audio/skill/spzhuilie1.mp3',
|
||||
'audio/skill/spzhuilie2.mp3',
|
||||
'audio/skill/chengzhao1.mp3',
|
||||
'audio/skill/chengzhao2.mp3',
|
||||
'audio/skill/chuyuan1.mp3',
|
||||
'audio/skill/chuyuan2.mp3',
|
||||
'audio/skill/dengji1.mp3',
|
||||
'audio/skill/dengji2.mp3',
|
||||
'audio/skill/duoduan1.mp3',
|
||||
'audio/skill/duoduan2.mp3',
|
||||
'audio/skill/gongsun1.mp3',
|
||||
'audio/skill/gongsun2.mp3',
|
||||
'audio/skill/olfangquan_shen_caopi1.mp3',
|
||||
'audio/skill/olfangquan_shen_caopi2.mp3',
|
||||
'audio/skill/olluanji_shen_caopi1.mp3',
|
||||
'audio/skill/olluanji_shen_caopi2.mp3',
|
||||
'audio/skill/rehongyan1.mp3',
|
||||
'audio/skill/rehongyan2.mp3',
|
||||
'audio/skill/rejianxiong_shen_caopi1.mp3',
|
||||
'audio/skill/rejianxiong_shen_caopi2.mp3',
|
||||
'audio/skill/rejieyue1.mp3',
|
||||
'audio/skill/rejieyue2.mp3',
|
||||
'audio/skill/rerende_shen_caopi1.mp3',
|
||||
'audio/skill/rerende_shen_caopi2.mp3',
|
||||
'audio/skill/rezhiheng_shen_caopi1.mp3',
|
||||
'audio/skill/rezhiheng_shen_caopi2.mp3',
|
||||
'audio/skill/shenfu1.mp3',
|
||||
'audio/skill/shenfu2.mp3',
|
||||
'audio/skill/tianxiang_ol_xiaoqiao1.mp3',
|
||||
'audio/skill/tianxiang_ol_xiaoqiao2.mp3',
|
||||
'audio/skill/tianxing1.mp3',
|
||||
'audio/skill/tianxing2.mp3',
|
||||
'audio/skill/xuanfeng_re_lingtong1.mp3',
|
||||
'audio/skill/xuanfeng_re_lingtong2.mp3',
|
||||
|
||||
'font/huangcao.ttf',
|
||||
'font/shousha.ttf',
|
||||
|
@ -2979,6 +3018,24 @@ window.noname_asset_list=[
|
|||
'image/character/re_panfeng.jpg',
|
||||
'image/character/wangshuang.jpg',
|
||||
'image/character/yj_caoang.jpg',
|
||||
'image/character/dongcheng.jpg',
|
||||
'image/character/key_akane.jpg',
|
||||
'image/character/key_doruji.jpg',
|
||||
'image/character/key_riki.jpg',
|
||||
'image/character/key_yuiko.jpg',
|
||||
'image/character/old_liuzan.jpg',
|
||||
'image/character/re_caozhang.jpg',
|
||||
'image/character/re_chengpu.jpg',
|
||||
'image/character/re_guohuai.jpg',
|
||||
'image/character/re_liaohua.jpg',
|
||||
'image/character/re_lingtong.jpg',
|
||||
'image/character/re_quancong.jpg',
|
||||
'image/character/re_wuyi.jpg',
|
||||
'image/character/re_zhuran.jpg',
|
||||
'image/character/shen_caopi.jpg',
|
||||
'image/character/shen_zhenji.jpg',
|
||||
'image/character/yangyi.jpg',
|
||||
'image/character/yujin_yujin.jpg',
|
||||
|
||||
'image/character/baiwuchang.jpg',
|
||||
'image/character/baosanniang.jpg',
|
||||
|
|
|
@ -229,5 +229,8 @@ window.config={
|
|||
// ['jiushi','kuiwei'],
|
||||
['zishu','xinfu_songsang'],
|
||||
['zishu','shenxing'],
|
||||
['akane_quanqing','lianying'],
|
||||
['akane_quanqing','relianying'],
|
||||
['akane_quanqing','shangshi'],
|
||||
]
|
||||
};
|
||||
|
|
23
game/game.js
|
@ -11225,7 +11225,7 @@
|
|||
return;
|
||||
}
|
||||
else{
|
||||
player.lose(event.card,'visible');
|
||||
player.lose(event.card,'visible',ui.ordering);
|
||||
player.$phaseJudge(event.card);
|
||||
event.cancelled=false;
|
||||
event.trigger('phaseJudge');
|
||||
|
@ -14558,6 +14558,7 @@
|
|||
game.addVideo('lose',player,[get.cardsInfo(hs),get.cardsInfo(es),get.cardsInfo(js)]);
|
||||
event.cards2=hs.concat(es);
|
||||
player.getHistory('lose').push(event);
|
||||
game.getGlobalHistory().cardMove.push(event);
|
||||
player.update();
|
||||
game.addVideo('loseAfter',player);
|
||||
event.num=0;
|
||||
|
@ -20336,18 +20337,19 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
getHistory:function(key,filter){
|
||||
getHistory:function(key,filter,last){
|
||||
if(!key) return this.actionHistory[this.actionHistory.length-1];
|
||||
if(!filter) return this.actionHistory[this.actionHistory.length-1][key];
|
||||
else{
|
||||
var history=this.getHistory(key).slice(0);
|
||||
if(last) history=history.slice(0,history.indexOf(last)+1);
|
||||
for(var i=0;i<history.length;i++){
|
||||
if(!filter(history[i])) history.splice(i--,1);
|
||||
}
|
||||
return history;
|
||||
}
|
||||
},
|
||||
getAllHistory:function(key,filter){
|
||||
getAllHistory:function(key,filter,last){
|
||||
var list=[];
|
||||
var all=this.actionHistory;
|
||||
for(var j=0;j<all.length;j++){
|
||||
|
@ -20358,6 +20360,7 @@
|
|||
if(!filter) list.addArray(all[j][key]);
|
||||
else{
|
||||
var history=all[j][key].slice(0);
|
||||
if(last) history=history.slice(0,history.indexOf(last)+1);
|
||||
for(var i=0;i<history.length;i++){
|
||||
if(filter(history[i])) list.push(history[i]);
|
||||
}
|
||||
|
@ -20466,7 +20469,11 @@
|
|||
return (range);
|
||||
},
|
||||
getHandcardLimit:function(){
|
||||
return Math.max(0,game.checkMod(this,Math.max(0,this.hp),'maxHandcard',this));
|
||||
var num=Math.max(this.hp,0);
|
||||
num=game.checkMod(this,num,'maxHandcardBase',this);
|
||||
num=game.checkMod(this,num,'maxHandcard',this);
|
||||
num=game.checkMod(this,num,'maxHandcardFinal',this);
|
||||
return Math.max(0,num);
|
||||
},
|
||||
getEnemies:function(func){
|
||||
var player=this;
|
||||
|
@ -40111,6 +40118,10 @@
|
|||
text2.value='';
|
||||
}
|
||||
}
|
||||
else if(text2.value.indexOf('无天使')!=-1&&(text2.value.indexOf('无神佛')!=-1||text2.value.indexOf('无神')!=-1&&text2.value.indexOf('无佛')!=-1)){
|
||||
game.print('Welcome to Shinda Sekai Sensen!');
|
||||
text2.value='';
|
||||
}
|
||||
else{
|
||||
if(!game.observe&&!game.online){
|
||||
try{
|
||||
|
@ -49402,7 +49413,7 @@
|
|||
}
|
||||
}
|
||||
else if(lib.skill[skills[i]].nobracket){
|
||||
uiintro.add('<div><div class="skill">'+get.translation(skills[i])+'</div><div>'+lib.translate[skills[i]+'_info']+'</div></div>');
|
||||
uiintro.add('<div><div class="skilln">'+get.translation(skills[i])+'</div><div>'+lib.translate[skills[i]+'_info']+'</div></div>');
|
||||
}
|
||||
else{
|
||||
uiintro.add('<div><div class="skill">【'+translation+'】</div><div>'+get.skillInfoTranslation(skills[i])+'</div></div>');
|
||||
|
@ -50020,7 +50031,7 @@
|
|||
if(lib.translate[skills[i]+'_info']){
|
||||
translation=lib.translate[skills[i]+'_ab']||get.translation(skills[i]).slice(0,2);
|
||||
if(lib.skill[skills[i]]&&lib.skill[skills[i]].nobracket){
|
||||
uiintro.add('<div><div class="skill">'+get.translation(skills[i])+'</div><div>'+get.skillInfoTranslation(skills[i])+'</div></div>');
|
||||
uiintro.add('<div><div class="skilln">'+get.translation(skills[i])+'</div><div>'+get.skillInfoTranslation(skills[i])+'</div></div>');
|
||||
}
|
||||
else{
|
||||
uiintro.add('<div><div class="skill">【'+translation+'】</div><div>'+get.skillInfoTranslation(skills[i])+'</div></div>');
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
window.noname_update={
|
||||
version:'1.9.99',
|
||||
version:'1.9.99.1',
|
||||
update:'1.9.98.7.1',
|
||||
changeLog:[
|
||||
'王双,新潘凤,界小乔,界魏延,界曹植',
|
||||
'界凌统,界于禁,神曹丕,神甄姬,杨仪,董承,界程普',
|
||||
'bug修复',
|
||||
],
|
||||
files:[
|
||||
'card/extra.js',
|
||||
//'card/extra.js',
|
||||
//'card/huanlekapai.js',
|
||||
//'card/sp.js',
|
||||
//'card/standard.js',
|
||||
'card/standard.js',
|
||||
//'card/swd.js',
|
||||
//'card/mtg.js',
|
||||
//'card/guozhan.js',
|
||||
//'card/gwent.js',
|
||||
//'card/yunchou.js',
|
||||
//'card/zhenfa.js',
|
||||
'card/zhulu.js',
|
||||
//'card/zhulu.js',
|
||||
'character/diy.js',
|
||||
'character/extra.js',
|
||||
//'character/hearth.js',
|
||||
|
@ -25,33 +25,33 @@ window.noname_update={
|
|||
//'character/hearth.js',
|
||||
'character/mobile.js',
|
||||
//'character/mtg.js',
|
||||
////'character/old.js',
|
||||
'character/old.js',
|
||||
'character/refresh.js',
|
||||
'character/shenhua.js',
|
||||
'character/sp.js',
|
||||
//'character/tw.js',
|
||||
//'character/standard.js',
|
||||
'character/tw.js',
|
||||
'character/standard.js',
|
||||
//'character/swd.js',
|
||||
//'character/xianjian.js',
|
||||
//'character/xinghuoliaoyuan.js',
|
||||
'character/yijiang.js',
|
||||
//'character/yxs.js',
|
||||
//'extension/boss/extension.js',
|
||||
//'layout/default/layout.css',
|
||||
'layout/default/layout.css',
|
||||
//'layout/nova/layout.css',
|
||||
//'mode/identity.js',
|
||||
'mode/identity.js',
|
||||
//'mode/doudizhu.js',
|
||||
//'mode/guozhan.js',
|
||||
'mode/guozhan.js',
|
||||
//'mode/chess.js',
|
||||
//'mode/tafang.js',
|
||||
//'mode/single.js',
|
||||
//'mode/stone.js',
|
||||
//'mode/brawl.js',
|
||||
//'mode/versus.js',
|
||||
//'mode/boss.js',
|
||||
'mode/boss.js',
|
||||
'game/game.js',
|
||||
//'game/NoSleep.js',
|
||||
//'game/config.js',
|
||||
'game/config.js',
|
||||
//'game/package.js',
|
||||
//'game/asset.js',
|
||||
//'game/source.js',
|
||||
|
|
After Width: | Height: | Size: 197 KiB |
After Width: | Height: | Size: 226 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 148 KiB |
After Width: | Height: | Size: 180 KiB |
After Width: | Height: | Size: 259 KiB |
After Width: | Height: | Size: 206 KiB |
After Width: | Height: | Size: 274 KiB |
After Width: | Height: | Size: 192 KiB |
After Width: | Height: | Size: 163 KiB |
After Width: | Height: | Size: 213 KiB |
After Width: | Height: | Size: 205 KiB |
After Width: | Height: | Size: 205 KiB |
After Width: | Height: | Size: 163 KiB |
After Width: | Height: | Size: 240 KiB |
After Width: | Height: | Size: 230 KiB |
After Width: | Height: | Size: 171 KiB |
After Width: | Height: | Size: 207 KiB |
|
@ -1873,6 +1873,10 @@ div:not(.handcards)>.card>.info>span,
|
|||
width: 70px !important;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.skilln {
|
||||
left: 0 !important;
|
||||
width: 70px !important;
|
||||
}
|
||||
.skill>.card {
|
||||
transform: scale(0.56);
|
||||
transform-origin: top left;
|
||||
|
|
16
mode/boss.js
|
@ -8467,14 +8467,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
if(player.countCards('h')==0) return false;
|
||||
if(!player.hasSkill('qiangxi')) return true;
|
||||
if(!player.hasSkill('retieji')) return true;
|
||||
if(!player.hasSkill('xuanfeng')) return true;
|
||||
if(!player.hasSkill('rexuanfeng')) return true;
|
||||
if(!player.hasSkill('wansha')) return true;
|
||||
return false;
|
||||
},
|
||||
filterCard:true,
|
||||
position:'he',
|
||||
check:function(card){
|
||||
if(get.position(card)=='e'&&_status.event.player.hasSkill('xuanfeng')) return 16-get.value(card);
|
||||
if(get.position(card)=='e'&&_status.event.player.hasSkill('rexuanfeng')) return 16-get.value(card);
|
||||
return 7-get.value(card);
|
||||
},
|
||||
content:function(){
|
||||
|
@ -8482,7 +8482,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
var list=[];
|
||||
if(!player.hasSkill('qiangxi')) list.push('qiangxi');
|
||||
if(!player.hasSkill('retieji')) list.push('retieji');
|
||||
if(!player.hasSkill('xuanfeng')) list.push('xuanfeng');
|
||||
if(!player.hasSkill('rexuanfeng')) list.push('rexuanfeng');
|
||||
if(!player.hasSkill('wansha')) list.push('wansha');
|
||||
if(list.length==1){
|
||||
player.addTempSkill(list[0]);
|
||||
|
@ -8490,9 +8490,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
else{
|
||||
player.chooseControl(list,function(){
|
||||
if(list.contains('xuanfeng')&&player.countCards('he',{type:'equip'})) return 'xuanfeng';
|
||||
if(list.contains('rexuanfeng')&&player.countCards('he',{type:'equip'})) return 'rexuanfeng';
|
||||
if(!player.getStat().skill.qiangxi){
|
||||
if(player.hasSkill('qiangxi')&&player.getEquip(1)&&list.contains('xuanfeng')) return 'xuanfeng';
|
||||
if(player.hasSkill('qiangxi')&&player.getEquip(1)&&list.contains('rexuanfeng')) return 'rexuanfeng';
|
||||
if(list.contains('wansha')||list.contains('qiangxi')){
|
||||
var players=game.filterPlayer();
|
||||
for(var i=0;i<players.length;i++){
|
||||
|
@ -8505,7 +8505,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
if(list.contains('qiangxi')) return 'qiangxi';
|
||||
if(list.contains('wansha')) return 'wansha';
|
||||
if(list.contains('xuanfeng')) return 'xuanfeng';
|
||||
if(list.contains('rexuanfeng')) return 'rexuanfeng';
|
||||
return 'retieji';
|
||||
}).set('prompt','选择获得一项技能直到回合结束');
|
||||
}
|
||||
|
@ -8518,7 +8518,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
var player=_status.event.player;
|
||||
if(player.countCards('e',{type:'equip'})) return 10;
|
||||
if(!player.getStat().skill.qiangxi){
|
||||
if(player.hasSkill('qiangxi')&&player.getEquip(1)&&!player.hasSkill('xuanfeng')) return 10;
|
||||
if(player.hasSkill('qiangxi')&&player.getEquip(1)&&!player.hasSkill('rexuanfeng')) return 10;
|
||||
if(player.hasSkill('wansha')) return 1;
|
||||
var players=game.filterPlayer();
|
||||
for(var i=0;i<players.length;i++){
|
||||
|
@ -8531,7 +8531,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
player:function(player){
|
||||
if(player.countCards('e',{type:'equip'})) return 1;
|
||||
if(!player.getStat().skill.qiangxi){
|
||||
if(player.hasSkill('qiangxi')&&player.getEquip(1)&&!player.hasSkill('xuanfeng')) return 1;
|
||||
if(player.hasSkill('qiangxi')&&player.getEquip(1)&&!player.hasSkill('rexuanfeng')) return 1;
|
||||
if(!player.hasSkill('wansha')||!player.hasSkill('qiangxi')){
|
||||
var players=game.filterPlayer();
|
||||
for(var i=0;i<players.length;i++){
|
||||
|
|
|
@ -2811,8 +2811,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
"baka_yingzi":{
|
||||
mod:{
|
||||
maxHandcard:function (player,num){
|
||||
if(!player.hasSkill('reyingzi')&&player.hp<player.maxHp) return num+player.maxHp-player.hp;
|
||||
maxHandcardBase:function (player,num){
|
||||
return player.maxHp;
|
||||
},
|
||||
},
|
||||
audio:"reyingzi",
|
||||
|
@ -4380,8 +4380,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
subSkill:{
|
||||
num:{
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
return num+player.maxHp-player.hp;
|
||||
maxHandcardBase:function(player,num){
|
||||
return player.maxHp;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -1042,7 +1042,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
player.update();
|
||||
}
|
||||
}
|
||||
else if(player.identity=='zhong'&&(Math.random()<0.5||game.zhu.name=='sunliang')){
|
||||
else if(player.identity=='zhong'&&(Math.random()<0.5||['sunliang','key_akane'].contains(game.zhu.name))){
|
||||
var choice=0;
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(lib.character[list[i]][1]==game.zhu.group){
|
||||
|
@ -1079,7 +1079,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
list.remove('shen');
|
||||
if(list.length) player.group=function(){
|
||||
if(_status.mode!='zhong'&&game.zhu&&game.zhu.group){
|
||||
if(['re_zhangjiao','liubei','re_liubei','caocao','re_caocao','sunquan','re_sunquan','zhangjiao','sp_zhangjiao','caopi','re_caopi','liuchen','caorui','sunliang','sunxiu','sunce','re_sunben','ol_liushan','re_liushan'].contains(game.zhu.name)) return game.zhu.group;
|
||||
if(['re_zhangjiao','liubei','re_liubei','caocao','re_caocao','sunquan','re_sunquan','zhangjiao','sp_zhangjiao','caopi','re_caopi','liuchen','caorui','sunliang','sunxiu','sunce','re_sunben','ol_liushan','re_liushan','key_akane'].contains(game.zhu.name)) return game.zhu.group;
|
||||
if(game.zhu.name=='sunhao'&&player.identity=='zhong') return 'wu';
|
||||
if(game.zhu.name=='yl_yuanshu'){
|
||||
if(player.identity=='zhong') list.remove('qun');
|
||||
|
|