diff --git a/character/diy.js b/character/diy.js
index 87eb9c1ad..45ea080b7 100755
--- a/character/diy.js
+++ b/character/diy.js
@@ -14,6 +14,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_umi2:['female','key',3,[],['unseen']],
key_kagari:['female','shen',3,['kagari_zongsi']],
key_rei:['male','key',4,['xiandeng','shulv','xisheng']],
+ key_komari:['female','key',3,['komari_tiankou','komari_xueshang']],
// diy_caocao:['male','wei',4,['xicai','diyjianxiong','hujia']],
// diy_hanlong:['male','wei',4,['siji','ciqiu']],
diy_feishi:['male','shu',3,['shuaiyan','moshou']],
@@ -104,6 +105,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
},
characterTitle:{
+ key_komari:'#bLittle Busters!',
key_umi:'#bSummer Pockets',
key_rei:'#gHarmonia',
key_kagari:'#bRewrite',
@@ -146,6 +148,97 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yuji:['zuoci']
},
skill:{
+ komari_tiankou:{
+ trigger:{
+ player:'useCard2',
+ target:'useCardToTarget',
+ },
+ forced:true,
+ filter:function(event,player,name){
+ if(name=='useCardToTarget'&&player==event.player) return false;
+ if(get.color(event.card)!='red') return false;
+ if(get.tag(event.card,'damage')) return false;
+ return ['basic','trick'].contains(get.type(event.card));
+ },
+ content:function(){
+ 'step 0'
+ var info=get.info(trigger.card);
+ var bool=true;
+ if(info.multitarget||info.allowMultiple===false) bool=false;
+ else{
+ var list=game.filterPlayer(function(current){
+ return !trigger.targets.contains(current)&&lib.filter.targetEnabled2(trigger.card,trigger.player,current);
+ })
+ if(!list.length) bool=false;
+ }
+ if(bool) player.chooseTarget('甜口:为'+get.translation(trigger.card)+'增加一个额外目标,或点【取消】摸一张牌。',function(candy,komari,rin){
+ return _status.event.rin_chan.contains(rin);
+ }).set('rin_chan',list).set('ai',function(target){
+ var evt=_status.event;
+ return get.effect(target,evt.candy,evt.source,evt.player);
+ }).set('candy',trigger.card).set('',trigger.player);
+ else event._result={bool:false};
+ 'step 1'
+ if(result.bool){
+ var rin=result.targets[0];
+ trigger.targets.push(rin);
+ player.line(rin,{color:[255, 224,172]});
+ }
+ else player.draw();
+ },
+ },
+ komari_xueshang:{
+ trigger:{global:'die'},
+ forced:true,
+ skillAnimation:true,
+ filter:function(event,player){
+ return player.hp>0;
+ },
+ animationColor:'metal',
+ content:function(){
+ 'step 0'
+ player.addSkill('riki_xueshang');
+ var map={};
+ var list=[];
+ for(var i=1;i<=player.hp;i++){
+ var cn=get.cnNumber(i,true);
+ map[cn]=i;
+ list.push(cn);
+ }
+ event.map=map;
+ player.chooseControl(list,function(){
+ return '一';
+ }).set('prompt','血殇:请选择自己受到的伤害的点数');
+ 'step 1'
+ var num=event.map[result.control]||1;
+ event.num=num>1?2:1;
+ event.list=game.filterPlayer(function(current){
+ return current!=player;
+ }).sortBySeat();
+ player.damage(num);
+ player.line(event.list,{color:[255, 224,172]});
+ 'step 2'
+ if(!player.hasSkill(event.name)) return;
+ else{
+ event.list.shift().damage(num);
+ if(event.list.length) event.redo();
+ }
+ },
+ },
+ riki_xueshang:{
+ trigger:{global:'dying'},
+ forced:true,
+ popup:false,
+ charlotte:true,
+ filter:function(event,player){
+ return event.getParent(2).name=='komari_xueshang'&&event.getParent(2).player==player;
+ },
+ content:function(){
+ player.removeSkill('komari_xueshang');
+ player.gainMaxHp(true);
+ player.recover();
+ },
+ },
umi_chaofan:{
enable:'phaseUse',
usable:1,
@@ -5383,6 +5476,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_umi:'加藤うみ',
key_umi2:'鹰原羽未',
key_rei:'零',
+ key_komari:'神北小毬',
lucia_duqu:'毒躯',
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。
②当你因【毒】失去体力时,你改为回复等量的体力。
③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
lucia_zhenren:'振刃',
@@ -5408,6 +5502,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
umi_shiroha:'轮回 - 延时效果',
umi_qihuan:'七幻',
umi_qihuan_info:'限定技,当你处于濒死状态时,你可以移去此武将牌。若如此做,你回复X点体力(X为场上势力数)。然后,你可获得场上已死亡角色武将牌上的至多两个技能。',
+ komari_tiankou:'甜口',
+ komari_tiankou_info:'锁定技,当你使用红色的非伤害性基本牌/锦囊牌选择目标时,或成为其他角色使用的这些牌的目标时,你选择一项:1.摸一张牌;2.为此牌增加一个目标',
+ komari_xueshang:'血殇',
+ komari_xueshang_info:'锁定技,蓄力技,当有角色死亡时,你对自己造成1点伤害,然后对所有其他角色依次造成1点伤害。当有角色因此法进入濒死状态时,你加1点体力上限并回复1点体力,然后失去此技能并终止此技能的所有后续结算。',
ns_chuanshu:'传术',
ns_chuanshu_info:'限定技 当一名其他角色进入濒死状态时,你可以令其选择获得技能【雷击】或【鬼道】,其回复体力至1并摸两张牌。当该被【传术】的角色造成或受到一次伤害后,你摸一张牌。其阵亡后,你重置技能【传术】',
diff --git a/character/extra.js b/character/extra.js
index a2a030383..d192bdc79 100755
--- a/character/extra.js
+++ b/character/extra.js
@@ -439,17 +439,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
lianpo:{
audio:true,
- trigger:{source:'dieAfter'},
- forced:true,
+ trigger:{player:'phaseAfter'},
+ frequent:true,
filter:function(event,player){
- return !player.hasSkill('lianpo2');
+ return player.getStat('kill')>0;
},
content:function(){
- player.addTempSkill('lianpo2');
player.insertPhase();
}
},
- lianpo2:{},
baonu:{
audio:2,
mark:true,
@@ -2636,7 +2634,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jilue_zhiheng:'制衡',
jilue_jizhi:'集智',
lianpo:'连破',
- lianpo2:'连破',
lianpo_info:'若你在一回合内杀死了至少一名角色,此回合结束后,你可以进行一个额外的回合。',
guixin:'归心',
qinyin:'琴音',
diff --git a/character/old.js b/character/old.js
index 2118d900a..b5815eabf 100755
--- a/character/old.js
+++ b/character/old.js
@@ -12,10 +12,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan","ol_wuyi"],
old_yijiang5:["old_caoxiu","old_quancong","old_zhuzhi"],
old_yijiang67:["ol_xinxianying","ol_zhangrang","ol_liuyu"],
- old_sp:["old_caochun","old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo"],
+ old_sp:["old_caochun","old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai"],
},
},
character:{
+ old_zhangxingcai:['female','shu',3,['oldshenxian','qiangwu']],
old_fuhuanghou:['female','qun',3,['oldzhuikong','oldqiuyuan']],
old_caochong:['male','wei',3,['oldrenxin','oldchengxiang']],
yuji:['male','qun',3,['old_guhuo'],['forbidai']],
@@ -68,6 +69,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
skill:{
+ oldshenxian:{
+ audio:'shenxian',
+ inherit:'shenxian',
+ },
old_fuhun:{
audio:'fuhun',
trigger:{player:'phaseDrawBefore'},
@@ -841,6 +846,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
translate:{
+ old_zhangxingcai:'旧张星彩',
old_yuanshu:'手杀袁术',
old_xusheng:'旧徐盛',
old_lingtong:'旧凌统',
diff --git a/character/refresh.js b/character/refresh.js
index 2e297bad5..4adee3409 100755
--- a/character/refresh.js
+++ b/character/refresh.js
@@ -671,7 +671,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'phaseAfter'},
frequent:true,
filter:function(event,player){
- var history=player.getHistory('useCard');
+ var history=player.getHistory('useCard',function(evt){
+ return evt.isPhaseUsing();
+ });
var suits=[];
for(var i=0;i0);
+ trigger.source.chooseBool('是否对'+get.translation(player)+'发动【暴虐】?').set('choice',get.attitude(trigger.source,player)>0);
'step 1'
if(result.bool){
player.logSkill('baonue');
diff --git a/character/sp.js b/character/sp.js
index 1f0b3c697..aae385847 100755
--- a/character/sp.js
+++ b/character/sp.js
@@ -21,7 +21,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
character:{
- xujing:['male','shu',3,['yuxu','xjshijian'],['unseen']],
+ xujing:['male','shu',3,['yuxu','xjshijian']],
xushao:['male','qun',3,['pingjian'],['unseen']],
puyuan:['male','shu',4,['pytianjiang','pyzhuren']],
xinpi:['male','wei',3,['xpchijie','yinju']],
@@ -654,9 +654,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//许邵许靖
yuxu:{
audio:2,
- trigger:{player:'useCard'},
+ trigger:{player:'useCardEnd'},
filter:function(event,player){
- return event.isPhaseUsing(player);
+ var evt=event.getParent('phaseUse');
+ if(!evt||evt.player!=player) return false;
+ var history=player.getHistory('useCard',function(evtt){
+ return evtt.getParent('phaseUse')==evt;
+ });
+ var index=history.indexOf(event);
+ if(index==0) return true;
+ return history[index-1].yuxu!=true&&player.countCards('he')>0;
},
content:function(){
trigger.yuxu=true;
@@ -665,7 +672,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
yuxu2:{
- trigger:{player:'useCard'},
+ trigger:{player:'useCardEnd'},
direct:true,
charlotte:true,
locked:true,
@@ -1287,16 +1294,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
if(trigger.name=='damage') player.addTempSkill(player==trigger.player?'xpchijie3':'xpchijie4');
- else if(!player.hasSkill('xpchijie4')&&!player.hasSkill('xpchijie3')){
- var cards=[];
- var cs=trigger.cards;
- for(var i=0;i0&&!get.is.single();
@@ -4203,7 +4218,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
xianfu:{
- trigger:{global:'gameDrawAfter'},
+ trigger:{
+ global:'gameDrawAfter',
+ player:'enterGame',
+ },
forced:true,
filter:function(){
return game.players.length>1;
@@ -7323,7 +7341,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
'step 3'
if(event.num1<=event.num2){
- player.chooseToDiscard('弃置一张牌,或摸一张牌').set('ai',function(){return -1;});
+ player.chooseToDiscard('he','弃置一张牌,或摸一张牌').set('ai',function(){return -1;});
}
else event.finish();
'step 4'
@@ -11607,7 +11625,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(trigger.delay==false) game.delay();
"step 1"
player.draw();
- player.addTempSkill('shenxian2');
+ if(event.name=='shenxian') player.addTempSkill('shenxian2');
},
ai:{
threaten:1.5
@@ -11708,68 +11726,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
qiluan:{
audio:'qiluan2',
- trigger:{source:'dieAfter'},
- priority:-10,
- silent:true,
- locked:false,
- onremove:function(player){
- delete player.storage.qiluan;
- },
- filter:function(event){
- return _status.currentPhase!=event.player;
- },
- content:function(){
- if(!player.storage.qiluan){
- player.storage.qiluan=1;
- }
- else{
- player.storage.qiluan++;
- }
- },
- group:['qiluan2','qiluan3','qiluan4']
- },
- qiluan2:{
- audio:2,
trigger:{global:'phaseEnd'},
frequent:true,
filter:function(event,player){
- return player.storage.qiluan?true:false;
+ return player.getStat('kill')>0;
},
content:function(){
if(get.mode()=='guozhan'){
player.draw(3);
}
else{
- player.draw(3*player.storage.qiluan);
+ player.draw(3*player.getStat('kill'));
}
- player.storage.qiluan=0;
}
},
- qiluan3:{
- audio:'qiluan2',
- trigger:{source:'dieAfter'},
- frequent:true,
- priority:-10,
- filter:function(event){
- return _status.currentPhase==event.player;
- },
- content:function(){
- var num=3;
- if(player.storage.qiluan){
- if(get.mode()!='guozhan'){
- num+=3*player.storage.qiluan;
- }
- player.storage.qiluan=0;
- }
- player.draw(num);
- },
- },
- qiluan4:{
- trigger:{global:'phaseZhunbeiBegin'},
- silent:true,
- content:function(){
- player.storage.qiluan=0;
- }
+ qiluan2:{
+ audio:2,
},
shangyi:{
audio:2,
@@ -14316,6 +14288,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qiluan2:'戚乱',
qiluan3:'戚乱',
shenxian:'甚贤',
+ oldshenxian:'甚贤',
qiangwu:'枪舞',
moukui:'谋溃',
moukui2:'谋溃',
@@ -14415,6 +14388,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
moukui_info:'当你使用【杀】指定一名角色为目标后,你可以选择一项:摸一张牌,或弃置其一张牌。若如此做,此【杀】被【闪】抵消时,该角色弃置你的一张牌。 ',
qiangwu_info:'出牌阶段,你可以进行一次判定。若如此做,则直到回合结束,你使用点数小于判定牌的 【杀】时不受距离限制,且你使用点数大于判定牌的【杀】时不计入出牌阶段的使用次数。',
shenxian_info:'每名角色的回合限一次,你的回合外,每当有其他角色因弃置而失去牌时,若其中有基本牌,你可以摸一张牌。',
+ oldshenxian_info:'你的回合外,每当有其他角色因弃置而失去牌时,若其中有基本牌,你可以摸一张牌。',
qiluan_info:'每当你杀死一名角色后,可以在此回合结束时摸三张牌。',
qiluan_info_guozhan:'当你杀死一名角色后,你可于此回合结束后摸三张牌',
zhendu_info:'其他角色的出牌阶段开始时,你可以弃置一张手牌,视为该角色使用一张【酒】,然后你对其造成一点伤害。',
diff --git a/character/xinghuoliaoyuan.js b/character/xinghuoliaoyuan.js
index 26d33e9f6..3bcda60df 100755
--- a/character/xinghuoliaoyuan.js
+++ b/character/xinghuoliaoyuan.js
@@ -71,7 +71,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
usable:1,
audio:2,
trigger:{
- player:"useCardAfter",
+ player:"useCardEnd",
},
check:function (event,player){
return 18-get.value(event.card)-player.maxHp*2;
@@ -2758,7 +2758,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:["qinguo_use","qinguo_lose"],
audio:2,
trigger:{
- player:"useCardAfter",
+ player:"useCardEnd",
},
filter:function (event,player){
return get.type(event.card)=='equip';
@@ -5514,7 +5514,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_daigong":"怠攻",
"xinfu_daigong_info":"每回合限一次。当你受到伤害时,你可以展示所有手牌,然后令伤害来源选择一项:交给你一张与你所有手牌花色均不相同的一张牌,或防止此伤害。",
"xinfu_zhaoxin":"昭心",
- "xinfu_zhaoxin_info":"出牌阶段限一次,你可以将任意张手牌置于武将牌上,称之为「望」(你至多拥有三张「望」)。你攻击范围内的一名其他角色的摸牌阶段结束后,其可以获得一张由你选择的「望」,然后你可以对其造成1点伤害。",
+ "xinfu_zhaoxin_info":"出牌阶段限一次,你可以将任意张手牌置于武将牌上并摸等量的牌,称之为「望」(你至多拥有三张「望」)。你攻击范围内的一名其他角色的摸牌阶段结束后,其可以获得一张由你选择的「望」,然后你可以对其造成1点伤害。",
"zhaoxin_give":"昭心",
"zhaoxin_give_info":"",
"xinfu_qianchong":"谦冲",
diff --git a/character/yijiang.js b/character/yijiang.js
index ae6b2c61d..6bf2f5f63 100755
--- a/character/yijiang.js
+++ b/character/yijiang.js
@@ -1975,7 +1975,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 3"
if(event.card){
player.logSkill('jianzheng',trigger.player);
- player.lose(result.cards,ui.special);
+ player.lose(event.card,ui.special);
game.broadcastAll(function(player){
var cardx=ui.create.card();
cardx.classList.add('infohidden');
@@ -10228,7 +10228,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
check:function(event,player){
if(get.attitude(player,event.player)<0) return false;
- if(player.countCards('h',{name:['tao','jiu']})+target.hp<0) return false;
+ if(player.countCards('h',{name:['tao','jiu']})+event.player.hp<0) return false;
return true;
},
content:function(){