diff --git a/audio/die/caimaozhangyun.mp3 b/audio/die/caimaozhangyun.mp3
new file mode 100644
index 000000000..b71432044
Binary files /dev/null and b/audio/die/caimaozhangyun.mp3 differ
diff --git a/audio/die/ol_puyuan.mp3 b/audio/die/ol_puyuan.mp3
new file mode 100644
index 000000000..529d05136
Binary files /dev/null and b/audio/die/ol_puyuan.mp3 differ
diff --git a/audio/die/wangxiang.mp3 b/audio/die/wangxiang.mp3
new file mode 100644
index 000000000..67adfd7a6
Binary files /dev/null and b/audio/die/wangxiang.mp3 differ
diff --git a/audio/die/wenyang.mp3 b/audio/die/wenyang.mp3
new file mode 100644
index 000000000..4b730723d
Binary files /dev/null and b/audio/die/wenyang.mp3 differ
diff --git a/audio/die/yanrou.mp3 b/audio/die/yanrou.mp3
new file mode 100644
index 000000000..82952069a
Binary files /dev/null and b/audio/die/yanrou.mp3 differ
diff --git a/audio/die/zhangyao.mp3 b/audio/die/zhangyao.mp3
new file mode 100644
index 000000000..8edb38b55
Binary files /dev/null and b/audio/die/zhangyao.mp3 differ
diff --git a/audio/skill/bingxin1.mp3 b/audio/skill/bingxin1.mp3
new file mode 100644
index 000000000..d4cc5beb7
Binary files /dev/null and b/audio/skill/bingxin1.mp3 differ
diff --git a/audio/skill/bingxin2.mp3 b/audio/skill/bingxin2.mp3
new file mode 100644
index 000000000..7a416a876
Binary files /dev/null and b/audio/skill/bingxin2.mp3 differ
diff --git a/audio/skill/choutao1.mp3 b/audio/skill/choutao1.mp3
new file mode 100644
index 000000000..d13520006
Binary files /dev/null and b/audio/skill/choutao1.mp3 differ
diff --git a/audio/skill/choutao2.mp3 b/audio/skill/choutao2.mp3
new file mode 100644
index 000000000..48050d73f
Binary files /dev/null and b/audio/skill/choutao2.mp3 differ
diff --git a/audio/skill/jinglan1.mp3 b/audio/skill/jinglan1.mp3
new file mode 100644
index 000000000..412cea150
Binary files /dev/null and b/audio/skill/jinglan1.mp3 differ
diff --git a/audio/skill/jinglan2.mp3 b/audio/skill/jinglan2.mp3
new file mode 100644
index 000000000..01330892a
Binary files /dev/null and b/audio/skill/jinglan2.mp3 differ
diff --git a/audio/skill/lianzhou1.mp3 b/audio/skill/lianzhou1.mp3
new file mode 100644
index 000000000..a06ef9f3b
Binary files /dev/null and b/audio/skill/lianzhou1.mp3 differ
diff --git a/audio/skill/lianzhou2.mp3 b/audio/skill/lianzhou2.mp3
new file mode 100644
index 000000000..fdccbcfd6
Binary files /dev/null and b/audio/skill/lianzhou2.mp3 differ
diff --git a/audio/skill/olqisi1.mp3 b/audio/skill/olqisi1.mp3
new file mode 100644
index 000000000..e80395932
Binary files /dev/null and b/audio/skill/olqisi1.mp3 differ
diff --git a/audio/skill/olqisi2.mp3 b/audio/skill/olqisi2.mp3
new file mode 100644
index 000000000..9be07d7a6
Binary files /dev/null and b/audio/skill/olqisi2.mp3 differ
diff --git a/audio/skill/olshengong1.mp3 b/audio/skill/olshengong1.mp3
new file mode 100644
index 000000000..6541162f4
Binary files /dev/null and b/audio/skill/olshengong1.mp3 differ
diff --git a/audio/skill/olshengong2.mp3 b/audio/skill/olshengong2.mp3
new file mode 100644
index 000000000..346820422
Binary files /dev/null and b/audio/skill/olshengong2.mp3 differ
diff --git a/audio/skill/xiangshu1.mp3 b/audio/skill/xiangshu1.mp3
new file mode 100644
index 000000000..3e59a0d9c
Binary files /dev/null and b/audio/skill/xiangshu1.mp3 differ
diff --git a/audio/skill/xiangshu2.mp3 b/audio/skill/xiangshu2.mp3
new file mode 100644
index 000000000..e4e13953a
Binary files /dev/null and b/audio/skill/xiangshu2.mp3 differ
diff --git a/audio/skill/xiyan1.mp3 b/audio/skill/xiyan1.mp3
new file mode 100644
index 000000000..26b6ffcf2
Binary files /dev/null and b/audio/skill/xiyan1.mp3 differ
diff --git a/audio/skill/xiyan2.mp3 b/audio/skill/xiyan2.mp3
new file mode 100644
index 000000000..eb766e466
Binary files /dev/null and b/audio/skill/xiyan2.mp3 differ
diff --git a/audio/skill/yongjin_xin_lingtong1.mp3 b/audio/skill/yongjin_xin_lingtong1.mp3
index 2d910fbaa..24c72af7c 100644
Binary files a/audio/skill/yongjin_xin_lingtong1.mp3 and b/audio/skill/yongjin_xin_lingtong1.mp3 differ
diff --git a/audio/skill/yongjin_xin_lingtong2.mp3 b/audio/skill/yongjin_xin_lingtong2.mp3
index 7c1b5fa63..3cf7bbee7 100644
Binary files a/audio/skill/yongjin_xin_lingtong2.mp3 and b/audio/skill/yongjin_xin_lingtong2.mp3 differ
diff --git a/audio/skill/yuanyu1.mp3 b/audio/skill/yuanyu1.mp3
new file mode 100644
index 000000000..5c7588ab0
Binary files /dev/null and b/audio/skill/yuanyu1.mp3 differ
diff --git a/audio/skill/yuanyu2.mp3 b/audio/skill/yuanyu2.mp3
new file mode 100644
index 000000000..7d1fb07e3
Binary files /dev/null and b/audio/skill/yuanyu2.mp3 differ
diff --git a/card/extra.js b/card/extra.js
index 8e2a14671..54dc90fc1 100644
--- a/card/extra.js
+++ b/card/extra.js
@@ -1015,7 +1015,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
["club",11,"tiesuo"],
["club",12,"tiesuo"],
["club",13,"tiesuo"],
- ["heart",13,"wuxie"],
+ ["heart",1,"wuxie"],
["heart",13,"wuxie"],
["spade",13,"wuxie"],
["spade",10,"bingliang"],
diff --git a/card/guozhan.js b/card/guozhan.js
index 3cf034c4b..3ed6fa56e 100644
--- a/card/guozhan.js
+++ b/card/guozhan.js
@@ -1256,9 +1256,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
equipSkill:true,
trigger:{player:'linkBefore'},
forced:true,
- //priority:20,
filter:function(event,player){
- return !player.isMajor()&&!player.isLinked();
+ return player.isNotMajor()&&!player.isLinked();
},
content:function(){
trigger.cancel();
diff --git a/card/standard.js b/card/standard.js
index 48545380d..0e8f5a3c8 100644
--- a/card/standard.js
+++ b/card/standard.js
@@ -20,7 +20,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
target:-1.5
},
tag:{
- losehp:1
+ loseHp:1
}
}
},
diff --git a/card/yingbian.js b/card/yingbian.js
index f648a0b00..b51ab5778 100644
--- a/card/yingbian.js
+++ b/card/yingbian.js
@@ -402,7 +402,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
forced:true,
audio:true,
filter:function(event,player){
- if(event.targets.length<2||(event.card.name!='sha'&&(get.type(event.card)!='trick'||get.color(event.card)!='black'))) return false;
+ if(event.targets.length<2) return false;
+ if(event.card.name!='sha'){
+ var type=get.type(event.card);
+ if(type!='trick') return false;
+ if(get.color(event.card)!='black'&&!get.tag(event.card,'damage')) return false;
+ }
if(player.hasSkillTag('unequip2')) return false;
if(event.player.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
@@ -747,7 +752,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
ai:{
effect:{
player:function(card,player,target){
- if(typeof card!='object'||!target||get.name(card)!='sha'&&(get.type(card)!='trick'||get.color(card)!='black')) return;
+ if(typeof card!='object'||!target||get.name(card)!='sha'&&(get.type(card)!='trick'||(get.color(card)!='black'&&!get.tag(card,'damage')))) return;
var info=get.info(card);
var targets=[];
targets.addArray(ui.selected.targets);
@@ -809,7 +814,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
wutiesuolian_info:'锁定技,当你使用【杀】指定目标后,若其未横置,则其横置。',
heiguangkai:'黑光铠',
heiguangkai_skill:'黑光铠',
- heiguangkai_info:'锁定技,当你成为【杀】或黑色普通锦囊牌的目标后,若此牌的目标数大于1,则你令此牌对你无效。',
+ heiguangkai_info:'锁定技,当你成为【杀】或伤害类锦囊牌或黑色普通锦囊牌的目标后,若此牌的目标数大于1,则你令此牌对你无效。',
tongque:'铜雀',
tongque_skill:'铜雀',
tongque_info:'锁定技,你于一回合内使用的第一张带有【应变】效果的牌无视条件直接生效。',
diff --git a/character/diy.js b/character/diy.js
index 0bc3ef296..53a4328d5 100755
--- a/character/diy.js
+++ b/character/diy.js
@@ -82,7 +82,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_nao:['female','key',3,['nao_duyin','nao_wanxin','nao_shouqing']],
key_yuuki:['female','key',3,['yuuki_yicha']],
key_kotarou:['male','key',3,['kotarou_rewrite','kotarou_aurora']],
- key_tenzen:['male','key',4,['tenzen_yixing','tenzen_lingyu']],
+ key_tenzen:['male','key',4,['tenzen_fenghuan','tenzen_retianquan']],
key_kyouko:['female','key',3,['kyouko_rongzhu','kyouko_gongmian']],
key_kyou:['female','key',3,['kyou_zhidian','kyou_duanfa']],
@@ -514,6 +514,106 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_lucia:['key_shizuru'],
},
skill:{
+ tenzen_fenghuan:{
+ trigger:{global:'useCardAfter'},
+ direct:true,
+ filter:function(event,player){
+ if(player==event.player||event.targets.length!=1||event.targets[0]!=player||!event.player.isIn()||
+ (event.card.name!='sha'&&(get.type(event.card,null,false)!='trick'||!get.tag(event.card,'damage')))) return false;
+ if(!player.canUse({
+ name:event.card.name,
+ nature:event.card.nature,
+ isCard:true,
+ },event.player,false)) return false;
+ var num=get.number(event.card);
+ if(typeof num!='number') return false;
+ num*=2;
+ var hs=player.getCards('he');
+ for(var i of hs){
+ num-=get.number(i);
+ if(num<=0) return true;
+ }
+ return false;
+ },
+ content:function(){
+ 'step 0'
+ var num=get.number(trigger.card)*2;
+ var card={
+ name:trigger.card.name,
+ nature:trigger.card.nature,
+ isCard:true,
+ };
+ player.chooseToDiscard('he',get.prompt('tenzen_fenghuan',trigger.player),'弃置任意张点数之和不小于'+num+'的牌,然后视为对其使用一张'+get.translation(card)).set('selectCard',function(){
+ var cards=ui.selected.cards,num=_status.event.cardNumber;
+ for(var i of cards){
+ num-=get.number(i);
+ if(num<=0) return [cards.length,cards.length+1];
+ }
+ return [cards.length+1,cards.length+1];
+ }).set('cardNumber',num).set('logSkill',['tenzen_fenghuan',trigger.player]);
+ 'step 1'
+ if(result.bool){
+ var card={
+ name:trigger.card.name,
+ nature:trigger.card.nature,
+ isCard:true,
+ },target=trigger.player;
+ if(target.isIn()&&player.canUse(card,target,false)) player.useCard(card,target,false);
+ }
+ },
+ },
+ tenzen_retianquan:{
+ trigger:{player:'useCardToPlayered'},
+ filter:function(event,player){
+ return event.card.name=='sha'&&(player.hp>0||player.countCards('he')>0);
+ },
+ logTarget:'target',
+ usable:1,
+ check:function(event,player){
+ return get.attitude(player,event.target)<0;
+ },
+ prompt2:'你可失去1点体力或弃置一张牌,展示牌堆顶的三张牌(若你的体力值小于体力上限的50%,则改为展示五张牌)。每有一张基本牌,其所需使用的【闪】的数量便+1。然后若此牌造成过伤害,则你获得展示牌中的所有非基本牌。',
+ content:function(){
+ 'step 0'
+ player.chooseToDiscard('弃置一张牌,或点「取消」失去一点体力','he');
+ 'step 1'
+ if(!result.bool) player.loseHp();
+ 'step 2'
+ var cards=get.cards(player.hp<=player.maxHp/2?5:3);
+ player.showCards(cards,get.translation(player)+'发动了【天全】');
+ game.cardsGotoOrdering(cards).relatedEvent=trigger.getParent();
+ var num=cards.filter(function(card){
+ return get.type(card,false)=='basic';
+ }).length;
+ if(num){
+ if(trigger.card.name=='sha'){
+ var id=trigger.target.playerid;
+ var map=trigger.getParent().customArgs;
+ if(!map[id]) map[id]={};
+ if(typeof map[id].shanRequired=='number'){
+ map[id].shanRequired+=num;
+ }
+ else{
+ map[id].shanRequired=1+num;
+ }
+ }
+ }
+ if(num<5){
+ var next=game.createEvent('tenzen_retianqua_gain');
+ next.cards=cards;
+ next.player=player;
+ event.next.remove(next);
+ trigger.getParent().after.push(next);
+ next.setContent(function(){
+ if(player.getHistory('sourceDamage',function(evt){
+ return evt.card==event.parent.card;
+ }).length>0) player.gain(cards.filter(function(card){
+ return get.type(card,false)!='basic';
+ }),'gain2');
+ });
+ }
+ },
+ },
satomi_luodao:{
trigger:{player:'useCardToPlayered'},
logTarget:'target',
@@ -15719,6 +15819,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
satomi_daohai:'稻海',
satomi_daohai_info:'结束阶段,若你本回合内弃置过牌,则你可以视为使用一张【五谷丰登】。然后你可以将你于此【五谷丰登】中获得的牌当做【乐不思蜀】使用。',
satomi_daohai_append:'五穀豊穣、刈り入れ時だね!',
+ tenzen_fenghuan:'封还',
+ tenzen_fenghuan_info:'其他角色使用的【杀】或伤害性锦囊牌结算结束后,若你是此牌的唯一目标,则你可以弃置任意张点数之和大于等于此牌点数两倍的牌,然后视为对其使用一张名称相同的牌。',
+ tenzen_retianquan:'天全',
+ tenzen_retianquan_info:'每回合限一次。当你使用【杀】指定目标后,你可失去1点体力或弃置一张牌,然后展示牌堆顶的三张牌(若你的体力值小于体力上限的50%,则改为展示五张牌)。这些牌中每有一张基本牌,响应此牌所需的【闪】的数量便+1。此牌结算结束后,若此牌造成过伤害,则你获得展示牌中的所有非基本牌。',
key_kud:'库特莉亚芙卡',
kud_qiaoshou:'巧手',
diff --git a/character/extra.js b/character/extra.js
index 918887285..9de40ac61 100755
--- a/character/extra.js
+++ b/character/extra.js
@@ -1895,7 +1895,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else event.finish();
'step 6'
if(result.index==0) target.draw();
- else target.chooseToDiscard('he',true);
+ else target.chooseToDiscard('h',true);
'step 7'
if(target.hp==target.countCards('h')) event.goto(4);
},
diff --git a/character/hearth.js b/character/hearth.js
index 8ad611259..4431ca212 100644
--- a/character/hearth.js
+++ b/character/hearth.js
@@ -3161,7 +3161,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
if(!lib.character.stone_misha){
- lib.character.stone_misha=['male','shu',3,['chaofeng'],['minskin','stone','mode:stone'],[3,3,'hunter']];
+ lib.character.stone_misha=['male','shu',3,['lslschaofeng'],['minskin','stone','mode:stone'],[3,3,'hunter']];
}
if(!lib.character.stone_huofu){
lib.character.stone_huofu=['male','qun',2,['stone_chongfeng'],['minskin','stone','mode:stone'],[3,4,'hunter']];
diff --git a/character/rank.js b/character/rank.js
index b79e2e51c..2f487752a 100644
--- a/character/rank.js
+++ b/character/rank.js
@@ -269,6 +269,7 @@ window.noname_character_rank={
're_fengfangnv',
'caomao',
'guanning',
+ 'ol_puyuan',
'key_misuzu',
'key_sunohara',
'key_umi',
@@ -514,6 +515,7 @@ window.noname_character_rank={
'tengfanglan',
'tenggongzhu',
'sp_menghuo',
+ 'ruiji',
],
bp:[
'chess_diaochan',
@@ -780,6 +782,8 @@ window.noname_character_rank={
'tengyin',
'old_yangzhi',
'laiyinger',
+ 'yanrou',
+ 'weizi',
],
b:[
'diy_feishi',
@@ -1008,6 +1012,7 @@ window.noname_character_rank={
'liuba',
'jin_guohuai',
'tw_tianyu',
+ 'zhangyao',
],
bm:[
'diy_xizhenxihong',
@@ -1215,6 +1220,7 @@ window.noname_character_rank={
're_chenqun',
'sp_huaxin',
'sp_xujing',
+ 'caimaozhangyun',
],
d:[
'lvmeng',
@@ -1235,6 +1241,7 @@ window.noname_character_rank={
'key_youta',
'old_chenqun',
'duanwei',
+ 'wangxiang',
],
rarity:{
legend:[
@@ -1353,6 +1360,7 @@ window.noname_character_rank={
'zhangmancheng',
'guanning',
'shen_jiangwei',
+ 'ol_puyuan',
'key_tomoya',
'key_masato',
'key_shiorimiyuki',
@@ -1944,6 +1952,10 @@ window.noname_character_rank={
'tenggongzhu',
'tengfanglan',
'dc_bulianshi',
+ 'ruiji',
+ 'weizi',
+ 'yanrou',
+ 'zhangyao',
],
junk:[
'sunshao',
@@ -1964,6 +1976,7 @@ window.noname_character_rank={
'key_youta',
'sp_xujing',
'fanjiangzhangda',
+ 'wangxiang',
],
}
};
diff --git a/character/refresh.js b/character/refresh.js
index 73b7523d6..5fd052165 100755
--- a/character/refresh.js
+++ b/character/refresh.js
@@ -8500,7 +8500,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
effect:{
target:function (card,player,target){
if(player.hasSkillTag('jueqing',false,target)) return [1,-1];
- if(get.tag(card,'damage')&&player!=target) return [1,0.6];
+ if(get.tag(card,'damage')&&player!=target){
+ var cards=card.cards,evt=_status.event;
+ if(evt.player==target&&card.name=='damage'&&evt.getParent().type=='card') cards=evt.getParent().cards.filterInD();
+ if(target.hp<=1) return;
+ if(get.itemtype(cards)!='cards') return;
+ for(var i of cards){
+ if(get.name(i,target)=='tao') return [1,5];
+ }
+ if(get.value(cards,target)>=(6+player.getDamagedHp())) return [1,3];
+ return [1,0.6];
+ }
},
},
},
@@ -10586,21 +10596,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
order:8,
result:{
player:function(player){
- if(player.hp<=2) return player.countCards('h')==0?1:0;
- if(player.countCards('h',{name:'sha',color:'red'})) return 1;
- return player.countCards('h')<=player.hp?1:0;
+ return get.effect(player,{name:'losehp'},player,player);
}
},
- effect:function(card,player,target){
- if(get.tag(card,'damage')){
- if(player.hasSkillTag('jueqing',false,target)) return [1,1];
- return 1.2;
- }
- if(get.tag(card,'loseHp')){
- if(player.hp<=1) return;
- return [0,0];
- }
- }
}
},
zhaxiang:{
@@ -10620,7 +10618,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
ai:{
- maihp:true
+ maihp:true,
+ effect:function(card,player,target){
+ if(get.tag(card,'damage')){
+ if(player.hasSkillTag('jueqing',false,target)) return [1,1];
+ return 1.2;
+ }
+ if(get.tag(card,'loseHp')){
+ if(target.hp<=1) return;
+ var using=target.isPhaseUsing();
+ if(target.hp<=2) return [1,player.countCards('h')<=1&&using?3:0];
+ if(using&&target.countCards('h',{name:'sha',color:'red'})) return [1,3];
+ return [1,(target.countCards('h')<=target.hp||using&&game.hasPlayer(function(current){
+ return current!=player&&get.attitude(player,current)<0&&player.inRange(current);
+ }))?3:2]
+ }
+ }
}
},
zhaxiang2:{
diff --git a/character/shenhua.js b/character/shenhua.js
index c8abafffe..8ddc0e378 100755
--- a/character/shenhua.js
+++ b/character/shenhua.js
@@ -1373,7 +1373,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return 6-get.value(card);
});
}else{
- event.target.chooseToDiscard(1,'e',true);
+ event.target.chooseToDiscard(1,'he',true,{type:'equip'});
event.finish();
};
}else{
@@ -7363,7 +7363,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"nzry_zhenglun":"整论",
"nzry_zhenglun_info":"若你没有“橘”,你可以跳过摸牌阶段然后获得一个“橘”",
"nzry_feijun":"飞军",
- "nzry_feijun_info":"出牌阶段限一次,你可以弃置一张牌,然后选择一项:令一名手牌数大于你的角色交给你一张牌;或令一名装备区里牌数大于你的角色弃置一张装备牌",
+ "nzry_feijun_info":"出牌阶段限一次。你可以弃置一张牌,然后选择一项:⒈令一名手牌数大于你的角色交给你一张牌;⒉令一名装备区里牌数大于你的角色弃置一张装备牌。",
"nzry_binglve":"兵略",
"nzry_binglve_info":"锁定技,当你发动“飞军”时,若目标与你之前指定的目标均不相同,则你摸两张牌",
"nzry_juzhan1":"拒战",
diff --git a/character/sp.js b/character/sp.js
index 488cb4589..551769e44 100755
--- a/character/sp.js
+++ b/character/sp.js
@@ -5,13 +5,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true,
characterSort:{
sp:{
- sp_tianji:["sunhao","liuxie","caoang","hetaihou","sunluyu",'ol_wangrong',"zuofen","ganfuren","ol_bianfuren","qinghegongzhu","tengfanglan"],
+ sp_tianji:["sunhao","liuxie","caoang","hetaihou","sunluyu",'ol_wangrong',"zuofen","ganfuren","ol_bianfuren","qinghegongzhu","tengfanglan","ruiji"],
sp_sibi:["yangxiu","chenlin","chengyu","shixie","fuwan","wangyun","zhugejin","simalang","maliang","buzhi","dongyun","kanze","sunqian","xizhicai","sunshao",'duxi',"jianggan",'ol_dengzhi','ol_yangyi','ol_dongzhao','ol_chendeng','jin_yanghu'],
sp_tianzhu:["wutugu","yanbaihu","shamoke","panfeng","zhugedan",'huangzu','gaogan',"tadun"],
sp_nvshi:["lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu','ol_xinxianying',"daxiaoqiao"],
- sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan'],
+ sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan','ol_puyuan'],
sp_huben:["caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng","wuyan","ol_zhuling","tianyu","fanjiangzhangda"],
- sp_liesi:['mizhu'],
+ sp_liesi:['mizhu','weizi'],
sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao','sp_ol_zhanghe','sp_menghuo'],
sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv'],
sp_wanglang:['wanglang'],
@@ -28,6 +28,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
character:{
+ ol_puyuan:['male','shu',4,['olshengong','olqisi']],
+ ruiji:['female','wu',3,['qiaoli','qingliang']],
+ weizi:['male','qun',3,['yuanzi','liejie']],
tengfanglan:['female','wu',3,['luochong','aichen']],
sp_menghuo:['male','qun',4,['spmanwang']],
jin_yanghu:['male','jin',4,['huaiyuan','chongxin','dezhang']],
@@ -168,6 +171,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//kaisa:["male","western",4,["zhengfu"]],
},
characterIntro:{
+ ruiji:'芮姬,芮玄之女,太子孙登妃,黄武五年卒。',
+ weizi:'卫兹(?-190年),字子许,(《三国演义》中其名为卫弘,当为误记),陈留襄邑(今河南睢县)人。曾举孝廉,先后被车骑将军何苗、司徒杨赐等召辟。中平六年(189年)十二月,曹操在陈留己吾募兵,而卫兹以家财资助曹操,使曹操顺利募得五千士兵。此后,卫兹与曹操共同讨伐董卓。初平元年(190年),卫兹在跟随曹操讨伐董卓途中,于荥阳汴水遭遇董卓军徐荣,力战终日,失利身亡。',
tengfanglan:'滕芳兰,生卒年不详,北海剧县(今山东省寿光市)人,太常滕胤的族女,滕牧的女儿,吴末帝孙皓的皇后。永安元年(258年),孙皓为乌程侯时被聘为妃。元兴元年(264年),孙皓登基后被立为皇后。孙吴灭亡后,随孙皓迁居洛阳。',
qinghegongzhu:'清河长公主,沛国谯县人,曹操长女(按其与曹操长子曹昂同出于刘夫人,而刘夫人又早死,故其年龄应长于曹丕等其他曹操诸子女,又按长公主亦有年最长之意,故应为曹操之长女)。母刘夫人,得到曹操喜爱。清河公主后来下嫁夏侯楙。曹操初欲嫁丁仪,曹丕劝其嫁与夏侯楙。后与小叔子设计欲谋害丈夫,未果。',
fanjiangzhangda:'范强,在明朝小说《三国演义》里叫做范疆。二人均为张飞手下部将。蜀汉章武元年,刘备伐吴,张飞率军从阆中前往江州,出发前,范强和张达杀死张飞,带着张飞的首级投奔了东吴。',
@@ -323,6 +328,162 @@ game.import('character',function(lib,game,ui,get,ai,_status){
simazhao:['wangyuanji'],
},
card:{
+ //蒲元衍生
+ sanlve:{
+ derivation:'ol_puyuan',
+ type:"equip",
+ subtype:"equip5",
+ ai:{
+ basic:{
+ equipValue:5,
+ },
+ },
+ skills:["sanlve_skill"],
+ fullskin:true,
+ },
+ zhaogujing:{
+ derivation:'ol_puyuan',
+ type:"equip",
+ subtype:"equip5",
+ ai:{
+ basic:{
+ equipValue:6.5,
+ },
+ },
+ skills:["zhaogujing_skill"],
+ fullskin:true,
+ },
+ shufazijinguan:{
+ derivation:'ol_puyuan',
+ type:"equip",
+ subtype:"equip5",
+ modeimage:'boss',
+ ai:{
+ basic:{
+ equipValue:8,
+ },
+ },
+ skills:["shufazijinguan_skill"],
+ fullskin:true,
+ },
+ xuwangzhimian:{
+ derivation:'ol_puyuan',
+ type:'equip',
+ fullskin:true,
+ subtype:'equip5',
+ modeimage:'boss',
+ skills:['xuwangzhimian'],
+ ai:{
+ equipValue:7,
+ }
+ },
+ hongmianbaihuapao:{
+ derivation:'ol_puyuan',
+ type:"equip",
+ subtype:"equip2",
+ modeimage:'boss',
+ ai:{
+ basic:{
+ equipValue:4,
+ },
+ },
+ skills:["hongmianbaihuapao_skill"],
+ fullskin:true,
+ },
+ guofengyupao:{
+ derivation:'ol_puyuan',
+ type:'equip',
+ fullskin:true,
+ modeimage:'boss',
+ subtype:'equip2',
+ skills:['guofengyupao'],
+ ai:{
+ equipValue:7
+ }
+ },
+ qimenbagua:{
+ derivation:'ol_puyuan',
+ type:'equip',
+ fullskin:true,
+ modeimage:'boss',
+ subtype:'equip2',
+ skills:['qimenbagua'],
+ ai:{
+ equipValue:7.5
+ }
+ },
+ linglongshimandai:{
+ derivation:'ol_puyuan',
+ type:"equip",
+ subtype:"equip2",
+ modeimage:'boss',
+ ai:{
+ basic:{
+ equipValue:5,
+ },
+ },
+ skills:["linglongshimandai_skill"],
+ fullskin:true,
+ },
+ chixueqingfeng:{
+ derivation:'ol_puyuan',
+ type:'equip',
+ fullskin:true,
+ modeimage:'boss',
+ subtype:'equip1',
+ distance:{attackFrom:-1},
+ skills:['chixueqingfeng'],
+ ai:{
+ equipValue:6.7
+ }
+ },
+ guilongzhanyuedao:{
+ derivation:'ol_puyuan',
+ type:'equip',
+ fullskin:true,
+ modeimage:'boss',
+ subtype:'equip1',
+ distance:{attackFrom:-2},
+ skills:['guilongzhanyuedao'],
+ nomod:true,
+ nopower:true,
+ unique:true,
+ ai:{
+ equipValue:4
+ }
+ },
+ wushuangfangtianji:{
+ derivation:'ol_puyuan',
+ type:"equip",
+ modeimage:'boss',
+ subtype:"equip1",
+ distance:{
+ attackFrom:-3,
+ },
+ ai:{
+ basic:{
+ equipValue:3,
+ },
+ },
+ skills:["wushuangfangtianji_skill"],
+ fullskin:true,
+ },
+ bintieshuangji:{
+ derivation:'ol_puyuan',
+ type:"equip",
+ subtype:"equip1",
+ distance:{
+ attackFrom:-2,
+ },
+ ai:{
+ basic:{
+ equipValue:4.5,
+ },
+ },
+ skills:["bintieshuangji_skill"],
+ fullskin:true,
+ },
+ //王允
wy_meirenji:{
fullskin:true,
vanish:true,
@@ -484,6 +645,1017 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
+ //蒲元
+ olshengong:{
+ audio:2,
+ enable:'phaseUse',
+ usable:3,
+ filter:function(event,player){
+ var list=['equip1','equip2','others'];
+ for(var i=0;i1) return;
+ var card=get.cards()[0];
+ if(!card) return;
+ game.log(player,'展示了',card);
+ event.cardsx.push(card);
+ event.cards2[index].push(card);
+ game.broadcastAll(function(id,card,name,index){
+ var dialog=get.idDialog(id);
+ if(!dialog) return;
+ var button=ui.create.button(card,'card',dialog.buttonss[index]);
+ button.querySelector('.info').innerHTML=(name+'|'+get.strNumber(card.number));
+ },event.videoId,card,function(target){
+ if(target._tempTranslate) return target._tempTranslate;
+ var name=target.name;
+ if(lib.translate[name+'_ab']) return lib.translate[name+'_ab'];
+ return get.translation(name);
+ }(player),index);
+ }
+ };
+ event.players=game.filterPlayer();
+ event.cardsx=[];
+ event.cards2=[[],[]];
+ event.videoId=lib.status.videoId++;
+ event.ai_targets=[];
+ game.broadcastAll(function(name,id){
+ var dialog=ui.create.dialog(name+'发起了“锻造”','hidden','forcebutton');
+ dialog.videoId=id;
+ dialog.classList.add('scroll1');
+ dialog.classList.add('scroll2');
+ dialog.classList.add('fullwidth');
+ dialog.buttonss=[];
+
+ var list=['协力锻造的玩家','妨碍锻造的玩家']
+ for(var i=0;i'+list[i]+'');
+ var buttons=ui.create.div('.buttons',dialog.content);
+ dialog.buttonss.push(buttons);
+ buttons.classList.add('popup');
+ buttons.classList.add('guanxing');
+ }
+ dialog.open();
+ },get.translation(player),event.videoId)
+ for(var i=0;i0) num=0;
+ else if(att<0) num=1;
+ sendback({index:num},target);
+ if(_status.connectMode) target.hideTimer();
+ if(!event.ai_targets.length){
+ clearInterval(event.interval);
+ if(event.withai) game.resume();
+ }
+ },750);
+ },500)
+ }
+ 'step 1'
+ if(event.withme){
+ if(_status.connectMode) game.me.unwait(result);
+ else{
+ var index=result.index;
+ game.log(game.me,'选择了',['#b助力锻造','#g妨碍锻造','#b什么都不做'][index])
+ if(index>1) return;
+ var card=get.cards()[0];
+ if(!card) return;
+ game.log(game.me,'展示了',card);
+ event.cardsx.push(card);
+ event.cards2[index].push(card);
+ game.broadcastAll(function(id,card,name,index){
+ var dialog=get.idDialog(id);
+ if(!dialog) return;
+ var button=ui.create.button(card,'card',dialog.buttonss[index]);
+ button.querySelector('.info').innerHTML=(name+'|'+get.strNumber(card.number));
+ },event.videoId,card,function(target){
+ if(target._tempTranslate) return target._tempTranslate;
+ var name=target.name;
+ if(lib.translate[name+'_ab']) return lib.translate[name+'_ab'];
+ return get.translation(name);
+ }(game.me),index);
+ }
+ }
+ 'step 2'
+ if(event.withol&&!event.resultOL){
+ game.pause();
+ }
+ 'step 3'
+ if(event.ai_targets.length>0){
+ event.withai=true;
+ game.pause();
+ }
+ 'step 4'
+ game.delay(2);
+ var num1=0,num2=0;
+ for(var i of event.cards2[0]) num1+=get.number(i,false);
+ for(var i of event.cards2[1]) num2+=get.number(i,false);
+ var result=2;
+ if(num10) result=1;
+ event.duanzao_result=result;
+ game.broadcastAll(function(id,result){
+ var dialog=get.idDialog(id);
+ if(dialog) dialog.content.firstChild.innerHTML=['锻造失败…','锻造成功','完美锻造!'][result];
+ },event.videoId,result)
+ 'step 5'
+ game.cardsGotoOrdering(event.cardsx);
+ game.broadcastAll('closeDialog',event.videoId);
+ 'step 6'
+ var subtype=get.subtype(cards[0]);
+ if(subtype!='equip1'&&subtype!='equip2') subtype='others';
+ var card_map={
+ equip1:['wushuangfangtianji','guilongzhanyuedao','chixueqingfeng','bintieshuangji','wutiesuolian','wuxinghelingshan'],
+ equip2:['linglongshimandai','hongmianbaihuapao','qimenbazhen','guofengyupao','huxinjing','heiguangkai'],
+ others:['shufazijinguan','xuwangzhimian','tianjitu','taigongyinfu','sanlve','zhaogujing'],
+ };
+ if(!_status.olshengong_map) _status.olshengong_map={};
+ if(!_status.olshengong_maken) _status.olshengong_maken={};
+ var list=card_map[subtype];
+ for(var i=0;i0;
+ },
+ content:function(){
+ player.draw(player.countMark('olshengong_draw'));
+ },
+ },
+ },
+ },
+ olqisi:{
+ audio:2,
+ trigger:{player:'phaseDrawBegin2'},
+ filter:function(event,player){
+ return !event.numFixed&&event.num>0;
+ },
+ check:function(event,player){
+ if(player.isEmpty(2)||player.isEmpty(5)||player.isEmpty(1)) return true;
+ return false;
+ },
+ content:function(){
+ 'step 0'
+ trigger.num--;
+ player.chooseControl('equip1','equip2','equip6','equip5').set('prompt','选择获得一种副类别的装备牌').set('ai',function(card){
+ if(player.isEmpty(2)) return 'equip2';
+ if(player.isEmpty(5)) return 'equip5';
+ if(player.isEmpty(1)) return 'equip1';
+ return 'equip6';
+ });
+ 'step 1'
+ var card=get.cardPile(function(card){
+ var type=get.subtype(card);
+ if(result.control=='equip6') return (type=='equip3'||type=='equip4');
+ return type==result.control;
+ });
+ if(card) player.gain(card,'gain2');
+ },
+ group:'olqisi_init',
+ subSkill:{
+ init:{
+ audio:'olqisi',
+ trigger:{
+ global:'phaseBefore',
+ player:'enterGame',
+ },
+ forced:true,
+ locked:false,
+ filter:function(event,player){
+ return (event.name!='phase'||game.phaseNumber==0);
+ },
+ content:function(){
+ 'step 0'
+ var i=0;
+ var list=[];
+ while(i++<2){
+ var card=get.cardPile(function(card){
+ if(get.type(card)!='equip') return false;
+ return list.length==0||get.subtype(card)!=get.subtype(list[0]);
+ });
+ if(card) list.push(card);
+ }
+ if(!list.length){event.finish();return;}
+ event.list=list;
+ player.gain(event.list,'gain2');
+ 'step 1'
+ game.delay(1);
+ var card=event.list.shift();
+ if(player.getCards('h').contains(card)){
+ player.$give(card,player,false)
+ player.equip(card);
+ }
+ if(event.list.length) event.redo();
+ },
+ },
+ },
+ },
+ //蒲元衍生
+ zhaogujing_skill:{
+ equipSkill:true,
+ trigger:{player:'phaseUseEnd'},
+ direct:true,
+ filter:function(event,player){
+ return player.hasCard(function(card){
+ if(_status.connectMode) return true;
+ var type=get.type(card,player);
+ return type=='basic'||type=='trick';
+ },'h');
+ },
+ content:function(){
+ 'step 0'
+ player.chooseCard('h',get.prompt('zhaogujing_skill'),'展示并视为使用一张基本牌或普通锦囊牌',function(card,player){
+ var type=get.type(card,player);
+ return type=='basic'||type=='trick';
+ }).set('ai',function(card){
+ var player=_status.event.player,name=get.name(card,player);
+ if(name=='jiu') return 0;
+ return player.getUseValue({
+ name:name,
+ nature:get.nature(card,player),
+ isCard:true,
+ })
+ });
+ 'step 1'
+ if(result.bool){
+ player.logSkill('zhaogujing_skill');
+ player.showCards(result.cards,get.translation(player)+'发动了【照骨镜】');
+ var card={
+ name:get.name(result.cards[0],player),
+ nature:get.nature(result.cards[0],player),
+ isCard:true,
+ }
+ player.chooseUseTarget(card,true,false);
+ }
+ },
+ },
+ sanlve_skill:{
+ equipSkill:true,
+ mod:{
+ maxHandcard:function(player,num){
+ return num+1;
+ },
+ attackRange:function(player,num){
+ return num+1;
+ },
+ cardUsable:function(card,player,num){
+ if(card.name=='sha') return num+1;
+ },
+ },
+ },
+ xuwangzhimian:{
+ equipSkill:true,
+ trigger:{player:'phaseDrawBegin2'},
+ forced:true,
+ filter:function(event,player){
+ return !event.numFixed;
+ },
+ content:function(){
+ trigger.num+=2;
+ },
+ mod:{
+ maxHandcard:function(player,num){
+ return num-1;
+ }
+ }
+ },
+ shufazijinguan_skill:{
+ equipSkill:true,
+ trigger:{
+ player:"phaseZhunbeiBegin",
+ },
+ direct:true,
+ content:function(){
+ "step 0"
+ player.chooseTarget(get.prompt('shufazijinguan'),'对一名其他角色造成1点伤害',function(card,player,target){
+ return player!=target;
+ }).set('ai',function(target){
+ return get.damageEffect(target,player,player);
+ });
+ "step 1"
+ if(result.bool){
+ player.logSkill('shufazijinguan_skill',result.targets[0]);
+ result.targets[0].damage();
+ }
+ },
+ },
+ qimenbagua:{
+ equipSkill:true,
+ trigger:{target:'useCardToBefore'},
+ forced:true,
+ filter:function(event,player){
+ if(event.card.name!='sha') return false;
+ if(player.hasSkillTag('unequip2')) return false;
+ if(event.player.hasSkillTag('unequip',false,{
+ name:event.card?event.card.name:null,
+ target:player,
+ card:event.card
+ })) return false;
+ return true;
+ },
+ content:function(){
+ trigger.cancel();
+ },
+ ai:{
+ effect:{
+ target:function(card,player,target){
+ if(card.name!='sha') return;
+ if(target.hasSkillTag('unequip2')||player.hasSkillTag('unequip',false,{
+ name:card?card.name:null,
+ target:player,
+ card:card
+ })||player.hasSkillTag('unequip_ai',false,{
+ name:card?card.name:null,
+ target:player,
+ card:card
+ })) return;
+ return 'zerotarget';
+ }
+ }
+ }
+ },
+ guofengyupao:{
+ equipSkill:true,
+ mod:{
+ targetEnabled:function(card,player,target){
+ if(player==target||get.type(card)!='trick') return;
+ if(target.hasSkillTag('unequip2')) return;
+ if(player.hasSkillTag('unequip',false,{
+ name:card?card.name:null,
+ target:player,
+ card:card
+ })) return;
+ return false;
+ }
+ }
+ },
+ hongmianbaihuapao_skill:{
+ equipSkill:true,
+ trigger:{
+ player:"damageBegin4",
+ },
+ filter:function(event,player){
+ if(!lib.linked.contains(event.nature)) return false;
+ if(player.hasSkillTag('unequip2')) return false;
+ if(event.source&&event.source.hasSkillTag('unequip',false,{
+ name:event.card?event.card.name:null,
+ target:player,
+ card:event.card
+ })) return false;
+ return true;
+ },
+ forced:true,
+ content:function(){
+ trigger.cancel();
+ },
+ ai:{
+ nofire:true,
+ nothunder:true,
+ effect:{
+ target:function(card,player,target,current){
+ if(!get.tag(card,'natureDamage')) return;
+ if(!target.hasSkillTag('unequip2')&&!player.hasSkillTag('unequip',false,{
+ name:card?card.name:null,
+ target:player,
+ card:card
+ })&&!player.hasSkillTag('unequip_ai',false,{
+ name:card?card.name:null,
+ target:player,
+ card:card
+ })) return 'zerotarget';
+ },
+ },
+ },
+ },
+ linglongshimandai_skill:{
+ equipSkill:true,
+ trigger:{
+ target:"useCardToTargeted",
+ },
+ filter:function(event,player){
+ if(event.targets&&event.targets.length>1||event.player==player) return false;
+ if(player.hasSkillTag('unequip2')) return false;
+ var evt=event.getParent();
+ if(evt.player&&evt.player.hasSkillTag('unequip',false,{
+ name:evt.card?evt.card.name:null,
+ target:player,
+ card:evt.card
+ })) return false;
+ return true;
+ },
+ audio:true,
+ check:function(event,player){
+ return get.effect(player,event.card,event.player,player)<=0;
+ },
+ prompt2:(event)=>('进行一次判定。若结果为♥,则'+get.translation(event.card)+'对你无效'),
+ content:function(){
+ "step 0"
+ player.judge('linglongshimandai',function(card){return (get.suit(card)=='heart')?1.5:-0.5}).judge2=function(result){
+ return result.bool?true:false;
+ };
+ "step 1"
+ if(result.judge>0){
+ trigger.getParent().excluded.add(player);
+ }
+ },
+ ai:{
+ effect:{
+ target:function(card,player,target,effect){
+ if(effect>0||player.hasSkillTag('unequip',false,{
+ name:card?card.name:null,
+ target:player,
+ card:card
+ })||player.hasSkillTag('unequip_ai',false,{
+ name:card?card.name:null,
+ target:player,
+ card:card
+ })) return;
+ return 0.75;
+ },
+ },
+ },
+ },
+ bintieshuangji_skill:{
+ trigger:{player:'shaMiss'},
+ filter:function(event,player){
+ return player.hp>0;
+ },
+ prompt2:function(event,player){
+ var prompt='失去1点体力,然后'
+ var cards=event.cards.filterInD();
+ if(cards.length) prompt+=('获得'+get.translations(cards)+'、');
+ prompt+='摸一张牌、本回合使用【杀】的次数上限+1'
+ return prompt;
+ },
+ check:function(event,player){
+ if(get.effect(player,{name:'losehp'},player,player)>0) return true;
+ return player.hp>event.target.hp&&event.cards.filterInD().length>0;
+ },
+ content:function(){
+ 'step 0'
+ player.loseHp();
+ 'step 1'
+ var cards=trigger.cards.filterInD();
+ if(cards.length) player.gain(cards,'gain2');
+ player.draw();
+ 'step 2'
+ player.addTempSkill('bintieshuangji_skill_effect');
+ player.addMark('bintieshuangji_skill_effect',1,false);
+ },
+ subSkill:{
+ effect:{
+ charlotte:true,
+ intro:{content:'使用【杀】的次数上限+#'},
+ onremove:true,
+ mod:{
+ cardUsable:function(card,player,num){
+ if(card.name=='sha') return num+player.countMark('bintieshuangji_skill_effect');
+ },
+ },
+ },
+ },
+ },
+ chixueqingfeng:{
+ equipSkill:true,
+ trigger:{player:'useCardToPlayered'},
+ filter:function(event){
+ return event.card.name=='sha';
+ },
+ logTarget:'target',
+ forced:true,
+ content:function(){
+ var target=trigger.target;
+ target.addTempSkill('chixueqingfeng2');
+ target.markAuto('chixueqingfeng2',[trigger.card])
+ },
+ ai:{
+ unequip_ai:true,
+ directHit_ai:true,
+ skillTagFilter:function(player,tag,arg){
+ if(arg&&arg.card&&arg.card.name=='sha') return true;
+ return false;
+ }
+ }
+ },
+ chixueqingfeng2:{
+ equipSkill:true,
+ trigger:{global:'useCardAfter'},
+ forced:true,
+ charlotte:true,
+ popup:false,
+ firstDo:true,
+ onremove:true,
+ filter:function(event,player){
+ return player.storage.chixueqingfeng2&&player.storage.chixueqingfeng2.contains(event.card);
+ },
+ content:function(){
+ player.storage.chixueqingfeng2.remove(trigger.card);
+ if(!player.storage.chixueqingfeng2.length) player.removeSkill('chixueqingfeng2');
+ },
+ mark:true,
+ marktext:'※',
+ intro:{
+ content:'防具技能无效,且不能使用或打出手牌',
+ },
+ mod:{
+ cardEnabled2:function(card){
+ if(get.position(card)=='h') return false;
+ },
+ },
+ ai:{
+ unequip2:true,
+ },
+ },
+ guilongzhanyuedao:{
+ equipSkill:true,
+ trigger:{player:'useCard'},
+ forced:true,
+ filter:function(event,player){
+ return event.card&&event.card.name=='sha'&&get.color(event.card)=='red';
+ },
+ content:function(){
+ trigger.directHit.addArray(game.players);
+ },
+ ai:{
+ unequip_ai:true,
+ directHit_ai:true,
+ skillTagFilter:function(player,tag,arg){
+ if(arg&&arg.card&&arg.card.name=='sha'&&get.color(arg.card)=='red') return true;
+ return false;
+ }
+ }
+ },
+ wushuangfangtianji_skill:{
+ equipSkill:true,
+ trigger:{
+ source:"damageSource",
+ },
+ filter:function(event,player){
+ return event.card&&event.card.name=='sha'&&event.getParent().type=='card';
+ },
+ direct:true,
+ content:function(){
+ 'step 0'
+ var target=trigger.player;
+ var choices=['摸一张牌'];
+ if(target.hasCard(function(card){
+ return lib.filter.canBeDiscarded(card,player,target);
+ },'he')) choices.push('弃置'+get.translation(target)+'的一张牌');
+ player.chooseControl('cancel2').set('choiceList',choices).set('prompt',get.prompt('wushuangfangtianji_skill')).set('ai',function(){
+ var player=_status.event.player,target=_status.event.getTrigger().player;
+ if(target.hasCard(function(card){
+ return lib.filter.canBeDiscarded(card,player,target);
+ },'he')&&get.effect(target,{name:'guohe_copy2'},player,player)>get.effect(player,{name:'wuzhong'},player,player)/2) return 1;
+ return 0;
+ });
+ 'step 1'
+ if(result.control=='cancel2') return;
+ if(result.index==0){
+ player.logSkill('wushuangfangtianji_skill');
+ player.draw();
+ }
+ else{
+ var target=trigger.player;
+ player.logSkill('wushuangfangtianji_skill',target);
+ player.discardPlayerCard(target,'he',true);
+ }
+ },
+ },
+ //芮姬
+ qiaoli:{
+ audio:2,
+ enable:'chooseToUse',
+ viewAs:{name:'juedou'},
+ viewAsFilter:function(player){
+ return player.hasCard(function(card){
+ return get.type(card)=='equip';
+ },'ehs')
+ },
+ filterCard:{type:'equip'},
+ check:function(card){
+ if(get.position(card)=='e') return 7.5-get.value(card);
+ return 12-_status.event.player.getUseValue(card);
+ },
+ position:'hes',
+ group:['qiaoli_effect','qiaoli_gain','qiaoli_norespond'],
+ ai:{
+ directHit_ai:true,
+ skillTagFilter:function(player,tag,arg){
+ return arg&&arg.card&&arg.card.name=='juedou'&&_status.event.skill=='qiaoli';
+ },
+ },
+ subSkill:{
+ norespond:{
+ trigger:{player:'useCard1'},
+ forced:true,
+ charlotte:true,
+ popup:false,
+ filter:function(event,player){
+ if(event.skill!='qiaoli') return false;
+ var card=event.cards[0];
+ return get.subtype(card)!='equip1';
+ },
+ content:function(){
+ trigger.directHit.addArray(game.filterPlayer(function(current){
+ return current!=player;
+ }));
+ },
+ },
+ effect:{
+ trigger:{player:'useCardAfter'},
+ forced:true,
+ charlotte:true,
+ popup:false,
+ filter:function(event,player){
+ if(event.skill!='qiaoli') return false;
+ var card=event.cards[0];
+ return get.subtype(card)=='equip1';
+ },
+ content:function(){
+ 'step 0'
+ var card=trigger.cards[0];
+ var num=1;
+ var info=get.info(card,false);
+ if(info&&info.distance&&typeof info.distance.attackFrom=='number') num-=info.distance.attackFrom;
+ player.draw(num);
+ 'step 1'
+ var cards=result;
+ if(get.itemtype(cards)!='cards'){
+ event.finish(5);
+ return;
+ }
+ var hs=player.getCards('h');
+ cards=cards.filter(function(card){
+ return hs.contains(card);
+ });
+ if(!cards.length){
+ event.finish(5);
+ return;
+ }
+ event.cards=cards;
+ if(_status.connectMode) game.broadcastAll(function(){_status.noclearcountdown=true});
+ event.given_map={};
+ 'step 2'
+ player.chooseCardTarget({
+ filterCard:function(card){
+ return _status.event.cards.contains(card)&&!card.hasGaintag('qiaoli_given');
+ },
+ cards:cards,
+ filterTarget:lib.filter.notMe,
+ selectCard:[1,cards.length],
+ prompt:'是否将获得的牌分配给其他角色?',
+ ai1:function(card){
+ return -1;
+ },
+ ai2:function(target){
+ return -1;
+ },
+ });
+ 'step 3'
+ if(result.bool){
+ var res=result.cards,target=result.targets[0].playerid;
+ player.addGaintag(res,'qiaoli_given');
+ cards.removeArray(res);
+ if(!event.given_map[target]) event.given_map[target]=[];
+ event.given_map[target].addArray(res);
+ if(cards.length) event.goto(2);
+ }
+ 'step 4'
+ if(_status.connectMode){
+ game.broadcastAll(function(){delete _status.noclearcountdown});
+ game.stopCountChoose();
+ }
+ for(var i in event.given_map){
+ var source=(_status.connectMode?lib.playerOL:game.playerMap)[i];
+ player.line(source,'green');
+ source.gain(event.given_map[i],player,'giveAuto');
+ }
+ event.next.sort(function(a,b){
+ return lib.sort.seat(a.player,b.player);
+ });
+ },
+ },
+ gain:{
+ audio:'qiaoli',
+ trigger:{player:'phaseJieshuBegin'},
+ forced:true,
+ filter:function(event,player){
+ return player.hasHistory('useCard',function(evt){
+ return evt.skill=='qiaoli';
+ })
+ },
+ content:function(){
+ var card=get.cardPile2(function(card){
+ return get.type(card)=='equip';
+ });
+ if(card) player.gain(card,'gain2');
+ },
+ },
+ },
+ },
+ qingliang:{
+ audio:2,
+ trigger:{target:'useCardToTarget'},
+ usable:1,
+ filter:function(event,player){
+ return player!=event.player&&player.countCards('h')>0;
+ },
+ logTarget:'player',
+ check:function(event,player){
+ if(get.attitude(player,event.player)>0||event.player.hasSkillTag('nogain')) return true;
+ var eff=get.effect(player,event.card,event.player,player);
+ if(eff>=0) return false;
+ var suits=[],banned=[],hs=player.getCards('h');
+ for(var i of hs){
+ var suit=get.suit(i,player);
+ suits.add(suit);
+ if(!lib.filter.cardDiscardable(i,player,'qingliang')) banned.add(suit);
+ }
+ suits.removeArray(banned);
+ for(var i of suits){
+ var cards=player.getCards('h',function(card){
+ return get.suit(card,player)==i;
+ });
+ if((-eff/2-get.value(cards,player))>0) return true;
+ }
+ return false;
+ },
+ content:function(){
+ 'step 0'
+ player.showHandcards(get.translation(player)+'发动了【清靓】');
+ 'step 1'
+ var suits=[],banned=[],hs=player.getCards('h');
+ for(var i of hs){
+ var suit=get.suit(i,player);
+ suits.add(suit);
+ if(!lib.filter.cardDiscardable(i,player,'qingliang')) banned.add(suit);
+ }
+ if(suits.length>banned.length){
+ player.chooseControl().set('choiceList',[
+ '和'+get.translation(trigger.player)+'各摸一张牌',
+ '弃置一种花色的所有手牌,令'+get.translation(trigger.card)+'对自己无效',
+ ]).set('ai',function(){
+ var player=_status.event.player,event=_status.event.getTrigger();
+ if(get.attitude(player,event.player)>0||event.player.hasSkillTag('nogain')) return 0;
+ return 1;
+ });
+ event.suits=suits;
+ suits.removeArray(banned);
+ suits.sort();
+ }
+ else{
+ event._result={index:0};
+ }
+ 'step 2'
+ if(result.index==0){
+ var list=[player,trigger.player].sortBySeat();
+ list[0].draw('nodelay');
+ list[1].draw();
+ event.finish();
+ }
+ else{
+ if(event.suits.length==1) event._result={control:event.suits[0]};
+ else player.chooseControl(event.suits).set('prompt','选择弃置一种花色的所有牌').set('ai',function(){
+ var player=_status.event.player,list=_status.event.controls.slice(0);
+ var gett=function(suit){
+ var cards=player.getCards('h',function(card){
+ return get.suit(card,player)==suit;
+ });
+ return get.value(cards);
+ }
+ return list.sort(function(b,a){
+ return gett(b)-gett(a);
+ })[0];
+ });
+ }
+ 'step 3'
+ var cards=player.getCards('h',function(card){
+ return get.suit(card)==result.control;
+ });
+ if(cards.length) player.discard(cards);
+ trigger.targets.remove(player);
+ trigger.getParent().triggeredTargets2.remove(player);
+ trigger.untrigger();
+ },
+ },
+ //卫兹
+ yuanzi:{
+ audio:2,
+ trigger:{global:'phaseZhunbeiBegin'},
+ logTarget:'player',
+ filter:function(event,player){
+ return player!=event.player&&event.player.isAlive()&&player.countCards('h')>0&&!player.hasSkill('yuanzi_round',null,null,false);
+ },
+ check:function(event,player){
+ if(get.attitude(player,event.player)<=4) return false;
+ if(event.player.hasJudge('lebu')) return false;
+ return game.hasPlayer(function(current){
+ return event.player!=player&&game.hasPlayer(function(current){
+ return current!=player&¤t!=event.player&&event.player.inRange(current)&&get.attitude(event.player,current)<0;
+ });
+ })
+ },
+ content:function(){
+ var cards=player.getCards('h');
+ trigger.player.gain(cards,player,'giveAuto');
+ player.addTempSkill('yuanzi_effect');
+ player.addTempSkill('yuanzi_round','roundStart');
+ },
+ subSkill:{
+ effect:{
+ charlotte:true,
+ audio:'yuanzi',
+ trigger:{global:'damageSource'},
+ forced:true,
+ filter:function(event,player){
+ var source=event.source;
+ return source&&source==_status.currentPhase&&player.countCards('h')<=source.countCards('h');
+ },
+ content:function(){
+ player.draw(2);
+ },
+ },
+ round:{charlotte:true},
+ },
+ },
+ liejie:{
+ audio:2,
+ trigger:{player:'damageEnd'},
+ direct:true,
+ filter:function(event,player){
+ return player.countCards('he')>0;
+ },
+ content:function(){
+ 'step 0'
+ var source=trigger.source;
+ var prompt2='弃置至多三张牌并摸等量的牌';
+ if(source) prompt2+=(',若弃置的牌中有红色牌,则弃置'+get.translation(source)+'至多等量的牌');
+ var next=player.chooseToDiscard('he',[1,3],get.prompt('liejie'),prompt2);
+ next.set('ai',function(card){
+ return 6-get.value(card);
+ })
+ if(source) next.logSkill=['liejie',source];
+ else next.logSkill='liejie';
+ 'step 1'
+ if(result.bool){
+ var cards=result.cards;
+ player.draw(cards.length);
+ if(trigger.source){
+ var num=cards.filter(function(i){
+ return get.color(i,player)=='red';
+ }).length;
+ if(num>0) player.discardPlayerCard(trigger.source,'he',[1,num]).set('forceAuto',true);
+ }
+ }
+ },
+ },
//滕芳兰
luochong:{
audio:2,
@@ -695,6 +1867,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
+ derivation:'sppanqin',
},
sppanqin:{
audio:2,
@@ -2103,7 +3276,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
intro:{
name:'诏颂(赋)',
name2:'赋',
- content:'出牌阶段开始时,你可移去“赋”并弃置一名角色区域内的至多两张牌,然后可以令其摸一张牌。',
+ content:'出牌阶段开始时,你可移去“赋”并弃置一名角色区域内的至多两张牌。',
},
trigger:{player:'phaseUseBegin'},
direct:true,
@@ -2118,7 +3291,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
- player.chooseTarget('是否弃置“赋”标记?','弃置一名角色区域内的至多两张牌,然后可以令其摸一张牌',function(card,player,current){
+ player.chooseTarget('是否弃置“赋”标记?','弃置一名角色区域内的至多两张牌',function(card,player,current){
return current.hasCard(function(card){
return lib.filter.canBeDiscarded(card,player,current);
},'hej');
@@ -11166,54 +12339,54 @@ game.import('character',function(lib,game,ui,get,ai,_status){
use:{
audio:'qirang',
trigger:{player:'useCard2'},
- direct:true,
- filter:function(event,player){
- if(get.type(event.card)!='trick') return false;
- if(!event.targets||event.targets.length!=1) return false;
- var info=get.info(event.card);
- if(info.allowMultiple==false) return false;
- if(!player.hasHistory('lose',function(evt){
- if(evt.getParent()!=event) return false;
- for(var i in evt.gaintag_map){
- if(evt.gaintag_map[i].contains('qirang')) return true;
- }
- return false;
- })) return false;
- if(!info.multitarget){
- if(game.hasPlayer(function(current){
- return !event.targets.contains(current)&&lib.filter.targetEnabled2(event.card,player,current)&&lib.filter.targetInRange(event.card,player,current);
- })){
- return true;
- }
- }
- return false;
- },
- content:function(){
- 'step 0'
- var prompt2='为'+get.translation(trigger.card)+'增加一个目标'
- player.chooseTarget(get.prompt('qirang'),function(card,player,target){
- var player=_status.event.player;
- if(_status.event.targets.contains(target)) return false;
- return lib.filter.targetEnabled2(_status.event.card,player,target)&&lib.filter.targetInRange(_status.event.card,player,target);
- }).set('prompt2',prompt2).set('ai',function(target){
- var trigger=_status.event.getTrigger();
- var player=_status.event.player;
- return get.effect(target,trigger.card,player,player)*(_status.event.targets.contains(target)?-1:1);
- }).set('targets',trigger.targets).set('card',trigger.card);
- 'step 1'
- if(result.bool){
- if(!event.isMine()&&!event.isOnline()) game.delayx();
- event.targets=result.targets;
- }
- else{
- event.finish();
- }
- 'step 2'
- if(event.targets){
- player.logSkill('qirang_use',event.targets);
- trigger.targets.addArray(event.targets);
- }
- },
+ direct:true,
+ filter:function(event,player){
+ if(get.type(event.card)!='trick') return false;
+ if(!event.targets||event.targets.length!=1) return false;
+ var info=get.info(event.card);
+ if(info.allowMultiple==false) return false;
+ if(!player.hasHistory('lose',function(evt){
+ if(evt.getParent()!=event) return false;
+ for(var i in evt.gaintag_map){
+ if(evt.gaintag_map[i].contains('qirang')) return true;
+ }
+ return false;
+ })) return false;
+ if(!info.multitarget){
+ if(game.hasPlayer(function(current){
+ return !event.targets.contains(current)&&lib.filter.targetEnabled2(event.card,player,current)&&lib.filter.targetInRange(event.card,player,current);
+ })){
+ return true;
+ }
+ }
+ return false;
+ },
+ content:function(){
+ 'step 0'
+ var prompt2='为'+get.translation(trigger.card)+'增加一个目标'
+ player.chooseTarget(get.prompt('qirang'),function(card,player,target){
+ var player=_status.event.player;
+ if(_status.event.targets.contains(target)) return false;
+ return lib.filter.targetEnabled2(_status.event.card,player,target)&&lib.filter.targetInRange(_status.event.card,player,target);
+ }).set('prompt2',prompt2).set('ai',function(target){
+ var trigger=_status.event.getTrigger();
+ var player=_status.event.player;
+ return get.effect(target,trigger.card,player,player)*(_status.event.targets.contains(target)?-1:1);
+ }).set('targets',trigger.targets).set('card',trigger.card);
+ 'step 1'
+ if(result.bool){
+ if(!event.isMine()&&!event.isOnline()) game.delayx();
+ event.targets=result.targets;
+ }
+ else{
+ event.finish();
+ }
+ 'step 2'
+ if(event.targets){
+ player.logSkill('qirang_use',event.targets);
+ trigger.targets.addArray(event.targets);
+ }
+ },
},
},
},
@@ -16365,7 +17538,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
guansuo:['guansuo','ol_guansuo'],
zhangxingcai:['zhangxingcai','old_zhangxingcai'],
lisu:['ol_lisu','lisu'],
- fuwan:['fuwan','sp_fuwan'],
+ fuwan:['fuwan','sp_fuwan','tw_fuwan'],
huaxin:['ol_huaxin','huaxin','sp_huaxin'],
xujing:['xujing','sp_xujing'],
zhaoxiang:['zhaoxiang','tw_zhaoxiang'],
@@ -16382,6 +17555,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yangyi:['ol_yangyi','yangyi'],
tianyu:['tw_tianyu','tianyu'],
huangchengyan:['huangchengyan','dc_huangchengyan'],
+ puyuan:['puyuan','ol_puyuan'],
},
translate:{
"xinfu_lingren":"凌人",
@@ -17254,7 +18428,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
spolzhouxuan_info:'①弃牌阶段开始时,你可将至多五张置于武将牌上,称为“旋”。②当你使用牌时,你摸一张牌并将一张“旋”置入弃牌堆(若你的手牌数不为全场唯一最多则改为摸X张牌,X为“旋”数)。③出牌阶段结束时,你将所有“旋”置入弃牌堆。',
wuyan:'吾彦',
lanjiang:'澜疆',
- lanjiang_info:'结束阶段,你可以选择令所有手牌数不小于你的角色。这些角色依次选择是否令你摸一张牌。然后你可以对其中一名手牌数等于你的角色造成1点伤害,随后可以对其中一名手牌数小于你的角色摸一张牌。',
+ lanjiang_info:'结束阶段,你可以选择所有手牌数不小于你的角色。这些角色依次选择是否令你摸一张牌。然后你可以对其中一名手牌数等于你的角色造成1点伤害,随后可以对其中一名手牌数小于你的角色摸一张牌。',
ol_zhuling:'OL朱灵',
jixian:'急陷',
jixian_info:'摸牌阶段结束时,你可以选择一名满足以下至少一项条件的角色:⒈装备区内有防具牌;⒉拥有的普通技能数大于你;⒊体力值等于体力上限。你视为对其使用一张【杀】,然后摸X张牌(X为其于此【杀】结算前满足的条件数);若此【杀】未造成伤害,则你失去1点体力。',
@@ -17287,6 +18461,54 @@ game.import('character',function(lib,game,ui,get,ai,_status){
luochong_info:'准备阶段开始时/当你受到伤害后,你可选择本轮内未选择过的一项:⒈令一名角色回复1点体力。⒉令一名其他角色失去1点体力。⒊弃置一名其他角色的至多两张牌。⒋令一名角色摸两张牌。',
aichen:'哀尘',
aichen_info:'锁定技。当你进入濒死状态时,若〖落宠〗中的剩余选项数大于1,则你将体力回复至1点,然后选择移去〖落宠〗中的一个选项。',
+ weizi:'卫兹',
+ yuanzi:'援资',
+ yuanzi_info:'每轮限一次。其他角色的准备阶段开始时,你可将所有手牌交给该角色。若如此做,当该角色于本回合内造成伤害后,若其手牌数不小于你,则你摸两张牌。',
+ liejie:'烈节',
+ liejie_info:'当你受到伤害后,你可以弃置至多三张牌,摸等量的牌,然后可弃置伤害来源的至多X张牌(X为你以此法弃置的红色牌的数量)。',
+ ruiji:'芮姬',
+ qiaoli:'巧力',
+ qiaoli_info:'①你可以将一张装备牌当做【决斗】使用。若此【决斗】对应的实体牌:为武器牌,当你以此法声明使用【决斗】时,你摸X张牌(X为此牌的攻击范围),且可以将其中任意张牌分配给其他角色;不为武器牌,此牌不可被响应。②结束阶段开始时,若你于本回合内发动过〖巧力①〗,则你从牌堆中获得一张装备牌。',
+ qiaoli_given:'已分配',
+ qingliang:'清靓',
+ qingliang_info:'每回合限一次。当你成为其他角色使用牌的目标时,你可展示所有手牌,然后选择一项:⒈你与其各摸一张牌,⒉取消此目标,然后弃置你手牌中一种花色的所有牌。',
+ chixueqingfeng:'赤血青锋',
+ chixueqingfeng2:'赤血青锋',
+ chixueqingfeng_info:'锁定技,当你使用【杀】指定目标后,你令目标角色不能使用或打出手牌且防具技能无效直到此【杀】结算结束。',
+ wushuangfangtianji:'无双方天戟',
+ wushuangfangtianji_skill:"无双方天戟",
+ wushuangfangtianji_info:"当你因执行【杀】的效果而造成伤害后,你可选择一项:⒈摸一张牌;⒉弃置目标角色的一张牌。",
+ guilongzhanyuedao:'鬼龙斩月刀',
+ guilongzhanyuedao_info:'锁定技,你使用的红色【杀】不可被响应。',
+ bintieshuangji:'镔铁双戟',
+ bintieshuangji_skill:'镔铁双戟',
+ bintieshuangji_info:'当你使用的【杀】被抵消后,你可失去1点体力。获得此【杀】对应的所有实体牌,摸一张牌,且本回合使用【杀】的次数上限+1。',
+ linglongshimandai:"玲珑狮蛮带",
+ linglongshimandai_info:"当你成为其他角色使用的牌的唯一目标后,你可以进行判定。若判定结果为♥,则此牌对你无效。",
+ linglongshimandai_skill:"玲珑狮蛮带",
+ hongmianbaihuapao_skill:"红棉百花袍",
+ hongmianbaihuapao:"红棉百花袍",
+ hongmianbaihuapao_info:"锁定技,当你受到属性伤害时,防止此伤害。",
+ qimenbagua:'奇门八卦',
+ qimenbagua_info:'锁定技,【杀】对你无效。',
+ guofengyupao:'国风玉袍',
+ guofengyupao_info:'锁定技,你不是其他角色使用普通锦囊牌的合法目标。',
+ shufazijinguan:'束发紫金冠',
+ shufazijinguan_skill:"束发紫金冠",
+ shufazijinguan_skill_info:"准备阶段,你可以对一名其他角色造成1点伤害。",
+ sanlve:'三略',
+ sanlve_skill:'三略',
+ sanlve_info:'锁定技。你的攻击范围+1。你的手牌上限+1。你使用【杀】的次数上限+1。',
+ zhaogujing:'照骨镜',
+ zhaogujing_skill:'照骨镜',
+ zhaogujing_info:'出牌阶段结束时,你可展示手牌中的一张基本牌或普通锦囊牌,然后你视为使用一张牌名和属性与此牌相同的牌。',
+ xuwangzhimian:'虚妄之冕',
+ xuwangzhimian_info:'锁定技,摸牌阶段,你令额定摸牌数+2;你的手牌上限-1。',
+ ol_puyuan:'OL蒲元',
+ olshengong:'神工',
+ olshengong_info:'出牌阶段每项限一次。你可以弃置一张武器牌/防具牌/其他装备牌,并发起一次“锻造”。然后你从锻造结果中选择一张牌,置于一名角色的装备区内(可替换原装备)。当有因你发动〖神工〗而加入游戏的牌进入弃牌堆后,你将此牌移出游戏,然后你于当前回合结束后摸一张牌。',
+ olqisi:'奇思',
+ olqisi_info:'①游戏开始时,你获得两张副类别不同的牌,并将这些牌置入你的装备区。②摸牌阶段开始时,你可以少摸一张牌并声明一种装备牌的副类别,然后从牌堆或弃牌堆中获得一张该副类别的牌。',
sp_tianji:'天极·皇室宗亲',
sp_sibi:'四弼·辅国文曲',
diff --git a/character/sp2.js b/character/sp2.js
index 1ab35b347..8cea69995 100644
--- a/character/sp2.js
+++ b/character/sp2.js
@@ -4,6 +4,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
+ caimaozhangyun:['male','wei',4,['lianzhou','jinglan']],
+ yanrou:['male','wei',4,['choutao','xiangshu']],
+ zhangyao:['female','wu',3,['yuanyu','xiyan']],
tenggongzhu:['female','wu',3,['xingchong','liunian']],
dc_huangchengyan:['male','qun',3,['dcjiezhen','dczecai','dcyinshi']],
laiyinger:['female','qun',3,['xiaowu','huaping']],
@@ -148,10 +151,350 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_xuzhou:['re_taoqian','caosong','zhangmiao','qiuliju'],
sp_zhongyuan:['re_hucheer','re_zoushi','caoanmin','re_dongcheng'],
sp_xiaohu:['haomeng','yanfuren'],
- sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','re_dongzhao','yangwan','re_panshu','dufuren','zhouyi','caojinyu','re_sunyi','re_zhangbao','re_fengfangnv','mamidi','dc_jiben','licaiwei','dc_luotong','dc_zhuling','tengyin','dc_gaolan','guanning','caomao','laiyinger','dc_huangchengyan','tenggongzhu'],
+ sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','re_dongzhao','yangwan','re_panshu','dufuren','zhouyi','caojinyu','re_sunyi','re_zhangbao','re_fengfangnv','mamidi','dc_jiben','licaiwei','dc_luotong','dc_zhuling','tengyin','dc_gaolan','guanning','caomao','laiyinger','dc_huangchengyan','tenggongzhu','yanrou','caimaozhangyun','zhangyao'],
}
},
skill:{
+ //蔡瑁张允
+ lianzhou:{
+ audio:2,
+ trigger:{player:'phaseZhunbeiBegin'},
+ forced:true,
+ filter:function(event,player){
+ if(!player.isLinked()) return true;
+ return game.hasPlayer(function(current){
+ return current!=player&¤t.hp==player.hp&&!current.isLinked();
+ });
+ },
+ content:function(){
+ 'step 0'
+ if(!player.isLinked()) player.link();
+ 'step 1'
+ var num=game.countPlayer(function(current){
+ return current!=player&¤t.hp==player.hp&&!current.isLinked();
+ });
+ if(num>0){
+ player.chooseTarget([1,num],'选择横置任意名体力值等于你的角色',function(card,player,current){
+ return current!=player&¤t.hp==player.hp&&!current.isLinked();
+ }).set('ai',function(target){
+ var player=_status.event.player;
+ return get.effect(target,{name:'tiesuo'},player,player);
+ });
+ }
+ else event.finish();
+ 'step 2'
+ if(result.bool){
+ var targets=result.targets.sortBySeat();
+ player.line(targets,'green');
+ for(var i of targets) i.link();
+ }
+ },
+ ai:{halfneg:true},
+ },
+ jinglan:{
+ audio:2,
+ trigger:{source:'damageSource'},
+ forced:true,
+ content:function(){
+ var delta=player.countCards('h')-player.hp;
+ if(delta>0) player.chooseToDiscard('h',3,true);
+ else if(delta==0){
+ player.chooseToDiscard('h',true);
+ player.recover();
+ }
+ else{
+ player.damage('fire','nosource');
+ player.draw(4);
+ }
+ },
+ ai:{halfneg:true},
+ },
+ //闫柔
+ choutao:{
+ audio:2,
+ trigger:{
+ player:'useCard',
+ target:'useCardToTargeted',
+ },
+ filter:function(event,player){
+ if(event.card.name!='sha'||!event.player.isIn()) return false;
+ if(player==event.player) return player.hasCard(function(card){
+ return lib.filter.cardDiscardable(card,player,'choutao');
+ },'he');
+ return event.player.hasCard(function(card){
+ return lib.filter.canBeDiscarded(card,player,event.player);
+ },'he');
+ },
+ check:function(event,player){
+ if(player==event.player){
+ if(!player.hasCard(function(card){
+ return get.value(card)<=5;
+ },'he')) return false;
+ for(var i of event.targets){
+ var eff1=get.damageEffect(i,player,player);
+ if(eff1<0) return false;
+ if(i.hasShan()&&eff1>0) return true;
+ }
+ var sha=false;
+ return player.getCardUsable({name:'sha'})<=0&&player.hasCard(function(card){
+ if(!sha&&get.name(card)=='sha'&&player.getUseValue(card)>0){
+ sha=true;
+ return false;
+ }
+ return sha&&get.value(card)<=5;
+ },'hs');
+ }
+ else{
+ var eff1=get.effect(event.player,{name:'guohe_copy2'},player,player);
+ var eff2=get.damageEffect(player,event.player,player);
+ if(!player.hasShan()) return eff1>0;
+ if(eff2>0) return eff1>0;
+ return player.hp>2&&eff20) val+=5;
+ return 20-val;
+ });
+ else player.discardPlayerCard(trigger.player,true,'he');
+ 'step 1'
+ trigger.directHit.addArray(game.players);
+ if(player==trigger.player&&trigger.addCount!==false){
+ trigger.addCount=false;
+ player.getStat().card.sha--;
+ }
+ },
+ },
+ xiangshu:{
+ audio:2,
+ trigger:{player:'phaseJieshuBegin'},
+ direct:true,
+ limited:true,
+ skillAnimation:true,
+ animationColor:'gray',
+ filter:function(event,player){
+ return (player.getStat('damage')||0)>0&&game.hasPlayer((current)=>current.isDamaged());
+ },
+ content:function(){
+ 'step 0'
+ event.num=player.getStat('damage');
+ player.chooseTarget('是否发动限定技【襄戍】?','令一名角色回复'+event.num+'点体力并摸'+get.cnNumber(event.num)+'张牌',function(card,player,target){
+ return target.isDamaged();
+ }).set('ai',function(target){
+ var num=_status.event.getParent().num,player=_status.event.player;
+ var att=get.attitude(player,target);
+ if(att>0&&num>=Math.min(player.hp,2)) return att*Math.sqrt(target.getDamagedHp());
+ return 0;
+ });
+ 'step 1'
+ if(result.bool){
+ var target=result.targets[0];
+ player.awakenSkill('xiangshu');
+ player.logSkill('xiangshu',target);
+ target.recover(num);
+ target.draw(num);
+ if(player!=target) player.addExpose(0.2);
+ }
+ },
+ },
+ //张瑶
+ //Partly powered by 烟雨墨染
+ yuanyu:{
+ audio:2,
+ enable:'phaseUse',
+ usable:1,
+ content:function(){
+ 'step 0'
+ player.draw();
+ 'step 1'
+ if(player.countCards('h')>0){
+ var suits=lib.suit.slice(0),cards=player.getExpansions('yuanyu');
+ for(var i of cards) suits.remove(get.suit(i,false));
+ var str='选择一张手牌,作为“怨”置于武将牌上;同时选择一名其他角色,令该角色获得〖怨语〗的后续效果。'
+ if(suits.length){
+ str+='目前“怨”中未包含的花色:';
+ for(var i of suits) str+=get.translation(i);
+ }
+ player.chooseCardTarget({
+ filterCard:true,
+ filterTarget:lib.filter.notMe,
+ position:'h',
+ prompt:'怨语:选择置于武将牌上的牌和目标',
+ prompt2:str,
+ suits:suits,
+ forced:true,
+ ai1:function(card){
+ var val=get.value(card),evt=_status.event;
+ if(evt.suits.contains(get.suit(card,false))) return 8-get.value(card);
+ return 5-get.value(card);
+ },
+ ai2:function(target){
+ var player=_status.event.player;
+ if(player.storage.yuanyu_damage&&player.storage.yuanyu_damage.contains(target)) return 0;
+ return -get.attitude(player,target);
+ },
+ });
+ }
+ else event.finish();
+ 'step 2'
+ var target=result.targets[0];
+ player.addSkill('yuanyu_damage');
+ player.markAuto('yuanyu_damage',result.targets);
+ player.line(target,'green');
+ if(!target.storage.yuanyu_mark){
+ target.storage.yuanyu_mark=player;
+ target.markSkillCharacter('yuanyu_mark',player,'怨语','已获得〖怨语〗效果');
+ target.addSkill('yuanyu_mark');
+ }
+ player.addToExpansion(result.cards,player,'give').gaintag.add('yuanyu');
+ },
+ intro:{
+ content:'expansion',
+ markcount:'expansion',
+ },
+ onremove:function(player,skill){
+ var cards=player.getExpansions(skill);
+ if(cards.length) player.loseToDiscardpile(cards);
+ player.removeSkill('yuanyu_damage');
+ },
+ ai:{
+ order:7,
+ result:{
+ player:1,
+ },
+ },
+ subSkill:{
+ mark:{
+ mark:'character',
+ intro:{
+ content:'已获得〖怨语〗效果',
+ onunmark:true,
+ },
+ },
+ damage:{
+ trigger:{global:'damageSource'},
+ forced:true,
+ charlotte:true,
+ onremove:function(player,skill){
+ if(player.storage[skill]){
+ for(var i of player.storage[skill]){
+ if(i.storage.yuanyu_mark==player) i.unmarkSkill('yuanyu_mark');
+ }
+ }
+ delete player.storage[skill];
+ },
+ filter:function(event,player){
+ var source=event.source;
+ return source&&player.getStorage('yuanyu_damage').contains(source)&&source.countCards('h')>0;
+ },
+ content:function(){
+ 'step 0'
+ event.count=trigger.num;
+ event.target=trigger.source;
+ 'step 1'
+ event.count--;
+ var suits=lib.suit.slice(0),cards=player.getExpansions('yuanyu');
+ for(var i of cards) suits.remove(get.suit(i,false));
+ var next=target.chooseCard('h',true,'将一张手牌置于'+get.translation(target)+'的武将牌上');
+ next.set('suits',suits);
+ next.set('ai',function(card){
+ var val=get.value(card),evt=_status.event;
+ if(evt.suits.contains(get.suit(card,false))) return 5-get.value(card);
+ return 8-get.value(card);
+ });
+ if(suits.length){
+ var str='目前未包含的花色:';
+ for(var i of suits) str+=get.translation(i);
+ next.set('prompt2',str);
+ }
+ 'step 2'
+ player.addToExpansion(result.cards,target,'give').gaintag.add('yuanyu');
+ 'step 3'
+ if(event.count>0&&target.countCards('he')>0&&player.hasSkill('yuanyu_damage')) event.goto(1);
+ },
+ },
+ },
+ },
+ xiyan:{
+ audio:2,
+ trigger:{player:'addToExpansionAfter'},
+ filter:function(event,player){
+ if(!event.gaintag.contains('yuanyu')) return false;
+ var cards=player.getExpansions('yuanyu');
+ if(cards.length_status.currentPhase,
+ forced:true,
+ content:function(){
+ 'step 0'
+ player.removeSkill('yuanyu_damage');
+ var cards=player.getExpansions('yuanyu');
+ player.gain(cards,'gain2');
+ 'step 1'
+ var target=_status.currentPhase;
+ if(player==target){
+ player.addMark('xiyan_buff',4,false);
+ player.addTempSkill('xiyan_buff');
+ }
+ else{
+ target.addMark('xiyan_debuff',4,false);
+ target.addTempSkill('xiyan_debuff');
+ }
+ },
+ subSkill:{
+ buff:{
+ charlotte:true,
+ mark:true,
+ marktext:" +4 ",
+ intro:{
+ content:"本回合手牌上限+4且使用牌无次数限制",
+ },
+ mod:{
+ maxHandcard:function(player,num){
+ return num+player.countMark('xiyan_buff');
+ },
+ cardUsable:function(card,player){
+ return Infinity;
+ },
+ },
+ sub:true,
+ },
+ debuff:{
+ charlotte:true,
+ mark:true,
+ marktext:" -4 ",
+ intro:{
+ content:"本回合手牌上限-#且不能使用基本牌",
+ },
+ mod:{
+ maxHandcard:function(player,num){
+ return num-player.countMark('xiyan_debuff');
+ },
+ cardEnabled:function(card){
+ if(get.type(card)=='basic') return false;
+ },
+ cardSavable:function(card){
+ if(get.type(card)=='basic') return false;
+ },
+ },
+ sub:true,
+ },
+ },
+ },
//滕公主
xingchong:{
audio:2,
@@ -263,7 +606,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shuffle1:{
charlotte:true,
forced:true,
- trigger:{player:'phaseEnd'},
+ trigger:{global:'phaseEnd'},
content:function(){
player.gainMaxHp();
game.delayx();
@@ -272,7 +615,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shuffle2:{
charlotte:true,
forced:true,
- trigger:{player:'phaseEnd'},
+ trigger:{global:'phaseEnd'},
content:function(){
'step 0'
player.recover();
@@ -842,7 +1185,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
'step 0'
var str=get.translation(player);
- trigger.player.chooseBool('是否响应'+player+'的主公技【助势】?','令'+get.translation(player)+'摸一张牌').set('goon',get.attitude(trigger.player,player)>0).set('ai',()=>_status.event.goon);
+ trigger.player.chooseBool('是否响应'+get.translation(player)+'的主公技【助势】?','令'+get.translation(player)+'摸一张牌').set('goon',get.attitude(trigger.player,player)>0).set('ai',()=>_status.event.goon);
'step 1'
if(result.bool){
player.logSkill('zhushi');
@@ -915,12 +1258,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return Array.isArray(event.respondTo)&&event.respondTo[0]==player&&player.storage.xizhen_effect&&player.storage.xizhen_effect.isIn();
},
content:function(){
+ 'step 0'
var target=player.storage.xizhen_effect;
- if(target.isHealthy()) player.draw(2);
- else{
- target.recover();
- player.draw();
- }
+ event.target=target;
+ target.recover();
+ 'step 1'
+ player.draw(target.isHealthy()?2:1);
},
mark:'character',
intro:{content:'已指定$为目标'},
@@ -1429,7 +1772,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var type=result.control;
if(type!='cancel2'){
event.type=type;
- var cards=player.getCards('h',function(card){
+ var cards=player.getCards('he',function(card){
return get.type2(card,player)==type;
});
if(cards.length){
@@ -13280,7 +13623,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
'step 0'
player.chooseTarget(get.prompt2('rewenji'),function(card,player,target){
- return target!=player&&target.countCards('he');
+ return target!=player&&target.countCards('he')>0;
}).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(att>0) return Math.sqrt(att)/10;
@@ -13339,7 +13682,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
'step 0'
player.chooseTarget(get.prompt2('spwenji'),function(card,player,target){
- return target!=player&&target.countCards('he');
+ return target!=player&&target.countCards('he')>0;
}).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(att>0) return Math.sqrt(att)/10;
@@ -14819,6 +15162,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
caomao:'曹髦(241年11月15日-260年6月2日)[1],字彦士,沛国谯县(今安徽省亳州市)人,魏文帝曹丕之孙,东海王曹霖之子,曹魏第四位皇帝(254年11月1日-260年6月2日)。正始二年(241年),生于东海王宫,自幼聪明好学,才慧早成,正始五年(244年),封为高贵乡公,嘉平六年(254年),大将军司马师废除齐王曹芳后,拥立为帝,年号正元,曹髦文才武略,崇拜少康,不满司马氏专权秉政,甘露五年(260年),亲自讨伐司马昭,为太子舍人成济所弑,年仅十九岁,以王礼葬于洛阳西北。曹髦擅长诗文,创制了九言诗,传世文章有《伤魂赋并序》《颜子论》等。爱好儒学,亲赴太学论道,著有《春秋左氏传音》(失传)。精通绘画,一说为中国第一位成为画家的皇帝,唐张彦远《历代名画记》目曹髦为中品。',
laiyinger:'来莺儿,是个传说中的人物,正史及古代典籍并无记载。相传来莺儿是东汉歌妓,建安年间洛阳名妓,后爱上曹操的侍卫王图,王图因延误军机而押赴刑场,当时来莺儿奋不顾身以己命换王图一死。新编古装潮剧《曹营恋歌》,秦腔《雀台歌女》讲述了歌女来莺儿与情人王图及曹操三人之间催人泪下的故事。',
tenggongzhu:'滕公主,名讳不详,三国人物,吴大帝孙权之女。一说为养女,生父为孙权堂弟孙奂。黄武年间(222年—228年),以公主身份下嫁功臣滕胄之子滕胤,当时滕胤年仅20岁。滕胤皮肤白皙,容貌俊美,每逢入朝大臣们没有不惊叹称羡的。滕胤仕官后,上书言及时局,又对政策多有匡弼。孙权对公主也特别宠爱,因为滕胤的缘故,又格外增加对公主的赏赐,又几次探望慰劳。少帝孙亮时期,孙綝以宗室身份独揽大权作恶多端,引发群臣不满。五凤三年(256年)滕胤与连襟吕据密谋推翻孙綝,事败遭到夷三族 。公主则被亲兄孙壹救出,携其逃亡曹魏。',
+ zhangyao:'张美人,三国东吴末帝孙皓后妃,张布之女。另有张布女,张美人姊被孙皓立为左夫人。《吴书五妃嫔传第五》:江表传曰:皓以张布女为美人,有宠,皓问曰:“汝父所在?”答曰:“贼以杀之。”皓大怒,棒杀之。后思其颜色,使巧工刻木作美人形象,恒置座侧。问左右:“布复有女否?”答曰:“布大女适故卫尉冯朝子纯。”即夺纯妻入宫,大有宠,拜为左夫人,昼夜与夫人房宴,不听朝政,使尚方以金作华燧、步摇、假髻以千数。令宫人著以相扑,朝成夕败,辄出更作,工匠因缘偷盗,府藏为空。会夫人死,皓哀愍思念,葬于苑中,大作冢,使工匠刻柏作木人,内冢中以为兵卫,以金银珍玩之物送葬,不可称计。已葬之后,皓治丧於内,半年不出。国人见葬太奢丽,皆谓皓已死,所葬者是也。皓舅子何都颜状似皓,云都代立。临海太守奚熙信讹言,举兵欲还诛都,都叔父植时为备海督,击杀熙,夷三族,讹言乃息,而人心犹疑。',
+ yanrou:'阎柔(生卒年不详),燕国广阳(今北京市附近)人。三国时期曹魏名将。年少时曾被乌丸、鲜卑俘虏,后来却得到他们的信任。刘虞死后,阎柔被鲜于辅等推举为乌丸司马,联系鲜卑为刘虞报仇,和公孙瓒对抗。在官渡之战时归曹操,拜护乌丸校尉,对曹操讨伐乌丸有功,赐爵关内侯。曹操待其如子,曹丕也视其如亲兄弟,阎柔坐镇北方,统帅幽州兵马,抗击胡人的入侵。曹丕即位后,阎柔被拜为度辽将军。',
},
characterTitle:{
wulan:'#b对决限定武将',
@@ -15670,6 +16015,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xingchong_info:'一轮游戏开始时,你可声明两个自然数X和Y,且(X+Y)≤min(5, 你的体力上限)。你摸X张牌并展示Y张牌。若如此做,当你于本轮内失去一张以此法展示的牌后,你摸两张牌。',
liunian:'流年',
liunian_info:'锁定技。牌堆第一次洗牌后,你于回合结束时加1点体力上限;牌堆第二次洗牌后,你于本回合结束时回复1点体力,且本局游戏内的手牌上限+10。',
+ zhangyao:'张媱',
+ yuanyu:"怨语",
+ yuanyu_info:"出牌阶段限一次。你可以摸一张牌,然后选择一张手牌和一名其他角色。该角色获得如下效果直到你发动〖夕颜〗:{当该角色造成1点伤害后,其须将一张手牌作为“怨”置于你的武将牌上}。然后你将你选择的手牌作为“怨”置于你的武将牌上。",
+ xiyan:"夕颜",
+ xiyan_info:"锁定技。当有牌作为“怨”移动到你的武将牌上后,若“怨”中的花色数达到4种,则你获得所有“怨”。然后若当前回合角色:是你,你本回合手牌上限+4且使用牌无次数限制;不是你,当前回合角色本回合手牌上限-4且不能使用基本牌。",
+ yanrou:'阎柔',
+ choutao:'仇讨',
+ choutao_info:'当你使用【杀】时,或成为【杀】的目标后,你可以弃置此【杀】使用者的一张牌,令此【杀】不可被响应。若你是此【杀】的使用者,则你令此【杀】不计入次数限制。',
+ xiangshu:'襄戍',
+ xiangshu_info:'限定技。结束阶段开始时,若你本回合内造成过伤害,则你可以选择一名已受伤的角色。该角色回复X点体力并摸X张牌(X为你本回合内造成的伤害值总和且至多为5)。',
+ caimaozhangyun:'蔡瑁张允',
+ lianzhou:'连舟',
+ lianzhou_info:'锁定技。准备阶段,你横置你的武将牌。然后你可横置任意名体力值等于你的角色。',
+ jinglan:'惊澜',
+ jinglan_info:'锁定技。当你造成伤害后,若你的手牌数:大于体力值,你弃置三张手牌;等于体力值,你弃置一张手牌并回复1点体力;小于体力值,你受到1点无来源火焰伤害并摸四张牌。',
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",
diff --git a/character/tw.js b/character/tw.js
index a00edcf8f..0f19b04a4 100644
--- a/character/tw.js
+++ b/character/tw.js
@@ -12,7 +12,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
character:{
- tw_puyangxing:['male','wu',3,['twzhengjian','twzhongchi']],
+ tw_puyangxing:['male','wu',4,['twzhengjian','twzhongchi']],
tw_tianyu:['male','wei',4,['twzhenxi','twyangshi']],
old_quancong:['male','wu',4,['zhenshan']],
tw_wujing:['male','wu',4,['twfenghan','twcongji']],
@@ -191,10 +191,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.chooseControl().set('prompt','征建:请选择一种效果').set('choiceList',[
'令“出牌阶段内未使用过非基本牌”的其他角色受到惩罚',
'令“出牌阶段内未获得过牌”的其他角色受到惩罚',
- ]);
+ ]).set('ai',()=>Math.random()<=0.5?0:1);
'step 1'
player.addSkill('twzhengjian_eff'+result.index);
- game.log(player,'获得了','#g【征建】','的','#y效果'+get.cnNumber(result.index+1,true)).set('ai',()=>Math.random()<=0.5?0:1);
+ game.log(player,'获得了','#g【征建】','的','#y效果'+get.cnNumber(result.index+1,true));
game.delayx();
},
onremove:true,
@@ -538,7 +538,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!arg||!arg.name||arg.name!='sha') return false;
if(player.storage.counttrigger&&player.storage.counttrigger.twzhenxi) return false;
if(!arg.target) return false;
- var card=target.getEquip(2);
+ var card=arg.target.getEquip(2);
return card&&get.value(card)>0&&game.hasPlayer(function(current){
return current!=arg.target&¤t.canEquip(card)&&get.effect(current,card,player,player)>0;
})
@@ -1190,7 +1190,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
'step 0'
player.changeZhuanhuanji('twfeifu');
- trigger.target.chooseCard('he',true,'交给'+get.translation(trigger.player)+'一张牌','若选择装备牌,则其可以使用此牌');
+ trigger.target.chooseCard('he',true,'非服:交给'+get.translation(trigger.player)+'一张牌','若选择装备牌,则其可以使用此牌');
'step 1'
if(result.bool){
var card=result.cards[0];
diff --git a/character/yingbian.js b/character/yingbian.js
index 91b3e53e6..3f8611658 100644
--- a/character/yingbian.js
+++ b/character/yingbian.js
@@ -4,6 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'yingbian',
connect:true,
character:{
+ wangxiang:['male','jin',3,['bingxin']],
jin_guohuai:['female','jin',3,['zhefu','yidu']],
jin_jiachong:['male','jin',3,['xiongshu','jianhui']],
xuangongzhu:['female','jin',3,['gaoling','qimei','ybzhuiji'],['hiddenSkill']],
@@ -32,11 +33,122 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yingbian_pack1:['jin_simayi','jin_zhangchunhua','ol_lisu','simazhou','cheliji','ol_huaxin'],
yingbian_pack2:['jin_simashi','jin_xiahouhui','zhanghuyuechen','shibao','jin_yanghuiyu'],
yingbian_pack3:['jin_simazhao','jin_wangyuanji','duyu','weiguan','xuangongzhu'],
- yingbian_pack4:['zhongyan','xinchang','jin_jiachong','jin_guohuai'],
+ yingbian_pack4:['zhongyan','xinchang','jin_jiachong','jin_guohuai','wangxiang'],
yingbian_pack5:['yangyan','yangzhi'],
},
},
skill:{
+ bingxin:{
+ audio:2,
+ enable:'chooseToUse',
+ hiddenCard:function(player,name){
+ if(get.type(name)=='basic'&&lib.inpile.contains(name)&&!player.getStorage('bingxin_count').contains(name)) return true;
+ },
+ filter:function(event,player){
+ if(event.type=='wuxie') return false;
+ var hs=player.getCards('h');
+ if(hs.length!=Math.max(0,player.hp)) return false;
+ if(hs.length>1){
+ var color=get.color(hs[0],player);
+ for(var i=1;ifalse,
+ viewAs:{
+ name:links[0][2],
+ nature:links[0][3],
+ isCard:true,
+ },
+ precontent:function(){
+ player.logSkill('bingxin');
+ player.draw();
+ delete event.result.skill;
+ var name=event.result.card.name;
+ player.addTempSkill('bingxin_count');
+ player.markAuto('bingxin_count',[name]);
+ },
+ }
+ },
+ prompt:function(links,player){
+ var name=links[0][2];
+ var nature=links[0][3];
+ return '摸一张并视为使用'+(get.translation(nature)||'')+get.translation(name);
+ },
+ },
+ ai:{
+ order:function(item,player){
+ return 10;
+ },
+ respondShan:true,
+ respondSha:true,
+ skillTagFilter:function(player,tag){
+ var hs=player.getCards('h');
+ if(hs.length!=Math.max(0,hs.length)) return false;
+ if(hs.length>1){
+ var color=get.color(hs[0],player);
+ for(var i=1;i1||event.player==player) return false;
- if(player.hasSkillTag('unequip2')) return false;
- var evt=event.getParent();
- if(evt.player&&evt.player.hasSkillTag('unequip',false,{
- name:evt.card?evt.card.name:null,
- target:player,
- card:evt.card
- })) return false;
- return true;
- },
- audio:true,
- check:function(event,player){
- return get.effect(player,event.card,event.player,player)<=0;
- },
- content:function(){
- "step 0"
- player.judge('linglongshimandai',function(card){return (get.suit(card)=='heart')?1.5:-0.5});
- "step 1"
- if(result.judge>0){
- trigger.getParent().excluded.add(player);
- }
- },
- ai:{
- effect:{
- target:function(card,player,target,effect){
- if(player.hasSkillTag('unequip',false,{
- name:card?card.name:null,
- target:player,
- card:card
- })) return;
- },
- },
- },
- },
- "hongmianbaihuapao_skill":{
- equipSkill:true,
- trigger:{
- player:"damageBegin4",
- },
- filter:function(event,player){
- if(event.source&&event.source.hasSkillTag('unequip',false,{
- name:event.card?event.card.name:null,
- target:player,
- card:event.card
- })) return;
- if(event.nature) return true;
- },
- forced:true,
- content:function(){
- trigger.cancel();
- },
- ai:{
- nofire:true,
- nothunder:true,
- effect:{
- target:function(card,player,target,current){
- if(player.hasSkillTag('unequip',false,{
- name:card?card.name:null,
- target:player,
- card:card
- })) return;
- if(get.tag(card,'natureDamage')) return 'zerotarget';
- },
- },
- },
- },
- "wushuangfangtianji_skill":{
- equipSkill:true,
- trigger:{
- source:"damageSource",
- },
- filter:function(event,player){
- return event.card&&event.card.name=='sha';
- },
- content:function(){
- 'step 0'
- player.line(trigger.player,'white');
- if(!trigger.player.countCards('he')){
- event.goto(1);
- }else{
- event.goto(2);
- }
- 'step 1'
- player.draw();
- event.finish();
- 'step 2'
- player.chooseControl('摸一张牌','弃置其一张牌',function(event,player){
- if(get.attitude(player,trigger.player)>2) return '摸一张牌';
- return '弃置其一张牌';
- });
- 'step 3'
- if(result.control=='摸一张牌'){
- player.draw();
- event.finish();
- }
- else{
- player.discardPlayerCard(trigger.player,'he',true);
- event.finish();
- }
- },
- },
boss_yaoshou:{
mod:{
@@ -4806,19 +4561,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
noturn:true,
}
},
- xuwangzhimian:{
- equipSkill:true,
- trigger:{player:'phaseDrawBegin'},
- forced:true,
- content:function(){
- trigger.num+=2;
- },
- mod:{
- maxHandcard:function(player,num){
- return num-1;
- }
- }
- },
xiuluolianyuji2:{
equipSkill:true,
vanish:true,
@@ -4873,98 +4615,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
trigger.nature='fire';
}
},
- chixueqingfeng:{
- equipSkill:true,
- trigger:{player:'useCardToPlayered'},
- filter:function(event){
- return event.card.name=='sha';
- },
- logTarget:'target',
- forced:true,
- content:function(){
- trigger.target.addTempSkill('chixueqingfeng2','shaAfter');
- },
- ai:{
- unequip:true,
- skillTagFilter:function(player,tag,arg){
- if(arg&&arg.name=='sha') return true;
- return false;
- }
- }
- },
- chixueqingfeng2:{
- equipSkill:true,
- mod:{
- cardEnabled:function(){
- return false;
- },
- cardUsable:function(){
- return false;
- },
- cardRespondable:function(){
- return false;
- },
- cardSavable:function(){
- return false;
- }
- }
- },
- qimenbagua:{
- equipSkill:true,
- trigger:{target:'shaBefore'},
- forced:true,
- filter:function(event,player){
- if(player.hasSkillTag('unequip2')) return false;
- if(event.player.hasSkillTag('unequip',false,{
- name:event.card?event.card.name:null,
- target:player,
- card:event.card
- })) return false;
- return true;
- },
- content:function(){
- trigger.cancel();
- },
- ai:{
- effect:{
- target:function(card,player,target){
- if(player.hasSkillTag('unequip',false,{
- name:card?card.name:null,
- target:player,
- card:card
- })) return;
- if(card.name=='sha') return 'zerotarget';
- }
- }
- }
- },
- guilongzhanyuedao:{
- equipSkill:true,
- trigger:{player:'useCard'},
- forced:true,
- filter:function(event,player){
- return event.card&&event.card.name=='sha'&&get.color(event.card)=='red';
- },
- content:function(){
- trigger.directHit.addArray(game.players);
- }
- },
- guofengyupao:{
- equipSkill:true,
- mod:{
- targetEnabled:function(card,player,target,now){
- if(target.hasSkillTag('unequip2')) return false;
- if(player!=target){
- if(player.hasSkillTag('unequip',false,{
- name:card?card.name:null,
- target:player,
- card:card
- })){}
- else if(get.type(card)=='trick') return false;
- }
- }
- }
- },
longfenghemingjian:{
equipSkill:true,
inherit:'cixiong_skill',
@@ -9263,22 +8913,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
sadouchengbing_info:'出牌阶段对自己使用,若你的势力为“神”,摸X张牌;否则将你手牌补至X;(X为你的体力上限且至多为5)',
yihuajiemu:'移花接木',
yihuajiemu_info:'出牌阶段对一名有牌的其他角色使用,令其使用一张【杀】,或交给你两张牌',
- guilongzhanyuedao:'鬼龙斩月刀',
- guilongzhanyuedao_info:'锁定技,你使用的红色【杀】不能被【闪】响应',
- guofengyupao:'国风玉袍',
- guofengyupao_info:'锁定技,你不能成为其他角色使用普通锦囊牌的目标',
chiyanzhenhunqin:'赤焰镇魂琴',
chiyanzhenhunqin_info:'锁定技,你造成的伤害均视为具有火属性',
- qimenbagua:'奇门八卦',
- qimenbagua_info:'锁定技,其他角色使用的【杀】对你无效',
juechenjinge:'绝尘金戈',
juechenjinge_info:'锁定技,敌方角色计算与己方其他角色距离+1',
xiuluolianyuji:'修罗炼狱戟',
xiuluolianyuji_info:'你使用【杀】可以额外指定任意名攻击范围内的其他角色为目标;锁定技,你使用【杀】造成的伤害+1,然后令受到伤害的角色回复1点体力',
- xuwangzhimian:'虚妄之冕',
- xuwangzhimian_info:'锁定技,摸牌阶段,你额外摸两张牌;你的手牌上限-1',
- chixueqingfeng:'赤血青锋',
- chixueqingfeng_info:'锁定技,你使用【杀】结算结束前,目标角色不能使用或打出手牌,且此【杀】无视其防具',
longfenghemingjian:'鸾凤和鸣剑',
longfenghemingjian_info:'你使用的【雷杀】或【火杀】指定目标后,可令对方选择弃置一张牌或令你摸一张牌',
qicaishenlu:'七彩神鹿',
@@ -9599,23 +9239,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
"boss_aozhan":"鏖战",
"boss_aozhan_info":"锁定技,若你装备区内有:武器牌,你可以多使用一张【杀】;防具牌,防止你受到的超过1点的伤害;坐骑牌,摸牌阶段多摸一张牌;宝物牌,跳过你的判定阶段。",
- "shufazijinguan_skill":"束发紫金冠",
- "shufazijinguan_skill_info":"准备阶段,你可以对一名其他角色造成1点伤害。",
- "linglongshimandai_skill":"玲珑狮蛮带",
- "linglongshimandai_skill_info":"当其他角色使用牌指定你为唯一目标后,你可以进行一次判定,若判定结果为红桃,则此牌对你无效。",
- "hongmianbaihuapao_skill":"红棉百花袍",
- "hongmianbaihuapao_skill_info":"锁定技,防止你受到的属性伤害。",
- "wushuangfangtianji_skill":"无双方天戟",
- "wushuangfangtianji_skill_info":"你使用【杀】对目标角色造成伤害后,可以摸一张牌或弃置目标角色一张牌。",
- "wushuangfangtianji":"无双方天戟",
- "wushuangfangtianji_info":"你使用【杀】对目标角色造成伤害后,可以摸一张牌或弃置目标角色一张牌。",
- "shufazijinguan":"束发紫金冠",
- "shufazijinguan_info":"准备阶段,你可以对一名其他角色造成1点伤害。",
- "hongmianbaihuapao":"红棉百花袍",
- "hongmianbaihuapao_info":"锁定技,防止你受到的属性伤害。",
- "linglongshimandai":"玲珑狮蛮带",
- "linglongshimandai_info":"当其他角色使用牌指定你为唯一目标后,你可以进行一次判定,若判定结果为红桃,则此牌对你无效。",
-
boss_qinguangwang_ab:'秦广王',
boss_qinguangwang:'秦广王·蒋子文',
boss_panguan:'判官',
diff --git a/mode/guozhan.js b/mode/guozhan.js
index 63f835599..e648a9575 100644
--- a/mode/guozhan.js
+++ b/mode/guozhan.js
@@ -405,7 +405,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gz_zhugeke:['male','wu',3,['aocai','gzduwu'],['gzskin']],
gz_wenqin:['male','wei',4,['gzjinfa'],['doublegroup:wei:wu','gzskin']],
gz_xf_sufei:['male','wu',4,['gzlianpian'],['doublegroup:wu:qun','gzskin']],
- gz_liuba:['male','shu',3,['tongduo','qingyin'],['gzskin']],
+ gz_liuba:['male','shu',3,['gztongduo','qingyin'],['gzskin']],
gz_pengyang:['male','shu',3,['daming','xiaoni'],['doublegroup:shu:qun','gzskin']],
gz_zhuling:['male','wei',4,['gzjuejue','gzfangyuan'],['gzskin']],
@@ -1330,7 +1330,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
content:function(){
'step 0'
player.chooseTarget(lib.filter.notMe,get.prompt('gzlianyou'),'令一名其他角色获得〖兴火〗').set('forceDie',true).set('ai',function(target){
- return 10+(get.attitude(_status.event.player,target)*target.hasSkillTag('fireAttack',null,null,true)?2:1)
+ return 10+(get.attitude(_status.event.player,target)*(target.hasSkillTag('fireAttack',null,null,true)?2:1));
});
'step 1'
if(result.bool){
@@ -2232,13 +2232,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
//刘巴
- tongduo:{
+ gztongduo:{
audio:2,
trigger:{global:'phaseJieshuBegin'},
direct:true,
preHidden:true,
filter:function(event,player){
- if(player!=event.player&&!player.hasSkill('tongduo')||!event.player.isFriendOf(player)) return false;
+ if(player!=event.player&&!player.hasSkill('gztongduo')||!event.player.isFriendOf(player)) return false;
return event.player.getHistory('lose',function(evt){
return evt.type=='discard'&&evt.cards2.length>0&&evt.getParent('phaseDiscard').player==event.player;
}).length>0;
@@ -2252,10 +2252,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
num=Math.min(3,num);
event.num=num;
var next=trigger.player.chooseBool('是否发动【统度】摸'+get.cnNumber(num)+'张牌?');
- if(player==trigger.player) next.setHiddenSkill('tongduo');
+ if(player==trigger.player) next.setHiddenSkill('gztongduo');
'step 1'
if(result.bool){
- player.logSkill('tongduo',trigger.player);
+ player.logSkill('gztongduo',trigger.player);
trigger.player.draw(num);
}
},
@@ -4145,7 +4145,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
content:function(){
'step 0'
player.chooseTarget(get.prompt2('gzwenji'),function(card,player,target){
- return target!=player&&target.countCards('he');
+ return target!=player&&target.countCards('he')>0;
}).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(target.identity=='unknown'&&att<=0) return 20;
@@ -11581,8 +11581,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
daming_info:'一名己方角色A的出牌阶段开始时,你可弃置一张锦囊牌,横置一名角色并摸X张牌(X为拥有横置角色的势力数)。然后你选择一项:①视为对A使用一张【桃】;②令A视为对由你选择的另一名角色使用一张雷【杀】。',
xiaoni:'嚣逆',
xiaoni_info:'锁定技,当你使用牌时,或成为其他角色使用牌的目标后,若场上存在其他己方角色且这些角色的手牌数均不大于你,则目标角色/你不可响应此牌。',
- tongduo:'统度',
- tongduo_info:'己方角色的结束阶段开始时,其可以摸X张牌(X为其本回合弃牌阶段弃置的牌数且至多为3)。 ',
+ gztongduo:'统度',
+ gztongduo_info:'己方角色的结束阶段开始时,其可以摸X张牌(X为其本回合弃牌阶段弃置的牌数且至多为3)。 ',
qingyin:'清隐',
qingyin_info:'限定技,出牌阶段,你可令所有己方角色将体力值回满,然后移除此武将牌。',
gzlianpian:'联翩',
@@ -12880,7 +12880,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return;
}
game.addVideo('showCharacter',this,num);
- if(this.identity=='unknown'||(this.identity!='ye'&&(num==0||num==2)&&lib.character[this.name1][1]=='ye')){
+ if(this.identity=='unknown'||((num==0||num==2)&&lib.character[this.name1][1]=='ye')){
this.group=this.getGuozhanGroup(num);
this._group=this.group;
if((num==0||num==2)&&lib.character[this.name1][1]=='ye'){
diff --git a/mode/stone.js b/mode/stone.js
index e39336079..59b79537b 100644
--- a/mode/stone.js
+++ b/mode/stone.js
@@ -1086,7 +1086,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
mode_stone:{
stone_tutengyongshi:['male','wei',4,['shaman_jili'],['minskin','stone'],[4,2,'shaman']],
stone_xuejuren:['male','wei',2,['shaman_xueju'],['minskin','stone'],[1,1,'shaman']],
- stone_tuyuansu:['male','qun',5,['chaofeng'],['minskin','stone'],[5,4,'shaman']],
+ stone_tuyuansu:['male','qun',5,['lschaofeng'],['minskin','stone'],[5,4,'shaman']],
stone_huoyuansu:['male','shu',3,['shaman_huoxi'],['minskin','stone'],[4,3,'shaman']],
stone_fachao:['male','wei',3,['shaman_tuteng','shaman_fachao'],['minskin','stone'],[3,0,'shaman']],
stone_huoshe:['male','shu',3,['shaman_tuteng','shaman_huoshe'],['minskin','stone'],[3,0,'shaman']],
@@ -1099,13 +1099,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
stone_kuangyedoushi:['male','wu',3,['druid_nuhuo'],['minskin','stone'],[4,2,'druid']],
stone_conglinshouwei:['male','wu',3,['druid_huwei'],['minskin','stone'],[4,2,'druid']],
- stone_baohuzhishu:['male','qun',6,['chaofeng'],['minskin','stone'],[6,4,'druid']],
+ stone_baohuzhishu:['male','qun',6,['lschaofeng'],['minskin','stone'],[6,4,'druid']],
stone_liebao:['male','wei',3,['stone_chongfeng'],['minskin','stone'],[3,2,'druid']],
- stone_zongxiong:['male','shu',4,['chaofeng'],['minskin','stone'],[4,2,'druid']],
+ stone_zongxiong:['male','shu',4,['lschaofeng'],['minskin','stone'],[4,2,'druid']],
stone_baoqishi:['female','wei',2,['druid_chengzhang'],['minskin','stone'],[2,2,'druid']],
stone_renyaqishi:['female','wei',1,['druid_renya'],['minskin','stone'],[1,1,'druid']],
stone_huangyeqishi:['male','wei',4,['druid_chicheng'],['minskin','stone'],[5,2,'druid']],
- stone_huoshanxiemu:['male','wei',3,['druid_juhuo','chaofeng'],['minskin','stone'],[5,6,'druid']],
+ stone_huoshanxiemu:['male','wei',3,['druid_juhuo','lschaofeng'],['minskin','stone'],[5,6,'druid']],
stone_conglinxiaoshou:['male','wei',3,['druid_yuehuo'],['minskin','stone'],[4,4,'druid']],
stone_lindishuyao:['female','wei',3,['druid_yeyou'],['minskin','stone'],[3,3,'druid']],
stone_xunmenglong:['male','wei',2,['druid_qicheng'],['minskin','stone'],[3,3,'druid']],
@@ -1113,7 +1113,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
stone_caoyuanshi:['male','qun',5,['hunter_nuhou'],['minskin','stone'],[5,2,'hunter']],
stone_leiouke:['male','shu',2,['hunter_zhanhuo'],['minskin','stone'],[3,1,'hunter']],
stone_huofu:['male','qun',2,['stone_chongfeng'],['minskin','stone'],[3,4,'hunter']],
- stone_misha:['male','shu',3,['chaofeng'],['minskin','stone'],[3,3,'hunter']],
+ stone_misha:['male','shu',3,['lschaofeng'],['minskin','stone'],[3,3,'hunter']],
stone_jiewangzhu:['male','wu',1,['hunter_jiewang'],['minskin','stone'],[1,2,'hunter']],
stone_xunshoushi:['male','qun',2,['hunter_xunshou'],['minskin','stone'],[4,3,'hunter']],
stone_senlinlang:['male','qun',1,['hunter_qunxi'],['minskin','stone'],[1,2,'hunter']],
@@ -1154,7 +1154,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
stone_xiaogui:['male','qun',1,[],['minskin','stone','stonehidden'],[1,1]],
stone_kongjuzhanma:['male','qun',1,['warlock_yongsheng'],['minskin','stone'],[3,1,'warlock']],
stone_morishouwei:['male','qun',4,['stone_chongfeng','warlock_zaihuo'],['minskin','stone'],[4,4,'warlock']],
- stone_xukongxingzhe:['male','qun',2,['chaofeng'],['minskin','stone'],[1,1,'warlock']],
+ stone_xukongxingzhe:['male','qun',2,['lschaofeng'],['minskin','stone'],[1,1,'warlock']],
stone_diyuhuo:['male','qun',4,['warlock_yuhuo'],['minskin','stone'],[5,4,'warlock']],
stone_diyuhuox:['male','qun',2,[],['minskin','stone','stonehidden'],[2,2,'warlock']],
stone_heishitanfan:['male','qun',2,['warlock_anyu'],['minskin','stone'],[2,2,'warlock']],
@@ -1169,10 +1169,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
stone_zhujiashi:['male','qun',2,['warrior_zhujia'],['minskin','stone'],[2,1,'warrior']],
stone_jiangong:['male','qun',2,['warrior_jiangong'],['minskin','stone'],[2,2,'warrior']],
stone_chidunshinv:['female','qun',4,['warrior_tidun'],['minskin','stone'],[5,4,'warrior']],
- stone_yuanhou:['male','qun',2,['chaofeng'],['minskin','stone'],[2,3,'warrior']],
+ stone_yuanhou:['male','qun',2,['lschaofeng'],['minskin','stone'],[2,3,'warrior']],
stone_heiyaoyaoshou:['male','qun',4,['warrior_heiyao'],['minskin','stone'],[5,4,'warrior']],
stone_honglongyongshi:['male','qun',2,['warrior_fenyong'],['minskin','stone'],[2,3,'warrior']],
- stone_peilianshi:['male','qun',2,['chaofeng','warrior_peilian'],['minskin','stone'],[2,2,'warrior']],
+ stone_peilianshi:['male','qun',2,['lschaofeng','warrior_peilian'],['minskin','stone'],[2,2,'warrior']],
stone_jingyingweishi:['male','qun',3,['stone_chongfeng'],['minskin','stone'],[4,3,'warrior']],
stone_mengmaren:['male','qun',3,['warrior_chuanci'],['minskin','stone'],[4,4,'warrior']],
stone_zhifuzhe:['male','qun',2,['warrior_zhifu'],['minskin','stone'],[3,1,'warrior']],
@@ -1237,18 +1237,18 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
stone_shumiao:['none','wu',1,[],['minskin','stone','stonehidden'],[1,1]],
stone_shuren:['none','wu',2,['stone_chongfeng','stone_zibao'],['minskin','stone','stonehidden'],[2,2]],
stone_shurenx:['none','wu',2,[],['minskin','stone','stonehidden'],[2,2]],
- stone_shurenxx:['none','wu',2,['chaofeng'],['minskin','stone','stonehidden'],[2,2]],
- stone_youlinglang:['none','qun',2,['chaofeng'],['minskin','stone','stonehidden'],[2,2]],
+ stone_shurenxx:['none','wu',2,['lschaofeng'],['minskin','stone','stonehidden'],[2,2]],
+ stone_youlinglang:['none','qun',2,['lschaofeng'],['minskin','stone','stonehidden'],[2,2]],
stone_xiaojingling:['none','qun',1,['xuying'],['minskin','stone','stonehidden'],[1,1]],
stone_zhumo:['none','qun',2,[],['minskin','stone','stonehidden'],[2,2]],
- stone_jingxiang:['none','qun',2,['stone_jingxiang','chaofeng'],['minskin','stone','stonehidden'],[2,0]],
+ stone_jingxiang:['none','qun',2,['stone_jingxiang','lschaofeng'],['minskin','stone','stonehidden'],[2,0]],
stone_shengguanghuwei:['female','qun',2,['priest_shengguang'],['minskin','stone','stonehidden'],[1,1]],
stone_liegou:['none','qun',1,['stone_chongfeng'],['minskin','stone','stonehidden'],[1,2]],
stone_mianyang:['none','qun',1,['mage_mianyang'],['minskin','stone','stonehidden'],[1,0]],
stone_qingwa:['none','wu',1,['shaman_qingwa'],['minskin','stone','stonehidden'],[1,0]],
- stone_shengjiachong:['none','qun',1,['chaofeng'],['minskin','stone','stonehidden'],[1,1]],
+ stone_shengjiachong:['none','qun',1,['lschaofeng'],['minskin','stone','stonehidden'],[1,1]],
- stone_tuteng1:['none','qun',2,['shaman_tuteng','chaofeng'],['minskin','stone','stonehidden'],[2,0]],
+ stone_tuteng1:['none','qun',2,['shaman_tuteng','lschaofeng'],['minskin','stone','stonehidden'],[2,0]],
stone_tuteng2:['none','qun',2,['shaman_tuteng','shaman_zhuore'],['minskin','stone','stonehidden'],[2,0]],
stone_tuteng3:['none','qun',2,['shaman_tuteng','shaman_fali'],['minskin','stone','stonehidden'],[2,0]],
stone_tuteng4:['none','qun',2,['shaman_tuteng','shaman_zhiliao'],['minskin','stone','stonehidden'],[2,0]],
@@ -1260,7 +1260,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
stone_nuoziduomu:['male','qun',4,['stone_shixu'],['minskin','stone','stonehidden','stonelegend'],[6,4]],
stone_maligousi:['male','qun',4,['stone_mowang'],['minskin','stone','stonehidden','stonelegend'],[6,2]],
- stone_aolajier:['male','qun',4,['stone_chongfeng','shaman_fengnu','paladin_hudun','chaofeng'],['minskin','stone','stonehidden','stonelegend_shaman'],[6,4]],
+ stone_aolajier:['male','qun',4,['stone_chongfeng','shaman_fengnu','paladin_hudun','lschaofeng'],['minskin','stone','stonehidden','stonelegend_shaman'],[6,4]],
stone_andongni:['male','qun',4,['stone_zhiyin'],['minskin','stone','stonehidden','stonelegend_mage'],[6,4]],
stone_jialakesi:['male','qun',6,['stone_bianshen'],['minskin','stone','stonehidden','stonelegend_warlock'],[6,0]],
stone_jialakesix:['male','qun',6,['stone_lianyu'],['modeimage','stonehidden','stonespecial']],
@@ -1268,7 +1268,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
stone_geluomashi:['male','qun',4,['stone_chongfeng','stone_jinu'],['minskin','stone','stonehidden','stonelegend_warrior'],[6,4]],
stone_aidewen:['male','qun',3,['stone_lianji'],['minskin','stone','stonehidden','stonelegend_rogue'],[6,3]],
stone_sainaliusi:['male','qun',3,['stone_shenyu'],['minskin','stone','stonehidden','stonelegend_druid'],[6,3]],
- stone_fuding:['male','qun',3,['paladin_hudun','chaofeng','stone_fuchou'],['minskin','stone','stonehidden','stonelegend_paladin'],[6,3]],
+ stone_fuding:['male','qun',3,['paladin_hudun','lschaofeng','stone_fuchou'],['minskin','stone','stonehidden','stonelegend_paladin'],[6,3]],
stone_weilun:['male','qun',4,['stone_shenyou'],['minskin','stone','stonehidden','stonelegend_priest'],[6,6]],
}
},
@@ -1688,7 +1688,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
get:{
rawAttitude:function(from,to){
var num;
- if(to.isMin()&&!to.hasSkill('chaofeng')){
+ if(to.isMin()&&!to.hasSkill('lschaofeng')){
num=5;
}
else{
@@ -5338,14 +5338,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
stoneact:1,
filterTarget:function(card,player,target){
return target.isMin()&&target.side==player.side&&
- (!target.hasSkill('chaofeng')||target.hp