Nishizono Mio

This commit is contained in:
Spmario233 2020-06-20 12:53:15 +08:00 committed by GitHub
parent 70290798f9
commit cf876a4f62
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
44 changed files with 1093 additions and 195 deletions

BIN
audio/die/dengzhi.mp3 Normal file

Binary file not shown.

BIN
audio/die/re_handang.mp3 Normal file

Binary file not shown.

BIN
audio/die/re_zhonghui.mp3 Normal file

Binary file not shown.

BIN
audio/die/xin_chengpu.mp3 Normal file

Binary file not shown.

BIN
audio/die/zhengxuan.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/jimeng1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jimeng2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/regongji1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/regongji2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/relihuo1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/relihuo2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/requanji1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/requanji2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shuaiyan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shuaiyan2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -766,6 +766,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
vanish:true,
silent:true,
popup:false,
nopop:true,
onremove:function(player){
if(player.node.jiu){
player.node.jiu.delete();

View File

@ -1086,7 +1086,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
trigger:{player:'phaseDrawBegin2'},
forced:true,
filter:function(event,player){
return !player.isUnseen();
return !player.isUnseen()&&!event.numFixed;
},
content:function(){
trigger.num++;

View File

@ -1066,7 +1066,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
result:{
target:function(player,target){
if(get.attitude(player,target)<=0) return (target.countCards('he')>0)?-1.5:1.5;
if(get.attitude(player,target)<=0) return (target.countCards('he',function(card){
return get.value(card)>0;
})>0)?-1.5:1.5;
var js=target.getCards('j');
if(js.length){
var jj=js[0].viewAs?{name:js[0].viewAs}:js[0];
@ -1163,7 +1165,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
var es=target.getCards('e');
var noe=(es.length==0||target.hasSkillTag('noe'));
var noe2=(es.length==1&&es[0].name=='baiyin'&&target.isDamaged());
var noe2=(es.length==1&&es[0].name!='tengjia'&&get.value(es[0])<=0);
var noh=(nh==0||target.hasSkillTag('noh'));
if(noh&&(noe||noe2)) return 0;
if(att<=0&&!target.countCards('he')) return 1.5;

View File

@ -47,6 +47,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_ao:['female','key',3,['ao_xishi','ao_kuihun','ao_shixin']],
key_yuzuru:['male','key',5,['yuzuru_wuxin','yuzuru_deyi']],
sp_key_kanade:['female','key',3,['kanade_mapo','kanade_benzhan']],
key_mio:['female','key',3,['mio_tuifu','mio_tishen']],
key_midori:['female','key',3,['midori_nonghuan','midori_tishen']],
// diy_caocao:['male','wei',4,['xicai','diyjianxiong','hujia']],
// diy_hanlong:['male','wei',4,['siji','ciqiu']],
diy_feishi:['male','shu',3,['shuaiyan','moshou']],
@ -129,7 +131,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","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade"],
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","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori"],
diy_yongjian:["ns_chendao","yj_caoang"],
},
},
@ -227,6 +229,132 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_iwasawa:['key_hisako'],
},
skill:{
yuzuru_bujin:{
global:'yuzuru_bujin2',
trigger:{global:'phaseDrawBegin'},
forced:true,
logTarget:'player',
filter:function(event,player){
return event.player!=player&&event.player.isFriendOf(player);
},
content:function(){trigger.num++},
},
yuzuru_bujin2:{
mod:{
globalFrom:function(from,to,num){
return num-game.countPlayer(function(current){
return current!=from&&current.isFriendOf(from)&&current.hasSkill('yuzuru_bujin');
});
},
},
},
mio_tuifu:{
trigger:{global:'damageBegin1'},
forced:true,
filter:function(event,player){
return event.source&&event.source.sex=='male'&&event.player.sex=='male';
},
content:function(){
player.draw();
},
},
mio_tishen:{
trigger:{player:'phaseZhunbeiBegin'},
limited:true,
unique:true,
skillAnimation:true,
animationColor:'water',
filter:function(event,player){
return player.isDamaged();
},
check:function(event,player){
return player.hp<=1||player.getDamagedHp()>1;
},
content:function(){
player.awakenSkill(event.name);
var num=player.maxHp-player.hp;
player.recover(num);
player.draw(num);
if(_status.characterlist&&_status.characterlist.contains('key_midori')){
player.reinit('key_mio','key_midori',false);
_status.characterlist.remove('key_midori');
_status.characterlist.add('key_mio');
}
},
},
midori_nonghuan:{
enable:'phaseUse',
filter:function(event,player){
return (player.getStat('skill').midori_nonghuan||0)<player.hp;
},
filterTarget:function(card,player,target){
var stat=player.getStat('midori_nonghuan');
return target!=player&&(!stat||!stat.contains(target))&&target.countGainableCards(player,'hej')>0;
},
content:function(){
'step 0'
var stat=player.getStat();
if(!stat.midori_nonghuan) stat.midori_nonghuan=[];
stat.midori_nonghuan.push(target);
player.gainPlayerCard(target,'hej',true);
player.draw();
'step 1'
if(player.countCards('he')>0) player.chooseCard('he',true,'交给'+get.translation(target)+'一张牌');
else event.goto(3);
'step 2'
target.gain(result.cards,player,'giveAuto');
'step 3'
var history=game.getGlobalHistory('cardMove');
for(var i=0;i<history.length;i++){
if(history[i].getParent('midori_nonghuan')==event) history.splice(i--,1);
}
game.countPlayer2(function(current){
var history=current.getHistory('lose');
for(var i=0;i<history.length;i++){
if(history[i].getParent('midori_nonghuan')==event) history.splice(i--,1);
}
var history=current.getHistory('gain');
for(var i=0;i<history.length;i++){
if(history[i].getParent('midori_nonghuan')==event) history.splice(i--,1);
}
});
},
ai:{
order:9,
result:{
player:function(){
return lib.card.shunshou.ai.result.player.apply(this,arguments);
},
target:function(){
return lib.card.shunshou.ai.result.target.apply(this,arguments);
},
},
},
},
midori_tishen:{
trigger:{player:'phaseZhunbeiBegin'},
limited:true,
unique:true,
skillAnimation:true,
animationColor:'water',
filter:function(event,player){
return player.isDamaged();
},
check:function(event,player){
return player.hp<=1||player.getDamagedHp()>1;
},
content:function(){
player.awakenSkill(event.name);
var num=player.maxHp-player.hp;
player.recover(num);
player.draw(num);
if(_status.characterlist&&_status.characterlist.contains('key_mio')){
player.reinit('key_midori','key_mio',false);
_status.characterlist.remove('key_mio');
_status.characterlist.add('key_midori');
}
},
},
kanade_mapo:{
derivation:'mapodoufu',
enable:'chooseToUse',
@ -1293,6 +1421,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
discard:false,
line:true,
direct:true,
clearTime:true,
delay:false,
lose:false,
prepare:function(cards,player,targets){
@ -8257,6 +8386,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_ao:'空门苍',
key_yuzuru:'音无结弦',
sp_key_kanade:'SP立华奏',
key_mio:'西园美鱼',
key_midori:'西园美鸟',
lucia_duqu:'毒躯',
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
lucia_zhenren:'振刃',
@ -8329,7 +8460,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tsumugi_mugyu_info:'当你成为牌的目标后,若你的手牌数小于体力上限,则你可以摸一张牌。',
tsumugi_huilang:'回廊',
tsumugi_huilang2:'回廊',
tsumugi_huilang_info:'回合结束时,可以将任意张牌扣置于武将牌下(均称为「隐」)。回合开始时,你获得所有「隐」,然后可令等量的角色各摸一张牌。',
tsumugi_huilang_info:'回合结束时,可以将任意张牌扣置于武将牌下(均称为「隐」)。回合开始时,你获得所有「隐」,然后可令等量的角色各摸一张牌。',
//〖回廊〗涉及的所有卡牌移动的结算不会触发〖良姻〗
haruka_shuangche:'双掣',
kanata_shuangche:'双掣',
@ -8443,10 +8574,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yuzuru_kunfen_rewrite_info:'锁定技,结束阶段,你摸两张牌。然后你可以将两张牌交给一名其他角色。',
yuzuru_quji_rewrite:'去疾·改',
yuzuru_quji_rewrite_info:'出牌阶段限一次你可以弃置X张牌并选择至多等量已受伤的其他角色这些角色各回复1点体力。X为你已损失的体力值',
yuzuru_bujin:'步进',
yuzuru_bujin_info:'锁定技,己方其他角色计算与其他角色的距离-1且摸牌阶段的额定摸牌数+1。',
kanade_mapo:'麻婆',
kanade_mapo_info:'你可以将一张♥牌当做【麻婆豆腐】使用。你使用的【麻婆豆腐】可以多指定一个目标。',
kanade_benzhan:'奔战',
kanade_benzhan_info:'当你使用或打出牌响应其他角色或其他角色使用或打出牌响应你后若此牌为基本牌你可令一名角色弃置两张牌或令一名角色摸两张牌非基本牌你可对一名角色造成1点伤害或令一名其他角色回复1点体力。',
mio_tuifu:'推腐',
mio_tuifu_info:'锁定技,当一名男性角色对一名男性角色造成伤害后,你摸一张牌。',
mio_tishen:'替身',
mio_tishen_info:'限定技,准备阶段,你可以将体力值回复至体力上限并摸等同于回复量的牌,然后将武将牌替换为【西园美鸟】。',
midori_nonghuan:'弄幻',
midori_nonghuan_info:'出牌阶段限X次X为你的体力值你可以获得一名本阶段内未选择过的其他角色的区域内的一张牌。你摸一张牌然后将一张牌交给该角色。然后你清除此技能结算过程中所有卡牌移动事件的移动记录。',
//即技能结算完成后所有涉及到的牌移动事件不会再被getHistory获取
midori_tishen:'替身',
midori_tishen_info:'限定技,准备阶段,你可以将体力值回复至体力上限并摸等同于回复量的牌,然后将武将牌替换为【西园美鱼】。',
yj_caoang:'SP曹昂',

View File

@ -16,7 +16,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
character:{
shen_guanyu:['male','shen',5,['new_wuhun','wushen'],['shu']],
shen_zhaoyun:['male','shen',2,['xinjuejing','xinlonghun'],['shu']],
shen_zhaoyun:['male','shen',2,['xinjuejing','relonghun'],['shu']],
shen_zhugeliang:['male','shen',3,['qixing','kuangfeng','dawu'],['shu']],
shen_lvmeng:['male','shen',3,['shelie','gongxin'],['wu']],
shen_zhouyu:['male','shen',4,['yeyan','qinyin'],['wu']],
@ -1868,6 +1868,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
longhun:{
audio:4,
group:['longhun1','longhun2','longhun3','longhun4'],
ai:{
skillTagFilter:function(player,tag){
@ -2005,6 +2006,107 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.num+=(player.getDamagedHp());
}
},
relonghun:{
audio:'longhun',
enable:['chooseToUse','chooseToRespond'],
prompt:'将♦牌当做杀,♥牌当做桃,♣牌当做闪,♠牌当做无懈可击使用或打出',
viewAs:function(cards,player){
var name=false;
var nature=null;
switch(get.suit(cards[0],player)){
case 'club':name='shan';break;
case 'diamond':name='sha';nature='fire';break;
case 'spade':name='wuxie';break;
case 'heart':name='tao';break;
}
if(name) return {name:name,nature:nature};
return null;
},
check:function(card){
if(ui.selected.cards.length) return 0;
var player=_status.event.player;
if(_status.event.type=='phase'){
var max=0;
var name2;
var list=['sha','tao'];
var map={sha:'diamond',tao:'heart'}
for(var i=0;i<list.length;i++){
var name=list[i];
if(player.countCards('he',function(card){
return (name!='sha'||get.value(card)<5)&&get.suit(card,player)==map[name];
})>0&&player.getUseValue({name:name,nature:name=='sha'?'fire':null})>0){
var temp=get.order({name:name,nature:name=='sha'?'fire':null});
if(temp>max){
max=temp;
name2=map[name];
}
}
}
if(name2==get.suit(card,player)) return (name2=='diamond'?(5-get.value(card)):20-get.value(card));
return 0;
}
return 1;
},
selectCard:[1,2],
complexCard:true,
position:'he',
filterCard:function(card,player,event){
if(ui.selected.cards.length) return get.suit(card,player)==get.suit(ui.selected.cards[0],player);
event=event||_status.event;
var filter=event._backup.filterCard;
var name=get.suit(card,player);
if(name=='club'&&filter({name:'shan',cards:[card]},player,event)) return true;
if(name=='diamond'&&filter({name:'sha',cards:[card],nature:'fire'},player,event)) return true;
if(name=='spade'&&filter({name:'wuxie',cards:[card]},player,event)) return true;
if(name=='heart'&&filter({name:'tao',cards:[card]},player,event)) return true;
return false;
},
filter:function(event,player){
var filter=event.filterCard;
if(filter({name:'sha',nature:'fire'},player,event)&&player.countCards('he',{suit:'diamond'})) return true;
if(filter({name:'shan'},player,event)&&player.countCards('he',{suit:'club'})) return true;
if(filter({name:'tao'},player,event)&&player.countCards('he',{suit:'heart'})) return true;
if(filter({name:'wuxie'},player,event)&&player.countCards('he',{suit:'spade'})) return true;
return false;
},
ai:{
respondSha:true,
respondShan:true,
save:true,
skillTagFilter:function(player,tag){
var name;
switch(tag){
case 'respondSha':name='diamond';break;
case 'respondShan':name='club';break;
case 'save':name='heart';break;
}
if(!player.countCards('he',{suit:name})) return false;
},
order:function(item,player){
if(player&&_status.event.type=='phase'){
var max=0;
var list=['sha','tao'];
var map={sha:'diamond',tao:'heart'}
for(var i=0;i<list.length;i++){
var name=list[i];
if(player.countCards('he',function(card){
return (name!='sha'||get.value(card)<5)&&get.suit(card,player)==map[name];
})>0&&player.getUseValue({name:name,nature:name=='sha'?'fire':null})>0){
var temp=get.order({name:name,nature:name=='sha'?'fire':null});
if(temp>max) max=temp;
}
}
max/=1.1;
return max;
}
return 2;
},
},
hiddenCard:function(player,name){
return name=='wuxie'&&player.countCards('he',{suit:'spade'})>0;
},
group:['xinlonghun_num','xinlonghun_discard'],
},
xinlonghun:{
group:['xinlonghun1','xinlonghun2','xinlonghun3','xinlonghun4','xinlonghun_num','xinlonghun_discard'],
ai:{
@ -2031,19 +2133,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
subSkill:{
num:{
trigger:{source:['damageBegin','recoverBegin']},
trigger:{player:'useCard'},
forced:true,
popup:false,
filter:function(event){
var evt=event.getParent();
return (evt.skill=='xinlonghun1'||evt.skill=='xinlonghun2')&&evt.cards&&evt.cards.length==2;
var evt=event;
return (evt.skill=='xinlonghun1'||evt.skill=='xinlonghun2'||(['sha','tao'].contains(evt.card.name)&&evt.skill=='relonghun'))&&evt.cards&&evt.cards.length==2;
},
content:function(){
trigger.num++;
trigger.baseDamage++;
}
},
discard:{
trigger:{player:['useCard','respond']},
trigger:{player:['useCardAfter','respondAfter']},
forced:true,
popup:false,
logTarget:function(){
@ -2053,7 +2155,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return event.name=='respond'?0.5:false;
},
filter:function(evt,player){
return (evt.skill=='xinlonghun3'||evt.skill=='xinlonghun4')&&
return (evt.skill=='xinlonghun3'||evt.skill=='xinlonghun4'||(['shan','wuxie'].contains(evt.card.name)&&evt.skill=='relonghun'))&&
evt.cards&&evt.cards.length==2&&_status.currentPhase&&_status.currentPhase!=player&&_status.currentPhase.countDiscardableCards(player,'he');
},
content:function(){
@ -2150,7 +2252,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
audio:'juejing',
trigger:{player:['dyingBegin','dyingAfter']},
trigger:{player:['dying','dyingAfter']},
forced:true,
content:function(){
player.draw();
@ -2998,6 +3100,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shen_lvbu:'神吕布',
xinjuejing:'绝境',
xinjuejing_info:'锁定技,你的手牌上限+2当你进入或脱离濒死状态时你摸一张牌。',
relonghun:'龙魂',
relonghun_info:'你可以将同花色的一至两张牌按下列规则使用或打出:红桃当【桃】,方块当火【杀】,梅花当【闪】,黑桃当普【无懈可击】。若你以此法使用了两张红色牌,则此牌回复值或伤害值+1。若你以此法使用了两张黑色牌则你弃置当前回合角色一张牌。',
xinlonghun:'龙魂',
xinlonghun1:'龙魂♥︎',
xinlonghun2:'龙魂♦︎',

View File

@ -6,12 +6,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true,
characterSort:{
mobile:{
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_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi"],
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","xin_chengpu"],
mobile_sunben:["re_sunben"],
},
},
character:{
dengzhi:['male','shu',3,['jimeng','shuaiyan']],
xin_chengpu:['male','wu',4,['relihuo','chunlao']],
yangyi:['male','shu',3,['duoduan','gongsun']],
dongcheng:['male','qun',4,['chengzhao']],
re_pangtong:['male','shu',3,['xinlianhuan','niepan'],[]],
@ -55,6 +57,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_sunben:['male','wu',4,['jiang','rehunzi','zhiba'],['zhu']],
},
characterIntro:{
dengzhi:'邓芝178年251年字伯苗。义阳郡新野县今河南新野人。东汉名将邓禹之后三国时期蜀汉重臣。邓芝早年曾被预言能位至大将后被刘备任为郫令升迁为广汉太守。因任官公廉且有治绩被征入朝为尚书。刘备逝世后奉命出使吴国成功修复两国关系并深为吴大帝孙权所赏识。建兴六年228年丞相诸葛亮策划北伐命邓芝与大将赵云佯攻郿城以吸引魏国曹真军主力。建兴十二年234年迁前军师、前将军领兖州刺史封阳武亭侯不久督领江州。延熙六年243年迁车骑将军后授假节。又率军平定涪陵叛乱。延熙十四年251年邓芝病逝。邓芝性格正直、简单不刻意修饰情绪。他为将二十多年赏罚明断体恤士卒。身上的衣食取自官府从未经营过私产妻儿甚至还有忍饥挨饿之时死时家中也没有多余财物。',
yangyi:'杨仪235年字威公襄阳今湖北襄阳三国时期蜀汉官员。最初为荆州刺史傅群的主簿后投奔关羽任为功曹。关羽遣其至成都大受刘备赞赏擢为尚书。因与尚书令刘巴不和调为弘农太守。建兴三年225年任丞相参军此后一直跟随诸葛亮战斗。亮卒他部署安全退军。诸葛亮在生前定蒋琬继己任杨仪仅拜中军师。建兴十三年235年因多出怨言被削职流放至汉嘉郡。但杨仪仍不自省又上书诽谤言辞激烈最后下狱自杀身亡。',
dongcheng:'董承(?~200年字号不详冀州河间人今河北献县人。东汉末年外戚大臣汉灵帝母亲董太后侄子汉献帝嫔妃董贵人之父。初从西凉军为董卓女婿牛辅部曲。护卫汉献帝刘协从长安东归洛阳拜为卫将军受封列侯。建安四年199年拜车骑将军。自称领受汉献帝衣带诏联合刘备、种辑、吴子兰、王子服、吴硕等人密谋诛杀曹操。五年正月图谋泄露董承诸人及董贵人全部遇害。',
chendeng:'陈登163—201字元龙下邳淮浦今江苏涟水西人。东汉末年将领、官员。沛相陈珪之子。为人爽朗性格沈静智谋过人少年时有扶世济民之志并且博览群书学识渊博。二十五岁时举孝廉任东阳县长。虽然年轻但他能够体察民情抚弱育孤深得百姓敬重。后来徐州牧陶谦提拔他为典农校尉主管一州农业生产。他亲自考察徐州的土壤状况开发水利发展农田灌溉使汉末迭遭破坏的徐州农业得到一定程度的恢复百姓们安居乐业“秔稻丰积”。建安初奉使赴许向曹操献灭吕布之策被授广陵太守。以灭吕布有功加伏波将军。又迁东城太守。年三十九卒。其子陈肃魏文帝时追陈登之功为郎中。',
@ -272,6 +275,125 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
characterFilter:{},
skill:{
jimeng:{
audio:2,
trigger:{player:'phaseUseBegin'},
direct:true,
filter:function(event,player){
return game.hasPlayer(function(current){
return current.countGainableCards(player,'he')>0;
})
},
content:function(){
'step 0'
player.chooseTarget(get.prompt2('jimeng'),function(card,player,target){
return target!=player&&target.countGainableCards(player,'he')>0;
}).set('ai',function(target){
var player=_status.event.player;
if(player.hp>1&&get.attitude(player,target)<2) return 0;
return get.effect(target,{name:'shunshou'},player,player);
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('jimeng',target);
player.gainPlayerCard(target,'he',true);
}
else event.finish();
'step 2'
var hs=player.getCards('he');
if(player.hp>0&&hs.length){
if(hs.length<=player.hp) event._result={bool:true,cards:hs};
else player.chooseCard(player.hp,true,'交给'+get.translation(target)+get.cnNumber(player.hp)+'张牌','he',true);
}
else event.finish();
'step 3'
target.gain(result.cards,player,'giveAuto');
},
},
shuaiyan:{
audio:2,
trigger:{player:'phaseDiscardBegin'},
filter:function(event,player){
return player.countCards('h')>1;
},
check:function(event,player){
return game.hasPlayer(function(current){
return current!=player&&current.countCards('he')&&lib.skill.shuaiyan.check2(current,player);
});
},
check2:function(target,player){
if(get.itemtype(player)!='player') player=_status.event.player;
return -get.attitude(player,target)/target.countCards('he');
},
content:function(){
'step 0'
player.showHandcards(get.translation(player)+'发动了【率言】');
'step 1'
var filter=function(card,player,target){
return player!=target&&target.countCards('he')>0;
};
if(game.hasPlayer(function(current){
return filter('我约等于白板',player,current);
})){
player.chooseTarget(true,filter,'选择一名其他角色,令其交给你一张牌').set('ai',lib.skill.shuaiyan.check2);
}
else event.finish();
'step 2'
var target=result.targets[0];
event.target=target;
player.line(target,'green');
target.chooseCard('he',true,'交给'+get.translation(player)+'一张牌');
'step 3'
player.gain(result.cards,target,'giveAuto')
},
},
relihuo:{
audio:2,
group:['relihuo_baigei','relihuo_damage'],
trigger:{player:'useCard1'},
filter:function(event,player){
if(event.card.name=='sha'&&!event.card.nature) return true;
},
check:function(event,player){
return false;
},
content:function(){
trigger.card.nature='fire';
trigger.relihuo=true;
},
},
relihuo_damage:{
trigger:{source:'damageBegin1'},
forced:true,
audio:'relihuo',
filter:function(event,player){
return event.getParent(2).relihuo==true;
},
content:function(){
trigger.num++;
},
},
relihuo_baigei:{
trigger:{player:'useCardAfter'},
forced:true,
audio:'relihuo',
filter:function(event,player){
var num=0;
player.getHistory('sourceDamage',function(evt){
if(evt.card==event.card) num+=evt.num;
});
return num>1;
},
content:function(){
var num=0;
player.getHistory('sourceDamage',function(evt){
if(evt.card==trigger.card) num+=evt.num;
});
player.loseHp(Math.floor(num/2));
},
},
gongsun:{
audio:2,
trigger:{player:'phaseUseBegin'},
@ -4222,6 +4344,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
gongsun:'共损',
gongsun_info:'出牌阶段开始时,你可以弃置两张牌并指定一名其他角色。你选择一个基本牌或普通锦囊牌的牌名。直到你的下回合开始或你死亡,你与其不能使用或打出或弃置此名称的牌。',
gongsun_shadow:'共损',
xin_chengpu:'手杀程普',
relihuo:'疠火',
relihuo_damage:'疠火',
relihuo_baigei:'疠火',
relihuo_info:'当你使用普【杀】时,你可以将此杀改为火属性。若如此做,当你因执行此【杀】的效果而对横置角色造成伤害时,此伤害+1当你使用的火【杀】结算完成后你失去X点体力X为你因此【杀】造成的伤害总点数的一半且向下取整',
dengzhi:'邓芝',
jimeng:'急盟',
jimeng_info:'出牌阶段开始时你可以获得一名其他角色的一张牌然后交给该角色X张牌X为你当前体力值。',
shuaiyan:'率言',
shuaiyan_info:'弃牌阶段开始时若你的手牌数大于1则你可以展示所有手牌然后你令一名其他角色交给你一张牌。',
}
};
});

View File

@ -9,11 +9,13 @@ 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','re_zhuran','re_wuyi','re_liaohua','re_guohuai','re_zhuran','re_chengpu','re_caozhang','re_quancong','yujin_yujin','re_lingtong'],
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','re_handang','re_zhonghui'],
},
},
connect:true,
character:{
re_zhonghui:['male','wei',4,['requanji','zili']],
re_handang:['male','wu',4,['regongji','jiefan']],
re_lingtong:['male','wu',4,['rexuanfeng']],
yujin_yujin:['male','wei',4,['rejieyue']],
re_caozhang:['male','wei',4,['new_jiangchi']],
@ -103,6 +105,129 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sunben:['zhouyu','taishici','daqiao'],
},
skill:{
regongji:{
mod:{
attackFrom:function(player){
if(player.getEquip(3)||player.getEquip(4)||player.getEquip(6)) return -Infinity
},
},
enable:'phaseUse',
usable:1,
position:'he',
filter:function(event,player){
return player.countCards('he',function(card){
return lib.skill.regongji.filterCard(card,player);
})>0;
},
filterCard:function(card,player){
return get.type(card,player)!='basic';
},
filterTarget:function(card,player,target){
return target!=player&&target.countDiscardableCards(player,'he')>0;
},
check:function(card){
return 4.5-get.value(card);
},
content:function(){
if(target.countDiscardableCards(player,'he')>0) player.discardPlayerCard(target,'he',true);
},
ai:{
order:5,
result:{
target:function(player,target){
var att=get.attitude(player,target);
var nh=target.countCards('h');
if(att>0){
if(target.getEquip('baiyin')&&target.isDamaged()&&
get.recoverEffect(target,player,player)>0){
if(target.hp==1&&!target.hujia) return 1.6;
if(target.hp==2) return 0.01;
return 0;
}
}
var es=target.getCards('e');
var noe=(es.length==0||target.hasSkillTag('noe'));
var noe2=(es.length==1&&es[0].name!='tengjia'&&get.value(es[0])<=0);
var noh=(nh==0||target.hasSkillTag('noh'));
if(noh&&(noe||noe2)) return 0;
if(att<=0&&!target.countCards('he')) return 1.5;
return -1.5;
},
},
tag:{
loseCard:1,
discard:1
},
},
},
requanji:{
audio:2,
trigger:{player:['damageEnd','phaseUseEnd']},
frequent:true,
locked:false,
notemp:true,
init:function(player){
if(!player.storage.quanji) player.storage.quanji=[];
},
filter:function(event,player){
if(event.name=='phaseUse') return player.countCards('h')>player.hp;
return event.num>0;
},
content:function(){
"step 0"
event.count=trigger.num||1;
"step 1"
event.count--;
player.draw();
"step 2"
if(player.countCards('he')){
player.chooseCard('将一张手牌置于武将牌上作为“权”',true);
}
else{
event.goto(4);
}
"step 3"
if(result.cards&&result.cards.length){
player.lose(result.cards,ui.special,'toStorage');
player.storage.quanji=player.storage.quanji.concat(result.cards);
player.syncStorage('quanji');
player.markSkill('quanji');
game.log(player,'将',result.cards,'置于武将牌上作为“权”');
}
"step 4"
if(event.count>0){
player.chooseBool(get.prompt2('requanji')).set('frequentSkill','requanji');
}
else event.finish();
"step 5"
if(result.bool){
player.logSkill('requanji');
event.goto(1);
}
},
mod:{
maxHandcard:function(player,num){
return num+player.storage.quanji.length;
}
},
ai:{
maixie:true,
maixie_hp:true,
threaten:0.8,
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')){
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
if(!target.hasFriend()) return;
if(target.hp>=4) return [0.5,get.tag(card,'damage')*2];
if(!target.hasSkill('paiyi')&&target.hp>1) return [0.5,get.tag(card,'damage')*1.5];
if(target.hp==3) return [0.5,get.tag(card,'damage')*1.5];
if(target.hp==2) return [1,get.tag(card,'damage')*0.5];
}
}
}
}
},
ollongdan:{
audio:'longdan_sha',
audioname:['re_zhaoyun','sp_zhaoyun'],
@ -1965,6 +2090,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(targets[0].hasZhuSkill('olzhiba',player)) targets[0].logSkill('olzhiba');
},
direct:true,
clearTime:true,
contentBefore:function(){
'step 0'
var list=[];
@ -6687,9 +6813,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
oltishen_info:'限定技准备阶段你可以将体力回复至上限然后摸X张牌X为你回复的体力值。',
ollongdan:'龙胆',
ollongdan_info:'你可以将一张【杀】当做【闪】、【闪】当做【杀】、【酒】当做【桃】、【桃】当做【酒】使用或打出。',
ollongdan_jiu:'龙胆(酒)',
olyajiao:'涯角',
olyajiao_info:'当你于回合外因使用或打出而失去手牌后,你可以展示牌堆顶的一张牌。若这两张牌的类别相同,你可以将展示的牌交给一名角色;若类别不同,你可弃置攻击范围内包含你的角色区域里的一张牌。',
re_zhonghui:'界钟会',
re_handang:'界韩当',
requanji:'权计',
requanji_info:'出牌阶段结束时若你的手牌数大于体力值或当你受到1点伤害后你可以摸一张牌然后将一张手牌置于武将牌上称为“权”你的手牌上限+XX为“权”的数量。',
regongji:'弓骑',
regongji_info:'出牌阶段限一次,你可以弃置一张非基本牌,然后弃置一名其他角色的一张牌。锁定技,当你的装备区内有坐骑牌时,你的攻击范围无限。',
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',

View File

@ -659,8 +659,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
player.chooseToDisable(true).set('ai',function(event,player,list){
if(list.contains('equip2')) return 'equip2';
if(list.contains('equip1')&&player.countCards('h',{name:'sha'})>2) return 'equip1';
if(list.contains('equip5')&&player.countCards('h',{type:'trick'})>=1) return 'equip5';
if(list.contains('equip1')&&(player.countCards('h',function(card){
return get.name(card,player)=='sha'&&player.hasUseTarget(card);
})-player.getCardUsable('sha'))>1) return 'equip1';
if(list.contains('equip5')&&player.countCards('h',function(card){
return get.type2(card,player)=='trick'&&player.hasUseTarget(card);
})>1) return 'equip5';
});
'step 1'
if(result.control=='equip1'){
@ -682,8 +686,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
result:{
player:function(player){
if(!player.isDisabled('equip2')) return 1;
if(!player.isDisabled('equip1')&&player.countCards('h',{name:'sha'})>2) return 1;
if(!player.isDisabled('equip5')&&player.countCards('h',{type:'trick'})>=1) return 1;
if(!player.isDisabled('equip1')&&(player.countCards('h',function(card){
return get.name(card,player)=='sha'&&player.hasUseTarget(card);
})-player.getCardUsable('sha'))>1) return 1;
if(!player.isDisabled('equip5')&&player.countCards('h',function(card){
return get.type2(card,player)=='trick'&&player.hasUseTarget(card);
})>1) return 1;
return -1;
},
},
@ -3389,6 +3397,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return target.hasZhuSkill('zhiba',player)&&player.canCompare(target);
},
direct:true,
clearTime:true,
prepare:function(cards,player,targets){
targets[0].logSkill('zhiba');
},
@ -4161,7 +4170,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{source:'damageSource'},
filter:function(event,player){
if(event._notrigger.contains(event.player)) return false;
return (event.card&&event.card.name=='sha'&&
return (event.card&&event.card.name=='sha'&&event.getParent().name=='sha'&&
event.player.isAlive()&&
player.canCompare(event.player));
},
@ -6643,6 +6652,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
delay:false,
line:true,
direct:true,
clearTime:true,
prepare:function(cards,player,targets){
targets[0].logSkill('huangtian');
},

View File

@ -83,7 +83,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xiahouba:['male','shu',4,['baobian']],
yuanshu:['male','qun',4,['yongsi','weidi']],
sp_diaochan:['female','qun',3,['lihun','rebiyue']],
sp_zhaoyun:['male','qun',3,['longdan','chongzhen']],
sp_zhaoyun:['male','qun',3,['ollongdan','chongzhen']],
jsp_zhaoyun:['male','qun',3,['chixin','yicong','suiren']],
liuxie:['male','qun',3,['tianming','mizhao']],
zhugejin:['male','wu',3,['hongyuan','huanshi','mingzhe']],
@ -102,7 +102,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhugedan:['male','wei',4,['gongao','juyi']],
sp_jiangwei:['male','wei',4,['kunfen','fengliang']],
sp_machao:['male','qun',4,['zhuiji','ol_shichou']],
sunhao:['male','wu',5,['canshi','chouhai','guiming'],['zhu']],
sunhao:['male','wu',5,['recanshi','rechouhai','guiming'],['zhu']],
shixie:['male','qun',3,['biluan','lixia']],
mayunlu:['female','shu',4,['fengpo','mashu']],
zhanglu:['male','qun',3,['yishe','bushi','midao']],
@ -144,7 +144,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dongbai:['female','qun',3,['lianzhu','xiehui']],
zhaoxiang:['female','shu',4,['fanghun','fuhan']],
zhaoxiang:['female','shu',4,['refanghun','refuhan']],
mazhong:['male','shu',4,['fuman']],
dongyun:['male','shu',3,['bingzheng','sheyan']],
kanze:['male','wu',3,['xiashu','kuanshi']],
@ -1766,11 +1766,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var name=get.type(result.cards[0])=='basic'?'neifa_basic':'neifa_nobasic';
player.addTempSkill(name);
var num=Math.min(5,player.countCards('h',function(cardx){
return !lib.filter.cardEnabled(cardx,player);
return (name=='neifa_basic')!=(get.type(cardx,player)=='basic')
}));
player.addMark(name,num,false);
}
},
ai:{
threaten:3,
},
},
neifa_basic:{
mark:true,
@ -1882,6 +1885,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
group:'neifa_use',
ai:{
reverseOrder:true,
skillTagFilter:function(player){
if(player.storage.counttrigger&&player.storage.counttrigger.neifa_use>=2) return false;
},
effect:{
target:function(card,player,target){
if((!player.storage.counttrigger||!player.storage.counttrigger.neifa_use||player.storage.counttrigger.neifa_use<2)&&player==target&&get.type(card)=='equip') return [1,3];
},
},
},
},
neifa_use:{
audio:'neifa',
@ -3304,7 +3318,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.popup(trigger.card.name,trigger.name=='useCard'?'metal':'wood');
'step 1'
var random=0.5+player.countCards('e')*0.1;
if(get.isLuckyStar()) random=1;
if(get.isLuckyStar()||event.card.name=='wuxie') random=1;
if(random>=Math.random()){
player.popup('洗具');
}
@ -7338,6 +7352,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
'step 0'
if(player.storage.fanghun) player.draw(player.storage.fanghun);
player.removeMark('fanghun',player.storage.fanghun);
event.num=Math.max(2,player.storage.fanghun2||0);
var list;
if(_status.characterlist){
@ -7383,14 +7398,71 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.recover();
}
},
refuhan:{
audio:'fuhan',
trigger:{player:'phaseBegin'},
unique:true,
limited:true,
skillAnimation:true,
animationColor:'orange',
forceunique:true,
filter:function(event,player){
return player.countMark('fanghun')>0;
},
content:function(){
'step 0'
if(player.storage.fanghun) player.draw(player.storage.fanghun);
player.removeMark('fanghun',player.storage.fanghun);
var list;
if(_status.characterlist){
list=[];
for(var i=0;i<_status.characterlist.length;i++){
var name=_status.characterlist[i];
if(lib.character[name][1]=='shu') list.push(name);
}
}
else if(_status.connectMode){
list=get.charactersOL(function(i){
return lib.character[i][1]!='shu';
});
}
else{
list=get.gainableCharacters(function(info){
return info[1]=='shu';
});
}
var players=game.players.concat(game.dead);
for(var i=0;i<players.length;i++){
list.remove(players[i].name);
list.remove(players[i].name1);
list.remove(players[i].name2);
}
// var dialog=ui.create.dialog();
// dialog.add([list.randomGets(5),'character']);
player.chooseButton(true).set('ai',function(button){
return get.rank(button.link,true)-lib.character[button.link][2];
}).set('createDialog',['获得一张武将牌上的所有技能',[list.randomGets(5),'character']]);
player.awakenSkill('refuhan');
'step 1'
player.addSkill(lib.character[result.links[0]][3]);
player.flashAvatar('refuhan',result.links[0]);
game.log(player,'获得了','#g'+get.translation(result.links[0]),'的所有技能');
},
},
refanghun:{
audio:'fanghun',
inherit:'fanghun',
trigger:{
player:'useCard',
target:'useCardToTargeted',
},
},
fanghun:{
audio:2,
init:function(player){
player.storage.fanghun=0;
player.storage.fanghun2=0;
},
marktext:'影',
intro:{
content:'mark'
content:'mark',
name:'梅影',
},
trigger:{
source:'damageSource',
@ -7401,11 +7473,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return event.card&&event.card.name=='sha';
},
content:function(){
player.storage.fanghun+=trigger.num;
player.storage.fanghun2+=trigger.num;
player.markSkill('fanghun');
player.addMark('fanghun',trigger.num||1);
player.addMark('fanghun2',trigger.num||1,false);
},
group:['fanghun_sha','fanghun_shan','fanghun_draw'],
group:['fanghun_sha','fanghun_draw'],
subSkill:{
draw:{
trigger:{player:['useCard','respond']},
@ -7419,81 +7490,97 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
sha:{
audio:'fanghun',
enable:['chooseToUse','chooseToRespond'],
filterCard:{name:'shan'},
viewAs:{name:'sha'},
viewAsFilter:function(player){
prompt:'弃置一枚【梅影】标记,将杀当做闪,或将闪当做杀,或将桃当做酒,或将酒当做桃使用或打出',
viewAs:function(cards,player){
var name=false;
switch(get.name(cards[0],player)){
case 'sha':name='shan';break;
case 'shan':name='sha';break;
case 'tao':name='jiu';break;
case 'jiu':name='tao';break;
}
if(name) return {name:name};
return null;
},
check:function(card){
var player=_status.event.player;
if(_status.event.type=='phase'){
var max=0;
var name2;
var list=['sha','tao','jiu'];
var map={sha:'shan',tao:'jiu',jiu:'tao'}
for(var i=0;i<list.length;i++){
var name=list[i];
if(player.countCards('h',map[name])>(name=='jiu'?1:0)&&player.getUseValue({name:name})>0){
var temp=get.order({name:name});
if(temp>max){
max=temp;
name2=map[name];
}
}
}
if(name2==get.name(card,player)) return 1;
return 0;
}
return 1;
},
filterCard:function(card,player,event){
event=event||_status.event;
var filter=event._backup.filterCard;
var name=get.name(card,player);
if(name=='sha'&&filter({name:'shan',cards:[card]},player,event)) return true;
if(name=='shan'&&filter({name:'sha',cards:[card]},player,event)) return true;
if(name=='tao'&&filter({name:'jiu',cards:[card]},player,event)) return true;
if(name=='jiu'&&filter({name:'tao',cards:[card]},player,event)) return true;
return false;
},
filter:function(event,player){
if(!player.storage.fanghun||player.storage.fanghun<0) return false;
if(!player.countCards('h','shan')) return false;
var filter=event.filterCard;
if(filter({name:'sha'},player,event)&&player.countCards('h','shan')) return true;
if(filter({name:'shan'},player,event)&&player.countCards('h','sha')) return true;
if(filter({name:'tao'},player,event)&&player.countCards('h','jiu')) return true;
if(filter({name:'jiu'},player, event)&&player.countCards('h','tao')) return true;
return false;
},
prompt:'将一张闪当杀使用或打出',
onrespond:function(){return this.onuse.apply(this,arguments)},
onuse:function(result,player){
player.storage.fanghun--;
if(!player.storage.fanghun||player.storage.fanghun<0){
player.storage.fanghun=0;
player.unmarkSkill('fanghun');
}
else{
player.updateMarks();
}
player.removeMark('fanghun',1);
},
check:function(){return 1},
ai:{
respondSha:true,
skillTagFilter:function(player){
if(!player.storage.fanghun||player.storage.fanghun<0) return false;
if(!player.countCards('h','shan')) return false;
},
order:function(){
return get.order({name:'sha'})+0.1;
},
useful:-1,
value:-1
}
},
shan:{
enable:['chooseToUse','chooseToRespond'],
audio:'fanghun',
filterCard:{name:'sha'},
viewAs:{name:'shan'},
prompt:'将一张杀当闪使用或打出',
viewAsFilter:function(player){
if(!player.storage.fanghun||player.storage.fanghun<0) return false;
if(!player.countCards('h','sha')) return false;
},
onrespond:function(result,player){
player.storage.fanghun--;
if(!player.storage.fanghun||player.storage.fanghun<0){
player.storage.fanghun=0;
player.unmarkSkill('fanghun');
}
else{
player.updateMarks();
}
},
onuse:function(result,player){
player.storage.fanghun--;
if(!player.storage.fanghun||player.storage.fanghun<0){
player.storage.fanghun=0;
player.unmarkSkill('fanghun');
}
else{
player.updateMarks();
}
},
check:function(){return 1},
ai:{
respondShan:true,
skillTagFilter:function(player){
save:true,
skillTagFilter:function(player,tag){
if(!player.storage.fanghun||player.storage.fanghun<0) return false;
if(!player.countCards('h','sha')) return false;
var name;
switch(tag){
case 'respondSha':name='shan';break;
case 'respondShan':name='sha';break;
case 'save':name='jiu';break;
}
if(!player.countCards('h',name)) return false;
},
order:4,
useful:-1,
value:-1
order:function(item,player){
if(player&&_status.event.type=='phase'){
var max=0;
var list=['sha','tao','jiu'];
var map={sha:'shan',tao:'jiu',jiu:'tao'}
for(var i=0;i<list.length;i++){
var name=list[i];
if(player.countCards('h',map[name])>(name=='jiu'?1:0)&&player.getUseValue({name:name})>0){
var temp=get.order({name:name});
if(temp>max) max=temp;
}
}
if(max>0) max+=0.3;
return max;
}
return 4;
},
},
},
}
},
yjixi:{
@ -11655,6 +11742,77 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
},
recanshi:{
audio:2,
trigger:{player:'phaseDrawBegin2'},
check:function(event,player){
if(player.skipList.contains('phaseUse')||!player.countCards('h',function(card){
return get.type(card,'trick')=='trick'&&player.hasUseTarget(card);
})) return true;
var num=game.countPlayer(function(current){
if(player.hasZhuSkill('guiming')&&current.group=='wu') return true;
return current.isDamaged();
});
return num>1;
},
prompt:function(event,player){
var num=game.countPlayer(function(current){
if(player.hasZhuSkill('guiming')&&current.group=='wu'&&current!=player) return true;
return current.isDamaged();
});
return '残蚀:是否多摸'+get.cnNumber(num)+'张牌?';
},
filter:function(event,player){
return !event.numFixed&&game.hasPlayer(function(current){
if(player.hasZhuSkill('guiming')&&current.group=='wu'&&current!=player) return true;
return current.isDamaged();
});
},
content:function(){
var num=game.countPlayer(function(current){
if(player.hasZhuSkill('guiming')&&current.group=='wu'&&current!=player) return true;
return current.isDamaged();
});
if(num>0){
trigger.num+=num;
}
player.addTempSkill('recanshi2');
}
},
recanshi2:{
trigger:{player:'useCard'},
forced:true,
filter:function(event,player){
if(player.countCards('he')==0) return false;
var type=get.type(event.card,'trick');
return type=='trick';
},
autodelay:true,
content:function(){
player.chooseToDiscard(true,'he');
}
},
rechouhai:{
audio:2,
trigger:{player:'damageBegin3'},
forced:true,
check:function(){
return false;
},
filter:function(event,player){
return event.card.name=='sha'&&player.countCards('h')==0;
},
content:function(){
trigger.num++;
},
ai:{
effect:{
target:function(card,player,target,current){
if(card.name=='sha'&&target.countCards('h')==0) return [1,-2];
}
}
}
},
kunfen:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
@ -14433,7 +14591,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
chongzhen:{
group:['chongzhen1','chongzhen2'],
ai:{
combo:'longdan',
combo:'ollongdan',
mingzhi:false,
effect:{
target:function(card,player,target,current){
@ -14454,8 +14612,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
trigger:{player:'useCard'},
filter:function(event,player){
if(event.skill!='longdan_shan'&&event.skill!='longdan_sha'&&
event.skill!='fanghun_shan'&&event.skill!='fanghun_sha') return false;
if((event.card.name!='sha'&&event.card.name!='shan')||(event.skill!='longdan_shan'&&event.skill!='longdan_sha'&&
event.skill!='fanghun_shan'&&event.skill!='fanghun_sha'&&event.skill!='ollongdan')) return false;
var target=lib.skill.chongzhen1.logTarget(event,player);
return target&&target.countGainableCards(player,'h')>0;
},
@ -14474,7 +14632,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'respond'},
filter:function(event,player){
if(event.skill!='longdan_shan'&&event.skill!='longdan_sha'&&
event.skill!='fanghun_shan'&&event.skill!='fanghun_sha') return false;
event.skill!='fanghun_shan'&&event.skill!='fanghun_sha'&&event.skill!='ollongdan') return false;
return event.source&&event.source.countGainableCards(player,'h')>0;
},
logTarget:'source',
@ -17435,7 +17593,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinfenyue:'奋钺',
xinfenyue_info:'出牌阶段限X次X为与你不同阵营的存活角色数你可以与一名其他角色拼点若你赢根据你拼点牌的点数依次执行以下效果不大于5你获得其一张牌不大于9你获得牌堆里的一张【杀】; 不大于K视为你对其使用一张雷【杀】。',
neifa:'内伐',
neifa_info:'出牌阶段开始时,你可以摸两张牌或获得场上的一张牌,然后弃置一张牌。若弃置的牌是基本牌,本回合你不能使用锦囊和装备牌,且【杀】的使用次数+X且目标+1若弃置的不是基本牌本回合你不能使用基本牌且使用普通锦囊牌选择目标时可以增加或减少一个目标前两次使用装备牌时摸X张牌X为你发动〖内伐〗弃牌后手牌中不能使用的牌的数量且最多为5。',
neifa_info:'出牌阶段开始时,你可以摸两张牌或获得场上的一张牌,然后弃置一张牌。若弃置的牌是基本牌,本回合你不能使用锦囊和装备牌,且【杀】的使用次数+X且目标+1若弃置的不是基本牌本回合你不能使用基本牌且使用普通锦囊牌选择目标时可以增加或减少一个目标前两次使用装备牌时摸X张牌X为你发动〖内伐〗弃牌后手牌中因〖内伐〗而不能使用的牌的数量且最多为5。',
neifa_use:'内伐',
hmmanyi:'蛮裔',
hmmanyi_info:'锁定技,【南蛮入侵】对你无效。',
@ -17714,8 +17872,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
duanbing_info:'当你使用【杀】选择目标后你可以令一名距离为1的其他角色也成为此牌的目标。',
fanghun:'芳魂',
fanghun_info:'当你使用【杀】造成伤害或受到【杀】的伤害后你获得X个“梅影”标记X为伤害点数你可以移去1个“梅影”标记来发动〖龙胆〗并摸一张牌。',
refanghun:'芳魂',
refanghun_info:'当你使用【杀】或成为【杀】的目标后你获得1个“梅影”标记你可以移去1个“梅影”标记来发动〖龙胆〗并摸一张牌。',
fanghun_sha:'龙胆',
fuhan:'扶汉',
fuhan_info:'限定技回合开始时你可以移去所有“梅影”标记并摸等量的牌随机观看五名未登场的蜀势力角色将武将牌替换为其中一名角色并将体力上限数调整为本局游戏中移去“梅影”标记的数量至少为2至多为8然后回复1点体力。',
refuhan:'扶汉',
refuhan_info:'限定技,回合开始时,你可以移去所有“梅影”标记并摸等量的牌,随机观看五名未登场的蜀势力角色,获得其中一张武将牌上的所有技能。',
yjixi:'觊玺',
yjixi_info:'觉醒技结束阶段若你连续三回合没有因〖庸肆〗而失去过体力则你增加1点体力上限并回复1点体力然后选择一项获得技能〖妄尊〗摸两张牌并获得当前主公的主公技。',
xinyongsi:'庸肆',
@ -17994,6 +18157,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhuiji:'追击',
chouhai:'仇海',
chouhai_info:'锁定技,当你受到伤害时,若你没有手牌,此伤害+1。',
rechouhai:'仇海',
rechouhai_info:'锁定技,当你受到渠道为【杀】的伤害时,若你没有手牌,此伤害+1。',
guiming:'归命',
guiming_info:'主公技,锁定技,你将残蚀描述中的“已受伤角色”改为“已受伤角色或其他吴势力角色”',
chixin:'赤心',
@ -18005,6 +18170,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
canshi:'残蚀',
canshi2:'残蚀',
canshi_info:'摸牌阶段开始时你可以改为摸X张牌X为已受伤的角色数若如此做当你于此回合内使用基本牌或锦囊牌时你弃置一张牌。',
recanshi:'残蚀',
recanshi2:'残蚀',
recanshi_info:'摸牌阶段开始时你可以多摸X张牌X为已受伤的角色数若如此做当你于此回合内使用锦囊牌时你弃置一张牌。',
zhuiji_info:'锁定技你与体力值不大于你的角色的距离视为1。',
kunfen:'困奋',
kunfen_info:'锁定技结束阶段开始时你失去1点体力然后摸两张牌。',

View File

@ -37,7 +37,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
handang:['male','wu',4,['gongji','jiefan']],
fuhuanghou:['female','qun',3,['qiuyuan','zhuikong']],
zhonghui:['male','wei',4,['quanji','zili']],
jianyong:['male','shu',3,['qiaoshui','jyzongshi']],
jianyong:['male','shu',3,['reqiaoshui','jyzongshi']],
madai:['male','shu',4,['mashu','qianxi']],
liufeng:['male','shu',4,['xiansi']],
manchong:['male','wei',3,['xinjunxing','yuce']],
@ -51,7 +51,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhuhuan:['male','wu',4,['fenli','pingkou']],
xiahoushi:['female','shu',3,['qiaoshi','yanyu']],
panzhangmazhong:['male','wu',4,['duodao','anjian']],
panzhangmazhong:['male','wu',4,['reduodao','reanjian']],
zhoucang:['male','shu',4,['xinzhongyong']],
guanping:['male','shu',4,['longyin']],
liaohua:['male','shu',4,['dangxian','fuli']],
@ -429,7 +429,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
subSkill:{
damage:{
sub:true,
trigger:{global:'damage'},
trigger:{global:'damageBegin1'},
audio:'benxi',
forced:true,
filter:function(event,player){
@ -909,10 +909,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
evt.after.push(next);
next.player=player;
next.setContent(function(){
game.broadcastAll(function(player){
player.storage.xintaoluan=[];
delete player.storage.xintaoluan2;
},player);
});
}
player.storage.xintaoluan.add(result.card.name);
@ -1006,10 +1004,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
evt.xintaoluan=true;
next.player=player;
next.setContent(function(){
game.broadcastAll(function(player){
player.storage.xintaoluan=[];
delete player.storage.xintaoluan2;
},player);
});
}
player.storage.xintaoluan.add('shan');
@ -1059,10 +1055,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
evt.after.push(next);
next.player=player;
next.setContent(function(){
game.broadcastAll(function(player){
player.storage.xintaoluan=[];
delete player.storage.xintaoluan2;
},player);
});
}
player.storage.xintaoluan.add('wuxie');
@ -2893,6 +2887,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else{
event.finish();
}
delete _status.noclearcountdown;
game.stopCountChoose();
"step 3"
if(event.target.getCards('he').contains(event.card)){
event.target.chooseControlList('问卦','将'+get.translation(event.card)+'置于牌堆顶','将'+get.translation(event.card)+'置于牌堆底',event.target==player,function(){
@ -5131,6 +5127,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'phaseJieshuBegin'},
direct:true,
audio:2,
audioname:['xin_chengpu'],
filter:function(event,player){
return player.countCards('h')>0&&(_status.connectMode||player.countCards('h','sha')>0)&&!player.storage.chunlao.length;
},
@ -5186,6 +5183,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return target==_status.event.dying;
},
direct:true,
clearTime:true,
delay:false,
selectTarget:-1,
content:function(){
@ -5193,7 +5191,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.chooseCardButton(get.translation('chunlao'),player.storage.chunlao,true);
"step 1"
if(result.bool){
player.logSkill('chunlao');
player.logSkill('chunlao',target);
player.$throw(result.links);
player.storage.chunlao.remove(result.links[0]);
game.cardsDiscard(result.links[0]);
@ -7074,13 +7072,119 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
'step 1'
if(result.bool&&trigger.source.getEquip(1)){
player.gain(trigger.source.getEquip(1),trigger.source,'give');
player.gain(trigger.source.getEquip(1),trigger.source,'give','bySelf');
}
},
ai:{
maixie_defend:true,
}
},
reanjian:{
trigger:{player:'useCardToPlayered'},
forced:true,
audio:'anjian',
filter:function(event,player){
return event.card.name=='sha'&&!event.target.inRange(player);
},
logTarget:'target',
content:function(){
trigger.getParent().reanjian_buffed=true;
var map=trigger.customArgs;
var id=trigger.target.playerid;
if(!map[id]) map[id]={};
if(!map[id].extraDamage) map[id].extraDamage=0;
map[id].extraDamage++;
trigger.target.addTempSkill('reanjian2');
trigger.target.addTempSkill('reanjian4');
trigger.target.storage.reanjian2.add(trigger.card);
},
ai:{
unequip_ai:true,
skillTagFilter:function(player,tag,arg){
if(arg&&arg.name=='sha'&&arg.target&&!arg.target.inRange(player)) return true;
return false;
}
},
},
reanjian2:{
firstDo:true,
ai:{unequip2:true},
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=[];
},
onremove:true,
trigger:{
player:['damage','damageCancelled','damageZero'],
target:['shaMiss','useCardToExcluded'],
},
charlotte:true,
filter:function(event,player){
return player.storage.reanjian2&&event.card&&player.storage.reanjian2.contains(event.card);
},
silent:true,
forced:true,
popup:false,
priority:12,
content:function(){
player.storage.reanjian2.remove(trigger.card);
if(!player.storage.reanjian2.length) player.removeSkill('reanjian2');
},
},
reanjian3:{
mod:{
cardSavable:function(card){
if(card.name=='tao') return false;
},
},
},
reanjian4:{
trigger:{player:'dyingBegin'},
forced:true,
silent:true,
firstDo:true,
filter:function(event,player){
return event.getParent(2).reanjian_buffed=true;
},
content:function(){
player.addTempSkill('reanjian3',{global:['dyingEnd','phaseEnd']});
},
},
reduodao:{
trigger:{target:'useCardToTargeted'},
filter:function(event,player){
return event.card.name=='sha'&&(get.color(event.card)=='red'?event.player.getEquip(1):player.countCards('he')>0);
},
direct:true,
audio:'duodao',
content:function(){
'step 0'
if(get.color(trigger.card)!='red'){
var prompt='弃置一张牌'
if(trigger.player.getEquip(1)) prompt+=(',然后获得'+get.translation(trigger.player)+'装备区中的'+get.translation(trigger.player.getEquip(1)));
var next=player.chooseToDiscard('he',get.prompt('reduodao',trigger.player),prompt);
next.logSkill=['reduodao',trigger.player];
next.set('ai',function(card){
if(!_status.event.getTrigger().player.getEquip(1)) return 0;
if(get.attitude(_status.event.player,_status.event.getTrigger().player)*get.value(_status.event.getTrigger().player.getEquip(1))<=0){
return 6-get.value(card);
}
return 0;
});
}
else{
player.chooseBool('是否发动夺刀】,获得'+get.translation(trigger.player)+'装备区的'+get.translation(trigger.player.getEquip(1))+'').set('ai',function(){
var player=_status.event.player;
var source=_status.event.getTrigger().player;
return get.attitude(player,source)*get.value(source.getEquip(1))<=0;
});
}
'step 1'
if(result.bool&&trigger.player.getEquip(1)){
if(!result.cards||!result.cards.length) player.logSkill('reduodao',trigger.player);
player.gain(trigger.player.getEquip(1),trigger.player,'give','bySelf');
}
},
},
anjian:{
audio:2,
trigger:{source:'damageBegin1'},
@ -7485,6 +7589,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
skillAnimation:true,
animationColor:'wood',
audio:2,
audioname:['re_handang'],
unique:true,
limited:true,
mark:true,
@ -7693,6 +7798,48 @@ game.import('character',function(lib,game,ui,get,ai,_status){
order:7
}
},
reqiaoshui:{
audio:'qiaoshui',
enable:'phaseUse',
filterTarget:function(card,player,target){
return player.canCompare(target);
},
filter:function(event,player){
return player.countCards('h')>0;
},
content:function(){
'step 0'
player.chooseToCompare(target);
'step 1'
if(result.bool) player.addTempSkill('qiaoshui3','phaseUseEnd');
else{
player.addTempSkill('qiaoshui4');
event.getParent(3).skipped=true;
}
},
ai:{
order:10,
result:{
target:function (player,target){
if(player.hasSkill('qiaoshui3')) return 0;
var nd=!player.needsToDiscard();
if(player.hasCard(function(card){
if(get.position(card)!="h") return false;
var val=get.value(card)
if(nd&&val<0) return true;
if(val<=5){
return card.number>=12;
}
if(val<=6){
return card.number>=13;
}
return false;
})) return -1;
return 0;
},
},
},
},
qiaoshui:{
audio:2,
trigger:{player:'phaseUseBegin'},
@ -7810,6 +7957,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.logSkill('qiaoshui',event.targets);
}
},
qiaoshui4:{
mod:{
ignoredHandcard:function(card,player){
if(get.type(card,'trick',player)=='trick'){
return true;
}
},
cardDiscardable:function(card,player,name){
if(name=='phaseDiscard'&&get.type(card,'trick',player)=='trick'){
return false;
}
},
},
},
jyzongshi_old:{
audio:2,
trigger:{target:'useCardToBegin'},
@ -8263,7 +8424,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zili:{
skillAnimation:true,
animationColor:'thunder',
audio:3,
audio:2,
audioname:['re_zhonghui'],
unique:true,
juexingji:true,
trigger:{player:'phaseZhunbeiBegin'},
@ -8287,6 +8449,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:'phaseUse',
usable:1,
audio:2,
audioname:['re_zhonghui'],
filter:function(event,player){
return player.storage.quanji&&player.storage.quanji.length>0;
},
@ -8297,6 +8460,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
backup:function(links,player){
return {
audio:'paiyi',
audioname:['re_zhonghui'],
filterTarget:true,
filterCard:function(){return false},
selectCard:-1,
@ -8308,7 +8472,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
result:{
target:function(player,target){
if(player!=target) return 0;
if(player.countCards('h')+2<=player.hp+player.storage.quanji.length) return 1;
if(!player.hasSkill('requanji')&&player.countCards('h')+2<=player.hp+player.storage.quanji.length) return 1;
return 0;
}
},
@ -11285,7 +11449,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:'司敌',
@ -11349,6 +11513,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mingjian_info:'出牌阶段限一次,你可以将所有手牌交给一名其他角色,若如此做,该角色于其下个回合的手牌上限+1且使用【杀】的次数上限+1',
xingshuai:'兴衰',
xingshuai_info:'主公技限定技当你进入濒死状态时其他魏势力角色可依次令你回复1点体力然后这些角色依次受到1点伤害。',
reduodao:'夺刀',
reduodao_info:'当你成为【杀】的目标后,若此杀:为红色,你可点击确定键。不为红色,你可以弃置一张牌。然后你获得此【杀】使用者装备区里的武器牌。',
reanjian:'暗箭',
reanjian_info:'锁定技,当你使用【杀】指定目标后,若你不在其攻击范围内,则此杀伤害+1且无视其防具。若其因执行此【杀】的效果受到伤害而进入濒死状态则其不能使用【桃】直到此濒死事件结算结束。',
duodao:'夺刀',
duodao_info:'当你受到【杀】造成的伤害后,你可以弃置一张牌,然后获得伤害来源装备区里的武器牌',
anjian:'暗箭',
@ -11417,6 +11585,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jyzongshi_info:'当你拼点赢时,你可以获得对方此次拼点的牌;当你拼点没赢时,你可以收回你此次拼点的牌。',
qiaoshui:'巧说',
qiaoshui_info:'出牌阶段开始时,你可与一名其他角色拼点。若你赢,你使用的下一张基本牌或普通锦囊牌可以额外指定任意一名其他角色为目标或减少指定一个目标;若你没赢,你不能使用锦囊牌直到回合结束',
reqiaoshui:'巧说',
reqiaoshui_info:'出牌阶段,你可与一名其他角色拼点。若你赢,你使用的下一张基本牌或普通锦囊牌可以额外指定任意一名其他角色为目标或减少指定一个目标;若你没赢,你结束出牌阶段且本回合内锦囊牌不计入手牌上限。',
junxing:'峻刑',
junxing_info:'出牌阶段限一次你可以弃置至少一张手牌并选择一名其他角色该角色需弃置一张与你弃置的牌类别均不同的手牌否则其先将其武将牌翻面再摸X张牌X为你以此法弃置的手牌数量。',
xinjunxing:'峻刑',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.100',
'v1.9.100.1',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -568,6 +568,11 @@ window.noname_asset_list=[
'audio/die/yangyi.mp3',
'audio/die/yujin_yujin.mp3',
'audio/die/ol_weiyan.mp3',
'audio/die/dengzhi.mp3',
'audio/die/re_handang.mp3',
'audio/die/re_zhonghui.mp3',
'audio/die/xin_chengpu.mp3',
'audio/die/zhengxuan.mp3',
'audio/skill/anguo1.mp3',
'audio/skill/anguo2.mp3',
@ -2492,6 +2497,24 @@ window.noname_asset_list=[
'audio/skill/kuanggu_ol_weiyan2.mp3',
'audio/skill/reqimou1.mp3',
'audio/skill/reqimou2.mp3',
'audio/skill/chunlao_xin_chengpu1.mp3',
'audio/skill/chunlao_xin_chengpu2.mp3',
'audio/skill/jiefan_re_handang1.mp3',
'audio/skill/jiefan_re_handang2.mp3',
'audio/skill/jimeng1.mp3',
'audio/skill/jimeng2.mp3',
'audio/skill/paiyi_re_zhonghui1.mp3',
'audio/skill/paiyi_re_zhonghui2.mp3',
'audio/skill/regongji1.mp3',
'audio/skill/regongji2.mp3',
'audio/skill/relihuo1.mp3',
'audio/skill/relihuo2.mp3',
'audio/skill/requanji1.mp3',
'audio/skill/requanji2.mp3',
'audio/skill/shuaiyan1.mp3',
'audio/skill/shuaiyan2.mp3',
'audio/skill/zili_re_zhonghui1.mp3',
'audio/skill/zili_re_zhonghui2.mp3',
'font/huangcao.ttf',
'font/shousha.ttf',
@ -3049,7 +3072,11 @@ window.noname_asset_list=[
'image/character/key_yuzuru.jpg',
'image/character/old_wangyun.jpg',
'image/character/old_zhaoyun.jpg',
'image/character/sp_key_kanade.jpg',
'image/character/sp_key_kanade.jpg','image/character/key_mio.jpg',
'image/character/re_handang.jpg',
'image/character/re_zhonghui.jpg',
'image/character/xin_chengpu.jpg',
'image/character/key_midori.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -10692,7 +10692,10 @@
return event.filter2(info2)&&event.filter1(info2)&&info2[1]==info[1]&&info[2]==info2[2]&&(lib.skill.global.contains(info2[0])||info[1].hasSkill(info2[0],true));
}
'step 1'
if(event.list.length){
if(trigger.filterStop&&trigger.filterStop()){
event.finish();
}
else if(event.list.length){
var info=event.list.shift();
game.createTrigger(event.triggername,info[0],info[1],trigger);
event.redo();
@ -10764,7 +10767,10 @@
game.createTrigger(event.triggername,info[0],info[1],trigger);
}
'step 7'
event.goto(event.doing.list.length?3:2);
if(trigger.filterStop&&trigger.filterStop()){
event.finish();
}
else event.goto(event.doing.list.length?3:2);
},
createTrigger:function(){
"step 0"
@ -14648,39 +14654,14 @@
damage:function(){
"step 0"
event.forceDie=true;
if(event.source&&event.source.isDead()) delete event.source;
if(num<=0){
event.trigger('damageZero');
event.finish();
event._triggered=null;
}
else event.trigger('damageBegin1');
event.trigger('damageBegin1');
"step 1"
if(event.source&&event.source.isDead()) delete event.source;
if(num<=0){
event.trigger('damageZero');
event.finish();
event._triggered=null;
}
else event.trigger('damageBegin2');
event.trigger('damageBegin2');
"step 2"
if(event.source&&event.source.isDead()) delete event.source;
if(num<=0){
event.trigger('damageZero');
event.finish();
event._triggered=null;
}
else event.trigger('damageBegin3');
event.trigger('damageBegin3');
"step 3"
if(event.source&&event.source.isDead()) delete event.source;
if(num<=0){
event.trigger('damageZero');
event.finish();
event._triggered=null;
}
else event.trigger('damageBegin4');
event.trigger('damageBegin4');
"step 4"
if(event.source&&event.source.isDead()) delete event.source;
if(num>0&&player.hujia&&!player.hasSkillTag('nohujia')){
if(num>=player.hujia){
event.hujia=player.hujia;
@ -14700,7 +14681,6 @@
event._triggered=null;
}
"step 5"
if(event.source&&event.source.isDead()) delete event.source;
if(lib.config.background_audio){
game.playAudio('effect','damage'+(num>1?'2':''));
}
@ -14761,7 +14741,6 @@
}
}
"step 6"
if(event.source&&event.source.isDead()) delete event.source;
if(player.hp<=0&&player.isAlive()){
game.delayx();
player.dying(event);
@ -14807,7 +14786,6 @@
}
}
"step 7"
if(event.source&&event.source.isDead()) delete event.source;
if(!event.notrigger) event.trigger('damageSource');
},
recover:function(){
@ -14907,6 +14885,7 @@
event.trigger('dying');
game.log(player,'濒死');
"step 1"
delete event.filterStop;
if(player.hp>0){
_status.dying.remove(player);
game.broadcast(function(list){
@ -18169,7 +18148,7 @@
if(info.onuse){
info.onuse(result,this);
}
if(info.direct){
if(info.direct&&!info.clearTime){
_status.noclearcountdown=true;
}
}
@ -18650,6 +18629,7 @@
},
damage:function(){
var next=game.createEvent('damage');
//next.forceDie=true;
next.player=this;
var nocard,nosource;
var event=_status.event;
@ -18690,6 +18670,14 @@
if(next.num==undefined) next.num=1;
if(next.nature=='poison') delete next._triggered;
next.setContent('damage');
next.filterStop=function(){
if(this.source&&this.source.isDead()) delete this.source;
if(this.num<=0){
this.trigger('damageZero');
this._triggered=null;
return true;
}
};
return next;
},
recover:function(){
@ -18891,6 +18879,9 @@
next.reason=reason;
if(reason&&reason.source) next.source=reason.source;
next.setContent('dying');
next.filterStop=function(){
return this.player.hp>0;
};
return next;
},
die:function(reason){

View File

@ -1,9 +1,9 @@
window.noname_update={
version:'1.9.100',
update:'1.9.99.3',
version:'1.9.100.1',
update:'1.9.100',
changeLog:[
'新界赵云,界张飞,王允',
'立华奏,音无结弦',
'界钟会,界韩当,界程普,邓芝',
'新潘璋马忠,简雍,赵襄,孙皓',
'bug修复',
],
files:[
@ -13,23 +13,23 @@ window.noname_update={
'card/standard.js',
//'card/swd.js',
//'card/mtg.js',
'card/gujian.js',
//'card/guozhan.js',
//'card/gujian.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/extra.js',
//'character/hearth.js',
//'character/gujian.js',
//'character/gwent.js',
//'character/hearth.js',
//'character/mobile.js',
'character/mobile.js',
//'character/mtg.js',
'character/old.js',
//'character/old.js',
'character/refresh.js',
//'character/shenhua.js',
'character/shenhua.js',
'character/sp.js',
//'character/tw.js',
//'character/standard.js',
@ -48,8 +48,8 @@ window.noname_update={
//'mode/tafang.js',
'mode/single.js',
//'mode/stone.js',
//'mode/brawl.js',
//'mode/versus.js',
'mode/brawl.js',
'mode/versus.js',
//'mode/boss.js',
'game/game.js',
//'game/NoSleep.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

BIN
image/character/key_mio.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

View File

@ -1871,7 +1871,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
['sunquan','zhangzhang','zhouyu'],
['re_yuanshao','guotufengji','yj_jushou']
];
if(_status.forceKey) list.push(['key_yuri','key_kyousuke','key_umi'])
if(_status.forceKey) list.push(['key_yuri','key_yuzuru','sp_key_kanade'])
list.randomSort();
var list2=[];
for(var i=0;i<list.length;i++){

View File

@ -931,6 +931,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
choiceList.push('执行该军令');
choiceList.push('令'+get.translation(trigger.player)+(trigger.player==trigger.source?'(你)':'')+'回复一点体力');
trigger.source.chooseJunlingControl(player,result.junling,result.targets).set('prompt','补益').set('choiceList',choiceList).set('ai',function(){
if(get.recoverEffect(trigger.player,player,_status.event.player)>0) return 1;
return (get.attitude(trigger.source,trigger.player)<0&&get.junlingEffect(player,result.junling,trigger.source,result.targets,trigger.source)>=-2)?1:0;
return 0;
});
@ -1102,11 +1103,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
sub:true,
equipSkill:true,
noHidden:true,
trigger:{global:'phaseDrawBegin2'},
trigger:{player:'phaseDrawBegin2'},
//priority:8,
forced:true,
filter:function(event,player){
if(event.player!=player||event.num<=0||player.isDisabled(5)) return false;
if(event.numFixed||player.isDisabled(5)) return false;
return !game.hasPlayer(function(current){
return current.getEquip('yuxi');
})
@ -1116,13 +1117,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
eff2:{
sub:true,
trigger:{global:'phaseUseBegin'},
trigger:{player:'phaseUseBegin'},
//priority:8,
forced:true,
noHidden:true,
equipSkill:true,
filter:function(event,player){
if(event.player!=player||player.isDisabled(5)) return false;
if(player.isDisabled(5)) return false;
return game.hasPlayer(function(current){
return player.canUse('zhibi',current);
})&&!game.hasPlayer(function(current){
@ -1721,10 +1722,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
subSkill:{
eff:{
sub:true,
trigger:{global:'phaseDrawBegin2'},
trigger:{player:'phaseDrawBegin2'},
filter:function(event,player){
if(event.player!=player) return false;
return event.num>0;
return !event.numFixed;
},
silent:true,
content:function(){
@ -1858,17 +1858,24 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
position:'he',
filterCard:true,
selectCard:2,
complexSelect:true,
complexCard:true,
check:function(card,player,target){
if(get.position(card)=='h') return 8-get.value(card);
return 6-get.value(card);
check:function(card){
var player=_status.event.player;
if(player.hasSkill('new_paoxiao',true)||player.getEquip('zhuge')||game.hasPlayer(function(current){
return current.hasSkill('new_paoxiao');
})) return 0;
if(player.countCards('h',function(cardx){
return !ui.selected.cards.contains(cardx)&&cardx!=card&&cardx.name=='sha'&&player.hasUseTarget(cardx);
})<2) return 0;
if(get.position(card)=='h') return 6-get.value(card);
return 5-get.value(card);
},
filterTarget:function(card,player,target){return target!=player&&target.hasSkill('gzxuanhuo')&&target.isFriendOf(player)},
discard:false,
lose:false,
delay:false,
content:function(){
'step 0'
if(player!=game.me&&!player.isOnline()) cards.reverse();
target.gain(cards[0],player);
player.$giveAuto(cards[0],target);
player.discard(cards[1]);
@ -1881,6 +1888,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
if(!list.length) event.finish();
else player.chooseControl(list).set('ai',function(){
if(list.contains('new_paoxiao')) return 'new_paoxiao';
return list.randomGet();
}).set('prompt','选择并获得一项技能直到回合结束');
'step 2'
@ -1891,6 +1899,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
forceaudio:true,
audio:['xuanhuo',2],
ai:{
order:8,
result:{target:1},
},
},
//used:{},
},
@ -2821,6 +2833,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
player:"phaseDrawBegin2",
},
frequent:true,
filter:function(event){return !event.numFixed},
content:function (){
trigger.num++;
},
@ -5696,6 +5709,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
filter:function(event,player){
return player.hasViceCharacter();
},
check:function(event,player){
return player.hp<=1||get.guozhanRank(name)<=3;
},
content:function(){
'step 0'
player.removeCharacter(1);

View File

@ -100,6 +100,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
else if(_status.mode=='three'){
if(lib.character.wenpin) lib.character.wenpin[3]=['zhenwei_three'];
if(lib.character.zhugejin) lib.character.zhugejin[3]=['hongyuan','huanshi_three','mingzhe'];
if(lib.character.key_yuzuru){
lib.character.key_yuzuru[2]=4;
lib.character.key_yuzuru[3]=['yuzuru_bujin'];
}
if(!get.config('enable_all_cards')){
lib.translate.wuzhong_info+='若对方存活角色多于己方,则额外摸一张牌';
lib.translate.zhuge_info='锁定技,出牌阶段,你使用杀的次数上限+3';