Rewrite!!!

This commit is contained in:
Spmario233 2021-08-03 11:22:43 +08:00
parent 7730af1e12
commit f93527c87a
63 changed files with 1364 additions and 280 deletions

BIN
audio/die/gz_miheng.mp3 Normal file

Binary file not shown.

BIN
audio/die/re_dongcheng.mp3 Normal file

Binary file not shown.

BIN
audio/die/re_guanping.mp3 Normal file

Binary file not shown.

Binary file not shown.

BIN
audio/die/re_hucheer.mp3 Normal file

Binary file not shown.

Binary file not shown.

BIN
audio/die/tangji.mp3 Normal file

Binary file not shown.

BIN
audio/die/yangwan.mp3 Normal file

Binary file not shown.

BIN
audio/die/zhangheng.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dangzai1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dangzai2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/fuzhong1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/fuzhong2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzkuangcai1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzkuangcai2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzshejian1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzshejian2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jielie1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jielie2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jiezhong1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jiezhong2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/kangge1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/kangge2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/liangjue1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/liangjue2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/redaoji1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/redaoji2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/relongyin1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/relongyin2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/xuezhao1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/xuezhao2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/youyan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/youyan2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zhuihuan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zhuihuan2.mp3 Normal file

Binary file not shown.

View File

@ -827,7 +827,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
content:function(){
var next=player.chooseToUse();
next.set('prompt','是否使用【草船借箭】响应'+get.translation(trigger.player)+'使用的'+get.translation(trigger.card)+'');
next.set('filterCard',function(card){
next.set('filterCard',function(card,player){
if(get.name(card)!='caochuan') return false;
return lib.filter.cardEnabled(card,player,'forceEnable');
});

View File

@ -76,6 +76,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_kamome:['female','key',3,['kamome_yangfan','kamome_huanmeng','kamome_jieban']],
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_kyouko:['female','key',3,['kyouko_rongzhu','kyouko_gongmian']],
@ -83,7 +84,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ns_sunchensunjun:['male','wu',5,['nsxianhai','nsxingchu']],
ns_yuanxi:['male','qun',4,['nsshengyan','nsdaizhan']],
ns_caoshuang:['male','wei',4,['nsjiquan','nsfuwei']],
ns_sunyi:['male','wu',4,['nsguolie'],[]],
ns_sunyi:['male','wu',4,['nsguolie']],
ns_huangwudie:['female','shu',4,['nsdiewu','nslingying','nspojian']],
ns_chentai:['male','wei',4,['nsweiyuan','nsjuxian']],
ns_zhangning:['female','qun',3,['nsfuzhou','nsguidao','nstaiping']],
@ -153,7 +154,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
// ns_zhaoyunshen:['male','qun',3,[]],
// ns_lisu:['male','qun',3,[]],
// ns_sunhao:['male','qun',3,[]],
ns_xinnanhua:['male','qun',3,['ns_xiandao','ns_xiuzheng','ns_chuanshu'],[]],
ns_xinnanhua:['male','qun',3,['ns_xiandao','ns_xiuzheng','ns_chuanshu']],
ns_caimao:['male','qun',4,['nsdingzhou']],
ns_luyusheng:['female','wu',3,['nshuaishuang','nsfengli']],
ns_chengpu:['male','wu',4,['decadelihuo','decadechunlao']],
@ -282,6 +283,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_yuuki:'#b4399司命',
key_kyouko:'#b阿阿阿687',
key_tenzen:'#b皋耳击',
key_kotarou:'#bb1154486224',
ns_huangchengyan:'#g竹邀月',
ns_sunchensunjun:'#gVenusjeu',
@ -453,6 +455,163 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_lucia:['key_shizuru'],
},
skill:{
kotarou_aurora:{
trigger:{
player:['damageEnd','loseHpEnd','gainMaxHpEnd']
},
forced:true,
charlotte:true,
filter:function(event,player){
return !player.isDisabled(1);
},
content:function(){
if(player.isEmpty(1)){
var card=get.cardPile2(function(card){
return get.subtype(card)=='equip1'&&!get.cardtag(card,'gifts')&&player.canUse(card,player);
});
if(card) player.chooseUseTarget(card,true);
}
else player.chooseUseTarget('sha',true,false);
},
},
kotarou_rewrite:{
enable:'phaseUse',
charlotte:true,
filter:function(event,player){
return !player.hasSkill('kotarou_rewrite_block');
},
content:function(){
'step 0'
player.getHistory('custom').push({kotarou_rewrite:true});
player.chooseControl().set('choiceList',[
'视为使用一张本局游戏没有以此法使用过的基本牌或普通锦囊牌',
'移动场上的一张牌',
'增加一点体力上限并失去1点体力',
'本回合内下一次造成的伤害+1',
'本回合内下一次回复体力时,额外回复一点体力',
'本回合内手牌上限和【杀】的使用次数+1                         ',
]).set('ai',function(){
var player=_status.event.player;
if(player.hp>2&&player.getUseValue({name:'sha'})>0) return 2;
return 0;
});
'step 1'
lib.skill.kotarou_rewrite.rewrites[result.index](player,event);
if(result.index!=0) event.goto(3);
'step 2'
if(result.bool){
player.storage.kotarou_rewrite.push(result.links[0][2]);
player.chooseUseTarget(true,{name:result.links[0][2],nature:result.links[0][3],isCard:true});
}
'step 3'
if(player.getHistory('custom',function(evt){
return evt&&evt.kotarou_rewrite==true;
}).length>=3) player.addTempSkill('kotarou_rewrite_block');
},
onremove:true,
rewrites:[
function(player,event){
var list=[];
if(!player.storage.kotarou_rewrite) player.storage.kotarou_rewrite=[];
for(var i of lib.inpile){
if(player.storage.kotarou_rewrite.contains(i)) continue;
var type=get.type(i);
if((type=='basic'||type=='trick')) list.push([type,'',i]);
if(i=='sha'){
list.push([type,'',i,'fire']);
list.push([type,'',i,'thunder']);
list.push([type,'',i,'ice']);
}
}
if(list.length){
player.chooseButton(['改写:视为使用一张基本牌或普通锦囊牌',[list,'vcard']],true).set('filterButton',function(button){
return player.hasUseTarget({name:button.link[2],nature:button.link[3],isCard:true},null,true);
}).set('ai',function(button){
return player.getUseValue({name:button.link[2],nature:button.link[3],isCard:true});
});
}
else event._result={bool:false};
},
function(player,event){
player.moveCard(true);
},
function(player,event){
if(player.maxHp<5) player.gainMaxHp();
player.loseHp();
},
function(player,event){
player.addSkill('kotarou_rewrite_damage');
player.addMark('kotarou_rewrite_damage',1,false);
game.log(player,'本回合下次造成的伤害','#y+1');
},
function(player,event){
player.addSkill('kotarou_rewrite_recover');
player.addMark('kotarou_rewrite_recover',1,false);
game.log(player,'本回合下次回复的体力','#y+1');
},
function(player,event){
player.addSkill('kotarou_rewrite_sha');
player.addMark('kotarou_rewrite_sha',1,false);
game.log(player,'本回合的手牌上限和使用【杀】的次数上限','#y+1');
},
],
ai:{
order:4,
result:{
player:function(player){
if(player.getHistory('custom',function(evt){
return evt&&evt.kotarou_rewrite==true;
}).length>=2) return 0;
return 1;
},
}
},
},
kotarou_rewrite_damage:{
onremove:true,
trigger:{source:'damageBegin1'},
forced:true,
content:function(){
trigger.num+=player.countMark('kotarou_rewrite_damage');
player.removeSkill('kotarou_rewrite_damage');
},
charlotte:true,
intro:{content:'下一次造成的伤害+#'},
},
kotarou_rewrite_recover:{
onremove:true,
trigger:{player:'recoverBegin'},
forced:true,
content:function(){
trigger.num+=player.countMark('kotarou_rewrite_recover');
player.removeSkill('kotarou_rewrite_recover');
},
charlotte:true,
intro:{content:'下一次回复的体力+#'},
},
kotarou_rewrite_sha:{
onremove:true,
mod:{
maxHandcard:function(player,num){
return num+player.countMark('kotarou_rewrite_sha');
},
cardUsable:function(card,player,num){
if(card.name=='sha') return num+player.countMark('kotarou_rewrite_sha');
}
},
charlotte:true,
intro:{content:'手牌上限和出杀次数+#'},
},
kotarou_rewrite_block:{
trigger:{player:'phaseEnd'},
forced:true,
charlotte:true,
content:function(){
player.removeSkill('kotarou_rewrite');
player.removeSkill('kotarou_aurora');
if(player.maxHp>3) player.loseMaxHp(player.maxHp-3)
},
},
tenzen_yixing:{
trigger:{
global:'damageEnd',
@ -14989,6 +15148,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tenzen_lingyu_info:'觉醒技准备阶段若你的“兴”不小于你的体力值则你减1点体力上限并获得技能〖天全〗。若你以此法失去了体力则你摸两张牌。',
tenzen_tianquan:'天全',
tenzen_tianquan_info:'每回合限一次,当你使用【杀】或【决斗】指定唯一目标后,你可以移去两张“兴”并展示牌堆顶的五张牌。这些牌中每有一张基本牌,响应此牌需要的【闪】/【杀】的数量便+1。此牌结算完成后若此牌造成过伤害则你获得这些牌中的非基本牌。',
key_kotarou:'天王寺瑚太朗',
kotarou_aurora:'丝刃',
kotarou_aurora_info:'锁定技,当扣减体力或增加体力上限后,若你的装备区内:有武器牌,你视为使用一张【杀】;没有武器牌,你使用牌堆中的一张不为赠物的武器牌。',
kotarou_rewrite:'改写',
kotarou_rewrite_damage:'改写',
kotarou_rewrite_recover:'改写',
kotarou_rewrite_sha:'改写',
kotarou_rewrite_block:'改写',
kotarou_rewrite_info:'出牌阶段你可选择①视为使用一张本局游戏没有以此法使用过的基本牌或普通锦囊牌②移动场上的一张牌③增加一点体力上限并失去1点体力体力上限至多为5④下一次造成的伤害+1⑤下一次回复的体力值+1⑥本回合内的手牌上限和使用【杀】的使用次数+1。若你于本回合内发动过〖改写〗的次数超过两次则你令此技能失效且于回合结束后将体力上限降至3点失去〖丝刃〗和〖改写〗。',
noname:"小无",
noname_zhuyuan:"祝愿",

View File

@ -1659,7 +1659,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
ai:{
effect:{
player:function(card,player){
player_use:function(card,player){
if (get.type(card)=='trick'&&get.value(card)<6){
return [0,-2];
}

View File

@ -13,11 +13,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mobile_sunben:["re_sunben"],
mobile_standard:["xin_xiahoudun","xin_zhangfei"],
mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian","re_dengai","re_jiangwei","re_zhurong"],
mobile_yijiang1:["re_jikang","old_bulianshi","xin_liaohua","xin_caozhang","re_xusheng","xin_chengpu","xin_jianyong","xin_gongsunzan","xin_zhuran","re_lingtong","re_liubiao","xin_guohuai","xin_panzhangmazhong","xin_fuhuanghou","re_handang"],
mobile_yijiang1:["re_jikang","old_bulianshi","xin_liaohua","xin_caozhang","re_xusheng","xin_chengpu","xin_jianyong","xin_gongsunzan","xin_zhuran","re_lingtong","re_liubiao","xin_guohuai","xin_panzhangmazhong","xin_fuhuanghou","re_handang","ol_yujin"],
mobile_sp:["old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","re_heqi","liuzan","xin_hansui"],
},
},
character:{
ol_yujin:['male','wei',4,['rejieyue']],
sp_kongrong:['male','qun',3,['spmingshi','splirang']],
zhouchu:['male','wu',4,['xianghai','chuhai']],
wangfuzhaolei:['male','shu',4,['xunyi']],
@ -70,12 +71,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xin_chengpu:['male','wu',4,['relihuo','chunlao']],
yangyi:['male','shu',3,['duoduan','gongsun']],
dongcheng:['male','qun',4,['chengzhao']],
re_pangtong:['male','shu',3,['xinlianhuan','niepan'],[]],
re_pangtong:['male','shu',3,['xinlianhuan','niepan']],
re_guanqiujian:['male','wei',4,['rezhengrong','rehongju']],
chendeng:['male','qun',3,['zhouxuan','fengji']],
re_heqi:['male','wu',4,['reqizhou','reshanxi']],
yangbiao:['male','qun',3,['zhaohan','rangjie','yizheng']],
re_sp_zhugeliang:["male","shu",3,["bazhen","rehuoji","rekanpo"],[]],
re_sp_zhugeliang:["male","shu",3,["bazhen","rehuoji","rekanpo"]],
xin_xiahoudun:['male','wei',4,['reganglie','xinqingjian']],
zhangyì:['male','shu',4,['rezhiyi']],
jiakui:['male','wei',3,['zhongzuo','wanlan']],
@ -88,14 +89,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
lifeng:['male','shu',3,['tunchu','shuliang']],
zhuling:['male','wei',4,['xinzhanyi']],
liuye:['male','wei',3,['polu','choulve']],
zhaotongzhaoguang:["male","shu",4,["yizan_use","xinfu_longyuan"],[]],
majun:["male","wei",3,["xinfu_jingxie1","qiaosi"],[]],
simazhao:["male","wei",3,["xinfu_daigong","xinfu_zhaoxin"],[]],
wangyuanji:["female","wei",3,["xinfu_qianchong","xinfu_shangjian"],[]],
pangdegong:["male","qun",3,["xinfu_pingcai","xinfu_pdgyingshi"],[]],
zhaotongzhaoguang:["male","shu",4,["yizan_use","xinfu_longyuan"]],
majun:["male","wei",3,["xinfu_jingxie1","qiaosi"]],
simazhao:["male","wei",3,["xinfu_daigong","xinfu_zhaoxin"]],
wangyuanji:["female","wei",3,["xinfu_qianchong","xinfu_shangjian"]],
pangdegong:["male","qun",3,["xinfu_pingcai","xinfu_pdgyingshi"]],
old_yuanshu:['male','qun',4,['xinyongsi','yjixi']],
shenpei:["male","qun","2/3",["shouye","liezhi"],[]],
shenpei:["male","qun","2/3",["shouye","liezhi"]],
re_wangyun:['male','qun',3,['relianji','remoucheng']],
re_baosanniang:['female','shu',3,['meiyong','rexushen','rezhennan']],
@ -352,6 +353,96 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
rejieyue:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
direct:true,
filter:function(event,player){
return player.countCards('he')>0;
},
content:function(){
'step 0'
player.chooseCardTarget({
prompt:get.prompt2('rejieyue'),
filterCard:true,
position:'he',
filterTarget:lib.filter.notMe,
ai1:function(card){
var player=_status.event.player;
if(get.name(card)=='du') return 20;
if(get.position(card)=='e'&&get.value(card)<=0) return 14;
if(get.position(card)=='h'&&game.hasPlayer(function(current){
return current!=player&&get.attitude(player,current)>0&&current.getUseValue(card)>player.getUseValue(card)&&current.getUseValue(card)>player.getUseValue(card);
})) return 12;
if(game.hasPlayer(function(current){
return current!=player&&get.attitude(player,current)>0;
})){
if(card.name=='wuxie') return 11;
if(card.name=='shan'&&player.countCards('h','shan')>1) return 9
}
return 6/Math.max(1,get.value(card));
},
ai2:function(target){
var player=_status.event.player;
var card=ui.selected.cards[0];
var att=get.attitude(player,target);
if(card.name=='du') return -6*att;
if(att>0){
if(get.position(card)=='h'&&target.getUseValue(card)>player.getUseValue(card)) return 4*att;
if(get.value(card,target)>get.value(card,player)) return 2*att;
return 1.2*att;
}
return -att*Math.min(4,target.countCards('he'))/4;
},
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('rejieyue',target);
target.gain(result.cards,player,'giveAuto');
}
else event.finish();
'step 2'
var num=0;
if(target.countCards('h')) num++;
if(target.countCards('e')) num++;
if(num>0){
var next=target.chooseCard('he',num,'选择保留每个区域的各一张牌,然后弃置其余的牌。或点取消,令'+get.translation(player)+'摸三张牌',function(card){
for(var i=0;i<ui.selected.cards.length;i++){
if(get.position(ui.selected.cards[i])==get.position(card)) return false;
}
return true;
});
next.set('complexCard',true);
next.set('goon',get.attitude(target,player)>=0);
next.set('maxNum',num);
next.set('ai',function(card){
if(_status.event.goon) return -1;
var num=_status.event.maxNum;
if(ui.selected.cards.length>=num-1){
var val=get.value(player.getCards('he',function(cardx){
return cardx!=card&&!ui.selected.cards.contains(cardx);
}));
if(val>=14) return 0;
}
return get.value(card);
});
}
else event._result={bool:false};
'step 3'
if(!result.bool) player.draw(3);
else {
var cards=target.getCards('he');
cards.removeArray(result.cards);
if(cards.length) target.discard(cards);
}
},
ai:{
threaten:1.3,
expose:0.2,
},
},
spmingshi:{
audio:2,
trigger:{player:'damageEnd'},
@ -4048,12 +4139,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var list=game.filterPlayer(function(current){
return current.countMark('zhengjian_mark')>0;
});
if(list.length){
if(list.length>1){
event.delay=true;
game.asyncDraw(list,function(target){
return Math.min(5,target.maxHp,target.countMark('zhengjian_mark'));
});
}
else if(list.length==1) list[0].draw(Math.min(5,target.maxHp,target.countMark('zhengjian_mark')));
'step 1'
game.countPlayer(function(current){
current.removeSkill('zhengjian_mark');
@ -8849,14 +8941,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sunshao:['sp_sunshao','sunshao'],
xunchen:['xunchen','sp_xunchen'],
xinpi:['xinpi','sp_xinpi'],
//duyu:['duyu','sp_duyu'],
duyu:['duyu','sp_duyu'],
//bianfuren:['sp_bianfuren','bianfuren'],
},
translate:{
liuzan:'手杀留赞',
re_sp_zhugeliang:"手杀卧龙",
ly_piliche:'霹雳车',
ly_piliche_info:'当你对其他角色造成伤害后,若造成伤害的牌不为延时锦囊牌,你可以弃置其装备区里的防具牌与+1坐骑牌当你失去此装备时销毁之。',
ly_piliche_info:'当你对其他角色造成伤害后,你可以弃置其装备区内的所有牌。',
polu:'破橹',
polu_info:'锁定技,回合开始时,若【霹雳车】未加入游戏或在牌堆/弃牌堆内则你使用之当你受到1点伤害后若你的装备区里没有【霹雳车】则你摸一张牌并使用牌堆中的一张随机武器牌。',
choulve:'筹略',
@ -9100,7 +9192,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rehongju_info:'觉醒技准备阶段若你武将牌上「荣」的数量不小于3且有角色死亡则你摸等同于「荣」数量的牌。然后可以用任意数量的手牌交换等量的「荣」。你减1点体力上限并获得技能〖清侧〗。',
reqingce_info:'出牌阶段,你可以将一张「荣」置入弃牌堆,然后弃置场上的一张牌。',
re_pangtong:"手杀庞统",
dongcheng:'董承',
dongcheng:'手杀董承',
chengzhao:'承诏',
chengzhao_info:'一名角色的结束阶段,若你于本回合内获得了两张以上的牌,则你可以与一名其他角色拼点。若你赢,你视为对其使用一张无视防具的【杀】。',
yangyi:'杨仪',
@ -9361,6 +9453,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
spmingshi_info:'锁定技当你受到1点伤害后伤害来源弃置一张牌。',
splirang:'礼让',
splirang_info:'出牌阶段限一次你可以弃置所有手牌然后将其中的至多X张牌交给一名其他角色X为你的体力值之后摸一张牌。',
ol_yujin:'手杀于禁',
rejieyue:'节钺',
rejieyue_info:'结束阶段开始时,你可以将一张牌交给一名其他角色。然后其选择一项:令你摸三张牌:或其保留一张手牌和装备区的牌,然后弃置其余的牌。',
mobile_standard:'手杀异构·标准包',
mobile_shenhua:'手杀异构·神话再临',

View File

@ -267,6 +267,7 @@ window.noname_character_rank={
'key_iwasawa',
'key_hiroto',
'key_nao',
'key_kotarou',
'mini_zhugeliang',
'mini_lvmeng',
],
@ -474,6 +475,9 @@ window.noname_character_rank={
'zhongyan',
'wangling',
'zhouchu',
'yangwan',
're_dongcheng',
'ol_yujin',
],
bp:[
'chess_diaochan',
@ -684,6 +688,7 @@ window.noname_character_rank={
'key_tenzen',
'jsp_liubei',
'liangxing',
'tangji',
],
b:[
'diy_feishi',
@ -756,7 +761,6 @@ window.noname_character_rank={
'ol_zhangliao',
'shen_lvmeng',
'shen_zhouyu',
'ol_yujin',
'zhanggong',
'weiwenzhugezhi',
'liuhong',
@ -866,6 +870,10 @@ window.noname_character_rank={
'zhangmiao',
'ol_zhurong',
'sp_kongrong',
'sp_mifangfushiren',
'zhangheng',
're_hucheer',
're_guanping',
],
bm:[
'diy_xizhenxihong',
@ -1185,6 +1193,7 @@ window.noname_character_rank={
're_sunben',
'ol_dingyuan',
'wujing',
'yangwan',
'shen_guojia',
'key_tomoya',
'key_masato',
@ -1202,6 +1211,7 @@ window.noname_character_rank={
'key_yuuki',
'key_kyouko',
'key_tenzen',
'key_kotarou',
'noname',
],
epic:[
@ -1682,6 +1692,8 @@ window.noname_character_rank={
'liangxing',
'wangling',
'zhouchu',
'dongcheng',
'tangji',
],
junk:[
'sunshao',

View File

@ -11,13 +11,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
refresh_shan:['ol_jiangwei','re_caiwenji','ol_liushan','re_zhangzhang','re_zuoci','re_sunce','ol_dengai'],
refresh_yijiang1:['re_wuguotai','re_gaoshun','re_caozhi','yujin_yujin','re_masu','xin_xusheng','re_fazheng','xin_lingtong','re_zhangchunhua'],
refresh_yijiang2:['old_madai','wangyi','guanzhang','xin_handang','re_zhonghui','re_liaohua','re_chengpu','re_caozhang','re_bulianshi','xin_liubiao'],
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','re_yufan','re_liru','re_manchong','re_fuhuanghou'],
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','re_yufan','re_liru','re_manchong','re_fuhuanghou','re_guanping'],
refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan','re_caozhen','re_zhoucang','re_chenqun'],
refresh_yijiang5:['re_zhangyi','re_quancong','re_caoxiu','re_sunxiu','re_gongsunyuan','re_guotufengji'],
},
},
connect:true,
character:{
re_guanping:['male','shu',4,['relongyin','jiezhong']],
re_guotufengji:['male','qun',3,['rejigong','shifei']],
re_chenqun:['male','wei',3,['redingpin','refaen']],
re_zhoucang:['male','shu',4,['rezhongyong']],
@ -48,12 +49,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_sunluban:['female','wu',3,['rechanhui','rejiaojin']],
re_zhonghui:['male','wei',4,['requanji','zili']],
xin_handang:['male','wu',4,['xingongji','xinjiefan']],
yujin_yujin:['male','wei',4,['rejieyue']],
yujin_yujin:['male','wei',4,['decadezhenjun']],
re_caozhang:['male','wei',4,['xinjiangchi']],
re_chengpu:['male','wu',4,['ollihuo','rechunlao']],
re_quancong:['male','wu',4,['xinyaoming']],
re_liaohua:['male','shu',4,['xindangxian','xinfuli']],
re_guohuai:['male','wei',4,['xinjingce']],
re_guohuai:['male','wei',4,['decadejingce']],
re_wuyi:['male','shu',4,['xinbenxi']],
re_zhuran:['male','wu',4,['xindanshou']],
re_caozhi:['male','wei',3,['reluoying','rejiushi','chengzhang']],
@ -134,6 +135,170 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_xushu:['zhaoyun','sp_zhugeliang'],
},
skill:{
//界关平
relongyin:{
audio:2,
shaRelated:true,
trigger:{global:'useCard'},
direct:true,
filter:function(event,player){
return event.card.name=='sha'&&player.countCards('he')>0&&event.player.isPhaseUsing();
},
content:function(){
'step 0'
var go=false;
if(get.attitude(player,trigger.player)>0){
if(get.color(trigger.card)=='red'){
go=true;
}
else if(trigger.addCount===false||!trigger.player.isPhaseUsing()) go=false;
else if(!trigger.player.hasSkill('paoxiao')&&
!trigger.player.hasSkill('tanlin3')&&
!trigger.player.hasSkill('zhaxiang2')&&
!trigger.player.hasSkill('fengnu')&&
!trigger.player.getEquip('zhuge')){
var nh=trigger.player.countCards('h');
if(player==trigger.player){
go=(player.countCards('h','sha')>0);
}
else if(nh>=4){
go=true;
}
else if(player.countCards('h','sha')){
if(nh==3){
go=Math.random()<0.8;
}
else if(nh==2){
go=Math.random()<0.5;
}
}
else if(nh>=3){
if(nh==3){
go=Math.random()<0.5;
}
else if(nh==2){
go=Math.random()<0.2;
}
}
}
}
var next=player.chooseToDiscard(get.prompt('longyin'),'弃置一张牌'+(get.color(trigger.card)=='red'?'并摸一张牌':'')+',令'+get.translation(trigger.player)+'本次使用的【杀】不计入使用次数','he');
next.logSkill=['longyin',trigger.player];
next.set('ai',function(card){
if(_status.event.go){
return 6-get.value(card);
}
return 0;
});
next.set('go',go);
'step 1'
if(result.bool){
if(trigger.addCount!==false){
trigger.addCount=false;
trigger.player.getStat().card.sha--;
}
if(get.color(trigger.card)=='red'){
player.draw();
}
if(get.number(result.cards[0])==get.number(trigger.card)) player.restoreSkill('jiezhong');
}
},
ai:{
expose:0.2
}
},
jiezhong:{
trigger:{player:'phaseUseBegin'},
limited:true,
skillAnimation:true,
animationColor:'orange',
filter:function(event,player){
return player.countCards('h')<player.maxHp;
},
content:function(){
player.awakenSkill('jiezhong');
player.draw(Math.min(5,player.maxHp-player.countCards('h')));
},
},
//新郭淮
decadejingce:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
frequent:true,
filter:function(event,player){
return player.getHistory('useCard').length>=player.hp;
},
content:function(){
'step 0'
var list=[],history=player.getHistory('useCard');
for(var i of history){
list.add(get.suit(i.card));
if(list.length>=player.hp) break;
}
if(list.length>=player.hp) event.goon=true;
else player.chooseControl('摸牌阶段','出牌阶段').set('prompt','精策:选择要执行的额外阶段');
'step 1'
if(event.goon||result.index==0){
var next=player.phaseDraw();
event.next.remove(next);
trigger.getParent().next.push(next);
}
if(event.goon||result.index==1){
var next=player.phaseUse();
event.next.remove(next);
trigger.getParent().next.push(next);
}
},
},
//新于禁
decadezhenjun:{
audio:2,
trigger:{
player:['phaseZhunbeiBegin','phaseJieshuBegin']
},
filter:function (event,player){
return game.hasPlayer(function(current){
return current.countCards('he')>0;
});
},
direct:true,
content:function (){
'step 0'
player.chooseTarget(get.prompt2('decadezhenjun')).ai=function(target){
return -get.attitude(_status.event.player,target)*(target.countCards('e')+1);
};
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
var num=Math.max(target.countCards('h')-target.hp,1);
player.logSkill('decadezhenjun',target);
player.discardPlayerCard(num,target,true);
}
'step 2'
if(result.cards&&result.cards.length){
for(var i=0;i<result.cards.length;i++){
if(get.type(result.cards[i])=='equip'){
event.finish();
return;
}
}
event.num=result.cards.length;
if(event.num>0){
var prompt='弃置一张牌,或令'+get.translation(event.target)+'摸'+get.cnNumber(event.num)+'张牌';
player.chooseToDiscard(prompt,'he').ai=function(card){
return 7-get.value(card);
}
}
else event.finish();
}
else event.finish();
'step 3'
if(!result.bool){
event.target.draw(event.num);
}
},
},
//界姜维
oltiaoxin:{
audio:'tiaoxin',
@ -3248,96 +3413,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
noe:true
}
},
rejieyue:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
direct:true,
filter:function(event,player){
return player.countCards('he')>0;
},
content:function(){
'step 0'
player.chooseCardTarget({
prompt:get.prompt2('rejieyue'),
filterCard:true,
position:'he',
filterTarget:lib.filter.notMe,
ai1:function(card){
var player=_status.event.player;
if(get.name(card)=='du') return 20;
if(get.position(card)=='e'&&get.value(card)<=0) return 14;
if(get.position(card)=='h'&&game.hasPlayer(function(current){
return current!=player&&get.attitude(player,current)>0&&current.getUseValue(card)>player.getUseValue(card)&&current.getUseValue(card)>player.getUseValue(card);
})) return 12;
if(game.hasPlayer(function(current){
return current!=player&&get.attitude(player,current)>0;
})){
if(card.name=='wuxie') return 11;
if(card.name=='shan'&&player.countCards('h','shan')>1) return 9
}
return 6/Math.max(1,get.value(card));
},
ai2:function(target){
var player=_status.event.player;
var card=ui.selected.cards[0];
var att=get.attitude(player,target);
if(card.name=='du') return -6*att;
if(att>0){
if(get.position(card)=='h'&&target.getUseValue(card)>player.getUseValue(card)) return 4*att;
if(get.value(card,target)>get.value(card,player)) return 2*att;
return 1.2*att;
}
return -att*Math.min(4,target.countCards('he'))/4;
},
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('rejieyue',target);
target.gain(result.cards,player,'giveAuto');
}
else event.finish();
'step 2'
var num=0;
if(target.countCards('h')) num++;
if(target.countCards('e')) num++;
if(num>0){
var next=target.chooseCard('he',num,'选择保留每个区域的各一张牌,然后弃置其余的牌。或点取消,令'+get.translation(player)+'摸三张牌',function(card){
for(var i=0;i<ui.selected.cards.length;i++){
if(get.position(ui.selected.cards[i])==get.position(card)) return false;
}
return true;
});
next.set('complexCard',true);
next.set('goon',get.attitude(target,player)>=0);
next.set('maxNum',num);
next.set('ai',function(card){
if(_status.event.goon) return -1;
var num=_status.event.maxNum;
if(ui.selected.cards.length>=num-1){
var val=get.value(player.getCards('he',function(cardx){
return cardx!=card&&!ui.selected.cards.contains(cardx);
}));
if(val>=14) return 0;
}
return get.value(card);
});
}
else event._result={bool:false};
'step 3'
if(!result.bool) player.draw(3);
else {
var cards=target.getCards('he');
cards.removeArray(result.cards);
if(cards.length) target.discard(cards);
}
},
ai:{
threaten:1.3,
expose:0.2,
},
},
rechunlao:{
trigger:{player:'phaseUseEnd'},
direct:true,
@ -9397,8 +9472,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rechunlao_info:'出牌阶段结束时若你没有“醇”你可以将至少一张【杀】置于你的武将牌上称为“醇”。当一名角色处于濒死状态时你可以移去一张“醇”视为该角色使用一张【酒】然后若此“醇”的属性为你回复1点体力、雷你摸两张牌。',
re_caozhang:'界曹彰',
yujin_yujin:'界于禁',
rejieyue:'节钺',
rejieyue_info:'结束阶段开始时,你可以将一张牌交给一名其他角色。然后其选择一项:令你摸三张牌:或其保留一张手牌和装备区的牌,然后弃置其余的牌。',
rexuanfeng:'旋风',
rexuanfeng_info:'当你失去装备区内的牌时,或于弃牌阶段弃置了两张或更多的手牌后,你可以依次弃置一至两名其他角色的共计两张牌,或将一名其他角色装备区内的一张牌移动到另一名其他角色的装备区内。',
olpaoxiao:'咆哮',
@ -9560,6 +9633,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
oltiaoxin_info:'出牌阶段限一次,你可以选择一名攻击范围内包含你的角色。然后除非该角色对你使用一张【杀】且此【杀】对你造成伤害,否则你弃置其一张牌,然后将此技能于此出牌阶段内修改为出牌阶段限两次。 ',
olzhiji:'志继',
olzhiji_info:'觉醒技准备阶段或结束阶段若你没有手牌你回复1点体力或摸两张牌然后减1点体力上限获得〖观星〗。',
decadezhenjun:'镇军',
decadezhenjun_info:'准备阶段或结束阶段你可以弃置一名角色X张牌X为其手牌数减体力值且至少为1若其中没有装备牌你选择一项1.你弃一张牌2.该角色摸等量的牌。',
decadejingce:'精策',
decadejingce_info:'结束阶段,若你本回合使用过的牌数不小于你的体力值,则你可执行一个摸牌阶段或出牌阶段;若这些牌包含的花色数也不小于你的体力值,则你将“或”改为“并”。',
re_guanping:'界关平',
relongyin:'龙吟',
relongyin_info:'当一名角色于其出牌阶段使用【杀】时,你可弃置一张牌令此【杀】不计入出牌阶段使用次数。若此【杀】为红色,则你摸一张牌;若你以此法弃置的牌与此【杀】点数相同,则你重置“竭忠”。',
jiezhong:'竭忠',
jiezhong_info:'限定技,出牌阶段开始时,你可以将手牌补至手牌上限(至多摸五张)。',
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',

View File

@ -10,14 +10,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_zhongdan:["cuiyan","huangfusong"],
sp_star:["sp_xiahoushi","jsp_zhaoyun","huangjinleishi","sp_pangtong","sp_daqiao","sp_ganning","sp_xiahoudun","sp_lvmeng","sp_zhangfei","sp_liubei"],
sp_sticker:['sp_gongsunzan','sp_simazhao','sp_wangyuanji','sp_xinxianying','sp_liuxie'],
sp_guozhan:["zangba","shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan","luyusheng"],
sp_guozhan2:["mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","liqueguosi","lvfan","cuimao","jiling","zhangren","zoushi","huaxin","zongyu"],
sp_guozhan:["zangba","shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan","luyusheng","sp_mifangfushiren","huaxin"],
sp_guozhan2:["mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","liqueguosi","lvfan","cuimao","jiling","zhangren","zoushi","zongyu"],
//sp_single:["niujin"],
sp_others:["hanba","caiyang"],
},
},
characterFilter:{},
character:{
sp_mifangfushiren:['male','shu',4,['mffengshi']],
huangchengyan:['male','qun',3,['guanxu','yashi']],
huangzu:['male','qun',4,['wangong']],
panshu:['female','wu',3,['weiyi','jinzhi']],
@ -27,7 +28,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zongyu:['male','shu',3,['zyqiao','chengshang']],
luyusheng:['female','wu',3,['zhente','zhiwei']],
ol_xinxianying:['female','wei',3,['xincaishi','xinzhongjian']],
huaxin:['male','wei',3,['wanggui','xibing']],
huaxin:['male','wei',3,['spwanggui','xibing']],
wolongfengchu:['male','shu',4,['youlong','luanfeng']],
sp_zhangliao:['male','qun',4,['mubing','ziqu','diaoling']],
caoshuang:['male','wei',4,['retuogu','shanzhuan']],
@ -51,7 +52,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
caoying:["female","wei",4,["xinfu_lingren","xinfu_fujian"],[]],
simahui:["male","qun",3,["xinfu_jianjie","xinfu_chenghao","xinfu_yinshi"],[]],
baosanniang:["female","shu",3,["xinfu_wuniang","xinfu_xushen"],[]],
baosanniang:["female","shu",4,["olwuniang","olxushen"],[]],
sp_xiahoushi:["female","shu",3,["xinfu_yanyu","xinfu_xiaode"],[]],
@ -429,6 +430,168 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//OL鲍三娘
olwuniang:{
audio:'xinfu_wuniang',
trigger:{player:'useCardAfter'},
usable:1,
filter:function(event,player){
return event.card.name=='sha'&&event.targets.length==1&&event.targets[0].isAlive();
},
logTarget:'targets',
content:function(){
'step 0'
var target=trigger.targets[0];
target.chooseToUse(function(card,player,event){
if(get.name(card)!='sha') return false;
return lib.filter.filterCard.apply(this,arguments);
},'武娘:是否对'+get.translation(player)+'使用一张杀?').set('targetRequired',true).set('complexSelect',true).set('filterTarget',function(card,player,target){
if(target!=_status.event.sourcex&&!ui.selected.targets.contains(_status.event.sourcex)) return false;
return lib.filter.filterTarget.apply(this,arguments);
}).set('sourcex',player);
'step 1'
player.addTempSkill('olwuniang2');
player.addMark('olwuniang2',1,false);
player.draw();
},
},
olwuniang2:{
onremove:true,
charlotte:true,
mod:{
cardUsable:function(card,player,num){
if(card.name=='sha') return num+player.countMark('olwuniang2');
},
},
},
olxushen:{
derivation:'olzhennan',
audio:'xinfu_xushen',
trigger:{player:'dying'},
limited:true,
skillAnimation:true,
animationColor:'fire',
filter:function(event,player){
return player.hp<1;
},
content:function(){
'step 0'
player.awakenSkill('olxushen');
player.addSkill('olzhennan');
player.recover(1-player.hp);
'step 1'
if(player.isDying()||game.hasPlayer(function(current){
return current.name1=='guansuo'||current.name2=='guansuo';
}));
player.chooseTarget(function(card,player,current){
return current!=player&&current.sex=='male';
},'许身:是否令一名其他男性角色选择是否将其武将牌替换为“关索”?').set('ai',function(target){
return get.attitude(_status.event.player,target)-4;
});
'step 2'
if(!result.bool){
event.finish();
return;
}
var target=result.targets[0];
event.target=target;
player.line(target,'fire');
target.chooseBool('许身:是否将自己的一张武将牌替换为“关索”并令'+get.translation(player)+'');
'step 3'
if(result.bool){
if(target.name2!=undefined){
target.chooseControl(target.name1,target.name2).set('prompt','请选择要更换的武将牌');
}
else event._result={control:target.name1};
}
else event.goto(4);
'step 4'
target.reinit(result.control,'guansuo');
if(_status.characterlist){
_status.characterlist.add(result.control);
_status.characterlist.remove('guansuo');
}
},
},
olzhennan:{
audio:'xinfu_zhennan',
enable:'phaseUse',
usable:1,
viewAs:{name:'nanman'},
filterCard:true,
selectCard:function(){
if(ui.selected.targets.length) return [ui.selected.targets.length,Math.min(ui.selected.targets.length+1,game.players.length-1)];
return [1,Infinity];
},
check:function(card){
var player=_status.event.player;
if(game.countPlayer(function(current){
return current!=player&&player.canUse('nanman',current)&&get.effect(target,{name:'nanman'},player,player)>0;
})<=ui.selected.cards.length) return 0;
return 6-get.value(card);
},
selectTarget:function(){
return ui.selected.cards.length;
},
ai:{
order:2,
},
},
//糜芳傅士仁
mffengshi:{
audio:2,
audioname:['sp_mifangfushiren'],
trigger:{
player:'useCardToPlayered',
target:'useCardToTargeted',
},
direct:true,
filter:function(event,player){
if(event.player==event.target||event.targets.length!=1) return false;
if(player!=event.player&&!player.hasSkill('mffengshi')) return false;
return event.player.countCards('h')>event.target.countCards('h')&&event.target.countCards('he')>0;
},
content:function(){
'step 0'
event.source=trigger.player;
event.target=(player==trigger.target?trigger.player:trigger.target);
var str;
if(player==trigger.player) str='弃置自己的和该角色';
else str='令其弃置其与你的';
trigger.player.chooseBool('是否对'+get.translation(trigger.target)+'发动【锋势】?',str+'的各一张牌,然后令'+get.translation(trigger.card)+'的伤害+1').set('ai',function(){
var player=_status.event.getParent().player;
var target=_status.event.getParent().target;
var viewer=_status.event.player;
if(viewer==player){
if(get.attitude(viewer,target)>=0) return false;
if(player.countCards('he',(card)=>get.value(card,player)<5)) return true;
var card=_status.event.getTrigger().card;
if((get.tag(card,'damage')||target.countCards('he',(card)=>get.value(card,target)>6))&&player.countCards('he',(card)=>get.value(card,player)<7)) return true;
return false;
}
else{
if(get.attitude(viewer,player)>=0) return false;
if(!get.tag(card,'damage')) return false;
if(viewer.countCards('he')>player.countCards('he')) return true;
if(viewer.countCards('he',(card)=>get.value(card,target)>6)) return false;
return true;
}
});
'step 1'
if(result.bool){
if(player==source) player.logSkill('mffengshi',target);
else{
player.logSkill('mffengshi');
source.line(player,'green');
}
if(get.tag(trigger.card,'damage')) trigger.getParent().baseDamage++;
player.chooseToDiscard('he',true);
}
else event.finish();
'step 2'
if(target.countDiscardableCards(player,'he')>0) player.discardPlayerCard(target,'he',true);
},
},
//黄承彦
guanxu:{
enable:'phaseUse',
@ -1467,6 +1630,67 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
//华歆
spwanggui:{
audio:'wanggui',
trigger:{source:'damageSource'},
direct:true,
usable:1,
filter:function(event,player){
return game.hasPlayer(function(current){
return current.group!=player.group;
});
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('spwanggui'),'对一名势力不同的其他角色造成1点伤害',function(card,player,target){
return target.group!=player.group;
}).set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('spwanggui',target);
target.damage();
}
else player.storage.counttrigger.spwanggui--;
},
group:'spwanggui_draw',
subSkill:{
draw:{
trigger:{player:'damageEnd'},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt('spwanggui'),'令自己摸一张牌,或和一名势力相同的其他角色各摸一张牌',function(card,player,target){
return target.group==player.group;
}).set('ai',function(target){
var player=_status.event.player,att=get.attitude(player,target);
if(target!=player) att*=2;
if(target.hasSkillTag('nogain')) att/=1.7;
return att;
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('spwanggui',target);
if(player==target){
player.draw();
event.finish();
}
else{
var list=[player,target].sortBySeat();
game.asyncDraw(list);
}
}
else event.finish();
'step 2'
game.delayx();
},
},
},
},
wanggui:{
audio:2,
trigger:{
@ -1480,14 +1704,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
'step 0'
player.addTempSkill('wanggui2');
var bool;
var guozhan=get.mode()=='guozhan';
if(guozhan) bool=player.isUnseen(2);
else bool=!player._xibing;
var bool=player.isUnseen(2);
if(bool){
player.chooseTarget('望归:是否对一名'+(guozhan?'势力不同的':'其他')+'角色造成1点伤害',guozhan?function(card,player,target){
player.chooseTarget('望归是否对一名势力不同的角色造成1点伤害',function(card,player,target){
return target.isEnemyOf(player);
}:lib.filter.notMe).set('ai',function(target){
}).set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
});
@ -1501,18 +1722,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
event.finish();
'step 2'
if(get.mode()=='guozhan'){
player.chooseBool('望归:是否令所有与自己势力相同的角色各摸一张牌?');
}
else player.chooseTarget('望归:是否令至多三名角色各摸一张牌?',[1,3]).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(target.hasSkill('nogain')&&target!=_status.currentPhase) att/=10;
return att;
});
'step 3'
if(result.bool){
var targets=result.targets;
if(get.mode()=='guozhan') targets=game.filterPlayer(function(current){
var targets=game.filterPlayer(function(current){
return current.isFriendOf(player);
});
targets.sortBySeat();
@ -1536,7 +1749,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!bool(event.card)) return false;
var evt=event.getParent('phaseUse');
if(evt.player!=event.player) return false;
return event.player.getHistory('useCard',function(evtx){
return get.mode()!='guozhan'||event.player.getHistory('useCard',function(evtx){
return bool(evtx.card)&&evtx.getParent('phaseUse')==evt;
})[0]==event.getParent();
},
@ -1794,6 +2007,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
trigger.player.drawTo(6-num);
if(trigger.player.storage.kotarou_rewrite) trigger.player.storage.kotarou_rewrite=[];
if(player==trigger.player) player.storage.youlong2=[];
},
},
@ -16383,8 +16597,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
beimihu:['tw_beimihu','beimihu'],
panfeng:['re_panfeng','panfeng'],
sunluyu:['sunluyu','re_sunluyu'],
simazhao:['simazhao','sp_simazhao'],
wangyuanji:['wangyuanji','sp_wangyuanji'],
jin_simazhao:['jin_simazhao','simazhao','sp_simazhao'],
jin_wangyuanji:['jin_wangyuanji','wangyuanji','sp_wangyuanji'],
wangyun:['re_wangyun','wangyun','old_wangyun'],
zhangliang:['re_zhangliang','zhangliang'],
lingju:['lingju','old_lingju'],
@ -17239,13 +17453,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
youlong:'游龙',
youlong_info:'转换技,阴,每轮限一次,你可以废除你的一个装备栏,视为使用一张未以此法使用过的普通锦囊牌;阳,每轮限一次,你可以废除你的一个装备栏,视为使用一张未以此法使用过的基本牌。',
luanfeng:'鸾凤',
//luanfeng_info_fullinfo:'限定技一名角色进入濒死状态时若其体力上限不小于你你可令其回复至3点体力恢复其被废除的装备栏令其手牌补至6-X张X为以此法恢复的装备栏数量重置其因“改写”使用过的牌名。若该角色是你重置你因“游龙”使用过的牌名。',
luanfeng_info:'限定技一名角色进入濒死状态时若其体力上限不小于你你可令其回复至3点体力恢复其被废除的装备栏令其手牌补至6-X张X为以此法恢复的装备栏数量。若该角色是你重置你因“游龙”使用过的牌名。',
huaxin:'华歆',
wanggui:'望归',
wanggui_info:'每回合限触发一次当你受到或造成伤害后若你本局游戏内未发动过〖息兵〗则你可对一名其他角色造成1点伤害。已发动过〖息兵〗则你可令至多三名角色各摸一张牌。',
wanggui_info_guozhan:'每回合限触发一次当你造成或受到伤害后若你仅明置了此武将牌则你可对与你势力不同的一名角色造成1点伤害武将牌均明置则你可令与你势力相同的角色各摸一张牌。',
wanggui_info:'每回合限触发一次当你造成或受到伤害后若你仅明置了此武将牌则你可对与你势力不同的一名角色造成1点伤害武将牌均明置则你可令与你势力相同的角色各摸一张牌。',
spwanggui:'望归',
spwanggui_info:'①当你受到伤害后你可以摸一张牌或和一名势力相同的其他角色各摸一张牌②每回合限一次当你造成伤害后你可以对一名与你势力不同的角色造成1点伤害。',
xibing:'息兵',
xibing_info:'当一名其他角色在其出牌阶段内使用第一张黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力值(至多摸五张)且本回合不能再使用手牌。',
xibing_info:'当一名其他角色在其出牌阶段内使用黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力值(至多摸五张)且本回合不能再使用手牌。',
xibing_info_guozhan:'当一名其他角色在其出牌阶段内使用第一张黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力(至多摸五张)值且本回合不能再使用手牌。若你与其均明置了所有武将牌,则你可以暗置你与其各一张武将牌且本回合不能再明置此武将牌。',
ol_xinxianying:'辛宪英',
reluanzhan:'乱战',
@ -17309,6 +17525,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
guanxu_info:'出牌阶段限一次你可以观看一名其他角色的手牌然后你可将其中一张手牌与牌堆顶5张牌中的一张交换。若如此做你弃置其手牌中3张花色相同的牌。',
yashi:'雅士',
yashi_info:'当你受到一次伤害后你可选择一项1. 令伤害来源的非锁定技无效直到其下个回合开始2. 对一名其他角色发动〖观虚〗。',
sp_mifangfushiren:'糜芳傅士仁',
mffengshi:'锋势',
mffengshi_info:'当你使用牌指定唯一目标后,或成为其他角色使用牌的唯一目标后,若此牌使用者的手牌数大于此牌目标的手牌数,则此牌的使用者可令你弃置自己和对方的各一张牌,并令此牌的伤害值+1。',
olwuniang:'武娘',
olwuniang_info:'每回合限一次当你于回合内使用的【杀】结算完成后若此【杀】对应的目标数为1则你可以令目标角色选择是否对你使用使用【杀】。你于其选择结算完成后摸一张牌且本回合内使用【杀】的次数上限+1。',
olxushen:'许身',
olxushen_info:'限定技当你进入濒死状态时你可将体力回复至1点并获得技能〖镇南〗。然后若场上没有存活的“关索”则你可以令一名其他男性角色选择是否将一张武将牌替换为“关索”。',
olzhennan:'镇南',
olzhennan_info:'【南蛮入侵】对你无效。出牌阶段限一次,你可以将任意张手牌当做【南蛮入侵】对等量的角色使用。',
sp_default:"常规",
sp_tongque:"铜雀台",

View File

@ -4,6 +4,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
re_hucheer:['male','qun',4,['redaoji','fuzhong']],
re_dongcheng:['male','qun',4,['xuezhao']],
yangwan:['female','shu',3,['youyan','zhuihuan']],
tangji:['female','qun',3,['jielie','kangge']],
zhangheng:['male','qun',8,['dangzai','liangjue']],
jsp_liubei:['male','qun',4,['jsprende']],
duanwei:['male','qun',4,['langmie']],
re_niujin:['male','wei',4,['recuorui','reliewei']],
@ -31,7 +36,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhujun:['male','qun',4,['gongjian','kuimang']],
caoxing:['male','qun',4,['cxliushi','zhanwan']],
re_maliang:['male','shu',3,['rexiemu','heli'],[]],
ol_yujin:['male','wei',4,['rezhenjun']],
caobuxing:['male','wu',3,['moying','juanhui'],[]],
re_sunluyu:['female','wu',3,['remeibu','remumu']],
re_liuzan:['male','wu',4,['refenyin','liji']],
@ -88,7 +92,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
characterSort:{
sp2:{
sp_whlw:["xurong","lijue","zhangji","fanchou","guosi","duanwei","liangxing"],
sp_whlw:["xurong","lijue","zhangji","fanchou","guosi","duanwei","liangxing","zhangheng"],
sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"],
sp_longzhou:["xf_tangzi","xf_huangquan","xf_sufei","sp_liuqi"],
sp_zizouqi:["mangyachang","xugong","zhangchangpu"],
@ -99,7 +103,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_huangjin:['liuhong','zhujun','re_hejin','re_hansui','liubian'],
sp_fadong:['ol_dingyuan','wangrong','re_quyi','hanfu'],
sp_xuzhou:['re_taoqian','caosong','zhangmiao'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_yujin','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','zhaozhong','ruanyu','liangxing','re_niujin'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','zhaozhong','ruanyu','liangxing','re_niujin','tangji','re_dongzhao','re_hucheer','re_dongcheng','yangwan'],
sp_mini:["mini_sunquan","mini_zuoci","mini_jiangwei","mini_diaochan","mini_zhangchunhua"],
sp_luanwu:["ns_lijue","ns_zhangji","ns_fanchou"],
sp_yongjian:["ns_chendao","yj_caoang"],
@ -107,6 +111,463 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
skill:{
//胡车儿
redaoji:{
audio:2,
trigger:{global:'useCard'},
direct:true,
filter:function(event,player){
if(player==event.player||get.subtype(event.card,false)!='equip1'||(event.player.isDead()&&!event.cards.filterInD().length)) return false;
var all=event.player.getAllHistory('useCard');
for(var i of all){
if(get.subtype(i.card,false)=='equip1') return i==event;
}
return false;
},
content:function(){
'step 0'
var list=[];
event.addIndex=0;
if(trigger.cards.filterInD().length>0) list.push('获得'+get.translation(trigger.cards.filterInD()));
else event.addIndex++;
if(trigger.player.isAlive()) list.push('令'+get.translation(trigger.player)+'本回合不能使用或打出【杀】');
player.chooseControl('cancel2').set('choiceList',list).set('prompt',get.prompt('redaoji',trigger.player)).set('ai',function(){
var evt=_status.event.getParent(),player=evt.player,evt2=evt._trigger;
if(evt.addIndex==0){
var noob=get.attitude(player,evt2.player)<0?1:'cancel2';
if(player.countMark('fuzhong')==3) return noob;
if(get.effect(evt2.targets[0],evt2.card,evt2.player,player)<3) return 0;
return noob;
}
return get.attitude(player,evt2.player)<0?0:'cancel2';
});
'step 1'
if(result.control!='cancel2'){
player.logSkill('redaoji',trigger.player);
game.delayx();
if(result.index+event.addIndex==0){
player.gain(trigger.cards.filterInD(),'gain2');
}
else trigger.player.addTempSkill('redaoji2');
}
},
},
redaoji2:{
charlotte:true,
mark:true,
mod:{
cardEnabled:function(card){
if(card.name=='sha') return false;
},
cardRespondable:function(card){
if(card.name=='sha') return false;
},
},
intro:{
content:'本回合不能使用或打出杀',
},
},
fuzhong:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
filter:function(event,player){
return player.countMark('fuzhong')>3;
},
content:function(){
'step 0'
player.chooseTarget(lib.filter.notMe,'对一名其他角色造成1点伤害',true).set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.line(target);
target.damage('nocard');
}
var num=player.countMark('fuzhong');
if(num) player.removeMark('fuzhong',num);
},
marktext:'重',
intro:{content:'mark'},
group:['fuzhong_gain','fuzhong_yingzi'],
mod:{
maxHandcard:function(player,num){
if(player.hasMark('fuzhong')) return num+1;
},
globalFrom:function(player,target,num){
if(player.countMark('fuzhong')>1) return num-1;
}
},
subSkill:{
gain:{
audio:'fuzhong',
trigger:{player:'gainAfter'},
forced:true,
filter:function(event,player){
return player!=_status.currentPhase;
},
content:function(){
player.addMark('fuzhong',1);
},
},
yingzi:{
audio:'fuzhong',
trigger:{player:'phaseDrawBegin2'},
forced:true,
filter:function(event,player){
return !event.numFixed&&player.countMark('fuzhong')>2;
},
content:function(){
trigger.num++;
},
},
},
},
//董承
xuezhao:{
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.hp>0&&player.countCards('h')>0;
},
filterCard:true,
position:'h',
filterTarget:lib.filter.notMe,
selectTarget:function(){
return [1,_status.event.player.hp];
},
check:function(card){
return 2*(_status.event.player.hp+2)-get.value(card);
},
content:function(){
'step 0'
if(!target.countCards('he')) event._result={bool:false};
else target.chooseCard('he','交给'+get.translation(player)+'一张牌并摸一张牌,或不能响应其使用的牌直到回合结束').set('ai',function(card){
var player=_status.event.player,target=_status.event.getParent().player,val=get.value(card);
if(get.attitude(player,target)>0){
if(get.name(card,target)=='sha'&&target.hasValueTarget(card)) return 30-val;
return 20-val;
}
return -val;
});
'step 1'
if(result.bool){
player.addTempSkill('xuezhao_sha');
player.addMark('xuezhao_sha',1,false);
player.gain(result.cards,target,'giveAuto');
target.draw();
}
else{
player.addTempSkill('xuezhao_hit');
player.markAuto('xuezhao_hit',[target]);
}
},
ai:{
threaten:2.4,
order:3.6,
result:{
player:function(player,target){
if(get.attitude(target,player)>0){
if(target.countCards('e',function(card){
return get.value(card,target)<0;
})) return 3;
return Math.sqrt(target.countCards('he'));
}
if(target.mayHaveShan()&&player.countCards('hs',function(card){
return !ui.selected.cards.contains(card)&&get.name(card)=='sha'&&player.canUse(card,target)&&get.effect(target,card,player,player)!=0;
})) return -Math.sqrt(Math.abs(get.attitude(player,target)))/2;
return 0.1;
},
},
},
subSkill:{
sha:{
charlotte:true,
onremove:true,
marktext:'血',
intro:{content:'多杀#刀,誓诛曹贼!'},
mod:{
cardUsable:function(card,player,num){
if(card.name=='sha') return num+player.countMark('xuezhao_sha');
},
},
},
hit:{
charlotte:true,
onremove:true,
marktext:'诏',
intro:{content:'$篡汉,其心可诛!'},
trigger:{player:'useCard1'},
forced:true,
popup:false,
content:function(){
trigger.directHit.addArray(player.getStorage('xuezhao_hit'));
},
ai:{
directHit_ai:true,
skillTagFilter:function(player,tag,arg){
return player.getStorage('xuezhao_hit').contains(arg.target);
},
},
},
},
},
//杨婉
youyan:{
audio:2,
trigger:{player:'loseAfter'},
usable:1,
filter:function(event,player){
if(event.type!='discard'||!event.cards2||!event.cards2.length||player!=_status.currentPhase) return false;
var list=[];
for(var i of event.cards2){
list.add(get.suit(i,player));
if(list.length>=lib.suit.length) return false;
}
return true;
},
content:function(){
var list=[],cards=[];
for(var i of trigger.cards2){
list.add(get.suit(i,player));
}
for(var i of lib.suit){
if(list.contains(i)) continue;
var card=get.cardPile2(function(card){
return get.suit(card,false)==i;
})
if(card) cards.push(card);
}
if(cards.length) player.gain(cards,'gain2');
},
ai:{
effect:{
player_use:function(card,player,target){
if(typeof card=='object'&&player==_status.currentPhase&&
(!player.storage.counttrigger||!player.storage.counttrigger.youyan)&&
player.needsToDiscard()==1&&card.cards&&card.cards.filter(function(i){
return get.position(i)=='h';
}).length>0&&!get.tag(card,'draw')&&!get.tag(card,'gain')) return 'zeroplayertarget';
},
},
},
},
zhuihuan:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
direct:true,
filter:function(event,player){
return game.hasPlayer(function(current){
return !current.hasSkill('zhuihuan2');
});
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('zhuihuan'),'令一名角色获得“追还”效果',function(card,player,target){
return !target.hasSkill('zhuihuan2');
}).set('ai',function(target){
var player=_status.event.player,att=get.attitude(player,target);
if(target.hasSkill('maixie')||target.hasSkill('maixie_defend')) att/=3;
if(target!=player) att/=Math.pow(game.players.length-get.distance(player,target,'absolute'),0.7);
return att;
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('zhuihuan',target);
target.addTempSkill('zhuihuan2',{player:'phaseZhunbeiBegin'});
game.delayx();
}
},
},
zhuihuan2:{
trigger:{player:'damageEnd'},
forced:true,
charlotte:true,
logTarget:'source',
filter:function(event,player){
var source=event.source;
if(source.hp>player.hp) return true;
return source.countCards('h')>0;
},
content:function(){
if(player.hp<trigger.source.hp) trigger.source.damage();
else trigger.source.discard(trigger.source.getCards('h').randomGet());
},
mark:true,
intro:{content:'当你受到伤害后若伤害来源体力值大于你则你对其造成1点伤害否则其随机弃置一张手牌'},
},
//唐姬
jielie:{
audio:2,
trigger:{player:'phaseBegin'},
direct:true,
filter:function(event,player){
return player.phaseNumber==1&&!player.storage.jielie;
},
content:function(){
'step 0'
player.chooseTarget('请选择【节烈】的目标','其于回合外摸牌后你摸等量的牌其进入濒死状态时你可令其回复体力至1点其死亡后你弃置所有牌并失去1点体力',lib.filter.notMe,true).set('ai',function(target){
return get.attitude(_status.event.player,target)>0;
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('jielie',target);
player.storage.jielie=target;
player.markSkill('jielie');
game.delayx();
}
},
intro:{content:'已指定$为目标'},
group:['jielie_draw','jielie_dying','jielie_die'],
subSkill:{
draw:{
audio:'jielie',
trigger:{global:'gainAfter'},
forced:true,
usable:1,
filter:function(event,player){
return event.player==player.storage.jielie&&event.player!=_status.currentPhase&&event.getParent().name=='draw'&&event.cards&&event.cards.length>0;
},
logTarget:'player',
content:function(){
player.draw(Math.min(3,trigger.cards.length));
},
},
dying:{
audio:'jielie',
trigger:{global:'dying'},
logTarget:'player',
filter:function(event,player){
return event.player==player.storage.jielie&&event.player.hp<1&&!player.hasSkill('jielie_temp');
},
check:function(event,player){
return get.attitude(player,event.player)>0;
},
content:function(){
trigger.player.recover(1-player.hp);
player.addTempSkill('jielie_temp','roundStart');
},
},
temp:{},
die:{
audio:'jielie',
trigger:{global:'dieAfter'},
filter:function(event,player){
return event.player==player.storage.jielie;
},
content:function(){
var cards=player.getCards('he');
if(cards.length) player.discard(cards);
player.loseHp();
},
},
},
ai:{
threaten:2,
},
},
kangge:{
audio:2,
trigger:{player:'damageBegin2'},
direct:true,
filter:function(event,player){
return event.source!=player&&event.source!=player.storage.jielie;
},
content:function(){
'step 0'
player.chooseControl(lib.suit.slice(0),'cancel2').set('prompt',get.prompt('kangge')).set('prompt2','防止伤害并改为失去等量体力,且从牌堆中获得等量的花色牌').set('ai',function(){
return lib.suit.randomGet();
});
'step 1'
if(result.control!='cancel2'){
event.suit=result.control;
player.logSkill('kangge');
trigger.cancel();
player.loseHp();
}
else event.finish();
'step 2'
var cards=[];
while(cards.length<trigger.num){
var card=get.discardPile(function(card){
return get.suit(card,false)==event.suit&&!cards.contains(card)
});
if(card) cards.push(card);
else break;
}
if(cards.length) player.gain(cards,'gain2');
},
},
//张横
dangzai:{
trigger:{player:'phaseUseBegin'},
direct:true,
filter:function(event,player){
return !player.storage._disableJudge&&game.hasPlayer(function(current){
return current!=player&&current.countCards('j',function(card){
return player.canAddJudge(card);
})>0;
})
},
content:function(){
'step 0'
player.chooseTarget(function(card,player,current){
return target!=player&&target.countCards('j',function(card){
return player.canAddJudge(card);
})>0;
},get.prompt('dangzai'),'将一名其他角色判定区内的一张牌移动到你的判定区内');
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('dangzai',target);
player.choosePlayerCard(target,'j',true).set('filterButton',function(button){
return _status.event.player.canAddJudge(button.link);
})
}
else event.finish();
'step 2'
if(result.bool&&result.cards&&result.cards.length){
target.$give(result.cards[0],player);
game.delayx();
player.addJudge(result.cards[0]);
}
},
},
liangjue:{
trigger:{
player:'loseAfter',
global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter'],
},
forced:true,
charlotte:true,
onremove:true,
filter:function(event,player){
if(player.hp<=1) return false;
if(event.player==player){
if(event.name=='equip'&&get.color(event.card,player)=='black') return true;
if(event.name=='addJudge'&&get.color(event.cards[0],player)=='black') return true;
}
var evt=event.getl(player);
if(!evt||!evt.es||!evt.js||!evt.es.length&&!evt.js.length) return false;
for(var i of evt.es){
if(get.color(i,player)=='black') return true;
}
for(var i of evt.js){
if(get.color(i,player)=='black') return true;
}
return false;
},
content:function(){
player.loseHp();
player.draw();
},
},
//群刘备
jsprende:{
audio:'rerende',
enable:'phaseUse',
@ -3017,7 +3478,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 2'
if(result.bool){
if(target.name2!=undefined){
target.chooseControl(target.name,target.name2).set('prompt','请选择要更换的武将牌');
target.chooseControl(target.name1,target.name2).set('prompt','请选择要更换的武将牌');
}
else event._result={control:target.name};
}
@ -8667,6 +9128,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liangxing:'梁兴(?-212年武威郡姑臧人也东汉末年凉州军阀之一。与张横、贾诩、段煨是同乡曾斩杀李傕。建安十六年同韩遂、马超联合起兵反抗曹操。梁兴率步骑五千夜袭曹军先头部队徐晃被击退。联军战败后梁兴逃到蓝田劫掠周围郡县。夏侯渊进攻蓝田联合郑浑征讨梁兴梁兴战败不知所终。',
zhangmiao:'张邈195年字孟卓东平寿张今山东东平县人。东汉大臣、名士“八厨”之一。举孝廉出身授骑都尉出任陈留太守。参与讨伐董卓参加汴水之战归附于曹操。兴平元年194年趁着曹操讨伐徐州牧陶谦联合陈宫发动叛乱迎立吕布为兖州牧。受到曹操讨伐兵败投奔徐州牧刘备。兴平二年张邈向袁术借兵途中被部下所杀。',
duanwei:'段煨209年字忠明武威郡姑臧今甘肃省武威市人也。东汉末年将领东汉太尉段颎同族兄弟与太尉贾诩、张济、宣威侯张绣乃是同乡。原为董卓帐下将领奉命屯兵华阴勤劳农业。兴平二年195年迎接汉献帝刘协东归洛阳供给衣食补给与护驾将领杨定不和引发激战十余天听从汉献帝刘协劝解。东汉建安三年198年攻打黄白城击杀李傕夷其三族封为镇远将军、闅乡亭侯、北地太守累迁大鸿胪、金光禄大夫。建安十四年209年寿终正寝。',
zhangheng:'张横生卒年不详武威郡姑臧人东汉末年凉州军阀之一。与梁兴、贾诩、段煨乃是同乡。建安三年198张横与梁兴、段煨等斩杀李傕。十六年211同韩遂、马超联合起兵反抗曹操兵败后不知所终。',
tangji:'唐姬,会稽太守唐瑁女,弘农怀王刘辩的妃子。刘辩死后,唐姬回归故里,因节烈不愿改嫁他人,后被汉献帝下诏封为弘农王妃。',
yangwan:'杨氏婉字出自小说史书无记载生卒年不详东汉末年凉州人。早年嫁于东汉前将军、槐里侯马腾之子马超追随马超转战并州、雍州、凉州为马超生下子嗣。公元212年马超联军在渭南战败后杨婉随马超逃亡凉州很快马超反攻吞并陇上诸郡县。公元213年杨婉为了帮助马超结识王异了解马超这些投降部下。可惜被王异蛊惑遭致马超大败。自己和孩子都被赵衢、梁宽杀害。',
},
characterTitle:{
wulan:'#b对决限定武将',
@ -8729,11 +9193,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dingyuan:['ol_dingyuan','dingyuan'],
quyi:['quyi','re_quyi'],
hansui:['xin_hansui','re_hansui'],
//jin_simashi:['jin_simashi','simashi'],
//jin_yanghuiyu:['jin_yanghuiyu','yanghuiyu'],
jin_simashi:['jin_simashi','simashi'],
jin_yanghuiyu:['jin_yanghuiyu','yanghuiyu'],
chunyuqiong:['chunyuqiong','re_chunyuqiong'],
taoqian:['taoqian','re_taoqian'],
sp_liubei:['sp_liubei','jsp_liubei'],
dongcheng:['re_dongcheng','dongcheng'],
hucheer:['re_hucheer','hucheer'],
},
translate:{
lijue:"李傕",
@ -9005,7 +9471,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
juanhui2:'绢绘',
juanhui2_backup:'绢绘',
juanhui_info:'结束阶段,你可以选择一名其他角色。记录该角色下回合的出牌阶段里使用的基本牌和普通锦囊牌(每种牌名限记一次),你的下回合出牌阶段,可将一张手牌当这些牌里的任意一张牌使用(每张限使用一次,且【杀】不计次数)。当"绢绘"的牌全部用完时你回复1点体力并将手牌摸至三张。',
ol_yujin:'OL于禁',
re_maliang:'马良',
rexiemu:'协穆',
rexiemu_info:'结束阶段,若全场没有“协穆”标记,你可以选择一名角色获得“协穆”标记直到你的下回合开始。你或该角色在各自的回合外使用或打出手牌时,你与其各摸一张牌(每回合限一次)。',
@ -9218,6 +9683,31 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jsp_liubei_ab:'刘备',
jsprende:'仁德',
jsprende_info:'出牌阶段,你可以将至少一张手牌交给其他角色;若你于此阶段内给出的牌首次达到两张,你可以视为使用一张基本牌',
zhangheng:'张横',
dangzai:'挡灾',
dangzai_info:'出牌阶段开始时,你可将一名其他角色判定区内的一张牌移动至你的判定区内。',
liangjue:'粮绝',
liangjue_info:'锁定技当有黑色牌进入或者离开你的判定区或装备区后若你的体力值大于1你失去1点体力然后摸一张牌。',
tangji:'唐姬',
jielie:'节烈',
jielie_info:'你的第一个回合开始时选择一名其他角色该角色每次于其回合外摸牌时你摸等量的牌其进入濒死状态时你可令其回复体力至1点每回合限一次。该角色死亡时你弃置所有牌并失去1点体力。',
kangge:'抗歌',
kangge_info:'当你受到除自己和“节烈”角色以外的角色造成的伤害时你可以防止此伤害并选择一种花色然后你失去X点体力从弃牌堆中随机获得X张此花色的牌X为伤害值。',
yangwan:'杨婉',
youyan:'诱言',
youyan_info:'你的回合内限一次,当你的牌因弃置进入弃牌堆后,你可以从牌堆中获得本次弃牌中没有的花色的牌各一张。',
zhuihuan:'追还',
zhuihuan2:'追还',
zhuihuan_info:'结束阶段你可以选择一名角色直到该角色的下个准备阶段此期间内对其造成过伤害的角色若体力值大于该角色则受到其造成的1点伤害若体力值小于等于该角色则随机弃置一张手牌。',
re_dongcheng:'董承',
xuezhao:'血诏',
xuezhao_info:'出牌阶段限一次你可弃置一张手牌并选择至多X名其他角色(X为你的体力值。这些角色依次选择是否交给你一张牌若选择是该角色摸一张牌且你本回合可多使用一张【杀】若选择否该角色本回合无法响应你使用的牌。',
re_hucheer:'胡车儿',
redaoji:'盗戟',
redaoji2:'盗戟',
redaoji_info:'其他角色第一次使用武器牌时,你可选择一项:①获得此牌。②令其本回合内不能使用或打出【杀】。',
fuzhong:'负重',
fuzhong_info:'锁定技当你于回合外获得牌后你获得一枚“重”标记。若X大于0你的手牌上限+1大于1你至其他角色的距离-1大于2你于摸牌阶段开始时令额定摸牌数+1大于3准备阶段你对一名其他角色造成1点伤害然后移去X枚“重”X为“重”数。',
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",

View File

@ -3757,17 +3757,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return event.type!='wuxie'&&event.type!='respondShan'&&!player.hasSkill('taoluan3')&&player.countCards('hes')>0;//&&!_status.dying.length;
},
hiddenCard:function(player,name){
return (!player.storage.taoluan.contains(name)&&player.countCards('hes')>0&&!player.hasSkill('taoluan3')&&lib.inpile.contains(name));
return (!player.getStorage('taoluan').contains(name)&&player.countCards('hes')>0&&!player.hasSkill('taoluan3')&&lib.inpile.contains(name));
},
init:function(player){
if(!player.storage.taoluan) player.storage.taoluan=[];
},
onremove:true,
chooseButton:{
dialog:function(event,player){
var list=[];
for(var i=0;i<lib.inpile.length;i++){
var name=lib.inpile[i];
if(player.storage.taoluan.contains(name)) continue;
if(player.storage.taoluan&&player.storage.taoluan.contains(name)) continue;
if(name=='sha'){
list.push(['基本','','sha']);
list.push(['基本','','sha','fire']);
@ -3892,7 +3893,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
prompt:'将一张牌当做闪使用',
enable:'chooseToUse',
filter:function(event,player){
return !player.storage.taoluan.contains('shan')&&!player.hasSkill('taoluan3')&&player.countCards('hes');//&&!_status.dying.length;
return !player.getStorage('taoluan').contains('shan')&&!player.hasSkill('taoluan3')&&player.countCards('hes');//&&!_status.dying.length;
},
onuse:function(result,player){
player.storage.taoluan.add('shan');
@ -3903,7 +3904,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
viewAs:{name:'shan'},
ai:{
skillTagFilter:function(player){
return player.countCards('hes')&&!player.storage.taoluan.contains('shan')&&!player.hasSkill('taoluan3');
return player.countCards('hes')&&!player.getStorage('taoluan').contains('shan')&&!player.hasSkill('taoluan3');
},
threaten:1.5,
respondShan:true,
@ -3914,7 +3915,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:'chooseToUse',
prompt:'将一张牌当做无懈可击使用',
viewAsFilter:function(player){
return !player.storage.taoluan.contains('wuxie')&&!player.hasSkill('taoluan3')&&player.countCards('hes');
return !player.getStorage('taoluan').contains('wuxie')&&!player.hasSkill('taoluan3')&&player.countCards('hes');
},
onuse:function(result,player){
player.storage.taoluan.add('wuxie');

View File

@ -2110,7 +2110,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shenpin_info:'当一名角色的判定牌生效前,你可以打出一张与判定牌颜色不同的牌代替之。',
zhongyan:'钟琰',
bolan:'博览',
bolan_info:'出牌阶段开始时,你可从三个描述中包含“出牌阶段限一次”的技能中选择一个获得直到此阶段结束;其他角色的出牌阶段限一次其可以失去1点体力令你从三个描述中包含“出牌阶段限一次”的技能中选择一个其获得此技能直到此阶段结束。',
bolan_info:'出牌阶段开始时,你可从三个描述中包含“出牌阶段限一次”的技能中选择一个获得直到此阶段结束;其他角色的出牌阶段开始时其可以失去1点体力令你从三个描述中包含“出牌阶段限一次”的技能中选择一个其获得此技能直到此阶段结束。',
yifa:'仪法',
yifa2:'仪法',
yifa_info:'锁定技,其他角色使用【杀】或黑色普通锦囊牌指定你为目标后,其手牌上限-1直到回合结束。',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.110.8.2',
'v1.9.110.8.3',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -737,6 +737,15 @@ window.noname_asset_list=[
'audio/die/wangling.mp3',
'audio/die/zhouchu.mp3',
'audio/die/zhouqun.mp3',
'audio/die/gz_miheng.mp3',
'audio/die/re_dongcheng.mp3',
'audio/die/re_guanping.mp3',
'audio/die/re_guohuai.mp3',
'audio/die/re_hucheer.mp3',
'audio/die/sp_mifangfushiren.mp3',
'audio/die/tangji.mp3',
'audio/die/yangwan.mp3',
'audio/die/zhangheng.mp3',
'audio/skill/decadezishou1.mp3',
'audio/skill/decadezishou2.mp3',
@ -3227,36 +3236,68 @@ window.noname_asset_list=[
'audio/skill/rejigong2.mp3',
'audio/skill/shifei_re_guotufengji1.mp3',
'audio/skill/shifei_re_guotufengji2.mp3',
'audio/die/chuhai1.mp3',
'audio/die/chuhai2.mp3',
'audio/die/langmie1.mp3',
'audio/die/langmie2.mp3',
'audio/die/lulve1.mp3',
'audio/die/lulve2.mp3',
'audio/die/lxzhuixi1.mp3',
'audio/die/lxzhuixi2.mp3',
'audio/die/mouli1.mp3',
'audio/die/mouli2.mp3',
'audio/die/sghuishi1.mp3',
'audio/die/sghuishi2.mp3',
'audio/die/shuishi1.mp3',
'audio/die/shuishi2.mp3',
'audio/die/splirang1.mp3',
'audio/die/splirang2.mp3',
'audio/die/spmingshi1.mp3',
'audio/die/spmingshi2.mp3',
'audio/die/stianyi1.mp3',
'audio/die/stianyi2.mp3',
'audio/die/tiansuan1.mp3',
'audio/die/tiansuan2.mp3',
'audio/die/xianghai1.mp3',
'audio/die/xianghai2.mp3',
'audio/die/xunyi1.mp3',
'audio/die/xunyi2.mp3',
'audio/die/zifu1.mp3',
'audio/die/zifu2.mp3',
'audio/die/zuoxing1.mp3',
'audio/die/zuoxing2.mp3',
'audio/skill/chuhai1.mp3',
'audio/skill/chuhai2.mp3',
'audio/skill/langmie1.mp3',
'audio/skill/langmie2.mp3',
'audio/skill/lulve1.mp3',
'audio/skill/lulve2.mp3',
'audio/skill/lxzhuixi1.mp3',
'audio/skill/lxzhuixi2.mp3',
'audio/skill/mouli1.mp3',
'audio/skill/mouli2.mp3',
'audio/skill/sghuishi1.mp3',
'audio/skill/sghuishi2.mp3',
'audio/skill/shuishi1.mp3',
'audio/skill/shuishi2.mp3',
'audio/skill/splirang1.mp3',
'audio/skill/splirang2.mp3',
'audio/skill/spmingshi1.mp3',
'audio/skill/spmingshi2.mp3',
'audio/skill/stianyi1.mp3',
'audio/skill/stianyi2.mp3',
'audio/skill/tiansuan1.mp3',
'audio/skill/tiansuan2.mp3',
'audio/skill/xianghai1.mp3',
'audio/skill/xianghai2.mp3',
'audio/skill/xunyi1.mp3',
'audio/skill/xunyi2.mp3',
'audio/skill/zifu1.mp3',
'audio/skill/zifu2.mp3',
'audio/skill/zuoxing1.mp3',
'audio/skill/zuoxing2.mp3',
'audio/skill/dangzai1.mp3',
'audio/skill/dangzai2.mp3',
'audio/skill/decadejingce1.mp3',
'audio/skill/decadejingce2.mp3',
'audio/skill/decadezhenjun1.mp3',
'audio/skill/decadezhenjun2.mp3',
'audio/skill/fuzhong1.mp3',
'audio/skill/fuzhong2.mp3',
'audio/skill/gzkuangcai1.mp3',
'audio/skill/gzkuangcai2.mp3',
'audio/skill/gzshejian1.mp3',
'audio/skill/gzshejian2.mp3',
'audio/skill/jielie1.mp3',
'audio/skill/jielie2.mp3',
'audio/skill/jiezhong1.mp3',
'audio/skill/jiezhong2.mp3',
'audio/skill/kangge1.mp3',
'audio/skill/kangge2.mp3',
'audio/skill/liangjue1.mp3',
'audio/skill/liangjue2.mp3',
'audio/skill/mffengshi_sp_mifangfushiren1.mp3',
'audio/skill/mffengshi_sp_mifangfushiren2.mp3',
'audio/skill/redaoji1.mp3',
'audio/skill/redaoji2.mp3',
'audio/skill/relongyin1.mp3',
'audio/skill/relongyin2.mp3',
'audio/skill/xuezhao1.mp3',
'audio/skill/xuezhao2.mp3',
'audio/skill/youyan1.mp3',
'audio/skill/youyan2.mp3',
'audio/skill/zhuihuan1.mp3',
'audio/skill/zhuihuan2.mp3',
'audio/voice/male/0.mp3',
'audio/voice/male/1.mp3',
@ -4127,6 +4168,14 @@ window.noname_asset_list=[
'image/character/wangling.jpg',
'image/character/zhouchu.jpg',
'image/character/zhouqun.jpg',
'image/character/key_kotarou.jpg',
'image/character/re_dongcheng.jpg',
'image/character/re_guanping.jpg',
'image/character/re_hucheer.jpg',
'image/character/sp_mifangfushiren.jpg',
'image/character/tangji.jpg',
'image/character/yangwan.jpg',
'image/character/zhangheng.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -7382,10 +7382,12 @@
}
};
window.onerror=function(msg, src, line, column, err){
var str=msg + '\n' + _status.event.name + ': ' + _status.event.step;
str+='\n'+_status.event.parent.name+': '+_status.event.parent.step;
str+='\n'+_status.event.parent.parent.name+': '+_status.event.parent.parent.step;
var str=msg;
if(window._status&&_status.event){
var evt=_status.event;
str+=('\n'+evt.name+': '+evt.step);
if(evt.parent) str+='\n'+evt.parent.name+': '+evt.parent.step;
if(evt.parent&&evt.parent.parent) str+='\n'+evt.parent.parent.name+': '+evt.parent.parent.step;
if(evt.player||evt.target||evt.source||evt.skill||evt.card){
str+='\n-------------'
}
@ -7404,10 +7406,11 @@
if(evt.card){
str+='\ncard: ' + evt.card.name;
}
}
str+='\n-------------';
str+='\n'+line;
str+='\n'+column;
str+='\n'+err.stack;
if(err&&err.stack) str+='\n'+err.stack;
alert(str);
window.ea=Array.from(arguments);
window.em=msg;
@ -52897,7 +52900,10 @@
var zerotarget=false,zeroplayer=false;
for(var i=0;i<skills1.length;i++){
temp1=get.info(skills1[i]).ai;
if(temp1&&typeof temp1.effect=='object'&&typeof temp1.effect.player=='function'){
if(temp1&&typeof temp1.effect=='object'&&typeof temp1.effect.player_use=='function'){
temp1=temp1.effect.player_use(card,player,target,result1,isLink);
}
else if(temp1&&typeof temp1.effect=='object'&&typeof temp1.effect.player=='function'){
temp1=temp1.effect.player(card,player,target,result1,isLink);
}
else temp1=undefined;
@ -52941,6 +52947,15 @@
})) temp2=temp2.effect(card,player,target,result2,isLink);
else temp2=undefined;
}
else if(temp2&&typeof temp2.effect=='object'&&typeof temp2.effect.target_use=='function'){
if(!player.hasSkillTag('ignoreSkill',true,{
card:card,
target:target,
skill:skills2[i],
isLink:isLink,
})) temp2=temp2.effect.target_use(card,player,target,result2,isLink);
else temp2=undefined;
}
else if(temp2&&typeof temp2.effect=='object'&&typeof temp2.effect.target=='function'){
if(!player.hasSkillTag('ignoreSkill',true,{
card:card,

View File

@ -1,27 +1,28 @@
window.noname_update={
version:'1.9.110.8.2',
update:'1.9.110.8.1',
version:'1.9.110.8.3',
update:'1.9.110.8.2',
changeLog:[
'梁兴、群刘备、孔融、王甫赵累、王凌、周处、周群',
'应变牌堆调整',
'天王寺瑚太朗',
'界于禁、界郭淮、界关平',
'华歆、糜芳傅士仁、董承、胡车儿、唐姬、杨婉、张横',
'bug修复',
],
files:[
'card/extra.js',
//'card/extra.js',
//'card/gujian.js',
'card/guozhan.js',
//'card/guozhan.js',
//'card/gwent.js',
//'card/huanlekapai.js',
//'card/mtg.js',
//'card/sp.js',
'card/standard.js',
//'card/standard.js',
//'card/swd.js',
//'card/yunchou.js',
'card/yingbian.js',
//'card/yingbian.js',
//'card/zhenfa.js',
//'card/zhulu.js',
'card/zhulu.js',
'character/diy.js',
//'character/extra.js',
'character/extra.js',
//'character/hearth.js',
//'character/gujian.js',
//'character/gwent.js',
@ -41,7 +42,7 @@ window.noname_update={
//'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
'character/yingbian.js',
//'character/yijiang.js',
'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
//'layout/default/layout.css',
@ -50,13 +51,13 @@ window.noname_update={
//'mode/boss.js',
//'mode/brawl.js',
//'mode/chess.js',
'mode/doudizhu.js',
//'mode/guozhan.js',
//'mode/doudizhu.js',
'mode/guozhan.js',
//'mode/identity.js',
//'mode/single.js',
//'mode/stone.js',
//'mode/tafang.js',
'mode/versus.js',
//'mode/versus.js',
'game/game.js',
//'game/keyWords.js',
//'game/NoSleep.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 651 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

BIN
image/character/tangji.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

BIN
image/character/yangwan.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

View File

@ -350,7 +350,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
guozhan_bian:["gz_liqueguosi","gz_zuoci","gz_bianfuren","gz_xunyou","gz_lingtong","gz_lvfan","gz_masu","gz_shamoke",],
guozhan_quan:["gz_cuimao","gz_yujin","gz_wangping","gz_fazheng","gz_wuguotai","gz_lukang","gz_yuanshu","gz_zhangxiu"],
guozhan_jun:["gz_jun_caocao","gz_jun_sunquan","gz_jun_liubei","gz_jun_zhangjiao"],
guozhan_jin:['gz_jin_simayi','gz_jin_simazhao','gz_jin_simashi','gz_jin_zhangchunhua','gz_jin_wangyuanji','gz_jin_xiahouhui','gz_duyu','gz_zhanghuyuechen','gz_jin_yanghuiyu','gz_simazhou','gz_shibao','gz_weiguan'],
guozhan_jin:['gz_jin_simayi','gz_jin_simazhao','gz_jin_simashi','gz_jin_zhangchunhua','gz_jin_wangyuanji','gz_jin_xiahouhui','gz_duyu','gz_zhanghuyuechen','gz_jin_yanghuiyu','gz_simazhou','gz_shibao','gz_weiguan','gz_zhongyan'],
guozhan_single:['gz_re_xushu','gz_yanbaihu','gz_wujing','gz_dongzhao'],
guozhan_double:['gz_tangzi','gz_liuqi','gz_mengda','gz_mifangfushiren','gz_zhanglu','gz_shixie'],
guozhan_yexinjia:['gz_zhonghui'],
@ -915,7 +915,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
gzrekuangcai:{
audio:'kuangcai',
audio:'gzkuangcai',
forced:true,
trigger:{player:'phaseDiscardBegin'},
filter:function(event,player){
@ -944,7 +944,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
gzkuangcai:{
audio:'kuangcai',
audio:2,
trigger:{player:'useCard1'},
forced:true,
firstDo:true,
@ -972,7 +972,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
group:'gzkuangcai_discard',
subSkill:{
discard:{
audio:'kuangcai',
audio:'gzkuangcai',
trigger:{player:'phaseDiscardBegin'},
forced:true,
filter:function(event,player){
@ -1017,7 +1017,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
gzshejian:{
audio:'shejian',
audio:2,
trigger:{target:'useCardToTargeted'},
filter:function(event,player){
if(player==event.player||event.targets.length!=1) return false;
@ -1827,59 +1827,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},
},
mffengshi:{
audio:2,
trigger:{
player:'useCardToPlayered',
target:'useCardToTargeted',
},
direct:true,
filter:function(event,player){
if(event.player==event.target||event.targets.length!=1) return false;
if(player!=event.player&&!player.hasSkill('mffengshi')) return false;
return event.player.countCards('h')>event.target.countCards('h')&&event.target.countCards('he')>0;
},
content:function(){
'step 0'
event.source=trigger.player;
event.target=(player==trigger.target?trigger.player:trigger.target);
var str;
if(player==trigger.player) str='弃置自己的和该角色';
else str='令其弃置其与你的';
trigger.player.chooseBool('是否对'+get.translation(trigger.target)+'发动【锋势】?',str+'的各一张牌,然后令'+get.translation(trigger.card)+'的伤害+1').set('ai',function(){
var player=_status.event.getParent().player;
var target=_status.event.getParent().target;
var viewer=_status.event.player;
if(viewer==player){
if(get.attitude(viewer,target)>=0) return false;
if(player.countCards('he',(card)=>get.value(card,player)<5)) return true;
var card=_status.event.getTrigger().card;
if((get.tag(card,'damage')||target.countCards('he',(card)=>get.value(card,target)>6))&&player.countCards('he',(card)=>get.value(card,player)<7)) return true;
return false;
}
else{
if(get.attitude(viewer,player)>=0) return false;
if(!get.tag(card,'damage')) return false;
if(viewer.countCards('he')>player.countCards('he')) return true;
if(viewer.countCards('he',(card)=>get.value(card,target)>6)) return false;
return true;
}
});
'step 1'
if(result.bool){
if(player==source) player.logSkill('mffengshi',target);
else{
player.logSkill('mffengshi');
source.line(player,'green');
}
if(get.tag(trigger.card,'damage')) trigger.getParent().baseDamage++;
player.chooseToDiscard('he',true);
}
else event.finish();
'step 2'
if(target.countDiscardableCards(player,'he')>0) player.discardPlayerCard(target,'he',true);
},
},
yigui:{
hiddenCard:function(player,name){
@ -3216,6 +3163,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
jianglue:{
limited:true,
audio:2,
enable:'phaseUse',
prepare:function(cards,player){
var targets=game.filterPlayer(function(current){
@ -9043,8 +8991,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gzbiluan_info:'锁定技,其他角色计算至你的距离时+XX为你装备区内的牌数且至少为1。',
gzlixia:'礼下',
gzlixia_info:'与你势力不同的角色的准备阶段开始时其可弃置你装备区内的一张牌然后其选择一项①弃置两张手牌。②失去1点体力。③令你摸两张牌。',
mffengshi:'锋势',
mffengshi_info:'当你使用牌指定唯一目标后,或成为其他角色使用牌的唯一目标后,若此牌使用者的手牌数大于此牌目标的手牌数,则此牌的使用者可令你弃置自己和对方的各一张牌,并令此牌的伤害值+1。',
gzrekuangcai:'狂才',
gzrekuangcai_info:'锁定技,你于回合内使用牌无距离和次数限制;弃牌阶段开始时,若你本回合内使用过牌但未造成过伤害,则你的手牌上限-1。',
gzkuangcai:'狂才',