v1.9.112.1

This commit is contained in:
Spmario233 2022-02-07 02:13:56 +08:00
parent 59b5e32726
commit f824bf767a
27 changed files with 1502 additions and 152 deletions

View File

@ -549,7 +549,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{global:'useCard'},
forced:true,
filter:function(event,player){
return event.card.name=='qizhengxiangsheng'||get.zhinangs().contains(event.card.name)||player.getStorage('dinghan').contains(event.card.name);
return (event.card.name=='qizhengxiangsheng'||get.zhinangs().contains(event.card.name)||player.getStorage('dinghan').contains(event.card.name))&&event.card.isCard&&event.cards.length==1;
},
content:function(){player.draw()},
},
@ -4857,7 +4857,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tianzuo:'天佐',
tianzuo_info:'①游戏开始时你将8张【奇正相生】加入牌堆。②当一名角色成为【奇正相生】的目标后你可观看其手牌然后可以更改其标记。',
lingce:'灵策',
lingce_info:'锁定技。当有【奇正相生】或智囊或〖定汉①〗记录过的锦囊牌被使用时,你摸一张牌。',
lingce_info:'锁定技。当有【奇正相生】或智囊或〖定汉①〗记录过的锦囊牌被使用时,若此牌不为转化牌且对应实体牌数量为1你摸一张牌。',
dinghan:'定汉',
dinghan_info:'①当你成为未记录过的锦囊牌的目标时,你记录此牌名并取消之。②准备阶段,你可在〖定汉①〗的记录中添加或减少一种锦囊牌的牌名。',
shen_sunce:'神孙策',

View File

@ -18,13 +18,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
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_xusheng","re_lingtong","ol_yujin"],
mobile_yijiang2:["old_bulianshi","xin_liaohua","xin_caozhang","re_liubiao","re_handang","xin_chengpu","xin_gongsunzan","re_zhonghui"],
mobile_yijiang3:["xin_jianyong","xin_zhuran","xin_guohuai","xin_panzhangmazhong","xin_fuhuanghou"],
mobile_yijiang3:["xin_jianyong","xin_zhuran","xin_guohuai","xin_panzhangmazhong","xin_fuhuanghou","re_yufan"],
mobile_yijiang4:["xin_zhoucang","xin_caifuren","xin_guyong","xin_sunluban","xin_caozhen"],
mobile_yijiang67:["re_jikang"],
mobile_sp:["old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","re_heqi","liuzan","xin_hansui"],
},
},
character:{
re_yufan:['male','wu',3,['zhiyan','rezongxuan']],
sunhanhua:['female','wu',3,['chongxu','miaojian','shhlianhua']],
sp_jiangqing:['male','wu',4,['spjianyi','spshangyi']],
sp_jiangwan:['male','shu',3,['spzhenting','spjincui']],
@ -594,6 +595,39 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//虞翻
rezongxuan:{
inherit:'zongxuan',
group:'rezongxuan_place',
},
rezongxuan_place:{
audio:'rezongxuan',
enable:'phaseUse',
usable:1,
content:function(){
'step 0'
player.draw();
'step 1'
player.chooseCard('he',true,'将一张牌置于牌堆顶');
'step 2'
if(result&&result.cards){
event.card=result.cards[0];
player.lose(result.cards,ui.cardPile,'insert');
game.log(player,'将',(get.position(event.card)=='h'?'一张牌':event.card),'置于牌堆顶');
game.broadcastAll(function(player){
var cardx=ui.create.card();
cardx.classList.add('infohidden');
cardx.classList.add('infoflip');
player.$throw(cardx,1000,'nobroadcast');
},player);
}
else event.finish();
},
ai:{
order:1,
result:{player:1},
},
},
//孙寒华
chongxu:{
enable:'phaseUse',
@ -1438,7 +1472,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.getHistory('gain',function(evt){
hs.removeArray(evt.cards);
});
if(hs.length) player.addGaintag(cards,'zaoli');
if(hs.length) player.addGaintag(hs,'zaoli');
}
},
onremove:function(player){
@ -2486,7 +2520,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){
if(!player.storage.fengjie2||!player.storage.fengjie2.isIn()) return false;
var num1=player.countCards('h'),num2=player.storage.fengjie2.hp;
return num1>num2||num1<Math.min(4,num2);
return num1!=num2;
},
logTarget:(event,player)=>player.storage.fengjie2,
content:function(){
@ -15183,7 +15217,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jutu:'据土',
jutu_info:'锁定技准备阶段你获得所有你武将牌上的“生”然后摸X+1张牌然后将X张牌置于你的武将牌上称为“生”X为你因〖邀虎〗选择势力的角色数量)。',
yaohu:'邀虎',
yaohu_info:'每轮限一次,你的回合开始时,你须选择场上一个势力。该势力其他角色的出牌阶段开始时,其可以获得你的一张“生”,然后其须选择一项:①对你指定的另一名的其他角色使用一张【杀】(无距离和次数限制);②交给你两张牌。',
yaohu_info:'每轮限一次,你的回合开始时,你须选择场上一个势力。该势力其他角色的出牌阶段开始时,其获得你的一张“生”,然后其须选择一项:①对你指定的另一名的其他角色使用一张【杀】(无距离和次数限制);②交给你两张牌。',
rehuaibi:'怀璧',
rehuaibi_info:'主公技,锁定技,你的手牌上限+XX为你因〖邀虎〗选择势力的角色数量)。',
simafu:'司马孚',
@ -15260,6 +15294,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shhlianhua1_info:'当你成为【杀】的目标后,你摸一张牌。然后你进行判定,若结果为黑桃,则此【杀】对你无效。',
shhlianhua2:'莲华·极',
shhlianhua2_info:'当你成为【杀】的目标后,你摸一张牌。然后此【杀】的使用者选择一项:①弃置一张牌。②令此【杀】对你无效。',
re_yufan:'手杀虞翻',
rezongxuan:'纵玄',
rezongxuan_place:'纵玄',
rezongxuan_info:'当你的牌因弃置而进入弃牌堆后,你可以将其以任意顺序置于牌堆顶。出牌阶段限一次,你可以摸一张牌,然后将一张牌置于牌堆顶。',
mobile_standard:'手杀异构·标准包',
mobile_shenhua:'手杀异构·神话再临',

View File

@ -28,6 +28,7 @@ window.noname_character_rank={
'sp_xiahoushi',
'ns_zhangwei',
'wanglang',
'caojinyu',
'key_mio',
'key_midori',
'key_yuri',
@ -489,6 +490,7 @@ window.noname_character_rank={
'qiaozhou',
're_xunchen',
'sp_cuiyan',
'ol_dongzhao',
],
bp:[
'chess_diaochan',
@ -724,6 +726,11 @@ window.noname_character_rank={
'ol_yangyi',
'sp_zhangchangpu',
'sp_jiangwan',
'xinchang',
'xin_yufan',
'tw_re_caohong',
'tw_mayunlu',
'tw_hucheer',
],
b:[
'diy_feishi',
@ -930,6 +937,8 @@ window.noname_character_rank={
'sp_wangshuang',
'yanpu',
'sp_jiangqing',
'tw_hejin',
'xuangongzhu',
],
bm:[
'diy_xizhenxihong',
@ -1082,6 +1091,7 @@ window.noname_character_rank={
'yuejiu',
'xin_sunluban',
'ol_bianfuren',
'sp_ol_zhanghe',
],
c:[
'xiahoudun',
@ -1234,6 +1244,7 @@ window.noname_character_rank={
're_nanhualaoxian',
'shen_sunce',
'sunhanhua',
'caojinyu',
'key_yuri',
'key_yuzuru',
'sp_key_kanade',
@ -1798,6 +1809,13 @@ window.noname_character_rank={
'ol_yangyi',
'sp_cuiyan',
'sp_zhangchangpu',
'ol_dongzhao',
'xin_yufan',
'xuangongzhu',
'xinchang',
'tw_mayunlu',
'tw_re_caohong',
'tw_hucheer',
],
junk:[
'sunshao',
@ -1815,6 +1833,7 @@ window.noname_character_rank={
'junk_simayi',
'wolongfengchu',
're_chenqun',
'sp_ol_zhanghe',
'key_youta',
],
}

View File

@ -11,7 +11,7 @@ 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','re_wangyi','guanzhang','xin_handang','xin_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','re_guanping'],
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','xin_yufan','re_liru','re_manchong','re_fuhuanghou','re_guanping'],
refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan','re_caozhen','re_zhoucang','re_chenqun','re_caifuren','re_guyong'],
refresh_yijiang5:['re_zhangyi','re_quancong','re_caoxiu','re_sunxiu','re_gongsunyuan','re_guotufengji'],
},
@ -41,7 +41,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_gongsunzan:['male','qun',4,['reqiaomeng','reyicong']],
re_manchong:['male','wei',3,['rejunxing','yuce']],
re_liru:['male','qun',3,['rejuece','remieji','xinfencheng']],
re_yufan:['male','wu',3,['zhiyan','rezongxuan']],
xin_yufan:['male','wu',3,['xinzhiyan','xinzongxuan']],
re_bulianshi:['female','wu',3,['reanxu','zhuiyi']],
re_hanhaoshihuan:['male','wei',4,['reshenduan','reyonglve']],
re_panzhangmazhong:['male','wu',4,['reduodao','reanjian']],
@ -139,6 +139,173 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_xushu:['zhaoyun','sp_zhugeliang'],
},
skill:{
//虞翻
xinzongxuan:{
audio:2,
trigger:{player:'loseAfter'},
filter:function(event,player){
if(event.type!='discard') return false;
for(var i=0;i<event.cards2.length;i++){
if(get.position(event.cards2[i])=='d'){
return true;
}
}
return false;
},
check:function(trigger,player){
if(trigger.getParent(3).name=='phaseDiscard') return true;
if(!game.hasPlayer(function(current){
return current!=player&&get.attitude(player,current)>0&&!current.hasSkillTag('nogain');
})) return false;
for(var i=0;i<trigger.cards2.length;i++){
if(get.position(trigger.cards2[i],true)=='d'&&get.type2(trigger.cards2[i],false)=='trick'){
return true;
}
}
return false;
},
content:function(){
"step 0"
var cards=[];
for(var i=0;i<trigger.cards2.length;i++){
if(get.position(trigger.cards2[i],true)=='d'){
cards.push(trigger.cards2[i]);
}
}
var next=player.chooseToMove('纵玄:将任意张牌置于牌堆顶',true);
next.set('list',[
['本次弃置的牌(请将要给出的锦囊牌留在这里)',cards],
['牌堆顶'],
]);
next.set('filterOk',function(moved){
if(moved[0].length==1&&get.type2(moved[0][0],false)=='trick') return true;
return moved[1].length>0;
});
next.set('processAI',function(list){
var cards=list[0][1].slice(0),player=_status.event.player;
var result=[[],[]];
if(game.hasPlayer(function(current){
return current!=player&&get.attitude(player,current)>0&&!current.hasSkillTag('nogain');
})){
var max_val=0;
var max_card=false;
for(var i of cards){
if(get.type2(i,false)=='trick'){
var val=get.value(i,'raw');
if(val>max_val){
max_card=i;
max_val=val;
}
}
}
if(max_card){
result[0].push(max_card);
cards.remove(max_card);
}
}
if(cards.length){
var max_val=0;
var max_card=false;
var equip=game.hasPlayer(function(current){
return current.isDamaged()&&get.recoverEffect(current,player,player)>0;
})
for(var i of cards){
var val=get.value(i);
var type=get.type2(i,false);
if(type=='basic') val+=3;
if(type=='equip'&&equip) val+=9;
if(max_val==0||val>max_val){
max_card=i;
max_val=val;
}
}
if(max_card){
result[1].push(max_card);
cards.remove(max_card);
}
result[0].addArray(cards);
}
return result;
})
'step 1'
if(result.bool){
var cards=result.moved[1].slice(0);
if(cards.length){
game.log(player,'将',cards,'置于了牌堆顶');
while(cards.length) ui.cardPile.insertBefore(cards.pop().fix(),ui.cardPile.firstChild);
}
var list=result.moved[0].filter(function(i){
return get.type2(i,false)=='trick';
});
if(list.length&&game.hasPlayer((current)=>(current!=player))){
var next=player.chooseButton(['是否将一张锦囊牌交给一名其他角色?',list]).set('ai',function(button){
return get.value(button.link,'raw');
});
if(!result.moved[1].length) next.set('forced',true);
}
else event.finish();
}
else event.finish();
'step 2'
if(result.bool){
var card=result.links[0];
event.card=card;
player.chooseTarget(lib.filter.notMe,true,'令一名其他角色获得'+get.translation(card)).set('card',card).set('ai',function(target){
var card=_status.event.card,player=_status.event.player;
var eff=get.value(card,target)*get.attitude(player,target);
if(target.hasSkill('nogain')) eff/=10;
return eff;
});
}
else event.finish();
'step 3'
if(result.bool){
var target=result.targets[0];
player.line(target,'green');
target.gain(card,'gain2');
}
},
},
xinzhiyan:{
audio:'zhiyan',
audioname:['gexuan','re_yufan','xin_yufan'],
trigger:{player:'phaseJieshuBegin'},
direct:true,
content:function(){
"step 0"
player.chooseTarget(get.prompt('zhiyan'),'令一名角色摸一张牌并展示之。若为基本牌则你摸一张牌若为装备牌则其回复1点体力').set('ai',function(target){
return get.attitude(_status.event.player,target)*(target.isDamaged()?2:1);
});
"step 1"
if(result.bool){
event.target=result.targets[0];
player.logSkill('zhiyan',result.targets);
event.bool=false;
event.target.draw('visible');
}
else{
event.finish();
}
"step 2"
var card=result[0];
event.card=card;
if(get.type(card)=='basic') player.draw();
"step 3"
if(get.type(card)=='equip'){
if(target.getCards('h').contains(card)&&target.hasUseTarget(card)){
event.target.chooseUseTarget(card,true,'nopopup');
game.delay();
}
event.bool=true;
}
"step 4"
if(event.bool) target.recover();
},
ai:{
expose:0.2,
threaten:1.2
}
},
//新主公技
xinhuangtian:{
unique:true,
@ -3044,38 +3211,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
},
rezongxuan:{
inherit:'zongxuan',
group:'rezongxuan_place',
},
rezongxuan_place:{
audio:'rezongxuan',
enable:'phaseUse',
usable:1,
content:function(){
'step 0'
player.draw();
'step 1'
player.chooseCard('he',true,'将一张牌置于牌堆顶');
'step 2'
if(result&&result.cards){
event.card=result.cards[0];
player.lose(result.cards,ui.cardPile,'insert');
game.log(player,'将',(get.position(event.card)=='h'?'一张牌':event.card),'置于牌堆顶');
game.broadcastAll(function(player){
var cardx=ui.create.card();
cardx.classList.add('infohidden');
cardx.classList.add('infoflip');
player.$throw(cardx,1000,'nobroadcast');
},player);
}
else event.finish();
},
ai:{
order:1,
result:{player:1},
},
},
decadelihuo:{
trigger:{player:'useCard1'},
filter:function(event,player){
@ -9949,7 +10084,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return lib.skill.rezaiqi.count()>0;
},
trigger:{
player:'phaseDiscardEnd'
player:'phaseJieshuBegin'
},
content:function(){
'step 0'
@ -9984,36 +10119,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.delay();
if(targets.length) event.goto(2);
},
group:'rezaiqi_count',
},
rezaiqi_count:{
trigger:{
global:["loseEnd","cardsDiscardEnd"],
player:'phaseAfter',
},
silent:true,
forced:true,
popup:false,
filter:function (event,player,name){
if(name=='phaseAfter') return true;
if(_status.currentPhase!=player) return false;
var evt=event.getParent();
if(evt&&evt.name=='useCard'&&evt.card&&['equip','delay'].contains(get.type(evt.card))) return false;
var cards=event.cards;
for(var i=0;i<cards.length;i++){
if(get.color(cards[i])=='red'&&get.position(cards[i],true)=='d') return true;
}
return false;
},
content:function(){
if(event.triggername=='phaseAfter') player.storage.rezaiqi=0;
else{
var cards=trigger.cards;
for(var i=0;i<cards.length;i++){
if(get.color(cards[i])=='red'&&get.position(cards[i],true)=='d') player.storage.rezaiqi++;
}
}
},
},
},
dynamicTranslate:{
@ -10267,9 +10372,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
refangzhu:'放逐',
refangzhu_info:'当你受到伤害后你可以令一名其他角色选择一项摸X张牌并将武将牌翻面或弃置X张牌并失去1点体力。X为你已损失的体力值',
rezaiqi:'再起',
rezaiqi_info:'弃牌阶段结束时你可以令至多X名角色选择一项1.摸一张牌2.令你回复1点体力X为本回合进入弃牌堆的红色牌数',
rezaiqi_info:'结束阶段开始你可以令至多X名角色选择一项1.摸一张牌2.令你回复1点体力X为本回合进入弃牌堆的红色牌数',
ol_jiangwei:'界姜维',
re_caiwenji:'界蔡文姬',
re_caiwenji:'界蔡',
re_baosanniang:'手杀鲍三娘',
retuntian:'屯田',
rebeige:'悲歌',
@ -10401,10 +10506,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
decadechunlao:'醇醪',
decadechunlao2:'醇醪',
decadechunlao_info:'你可以对其他角色使用【酒使用方法②】。当你需要使用【酒】时若你的武将牌未横置则你可以将武将牌横置然后视为使用【酒】。当你受到或造成伤害后若伤害值大于1且你的武将牌横置则你可以重置武将牌。',
re_yufan:'界虞翻',
rezongxuan:'纵玄',
rezongxuan_place:'纵玄',
rezongxuan_info:'当你的牌因弃置而进入弃牌堆后,你可以将其以任意顺序置于牌堆顶。出牌阶段限一次,你可以摸一张牌,然后将一张牌置于牌堆顶。',
re_liru:'界李儒',
rejuece:'绝策',
rejuece_info:'结束阶段你可以对一名本回合内失去过牌的角色造成1点伤害。',
@ -10541,7 +10642,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rejijiang1:'激将',
rejijiang2:'激将',
rejijiang_info:'主公技。①当你需要使用或打出【杀】时,你可以令其他蜀势力角色依次选择是否打出一张【杀】。若有角色响应,则你视为使用或打出了此【杀】。②每回合限一次。当有蜀势力角色于回合外使用或打出【杀】时,其可以令你摸一张牌。',
xin_yufan:'界虞翻',
xinzongxuan:'纵玄',
xinzongxuan_info:'当你的牌因弃置而进入弃牌堆后,你可将其中的任意张牌置于牌堆顶。若剩余的牌中有锦囊牌,则你可以令一名其他角色获得其中的一张。',
xinzhiyan:'直言',
xinzhiyan_info:'结束阶段开始时你可令一名角色摸一张牌正面朝上移动。若此牌为基本牌则你摸一张牌。若此牌为装备牌则其回复1点体力并使用此装备牌。',
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',

View File

@ -7407,7 +7407,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jiaxu:['re_jiaxu','jiaxu','ns_jiaxu'],
dongzhuo:['ol_dongzhuo','sp_dongzhuo','re_dongzhuo','dongzhuo'],
dengai:['re_dengai','ol_dengai','dengai'],
sp_zhanghe:['sp_zhanghe','yj_zhanghe'],
sp_ol_zhanghe:['sp_ol_zhanghe','yj_zhanghe','sp_zhanghe'],
jiangwei:['ol_jiangwei','re_jiangwei','jiangwei'],
liushan:['ol_liushan','re_liushan','liushan'],
sunce:['re_sunben','re_sunce','sunce'],
@ -7610,7 +7610,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dengai:'邓艾',
sunce:'孙策',
zhangzhang:'张昭张紘',
caiwenji:'蔡文姬',
caiwenji:'蔡',
zuoci:'左慈',
zhurong:'祝融',

View File

@ -6,13 +6,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
characterSort:{
sp:{
sp_tianji:["sunhao","liuxie","caoang","hetaihou","sunluyu",'ol_wangrong',"zuofen","ganfuren","ol_bianfuren"],
sp_sibi:["yangxiu","chenlin","chengyu","shixie","fuwan","wangyun","zhugejin","simalang","maliang","buzhi","dongyun","kanze","sunqian","xizhicai","sunshao",'duxi',"jianggan",'ol_dengzhi','ol_yangyi'],
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'],
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_huben:["caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng"],
sp_liesi:['mizhu'],
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_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_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv'],
sp_wanglang:['wanglang'],
sp_tongque:["sp_fuwan","sp_fuhuanghou","sp_jiben"],
@ -24,6 +24,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
characterFilter:{},
character:{
sp_ol_zhanghe:['male','qun',4,['spolzhouxuan']],
ol_dongzhao:['male','wei',3,['olxianlve','olzaowang']],
fengfangnv:['female','qun',3,['zhuangshu','chuiti']],
ol_yangyi:['male','shu',3,['oljuanxia','oldingcuo']],
zuofen:['female','jin',3,['zhaosong','lisi']],
@ -462,6 +464,284 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//新SP张郃
spolzhouxuan:{
audio:2,
trigger:{player:'phaseDiscardBegin'},
direct:true,
filter:function(event,player){
return player.getStorage('spolzhouxuan').length<5&&player.countCards('h')>0;
},
content:function(){
'step 0'
var num=Math.min(5-player.getStorage('spolzhouxuan').length,player.countCards('h'));
player.chooseCard('h',get.prompt('spolzhouxuan'),[1,num],'将任意张牌置于武将牌上作为“旋”').set('ai',function(card){
if(ui.selected.cards.length>=player.needsToDiscard()) return 0;
return 100-get.useful(card);
});
'step 1'
if(result.bool){
var cards=result.cards;
player.logSkill('spolzhouxuan');
player.markAuto('spolzhouxuan',cards);
player.lose(cards,ui.special,'toStorage');
game.log(player,'将',cards,'置于了武将牌上');
}
},
marktext:'旋',
intro:{
content:'cards',
onunmark:'throw',
},
group:['spolzhouxuan_use','spolzhouxuan_discard'],
subSkill:{
use:{
audio:'spolzhouxuan',
trigger:{player:'useCard'},
forced:true,
locked:false,
filter:function(event,player){
return player.getStorage('spolzhouxuan').length>0;
},
content:function(){
'step 0'
player.chooseButton(['选择移去一张“旋”',player.getStorage('spolzhouxuan')],true);
'step 1'
if(result.bool){
var card=result.links[0];
player.$throw(card,1000);
game.cardsDiscard(card);
var num=player.isMaxHandcard(true)?1:player.getStorage('spolzhouxuan').length-1;
if(num>0) player.draw(num);
player.unmarkAuto('spolzhouxuan',[card]);
game.log(card,'进入了弃牌堆');
game.delayx();
}
},
},
discard:{
trigger:{player:'phaseUseEnd'},
forced:true,
locked:false,
filter:function(event,player){
return player.getStorage('spolzhouxuan').length>0;
},
content:function(){
player.unmarkSkill('spolzhouxuan');
},
},
},
},
//董昭
olxianlve:{
audio:2,
mode:['identity'],
trigger:{
global:'phaseZhunbeiBegin',
},
direct:true,
filter:function(event,player){
return event.player==game.zhu&&event.player.isZhu;
},
content:function(){
'step 0'
var list=lib.inpile.filter(function(i){
return get.type2(i)=='trick';
}).map(function(i){
return ['锦囊','',i];
});
if(!list.length) event.finish();
else player.chooseButton([get.prompt('olxianlve'),[list,'vcard']]).set('ai',function(button){
switch(button.link[2]){
case 'wuxie': return 0.6+Math.random();
case 'wuzhong': case 'dongzhuxianji':return 0.5+Math.random();
case 'guohe': case 'zhujinqiyuan': return 0.4+Math.random();
default: return Math.random();
}
});
'step 1'
if(result.bool){
var name=result.links[0][2];
player.logSkill('olxianlve');
player.storage.olxianlve=name;
player.markSkill('olxianlve');
game.log(player,'声明了','#g'+get.translation(name));
}
},
intro:{content:'已声明【$】'},
group:'olxianlve_use',
subSkill:{
use:{
audio:'olxianlve',
trigger:{global:'useCardAfter'},
forced:true,
locked:false,
filter:function(event,player){
return event.player!=player&&event.card.name==player.storage.olxianlve;
},
content:function(){
'step 0'
player.draw(2);
'step 1'
var cards=result;
if(get.itemtype(cards)!='cards'){
event.goto(5);
return;
}
var hs=player.getCards('h');
cards=cards.filter(function(card){
return hs.contains(card);
});
if(!cards.length){
event.goto(5);
return;
}
event.cards=cards;
if(_status.connectMode) game.broadcastAll(function(){_status.noclearcountdown=true});
event.given_map={};
event.ai_list=[];
'step 2'
player.chooseCardTarget({
filterCard:function(card){
return _status.event.cards.contains(card)&&!card.hasGaintag('olxianlve');
},
cards:cards,
filterTarget:lib.filter.notMe,
selectCard:[1,cards.length],
prompt:'是否将获得的牌分配给其他角色?',
ai1:function(card){
if(!ui.selected.cards.length) return 1;
return 0;
},
ai2:function(target){
var player=_status.event.player,card=ui.selected.cards[0];
var val=target.getUseValue(card);
if(target.isPhaseUsing()&&get.type2(card)=='trick') val*=3;
if(val>0) return val*get.attitude(player,target)*2;
return get.value(card,target)*get.attitude(player,target);
},
});
'step 3'
if(result.bool){
var res=result.cards,target=result.targets[0].playerid;
player.addGaintag(res,'olxianlve');
cards.removeArray(res);
if(!event.given_map[target]) event.given_map[target]=[];
event.given_map[target].addArray(res);
if(result.targets[0].isPhaseUsing()&&get.type2(res[0])=='trick') event.ai_list.push(res[0].name);
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);
});
'step 5'
var list=lib.inpile.filter(function(i){
return get.type2(i)=='trick';
}).map(function(i){
return ['锦囊','',i];
});
if(!list.length) event.finish();
else player.chooseButton([get.prompt('olxianlve'),[list,'vcard']]).set('list',event.ai_list).set('ai',function(button){
if(_status.event.list.contains(button.link[2])) return 2+Math.random();
switch(button.link[2]){
case 'wuxie': return 0.6+Math.random();
case 'wuzhong': case 'dongzhuxianji':return 0.5+Math.random();
case 'guohe': case 'zhujinqiyuan': return 0.4+Math.random();
default: return Math.random();
}
});
'step 6'
if(result.bool){
var name=result.links[0][2];
player.storage.olxianlve=name;
player.markSkill('olxianlve');
game.log(player,'声明了','#g'+get.translation(name));
}
},
},
},
},
olzaowang:{
mode:['identity'],
audio:2,
enable:'phaseUse',
limited:true,
skillAnimation:true,
animationColor:'water',
filterTarget:true,
content:function(){
player.awakenSkill('olzaowang');
target.gainMaxHp();
target.recover();
target.draw(3);
target.addSkill('olzaowang2');
},
ai:{
order:2,
result:{
target:function(player,target){
if(player.hasUnknown(2)) return 0;
if(target.identity=='zhong') return 20;
if(target.identity=='zhu') return 10;
if(target.identity=='nei') return 5;
if(!target.hasFriend()) return 5;
return 0;
},
},
},
},
olzaowang2:{
charlotte:true,
trigger:{global:'dieBegin'},
forced:true,
filter:function(event,player){
return event.player.identity=='zhu'&&(player.identity=='zhong'||player.identity=='mingzhong');
},
logTarget:'player',
skillAnimation:true,
animationColor:'orange',
content:function(){
game.broadcastAll(function(player,target){
target.identity=player.identity;
if(player.identity=='mingzhong') game.zhong=target;
delete target.isZhu;
player.identity='zhu';
game.zhu=player;
player.showIdentity();
target.showIdentity();
},player,trigger.player);
event.trigger('zhuUpdate');
},
mark:true,
marktext:'王',
intro:{content:'造了个王'},
group:'olzaowang2_kill',
subSkill:{
kill:{
trigger:{player:'die'},
forced:true,
forceDie:true,
skillAnimation:true,
animationColor:'wood',
filter:function(event,player){
return player.identity=='fan'&&event.source&&(event.source.identity=='zhu'||event.source.identity=='zhong'||event.source.identity=='mingzhong');
},
content:function(){
game.over((game.me.identity=='zhu'||game.me.identity=='zhong'||game.me.identity=='mingzhong'));
},
},
},
},
//冯方女
zhuangshu:{
audio:2,
@ -15477,7 +15757,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
characterReplace:{
caoshuang:['caoshuang','ns_caoshuang'],
caoang:['caoang','yj_caoang','tw_caoang'],
caohong:['caohong','tw_caohong'],
caohong:['tw_re_caohong','caohong','tw_caohong'],
xiahouba:['xiahouba','tw_xiahouba'],
maliang:['maliang','re_maliang','tw_maliang','ol_maliang','old_maliang'],
dingfeng:['dingfeng','tw_dingfeng'],
@ -15500,6 +15780,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dengzhi:['ol_dengzhi','dengzhi'],
wangrong:['wangrong','ol_wangrong'],
zongyu:['sp_zongyu','zongyu'],
ol_dongzhao:['ol_dongzhao','tw_dongzhao'],
mayunlu:['tw_mayunlu','mayunlu'],
},
translate:{
"xinfu_lingren":"凌人",
@ -15613,7 +15895,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhanglu:'张鲁',
wutugu:'兀突骨',
mateng:'马腾',
sp_caiwenji:'SP蔡文姬',
sp_caiwenji:'SP蔡',
zhugeguo:'诸葛果',
lingcao:'凌操',
sunru:'孙茹',
@ -16359,6 +16641,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhuangshu_equip:'金梳',
zhuangshu_equip_bg:'金',
zhuangshu_equip_info:'锁定技。出牌阶段结束时,你将手牌摸至手牌上限(至多摸五张)。当此牌不因交换装备或移动至其他装备区而离开你的装备区后,销毁之。',
ol_dongzhao:'董昭',
olxianlve:'先略',
olxianlve_info:'①主公的回合开始时,你可声明并记录一个锦囊牌的名称并移除先前的记录。②其他角色使用〖先略〗记录过的锦囊牌后,你可摸两张牌并可以分配给任意其他角色,然后你可声明并记录一个锦囊牌的名称并移除先前的记录。',
olzaowang:'造王',
olzaowang2:'造王',
olzaowang_info:'限定技。出牌阶段你可以令一名角色加1点体力上限回复1点体力并摸三张牌且获得如下效果主公死亡时若其身份为忠臣则其和主公交换身份牌其死亡时若其身份为反贼且伤害来源的身份为主公或忠臣则以主忠胜利结束本局游戏。',
sp_ol_zhanghe:'SP张郃',
spolzhouxuan:'周旋',
spolzhouxuan_info:'①弃牌阶段开始时你可将任意张手牌置于武将牌上称为“旋”上限为5。②当你使用牌时你将一张“旋”置入弃牌堆并摸一张牌若你的手牌数不为全场唯一最多则改为摸X张牌X为“旋”数。③出牌阶段结束时你将所有“旋”置入弃牌堆。',
sp_tianji:'天极·皇室宗亲',
sp_sibi:'四弼·辅国文曲',

View File

@ -4,6 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
caojinyu:['female','wei',3,['yuqi','shanshen','xianjing']],
hanmeng:['male','qun',4,['jieliang','quanjiu']],
xinping:['male','qun',3,['fuyuan','zhongjie','yongdi']],
wanniangongzhu:['female','qun',3,['zhenge','xinghan']],
@ -109,17 +110,175 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_shengun:["puyuan","guanlu","gexuan","xushao"],
sp_baigei:['re_panfeng','xingdaorong','caoxing','re_chunyuqiong','xiahoujie'],
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou","xinping","hanmeng"],
sp_caizijiaren:['re_dongbai','re_sunluyu','huaxin','luyusheng'],
sp_huangjin:['liuhong','zhujun','re_hejin','re_hansui'],
sp_qihuan:['liubian','zhaozhong'],
sp_caizijiaren:['re_dongbai','re_sunluyu','huaxin','luyusheng','re_xunchen','heyan'],
sp_huangjin:['liuhong','zhujun','re_hansui'],
sp_qihuan:['liubian','zhaozhong','re_hejin'],
sp_fadong:['ol_dingyuan','wangrong','re_quyi','hanfu'],
sp_xuzhou:['re_taoqian','caosong','zhangmiao','qiuliju'],
sp_zhongyuan:['re_hucheer','re_zoushi','caoanmin'],
sp_zhongyuan:['re_hucheer','re_zoushi','caoanmin','re_dongcheng'],
sp_binglin:['re_niujin',"sp_mifangfushiren"],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','liangxing','re_dongzhao','re_dongcheng','yangwan','heyan','re_panshu','zhanghu','dufuren','zhouyi','re_nanhualaoxian','lvlingqi','re_kanze','re_xunchen','wanniangongzhu','tongyuan','liuyong','zhangning'],
sp_zhilan:['liuyong','wanniangongzhu','zhanghu'],
sp_fenghuo:['re_nanhualaoxian','tongyuan','zhangning'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','liangxing','re_dongzhao','yangwan','re_panshu','dufuren','zhouyi','lvlingqi','re_kanze','caojinyu'],
}
},
skill:{
//曹金玉
yuqi:{
audio:2,
trigger:{global:'damageEnd'},
init:function(player){
if(!player.storage.yuqi) player.storage.yuqi=[0,3,1,1];
},
getInfo:function(player){
if(!player.storage.yuqi) player.storage.yuqi=[0,3,1,1];
return player.storage.yuqi;
},
onremove:true,
usable:2,
filter:function(event,player){
var list=lib.skill.yuqi.getInfo(player);
return event.player.isIn()&&get.distance(player,event.player)<=list[0];
},
logTarget:'player',
content:function(){
'step 0'
event.list=lib.skill.yuqi.getInfo(player);
var cards=get.cards(event.list[1]);
event.cards=cards;
game.cardsGotoOrdering(cards);
var next=player.chooseToMove(true,'隅泣(若对话框显示不完整,可下滑操作)');
next.set('list',[
['牌堆顶的牌',cards],
['交给'+get.translation(trigger.player)+'(至少一张'+(event.list[2]>1?(',至多'+get.cnNumber(event.list[2])+'张'):'')+''],
['交给自己(至多'+get.cnNumber(event.list[3])+'张)'],
]);
next.set('filterMove',function(from,to,moved){
var info=lib.skill.yuqi.getInfo(_status.event.player);
if(to==1) return moved[1].length<info[2];
if(to==2) return moved[2].length<info[3];
return true;
});
next.set('processAI',function(list){
var cards=list[0][1].slice(0).sort(function(a,b){
return get.value(b,'raw')-get.value(a,'raw');
}),player=_status.event.player,target=_status.event.getTrigger().player;
var info=lib.skill.yuqi.getInfo(_status.event.player);
var cards1=cards.splice(0,Math.min(info[3],cards.length-1));
var card2;
if(get.attitude(player,target)>0) card2=cards.shift();
else card2=cards.pop();
return [cards,[card2],cards1];
});
next.set('filterOk',function(moved){
return moved[1].length>0;
});
'step 1'
if(result.bool){
var moved=result.moved;
cards.removeArray(moved[1]);
cards.removeArray(moved[2]);
while(cards.length){
ui.cardPile.insertBefore(cards.pop().fix(),ui.cardPile.firstChild);
}
trigger.player.gain(moved[1],'gain2');
if(moved[2].length) player.gain(moved[2],'gain2');
game.updateRoundNumber();
}
},
mark:true,
intro:{
content:function(storage,player){
var info=lib.skill.yuqi.getInfo(player);
return '<div class="text center"><span class=thundertext>蓝色:'+info[0]+'</span> <span class=firetext>红色:'+info[1]+'</span><br><span class=greentext>绿色:'+info[2]+'</span> <span class=yellowtext>黄色:'+info[3]+'</span></div>'
},
},
ai:{
threaten:8.8,
},
},
shanshen:{
audio:2,
trigger:{global:'die'},
direct:true,
content:function(){
'step 0'
event.goon=!player.hasAllHistory('sourceDamage',function(evt){
return evt.player==trigger.player;
});
player.chooseControl('<span class=thundertext>蓝色</span>','<span class=firetext>红色</span>','<span class=greentext>绿色</span>','<span class=yellowtext>黄色</span>','cancel2').set('prompt',get.prompt('shanshen')).set('prompt2','令〖隅泣〗中的一个数字+2'+(event.goon?'并回复1点体力':'')).set('ai',function(){
var player=_status.event.player,info=lib.skill.yuqi.getInfo(player);
if(info[0]<info[3]&&game.countPlayer(function(current){
return get.distance(player,current)<=info[0];
})<Math.min(3,game.countPlayer())) return 0;
if(info[3]<info[1]-1) return 3;
if(info[1]<5) return 1;
if(info[0]<5&&game.hasPlayer(function(current){
return current!=player&&get.distance(player,current)>info[0];
})) return 0;
return 2;
});
'step 1'
if(result.control!='cancel2'){
player.logSkill('shanshen',trigger.player);
var list=lib.skill.yuqi.getInfo(player);
list[result.index]=Math.min(5,list[result.index]+2);
game.log(player,'将',result.control,'数字改为','#y'+list[result.index])
player.markSkill('yuqi');
if(event.goon) player.recover();
}
},
},
xianjing:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
direct:true,
content:function(){
'step 0'
player.chooseControl('<span class=thundertext>蓝色</span>','<span class=firetext>红色</span>','<span class=greentext>绿色</span>','<span class=yellowtext>黄色</span>','cancel2').set('prompt',get.prompt('xianjing')).set('prompt2','令〖隅泣〗中的一个数字+1').set('ai',function(){
var player=_status.event.player,info=lib.skill.yuqi.getInfo(player);
if(info[0]<info[3]&&game.countPlayer(function(current){
return get.distance(player,current)<=info[0];
})<Math.min(3,game.countPlayer())) return 0;
if(info[3]<info[1]-1) return 3;
if(info[1]<5) return 1;
if(info[0]<5&&game.hasPlayer(function(current){
return current!=player&&get.distance(player,current)>info[0];
})) return 0;
return 2;
});
'step 1'
if(result.control!='cancel2'){
player.logSkill('xianjing');
var list=lib.skill.yuqi.getInfo(player);
list[result.index]=Math.min(5,list[result.index]+1);
game.log(player,'将',result.control,'数字改为','#y'+list[result.index])
player.markSkill('yuqi');
if(player.isDamaged()) event.finish();
}
else event.finish();
'step 2'
player.chooseControl('<span class=thundertext>蓝色</span>','<span class=firetext>红色</span>','<span class=greentext>绿色</span>','<span class=yellowtext>黄色</span>','cancel2').set('prompt','是否令〖隅泣〗中的一个数字+1').set('ai',function(){
var player=_status.event.player,info=lib.skill.yuqi.getInfo(player);
if(info[0]<info[3]&&game.countPlayer(function(current){
return get.distance(player,current)<=info[0];
})<Math.min(3,game.countPlayer())) return 0;
if(info[3]<info[1]-1) return 3;
if(info[1]<5) return 1;
if(info[0]<5&&game.hasPlayer(function(current){
return current!=player&&get.distance(player,current)>info[0];
})) return 0;
return 2;
});
'step 3'
if(result.control!='cancel2'){
var list=lib.skill.yuqi.getInfo(player);
list[result.index]=Math.min(5,list[result.index]+1);
game.log(player,'将',result.control,'数字改为','#y'+list[result.index])
player.markSkill('yuqi');
}
},
},
//韩猛
jieliang:{
trigger:{global:'phaseDrawBegin2'},
@ -1510,6 +1669,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){
return player.countCards('h')>0;
},
preHidden:true,
content:function(){
'step 0'
var hs=player.getCards('h');
@ -3873,7 +4033,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.countCards('e')>trigger.player.countCards('e')) num++;
if(num){
player.draw(num);
if(num==3) player.gainMaxHp();
if(num==3&&player.maxHp<8) player.gainMaxHp();
}
else{
player.addMark('liedan',1);
@ -3975,7 +4135,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return 0;
},
ai2:function(target){
return Math.sqrt(5-Math.max(4,target.countCards('h')))*get.attitude(_status.event.player,target);
return Math.sqrt(5-Math.min(4,target.countCards('h')))*get.attitude(_status.event.player,target);
},
goon:function(){
if(!game.hasPlayer(function(current){
@ -11328,6 +11488,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
wanniangongzhu:'刘氏(生卒年不详),河南郡雒阳县(今河南省洛阳市)人,汉灵帝刘宏之女,汉少帝刘辩与汉献帝刘协的姐妹,封万年公主。',
xinping:'辛评204年字仲治颍川阳翟人东汉末年人物。曹魏卫尉辛毗之兄。原是韩馥部下韩馥逃亡后转而辅佐袁绍。袁绍死后辛评、郭图欲立袁谭为主与审配等不和。后来曹操破邺其弟辛毗在城下劝降。审配怒遣手下将辛评全家杀害。',
hanmeng:'韩猛,又名韩若、韩荀、韩泣(上荀下大) 东汉末年袁绍帐下名将或与《曹瞒传》所言韩莒子为同一人。公元200年官渡之战爆发。袁绍派遣韩猛劫掠曹操军的西道被曹军部将曹仁击破于鸡洛山。袁绍又派韩猛前去运送粮车因为轻敌被曹军部将徐晃、史涣击退。',
caojinyu:'金乡公主,本姓曹氏,名字不详,沛国谯县(今安徽省亳州市)人。魏武帝曹操的女儿,母为杜夫人。适婚的时候,嫁给曹操的养子何晏。高平陵之变,何晏作为大将军曹爽的党羽,遭到太傅司马懿处死。在何晏母亲尹夫人苦苦哀求下,何晏的儿子得以保全。',
},
characterTitle:{
wulan:'#b对决限定武将',
@ -11383,6 +11544,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
cuijian:function(player){
return '出牌阶段限一次,你可以选择一名有手牌的其他角色。若其手牌中有【闪】,则其将所有【闪】和防具牌交给你'+(player.hasMark('zhtongyuan_basic')?'':',然后你交给其等量的牌')+'。'+(player.hasMark('zhtongyuan_trick')?'若其手牌中没有【闪】,则你摸两张牌。':'');
},
yuqi:function(player){
var info=lib.skill.yuqi.getInfo(player);
return '每回合限两次。当有角色受到伤害后,若你至其的距离不大于<span class=thundertext>'+info[0]+'</span>,则你可以观看牌堆顶的<span class=firetext>'+info[1]+'</span>张牌。你将其中至多<span class=greentext>'+info[2]+'</span>张牌交给受伤角色,然后可以获得剩余牌中的至多<span class=yellowtext>'+info[3]+'</span>张牌并将其余牌以原顺序放回牌堆顶。所有具有颜色的数字至多为5';
},
},
perfectPair:{
},
@ -11402,7 +11567,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
taoqian:['taoqian','re_taoqian'],
sp_liubei:['sp_liubei','jsp_liubei'],
dongcheng:['re_dongcheng','dongcheng'],
hucheer:['re_hucheer','hucheer'],
hucheer:['tw_hucheer','re_hucheer','hucheer'],
dongbai:['re_dongbai','dongbai'],
gexuan:['gexuan','tw_gexuan'],
panshu:['panshu','re_panshu'],
@ -11818,7 +11983,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
reyirang_info:'出牌阶段开始时你可以将所有非基本牌交给一名其他角色。若其体力上限大于你则你将体力上限调整至与其相同。然后你回复X点体力X为你以此法交给其的牌数。',
xiahoujie:'夏侯杰',
liedan:'裂胆',
liedan_info:'锁定技其他角色的准备阶段开始时若X大于0则你摸X张牌。若X等于3则你加1点体力上限。若X为0则你失去1点体力并获得一枚“裂”X为你的手牌数体力值装备区牌数中大于其的数量。准备阶段若“裂”数大于4则你死亡。',
liedan_info:'锁定技其他角色的准备阶段开始时若X大于0则你摸X张牌。若X等于3则你加1点体力上限至多加到8。若X为0则你失去1点体力并获得一枚“裂”X为你的手牌数体力值装备区牌数中大于其的数量。准备阶段若“裂”数大于4则你死亡。',
zhuangdan:'壮胆',
zhuangdan_mark:'壮胆',
zhuangdan_info:'锁定技,其他角色的回合结束时,若你的手牌数为全场唯一最多,则你令〖裂胆〗失效直到你下回合结束。',
@ -12011,6 +12176,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jieliang_info:'其他角色的摸牌阶段开始时,你可弃置一张牌,令其本阶段的摸牌数和本回合的手牌上限-1。然后当其于本回合的弃牌阶段内因弃置而失去牌后你可获得其中的一张。',
quanjiu:'劝酒',
quanjiu_info:'锁定技。①你手牌区中的【酒】的牌名视为【杀】。②你使用对应的实体牌为一张【酒】的非转化【杀】不计入次数限制。',
caojinyu:'曹金玉',
yuqi:'隅泣',
yuqi_info:'每回合限两次。当有角色受到伤害后,若你至其的距离不大于<span class=thundertext>0</span>,则你可以观看牌堆顶的<span class=firetext>3</span>张牌。你将其中至多<span class=greentext>1</span>张牌交给受伤角色,然后可以获得剩余牌中的至多<span class=yellowtext>1</span>张牌并将其余牌以原顺序放回牌堆顶。所有具有颜色的数字至多为5',
shanshen:'善身',
shanshen_info:'当有角色死亡时,你可令你的〖隅泣〗中的一个具有颜色的数字+2。然后若你未对该角色造成过伤害则你回复1点体力。',
xianjing:'娴静',
xianjing_info:'准备阶段,你可令你的〖隅泣〗中的一个具有颜色的数字+1。若你的体力值等于体力上限则你可以重复一次此流程。',
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",
@ -12028,7 +12200,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_zhongyuan:'中原狼烟',
sp_binglin:'兵临城下',
sp_yinyu:'隐玉包',
sp_zhilan:'芝兰包',
sp_zhilan:'芝兰玉树',
sp_fenghuo:'烽火连天',
sp_decade:'其他新服武将',
},
};

View File

@ -83,7 +83,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
daqiao:['xiaoqiao'],
zhouyu:['huanggai','xiaoqiao','zhouyi'],
sunquan:['zhoutai'],
lvbu:['diaochan'],
lvbu:['diaochan','lvlingqi'],
machao:['madai','mayunlu'],
zhangliao:['zangba'],
ganning:['lingtong','xf_sufei'],

View File

@ -5,12 +5,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true,
characterSort:{
tw:{
tw_mobile:['tw_beimihu','nashime','tw_gexuan','tw_dongzhao','jiachong','duosidawang','wuban','yuejiu','tw_fuwan','tw_yujin','tw_zhaoxiang'],
tw_mobile:['tw_beimihu','nashime','tw_gexuan','tw_dongzhao','jiachong','duosidawang','wuban','yuejiu','tw_fuwan','tw_yujin','tw_zhaoxiang','tw_hucheer','tw_hejin','tw_mayunlu','tw_re_caohong'],
tw_yijiang:['tw_caoang','tw_caohong','tw_zumao','tw_dingfeng','tw_maliang','tw_xiahouba'],
tw_english:['kaisa'],
},
},
character:{
tw_re_caohong:['male','wei',4,['twyuanhu','twjuezhu']],
tw_mayunlu:['female','shu',4,['mashu','twfengpo']],
tw_hejin:['male','qun',4,['twmouzhu','twyanhuo']],
tw_hucheer:['male','qun',4,['twshenxing','twdaoji']],
tw_yujin:['male','qun',4,['xinzhenjun']],
tw_fuwan:['male','qun',4,['twmoukui']],
tw_zhaoxiang:['female','shu',4,['refanghun','twfuhan','twqueshi']],
@ -149,6 +153,406 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
twyuanhu:{
audio:'yuanhu',
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.hasCard({type:'equip'},'eh');
},
filterCard:{type:'equip'},
filterTarget:function(card,player,target){
var card=ui.selected.cards[0];
return target.isEmpty(get.subtype(card));
},
discard:false,
lose:false,
prepare:'give',
position:'he',
check:function(card){
if(get.position(card)=='h') return 9-get.value(card);
return 7-get.value(card);
},
content:function(){
'step 0'
target.equip(cards[0]);
'step 1'
event.goto(3);
switch(get.subtype(cards[0])){
case 'equip1':
if(game.hasPlayer(function(current){
return current!=target&&get.distance(target,current)==1&&current.countCards('hej')>0;
})){
player.chooseTarget(true,'弃置一名距离'+get.translation(target)+'为1的角色区域内的一张牌',function(card,player,target){
var current=_status.event.current;
return current!=target&&get.distance(current,target)==1&&current.countCards('hej')>0;
}).set('current',target).set('ai',function(target){
var player=_status.event.player;
return get.effect(target,{name:'guohe_copy'},player,player);
});
event.goto(2);
}
break;
case 'equip2':
target.draw();
break;
case 'equip3':
target.recover();
break;
}
'step 2'
var target=result.targets[0];
player.line(target);
player.discardPlayerCard(target,true,'hej');
'step 3'
if(target.hp<=player.hp||target.countCards('h')<=player.countCards('h')){
player.draw();
player.addTempSkill('twyuanhu_end');
}
},
ai:{
order:10,
result:{
player:function(player,target){
if(get.attitude(player,target)==0) return 0;
if(!ui.selected.cards.length) return;
var eff=get.effect(target,ui.selected.cards[0],player,player),sub=get.subtype(ui.selected.cards[0],false);
if(target==player) eff+=4;
else{
var hp=player.hp,hs=player.countCards('h',(card)=>card!=ui.selected.cards[0]);
var tp=target.hp,ts=target.countCards('h');
if(sub=='equip2') ts++;
if(tp<target.maxHp&&(sub=='equip3'||sub=='equip4')) tp++;
if(tp<=hp||ts<=hs) eff+=2;
}
if(sub=='equip1'){
var list=game.filterPlayer(function(current){
return current!=target&&get.distance(target,current)==1&&current.countCards('hej')<0;
}).map(function(i){
return get.effect(i,{name:'guohe_copy'},player,player);
}).sort((a,b)=>b-a);
if(list.length) eff+=list[0];
}
return eff;
},
target:function(player,target){
if(!ui.selected.cards.length) return 0;
var sub=get.subtype(ui.selected.cards[0],false);
var eff=get.effect(target,ui.selected.cards[0],player,target);
if(sub=='equip2') eff+=(get.effect(target,{name:'wuzhong'},target,target)/2);
if(target.isDamaged()&&(sub=='equip3'||sub=='equip4')) eff+=get.recoverEffect(target,player,player);
return eff;
},
},
},
subSkill:{
end:{
trigger:{player:'phaseJieshuBegin'},
direct:true,
charlotte:true,
filter:function(event,player){
return player.hasSkill('twyuanhu')&&player.hasCard({type:'equip'},'eh');
},
content:function(){
'step 0'
player.chooseCardTarget({
prompt:get.prompt('twyuanhu'),
prompt2:'将一张装备牌置入一名角色的装备区内。若此牌为武器牌你弃置与其距离为1的另一名角色区域的一张牌防具牌其摸一张牌坐骑牌其回复1点体力。若其的体力值或手牌数不大于你则你可摸一张牌。',
filterCard:lib.skill.twyuanhu.filterCard,
filterTarget:lib.skill.twyuanhu.filterTarget,
position:'he',
ai1:lib.skill.twyuanhu.check,
ai2:function(target){
var player=_status.event.player;
return get.effect(target,'twyuanhu',player,player);
},
});
'step 1'
if(result.bool){
result.skill='twyuanhu';
player.useResult(result,event);
}
},
},
},
},
twjuezhu:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
direct:true,
filter:function(event,player){
return !player.isDisabled('equip3')||!player.isDisabled('equip4');
},
skillAnimation:true,
animationColor:'water',
content:function(){
'step 0'
player.chooseTarget(get.prompt2('twjuezhu'),[1,2],function(card,player,target){
return !ui.selected.targets.length&&!target.hasSkill('feiying');
}).set('promptbar','none').set('ai',function(target){
if(player.hasUnknown()) return false;
return get.attitude(player,target);
});
'step 1'
if(result.bool){
event.target=result.targets[0];
var list=[];
if(!player.isDisabled(3)) list.push('equip3');
if(!player.isDisabled(4)) list.push('equip4');
if(list.length==1) event._result={control:list[0]};
else player.chooseControl(list).set('prompt','选择废除一个坐骑栏');
}
else event.finish();
'step 2'
player.logSkill('twjuezhu',target);
player.awakenSkill('twjuezhu');
player.disableEquip(result.control);
target.disableJudge();
player.markAuto('twjuezhu_restore',[[target,result.control]]);
player.addSkill('twjuezhu_restore');
target.addSkill('feiying');
},
subSkill:{
restore:{
trigger:{global:'die'},
forced:true,
charlotte:true,
filter:function(event,player){
for(var i of player.getStorage('twjuezhu_restore')){
if(i[0]==event.player&&player.isDisabled(i[1])) return true;
}
return false;
},
content:function(){
var list=[];
for(var i of player.getStorage('twjuezhu_restore')){
if(i[0]==trigger.player&&player.isDisabled(i[1])) list.add(i[1]);
}
for(var i of list) player.enableEquip(i);
},
},
},
derivation:'feiying',
},
twfengpo:{
audio:'fengpo',
trigger:{player:'useCardToPlayered'},
logTarget:'target',
filter:function(event,player){
return (event.card.name=='sha'||event.card.name=='juedou')&&event.targets.length==1&&event.target.countCards('h')>0;
},
onremove:true,
content:function(){
'step 0'
event.target=trigger.target;
player.viewHandcards(trigger.target);
'step 1'
var num=target.countCards('h',player.storage.twfengpo?{color:'red'}:{suit:'diamond'});
if(!num){
event.finish();
return;
}
event.num=num;
player.chooseControl().set('choiceList',[
'摸'+num+'张牌',
'令'+get.translation(trigger.card)+'的伤害值基数+'+num,
]);
'step 2'
if(result.index==0) player.draw(num);
else trigger.getParent().baseDamage+=num;
},
group:'twfengpo_kill',
subSkill:{
kill:{
trigger:{source:'die'},
forced:true,
filter:(event,player)=>!player.storage.twfengpo,
skillAnimation:true,
animationColor:'fire',
content:function(){
player.storage.twfengpo=true;
},
},
},
},
twmouzhu:{
audio:'mouzhu',
enable:'phaseUse',
usable:1,
filterTarget:lib.filter.notMe,
contentBefore:function(){
var target=targets[0],evt=event.getParent();
evt._target=target;
var list=game.filterPlayer(function(current){
return current!=player&&current!=target&&current.hp<=target.hp;
});
if(!list.length){
player.loseHp();
evt.finish();
}
else{
evt.targets=list.sortBySeat();
player.line(list);
}
},
content:function(){
'step 0'
target.chooseCard('he','是否交给'+get.translation(player)+'一张牌?').set('ai',function(card){
if(_status.event.goon) return 7-get.value(card);
return 0;
}).set('goon',get.attitude(target,player)>0||Math.random()<num/(1+targets.length));
'step 1'
if(result.bool){
player.gain(result.cards,target,'giveAuto');
}
else{
game.log(target,'拒绝给牌');
}
},
contentAfter:function(){
'step 0'
var num=0,par=event.getParent();
player.getHistory('gain',function(evt){
if(evt.getParent(2)==par) num+=evt.cards.length;
});
if(!num){
player.loseHp();
for(var i of targets) i.loseHp();
event.finish();
}
else{
var target=event.getParent()._target;
event.target=target;
event.num=num;
var bool1=target.canUse('sha',player,false),bool2=target.canUse('juedou',player,false);
if(bool1&&bool2) target.chooseControl('sha','juedou').set('prompt','谋诛:视为对'+get.translation(player)+'使用一张…').set('prompt2','(伤害值基数:'+num+'').set('ai',function(){
var player=_status.event.player,target=_status.event.getParent().player;
if(!target.hasShan()&&get.effect(target,{name:'sha'},player,player)>0) return 'sha';
if(get.effect(target,{name:'juedou'},player,player)>0) return 'juedou';
return 'sha';
});
else if(bool1) event._result={control:'sha'};
else if(bool2) event._result={control:'juedou'};
else event.finish();
}
'step 1'
if(result.control&&lib.card[result.control]) target.useCard({
name:result.control,
isCard:true,
},false,player).baseDamage=num;
},
},
twyanhuo:{
audio:'yanhuo',
trigger:{player:'die'},
direct:true,
forceDie:true,
skillAnimation:true,
animationColor:'thunder',
filter:function(event,player){
return player.countCards('he')>0&&game.hasPlayer(function(current){
return current!=player&&current.countCards('h')>0;
});
},
content:function(){
'step 0'
var num=player.countCards('he'),str=get.cnNumber(num);
event.num1=num;
event.num2=1;
var list=['令一名其他角色弃置'+str+'张牌'];
if(num>1){
list.push('令至多'+str+'名其他角色各弃置一张牌');
}
player.chooseControl('cancel2').set('choiceList',list).set('prompt',get.prompt('twyanhuo')).set('forceDie',true);
'step 1'
if(result.control!='cancel2'){
if(result.index==0){
event.num2=event.num1;
event.num1=1;
}
player.chooseTarget([1,event.num1],true,'请选择【延祸】的目标',function(card,player,target){
return target!=player&&target.countCards('he')>0;
}).set('forceDie',true).set('ai',function(target){
return -get.attitude(_status.event.player,target)
});
}
else event.finish();
'step 2'
if(result.bool){
var targets=result.targets.sortBySeat();
player.logSkill('twyanhuo',targets);
for(var i of targets) i.chooseToDiscard(true,'he',event.num2);
}
},
},
twshenxing:{
mod:{
globalFrom:function(player,target,distance){
var es=player.getCards('e',function(card){
return !ui.selected.cards.contains(card);
});
for(var i of es){
var type=get.subtype(i);
if(type=='equip3'||type=='equip4'||type=='equip6') return distance;
}
return distance-1;
},
maxHandcard:function(player,distance){
var es=player.getCards('e',function(card){
return !ui.selected.cards.contains(card);
});
for(var i of es){
var type=get.subtype(i);
if(type=='equip3'||type=='equip4'||type=='equip6') return distance;
}
return distance+1;
},
},
},
twdaoji:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.hasCard(lib.skill.twdaoji.filterCard,'he');
},
filterCard:function(card){
return get.type(card)!='basic';
},
position:'he',
filterTarget:function(card,player,target){
return target!=player&&player.inRange(target)&&target.hasCard((card)=>lib.filter.canBeGained(card,target,player),'he');
},
check:function(card){
return 8-get.value(card);
},
content:function(){
'step 0'
player.gainPlayerCard(target,'he',true);
'step 1'
if(result.bool&&result.cards&&result.cards.length==1){
var card=result.cards[0];
if(player.getCards('h').contains(card)){
var type=get.type(card);
if(type=='basic') player.draw();
else if(type=='equip'){
if(player.hasUseTarget(card)) player.chooseUseTarget(card,'nopopup',true);
target.damage('nocard');
}
}
}
},
ai:{
order:6,
result:{
target:function(player,target){
var eff=get.effect(target,{name:'shunshou_copy2'},player,target);
if(target.countCards('e')>0) eff+=get.damageEffect(target,player,target);
return eff;
},
},
},
},
xinzhenjun:{
audio:2,
trigger:{
@ -799,7 +1203,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
var suit=get.suit(trigger.card);
var num=trigger.target.countCards('h','shan');
var next=trigger.target.chooseToDiscard('弃置一张牌,或不能响应'+get.translation(trigger.card)).set('ai','he',function(card){
var next=trigger.target.chooseToDiscard('弃置一张牌,或不能响应'+get.translation(trigger.card),'he').set('ai',function(card){
var num=_status.event.num;
if(num==0) return 0;
if(card.name=='shan') return num>1?2:0;
@ -1645,6 +2049,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
dynamicTranslate:{
twfengpo:function(player){
if(player.storage.twfengpo) return '当你使用【杀】或【决斗】指定唯一目标后你可观看目标角色的手牌并选择一项⒈摸X张牌。⒉令此牌的伤害值基数+XX为其手牌中的红色牌数。';
return '①当你使用【杀】或【决斗】指定唯一目标后你可观看目标角色的手牌并选择一项⒈摸X张牌。⒉令此牌的伤害值基数+XX为其手牌中的♦数。②当你杀死一名角色后你将〖凤魄①〗中的“♦数”改为“红色牌数”。';
},
},
translate:{
tw_beimihu:'TW卑弥呼',
nashime:'难升米',
@ -1731,6 +2141,25 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tw_yujin:'SP于禁',
xinzhenjun:'镇军',
xinzhenjun_info:'出牌阶段开始时你可以将一张牌交给一名其他角色令其选择是否使用一张不为黑色的【杀】。若其选择是则你于此【杀】结算完成后摸1+X张牌(X为此【杀】造成的伤害总点数)。若其选择否则你对其或其攻击范围内的一名其他角色造成1点伤害。',
tw_hucheer:'TW胡车儿',
twshenxing:'神行',
twshenxing_info:'锁定技。若你的装备区内没有坐骑牌,则你至其他角色的距离-1且手牌上限+1。',
twdaoji:'盗戟',
twdaoji_info:'出牌阶段限一次你可以弃置一张非基本牌并选择一名攻击范围内的角色获得其一张牌。若你以此法获得的牌为基本牌你摸一张牌装备牌你使用此牌并对其造成1点伤害。',
tw_hejin:'TW何进',
twmouzhu:'谋诛',
twmouzhu_info:'出牌阶段限一次你可以选择一名其他角色A。你令除A外所有体力值小于等于A的其他角色依次选择是否交给你一张牌。若你以此法获得的牌数X等于0你和所有进行选择的角色依次失去1点体力。大于0你令A选择视为对你使用一张伤害值基数为X的【杀】或【决斗】。',
twyanhuo:'延祸',
twyanhuo_info:'当你死亡时你可以选择一项①令一名其他角色弃置X张牌。②令X名其他角色依次弃置一张牌。X为你的牌数',
tw_mayunlu:'TW马云禄',
twfengpo:'凤魄',
twfengpo_info:'①当你使用【杀】或【决斗】指定唯一目标后你可观看目标角色的手牌并选择一项⒈摸X张牌。⒉令此牌的伤害值基数+XX为其手牌中的♦数。②当你杀死一名角色后你将〖凤魄①〗中的“♦数”改为“红色牌数”。',
tw_re_caohong:'TW手杀曹洪',
tw_re_caohong_ab:'曹洪',
twyuanhu:'援护',
twyuanhu_info:'出牌阶段限一次。你可将一张装备牌置入一名角色的装备区内。若此牌为武器牌你弃置与其距离为1的另一名角色区域的一张牌防具牌其摸一张牌坐骑牌其回复1点体力。若其的体力值或手牌数不大于你则你可摸一张牌且可以于本回合的结束阶段再发动一次〖援护〗。',
twjuezhu:'决助',
twjuezhu_info:'限定技。准备阶段,你可废除一个坐骑栏,令一名角色获得〖飞影〗并废除判定区。该角色死亡后,你恢复以此法废除的装备栏。',
tw_mobile:'移动版',
tw_yijiang:'一将成名TW',
tw_english:'英文版',

View File

@ -10169,7 +10169,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 2"
var card=result[0];
if(get.type(card)=='equip'){
if(!event.target.isDisabled(get.subtype(card))){
if(target.getCards('h').contains(card)&&target.hasUseTarget(card)){
event.target.chooseUseTarget(card,true,'nopopup');
game.delay();
}
@ -12192,7 +12192,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
guohuai:['guohuai','re_guohuai','xin_guohuai','ol_guohuai'],
jianyong:['re_jianyong','xin_jianyong','jianyong'],
panzhangmazhong:['xin_panzhangmazhong','re_panzhangmazhong','panzhangmazhong'],
yufan:['re_yufan','yufan'],
yufan:['xin_yufan','re_yufan','yufan'],
zhuran:['re_zhuran','xin_zhuran','zhuran','old_zhuran'],
liru:['re_liru','xin_liru','liru'],
fuhuanghou:['re_fuhuanghou','xin_fuhuanghou','fuhuanghou','old_fuhuanghou'],

View File

@ -4,6 +4,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'yingbian',
connect:true,
character:{
xuangongzhu:['female','jin',3,['gaoling','qimei','ybzhuiji'],['hiddenSkill']],
xinchang:['male','jin',3,['canmou','congjian']],
yangzhi:['female','jin',3,['wanyi','maihuo']],
yangyan:['female','jin',3,['xuanbei','xianwan']],
ol_huaxin:['male','wei',3,['caozhao','olxibing']],
@ -27,12 +29,218 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yingbian:{
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'],
yingbian_pack4:['zhongyan'],
yingbian_pack3:['jin_simazhao','jin_wangyuanji','duyu','weiguan','xuangongzhu'],
yingbian_pack4:['zhongyan','xinchang'],
yingbian_pack5:['yangyan','yangzhi'],
},
},
skill:{
gaoling:{
audio:2,
trigger:{player:'showCharacterAfter'},
hiddenSkill:true,
filter:function(event,player){
return event.toShow.contains('xuangongzhu')&&player!=_status.currentPhase&&game.hasPlayer(function(current){
return current.isDamaged();
});
},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt('gaoling'),'令一名角色回复1点体力',function(card,player,target){
return target.isDamaged();
}).set('ai',function(target){
var player=_status.event.player;
return get.recoverEffect(target,player,player);
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('gaoling',target);
target.recover();
}
},
},
qimei:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt('qimei'),'选择一名其他角色并获得“齐眉”效果',lib.filter.notMe).set('',function(target){
var player=_status.event.player;
return get.attitude(player,target)/(Math.abs(player.countCards('h')+2-target.countCards('h'))+1)
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('qimei',target);
player.storage.qimei_draw=target;
player.addTempSkill('qimei_draw',{player:'phaseBegin'});
game.delayx();
}
},
subSkill:{
draw:{
audio:'qimei',
charlotte:true,
forced:true,
trigger:{global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter','loseAfter','gainAfter']},
logTarget:function(event,player){
return player.storage.qimei_draw;
},
usable:1,
filter:function(event,player){
var target=player.storage.qimei_draw;
if(!target||!target.isIn()) return false;
if(event.name!='gain'||(event.player!=player&&event.player!=target)){
var evt1=event.getl(player);
if(!evt1||!evt1.hs||!evt1.hs.length){
var evt2=event.getl(target);
if(!evt2||!evt2.hs||!evt2.hs.length) return false;
}
}
return player.countCards('h')==target.countCards('h');
},
content:function(){
if(trigger.delay===false) game.delayx();
player.storage.qimei_draw.draw();
},
group:'qimei_hp',
onremove:true,
mark:'character',
intro:{content:'已和$组成齐眉组合'},
},
hp:{
audio:'qimei',
trigger:{global:'changeHp'},
charlotte:true,
forced:true,
logTarget:function(event,player){
return player.storage.qimei_draw;
},
usable:1,
filter:function(event,player){
var target=player.storage.qimei_draw;
if(!target||!target.isIn()) return false;
if(player!=event.player&&target!=event.player) return false;
return player.hp==target.hp;
},
content:function(){
game.delayx();
player.storage.qimei_draw.draw();
},
},
},
},
ybzhuiji:{
audio:2,
trigger:{player:'phaseUseBegin'},
direct:true,
content:function(){
'step 0'
var list=['摸两张牌并于出牌阶段结束时失去1点体力'];
if(player.isDamaged()) list.push('回复1点体力并于出牌阶段结束时弃置两张牌');
player.chooseControl('cancel2').set('choiceList',list).set('prompt',get.prompt('ybzhuiji')).set('ai',function(){
var player=_status.event.player;
if(player.isDamaged()&&player.countCards('h','tao')<player.getDamagedHp()) return 1;
return 'cancel2';
});
'step 1'
if(result.control!='cancel2'){
if(result.index==0) player.draw(2);
else player.recover();
player.addTempSkill('ybzhuiji_'+result.index,'phaseUseAfter');
}
},
subSkill:{
0:{
trigger:{player:'phaseUseEnd'},
forced:true,
charlotte:true,
content:function(){
player.loseHp();
},
},
1:{
trigger:{player:'phaseUseEnd'},
forced:true,
charlotte:true,
content:function(){
player.chooseToDiscard('he',2,true);
},
},
},
},
canmou:{
audio:2,
trigger:{global:'useCardToPlayer'},
direct:true,
filter:function(event,player){
if(!event.player.isMaxHandcard(true)||!event.isFirstTarget||get.type(event.card,null,false)!='trick') return false;
var info=get.info(event.card);
if(info.allowMultiple==false) return false;
if(event.targets&&!info.multitarget){
if(game.hasPlayer(function(current){
return !event.targets.contains(current)&&lib.filter.targetEnabled2(event.card,event.player,current);//&&lib.filter.targetInRange(event.card,event.player,current);
})){
return true;
}
}
return false;
},
content:function(){
'step 0'
var prompt2='为'+get.translation(trigger.card)+'增加一个目标'
player.chooseTarget(get.prompt('canmou'),function(card,player,target){
var player=_status.event.source;
return !_status.event.targets.contains(target)&&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.source;
return get.effect(target,trigger.card,player,_status.event.player);
}).set('targets',trigger.targets).set('card',trigger.card).set('source',trigger.player);
'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('canmou',event.targets);
trigger.targets.addArray(event.targets);
game.log(event.targets,'也成为了',trigger.card,'的目标');
}
},
},
congjian:{
audio:2,
trigger:{global:'useCardToTarget'},
logTarget:'target',
filter:function(event,player){
return event.target!=player&&event.targets.length==1&&get.type(event.card,null,false)=='trick'
&&event.target.isMaxHp(true)&&lib.filter.targetEnabled2(event.card,event.player,player);
},
check:function(event,player){
return get.effect(player,event.card,event.player,player)>0;
},
content:function(){
trigger.targets.push(player);
game.log(player,'也成为了',trigger.card,'的目标');
var next=game.createEvent('congjian_draw',false);
next.player=player;
event.next.remove(next);
trigger.getParent().after.push(next);
next.setContent(function(){
if(player.hasHistory('damage',function(evt){
return evt.card==event.parent.card;
})) player.draw(2);
});
},
},
wanyi:{
audio:2,
enable:'phaseUse',
@ -612,7 +820,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
hiddenSkill:true,
filter:function(event,player){
var target=_status.currentPhase;
return target&&target!=player&&target.countGainableCards(player,'he')>0;
return event.toShow.contains('jin_simayi')&&target&&target!=player&&target.countGainableCards(player,'he')>0;
},
direct:true,
content:function(){
@ -2543,6 +2751,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhongyan:' 钟琰 (?—?年)颍川人,王浑之妻。生卒年不详,约魏末晋初间前后在世。王浑的妻子钟琰,是颍川人,为魏太傅钟繇的曾孙女,父亲钟徽,为黄门郎。她平时广泛阅读各种书籍,因此几岁的时候就能撰写文章。她聪慧弘雅,善于啸咏,她的礼仪法度,为中表所推崇,她写有文集五卷。',
yangyan:'杨艳238年274年8月25日字琼芝弘农郡华阴县今陕西省华阴市晋武帝司马炎第一任皇后曹魏通事郎杨炳之女。自幼父母双亡为舅舅赵俊所养跟随继母段氏生活。聪明贤慧善于书法天生丽质娴熟女红嫁给了世子司马炎。泰始元年265年晋武帝即位建立西晋。泰始二年266年杨艳受册为皇后深得晋武帝宠幸生下三子三女包括晋惠帝司马衷。泰始十年274年去世时年三十七陪葬于峻阳陵谥号武元皇后。',
yangzhi:'杨芷259年292年3月6日字季兰小字男胤弘农郡华阴县今陕西省华阴市晋武帝司马炎第二任皇后东汉太尉杨震幼子杨奉后裔东汉末年东莱太守、蓩亭侯杨众曾孙女西晋太傅杨骏与嫡妻庞氏之女武元皇后杨艳堂妹。咸宁二年276年立为皇后史称“婉嫕有妇德 美映椒房”得宠于晋武帝。生渤海殇王早薨之后再无生育。其父杨骏擅权引起皇后贾南风忌恨贾南风联络汝南王司马亮、楚王司马玮发动政变杀死杨骏并唆使大臣上书状告杨芷谋反让晋惠帝司马衷将其贬为庶人押到金墉城居住。元康二年292年杨芷冻饿而死谥号武悼皇后。',
xinchang:'辛敞(生卒年不详),字泰雍,陇西人氏,是曹魏时代官员。卫尉辛毗之子,辛宪英之弟。',
xuangongzhu:'高陵宣公主司马氏晋宣帝司马懿第二女。司马氏下嫁杜预。其兄弟司马炎登基时司马氏已经去世。泰始年间265年—274年追赠高陵公主。',
},
characterTitle:{},
perfectPair:{},
@ -2704,6 +2914,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
wanyi_info:'每回合每项限一次。出牌阶段,你可以将一张具有应变效果的牌当做【逐近弃远】/【出其不意】/【水淹七军】/【洞烛先机】使用。',
maihuo:'埋祸',
maihuo_info:'①当你成为其他角色使用【杀】的目标后,若此【杀】不为转化牌且有对应的实体牌且其武将牌上没有“祸”且你是此牌的唯一目标,则你可以令此牌对你无效,并将此【杀】置于其武将牌上,称为“祸”。②一名其他角色的出牌阶段开始时,若其武将牌上有“祸”,则其对你使用此“祸”(有距离限制且计入次数限制)。③当你对有“祸”的其他角色造成伤害后,你移去其“祸”。',
xinchang:'辛敞',
canmou:'参谋',
canmou_info:'一名角色使用普通锦囊牌指定第一个目标时,若其手牌数为全场唯一最多,则你可以为此牌增加一个额外目标。',
congjian:'从鉴',
congjian_info:'一名其他角色成为普通锦囊牌的唯一目标时,若其体力值为全场唯一最多,则你也可以成为此牌的目标。此牌结算结束后,若你受到过渠道为此牌的伤害,则你摸两张牌。',
xuangongzhu:'宣公主',
gaoling:'高陵',
gaoling_info:'隐匿技。当你于回合外明置此武将牌时你可以令一名角色回复1点体力。',
qimei:'齐眉',
qimei_info:'准备阶段,你可以选择一名其他角色。你获得如下效果直到下回合开始:①每回合限一次,当你或其获得牌/失去手牌后,若你与其手牌数相等,则其摸一张牌。②每回合限一次,当你或其的体力值变化后,若你与其体力值相等,则其摸一张牌。',
ybzhuiji:'追姬',
ybzhuiji_info:'出牌阶段开始时你可选择一项①摸两张牌并于出牌阶段结束时失去1点体力②回复1点体力并于出牌阶段结束时弃置两张牌。',
yingbian_pack1:'文德武备·理',
yingbian_pack2:'文德武备·备',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.112',
'v1.9.112.1',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -4777,6 +4777,16 @@ window.noname_asset_list=[
'image/character/sunhanhua.jpg',
'image/character/xinping.jpg',
'image/character/yj_caocao.jpg',
'image/character/caojinyu.jpg',
'image/character/ol_dongzhao.jpg',
'image/character/sp_ol_zhanghe.jpg',
'image/character/tw_hejin.jpg',
'image/character/tw_hucheer.jpg',
'image/character/tw_mayunlu.jpg',
'image/character/tw_re_caohong.jpg',
'image/character/xin_yufan.jpg',
'image/character/xinchang.jpg',
'image/character/xuangongzhu.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -10619,6 +10619,7 @@
},event.chooseTime);
}
if(event.isMine()){
delete ui.selected.guanxing_button;
var list=event.list,filterMove=event.filterMove,filterOk=event.filterOk;
_status.imchoosing=true;
var event=_status.event;
@ -14941,18 +14942,6 @@
}
return null;
}
var info=get.info(card,false);
if(!info.nodelay&&event.animate!=false){
if(event.delayx!==false){
if(event.waitingForTransition){
_status.waitingForTransition=event.waitingForTransition;
game.pause();
}
else{
game.delayx();
}
}
}
"step 4"
if(event.all_excluded) return;
if(!event.triggeredTargets1) event.triggeredTargets1=[];
@ -14994,6 +14983,19 @@
event.redo();
}
"step 6"
var info=get.info(card,false);
if(!info.nodelay&&event.animate!=false){
if(event.delayx!==false){
if(event.waitingForTransition){
_status.waitingForTransition=event.waitingForTransition;
game.pause();
}
else{
game.delayx();
}
}
}
"step 7"
if(event.all_excluded) return;
if(!event.triggeredTargets3) event.triggeredTargets3=[];
var target=event.getTriggerTarget(targets,event.triggeredTargets3);
@ -15013,7 +15015,7 @@
if(event.forceDie) next.forceDie=true;
event.redo();
}
"step 7"
"step 8"
if(event.all_excluded) return;
if(!event.triggeredTargets4) event.triggeredTargets4=[];
var target=event.getTriggerTarget(targets,event.triggeredTargets4);
@ -15036,7 +15038,7 @@
}
event.redo();
}
"step 8"
"step 9"
var info=get.info(card,false);
if(info.contentBefore){
var next=game.createEvent(card.name+'ContentBefore');
@ -15058,7 +15060,7 @@
next.type='precard';
if(event.forceDie) next.forceDie=true;
}
"step 9"
"step 10"
if(event.all_excluded) return;
var info=get.info(card,false);
if(num==0&&targets.length>1){
@ -15122,13 +15124,13 @@
game.delayx(0.5);
}
}
"step 10"
"step 11"
if(event.all_excluded) return;
if(!get.info(event.card,false).multitarget&&num<targets.length-1&&!event.cancelled){
event.num++;
event.goto(9);
event.goto(10);
}
"step 11"
"step 12"
if(get.info(card,false).contentAfter){
var next=game.createEvent(card.name+'ContentAfter');
next.setContent(get.info(card,false).contentAfter);
@ -15140,7 +15142,7 @@
next.type='postcard';
if(event.forceDie) next.forceDie=true;
}
"step 12"
"step 13"
if(event.postAi){
event.player.logAi(event.targets,event.card);
}
@ -15154,7 +15156,7 @@
else{
event.finish();
}
"step 13"
"step 14"
event._oncancel();
},
useSkill:function(){
@ -46235,8 +46237,8 @@
};
ui.click.touchpop();
ui.click.intro.call(this,{
clientX:(rect.left+rect.width)*game.documentZoom,
clientY:(rect.top)*game.documentZoom
clientX:(rect.left+rect.width),
clientY:(rect.top)
});
// var nodes=[];
// _status.clickingidentity=[this.parentNode,nodes];
@ -51497,7 +51499,8 @@
}
}
if(method=='attack') return m;
return n;
if(method=='unchecked') return n;
return Math.max(1,n);
},
info:function(item,player){
if(typeof item=='string'){

View File

@ -1,7 +1,8 @@
window.noname_update={
version:'1.9.112.0.1',
update:'1.9.112',
version:'1.9.112.1',
update:'1.9.112.0.1',
changeLog:[
'新武将',
'bug修复',
],
files:[
@ -16,11 +17,11 @@ window.noname_update={
//'card/swd.js',
//'card/yunchou.js',
//'card/yingbian.js',
'card/yongjian.js',
//'card/yongjian.js',
//'card/zhenfa.js',
//'card/zhulu.js',
//'character/diy.js',
//'character/extra.js',
'character/extra.js',
//'character/hearth.js',
//'character/gujian.js',
//'character/gwent.js',
@ -30,18 +31,18 @@ window.noname_update={
//'character/offline.js',
//'character/old.js',
//'character/ow.js',
//'character/rank.js',
//'character/refresh.js',
//'character/shenhua.js',
'character/rank.js',
'character/refresh.js',
'character/shenhua.js',
'character/sp.js',
'character/sp2.js',
//'character/tw.js',
//'character/standard.js',
'character/tw.js',
'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
//'character/yingbian.js',
//'character/yijiang.js',
'character/yingbian.js',
'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
//'layout/default/layout.css',
@ -49,13 +50,13 @@ window.noname_update={
//'layout/default/menu.css',
//'layout/nova/layout.css',
//'layout/mobile/equip.css',
//'mode/boss.js',
'mode/boss.js',
//'mode/brawl.js',
//'mode/chess.js',
//'mode/connect.js',
//'mode/doudizhu.js',
//'mode/guozhan.js',
//'mode/identity.js',
'mode/guozhan.js',
'mode/identity.js',
//'mode/single.js',
//'mode/stone.js',
//'mode/tafang.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

View File

@ -1011,6 +1011,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
boss_zhuanlunwang:['male','qun',6,['boss_modao','boss_lunhui','boss_wangsheng','boss_zlfanshi'],['shu','hiddenboss','bossallowed']],
boss_mengpo:['female','qun',3,['boss_shiyou','boss_wanghun','boss_wangshi'],['shu','hiddenboss','bossallowed']],
boss_dizangwang:['male','qun',8,['boss_bufo','boss_wuliang','boss_dayuan','boss_diting'],['shu','hiddenboss','bossallowed']],
//boss_shikieiki:['female','qun',8,['boss_yingzhong'],['qun','hiddenboss','bossallowed']],
boss_lvbu1:['male','shen',8,['mashu','wushuang','boss_baonu','boss_jingjia','boss_aozhan'],['qun','boss','bossallowed'],'wei'],
boss_lvbu2:['male','shen',6,['mashu','wushuang','xiuluo','shenwei','shenji'],['qun','hiddenboss','bossallowed'],'qun'],
@ -2042,6 +2043,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
skill:{
boss_yingzhong:{
//Unfinished
},
niaobaidaowenha_skill:{
trigger:{player:'loseMaxHpAfter'},
direct:true,
@ -9612,22 +9616,25 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
"linglongshimandai":"玲珑狮蛮带",
"linglongshimandai_info":"当其他角色使用牌指定你为唯一目标后,你可以进行一次判定,若判定结果为红桃,则此牌对你无效。",
boss_qinguangwang:'秦广王',
boss_qinguangwang_ab:'秦广王',
boss_qinguangwang:'秦广王·蒋子文',
boss_panguan:'判官',
boss_panguan_info:' 锁定技,你不能成为延时类锦囊的目标。',
boss_juhun:'拘魂',
boss_juhun_info:'锁定技,结束阶段,你令随机一名其他角色的武将牌翻面或横置。',
boss_wangxiang:'望乡',
boss_wangxiang_info:'锁定技,当你死亡时,你令所有其他角色弃置其装备区内的所有牌。',
boss_chujiangwang:'楚江王',
boss_chujiangwang_ab:'楚江王',
boss_chujiangwang:'楚江王·厉温',
boss_bingfeng:'冰封',
boss_bingfeng_info:'锁定技,你死亡时,若杀死你的角色武将牌是正面朝上, 你令其翻面。',
boss_songdiwang:'宋帝王',
boss_songdiwang:'余懃',
boss_heisheng:'黑绳',
boss_heisheng_info:'锁定技,你死亡时,横置所有场上角色。',
boss_shengfu:'绳缚',
boss_shengfu_info:'锁定技,你的回合结束时,随机弃置一张场上其他角色的坐骑牌。',
boss_wuguanwang:'五官王',
boss_wuguanwang_ab:'五官王',
boss_wuguanwang:'五官王·吕岱',
boss_zhiwang:'治妄',
boss_zhiwang_info:'锁定技,当其他角色于摸牌阶段外获得牌时,你随机弃置其一张手牌。',
boss_zhiwang_planetarian:'注意事项',
@ -9636,48 +9643,59 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
boss_gongzheng_info:'锁定技,准备阶段,若你判定区有牌,你随机弃置一张你判定区的牌。',
boss_xuechi:'血池',
boss_xuechi_info:'锁定技你的回合结束时令随机一名其他角色失去2点体力。',
boss_yanluowang:'阎罗王',
boss_yanluowang_ab:'阎罗王',
boss_yanluowang:'阎罗王·包拯',
boss_tiemian:'铁面',
boss_tiemian_info:'锁定技,你的防具区没有牌时,视为你装备【仁王盾】。',
boss_zhadao:'铡刀',
boss_zhadao_info:'锁定技,你使用【杀】指定目标后,你令目标角色防具无效。',
boss_zhuxin:'诛心',
boss_zhuxin_info:'锁定技你死亡时你令场上血量最少的一名其他角色受到2点伤害。',
boss_bianchengwang:'卞城王',
boss_bianchengwang_ab:'卞城王',
boss_bianchengwang:'卞城王·毕元宾',
boss_leizhou:'雷咒',
boss_leizhou_info:'锁定技准备阶段你对随机一名其他角色造成1点雷属性伤害',
boss_leifu:'雷缚',
boss_leifu_info:'锁定技,你的回合结束时,随机横置一名其他角色。',
boss_leizhu:'雷诛',
boss_leizhu_info:'锁定技你死亡时对所有其他角色造成依次造成1点雷属性伤害。',
boss_taishanwang:'泰山王',
boss_taishanwang_ab:'泰山王',
boss_taishanwang:'泰山王·董和',
boss_fudu:'服毒',
boss_fudu_info:'锁定技其他角色使用【桃】时你令随机另一名其他角色失去1点体力。',
boss_kujiu:'苦酒',
boss_kujiu_info:'锁定技其他角色准备阶段你令其失去1点体力然后该角色视为使用一张【酒】。',
boss_renao:'热恼',
boss_renao_info:'锁定技你死亡时你令随机一名其他角色受到3点火属性伤害。',
boss_dushiwang:'都市王',
boss_dushiwang_ab:'都市王',
boss_dushiwang:'都市王·黄中庸',
boss_remen:'热闷',
boss_remen_info:'锁定技,若你的装备区内没有防具牌,则【南蛮入侵】、【万箭齐发】和普通【杀】对你无效。',
boss_zhifen:'炙焚',
boss_zhifen_info:'锁定技准备阶段你随机选择一名其他角色获得其1张手牌没有则不获得并对其造成1点火属性伤害。',
boss_huoxing:'火刑',
boss_huoxing_info:'锁定技你死亡时你对所有其他角色造成1点火属性伤害。',
boss_pingdengwang:'平等王',
boss_pingdengwang_ab:'平等王',
boss_pingdengwang:'平等王·陆游',
boss_suozu:'锁足',
boss_suozu_info:'锁定技,准备阶段,你令所有其他角色横置。',
boss_abi:'阿鼻',
boss_abi_info:'锁定技锁定技你受到伤害时你对伤害来源造成伤害的角色造成1点随机属性伤害雷或火随机。',
boss_pingdeng:'平等',
boss_pingdeng_info:'锁定技你死亡时你对体力最多的一名其他角色造成2点随机属性伤害属性随机然后再对一名体力最多的其他角色造成1点随机属性伤害属性随机。',
boss_zhuanlunwang:'转轮王',
boss_zhuanlunwang_ab:'转轮王',
boss_zhuanlunwang:'转轮王·薛礼',
boss_lunhui:'轮回',
boss_lunhui_info:'锁定技准备阶段若你的体力小于等于2则你与场上除你以外体力最高且大于2的角色交换体力值。',
boss_wangsheng:'往生',
boss_wangsheng_info:'锁定技,你的出牌阶段开始时,视为你随机使用一张【南蛮入侵】或【万箭齐发】。',
boss_zlfanshi:'反噬',
boss_zlfanshi_info:'锁定技每个回合你受到第一次伤害后若再次受到伤害则对随机一名其他角色造成1点伤害。',
boss_shikieiki_ab:'四季映姫',
boss_shikieiki:'四季映姬·夜魔仙那度',
boss_yingzhong:'映冢',
boss_yingzhong_info:'锁定技。你登场后的第一个回合开始时,你随机获得两个“阴间武将”的全部技能。',
boss_yingzhong_append:'<span style="font-family:yuanli">四季映姬到阴曹地府<br>——阴(映)到家了!</span>',
//孟婆:
"boss_mengpo":"孟婆",
"boss_shiyou":"拾忧",

View File

@ -361,7 +361,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
guozhan_double:['gz_tangzi','gz_liuqi','gz_mengda','gz_mifangfushiren','gz_zhanglu','gz_shixie','gz_xuyou','gz_xiahouba','gz_panjun','gz_xf_sufei','gz_wenqin','gz_pengyang'],
guozhan_yexinjia:['gz_zhonghui','gz_simazhao','gz_gongsunyuan','gz_sunchen'],
guozhan_zongheng:['gz_huaxin','gz_luyusheng','gz_zongyu','gz_miheng','gz_fengxi','gz_dengzhi','gz_re_xunchen'],
guozhan_others:["gz_lingcao","gz_lifeng","gz_beimihu","gz_jianggan","gz_key_ushio","gz_sp_duyu","gz_re_nanhualaoxian","gz_zhouyi"],
guozhan_others:["gz_lingcao","gz_lifeng","gz_beimihu","gz_jianggan","gz_key_ushio","gz_sp_duyu","gz_re_nanhualaoxian","gz_zhouyi","gz_lvlingqi"],
}
},
characterPack:{
@ -515,6 +515,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gz_re_nanhualaoxian:['male','qun',4,['gzgongxiu','gzjinghe']],
gz_zhouyi:['female','wu',3,['gzzhukou','gzduannian','gzlianyou']],
gz_re_xunchen:['male','qun',3,['gzfenglve','gzanyong']],
gz_lvlingqi:['female','qun',4,['guowu','gzshenwei','gzzhuangrong']],
gz_cuimao:['male','wei',3,['gzzhengbi','gzfengying'],[]],
gz_yujin:['male','wei',4,['gzjieyue'],['gzskin']],
@ -544,6 +545,42 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},
skill:{
//吕玲绮
gzshenwei:{
audio:'llqshenwei',
mainSkill:true,
init:function(player){
if(player.checkMainSkill('gzshenwei')){
player.removeMaxHp();
}
},
trigger:{player:'phaseDrawBegin2'},
forced:true,
filter:(event)=>!event.numFixed,
preHidden:true,
content:function(){
trigger.num+=2;
},
mod:{
maxHandcard:(player,num)=>num+2,
},
},
gzzhuangrong:{
audio:'zhuangrong',
enable:'phaseUse',
usable:1,
filter:function(event,player){
return !player.hasSkill('wushuang')&&player.hasCard(function(card){
return get.type(card,player)=='trick';
},'h');
},
filterCard:function(card,player){
return get.type(card,player)=='trick';
},
content:function(){
player.addTempSkill('wushuang','phaseUseEnd');
},
},
//荀谌
gzfenglve:{
audio:'refenglve',
@ -11068,6 +11105,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
pengyang:'彭羕',
sunchen:'孙綝',
gz_dengzhi:'邓芝',
gzshenwei:'神威',
gzshenwei_info:'主将技此武将牌的阴阳鱼个数减0.5。摸牌阶段,你令额定摸牌数+2。你的手牌上限+2。',
gzzhuangrong:'妆戎',
gzzhuangrong_info:'出牌阶段限一次。你可弃置一张锦囊牌并获得〖无双〗至出牌阶段结束。',
gzfenglve:'锋略',
gzfenglve_info:'出牌阶段限一次,你可以和一名其他角色进行拼点。若你赢,其将区域内的两张牌交给你;若你输,你交给其一张牌。',
gzfenglve_zongheng:'锋略·纵横',

View File

@ -2474,7 +2474,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
this.ai.shown=1;
this.setIdentity();
if(this.special_identity){
this.node.identity.firstChild.innerHTML=get.translation(game.players[i].special_identity+'_bg');
this.node.identity.firstChild.innerHTML=get.translation(this.special_identity+'_bg');
}
if(this.identity=='zhu'){
this.isZhu=true;