diff --git a/audio/die/ol_sunjian.mp3 b/audio/die/ol_sunjian.mp3
new file mode 100644
index 000000000..99b0e6a8e
Binary files /dev/null and b/audio/die/ol_sunjian.mp3 differ
diff --git a/audio/skill/bizheng1.mp3 b/audio/skill/bizheng1.mp3
new file mode 100644
index 000000000..05ef07b37
Binary files /dev/null and b/audio/skill/bizheng1.mp3 differ
diff --git a/audio/skill/bizheng2.mp3 b/audio/skill/bizheng2.mp3
new file mode 100644
index 000000000..b5cb3a21e
Binary files /dev/null and b/audio/skill/bizheng2.mp3 differ
diff --git a/audio/skill/fz_liegong.mp3 b/audio/skill/fz_liegong.mp3
new file mode 100644
index 000000000..ae99dd2af
Binary files /dev/null and b/audio/skill/fz_liegong.mp3 differ
diff --git a/audio/skill/fz_new_longdan.mp3 b/audio/skill/fz_new_longdan.mp3
new file mode 100644
index 000000000..f4c44d8e9
Binary files /dev/null and b/audio/skill/fz_new_longdan.mp3 differ
diff --git a/audio/skill/fz_new_paoxiao.mp3 b/audio/skill/fz_new_paoxiao.mp3
new file mode 100644
index 000000000..2ac1e90ee
Binary files /dev/null and b/audio/skill/fz_new_paoxiao.mp3 differ
diff --git a/audio/skill/fz_new_tieji.mp3 b/audio/skill/fz_new_tieji.mp3
new file mode 100644
index 000000000..88517468f
Binary files /dev/null and b/audio/skill/fz_new_tieji.mp3 differ
diff --git a/audio/skill/fz_wusheng.mp3 b/audio/skill/fz_wusheng.mp3
new file mode 100644
index 000000000..b004bb592
Binary files /dev/null and b/audio/skill/fz_wusheng.mp3 differ
diff --git a/audio/skill/fz_xinkuanggu.mp3 b/audio/skill/fz_xinkuanggu.mp3
new file mode 100644
index 000000000..6c7753c26
Binary files /dev/null and b/audio/skill/fz_xinkuanggu.mp3 differ
diff --git a/audio/skill/wulie1.mp3 b/audio/skill/wulie1.mp3
new file mode 100644
index 000000000..c7f979e22
Binary files /dev/null and b/audio/skill/wulie1.mp3 differ
diff --git a/audio/skill/wulie2.mp3 b/audio/skill/wulie2.mp3
new file mode 100644
index 000000000..188954025
Binary files /dev/null and b/audio/skill/wulie2.mp3 differ
diff --git a/audio/skill/yidian1.mp3 b/audio/skill/yidian1.mp3
new file mode 100644
index 000000000..62878b09c
Binary files /dev/null and b/audio/skill/yidian1.mp3 differ
diff --git a/audio/skill/yidian2.mp3 b/audio/skill/yidian2.mp3
new file mode 100644
index 000000000..49770fe54
Binary files /dev/null and b/audio/skill/yidian2.mp3 differ
diff --git a/audio/skill/yinghun_ol_sunjian1.mp3 b/audio/skill/yinghun_ol_sunjian1.mp3
new file mode 100644
index 000000000..27b494e22
Binary files /dev/null and b/audio/skill/yinghun_ol_sunjian1.mp3 differ
diff --git a/audio/skill/yinghun_ol_sunjian2.mp3 b/audio/skill/yinghun_ol_sunjian2.mp3
new file mode 100644
index 000000000..e3cd0cbe4
Binary files /dev/null and b/audio/skill/yinghun_ol_sunjian2.mp3 differ
diff --git a/card/standard.js b/card/standard.js
index 9d02c0d50..0d1e432dc 100644
--- a/card/standard.js
+++ b/card/standard.js
@@ -153,17 +153,20 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
result:{
target:function(player,target,card,isLink){
- if(!isLink&&player.hasSkill('jiu')&&!target.hasSkillTag('filterDamage',null,{
- player:player,
- card:card,
- jiu:true,
- })){
- if(get.attitude(player,target)>0){
- return -7;
- }
- else{
- return -4;
+ if(!isLink&&player.hasSkill('jiu')){
+ if(!target.hasSkillTag('filterDamage',null,{
+ player:player,
+ card:card,
+ jiu:true,
+ })){
+ if(get.attitude(player,target)>0){
+ return -7;
+ }
+ else{
+ return -4;
+ }
}
+ return -0.5;
}
return -1.5;
},
@@ -1165,7 +1168,9 @@ 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!='tengjia'&&get.value(es[0])<=0);
+ var noe2=(es.filter(function(esx){
+ return esx.name=='tengjia'||get.value(esx)>0
+ }).length==0);
var noh=(nh==0||target.hasSkillTag('noh'));
if(noh&&(noe||noe2)) return 0;
if(att<=0&&!target.countCards('he')) return 1.5;
@@ -1665,8 +1670,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
popup:false,
priority:12,
content:function(){
- player.storage.qinggang2.remove(trigger.card);
- if(!player.storage.qinggang2.length) player.removeSkill('qinggang2');
+ player.storage.qinggang2.remove(trigger.card);
+ if(!player.storage.qinggang2.length) player.removeSkill('qinggang2');
},
},
qinglong_skill:{
diff --git a/character/diy.js b/character/diy.js
index 898ca0b0c..81f5152af 100755
--- a/character/diy.js
+++ b/character/diy.js
@@ -51,6 +51,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_midori:['female','key',3,['midori_nonghuan','midori_tishen']],
key_kyoko:['female','key',3,['kyoko_juwu','kyoko_zhengyi']],
key_shizuru:['female','key',3,['shizuru_nianli','shizuru_benzhan']],
+ key_shiorimiyuki:['female','key',3,['shiorimiyuki_banyin','shiorimiyuki_tingxian']],
// diy_caocao:['male','wei',4,['xicai','diyjianxiong','hujia']],
// diy_hanlong:['male','wei',4,['siji','ciqiu']],
diy_feishi:['male','shu',3,['shuaiyan','moshou']],
@@ -133,7 +134,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","key_mio","key_midori","key_kyoko","key_shizuru"],
+ 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","key_kyoko","key_shizuru","key_shiorimiyuki"],
diy_yongjian:["ns_chendao","yj_caoang"],
},
},
@@ -149,6 +150,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
},
characterTitle:{
+ key_shiorimiyuki:'#rAngel Beats!',
key_shizuru:'#bRewrite',
key_kyoko:'#bSummer Pockets',
sp_key_kanade:'#rAngel Beats!',
@@ -234,6 +236,81 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_lucia:['key_shizuru'],
},
skill:{
+ shiorimiyuki_banyin:{
+ trigger:{player:['damageEnd','recoverEnd']},
+ direct:true,
+ filter:function(event,player){
+ return game.hasPlayer(function(current){
+ return current!=player&¤t.isDamaged();
+ })
+ },
+ content:function(){
+ 'step 0'
+ player.chooseTarget(get.prompt('shiorimiyuki_banyin'),'令一名其他角色回复1点体力',lib.filter.notMe).set('ai',function(target){
+ var player=_status.event.player;
+ return get.recoverEffect(target,player,player);
+ });
+ 'step 1'
+ if(result.bool){
+ var target=result.targets[0];
+ player.logSkill('shiorimiyuki_banyin',target);
+ target.recover();
+ }
+ },
+ },
+ shiorimiyuki_tingxian:{
+ trigger:{player:'phaseUseBegin'},
+ direct:true,
+ content:function(){
+ 'step 0'
+ player.chooseControl('一张','两张','三张','cancel2').set('prompt',get.prompt2('shiorimiyuki_tingxian')).set('ai',function(){
+ var player=_status.event.player;
+ var max=Math.min(player.hp+1,player.maxHp)
+ var min=Math.min(Math.max(max-2,max-player.hp),3);
+ if(min) return min-1;
+ return 3;
+ });
+ 'step 1'
+ if(result.control=='cancel2'){event.finish();return;}
+ var num=1+result.index;
+ player.draw(num);
+ 'step 2'
+ event.cards=result;
+ player.recover();
+ 'step 3'
+ if(get.itemtype(cards)=='cards'){
+ trigger.shiorimiyuki_tingxian=cards;
+ player.addTempSkill('shiorimiyuki_tingxian2');
+ }
+ },
+ },
+ shiorimiyuki_tingxian2:{
+ trigger:{player:'phaseUseEnd'},
+ forced:true,
+ charlotte:true,
+ mod:{
+ aiOrder:function(player,card,num){
+ var cards=_status.event.getParent('phaseUse').shiorimiyuki_tingxian;
+ if(cards&&cards.contains(card)) return num+2;
+ },
+ aiValuetarget:function(player,card,num){
+ var cards=_status.event.getParent('phaseUse').shiorimiyuki_tingxian;
+ if(cards&&cards.contains(card)) return 0;
+ },
+ },
+ filter:function(event,player){
+ var hs=player.getCards('h');
+ return Array.isArray(event.shiorimiyuki_tingxian)&&event.shiorimiyuki_tingxian.filter(function(card){
+ return hs.contains(card);
+ }).length>0
+ },
+ content:function(){
+ var hs=player.getCards('h');
+ player.loseHp(trigger.shiorimiyuki_tingxian.filter(function(card){
+ return hs.contains(card);
+ }).length);
+ },
+ },
shizuru_nianli:{
enable:'chooseToUse',
prompt:'展示一张♦/♣/♥/♠手牌,然后视为使用一张雷杀/闪/桃/无懈可击',
@@ -426,9 +503,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
- player.chooseButton([get.prompt('kyoko_juwu'),[1,Infinity],trigger.cards.filter(function(card){
+ player.chooseButton([get.prompt('kyoko_juwu'),trigger.cards.filter(function(card){
return get.position(card,true)=='d'&&get.type(card,false)=='equip';
- })]);
+ })],[1,Infinity]).set('ai',function(){return 1});
'step 1'
if(result.bool){
player.gain(result.links,'gain2','log');
@@ -8722,6 +8799,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_midori:'西园美鸟',
key_kyoko:'岬镜子',
key_shizuru:'中津静流',
+ key_shiorimiyuki:'关根诗织&入江美雪',
+ key_shiorimiyuki_ab:'关根入江',
lucia_duqu:'毒躯',
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。
②当你因【毒】失去体力时,你改为回复等量的体力。
③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
lucia_zhenren:'振刃',
@@ -8932,9 +9011,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
kyoko_shelie:'涉猎',
kyoko_zhiheng:'制衡',
shizuru_nianli:'念力',
- shizuru_nianli_info:'每轮限一次,你可以展示一张♦/♣/♥/♠手牌,然后视为使用一张雷【杀】/【闪】/【桃】/【无懈可击】。',
+ shizuru_nianli_info:'每轮限一次,你可以展示一张♦/♣/♥/♠手牌,然后视为使用一张不计入次数限制和记录的雷【杀】/【闪】/【桃】/【无懈可击】。',
shizuru_benzhan:'奔战',
shizuru_benzhan_info:'当你使用或打出牌响应其他角色,或其他角色使用或打出牌响应你后,若此牌为:基本牌,你可令一名角色弃置两张牌或令一名角色摸两张牌;非基本牌,你可对一名角色造成1点伤害或令一名其他角色回复1点体力。',
+ shiorimiyuki_banyin:'伴音',
+ shiorimiyuki_banyin_info:'当你受到伤害或回复体力后,你可令一名其他角色回复1点体力。',
+ shiorimiyuki_tingxian:'铤险',
+ shiorimiyuki_tingxian_info:'出牌阶段开始时,你可以摸至多三张牌。若如此做,你回复1点体力,且此阶段结束时你失去X点体力。(X为你获得的牌中仍在手牌区的牌的数量)',
+ shiorimiyuki_tingxian2:'铤险',
yj_caoang:'SP曹昂',
diff --git a/character/mobile.js b/character/mobile.js
index a699008d8..00154306f 100644
--- a/character/mobile.js
+++ b/character/mobile.js
@@ -7,11 +7,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
characterSort:{
mobile:{
mobile_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan"],
+ mobile_yijiang:["yj_zhanghe","yj_zhangliao","yj_xuhuang","yj_ganning"],
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","re_sunjian"],
mobile_sunben:["re_sunben"],
},
},
character:{
+ yj_zhanghe:['male','qun',4,['zhilve']],
+ yj_xuhuang:['male','qun',4,['xhzhiyan']],
re_sunjian:['male','wu',4,['gzyinghun','repolu']],
zhengxuan:['male','qun',3,['zhengjing']],
dengzhi:['male','shu',3,['jimeng','shuaiyan']],
@@ -278,6 +281,130 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
characterFilter:{},
skill:{
+ //一 将 成 名
+ zhilve:{
+ trigger:{player:'phaseZhunbeiBegin'},
+ forced:true,
+ content:function(){
+ 'step 0'
+ if(!player.canMoveCard()) event._result={index:1};
+ else player.chooseControl().set('choiceList',[
+ '移动场上的一张牌',
+ '本回合的摸牌阶段多摸一张牌且第一张杀无距离次数限制',
+ ]).set('ai',function(){return 1});
+ 'step 1'
+ if(result.index==1){
+ player.addTempSkill('zhilve_yingzi');
+ if(!player.getHistory('useCard',function(card){
+ return card.card.name=='sha';
+ }).length) player.addTempSkill('zhilve_xiandeng');
+ event.finish();
+ }
+ else player.moveCard(true);
+ 'step 2'
+ if(result.position=='e') player.loseHp();
+ else player.addTempSkill('zhilve_dis');
+ },
+ subSkill:{
+ dis:{
+ mod:{
+ maxHandcard:function(player,num){
+ return num-1;
+ },
+ },
+ },
+ yingzi:{
+ trigger:{player:'phaseDrawBegin2'},
+ popup:false,
+ forced:true,
+ filter:function(event,player){
+ return !event.numFixed;
+ },
+ content:function(){trigger.num++},
+ },
+ xiandeng:{
+ mod:{
+ targetInRange:function(card,player){
+ if(card.name=='sha') return true;
+ },
+ },
+ trigger:{player:'useCard1'},
+ forced:true,
+ popup:false,
+ firstDo:true,
+ filter:function(event,player){
+ return event.card.name=='sha';
+ },
+ content:function(){
+ player.removeSkill(event.name);
+ if(trigger.addCount!==false){
+ trigger.addCount=false;
+ var stat=player.getStat('card');
+ if(stat&&stat.sha) stat.sha--;
+ }
+ },
+ },
+ },
+ },
+ xhzhiyan:{
+ enable:'phaseUse',
+ filter:function(event,player){
+ return player.countCards('h')!=player.maxHp;
+ },
+ filterCard:true,
+ selectCard:function(){
+ var player=_status.event.player;
+ var num=Math.max(0,player.countCards('h')-player.maxHp);
+ return [num,num];
+ },
+ check:function(card){
+ var player=_status.event.player;
+ if(player.getUseValue(card)<=0&&game.hasPlayer(function(current){
+ return current!=player&&get.value(card,current)*get.attitude(player,current)>0;
+ })) return 1;
+ return 0;
+ },
+ content:function(){
+ 'step 0'
+ if(!cards.length){
+ player.draw(player.maxHp-player.countCards('h'));
+ player.addTempSkill('zishou2');
+ event.finish();
+ }
+ else{
+ cards=cards.filterInD('d');
+ if(cards.length) player.chooseButton(['是否将其中的一张牌交给一名其他角色?',cards]).set('',function(button){
+ var player=_status.event.player;
+ if(game.hasPlayer(function(current){
+ return current!=player&&get.value(button.link,current)*get.attitude(player,current)>0;
+ })) return Math.abs(get.value(button.link));
+ return 0;
+ });
+ else event.finish();
+ }
+ 'step 1'
+ if(result.bool){
+ event.card=result.links[0];
+ player.chooseTarget(true,lib.filter.notMe,'选择一名其他角色获得'+get.translation(event.card)).set('ai',function(target){
+ return get.value(_status.event.getParent().card,target)*get.attitude(_status.event.player,target);
+ });
+ }
+ else event.finish();
+ 'step 2'
+ var target=result.targets[0];
+ player.line(target,'green');
+ target.gain(card,'gain2','log');
+ },
+ ai:{
+ order:function(obj,player){
+ if(player.countCards('h')>player.maxHp) return 10;
+ return 0.5;
+ },
+ result:{
+ player:1,
+ },
+ },
+ },
//水 果 忍 者
zhengjing_guanju:{audio:true},
zhengjing:{
@@ -2830,7 +2957,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
global:"phaseDrawAfter",
},
filter:function (event,player){
- if(!player.storage.xinfu_zhaoxin||!player.storage.xinfu_zhaoxin.length) return false;
+ if(!player.storage.xinfu_zhaoxin||player.storage.xinfu_zhaoxin.length) return false;
return player==event.player||player.inRange(event.player);
},
direct:true,
@@ -4593,6 +4720,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhengjing:'整经',
zhengjing_info:'出牌阶段,你可以整理卡牌。然后,你将整理出的卡牌置于一名角色的武将牌上。该角色的准备阶段获得这些牌,跳过此回合的判定和摸牌阶段且本回合内不能发动【整经】。',
zhengjing2:'整经',
+
+ mobile_yijiang:'武将设计征集大赛',
+ yj_zhanghe:'SP张郃',
+ yj_zhangliao:'SP张辽',
+ yj_xuhuang:'SP徐晃',
+ yj_ganning:'SP甘宁',
+ xhzhiyan:'治严',
+ xhzhiyan_info:'出牌阶段,若你的手牌数不等于体力上限,则你可以将手牌摸至/弃至手牌上限,然后本回合不能对其他角色使用牌/可以将弃置的一张牌交给一名其他角色。',
+ zhilve:'知略',
+ zhilve_info:'锁定技,准备阶段,你选择一项:1.移动场上装备区的一张牌并失去1点体力。2.移动场上判定区的一张牌并令本回合手牌上限-1。3.本回合摸牌阶段多摸一张牌且使用的第一张【杀】无距离限制且不计入次数限制。',
}
};
});
diff --git a/character/old.js b/character/old.js
index f4c96c125..d62b40dbf 100755
--- a/character/old.js
+++ b/character/old.js
@@ -5,7 +5,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
characterSort:{
old:{
old_shenhua:["yuji","zhangjiao","old_zhugezhan","old_guanqiujian","xiahouyuan","weiyan","xiaoqiao"],
- old_refresh:["old_zhangfei","old_huatuo","old_zhaoyun"],
+ old_refresh:["old_zhangfei","old_huatuo","old_zhaoyun","ol_huaxiong"],
old_yijiang1:["masu","xushu","fazheng","yujin","xin_yujin","old_xusheng","old_lingtong","ol_yujin"],
old_yijiang2:["old_madai","old_zhonghui","old_wangyi","old_guanzhang"],
old_yijiang3:["liru","old_zhuran","ol_manchong","old_fuhuanghou","old_caochong"],
@@ -17,6 +17,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
character:{
+ ol_huaxiong:["male","qun",6,["new_reyaowu"]],
old_wangyun:['male','qun',4,['wylianji','moucheng']],
panfeng:['male','qun',4,['kuangfu']],
xiaoqiao:['female','wu',3,['tianxiang','hongyan']],
@@ -882,6 +883,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_liuyu:'OL刘虞',
old_wangyun:'旧王允',
old_zhaoyun:'旧赵云',
+ ol_huaxiong:'旧华雄',
old_fuhun:'父魂',
old_fuhun_info:'摸牌阶段开始时,你可以放弃摸牌,改为从牌堆顶亮出两张牌并获得之,若亮出的牌颜色不同,你获得技能“武圣”、“咆哮”,直到回合结束。',
diff --git a/character/refresh.js b/character/refresh.js
index cf585892b..98f23ff57 100755
--- a/character/refresh.js
+++ b/character/refresh.js
@@ -59,7 +59,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_sunshangxiang:['female','wu',3,['xiaoji','rejieyin']],
re_zhenji:['female','wei',3,['reluoshen','reqingguo']],
re_zhugeliang:['male','shu',3,['reguanxing','kongcheng']],
- re_huaxiong:["male","qun",6,["new_reyaowu"]],
+ re_huaxiong:["male","qun",6,["reyaowu"]],
re_zhangjiao:['male','qun',3,['xinleiji','xinguidao','huangtian'],['zhu']],
xin_yuji:['male','qun',3,['reguhuo']],
@@ -137,9 +137,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'damageBegin3'},
forced:true,
content:function(){
- var num=Math.min(trigger.num,player.countMark('wulie2'));
- trigger.num-=num;
- player.removeMark('wulie2',num);
+ trigger.cancel();
+ player.removeMark('wulie2',1);
if(!player.storage.wulie2) player.removeSkill('wulie2');
},
},
@@ -268,7 +267,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
ollongdan:{
audio:'longdan_sha',
- audioname:['re_zhaoyun','sp_zhaoyun'],
+ audioname:['re_zhaoyun'],
enable:['chooseToUse','chooseToRespond'],
prompt:'将杀当做闪,或将闪当做杀,或将桃当做酒,或将酒当做桃使用或打出',
viewAs:function(cards,player){
@@ -3896,6 +3895,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
threaten:2,
},
},
+ reyaowu:{
+ trigger:{player:'damageBegin3'},
+ audio:'new_reyaowu',
+ forced:true,
+ filter:function(event){
+ return event.card&&(get.color(event.card)!='red'||event.source&&event.source.isAlive());
+ },
+ content:function(){
+ trigger[get.color(trigger.card)!='red'?'player':'source'].draw();
+ },
+ },
"new_reyaowu":{
trigger:{
player:"damageBegin3",
@@ -3903,7 +3913,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//priority:1,
audio:2,
filter:function (event){
- return event.card&&event.card.name=='sha';
+ return event.card&&event.card.name=='sha'&&(get.color(event.card)!='red'||event.source&&event.source.isAlive());
},
forced:true,
check:function (event){
@@ -3918,11 +3928,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{
effect:{
target:function (card,player,target,current){
- if(card.name=='sha'&&(get.color(card)=='red')){
- return [1,-2];
+ if(card.name=='sha'&&(get.color(card)=='red')&&get.attitude(player,target)<=0){
+ return [1,0.8,1,0];
}
if(card.name=='sha'&&(get.color(card)=='black')){
- return [0,-0.6];
+ return [1,0.4];
}
},
},
@@ -6652,6 +6662,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"new_reqingnang_info":"出牌阶段,你可以弃置一张手牌,令一名本回合内未成为过〖青囊〗的目标的角色回复一点体力。若你弃置的是黑色牌,则你本回合内不能再发动〖青囊〗。",
"new_reyaowu":"耀武",
"new_reyaowu_info":"锁定技,当一名角色使用【杀】对你造成伤害时,若此杀为红色,该角色回复1点体力或摸一张牌。否则则你摸一张牌。",
+ reyaowu:'耀武',
+ reyaowu_info:'锁定技,当你受到牌造成的伤害时,若此牌为红色,则伤害来源摸一张牌;否则你摸一张牌。',
reqingguo:'倾国',
reqingguo_info:'你可以将一张黑色牌当做【闪】使用或打出。',
@@ -6862,7 +6874,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_sunjian:'界孙坚',
wulie:'武烈',
wulie2:'武烈',
- wulie_info:'限定技,结束阶段,你可以失去任意点体力并指定等量的角色。这些角色各获得一枚「烈」。有「烈」的角色受到1点伤害时,其移去一枚「烈」,然后令伤害-1。',
+ wulie_info:'限定技,结束阶段,你可以失去任意点体力并指定等量的角色。这些角色各获得一枚「烈」。有「烈」的角色受到伤害时,其移去一枚「烈」,然后防止此伤害。',
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',
diff --git a/character/shenhua.js b/character/shenhua.js
index aee9b42e3..f8cdf38a4 100755
--- a/character/shenhua.js
+++ b/character/shenhua.js
@@ -177,8 +177,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!player.storage.zhengrong) player.storage.zhengrong=[];
player.storage.zhengrong.push(card);
player.markSkill('zhengrong');
- game.delayx();
}
+ 'step 3'
+ game.delayx();
},
marktext:'荣',
intro:{
@@ -1587,13 +1588,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return (player.getHistory('useCard',function(evt){
return evt.getParent('phaseUse')==event;
}).length0;
diff --git a/character/sp.js b/character/sp.js
index 2b4a1a316..22fae3390 100755
--- a/character/sp.js
+++ b/character/sp.js
@@ -832,7 +832,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
direct:true,
filter:function(event,player){
- return player.countCards('he')>0;
+ return player.countCards('h',function(card){
+ return _status.connectMode||get.type(card)!='basic';
+ })>0;
},
content:function(){
'step 0'
@@ -841,7 +843,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
list.sortBySeat();
event.targets=list;
- player.chooseToDiscard(get.prompt2('xiying'),'he').set('logSkill',['xiying',list]).set('ai',function(card){
+ player.chooseToDiscard(get.prompt2('xiying'),'h',function(card){
+ return get.type(card)!='basic';
+ }).set('logSkill',['xiying',list]).set('ai',function(card){
return _status.event.val-get.value(card)
}).set('val',function(){
return 4*Math.sqrt(game.countPlayer(function(current){
@@ -876,11 +880,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
gangzhi:{
audio:2,
- trigger:{player:'damageBefore'},
+ trigger:{
+ player:'damageBefore',
+ source:'damageBefore',
+ },
forced:true,
content:function(){
trigger.cancel();
- player.loseHp(trigger.num);
+ trigger.player.loseHp(trigger.num);
},
},
beizhan:{
@@ -1018,7 +1025,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
filterCard:true,
filterTarget:function(card,player,target){
- //if(target.storage.mouzhi2&&target.storage.mouzhi2.contains(player)) return false;
+ if(target.storage.mouzhi2&&target.storage.mouzhi2.contains(player)) return false;
return target!=player;
},
delay:0,
@@ -3607,7 +3614,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
next.target=trigger.player;
next.num=num;
next.setContent(function(){
- if(target.isAlive()) player.chooseToDiscard(num,true);
+ if(target.isAlive()) player.chooseToDiscard(num,true,'he');
});
},
},
@@ -6550,7 +6557,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
logTarget:'player',
check:function(event,player){
if(get.mode()=='guozhan'){
- if(!event.player.isUnseen(1)&&get.guozhanRank(event.player.name2)<4) return false;
+ if(!event.player.isUnseen(1)&&get.guozhanRank(event.player.name2,event.player)<4) return false;
}
if(event.player.hasSkill('subplayer')) return false;
if(get.attitude(player,event.player)<0){
@@ -6564,7 +6571,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.cancel();
if(trigger.player.countCards('e')){
trigger.player.chooseControl(function(event,player){
- if(get.mode()=='guozhan'&&get.guozhanRank(player.name2)<4) return 1;
+ if(get.mode()=='guozhan'&&get.guozhanRank(player.name2,player)<4) return 1;
if(player.hp==1) return 1;
if(player.hp==2&&player.countCards('e')>=2) return 1;
return 0;
@@ -7304,8 +7311,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
ai:{
effect:{
- player:function(card,player,target){
- if(card.name=='sha'){
+ player:function(card,player,target,current,isLink){
+ if(!isLink&&card.name=='sha'){
if(player._duanbingtmp) return;
player._duanbingtmp=true;
if(get.effect(target,card,player,player)<=0){
@@ -8691,7 +8698,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'饶舌',
content:'mark'
},
- chat:['粗鄙之语','天地不容','谄谀之臣','皓首匹夫,苍髯老贼','二臣贼子','断脊之犬','我从未见过有如此厚顔无耻之人!'],
+ chat:['粗鄙之语','天地不容','谄谀之臣','皓首匹夫,苍髯老贼','二臣贼子','断脊之犬','我从未见过有如此厚颜无耻之人!'],
callback:function(){
'step 0'
if(event.num1<=event.num2){
@@ -9194,8 +9201,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!player.hasSkill('xindangxian')){
list.push('xindangxian');
}
- if(!player.hasSkill('zhiman')){
- list.push('zhiman');
+ if(!player.hasSkill('rezhiman')){
+ list.push('rezhiman');
}
if(list.length){
player.draw();
@@ -9223,6 +9230,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
intro:{
content:'已因$发动过技能',
},
+ derivation:['new_rewusheng','xindangxian','rezhiman'],
},
zhengnan:{
audio:1,
@@ -9251,7 +9259,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
ai:{
threaten:2.4
- }
+ },
+ derivation:['wusheng','dangxian','zhiman'],
},
xiefang:{
mod:{
@@ -14711,6 +14720,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
chongzhen:{
group:['chongzhen1','chongzhen2'],
+ audio:'chongzhen1',
ai:{
combo:'ollongdan',
mingzhi:false,
@@ -18429,7 +18439,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mouzhi_info:'出牌阶段限一次,你可以将一张手牌交给一名角色,若如此做,当其于其下回合的出牌阶段内对一名角色造成伤害后,若是此阶段其第一次对该角色造成伤害,你摸一张牌。',
sp_shenpei:'SP审配',
gangzhi:'刚直',
- gangzhi_info:'锁定技,当你即将受到伤害时,你防止此伤害,改为失去等量的体力。',
+ gangzhi_info:'锁定技,当你即将受到或造成伤害时,你防止此伤害,改为受到伤害的角色失去等量的体力。',
beizhan:'备战',
beizhan2:'备战',
beizhan_info:'结束阶段,你可以令一名角色将手牌摸至体力上限(至多为5)。其下个回合开始时,若其手牌数为全场最多,则其此回合内使用的牌不能指定其他角色为目标。',
diff --git a/character/yijiang.js b/character/yijiang.js
index 3a65859ee..d7e0f2856 100755
--- a/character/yijiang.js
+++ b/character/yijiang.js
@@ -23,7 +23,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
caochong:['male','wei',3,['chengxiang','renxin']],
xunyou:['male','wei',3,['qice','zhiyu']],
xin_xushu:['male','shu',3,['xinwuyan','xinjujian']],
- xin_masu:['male','shu',3,['sanyao','zhiman']],
+ xin_masu:['male','shu',3,['resanyao','rezhiman']],
xin_fazheng:['male','shu',3,['xinenyuan','xinxuanhuo'],['die_audio']],
zhuran:['male','wu',4,['danshou']],
xusheng:['male','wu',4,['xinpojun']],
@@ -43,7 +43,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
manchong:['male','wei',3,['xinjunxing','yuce']],
guanzhang:['male','shu',4,['fuhun']],
chenqun:['male','wei',3,['pindi','faen']],
- sunluban:['female','wu',3,['chanhui','jiaojin']],
+ sunluban:['female','wu',3,['rechanhui','rejiaojin']],
guyong:['male','wu',3,['shenxing','bingyi']],
caifuren:['female','qun',3,['qieting','xianzhou']],
yj_jushou:['male','qun',3,['jianying','shibei']],
@@ -62,7 +62,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
hanhaoshihuan:['male','wei',4,['shenduan','yonglve']],
caorui:['male','wei',3,['huituo','mingjian','xingshuai'],['zhu']],
- caoxiu:['male','wei',4,['qianju','qingxi']],
+ caoxiu:['male','wei',4,['reqianju','reqingxi']],
zhongyao:['male','wei',3,['huomo','zuoding']],
liuchen:['male','shu',4,['zhanjue','qinwang'],['zhu']],
zhangyi:['male','shu',4,['wurong','shizhi']],
@@ -4711,6 +4711,96 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
},
+ reqianju:{
+ mod:{
+ globalFrom:function(from,to,distance){
+ return distance-(Math.max(1,from.getDamagedHp()));
+ }
+ }
+ },
+ reqingxi:{
+ audio:'qingxi',
+ trigger:{player:'useCardToPlayered'},
+ filter:function(event,player){
+ return event.card.name=='sha';
+ },
+ check:function(event,player){
+ return get.attitude(player,event.target)<0;
+ },
+ content:function(){
+ 'step 0'
+ var num=game.countPlayer(function(current){
+ return player.inRange(current);
+ });
+ if(trigger.target.countCards('h')2){
+ return 0;
+ }
+ return 8-get.value(card);
+ }
+ });
+ }
+ 'step 1'
+ if(!event.directfalse&&result.bool){
+ var e1=player.getEquip(1);
+ if(e1){
+ player.discard(e1,'notBySelf');
+ }
+ }
+ else{
+ var storage=trigger.target.storage;
+ var id=trigger.target.playerid;
+ var map=trigger.customArgs;
+ if(!map[id]) map[id]={};
+ if(!map[id].extraDamage) map[id].extraDamage=0;
+ map[id].extraDamage++;
+ if(!storage.reqingxi2) storage.reqingxi2=[];
+ storage.reqingxi2.push(trigger.card);
+ trigger.target.addTempSkill('reqingxi2');
+ }
+ }
+ },
+ reqingxi2:{
+ mod:{
+ cardEnabled:function(card,player){
+ if(card.name=='shan'&&player.storage.reqingxi2&&player.storage.reqingxi2.filter(function(cd){
+ return get.suit(cd)!=get.suit(card);
+ }).length) return false;
+ },
+ },
+ firstDo:true,
+ onremove:true,
+ trigger:{
+ player:['damage','damageCancelled','damageZero'],
+ target:['shaMiss','useCardToExcluded'],
+ },
+ charlotte:true,
+ filter:function(event,player){
+ return player.storage.reqingxi2&&event.card&&player.storage.reqingxi2.contains(event.card);
+ },
+ silent:true,
+ forced:true,
+ popup:false,
+ priority:12,
+ content:function(){
+ player.storage.reqingxi2.remove(trigger.card);
+ if(!player.storage.reqingxi2.length) player.removeSkill('reqingxi2');
+ },
+ },
qingxi:{
audio:2,
trigger:{source:'damageBegin1'},
@@ -4924,8 +5014,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(arg.target!=player.storage.xinxianzhen) return false;
},
effect:{
- player:function(card,player,target,current){
- if(!player.storage.xinxianzhen) return;
+ player:function(card,player,target,current,lsLink){
+ if(isLink||!player.storage.xinxianzhen) return;
if(target!=player.storage.xinxianzhen&&['sha','guohe','shunshou','huogong','juedou'].contains(card.name)){
if(get.effect(player.storage.xinxianzhen,card,player,player)>0){
return [1,2];
@@ -7914,6 +8004,80 @@ game.import('character',function(lib,game,ui,get,ai,_status){
order:7
}
},
+ rezhiman:{
+ audio:'zhiman',
+ audioname:['guansuo'],
+ trigger:{source:'damageBegin2'},
+ check:function(event,player){
+ if(get.damageEffect(event.player,player,player)<0) return true;
+ var att=get.attitude(player,event.player);
+ if(att>0&&event.player.countCards('j')) return true;
+ if(event.num>1){
+ if(att<0) return false;
+ if(att>0) return true;
+ }
+ var cards=event.player.getGainableCards(player,'he');
+ for(var i=0;i=6) return true;
+ }
+ return false;
+ },
+ logTarget:'player',
+ content:function(){
+ if(trigger.player.countGainableCards(player,'hej')){
+ player.gainPlayerCard(trigger.player,'hej',true);
+ }
+ trigger.cancel();
+ }
+ },
+ resanyao:{
+ audio:'sanyao',
+ enable:'phaseUse',
+ usable:1,
+ selectCard:function(){
+ return [Math.max(1,ui.selected.targets.length),game.countPlayer(function(current){
+ return current.isMaxHp();
+ })];
+ },
+ selectTarget:function(){
+ return ui.selected.cards.length;
+ },
+ filterTarget:function(card,player,target){
+ return target.isMaxHp();
+ },
+ check:function(card){
+ if(game.countPlayer(function(current){
+ return current.isMaxHp()&&get.effect(current,'sanyao',player,player)>0;
+ })<=ui.selected.cards.length) return 0;
+ return 7-get.value(card);
+ },
+ position:'he',
+ filterCard:true,
+ content:function(){
+ target.damage('nocard');
+ },
+ ai:{
+ result:{
+ target:function(player,target){
+ var disbool=false;
+ if(player.hasSkill('rezhiman')){
+ if(target.countCards('j')&&get.attitude(player,target)>0){
+ return 1;
+ }
+ if(target.countCards('he',function(card){
+ return card.name=='tengjia'||get.value(card)>0;
+ })){
+ disbool=true;
+ }
+ }
+ var damage=get.damageEffect(target,player);
+ if(disbool&&get.attitude(player,target)<0) return Math.min(-1,damage);
+ return damage;
+ },
+ },
+ order:7
+ }
+ },
reqiaoshui:{
audio:'qiaoshui',
enable:'phaseUse',
@@ -8450,6 +8614,90 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
},
+ rechanhui:{
+ audio:'chanhui',
+ trigger:{player:'useCardToPlayer'},
+ filter:function(event,player){
+ if(_status.currentPhase!=player) return false;
+ if(event.targets.length>1) return false;
+ var card=event.card;
+ if(card.name=='sha'||get.type(card)=='trick') return true;
+ return false;
+ },
+ direct:true,
+ content:function(){
+ "step 0"
+ player.chooseTarget(get.prompt2('rechanhui'),function(card,player,target){
+ if(player==target||target.hasSkill('rechanhui2')) return false;
+ var trigger=_status.event;
+ return player.canUse(trigger.card,target)&&trigger.targets.contains(target)==false;
+ }).set('ai',function(target){
+ var trigger=_status.event.getTrigger();
+ var player=_status.event.player;
+ return get.effect(target,trigger.card,player,player)+0.01;
+ }).set('targets',trigger.targets).set('card',trigger.card);
+ "step 1"
+ if(result.bool){
+ //game.delay(0,200);
+ event.target=result.targets[0];
+ }
+ else{
+ event.finish();
+ }
+ "step 2"
+ player.logSkill('rechanhui',event.target);
+ event.target.chooseCard('交给'+get.translation(player)+'一张手牌,或成为'+
+ get.translation(trigger.card)+'的额外目标').set('ai',function(card){
+ return 5-get.value(card);
+ });
+ "step 3"
+ if(result.bool){
+ player.gain(result.cards,event.target,'giveAuto');
+ trigger.untrigger();
+ trigger.getParent().player=event.target;
+ game.log(event.target,'成为了',trigger.card,'的使用者');
+ }
+ else{
+ game.log(event.target,'成为了',trigger.card,'的额外目标');
+ trigger.getParent().targets.push(event.target);
+ target.addTempSkill('rechanhui2');
+ }
+ }
+ },
+ rechanhui2:{},
+ rejiaojin:{
+ audio:'jiaojin',
+ trigger:{target:'useCardToTargeted'},
+ filter:function(event,player){
+ return player.countCards('he',function(card){
+ return _status.connectMode||get.type(card)=='equip';
+ })&&event.player&&event.player.sex=='male';
+ },
+ direct:true,
+ content:function(){
+ "step 0"
+ var next=player.chooseToDiscard('he','骄矜:是否弃置一张装备牌令'+get.translation(trigger.card)+'对你无效?',function(card,player){
+ return get.type(card)=='equip';
+ });
+ next.set('ai',function(card){
+ if(_status.event.goon){
+ return 9-get.value(card);
+ }
+ else if(_status.event.goon2){
+ return 4-get.value(card);
+ }
+ return 0;
+ });
+ next.set('goon',lib.skill.zhenlie.check(trigger,player));
+ next.set('goon2',get.effect(player,trigger.card,trigger.player,player)<0)
+ next.logSkill='rejiaojin';
+ "step 1"
+ if(result.bool){
+ game.delay(0.5);
+ trigger.excluded.push(player);
+ }
+ }
+ },
chanhui2:{
trigger:{player:'phaseJieshuBegin'},
forced:true,
@@ -11540,6 +11788,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qianju_info:'锁定技,若你已受伤,你计算与其他角色的距离时-X(X为你已损失的体力值)。',
qingxi:'倾袭',
qingxi_info:'当你使用【杀】对目标角色造成伤害时,若你的装备区里有武器牌,你可以令其选择一项:1、弃置X张手牌(X为此武器牌的攻击范围),若如此做,其弃置你的此武器牌;2、令伤害值+1',
+ reqianju:'千驹',
+ reqianju_info:'锁定技,若你已受伤,你计算与其他角色的距离时-X(X为你已损失的体力值且至少为1)。',
+ reqingxi:'倾袭',
+ reqingxi_info:'当你使用【杀】指定目标后,你可以令其选择一项:1、弃置X张手牌(X为你攻击范围内的角色数),若如此做,其弃置你的此武器牌;2、令此【杀】伤害值+1且其不能使用与此牌花色不同的【闪】或转化的【闪】直到此【杀】结算完成。',
jieyue:'节钺',
jieyue1:'节钺',
jieyue2:'节钺',
@@ -11687,8 +11939,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xiansi_info:'准备阶段开始时,你可以将一至两名角色的各一张牌置于你的武将牌上,称为“逆”;当一名角色需要对你使用【杀】时,其可以移去两张“逆”,然后视为对你使用了一张【杀】。',
chanhui:'谮毁',
chanhui_info:'出牌阶段限一次,当你使用【杀】或黑色普通锦囊牌指定唯一目标时,你可令可以成为此牌目标的另一名其他角色选择一项:交给你一张牌并成为此牌的使用者;或成为此牌的额外目标。',
+ rechanhui:'谮毁',
+ rechanhui_info:'出牌阶段,当你使用【杀】或普通锦囊牌指定唯一目标时,你可令可以成为此牌目标的另一名其他角色选择一项:交给你一张牌并成为此牌的使用者;或成为此牌的额外目标且本回合内不能再次成为〖谮毁〗的目标。',
jiaojin:'骄矜',
jiaojin_info:'当你受到男性角色造成的伤害时,你可以弃置一张装备牌,令此伤害-1。',
+ rejiaojin:'骄矜',
+ rejiaojin_info:'当你成为男性角色使用的牌的目标后,你可以弃置一张装备牌,令此牌对你无效。',
shenxing:'慎行',
shenxing_info:'出牌阶段,你可以弃置两张牌,然后摸一张牌。',
bingyi:'秉壹',
@@ -11782,6 +12038,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
paiyi_backup:'排异',
sanyao:'散谣',
zhiman:'制蛮',
+ resanyao:'散谣',
+ rezhiman:'制蛮',
qianxi:'潜袭',
qianxi2:'潜袭',
qianxi2_bg:'袭',
@@ -11802,6 +12060,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qianxi_info:'准备阶段,你可以摸一张牌,并弃置一张牌,然后令一名距离为1的角色不能使用或打出与你弃置的牌颜色相同的手牌直到回合结束。',
zhiman_info:'当你对一名其他角色造成伤害时,你可以防止此伤害,然后获得其装备区或判定区的一张牌。',
sanyao_info:'出牌阶段限一次,你可以弃置一张牌并指定一名体力值最多(或之一)的角色,你对其造成1点伤害。',
+ rezhiman_info:'当你对一名其他角色造成伤害时,你可以防止此伤害,然后获得其区域内的一张牌。',
+ resanyao_info:'出牌阶段限一次,你可以弃置任意张牌并指定等量体力值最多(或之一)的角色。你对这些角色依次造成1点伤害。',
paiyi_info:'出牌阶段限一次,你可以移去一张“权”并选择一名角色,令其摸两张牌,然后若其手牌数大于你,你对其造成1伤害。',
zili_info:'觉醒技,准备阶段开始时,若“权”的数量不小于3,你减1点体力上限,然后选择一项:1、回复1点体力;2、摸两张牌。然后你获得技能“排异”。',
quanji_info:'当你受到1点伤害后,你可以摸一张牌,然后将一张手牌置于武将牌上,称为“权”;你的手牌上限+X(X为“权”的数量)。',
diff --git a/game/asset.js b/game/asset.js
index a6668e02f..ab5c98b49 100644
--- a/game/asset.js
+++ b/game/asset.js
@@ -1,5 +1,5 @@
window.noname_asset_list=[
- 'v1.9.100.2',
+ 'v1.9.100.3',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@@ -573,6 +573,7 @@ window.noname_asset_list=[
'audio/die/re_zhonghui.mp3',
'audio/die/xin_chengpu.mp3',
'audio/die/zhengxuan.mp3',
+ 'audio/die/ol_sunjian.mp3',
'audio/skill/anguo1.mp3',
'audio/skill/anguo2.mp3',
@@ -2525,6 +2526,20 @@ window.noname_asset_list=[
'audio/skill/zhengjing_guanju.mp3',
'audio/skill/zhengjing1.mp3',
'audio/skill/zhengjing2.mp3',
+ 'audio/skill/bizheng1.mp3',
+ 'audio/skill/bizheng2.mp3',
+ 'audio/skill/fz_liegong.mp3',
+ 'audio/skill/fz_new_longdan.mp3',
+ 'audio/skill/fz_new_paoxiao.mp3',
+ 'audio/skill/fz_new_tieji.mp3',
+ 'audio/skill/fz_wusheng.mp3',
+ 'audio/skill/fz_xinkuanggu.mp3',
+ 'audio/skill/wulie1.mp3',
+ 'audio/skill/wulie2.mp3',
+ 'audio/skill/yidian1.mp3',
+ 'audio/skill/yidian2.mp3',
+ 'audio/skill/yinghun_ol_sunjian1.mp3',
+ 'audio/skill/yinghun_ol_sunjian2.mp3',
'font/huangcao.ttf',
'font/shousha.ttf',
@@ -3096,6 +3111,10 @@ window.noname_asset_list=[
'image/character/key_kyoko.jpg',
'image/character/key_shizuru.jpg',
'image/character/ol_sunjian.jpg',
+ 'image/character/key_shiorimiyuki.jpg',
+ 'image/character/ol_huaxiong.jpg',
+ 'image/character/yj_xuhuang.jpg',
+ 'image/character/yj_zhanghe.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',
diff --git a/game/game.js b/game/game.js
index 261a1a2b6..55480c8c1 100644
--- a/game/game.js
+++ b/game/game.js
@@ -13361,7 +13361,7 @@
var js=from.getCards('j');
for(var i=0;i0){
if(!_status.event.nojudge&&target.countCards('j',function(card){
return game.hasPlayer(function(current){
- return !current.hasJudge(card)&&get.attitude(player,current)<0;
+ return current.canAddJudge(card)&&get.attitude(player,current)<0;
})
})) return 14;
if(target.countCards('e',function(card){
@@ -13420,7 +13420,7 @@
}
}
if(i==es.length&&(_status.event.nojudge||!ui.selected.targets[0].countCards('j',function(card){
- return !target.hasJudge(card);
+ return target.canAddJudge(card);
}))){
return 0;
}
@@ -13432,6 +13432,7 @@
if(event.prompt2) next.set('prompt2',event.prompt2);
if(event.forced) next.set('forced',true);
'step 1'
+ event.result=result;
if(result.bool){
player.line2(result.targets,'green');
event.targets=result.targets;
@@ -13460,7 +13461,7 @@
var targets1=_status.event.targets1;
if(get.position(button.link)=='j'){
if(_status.event.nojudge) return false;
- return !targets1.storage._disableJudge&&!targets1.hasJudge(button.link);
+ return targets1.canAddJudge(button.link);
}
else{
return targets1.isEmpty(get.subtype(button.link));
@@ -13483,8 +13484,9 @@
event.targets[1].addJudge(link);
}
event.targets[0].$give(link,event.targets[1])
+ event.result.card=link;
+ event.result.position=get.position(link);
game.delay();
- event.result={bool:true};
}
},
useCard:function(){
@@ -18105,7 +18107,7 @@
var att2=get.attitude(player,current2);
if(att2>=0) return false;
}
- return current!=current2&&!current2.storage._disableJudge&&!current2.hasJudge(js[i]);
+ return current!=current2&¤t2.canAddJudge(js[i]);
})){
return true;
}
@@ -18995,6 +18997,7 @@
return next;
},
canAddJudge:function(card){
+ if(this.storage._disableJudge) return false;
var name;
if(typeof card=='string'){
name=card;
@@ -32324,7 +32327,7 @@
if(card.ai.basic.equipValue==undefined) card.ai.basic.equipValue=1;
}
if(card.ai.basic.value==undefined) card.ai.basic.value=function(card,player,index,method){
- if(player.isDisabled(get.subtype(card))) return 0.1;
+ if(player.isDisabled(get.subtype(card))) return 0.01;
var value=0;
var info=get.info(card);
var current=player.getEquip(info.subtype);
@@ -32337,11 +32340,13 @@
}
if(typeof equipValue=='function'){
if(method=='raw') return equipValue(card,player);
- return equipValue(card,player)-value;
+ if(method=='raw2') return equipValue(card,player)-value;
+ return Math.max(0.1,equipValue(card,player)-value);
}
if(typeof equipValue!='number') equipValue=0;
if(method=='raw') return equipValue;
- return equipValue-value;
+ if(method=='raw2') return equipValue-value;
+ return Math.max(0.1,equipValue-value);
}
if(!card.ai.result.keepAI) card.ai.result.target=function(player,target,card){
return get.equipResult(player,target,card.name);
@@ -50560,7 +50565,7 @@
else return 0;
}
if(typeof value=='number') return value;
- if(typeof value=='function') return value(card,player);
+ if(typeof value=='function') return value(card,player,null,'raw2');
return 0;
},
equipValueNumber:function(card){
@@ -50652,7 +50657,7 @@
for(var i=0;i1) rank=5;
if(skills.contains('qiaobian')&&player.countCards('h')>4) rank=6;
- if((get.guozhanRank(player.name1)0.5?1:-1;
return (rank*get.attitude(player,trigger.source))>0?'副将':'主将';
}());
@@ -7330,6 +7478,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
"new_mouduan_info":"结束阶段,若你于本回合内使用过四种花色或三种类别的牌,则你可以移动场上的一张牌。",
"new_longdan":"龙胆",
"new_longdan_info":"你可以将【杀】当【闪】,【闪】当【杀】使用或打出。当你发动〖龙胆〗使用的【杀】被【闪】抵消时,你可以对另一名角色造成1点伤害;当你发动〖龙胆〗使用的【闪】抵消了【杀】时,你可以令一名其他角色回复1点体力(不能是【杀】的使用者)。",
+ "fz_new_longdan":"龙胆",
+ "fz_new_longdan_info":"你可以将【杀】当【闪】,【闪】当【杀】使用或打出。当你发动〖龙胆〗使用的【杀】被【闪】抵消时,你可以对另一名角色造成1点伤害;当你发动〖龙胆〗使用的【闪】抵消了【杀】时,你可以令一名其他角色回复1点体力(不能是【杀】的使用者)。",
"new_paoxiao":"咆哮",
"new_paoxiao_info":"锁定技,你使用【杀】无数量限制;当你于一回合内使用第二张【杀】时,摸一张牌。",
"new_kurou":"苦肉",
@@ -7870,12 +8020,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
mayChangeVice:function(){
'step 0'
player.chooseBool('是否变更副将?').set('ai',function(){
- var name=player.name2;
- var skills=lib.character[name][3].slice(0);
- for(var i=0;i