|
@ -247,16 +247,16 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
if(target==player){
|
||||
if(typeof _status.event.filterCard=='function'&&
|
||||
_status.event.filterCard({name:'huogong'},player,_status.event)){
|
||||
return -1.5;
|
||||
return -1.15;
|
||||
}
|
||||
if(_status.event.skill){
|
||||
var viewAs=get.info(_status.event.skill).viewAs;
|
||||
if(viewAs=='huogong') return -1.5;
|
||||
if(viewAs&&viewAs.name=='huogong') return -1.5;
|
||||
if(viewAs=='huogong') return -1.15;
|
||||
if(viewAs&&viewAs.name=='huogong') return -1.15;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
return -1.5;
|
||||
return -1.15;
|
||||
}
|
||||
},
|
||||
tag:{
|
||||
|
|
151
character/diy.js
|
@ -95,6 +95,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ns_chentai:['male','wei',4,['nsweiyuan','nsjuxian']],
|
||||
ns_zhangning:['female','qun',3,['nsfuzhou','nsguidao','nstaiping']],
|
||||
ns_yanghu:['male','jin',3,['nsbizhao','nsqingde','nsyidi'],['hiddenSkill']],
|
||||
ns_zanghong:['male','qun',4,['nsshimeng']],
|
||||
ns_ruanji:['male','wei',3,['nsshizui','nsxiaoye']],
|
||||
|
||||
ns_zhangwei:['female','shu',3,['nsqiyue','nsxuezhu']],
|
||||
diy_wenyang:['male','wei','4/6',['lvli','choujue']],
|
||||
|
@ -196,6 +198,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"ns_huangchengyan","ns_sunchensunjun","ns_yuanxi","ns_caoshuang"],
|
||||
diy_yijiang2:["key_yuuki","key_tenzen","key_kyouko","key_kotarou","key_kyou",
|
||||
"ns_chentai","ns_huangwudie","ns_sunyi","ns_zhangning","ns_yanghu"],
|
||||
diy_yijiang3:['ns_ruanji','ns_zanghong'],
|
||||
diy_tieba:["ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua","ns_luyusheng"],
|
||||
diy_fakenews:["diy_wenyang","ns_zhangwei","ns_caimao","ns_chengpu"],
|
||||
diy_xushi:["diy_feishi","diy_hanlong","diy_liufu","diy_liuyan","diy_liuzan","diy_tianyu","diy_xizhenxihong","diy_yangyi","diy_zaozhirenjun"],
|
||||
|
@ -307,6 +310,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ns_sunyi:'#g无民氏4251',
|
||||
ns_zhangning:'#g如颍隋行1314',
|
||||
ns_yanghu:'#ginCenv',
|
||||
ns_ruanji:'#g伯约的崛起',
|
||||
ns_zanghong:'#g阿七',
|
||||
|
||||
ns_luyusheng:'#g猫咪大院 - 魚と水',
|
||||
ns_caimao:'#gP尔号玩家◆',
|
||||
|
@ -514,6 +519,141 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_lucia:['key_shizuru'],
|
||||
},
|
||||
skill:{
|
||||
//阮籍
|
||||
nsshizui:{
|
||||
trigger:{target:'useCardToTargeted'},
|
||||
usable:1,
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
var type=get.type(event.card,null,false);
|
||||
return (type=='basic'||type=='trick')&&player.countCards('he')>0&&player.hasUseTarget({name:'jiu'},null,true);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var suit=get.suit(trigger.card),cards=trigger.cards.filterInD();
|
||||
var str='弃置一张牌并视为使用一张【酒】';
|
||||
if(lib.suit.contains(suit)) str+=(';若弃置'+get.translation(suit)+'牌,则'+get.translation(trigger.card)+'对你无效');
|
||||
if(cards.length) str+=(';若弃置♣牌则获得'+get.translation(cards));
|
||||
str+='。';
|
||||
var next=player.chooseToDiscard('he',get.prompt('nsshizui'),str);
|
||||
next.set('val1',cards.length?get.value(cards,player):0);
|
||||
next.set('val2',-get.effect(player,trigger.card,trigger.player,player));
|
||||
next.set('suit',suit);
|
||||
next.set('ai',function(card){
|
||||
var base=2,suit=get.suit(card);
|
||||
if(suit=='club') base+=_status.event.val1;
|
||||
if(suit==_status.event.suit) base+=_status.event.val2;
|
||||
return base-get.value(card);
|
||||
}).logSkill='nsshizui';
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
event.suit1=get.suit(result.cards[0],player);
|
||||
player.chooseUseTarget('jiu',true);
|
||||
}
|
||||
else{
|
||||
player.storage.counttrigger.nsshizui--;
|
||||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
var suit1=event.suit1,suit2=get.suit(trigger.card,false);
|
||||
if(suit1==suit2&&lib.suit.contains(suit1)) trigger.excluded.add(player);
|
||||
if(suit1=='club'){
|
||||
var cards=trigger.cards.filterInD();
|
||||
if(cards.length>0) player.gain(cards,'gain2');
|
||||
}
|
||||
},
|
||||
},
|
||||
nsxiaoye:{
|
||||
trigger:{global:'phaseJieshuBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player.hasHistory('useCard',function(evt){
|
||||
return evt.card.name=='jiu';
|
||||
})&&event.player.hasHistory('useCard',function(evt){
|
||||
return (evt.card.name=='sha'||get.type(evt.card)=='trick')&&player.hasUseTarget({
|
||||
name:evt.card.name,
|
||||
nature:evt.card.nature,
|
||||
isCard:true,
|
||||
});
|
||||
})
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=[];
|
||||
trigger.player.getHistory('useCard',function(evt){
|
||||
if(evt.card.name!='sha'&&get.type(evt.card)!='trick') return;
|
||||
if(evt.card.name=='sha'&&evt.card.nature) list.add('sha:'+evt.card.nature);
|
||||
else list.add(evt.card.name);
|
||||
});
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(list[i].indexOf('sha:')==0) list[i]=['基本','','sha',list[i].slice(4)];
|
||||
else list[i]=[get.type(list[i]),'',list[i]];
|
||||
}
|
||||
player.chooseButton([get.prompt('nsxiaoye'),[list,'vcard']]).set('filterButton',function(button){
|
||||
return player.hasUseTarget({name:button.link[2],nature:button.link[3],isCard:true});
|
||||
}).set('ai',function(button){
|
||||
return player.getUseValue({name:button.link[2],nature:button.link[3],isCard:true});
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('nsxiaoye');
|
||||
player.chooseUseTarget(true,{name:result.links[0][2],nature:result.links[0][3],isCard:true});
|
||||
}
|
||||
},
|
||||
},
|
||||
//臧洪
|
||||
nsshimeng:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
selectTarget:[1,Infinity],
|
||||
filterTarget:true,
|
||||
contentBefore:function(){
|
||||
event.getParent()._nsshimeng_count=[0,0];
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(!target.isIn()){
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
target.chooseToUse('使用一张【杀】,或摸一张牌',function(card,player){
|
||||
if(get.name(card)!='sha') return false;
|
||||
return lib.filter.cardEnabled.apply(this,arguments);
|
||||
}).set('addCount',false);
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
event.getParent()._nsshimeng_count[0]++;
|
||||
}
|
||||
else{
|
||||
event.getParent()._nsshimeng_count[1]++;
|
||||
target.draw();
|
||||
}
|
||||
},
|
||||
contentAfter:function(){
|
||||
var list=event.getParent()._nsshimeng_count;
|
||||
if(list[0]<list[1]){
|
||||
player.changeHujia(1);
|
||||
player.loseHp();
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:3.05,
|
||||
result:{
|
||||
player:function(player,target){
|
||||
var att=get.attitude(player,target);
|
||||
if(att<=0) return 0;
|
||||
if(player.hp>1||player.countCards('hs',['tao','jiu'])) return 1;
|
||||
if(!ui.selected.targets.length){
|
||||
if(target!=player) return 0;
|
||||
if(player.hasSha()) return 1;
|
||||
return 0;
|
||||
}
|
||||
if(ui.selected.targets.length>1&&!target.hasSha()) return 0;
|
||||
return 1;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
tenzen_fenghuan:{
|
||||
trigger:{global:'useCardAfter'},
|
||||
direct:true,
|
||||
|
@ -16216,6 +16356,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
moshou_info:'锁定技,你不能成为乐不思蜀和兵粮寸断的目标。',
|
||||
xicai_info:'你可以立即获得对你造成伤害的牌',
|
||||
diyjianxiong_info:'锁定技,在身份局中,在你回合内死亡的角色均视为反贼,国战中,在你回合内死亡的角色若与你势力相同则随机改为另一个势力',
|
||||
|
||||
ns_zanghong:'臧洪',
|
||||
nsshimeng:'誓盟',
|
||||
nsshimeng_info:'出牌阶段限一次,你可以选择任意名角色。这些角色依次选择一项:⒈摸一张牌。⒉使用一张【杀】。然后若选择前者角色数大于选择后者的角色数,则你获得1点护甲并失去1点体力。',
|
||||
ns_ruanji:'阮籍',
|
||||
nsshizui:'酾醉',
|
||||
nsshizui_info:'每回合限一次。当你成为基本牌或普通锦囊牌的目标后,你可以弃置一张牌,然后视为使用一张【酒】。若你弃置的牌与其使用的牌花色相同,则此牌对你无效;若你弃置的牌为♣,则你获得其使用的牌。',
|
||||
nsxiaoye:'啸野',
|
||||
nsxiaoye_info:'一名角色的结束阶段开始时,若你于当前回合內使用过【酒】,则你可以视为使用一张其于本回合内使用过的【杀】或普通锦囊牌。',
|
||||
|
||||
junk_zhangrang:'四花张让',
|
||||
junktaoluan:'滔乱',
|
||||
junktaoluan3:'滔乱',
|
||||
|
@ -16238,6 +16388,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
diy_key:'论外',
|
||||
diy_yijiang:'设计比赛2020',
|
||||
diy_yijiang2:'设计比赛2021',
|
||||
diy_yijiang3:'设计比赛2022',
|
||||
diy_fakenews:'假新闻',
|
||||
diy_trashbin:'垃圾桶',
|
||||
old_jiakui:'贾逵重制',
|
||||
|
|
|
@ -5973,7 +5973,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
dengji_info:'觉醒技,准备阶段,若你武将牌上的「储」数不小于3,则你减1点体力上限并获得所有「储」,然后获得技能〖天行〗和〖奸雄〗',
|
||||
tianxing:'天行',
|
||||
tianxing_info:'觉醒技,准备阶段,若你武将牌上的「储」数不小于3,则你减1点体力上限并获得所有「储」,然后失去技能〖储元〗,选择获得以下技能中的一个:〖仁德〗/〖制衡〗/〖乱击〗/〖行动〗',
|
||||
shen_zhenji:'神甄姬',
|
||||
shen_zhenji:'神甄宓',
|
||||
shenfu:'神赋',
|
||||
shenfu_info:'回合结束时,若你的手牌数为:奇数,你可对一名其他角色造成1点伤害。若其死亡,你可重复此流程。偶数,你可选择一名角色,你令其摸一张牌或弃置一张手牌。若其手牌数等于体力值,你可重复此流程。',
|
||||
qixian:'七弦',
|
||||
|
|
|
@ -1910,13 +1910,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
//每个音符的开始时间点(毫秒,相对未偏移的开始播放时间)
|
||||
timeleap:[1047,3012,4978,5469,5961,6452,6698,7435,8909,10875,12840],
|
||||
//开始播放时间的偏移量(毫秒)
|
||||
current:-546,
|
||||
current:-110,
|
||||
//判定栏高度(相对整个对话框高度比例)
|
||||
judgebar_height:0.14,
|
||||
judgebar_height:0.16,
|
||||
//Good/Great/Prefect的位置判定范围(百分比,相对于整个对话框。以滑条的底部作为判定基准)
|
||||
range1:[86,110],
|
||||
range2:[92,104],
|
||||
range3:[96,100],
|
||||
range1:[84,110],
|
||||
range2:[90,104],
|
||||
range3:[94,100],
|
||||
//滑条每相对于整个对话框下落1%所需的时间(毫秒)
|
||||
speed:25,
|
||||
},
|
||||
|
@ -1924,13 +1924,40 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
name:'竹取飛翔 ~ Lunatic Princess',
|
||||
filename:'taketori_hishou',
|
||||
timeleap:[1021,1490,1959,2896,3834,4537,4771,5709,6646,7585,8039,8494,9403,10291,11180,11832,12049,12920,13345,13771,14196],
|
||||
current:-500,
|
||||
judgebar_height:0.14,
|
||||
range1:[86,110],
|
||||
range2:[92,104],
|
||||
range3:[96,100],
|
||||
current:-110,
|
||||
judgebar_height:0.16,
|
||||
range1:[84,110],
|
||||
range2:[90,104],
|
||||
range3:[94,100],
|
||||
speed:25,
|
||||
judgebar_color:'linear-gradient(rgba(240, 120, 123, 1), rgba(230, 115, 113, 1))',
|
||||
node_color:'linear-gradient(rgba(250, 170, 190, 1), rgba(240, 160, 180, 1))',
|
||||
judgebar_color:'linear-gradient(rgba(240, 120, 243, 1), rgba(245, 106, 230, 1))',
|
||||
},
|
||||
{
|
||||
name:'ignotus',
|
||||
filename:'ignotus',
|
||||
timeleap:[0,1412,2824,4235,5647,5824,7059,8294,8471,9882,10941,11294,12000,12706,13412,14118,14824,15529,15882,16059,16235,16412,16588],
|
||||
current:-110,
|
||||
judgebar_height:0.16,
|
||||
range1:[84,110],
|
||||
range2:[90,104],
|
||||
range3:[94,100],
|
||||
speed:25,
|
||||
node_color:'linear-gradient(rgba(240, 250, 240, 1), rgba(230, 240, 230, 1))',
|
||||
judgebar_color:'linear-gradient(rgba(161, 59, 150, 1), rgba(58, 43, 74, 1))',
|
||||
},
|
||||
{
|
||||
name:'Super Mario 3D World Theme',
|
||||
filename:'sm3dw_overworld',
|
||||
timeleap:[0,1071,1518,2054,4018,4286,5357,6429,7500,8571,9643,10714,11786,12321,12589,12857,13929,15000,16071,17143,18214,18482,18750,19018,19286,20357],
|
||||
current:-110,
|
||||
judgebar_height:0.16,
|
||||
range1:[84,110],
|
||||
range2:[90,104],
|
||||
range3:[94,100],
|
||||
speed:25,
|
||||
node_color:'linear-gradient(rgba(120, 130, 240, 1), rgba(100, 100, 230, 1))',
|
||||
judgebar_color:'linear-gradient(rgba(230, 40, 30, 1), rgba(220, 30, 10, 1))',
|
||||
},
|
||||
],
|
||||
derivation:'chongxu_faq',
|
||||
|
@ -9460,7 +9487,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
},
|
||||
//界伏皇后
|
||||
//界伏寿
|
||||
xinzhuikong:{
|
||||
audio:2,
|
||||
trigger:{global:'phaseZhunbeiBegin'},
|
||||
|
@ -16256,7 +16283,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xinduodao_info:'当你受到伤害后,你可以获得伤害来源装备区里的武器牌。',
|
||||
xinanjian:'暗箭',
|
||||
xinanjian_info:'锁定技,当你使用【杀】指定目标后,若你不在目标角色攻击范围内,你选择一项:1. 令其无法响应此【杀】;2. 其受到此【杀】造成的伤害+1。',
|
||||
xin_fuhuanghou:'手杀伏皇后',
|
||||
xin_fuhuanghou:'手杀伏寿',
|
||||
xinzhuikong:'惴恐',
|
||||
xinzhuikong_info:'每轮限一次,其他角色的回合开始时,若其体力值不小于你,你可与其拼点。若你赢,其本回合无法使用牌指定除其以外的角色为目标;若你没赢,你获得其拼点的牌,然后其视为对你使用一张【杀】。',
|
||||
xinqiuyuan:'求援',
|
||||
|
@ -16615,7 +16642,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
chongxu:'冲虚',
|
||||
chongxu_info:'出牌阶段限一次,你可以随机演奏一首音乐,并根据完成度来获得相应的分数(至多五分)。然后你可修改〖妙剑〗或〖莲华〗(消耗3分),并使用剩余的分数进行摸牌(每张2分)。',
|
||||
chongxu_faq:'目前的曲库',
|
||||
chongxu_faq_info:' <br>《鸟之诗》- 折户伸治<br>《竹取飛翔 ~ Lunatic Princess》- ZUN',
|
||||
chongxu_faq_info:' <br>《鸟之诗》- 折户伸治<br>《竹取飛翔 ~ Lunatic Princess》- ZUN<br>《ignotus》- ak+q<br>《Super Mario 3D World Theme》- 横田真人',
|
||||
miaojian:'妙剑',
|
||||
miaojian_info:'出牌阶段限一次。你可将一张【杀】当做刺【杀】使用,或将一张锦囊牌当做【无中生有】使用。',
|
||||
miaojian1:'妙剑·改',
|
||||
|
@ -16695,7 +16722,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
duanbi_info:'出牌阶段限一次。若场上所有角色的手牌数之和大于角色数之和的二倍,则你可以令所有其他角色各弃置X张手牌(X为该角色手牌数的一半且向下取整且至多为3)。然后你可选择一名角色,令其随机获得三张以此法被弃置的牌。',
|
||||
tongduo:'统度',
|
||||
tongduo_info:'每回合限一次。当你成为其他角色使用牌的唯一目标后,你可令一名角色重铸一张牌。',
|
||||
xin_jushou:'界沮授',
|
||||
xin_jushou:'手杀沮授',
|
||||
xinjianying:'渐营',
|
||||
xinjianying_info:'锁定技。①当你于出牌阶段内使用与此阶段你使用的上一张牌点数或花色相同的牌时,你可以摸一张牌。②出牌阶段限一次,你可以将一张牌当做任意基本牌使用(不计入次数限制)。若你于此阶段内使用的上一张牌有花色,则此牌的花色视为上一张牌的花色。',
|
||||
|
||||
|
|
|
@ -516,6 +516,8 @@ window.noname_character_rank={
|
|||
'tenggongzhu',
|
||||
'sp_menghuo',
|
||||
'ruiji',
|
||||
're_liuchen',
|
||||
'dc_gongsunzan',
|
||||
],
|
||||
bp:[
|
||||
'chess_diaochan',
|
||||
|
@ -787,6 +789,8 @@ window.noname_character_rank={
|
|||
'shen_machao',
|
||||
'sb_yujin',
|
||||
'sb_huangzhong',
|
||||
'dc_yanghu',
|
||||
'dc_gongsunzan',
|
||||
],
|
||||
b:[
|
||||
'diy_feishi',
|
||||
|
@ -983,7 +987,7 @@ window.noname_character_rank={
|
|||
'xin_caozhen',
|
||||
'ol_dengzhi',
|
||||
'sundeng',
|
||||
'duji',
|
||||
're_duji',
|
||||
'sp_chendong',
|
||||
'sp_zongyu',
|
||||
'old_yangyan',
|
||||
|
@ -1019,6 +1023,7 @@ window.noname_character_rank={
|
|||
'sb_huaxiong',
|
||||
'shen_sunquan',
|
||||
're_jushou',
|
||||
'dc_huangzu',
|
||||
],
|
||||
bm:[
|
||||
'diy_xizhenxihong',
|
||||
|
@ -1248,6 +1253,7 @@ window.noname_character_rank={
|
|||
'old_chenqun',
|
||||
'duanwei',
|
||||
'wangxiang',
|
||||
'duji',
|
||||
],
|
||||
rarity:{
|
||||
legend:[
|
||||
|
@ -1548,7 +1554,6 @@ window.noname_character_rank={
|
|||
'ns_yanghu',
|
||||
'ol_huaxin',
|
||||
'longyufei',
|
||||
're_guyong',
|
||||
're_panshu',
|
||||
'db_wenyang',
|
||||
'qiaozhou',
|
||||
|
@ -1566,6 +1571,8 @@ window.noname_character_rank={
|
|||
'dc_luotong',
|
||||
'dc_huangchengyan',
|
||||
'laiyinger',
|
||||
'ns_ruanji',
|
||||
'ns_zanghong',
|
||||
'key_kano',
|
||||
'key_haruko',
|
||||
'key_akiko',
|
||||
|
@ -1966,6 +1973,10 @@ window.noname_character_rank={
|
|||
're_jushou',
|
||||
'xin_jushou',
|
||||
'yj_jushou',
|
||||
're_guyong',
|
||||
'dc_yanghu',
|
||||
're_duji',
|
||||
're_liuchen',
|
||||
],
|
||||
junk:[
|
||||
'sunshao',
|
||||
|
@ -1986,6 +1997,7 @@ window.noname_character_rank={
|
|||
'sp_xujing',
|
||||
'fanjiangzhangda',
|
||||
'wangxiang',
|
||||
'duji',
|
||||
],
|
||||
}
|
||||
};
|
||||
|
|
|
@ -13,12 +13,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
refresh_yijiang2:['re_madai','re_wangyi','guanzhang','xin_handang','xin_zhonghui','re_liaohua','re_chengpu','re_caozhang','dc_bulianshi','xin_liubiao'],
|
||||
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','re_jushou'],
|
||||
refresh_yijiang5:['re_zhangyi','re_quancong','re_caoxiu','re_sunxiu','re_gongsunyuan','re_guotufengji','re_xiahoushi'],
|
||||
refresh_yijiang5:['re_zhangyi','re_quancong','re_caoxiu','re_sunxiu','re_gongsunyuan','re_guotufengji','re_xiahoushi','re_liuchen'],
|
||||
refresh_yijiang6:['re_guohuanghou'],
|
||||
refresh_xinghuo:['re_duji','dc_gongsunzan'],
|
||||
},
|
||||
},
|
||||
connect:true,
|
||||
character:{
|
||||
re_liuchen:['male','shu',4,['rezhanjue','reqinwang'],['zhu']],
|
||||
dc_gongsunzan:['male','qun',4,['reyicong','dcqiaomeng']],
|
||||
re_duji:['male','wei',3,['reandong','reyingshi']],
|
||||
re_jushou:['male','qun',3,['dcjianying','dcshibei']],
|
||||
re_zhanghe:['male','wei',4,['reqiaobian']],
|
||||
dc_xushu:['male','shu',4,['rezhuhai','xsqianxin']],
|
||||
|
@ -143,6 +147,376 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_xushu:['zhaoyun','sp_zhugeliang'],
|
||||
},
|
||||
skill:{
|
||||
//刘谌
|
||||
rezhanjue:{
|
||||
audio:2,enable:'phaseUse',
|
||||
filterCard:function(card){
|
||||
return !card.hasGaintag('reqinwang');
|
||||
},
|
||||
selectCard:-1,
|
||||
position:'h',
|
||||
filter:function(event,player){
|
||||
var stat=player.getStat().skill;
|
||||
if(stat.rezhanjue_draw&&stat.rezhanjue_draw>=3) return false;
|
||||
var hs=player.getCards('h',function(card){
|
||||
return !card.hasGaintag('reqinwang');
|
||||
});
|
||||
if(!hs.length) return false;
|
||||
for(var i=0;i<hs.length;i++){
|
||||
var mod2=game.checkMod(hs[i],player,'unchanged','cardEnabled2',player);
|
||||
if(mod2===false) return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
viewAs:{name:'juedou'},
|
||||
onuse:function(links,player){
|
||||
player.addTempSkill('rezhanjue_effect','phaseUseEnd');
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
tag:{
|
||||
respond:2,
|
||||
respondSha:2,
|
||||
damage:1,
|
||||
},
|
||||
result:{
|
||||
target:-1.5,
|
||||
player:function(player,target){
|
||||
if(player.hasSkillTag('directHit_ai',true,{
|
||||
target:target,
|
||||
card:{name:'juedou'},
|
||||
},true)){
|
||||
return 0;
|
||||
}
|
||||
if(get.damageEffect(target,player,target)>0&&get.attitude(player,target)>0&&get.attitude(target,player)>0){
|
||||
return 0;
|
||||
}
|
||||
var hs1=target.getCards('h','sha');
|
||||
var hs2=player.getCards('h',function(card){
|
||||
return card.hasGaintag('reqinwang')&&get.name(card)=='sha';
|
||||
});
|
||||
if(hs1.length>hs2.length+1){
|
||||
return -2;
|
||||
}
|
||||
var hsx=target.getCards('h');
|
||||
if(hsx.length>2&&hs2.length==0&&hsx[0].number<6){
|
||||
return -2;
|
||||
}
|
||||
if(hsx.length>3&&hs2.length==0){
|
||||
return -2;
|
||||
}
|
||||
if(hs1.length>hs2.length&&(!hs2.length||hs1[0].number>hs2[0].number)){
|
||||
return -2;
|
||||
}
|
||||
return -0.5;
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
rezhanjue_effect:{
|
||||
audio:false,
|
||||
trigger:{player:'useCardAfter'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
charlotte:true,
|
||||
filter:function(event,player){
|
||||
return event.skill=='rezhanjue';
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
var stat=player.getStat().skill;
|
||||
if(!stat.rezhanjue_draw) stat.rezhanjue_draw=0;
|
||||
stat.rezhanjue_draw++;
|
||||
player.draw('nodelay');
|
||||
var list=game.filterPlayer(function(current){
|
||||
if(current.getHistory('damage',function(evt){
|
||||
return evt.card==trigger.card;
|
||||
}).length>0){
|
||||
if(current==player){
|
||||
stat.rezhanjue_draw++;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
if(list.length){
|
||||
list.sortBySeat();
|
||||
game.asyncDraw(list);
|
||||
}
|
||||
"step 1"
|
||||
game.delay();
|
||||
}
|
||||
},
|
||||
reqinwang:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
if(!player.hasZhuSkill('reqinwang')) return false;
|
||||
return game.hasPlayer(function(current){
|
||||
return current!=player&¤t.group=='shu'&&player.hasZhuSkill('reqinwang',current);
|
||||
});
|
||||
},
|
||||
selectTarget:-1,
|
||||
filterTarget:function(card,player,current){
|
||||
return current!=player&¤t.group=='shu'&&player.hasZhuSkill('reqinwang',current);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(target.hasCard(function(card){
|
||||
return _status.connectMode||get.name(card,target)=='sha';
|
||||
},'h')){
|
||||
target.chooseCard('是否交给'+get.translation(player)+'一张【杀】?',function(card,player){
|
||||
return get.name(card,player)=='sha';
|
||||
},'h').set('goon',get.attitude(target,player)>0).set('ai',function(card){
|
||||
return _status.event.goon?1:0;
|
||||
});
|
||||
}
|
||||
else event.finish();
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var card=result.cards[0];
|
||||
player.gain(card,target,'give').gaintag.add('reqinwang');
|
||||
player.addTempSkill('reqinwang_clear');
|
||||
player.chooseBool('是否令'+get.translation(target)+'摸一张牌?');
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
if(result.bool) target.draw();
|
||||
},
|
||||
ai:{
|
||||
order:5,
|
||||
result:{player:1},
|
||||
},
|
||||
subSkill:{
|
||||
clear:{
|
||||
charlotte:true,
|
||||
onremove:function(player){
|
||||
player.removeGaintag('reqinwang');
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
//公孙瓒
|
||||
dcqiaomeng:{
|
||||
audio:2,
|
||||
trigger:{player:'useCardToPlayered'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
if(!event.isFirstTarget||get.color(event.card)!='black') return false;
|
||||
for(var i of event.targets){
|
||||
if(i!=player&&i.hasCard(function(card){
|
||||
return lib.filter.canBeDiscarded(card,player,i);
|
||||
},'he')) return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt('dcqiaomeng'),'选择一名不为自己的目标角色,然后弃置其一张牌。若以此法弃置的牌为:装备牌,你获得此牌;锦囊牌,你令'+get.translation(trigger.card)+'不可被响应。',function(card,player,target){
|
||||
return target!=player&&_status.event.getTrigger().targets.contains(target)&&target.hasCard(function(card){
|
||||
return lib.filter.canBeDiscarded(card,player,target);
|
||||
},'he');
|
||||
}).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
return get.effect(target,{name:'guohe_copy2'},player,player)
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.logSkill('dcqiaomeng',target);
|
||||
player.discardPlayerCard(target,true,'he');
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
if(result.bool&&result.cards&&result.cards.length){
|
||||
//为了体现白马义从野性纯真的美 直接获取卡牌原类型 不考虑维系区域
|
||||
var card=result.cards[0],type=get.type2(card,false);
|
||||
if(type=='trick') trigger.directHit.addArray(game.filterPlayer((current)=>current!=player));
|
||||
if(type=='equip'&&get.position(card,true)=='d') player.gain(card,'gain2');
|
||||
}
|
||||
},
|
||||
},
|
||||
//杜畿
|
||||
reandong:{
|
||||
audio:2,
|
||||
trigger:{player:'damageBegin2'},
|
||||
filter:function(event,player){
|
||||
return event.source&&event.source.isIn();
|
||||
},
|
||||
logTarget:'source',
|
||||
content:function(){
|
||||
'step 0'
|
||||
var target=trigger.source,str=get.translation(player);
|
||||
var bool=player.storage.reandong;
|
||||
if(bool) str='自己';
|
||||
var choiceList=['防止'+str+'即将受到的伤害,且本回合内红桃牌不计入'+(bool?get.translation(target):'自己')+'的手牌上限。'];
|
||||
if(!target.countCards('h')) choiceList.push('令'+str+'下次发动〖安东〗时改为自行选择');
|
||||
else choiceList.push('令'+str+'观看你的手牌并获得所有红桃牌');
|
||||
if(bool){
|
||||
delete player.storage.reandong;
|
||||
player.chooseControl().set('choiceList',choiceList).set('prompt','安东:请选择一项');
|
||||
}
|
||||
else{
|
||||
target.chooseControl().set('choiceList',choiceList).set('prompt','安东:请选择一项').set('ai',function(event,player){
|
||||
var target=_status.event.getParent().player;
|
||||
var player=_status.event.player;
|
||||
if(get.attitude(player,target)>0) return 0;
|
||||
return 1;
|
||||
});
|
||||
}
|
||||
'step 1'
|
||||
var target=trigger.source;
|
||||
if(result.index==0){
|
||||
target.addTempSkill('reandong_ignore');
|
||||
trigger.cancel();
|
||||
game.delayx();
|
||||
}
|
||||
else{
|
||||
if(!target.countCards('h')){
|
||||
player.storage.reandong=true;
|
||||
game.delayx();
|
||||
}
|
||||
else{
|
||||
player.viewHandcards(target);
|
||||
var cards=target.getCards('h',function(card){
|
||||
return get.suit(card,target)=='heart';
|
||||
});
|
||||
if(cards.length>0) player.gain(cards,target,'give');
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
maixie:true,
|
||||
effect:{
|
||||
target:function(card,player,target){
|
||||
if(player.hasSkillTag('jueqing',false,target)) return [1,-1];
|
||||
if(get.tag(card,'damage')&&player!=target&&get.attitude(player,target)<0){
|
||||
var cards=player.getCards('h',function(cardx){
|
||||
return card!=cardx&&(!card.cards||!card.cards.contains(cardx))&&get.suit(cardx)=='heart';
|
||||
});
|
||||
if(!cards.length) return;
|
||||
for(var i of cards){
|
||||
if(get.name(i,target)=='tao') return 'zeroplayertarget';
|
||||
}
|
||||
if(get.value(cards,target)>=(6+target.getDamagedHp())) return 'zeroplayertarget';
|
||||
return [1,0.6];
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
subSkill:{
|
||||
ignore:{
|
||||
mod:{
|
||||
ignoredHandcard:function(card,player){
|
||||
if(get.suit(card)=='heart'){
|
||||
return true;
|
||||
}
|
||||
},
|
||||
cardDiscardable:function(card,player,name){
|
||||
if(name=='phaseDiscard'&&get.suit(card)=='heart') return false;
|
||||
}
|
||||
},
|
||||
charlotte:true,
|
||||
marktext:'♥',
|
||||
intro:'红桃牌于本回合内不计入手牌上限',
|
||||
},
|
||||
},
|
||||
},
|
||||
reyingshi:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseUseBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player.countCards('h')>0&&game.countPlayer()>1;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseCardTarget({
|
||||
prompt:get.prompt('reyingshi'),
|
||||
prompt2:'操作提示:选择一张作为赏金的手牌,然后选择作为赏金猎人的角色A和作为出杀目标的其他角色B',
|
||||
filterCard:true,
|
||||
selectTarget:2,
|
||||
position:'h',
|
||||
filterTarget:function(card,player,target){
|
||||
if(!ui.selected.targets.length) return true;
|
||||
return target!=player;
|
||||
},
|
||||
complexTarget:true,
|
||||
targetprompt:['出杀','被杀'],
|
||||
complexSelect:true,
|
||||
ai1:function(card){
|
||||
return 1/Math.max(1,get.value(card));
|
||||
},
|
||||
ai2:function(target){
|
||||
var player=_status.event.player;
|
||||
if(!ui.selected.targets.length){
|
||||
var att=get.attitude(player,target);
|
||||
if(att<0) return 0;
|
||||
if(target.hasSha()) return Math.pow(target.countCards('h')+1,1.1)*(player==target?3:1);
|
||||
return Math.sqrt(1+target.countCards('h'));
|
||||
}
|
||||
return get.effect(target,{name:'sha'},ui.selected.targets[0],player);
|
||||
},
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var targets=result.targets;
|
||||
event.targets=targets;
|
||||
player.logSkill('reyingshi',targets[1]);
|
||||
var card=result.cards[0];
|
||||
event.card=card;
|
||||
player.showCards(card,get.translation(player)+'对'+get.translation(targets[1])+'发动了【应势】');
|
||||
player.line(targets[0],'fire');
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
var next=targets[0].chooseToUse(function(card,player,event){
|
||||
if(get.name(card)!='sha') return false;
|
||||
return lib.filter.cardEnabled.apply(this,arguments)&&lib.filter.targetEnabled(card,player,(event||_status.event).sourcex);
|
||||
},'###是否对'+get.translation(targets[1])+'使用一张【杀】?###若选择使用,则获得赏金('+get.translation(card)+')。若造成伤害,则再从牌堆中获得与此牌花色点数相同的牌作为额外赏金。');
|
||||
next.set('addCount',false);
|
||||
next.set('complexSelect',true);
|
||||
next.set('filterTarget',function(card,player,target){
|
||||
if(target!=_status.event.sourcex&&!ui.selected.targets.contains(_status.event.sourcex)) return false;
|
||||
return lib.filter.targetEnabled.apply(this,arguments);
|
||||
});
|
||||
next.set('sourcex',targets[1]);
|
||||
'step 3'
|
||||
var target=targets[0]
|
||||
if(result.bool&&target.isIn()){
|
||||
var cards=[],slice=0;
|
||||
if(player!=target&&player.getCards('h').contains(card)){
|
||||
cards.push(card);
|
||||
slice++;
|
||||
}
|
||||
if(target.hasHistory('useCard',function(evt){
|
||||
if(evt.getParent(2)!=event) return false;
|
||||
return target.hasHistory('sourceDamage',function(evtx){
|
||||
return evtx.card==evt.card;
|
||||
});
|
||||
})){
|
||||
var suit=get.suit(card),number=get.number(card);
|
||||
for(var i=0;i<ui.cardPile.childNodes.length;i++){
|
||||
var card=ui.cardPile.childNodes[i];
|
||||
if(card.suit==suit&&card.number==number) cards.push(card);
|
||||
}
|
||||
if(cards.length>0){
|
||||
if(!slice) target.gain(cards,'gain2');
|
||||
else{
|
||||
setTimeout(function(){
|
||||
target.$gain2(cards.slice(slice),true);
|
||||
},get.delayx(200,200));
|
||||
target.gain(cards,player,'give');
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(cards.length>0) target.gain(cards,player,'give');
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
//十周年沮授
|
||||
dcshibei:{
|
||||
trigger:{player:'damageEnd'},
|
||||
|
@ -244,7 +618,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
filter:function(event,player){
|
||||
var evt=lib.skill.dcjianying.getLastUsed(player,event);
|
||||
if(!evt||!evt.card) return false;
|
||||
return get.suit(evt.card)!='none'&&get.suit(evt.card)==get.suit(event.card)||
|
||||
return lib.suit.contains(get.suit(evt.card))&&get.suit(evt.card)==get.suit(event.card)||
|
||||
typeof get.number(evt.card,false)=='number'&&get.number(evt.card,false)==get.number(event.card);
|
||||
},
|
||||
content:function(){
|
||||
|
@ -8522,7 +8896,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
for(var i of cards){
|
||||
if(get.name(i,target)=='tao') return [1,5];
|
||||
}
|
||||
if(get.value(cards,target)>=(6+player.getDamagedHp())) return [1,3];
|
||||
if(get.value(cards,target)>=(7+target.getDamagedHp())) return [1,3];
|
||||
return [1,0.6];
|
||||
}
|
||||
},
|
||||
|
@ -11462,7 +11836,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_sunquan:'界孙权',
|
||||
re_sunshangxiang:'界孙尚香',
|
||||
re_zhugeliang:'界诸葛亮',
|
||||
re_zhenji:'界甄姬',
|
||||
re_zhenji:'界甄宓',
|
||||
re_huaxiong:"界华雄",
|
||||
|
||||
"ol_sp_zhugeliang":"界卧龙",
|
||||
|
@ -11817,7 +12191,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_manchong:'界满宠',
|
||||
rejunxing:'峻刑',
|
||||
rejunxing_info:'出牌阶段限一次,你可以弃置任意张手牌并选择一名其他角色。该角色选择一项:1.弃置X张牌并失去1点体力。2.翻面并摸X张牌。(X为你弃置的牌数)',
|
||||
re_gongsunzan:'界公孙瓒',
|
||||
re_gongsunzan:'OL公孙瓒',
|
||||
reqiaomeng:'趫猛',
|
||||
reqiaomeng_info:'当你使用【杀】对一名角色造成伤害后,你可以弃置该角色区域内的一张牌。若此牌为坐骑牌,则你于此弃置事件结算结束后获得此牌。',
|
||||
ol_dengai:'界邓艾',
|
||||
|
@ -11845,7 +12219,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
reenyuan_info:'当你获得一名其他角色的至少两张牌后,你可以令其摸一张牌。当你受到1点伤害后,你可令伤害来源选择一项:①失去1点体力。②交给你一张手牌。若此牌不为♥,则你摸一张牌。',
|
||||
rexuanhuo:'眩惑',
|
||||
rexuanhuo_info:'摸牌阶段结束时,你可以交给一名其他角色两张手牌,然后该角色选择一项:1. 视为对你选择的另一名角色使用任意一种【杀】或【决斗】,2. 交给你所有手牌。',
|
||||
re_fuhuanghou:'界伏皇后',
|
||||
re_fuhuanghou:'界伏寿',
|
||||
reqiuyuan:'求援',
|
||||
reqiuyuan_info:'当你成为【杀】的目标时,你可选择另一名其他角色。除非该角色交给你一张除【杀】以外的基本牌,否则其也成为此【杀】的目标且该角色不能响应此【杀】。',
|
||||
rezhuikong:'惴恐',
|
||||
|
@ -12007,6 +12381,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
dcshibei_info:'锁定技,当你于一回合内第一次受到伤害后,你回复1点体力;当你于一回合内第二次受到伤害后,你失去1点体力。',
|
||||
dcjianying:'渐营',
|
||||
dcjianying_info:'当你使用与你使用的上一张牌点数或花色相同的牌时,你可以摸一张牌。',
|
||||
re_duji:'界杜畿',
|
||||
reandong:'安东',
|
||||
reandong_info:'当你受到其他角色造成的伤害时,你可以令伤害来源选择一项:⒈防止此伤害。然后其♥牌不计入本回合的手牌上限;⒉你观看其手牌并获得其中的所有♥牌,若其没有手牌,则你下次发动〖安东〗时改为自行选择。',
|
||||
reyingshi:'应势',
|
||||
reyingshi_info:'出牌阶段开始时,你可以展示一张手牌,选择一名角色A和一名其他角色B。A可以对B使用一张【杀】,然后获得你展示的牌。若A因此【杀】造成过伤害,则A获得牌堆中与展示牌花色点数相同的其他牌。',
|
||||
dcqiaomeng:'趫猛',
|
||||
dcqiaomeng_info:'当你使用黑色牌指定第一个目标后,你可以弃置目标角色中一名其他角色的一张牌。若你以此法弃置的牌为:装备牌,你获得此牌;锦囊牌,你令此牌不可被响应。',
|
||||
dc_gongsunzan:'界公孙瓒',
|
||||
re_liuchen:'界刘谌',
|
||||
rezhanjue:'战绝',
|
||||
rezhanjue_effect:'战绝',
|
||||
rezhanjue_info:'出牌阶段,若你本阶段内因〖战绝〗获得过的牌数小于3,则你可以将所有不具有“勤王”标记的手牌当做【决斗】使用。此【决斗】使用结算结束后,你摸一张牌。然后所有因此【决斗】受到过伤害的角色也各摸一张牌。',
|
||||
reqinwang:'勤王',
|
||||
reqinwang_info:'主公技。出牌阶段限一次,你可以令所有其他蜀势力角色依次选择是否交给你一张【杀】,然后你可以令选择是的角色摸一张牌。',
|
||||
|
||||
refresh_standard:'界限突破·标',
|
||||
refresh_feng:'界限突破·风',
|
||||
|
@ -12019,6 +12407,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
refresh_yijiang4:'界限突破·将4',
|
||||
refresh_yijiang5:'界限突破·将5',
|
||||
refresh_yijiang6:'界限突破·原6',
|
||||
refresh_xinghuo:'界限突破·星火',
|
||||
},
|
||||
};
|
||||
});
|
||||
|
|
|
@ -89,6 +89,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
equipSkill:false,
|
||||
inherit:'qinggang_skill',
|
||||
charlotte:true,
|
||||
nopop:true,
|
||||
mod:{
|
||||
targetInRange:function(card){
|
||||
if(card.name=='sha') return true;
|
||||
|
|
|
@ -516,7 +516,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
event.finish();
|
||||
}
|
||||
else{
|
||||
var prompt='罪论:将'+get.cnNumber(num)+'牌置于牌堆顶';
|
||||
var prompt='罪论:将'+get.cnNumber(num)+'张牌置于牌堆顶';
|
||||
if(num<3) prompt+='并获得其余的牌';
|
||||
var next=player.chooseToMove(prompt,true);
|
||||
if(num<3){
|
||||
|
@ -1703,7 +1703,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
list.push(trigger.cards[i]);
|
||||
}
|
||||
}
|
||||
player.give(list,zhu);
|
||||
zhu.gain(list,'gain2');
|
||||
zhu.chooseBool().set('ai',function(){
|
||||
if(get.attitude(zhu,player)>0) return true;
|
||||
return false;
|
||||
|
@ -7252,7 +7252,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
card:{},
|
||||
dynamicTranslate:{
|
||||
nzry_juzhan:function(player){
|
||||
if(player.storage.nzry_juzhan1==true) return '转换技,阴:当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。<span class="bluetext">阳:当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌。</span>';
|
||||
if(player.storage.nzry_juzhan==true) return '转换技,阴:当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。<span class="bluetext">阳:当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌。</span>';
|
||||
return '转换技,<span class="bluetext">阴:当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。</span>阳:当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌。';
|
||||
},
|
||||
nzry_zhenliang:function(player){
|
||||
|
|
116
character/sp.js
|
@ -99,7 +99,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
maliang:['male','shu',3,['zishu','xinyingyuan']],
|
||||
zhugedan:['male','wei',4,['gongao','juyi']],
|
||||
sp_jiangwei:['male','wei',4,['kunfen','fengliang']],
|
||||
sp_machao:['male','qun',4,['zhuiji','ol_shichou']],
|
||||
sp_machao:['male','qun',4,['olzhuiji','ol_shichou']],
|
||||
sunhao:['male','wu',5,['recanshi','rechouhai','guiming'],['zhu']],
|
||||
shixie:['male','qun',3,['rebiluan','relixia']],
|
||||
mayunlu:['female','shu',4,['fengpo','mashu']],
|
||||
|
@ -592,10 +592,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
skills:['zhuangshu_basic'],
|
||||
forceDie:true,
|
||||
onLose:function(){
|
||||
if((!event.getParent(2)||event.getParent(2).name!='swapEquip')&&(event.getParent().type!='equip'||event.getParent().swapEquip)){
|
||||
card.fix();
|
||||
card.remove();
|
||||
card.destroyed=true;
|
||||
game.log(card,'被销毁了');
|
||||
}
|
||||
},
|
||||
equipDelay:false,
|
||||
loseDelay:false,
|
||||
|
@ -610,10 +612,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
forceDie:true,
|
||||
skills:['zhuangshu_trick'],
|
||||
onLose:function(){
|
||||
if((!event.getParent(2)||event.getParent(2).name!='swapEquip')&&(event.getParent().type!='equip'||event.getParent().swapEquip)){
|
||||
card.fix();
|
||||
card.remove();
|
||||
card.destroyed=true;
|
||||
game.log(card,'被销毁了');
|
||||
}
|
||||
},
|
||||
equipDelay:false,
|
||||
loseDelay:false,
|
||||
|
@ -629,16 +633,62 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
forceDie:true,
|
||||
inherit:'zhuangshu_basic',
|
||||
onLose:function(){
|
||||
if((!event.getParent(2)||event.getParent(2).name!='swapEquip')&&(event.getParent().type!='equip'||event.getParent().swapEquip)){
|
||||
card.fix();
|
||||
card.remove();
|
||||
card.destroyed=true;
|
||||
game.log(card,'被销毁了');
|
||||
}
|
||||
},
|
||||
equipDelay:false,
|
||||
loseDelay:false,
|
||||
},
|
||||
},
|
||||
skill:{
|
||||
//群马超
|
||||
olzhuiji:{
|
||||
mod:{
|
||||
globalFrom:function(from,to){
|
||||
if(from.hp>=to.hp) return -Infinity;
|
||||
},
|
||||
},
|
||||
trigger:{player:'useCardToPlayered'},
|
||||
shaRelated:true,
|
||||
filter:function(event,player){
|
||||
return event.card.name=='sha'&&event.target.countCards('he')>0&&get.distance(player,event.target)==1;
|
||||
},
|
||||
forced:true,
|
||||
logTarget:'target',
|
||||
content:function(){
|
||||
'step 0'
|
||||
var target=trigger.target;
|
||||
event.target=target;
|
||||
if(target.countCards('e')==0) event._result={index:0};
|
||||
else target.chooseControl().set('choiceList',[
|
||||
'弃置一张牌',
|
||||
'重铸装备区的所有牌',
|
||||
]).set('ai',function(card){
|
||||
var min=Infinity,equ=0,es=player.getCards('e'),hs=player.getCards('he');
|
||||
for(var i of hs){
|
||||
var val=get.value(i);
|
||||
min=Math.min(min,val);
|
||||
if(es.contains(i)) equ+=val;
|
||||
}
|
||||
equ/=es.length;
|
||||
if(min<equ-1) return 0;
|
||||
return 1;
|
||||
});
|
||||
'step 1'
|
||||
if(result.index==0){
|
||||
target.chooseToDiscard('he',true);
|
||||
}
|
||||
else{
|
||||
var cards=target.getCards('e');
|
||||
target.loseToDiscardpile(cards);
|
||||
target.draw(cards.length)
|
||||
}
|
||||
},
|
||||
},
|
||||
//蒲元
|
||||
olshengong:{
|
||||
audio:2,
|
||||
|
@ -2186,7 +2236,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return eff_left;
|
||||
}
|
||||
else if(right3){
|
||||
if(bool) return eff_right>0?'↖顺时针':'cancel2';
|
||||
if(bool) return eff_right>0?'逆时针↗':'cancel2';
|
||||
return eff_right;
|
||||
}
|
||||
else return bool?'cancel2':0;
|
||||
|
@ -3036,7 +3086,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
list.sort().reverse();
|
||||
if(!list.length) return 0;
|
||||
return list[0]+(list[1]||0);
|
||||
return list[0]+(list[1]||0)+(list[2]||0);
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
|
@ -3050,27 +3100,45 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
for(var name of lib.inpile){
|
||||
var info=lib.card[name];
|
||||
if(!info||info.type!='trick'||info.notarget||(info.selectTarget&&info.selectTarget!=1)) continue;
|
||||
if(!player.canUse(name,target)) continue;
|
||||
list.push(name);
|
||||
}
|
||||
if(!list.length) event.finish();
|
||||
else player.chooseButton(['视为对'+get.translation(target)+'使用至多两种牌',[list,'vcard']],[1,2],true).set('ai',function(button){
|
||||
else{
|
||||
event.list=list;
|
||||
event.count=0;
|
||||
}
|
||||
'step 3'
|
||||
var list=event.list.filter(function(name){
|
||||
return player.canUse(name,target);
|
||||
});
|
||||
if(list.length){
|
||||
var next=player.chooseButton(['视为对'+get.translation(target)+'使用一张牌',[list,'vcard']]).set('ai',function(button){
|
||||
var evt=_status.event.getParent();
|
||||
return get.effect(evt.target,{name:button.link[2]},evt.player,evt.player);
|
||||
});
|
||||
'step 3'
|
||||
if(event.count==0) next.set('forced',true);
|
||||
}
|
||||
else{
|
||||
event.stopped=true;
|
||||
event.goto(5);
|
||||
}
|
||||
'step 4'
|
||||
if(result.bool){
|
||||
event.count++;
|
||||
var name=result.links[0][2];
|
||||
event.list.remove(name);
|
||||
player.useCard({name:name,isCard:true},target,false);
|
||||
}
|
||||
else event.stopped=true;
|
||||
'step 5'
|
||||
if(target.isIn()&&event.count>0){
|
||||
if(event.count<3&&!event.stopped&&event.list.length>0) event.goto(3);
|
||||
else{
|
||||
target.addTempSkill('oljuanxia_counter',{player:'phaseAfter'});
|
||||
if(!target.storage.oljuanxia_counter) target.storage.oljuanxia_counter={};
|
||||
if(!target.storage.oljuanxia_counter[player.playerid]) target.storage.oljuanxia_counter[player.playerid]=0;
|
||||
target.storage.oljuanxia_counter[player.playerid]+=result.links.length;
|
||||
event.links=result.links;
|
||||
target.storage.oljuanxia_counter[player.playerid]+=event.count;
|
||||
}
|
||||
'step 4'
|
||||
if(target.isIn()){
|
||||
var name=event.links.shift()[2];
|
||||
player.useCard({name:name,isCard:true},target,false);
|
||||
if(event.links.length) event.redo();
|
||||
}
|
||||
},
|
||||
subSkill:{
|
||||
|
@ -4079,7 +4147,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var target=result.targets[0];
|
||||
event.target=target;
|
||||
player.line(target,'fire');
|
||||
target.chooseBool('许身:是否将自己的一张武将牌替换为“关索”并令'+get.translation(player)+'?');
|
||||
target.chooseBool('许身:是否将自己的一张武将牌替换为“关索”?');
|
||||
'step 3'
|
||||
if(result.bool){
|
||||
if(target.name2!=undefined){
|
||||
|
@ -4090,6 +4158,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
else event.finish();
|
||||
'step 4'
|
||||
target.reinit(result.control,'guansuo');
|
||||
if(target.name=='guansuo'&&target.group!='shu') target.changeGroup('shu');
|
||||
if(_status.characterlist){
|
||||
_status.characterlist.add(result.control);
|
||||
_status.characterlist.remove('guansuo');
|
||||
|
@ -6784,13 +6853,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var num=Math.max(1,player.getDamagedHp());
|
||||
player.chooseTarget('是否发动【誓仇】,令至多'+num+'名其他角色也成为此【杀】的目标?',[1,num],function(card,player,target){
|
||||
var num=player.getDamagedHp()+1;
|
||||
player.chooseTarget('是否发动【誓仇】?','为'+get.translation(trigger.card)+'添加至多'+get.cnNumber(num)+'个目标',[1,num],function(card,player,target){
|
||||
var evt=_status.event.getTrigger();
|
||||
return target!=player&&!evt.targets.contains(target)&&lib.filter.targetEnabled2(evt.card,player,target)&&lib.filter.targetInRange(evt.card,player,target);
|
||||
}).ai=function(target){
|
||||
return get.effect(target,{name:'sha'},_status.event.player);
|
||||
};
|
||||
}).set('ai',function(target){
|
||||
return get.effect(target,_status.event.getTrigger().card,_status.event.player);
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool&&result.targets&&result.targets.length){
|
||||
var targets=result.targets;
|
||||
|
@ -17553,6 +17622,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
tianyu:['tw_tianyu','tianyu'],
|
||||
huangchengyan:['huangchengyan','dc_huangchengyan'],
|
||||
puyuan:['puyuan','ol_puyuan'],
|
||||
huangzu:['dc_huangzu','huangzu'],
|
||||
},
|
||||
translate:{
|
||||
"xinfu_lingren":"凌人",
|
||||
|
@ -17772,7 +17842,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"new_luoyan_liuli":"流离",
|
||||
"new_luoyan_liuli_info":"",
|
||||
ol_shichou:"誓仇",
|
||||
ol_shichou_info:"当你使用【杀】时,你可以令至多X名角色也成为此【杀】的目标。此牌结算结束后,若你未因【杀】造成过伤害,则你获得此【杀】(X为你已损失的体力值且至少为1。每回合限获得三次)",
|
||||
ol_shichou_info:"当你使用【杀】时,你可以令至多X+1名角色也成为此【杀】的目标。此牌结算结束后,若你未因【杀】造成过伤害,则你获得此【杀】(X为你已损失的体力值。每回合限获得三次)",
|
||||
"zhenwei_three":"镇卫",
|
||||
"zhenwei_three_info":"锁定技,敌方角色至己方其他角色的距离+1。",
|
||||
"huanshi_three":"缓释",
|
||||
|
@ -18347,7 +18417,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
yanxiao_card:'言笑',
|
||||
yanxiao_global:'言笑',
|
||||
yanxiao_card_info:'判定阶段开始时,你获得判定区内的所有牌。',
|
||||
huangzu:'黄祖',
|
||||
huangzu:'OL黄祖',
|
||||
wangong:'挽弓',
|
||||
wangong2:'挽弓',
|
||||
wangong_info:'锁定技,当你使用基本牌时,你获得如下效果:当你使用下一张牌时,若此牌为【杀】,则此牌无次数和距离限制且伤害+1。',
|
||||
|
@ -18397,7 +18467,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
lisi_info:'当你于回合外使用的牌结算结束后,你可将其交给一名手牌数不大于你的其他角色。',
|
||||
ol_yangyi:'杨仪',
|
||||
oljuanxia:'狷狭',
|
||||
oljuanxia_info:'结束阶段,你可选择一名其他角色,并依次视为对其使用至多两种单目标普通锦囊牌。然后其下回合结束时,可视为对你使用等量的【杀】。',
|
||||
oljuanxia_info:'锁定技。结束阶段,你选择一名其他角色。你依次视为对其使用至多三种单目标普通锦囊牌。然后其下回合结束时,可视为对你使用等量的【杀】。',
|
||||
oldingcuo:'定措',
|
||||
oldingcuo_info:'每回合限一次。当你受到或造成伤害后,你可摸两张牌。若这两张牌颜色不同,则你弃置一张手牌。',
|
||||
fengfangnv:'OL冯妤',
|
||||
|
@ -18506,6 +18576,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
olshengong_info:'出牌阶段每项限一次。你可以弃置一张武器牌/防具牌/其他装备牌,并发起一次“锻造”。然后你从锻造结果中选择一张牌,置于一名角色的装备区内(可替换原装备)。当有因你发动〖神工〗而加入游戏的牌进入弃牌堆后,你将此牌移出游戏,然后你于当前回合结束后摸一张牌。',
|
||||
olqisi:'奇思',
|
||||
olqisi_info:'①游戏开始时,你获得两张副类别不同的牌,并将这些牌置入你的装备区。②摸牌阶段开始时,你可以少摸一张牌并声明一种装备牌的副类别,然后从牌堆或弃牌堆中获得一张该副类别的牌。',
|
||||
olzhuiji:'追击',
|
||||
olzhuiji_info:'锁定技。①你至体力值不大于你的角色的距离为1。②当你使用【杀】指定距离为1的角色为目标后,你令其选择一项:⒈弃置一张牌。⒉重铸装备区内的所有牌。',
|
||||
|
||||
sp_tianji:'天极·皇室宗亲',
|
||||
sp_sibi:'四弼·辅国文曲',
|
||||
|
|
231
character/sp2.js
|
@ -4,6 +4,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
name:'sp2',
|
||||
connect:true,
|
||||
character:{
|
||||
dc_yanghu:['male','wei',3,['dcdeshao','dcmingfa']],
|
||||
dc_huangzu:['male','qun',4,['dcjinggong','dcxiaojuan']],
|
||||
caimaozhangyun:['male','wei',4,['lianzhou','jinglan']],
|
||||
yanrou:['male','wei',4,['choutao','xiangshu']],
|
||||
zhangyao:['female','wu',3,['yuanyu','xiyan']],
|
||||
|
@ -151,10 +153,224 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sp_xuzhou:['re_taoqian','caosong','zhangmiao','qiuliju'],
|
||||
sp_zhongyuan:['re_hucheer','re_zoushi','caoanmin','re_dongcheng'],
|
||||
sp_xiaohu:['haomeng','yanfuren'],
|
||||
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','re_dongzhao','yangwan','re_panshu','dufuren','zhouyi','caojinyu','re_sunyi','re_zhangbao','re_fengfangnv','mamidi','dc_jiben','licaiwei','dc_luotong','dc_zhuling','tengyin','dc_gaolan','guanning','caomao','laiyinger','dc_huangchengyan','tenggongzhu','yanrou','caimaozhangyun','zhangyao'],
|
||||
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','re_dongzhao','yangwan','re_panshu','dufuren','zhouyi','caojinyu','re_sunyi','re_zhangbao','re_fengfangnv','mamidi','dc_jiben','licaiwei','dc_luotong','dc_zhuling','tengyin','dc_gaolan','guanning','caomao','laiyinger','dc_huangchengyan','tenggongzhu','yanrou','caimaozhangyun','zhangyao','dc_huangzu'],
|
||||
}
|
||||
},
|
||||
skill:{
|
||||
//羊祜
|
||||
dcdeshao:{
|
||||
audio:2,
|
||||
usable:2,
|
||||
trigger:{target:'useCardToTargeted'},
|
||||
filter:function(event,player){
|
||||
return player!=event.player&&get.color(event.card)=='black';
|
||||
},
|
||||
logTarget:'player',
|
||||
check:function(event,player){
|
||||
var eff=get.effect(player,{name:'wuzhong'},player,player)/2;
|
||||
if(player.countCards('h')+1<=event.player.countCards('h')&&event.player.countCards('he')>0) eff+=get.effect(event.player,{name:'guohe_copy2'},player,player);
|
||||
return eff;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.draw();
|
||||
'step 1'
|
||||
var target=trigger.player;
|
||||
if(player.countCards('h')<=target.countCards('h')&&target.countCards('he')>0){
|
||||
player.discardPlayerCard(target,true,'he');
|
||||
player.addExpose(0.2);
|
||||
}
|
||||
},
|
||||
},
|
||||
dcmingfa:{
|
||||
audio:2,
|
||||
trigger:{player:'useCardAfter'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player.isPhaseUsing()&&(event.card.name=='sha'||get.type(event.card)=='trick')&&event.cards.filterInD().length>0&&!player.getExpansions('dcmingfa').length;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var str,cards=trigger.cards.filterInD(),card=trigger.card;
|
||||
if(cards.length==1&&card.name==cards[0].name&&(card.nature||false)==(cards[0].nature||false)) str=get.translation(cards[0]);
|
||||
else str=(get.translation(trigger.card)+'('+get.translation(cards)+')');
|
||||
var cardx={
|
||||
name:trigger.card.name,
|
||||
nature:trigger.card.nature,
|
||||
isCard:true,
|
||||
};
|
||||
player.chooseTarget(lib.filter.notMe,get.prompt('dcmingfa'),'将'+str+'作为“明伐”牌置于武将牌上,并选择一名其他角色。该角色下回合结束时对其执行〖明伐〗的后续效果。').set('card',cardx).set('goon',function(){
|
||||
var getMax=function(card){
|
||||
return Math.max.apply(Math,game.filterPlayer(function(current){
|
||||
return current!=player&&lib.filter.targetEnabled2(card,player,current);
|
||||
}).map(function(i){
|
||||
return get.effect(i,card,player,player)*Math.sqrt(Math.min(i.getHandcardLimit(),1+i.countCards('h')));
|
||||
}).concat([0]));
|
||||
}
|
||||
var eff1=getMax(cardx);
|
||||
if(player.hasCard(function(card){
|
||||
if((card.name!='sha'&&get.type(card)!='trick')||!player.hasValueTarget(card,null,true)) return false;
|
||||
return getMax({
|
||||
name:get.name(card),
|
||||
nature:get.nature(card),
|
||||
isCard:true,
|
||||
})>=eff1;
|
||||
},'hs')) return false;
|
||||
return true;
|
||||
}()).set('ai',function(target){
|
||||
if(!_status.event.goon) return 0;
|
||||
var player=_status.event.player,card=_status.event.card;
|
||||
if(!lib.filter.targetEnabled2(card,player,target)) return 0;
|
||||
return get.effect(target,card,player,player)*Math.sqrt(Math.min(target.getHandcardLimit(),1+target.countCards('h')));
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.logSkill('dcmingfa',target);
|
||||
var card={
|
||||
name:trigger.card.name,
|
||||
nature:trigger.card.nature,
|
||||
isCard:true,
|
||||
};
|
||||
player.storage.dcmingfa_info=[card,target];
|
||||
player.addToExpansion(trigger.cards.filterInD(),'gain2').gaintag.add('dcmingfa');
|
||||
}
|
||||
},
|
||||
group:'dcmingfa_use',
|
||||
ai:{expose:0.2},
|
||||
intro:{
|
||||
mark:function(dialog,storage,player){
|
||||
var cards=player.getExpansions('dcmingfa');
|
||||
if(!cards.length) return '没有“明伐”牌';
|
||||
else dialog.add(cards);
|
||||
var info=player.storage.dcmingfa_info;
|
||||
if(info){
|
||||
dialog.addText('记录牌:'+get.translation(info[0])+'<br>记录目标:'+get.translation(info[1]));
|
||||
}
|
||||
},
|
||||
content:'expansion',
|
||||
},
|
||||
onremove:function(player,skill){
|
||||
var cards=player.getExpansions(skill);
|
||||
if(cards.length) player.loseToDiscardpile(cards);
|
||||
delete player.storage.dcmingfa_info;
|
||||
},
|
||||
subSkill:{
|
||||
use:{
|
||||
audio:'dcmingfa',
|
||||
trigger:{global:['phaseEnd','die']},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
if(!player.storage.dcmingfa_info||!player.getExpansions('dcmingfa').length) return false;
|
||||
return event.player==player.storage.dcmingfa_info[1];
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var target=trigger.player;
|
||||
event.target=target;
|
||||
var card=player.storage.dcmingfa_info[0];
|
||||
delete player.storage.dcmingfa_info;
|
||||
event.card=card;
|
||||
event.count=Math.min(5,target.countCards('h'));
|
||||
if(event.count<=0) event.goto(2);
|
||||
'step 1'
|
||||
event.count--;
|
||||
if(target.isIn()&&lib.filter.targetEnabled2(card,player,target)){
|
||||
player.useCard(get.copy(card),target);
|
||||
if(event.count>0) event.redo();
|
||||
}
|
||||
'step 2'
|
||||
var cards=player.getExpansions('dcmingfa');
|
||||
if(cards.length>0) player.loseToDiscardpile(cards);
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
//黄祖
|
||||
dcjinggong:{
|
||||
audio:2,
|
||||
enable:'chooseToUse',
|
||||
mod:{
|
||||
targetInRange:function(card){
|
||||
if(card.storage&&card.storage.dcjinggong) return true;
|
||||
},
|
||||
},
|
||||
viewAsFilter:function(player){
|
||||
return player.hasCard(function(card){
|
||||
return get.type(card)=='equip';
|
||||
},'ehs');
|
||||
},
|
||||
position:'hes',
|
||||
filterCard:{type:'equip'},
|
||||
viewAs:{
|
||||
name:'sha',
|
||||
storage:{dcjinggong:true},
|
||||
},
|
||||
check:function(card){
|
||||
return 6-get.value(card);
|
||||
},
|
||||
ai:{
|
||||
respondSha:true,
|
||||
skillTagFilter:function(player){
|
||||
return player.hasCard(function(card){
|
||||
return get.type(card)=='equip';
|
||||
},'ehs');
|
||||
},
|
||||
},
|
||||
group:'dcjinggong_base',
|
||||
subSkill:{
|
||||
base:{
|
||||
trigger:{player:'useCard1'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
firstDo:true,
|
||||
filter:function(event,player){
|
||||
return event.skill=='dcjinggong'&&event.targets.length>0;
|
||||
},
|
||||
content:function(){
|
||||
trigger.baseDamage=get.distance(player,trigger.targets[0]);
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
dcxiaojuan:{
|
||||
audio:2,
|
||||
trigger:{player:'useCardToPlayered'},
|
||||
logTarget:'target',
|
||||
filter:function(event,player){
|
||||
return event.targets.length==1&&player!=event.target&&event.target.countCards('h')>1;
|
||||
},
|
||||
check:function(event,player){
|
||||
var target=event.target;
|
||||
if(get.attitude(player,target)>=0) return false;
|
||||
if(get.color(event.card)=='none') return true;
|
||||
return Math.floor(target.countCards('h')/2)>=Math.floor(player.countCards('h')/2);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var target=trigger.target;
|
||||
event.target=target;
|
||||
var num=Math.floor(target.countCards('h')/2);
|
||||
if(num>0) player.discardPlayerCard(target,'h',num,true);
|
||||
else event.finish();
|
||||
'step 1'
|
||||
var color=get.color(trigger.card);
|
||||
if(result.bool&&color!='none'&&player.countCards('h')>1){
|
||||
var bool=false;
|
||||
for(var i of result.cards){
|
||||
if(get.color(i,target)==color){
|
||||
bool=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!bool) event.finish();
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
var num=Math.floor(player.countCards('h')/2);
|
||||
if(num>0) player.chooseToDiscard('h',num,true);
|
||||
},
|
||||
},
|
||||
//蔡瑁张允
|
||||
lianzhou:{
|
||||
audio:2,
|
||||
|
@ -5170,7 +5386,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 2'
|
||||
var cards=[];
|
||||
while(cards.length<2){
|
||||
var card=get.cardPile(function(card){
|
||||
var card=get.cardPile2(function(card){
|
||||
return !cards.contains(card)&&get.number(card)==6;
|
||||
});
|
||||
if(!card) break;
|
||||
|
@ -9371,6 +9587,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
else event.goto(4);
|
||||
'step 3'
|
||||
target.reinit(result.control,'guansuo');
|
||||
if(target.name=='guansuo'&&target.group!='shu') target.changeGroup('shu');
|
||||
if(_status.characterlist){
|
||||
_status.characterlist.add(result.control);
|
||||
_status.characterlist.remove('guansuo');
|
||||
|
@ -16084,6 +16301,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
lianzhou_info:'锁定技。准备阶段,你横置你的武将牌。然后你可横置任意名体力值等于你的角色。',
|
||||
jinglan:'惊澜',
|
||||
jinglan_info:'锁定技。当你造成伤害后,若你的手牌数:大于体力值,你弃置三张手牌;等于体力值,你弃置一张手牌并回复1点体力;小于体力值,你受到1点无来源火焰伤害并摸四张牌。',
|
||||
dc_huangzu:'黄祖',
|
||||
dcjinggong:'精弓',
|
||||
dcjinggong_info:'你可以将一张装备牌当做无距离限制的【杀】使用。当你声明使用此【杀】时,你将此杀的伤害值基数改为X(X为你至此【杀】第一个目标角色的距离且至多为3)。',
|
||||
dcxiaojuan:'骁隽',
|
||||
dcxiaojuan_info:'当你使用牌指定其他角色为唯一目标后,你可以弃置其一半的手牌(向下取整)。若这些牌中有与你使用牌花色相同的牌,则你弃置一半的手牌(向下取整)。',
|
||||
dc_yanghu:'羊祜',
|
||||
dcdeshao:'德劭',
|
||||
dcdeshao_info:'每回合限两次。当你成为其他角色使用的黑色牌的目标后,你可以摸一张牌,然后若其手牌数不小于你,则你弃置其一张牌。',
|
||||
dcmingfa:'明伐',
|
||||
dcmingfa_info:'①出牌阶段限一次。当你使用【杀】或普通锦囊牌结算结束后,若你的武将牌上没有“明伐”牌,则你可以将此牌作为“明伐”牌置于武将牌上并选择一名其他角色,记录该角色和此牌的名称。②一名角色的回合结束时,若其是你〖明伐①〗记录的角色,则你视为对其依次使用X张〖明伐①〗记录的牌,然后移去“明伐”牌(X为其手牌数且至多为5)。③一名角色死亡时,若其是你〖明伐①〗记录的角色,则你移去“移去”牌。',
|
||||
|
||||
sp_whlw:"文和乱武",
|
||||
sp_zlzy:"逐鹿中原",
|
||||
|
|
|
@ -2390,7 +2390,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(result.bool){
|
||||
event.target=result.targets[0];
|
||||
player.line(event.target,'green');
|
||||
player.give(event.card,event.target);
|
||||
player.give(card,event.target,true);
|
||||
}
|
||||
else ui.cardPile.appendChild(event.card);
|
||||
game.updateRoundNumber();
|
||||
|
@ -2455,7 +2455,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
huatuo:['re_huatuo','old_huatuo','huatuo'],
|
||||
huaxiong:['re_huaxiong','old_huaxiong','huaxiong','ol_huaxiong'],
|
||||
yuanshu:['yl_yuanshu','yuanshu','re_yuanshu','old_yuanshu','ol_yuanshu'],
|
||||
gongsunzan:['re_gongsunzan','xin_gongsunzan','sp_gongsunzan','gongsunzan'],
|
||||
gongsunzan:['dc_gongsunzan','re_gongsunzan','xin_gongsunzan','gongsunzan'],
|
||||
},
|
||||
translate:{
|
||||
caocao:'曹操',
|
||||
|
@ -2475,7 +2475,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhangliao:'张辽',
|
||||
xuzhu:'许褚',
|
||||
guojia:'郭嘉',
|
||||
zhenji:'甄姬',
|
||||
zhenji:'甄宓',
|
||||
liubei:'刘备',
|
||||
guanyu:'关羽',
|
||||
zhangfei:'张飞',
|
||||
|
|
|
@ -4,18 +4,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
name:'xinghuoliaoyuan',
|
||||
connect:true,
|
||||
character:{
|
||||
wangcan:["male","qun",3,["xinfu_sanwen","xinfu_qiai","xinfu_denglou"],[]],
|
||||
sp_taishici:["male","qun",4,["xinfu_jixu"],[]],
|
||||
re_jsp_pangtong:["male","wu",3,["xinfu_guolun","xinfu_songsang"],[]],
|
||||
lvdai:["male","wu",4,["xinfu_qinguo"],[]],
|
||||
re_zhangliang:["male","qun",4,["xinfu_jijun","xinfu_fangtong"],[]],
|
||||
lvqian:["male","wei",4,["xinfu_weilu","xinfu_zengdao"],[]],
|
||||
panjun:["male","wu",3,["xinfu_guanwei","xinfu_gongqing"],[]],
|
||||
duji:["male","wei",3,["xinfu_andong","xinyingshi"],[]],
|
||||
zhoufang:["male","wu",3,["xinfu_duanfa","xinfu_youdi"],[]],
|
||||
yanjun:["male","wu",3,["xinfu_guanchao","xinfu_xunxian"],[]],
|
||||
liuyao:["male","qun",4,["xinfu_kannan"],[]],
|
||||
liuyan:["male","qun",3,["xinfu_tushe","xinfu_limu"],[]],
|
||||
wangcan:["male","qun",3,["xinfu_sanwen","xinfu_qiai","xinfu_denglou"]],
|
||||
sp_taishici:["male","qun",4,["xinfu_jixu"]],
|
||||
re_jsp_pangtong:["male","wu",3,["xinfu_guolun","xinfu_songsang"]],
|
||||
lvdai:["male","wu",4,["xinfu_qinguo"]],
|
||||
re_zhangliang:["male","qun",4,["xinfu_jijun","xinfu_fangtong"]],
|
||||
lvqian:["male","wei",4,["xinfu_weilu","xinfu_zengdao"]],
|
||||
panjun:["male","wu",3,["xinfu_guanwei","xinfu_gongqing"]],
|
||||
duji:["male","wei",3,["xinfu_andong","xinfu_yingshi"]],
|
||||
zhoufang:["male","wu",3,["xinfu_duanfa","xinfu_youdi"]],
|
||||
yanjun:["male","wu",3,["xinfu_guanchao","xinfu_xunxian"]],
|
||||
liuyao:["male","qun",4,["xinfu_kannan"]],
|
||||
liuyan:["male","qun",3,["xinfu_tushe","xinfu_limu"]],
|
||||
},
|
||||
characterIntro:{
|
||||
wangcan:"王粲(177年-217年2月17日),字仲宣。山阳郡高平县(今山东微山两城镇)人。东汉末年文学家,“建安七子”之一,太尉王龚曾孙、司空王畅之孙。",
|
||||
|
@ -1560,9 +1560,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
},
|
||||
characterReplace:{
|
||||
duji:['re_duji','duji'],
|
||||
},
|
||||
translate:{
|
||||
xinghuoliaoyuan:'星火燎原',
|
||||
|
||||
"sp_taishici":"SP太史慈",
|
||||
wangcan:"王粲",
|
||||
"re_jsp_pangtong":"SP庞统",
|
||||
|
|
|
@ -44,7 +44,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
manchong:['male','wei',3,['junxing','yuce']],
|
||||
chenqun:['male','wei',3,['pindi','faen']],
|
||||
sunluban:['female','wu',3,['chanhui','jiaojin']],
|
||||
guyong:['male','wu',3,['shenxing','bingyi']],
|
||||
guyong:['male','wu',3,['shenxing','olbingyi']],
|
||||
caifuren:['female','qun',3,['qieting','xianzhou']],
|
||||
yj_jushou:['male','qun',3,['jianying','shibei']],
|
||||
zhangsong:['male','shu',3,['qiangzhi','xiantu']],
|
||||
|
@ -194,6 +194,53 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhonghui:['jiangwei'],
|
||||
},
|
||||
skill:{
|
||||
//顾雍
|
||||
olbingyi:{
|
||||
audio:'bingyi',
|
||||
trigger:{player:'loseAfter'},
|
||||
filter:function(event,player){
|
||||
return event.type=='discard'&&player.countCards('h')>0&&!player.hasSkill('olbingyi_blocker',null,null,false);
|
||||
},
|
||||
prompt2:function(event,player){
|
||||
var str='展示所有手牌,然后',hs=player.getCards('h');
|
||||
var color=get.color(hs);
|
||||
if(color=='none') return str+'无事发生';
|
||||
str+=('令至多'+get.cnNumber(hs.length)+'名其他角色和自己各摸一张牌');
|
||||
return str;
|
||||
},
|
||||
check:function(event,player){
|
||||
var color=get.color(player.getCards('h'));
|
||||
return color!='none';
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.addTempSkill('olbingyi_blocker',['phaseZhunbeiAfter','phaseJudgeAfter','phaseDrawAfter','phaseUseAfter','phaseDiscardAfter','phaseJieshuAfter']);
|
||||
player.showHandcards(get.translation(player)+'发动了【秉壹】');
|
||||
if(get.color(player.getCards('h'))=='none') event.finish();
|
||||
'step 1'
|
||||
var num=player.countCards('h');
|
||||
player.chooseTarget([1,num],'令至多'+get.cnNumber(num)+'名角色也各摸一张牌',lib.filter.notMe).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
var att=get.attitude(player,target)/Math.sqrt(1+target.countCards('h'));
|
||||
if(target.hasSkillTag('nogain')) att/=10;
|
||||
return att;
|
||||
});
|
||||
'step 2'
|
||||
var targets=[player];
|
||||
if(result.bool){
|
||||
targets.addArray(result.targets);
|
||||
player.line(targets,'green');
|
||||
game.asyncDraw(targets.sortBySeat());
|
||||
}
|
||||
else{
|
||||
player.draw();
|
||||
event.finish();
|
||||
}
|
||||
'step 3'
|
||||
game.delayx();
|
||||
},
|
||||
subSkill:{blocker:{charlotte:true}},
|
||||
},
|
||||
//孙体
|
||||
xinzhaofu:{
|
||||
mark:false,
|
||||
|
@ -8744,14 +8791,50 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
filterCard:true,
|
||||
selectCard:2,
|
||||
prompt:'弃置两张牌并摸一张牌',
|
||||
check:function(card){return 4-get.useful(card)},
|
||||
check:function(card){
|
||||
var player=_status.event.player;
|
||||
if(!player.hasSkill('olbingyi')||player.hasSkill('olbingyi_blocker',null,null,false)) return 4-get.value(card);
|
||||
var red=0,black=0,hs=player.getCards('h');
|
||||
for(var i of hs){
|
||||
if(ui.selected.cards.contains(i)) continue;
|
||||
var color=get.color(i,player);
|
||||
if(color=='red') red++;
|
||||
if(color=='black') black++;
|
||||
}
|
||||
if(red>2&&black>2) return 4-get.value(card);
|
||||
if(red==0||black==0) return 8-get.value(card);
|
||||
var color=get.color(red);
|
||||
if(black<=red) return ((color=='black'&&get.position(card)=='h')?8:4)-get.value(card);
|
||||
return ((color=='red'&&get.position(card)=='h'?8:4))-get.value(card);
|
||||
},
|
||||
content:function(){
|
||||
player.draw();
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
order:9,
|
||||
result:{
|
||||
player:1
|
||||
player:function(player,target){
|
||||
if(!ui.selected.cards.length) return 1;
|
||||
if(!player.hasSkill('olbingyi')||player.hasSkill('olbingyi_blocker',null,null,false)) return 1;
|
||||
var red=0,black=0,hs=player.getCards('h');
|
||||
for(var i of hs){
|
||||
if(ui.selected.cards.contains(i)) continue;
|
||||
var color=get.color(i);
|
||||
if(color=='red') red++;
|
||||
if(color=='black') black++;
|
||||
}
|
||||
var val=0;
|
||||
for(var i of ui.selected.cards) val+=get.value(i,player);
|
||||
if(red==0||black==0){
|
||||
if(red+black==0) return 0;
|
||||
var num=Math.min(red+black,game.countPlayer(function(current){
|
||||
return current!=player&&get.attitude(player,current)>0&&!current.hasSkillTag('nogain');
|
||||
}))+1;
|
||||
if(num*7>val) return 1;
|
||||
}
|
||||
if(val<8) return 1;
|
||||
return 0;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -12086,9 +12169,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
guotufengji:['re_guotufengji','guotufengji'],
|
||||
guanping:['re_guanping','guanping'],
|
||||
caifuren:['xin_caifuren','re_caifuren','caifuren'],
|
||||
guyong:['re_guyong','xin_guyong','guyong'],
|
||||
guyong:['guyong','re_guyong','xin_guyong'],
|
||||
yj_jushou:['re_jushou','xin_jushou','yj_jushou'],
|
||||
guohuanghou:['re_guohuanghou','guohuanghou'],
|
||||
liuchen:['re_liuchen','liuchen'],
|
||||
},
|
||||
translate:{
|
||||
old_huaxiong:'华雄',
|
||||
|
@ -12111,7 +12195,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
caochong:'曹冲',
|
||||
bulianshi:'步练师',
|
||||
handang:'韩当',
|
||||
fuhuanghou:'伏皇后',
|
||||
fuhuanghou:'伏寿',
|
||||
caifuren:'蔡夫人',
|
||||
zhonghui:'钟会',
|
||||
old_zhonghui:'旧钟会',
|
||||
|
@ -12668,6 +12752,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xinkuangbi_info:'出牌阶段限一次。你可以令一名其他角色交给你至多三张牌(不计入你本回合的手牌上限)。然后其于其的下回合开始时摸等量的牌。',
|
||||
xinzhaofu:'诏缚',
|
||||
xinzhaofu_info:'主公技,限定技。出牌阶段,你可选择至多两名其他角色。这两名角色视为在所有其他吴势力角色的攻击范围内。',
|
||||
olbingyi:'秉壹',
|
||||
olbingyi_info:'每阶段限一次。当你因弃置而失去牌后,你可以展示所有手牌。若这些牌的颜色均相同,则你可以与至多X名其他角色各摸一张牌(X为你的手牌数)。',
|
||||
|
||||
yijiang_2011:'一将成名2011',
|
||||
yijiang_2012:'一将成名2012',
|
||||
|
|
|
@ -3490,7 +3490,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
jin_simashi:['jin_xiahouhui','jin_yanghuiyu'],
|
||||
},
|
||||
characterReplace:{
|
||||
yanghu:['jin_yanghu','sp_yanghu'],
|
||||
yanghu:['dc_yanghu','jin_yanghu','sp_yanghu'],
|
||||
jiachong:['jin_jiachong','jiachong'],
|
||||
yangyan:['yangyan','old_yangyan'],
|
||||
yangzhi:['yangzhi','old_yangzhi'],
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'v1.9.115',
|
||||
'v1.9.115.1',
|
||||
'audio/background/aozhan_chaoming.mp3',
|
||||
'audio/background/aozhan_online.mp3',
|
||||
'audio/background/aozhan_rewrite.mp3',
|
||||
|
@ -192,6 +192,16 @@ window.noname_asset_list=[
|
|||
'audio/die/shen_sunquan.mp3',
|
||||
'audio/die/tengfanglan.mp3',
|
||||
'audio/die/weizi.mp3',
|
||||
'audio/die/dc_gongsunzan.mp3',
|
||||
'audio/die/dc_huangzu.mp3',
|
||||
'audio/die/dc_yanghu.mp3',
|
||||
'audio/die/gz_dc_yanghu.mp3',
|
||||
'audio/die/ns_zanghong.mp3',
|
||||
'audio/die/re_masu.mp3',
|
||||
'audio/die/re_zhangyi.mp3',
|
||||
'audio/die/ruiji.mp3',
|
||||
'audio/die/yangyi.mp3',
|
||||
'audio/die/yj_ganning.mp3',
|
||||
|
||||
'audio/die/baosanniang.mp3',
|
||||
'audio/die/beimihu.mp3',
|
||||
|
@ -934,6 +944,40 @@ window.noname_asset_list=[
|
|||
'audio/die/zuoci.mp3',
|
||||
'audio/die/zuofen.mp3',
|
||||
|
||||
'audio/effect/damage.mp3',
|
||||
'audio/effect/damage_female.mp3',
|
||||
'audio/effect/damage_male.mp3',
|
||||
'audio/effect/damage2.mp3',
|
||||
'audio/effect/die_female.mp3',
|
||||
'audio/effect/die_male.mp3',
|
||||
'audio/effect/discard.mp3',
|
||||
'audio/effect/draw.mp3',
|
||||
'audio/effect/drawx.mp3',
|
||||
'audio/effect/equip1.mp3',
|
||||
'audio/effect/equip2.mp3',
|
||||
'audio/effect/equip3.mp3',
|
||||
'audio/effect/equip4.mp3',
|
||||
'audio/effect/equip5.mp3',
|
||||
'audio/effect/ignotus.mp3',
|
||||
'audio/effect/judge.mp3',
|
||||
'audio/effect/link.mp3',
|
||||
'audio/effect/lose.mp3',
|
||||
'audio/effect/loseHp.mp3',
|
||||
'audio/effect/recover.mp3',
|
||||
'audio/effect/sm3dw_overworld.mp3',
|
||||
'audio/effect/taketori_hishou.mp3',
|
||||
'audio/effect/throw_egg1.mp3',
|
||||
'audio/effect/throw_egg2.mp3',
|
||||
'audio/effect/throw_flower1.mp3',
|
||||
'audio/effect/throw_flower2.mp3',
|
||||
'audio/effect/throw_shoe1.mp3',
|
||||
'audio/effect/throw_shoe2.mp3',
|
||||
'audio/effect/throw_wine1.mp3',
|
||||
'audio/effect/throw_wine2.mp3',
|
||||
'audio/effect/tie.mp3',
|
||||
'audio/effect/tori_no_uta.mp3',
|
||||
'audio/effect/win.mp3',
|
||||
|
||||
'audio/skill/bingxin1.mp3',
|
||||
'audio/skill/bingxin2.mp3',
|
||||
'audio/skill/choutao1.mp3',
|
||||
|
@ -1006,6 +1050,42 @@ window.noname_asset_list=[
|
|||
'audio/skill/yuanzi2.mp3',
|
||||
'audio/skill/yuheng1.mp3',
|
||||
'audio/skill/yuheng2.mp3',
|
||||
'audio/skill/dcdeshao1.mp3',
|
||||
'audio/skill/dcdeshao2.mp3',
|
||||
'audio/skill/dcjinggong1.mp3',
|
||||
'audio/skill/dcjinggong2.mp3',
|
||||
'audio/skill/dcmingfa1.mp3',
|
||||
'audio/skill/dcmingfa2.mp3',
|
||||
'audio/skill/dcqiaomeng1.mp3',
|
||||
'audio/skill/dcqiaomeng2.mp3',
|
||||
'audio/skill/dcxiaojuan1.mp3',
|
||||
'audio/skill/dcxiaojuan2.mp3',
|
||||
'audio/skill/duoduan1.mp3',
|
||||
'audio/skill/duoduan2.mp3',
|
||||
'audio/skill/gnjinfan1.mp3',
|
||||
'audio/skill/gnjinfan2.mp3',
|
||||
'audio/skill/gnsheque1.mp3',
|
||||
'audio/skill/gnsheque2.mp3',
|
||||
'audio/skill/gongsun1.mp3',
|
||||
'audio/skill/gongsun2.mp3',
|
||||
'audio/skill/ns_nsshimeng1.mp3',
|
||||
'audio/skill/ns_nsshimeng2.mp3',
|
||||
'audio/skill/qiaoli1.mp3',
|
||||
'audio/skill/qiaoli2.mp3',
|
||||
'audio/skill/qingliang1.mp3',
|
||||
'audio/skill/qingliang2.mp3',
|
||||
'audio/skill/resanyao1.mp3',
|
||||
'audio/skill/resanyao2.mp3',
|
||||
'audio/skill/rewurong1.mp3',
|
||||
'audio/skill/rewurong2.mp3',
|
||||
'audio/skill/reyicong_dc_gongsunzan.mp3',
|
||||
'audio/skill/reyicong_dc_gongsunzan1.mp3',
|
||||
'audio/skill/sanyao1.mp3',
|
||||
'audio/skill/sanyao2.mp3',
|
||||
'audio/skill/zhiman_re_masu1.mp3',
|
||||
'audio/skill/zhiman_re_masu2.mp3',
|
||||
'audio/skill/zhiyan_xin_yufan1.mp3',
|
||||
'audio/skill/zhiyan_xin_yufan2.mp3',
|
||||
|
||||
'audio/skill/anguo1.mp3',
|
||||
'audio/skill/anguo2.mp3',
|
||||
|
@ -3363,8 +3443,6 @@ window.noname_asset_list=[
|
|||
'audio/skill/tongduo2.mp3',
|
||||
'audio/skill/tongji1.mp3',
|
||||
'audio/skill/tongji2.mp3',
|
||||
'audio/skill/tongqu1.mp3',
|
||||
'audio/skill/tongqu2.mp3',
|
||||
'audio/skill/tongyuan1.mp3',
|
||||
'audio/skill/tongyuan2.mp3',
|
||||
'audio/skill/tspowei1.mp3',
|
||||
|
@ -5464,6 +5542,13 @@ window.noname_asset_list=[
|
|||
'image/character/sb_yujin.jpg',
|
||||
'image/character/shen_machao.jpg',
|
||||
'image/character/shen_sunquan.jpg',
|
||||
'image/character/dc_gongsunzan.jpg',
|
||||
'image/character/dc_huangzu.jpg',
|
||||
'image/character/dc_yanghu.jpg',
|
||||
'image/character/ns_ruanji.jpg',
|
||||
'image/character/ns_zanghong.jpg',
|
||||
'image/character/re_duji.jpg',
|
||||
'image/character/re_liuchen.jpg',
|
||||
|
||||
'image/character/baiwuchang.jpg',
|
||||
'image/character/baosanniang.jpg',
|
||||
|
|
|
@ -134,7 +134,7 @@ window.config={
|
|||
sort:'type_sort',
|
||||
|
||||
cards:['standard','extra'],
|
||||
characters:['standard','shenhua','sp','sp2','yijiang','refresh','xinghuoliaoyuan','mobile','extra','yingbian'],
|
||||
characters:['standard','shenhua','sp','sp2','yijiang','refresh','xinghuoliaoyuan','mobile','extra','yingbian','sb'],
|
||||
connect_characters:['diy'],
|
||||
connect_cards:['huanlekapai','guozhan','sp','zhulu','yingbian','yongjian'],
|
||||
plays:[],
|
||||
|
|
109
game/game.js
|
@ -5689,6 +5689,12 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
wss_mode:{
|
||||
name:'使用WSS协议',
|
||||
init:false,
|
||||
frequent:true,
|
||||
intro:'在用户填写的IP地址没有直接指定使用WS/WSS协议的情况下,默认使用WSS协议,而非WS协议来连接到联机服务器。<br>请不要轻易勾选此项!',
|
||||
},
|
||||
}
|
||||
},
|
||||
boss:{
|
||||
|
@ -9419,24 +9425,6 @@
|
|||
localStorage.removeItem(lib.configprefix+'background');
|
||||
}
|
||||
},
|
||||
parsex:function(func){
|
||||
var k;
|
||||
var str='(';
|
||||
str+=func.toString();
|
||||
if(str.indexOf('step 0')==-1){
|
||||
str=str.replace(/\{/,'{{if(event.step==1) {event.finish();return;}');
|
||||
}
|
||||
else{
|
||||
for(k=1;k<99;k++){
|
||||
if(str.indexOf('step '+k)==-1) break;
|
||||
str=str.replace(new RegExp("'step "+k+"'",'g'),"break;case "+k+":");
|
||||
str=str.replace(new RegExp('"step '+k+'"','g'),"break;case "+k+":");
|
||||
}
|
||||
str=str.replace(/'step 0'|"step 0"/,'if(event.step=='+k+') {event.finish();return;}switch(step){case 0:');
|
||||
}
|
||||
str+='})';
|
||||
return str;
|
||||
},
|
||||
parsex:function(func){
|
||||
var str=func.toString();
|
||||
str=str.slice(str.indexOf('{')+1);
|
||||
|
@ -10569,7 +10557,7 @@
|
|||
break;
|
||||
}
|
||||
};
|
||||
document.addEventListener(lib.config.touchscreen?'touchend':'click',click);
|
||||
document.addEventListener(lib.config.touchscreen?'touchstart':'mousedown',click);
|
||||
|
||||
game.pause();
|
||||
game.countChoose();
|
||||
|
@ -12720,10 +12708,34 @@
|
|||
if(ok){
|
||||
ui.click.ok();
|
||||
}
|
||||
else if(ai.basic.chooseCard(event.ai)){
|
||||
else if(ai.basic.chooseCard(event.ai1||event.ai)){
|
||||
if(ai.basic.chooseTarget(event.ai2)){
|
||||
ui.click.ok();
|
||||
event._aiexcludeclear=true;
|
||||
}
|
||||
else{
|
||||
if(!event.norestore){
|
||||
if(event.skill){
|
||||
var skill=event.skill;
|
||||
ui.click.cancel();
|
||||
event._aiexclude.add(skill);
|
||||
var info=get.info(skill);
|
||||
if(info.sourceSkill){
|
||||
event._aiexclude.add(info.sourceSkill);
|
||||
}
|
||||
}
|
||||
else{
|
||||
get.card(true).aiexclude();
|
||||
game.uncheck();
|
||||
}
|
||||
event.redo();
|
||||
game.resume();
|
||||
}
|
||||
else{
|
||||
ui.click.cancel();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(event.skill&&!event.norestore){
|
||||
var skill=event.skill;
|
||||
ui.click.cancel();
|
||||
|
@ -15895,11 +15907,18 @@
|
|||
},get.delayx(gain2t,gain2t));
|
||||
}
|
||||
else if(event.source&&(event.animate=='give'||event.animate=='giveAuto')){
|
||||
if(event.animate=='give') event.source['$'+event.animate](cards,player);
|
||||
var evtmap=event.relatedLose;
|
||||
if(event.animate=='give'){
|
||||
if(evtmap&&evtmap.cards&&evtmap.cards.length>0) event.source.$give(evtmap.cards,player);
|
||||
else event.source.$give(cards,player);
|
||||
}
|
||||
else{
|
||||
var givemap={hs:[],ots:[]};
|
||||
if(evtmap&&evtmap.hs&&evtmap.cards){
|
||||
for(var i=0;i<cards.length;i++){
|
||||
givemap[event.relatedLose&&event.relatedLose.hs&&event.relatedLose.hs.contains(cards[i])?'hs':'ots'].push(cards[i]);
|
||||
if(evtmap.hs.contains(cards[i])) givemap.hs.push(cards[i]);
|
||||
else if(evtmap.cards.contains(cards[i])) givemap.ots.push(cards[i]);
|
||||
}
|
||||
}
|
||||
if(givemap.hs.length) event.source.$giveAuto(givemap.hs,player);
|
||||
if(givemap.ots.length) event.source.$give(givemap.ots,player);
|
||||
|
@ -18270,14 +18289,14 @@
|
|||
if(i=='global'){
|
||||
lib.skill.global=skills[i];
|
||||
}
|
||||
else if(i=='skillinfo'){
|
||||
for(var j in skills[i]){
|
||||
if(!lib.skill[j]){
|
||||
lib.skill[j]={};
|
||||
}
|
||||
lib.skill[j].chooseButton=skills[i][j];
|
||||
}
|
||||
}
|
||||
//else if(i=='skillinfo'){
|
||||
// for(var j in skills[i]){
|
||||
// if(!lib.skill[j]){
|
||||
// lib.skill[j]={};
|
||||
// }
|
||||
// lib.skill[j].chooseButton=skills[i][j];
|
||||
// }
|
||||
//}
|
||||
else if(i=='stat'){
|
||||
this.stat=[skills.stat];
|
||||
}
|
||||
|
@ -19425,6 +19444,7 @@
|
|||
}
|
||||
}
|
||||
next.position='hs';
|
||||
if(next.ai2==undefined) next.ai2=(()=>1);
|
||||
next.setContent('chooseToRespond');
|
||||
next._args=Array.from(arguments);
|
||||
return next;
|
||||
|
@ -20843,6 +20863,7 @@
|
|||
give:function(cards,target,visible){
|
||||
var next=target.gain(cards,this);
|
||||
next.animate=visible?'give':'giveAuto';
|
||||
next.giver=this;
|
||||
},
|
||||
lose:function(){
|
||||
var next=game.createEvent('lose');
|
||||
|
@ -21600,6 +21621,7 @@
|
|||
else if(info&&info.logv!==false){
|
||||
game.logv(this,name,targets);
|
||||
}
|
||||
if(info){
|
||||
var player=this;
|
||||
var players=player.getSkills(null,false,false);
|
||||
var equips=player.getSkills('e');
|
||||
|
@ -21660,6 +21682,7 @@
|
|||
}
|
||||
}
|
||||
player.getHistory('useSkill').push(logInfo);
|
||||
}
|
||||
if(this._hookTrigger){
|
||||
for(var i=0;i<this._hookTrigger.length;i++){
|
||||
var info=lib.skill[this._hookTrigger[i]].hookTrigger;
|
||||
|
@ -29665,7 +29688,9 @@
|
|||
game.ws.close();
|
||||
delete game.ws;
|
||||
}
|
||||
game.ws=new WebSocket('ws://'+ip+'');
|
||||
var str='';
|
||||
if(ip.indexOf('wss://')!=0&&ip.indexOf('ws://')!=0) str=(get.config('wss_mode','connect')?'wss://':'ws://');
|
||||
game.ws=new WebSocket(str+ip+'');
|
||||
}
|
||||
catch(e){
|
||||
alert('错误:无效联机地址');
|
||||
|
@ -42257,7 +42282,17 @@
|
|||
});
|
||||
}
|
||||
else{
|
||||
lib.init.js(extensionURL.replace(/raw\.githubusercontent\.com/,'rawgit.com')+'catalog.js',null,loaded,function(){
|
||||
lib.init.req(extensionURL.replace(/raw\.githubusercontent\.com/,'rawgit.com')+'catalog.js',function(){
|
||||
try{
|
||||
eval(this.responseText);
|
||||
}
|
||||
catch(e){
|
||||
delete window.extension;
|
||||
loading.innerHTML='连接失败';
|
||||
return;
|
||||
}
|
||||
loaded();
|
||||
},function(){
|
||||
delete window.extension;
|
||||
loading.innerHTML='连接失败';
|
||||
});
|
||||
|
@ -51445,11 +51480,11 @@
|
|||
storage:lib.playerOL[i].storage,
|
||||
}
|
||||
}
|
||||
for(var i in lib.skill){
|
||||
if(lib.skill[i].chooseButton&&lib.skill[i].enable){
|
||||
skillinfo[i]=lib.skill[i].chooseButton;
|
||||
}
|
||||
}
|
||||
//for(var i in lib.skill){
|
||||
// if(lib.skill[i].chooseButton&&lib.skill[i].enable){
|
||||
// skillinfo[i]=lib.skill[i].chooseButton;
|
||||
// }
|
||||
//}
|
||||
skills.skillinfo=skillinfo;
|
||||
if(player){
|
||||
skills.stat=player.getStat();
|
||||
|
|
|
@ -1,30 +1,29 @@
|
|||
window.noname_update={
|
||||
version:'1.9.115',
|
||||
update:'1.9.114.4.1',
|
||||
version:'1.9.115.1',
|
||||
update:'1.9.115',
|
||||
changeLog:[
|
||||
'OL神孙权',
|
||||
'十周年神马超、界沮授',
|
||||
'移动版谋黄忠、谋华雄、谋于禁',
|
||||
'阮籍、臧洪入选稿公布',
|
||||
'十周年界公孙瓒、界杜畿、界刘谌、黄祖、羊祜',
|
||||
'技能调整与bug修复',
|
||||
],
|
||||
files:[
|
||||
//'card/extra.js',
|
||||
'card/gujian.js',
|
||||
'card/guozhan.js',
|
||||
'card/extra.js',
|
||||
//'card/gujian.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/yongjian.js',
|
||||
//'card/zhenfa.js',
|
||||
//'card/zhulu.js',
|
||||
'character/diy.js',
|
||||
'character/extra.js',
|
||||
'character/hearth.js',
|
||||
//'character/hearth.js',
|
||||
//'character/gujian.js',
|
||||
//'character/gwent.js',
|
||||
//'character/hearth.js',
|
||||
|
@ -36,17 +35,17 @@ window.noname_update={
|
|||
'character/rank.js',
|
||||
'character/refresh.js',
|
||||
'character/sb.js',
|
||||
//'character/shenhua.js',
|
||||
'character/shenhua.js',
|
||||
'character/sp.js',
|
||||
'character/sp2.js',
|
||||
//'character/standard.js',
|
||||
'character/standard.js',
|
||||
//'character/tw.js',
|
||||
//'character/swd.js',
|
||||
//'character/xianjian.js',
|
||||
//'character/xinghuoliaoyuan.js',
|
||||
'character/xinghuoliaoyuan.js',
|
||||
//'character/yingbian.js',
|
||||
'character/yijiang.js',
|
||||
'character/yxs.js',
|
||||
//'character/yxs.js',
|
||||
//'extension/boss/extension.js',
|
||||
//'layout/default/layout.css',
|
||||
//'layout/newlayout/global.css',
|
||||
|
@ -58,7 +57,7 @@ window.noname_update={
|
|||
//'mode/chess.js',
|
||||
//'mode/connect.js',
|
||||
//'mode/doudizhu.js',
|
||||
//'mode/guozhan.js',
|
||||
'mode/guozhan.js',
|
||||
//'mode/identity.js',
|
||||
//'mode/single.js',
|
||||
//'mode/stone.js',
|
||||
|
@ -68,9 +67,9 @@ window.noname_update={
|
|||
//'game/keyWords.js',
|
||||
//'game/NoSleep.js',
|
||||
'game/config.js',
|
||||
'game/package.js',
|
||||
//'game/package.js',
|
||||
//'game/asset.js',
|
||||
'game/source.js',
|
||||
//'game/source.js',
|
||||
//'theme/style/hp/custom.css',
|
||||
//'theme/style/hp/emotion.css',
|
||||
//'theme/style/hp/glass.css',
|
||||
|
|
After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 100 KiB |
After Width: | Height: | Size: 116 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 88 KiB |
355
mode/guozhan.js
|
@ -363,7 +363,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
guozhan_single:['gz_re_xushu','gz_yanbaihu','gz_wujing','gz_dongzhao','gz_huangzu','gz_zhugeke','gz_liuba','gz_zhuling'],
|
||||
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_zongheng:['gz_huaxin','gz_luyusheng','gz_zongyu','gz_miheng','gz_fengxi','gz_dengzhi','gz_re_xunchen','gz_dc_yanghu'],
|
||||
guozhan_others:["gz_lingcao","gz_lifeng","gz_beimihu","gz_jianggan","gz_key_ushio","gz_sp_duyu","gz_re_nanhualaoxian","gz_zhouyi","gz_lvlingqi","gz_liaohua","gz_zhugejin","gz_yangxiu","gz_chendao","gz_fuwan","gz_zumao"],
|
||||
}
|
||||
},
|
||||
|
@ -519,6 +519,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
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_dc_yanghu:['male','wei',3,['gzdeshao','gzmingfa']],
|
||||
|
||||
gz_cuimao:['male','wei',3,['gzzhengbi','gzfengying'],[]],
|
||||
gz_yujin:['male','wei',4,['gzjieyue'],['gzskin']],
|
||||
|
@ -555,6 +556,75 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
skill:{
|
||||
//十周年羊祜
|
||||
gzdeshao:{
|
||||
audio:'dcdeshao',
|
||||
trigger:{target:'useCardToTargeted'},
|
||||
preHidden:true,
|
||||
countUnseen:function(player){
|
||||
var num=0;
|
||||
if(player.isUnseen(0)) num++;
|
||||
if(player.isUnseen(1)) num++;
|
||||
return num;
|
||||
},
|
||||
filter:function(event,player){
|
||||
if(player==event.player||event.targets.length!=1||get.color(event.card)!='black') return false;
|
||||
if(lib.skill.gzdeshao.countUnseen(event.player)<lib.skill.gzdeshao.countUnseen(player)||!event.player.countCards('he')) return false;
|
||||
return player.getHistory('useSkill',function(evt){
|
||||
return evt.skill=='gzdeshao';
|
||||
}).length<player.hp;
|
||||
},
|
||||
check:function(event,player){
|
||||
return get.effect(event.player,{name:'guohe_copy2'},player,player)>0;
|
||||
},
|
||||
logTarget:'player',
|
||||
content:function(){
|
||||
player.discardPlayerCard(trigger.player,true,'he');
|
||||
},
|
||||
},
|
||||
gzmingfa:{
|
||||
audio:'dcmingfa',
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterTarget:function(card,player,target){
|
||||
return player!=target&&target.isEnemyOf(player);
|
||||
},
|
||||
content:function(){
|
||||
player.markAuto('gzmingfa',targets);
|
||||
game.delayx();
|
||||
},
|
||||
onremove:true,
|
||||
ai:{
|
||||
order:1,
|
||||
result:{target:-1},
|
||||
},
|
||||
group:'gzmingfa_effect',
|
||||
subSkill:{
|
||||
effect:{
|
||||
audio:'dcmingfa',
|
||||
trigger:{global:'phaseEnd'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.getStorage('gzmingfa').contains(event.player);
|
||||
},
|
||||
logTarget:'player',
|
||||
content:function(){
|
||||
var target=trigger.player;
|
||||
player.unmarkAuto('gzmingfa',[target]);
|
||||
if(target.isIn()){
|
||||
var num=player.countCards('h')-target.countCards('h');
|
||||
if(num>0){
|
||||
target.damage();
|
||||
player.gainPlayerCard(target,true,'h');
|
||||
}
|
||||
else if(num<0){
|
||||
player.draw(Math.min(5,-num));
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
//海外服国战
|
||||
//杨修
|
||||
gzdanlao:{
|
||||
|
@ -567,6 +637,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
gzjilei:{
|
||||
inherit:'jilei',
|
||||
preHidden:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseControl('basic','trick','equip','cancel2',function(){
|
||||
|
@ -9086,223 +9157,90 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
ai:{
|
||||
threaten:2,
|
||||
},
|
||||
group:['zhangwu_gain','zhangwu_clear','zhangwu_count1','zhangwu_count2','zhangwu_count3'],
|
||||
trigger:{
|
||||
global:['loseAfter','cardsDiscardAfter','equipAfter'],
|
||||
},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
if(event.name=='equip'){
|
||||
if(player==event.player) return false;
|
||||
if(event.card.name=='feilongduofeng'&&event.player.getCards('e').contains(event.card)) return true;
|
||||
return event.player.hasHistory('lose',function(evt){
|
||||
if(evt.position!=ui.discardPile||evt.getParent().name!='equip') return false;
|
||||
for(var i of evt.cards){
|
||||
if(i.name=='feilongduofeng'&&get.position(i,true)=='d') return true;
|
||||
}
|
||||
return false;
|
||||
})
|
||||
}
|
||||
if(event.name=='lose'&&(event.position!=ui.discardPile||event.getParent().name=='equip')) return false;
|
||||
for(var i of event.cards){
|
||||
if(i.name=='feilongduofeng'&&get.position(i,true)=='d') return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
logTarget:function(event,player){
|
||||
if(event.name=='equip'&&event.card.name=='feilongduofeng'&&event.player.getCards('e').contains(event.card)) return event.player;
|
||||
return [];
|
||||
},
|
||||
content:function(){
|
||||
game.delayx();
|
||||
var cards=[];
|
||||
if(trigger.name=='equip'){
|
||||
if(trigger.card.name=='feilongduofeng'&&trigger.player.getCards('e').contains(trigger.card)) cards.push(trigger.card);
|
||||
trigger.player.getHistory('lose',function(evt){
|
||||
if(evt.position!=ui.discardPile||evt.getParent()!=trigger) return false;
|
||||
for(var i of evt.cards){
|
||||
if(i.name=='feilongduofeng'&&get.position(i,true)=='d') cards.push(i);
|
||||
}
|
||||
return false;
|
||||
})
|
||||
};
|
||||
if(trigger.name=='lose'){
|
||||
for(var i of trigger.cards){
|
||||
if(i.name=='feilongduofeng'&&get.position(i,true)=='d') cards.push(i);
|
||||
}
|
||||
}
|
||||
var owner=get.owner(cards[0]);
|
||||
if(owner) player.gain(cards,'give',owner);
|
||||
else player.gain(cards,'gain2');
|
||||
},
|
||||
group:'zhangwu_draw',
|
||||
subSkill:{
|
||||
gain:{
|
||||
draw:{
|
||||
audio:'zhangwu',
|
||||
trigger:{global:['discardAfter','respondAfter','useCardAfter','equipAfter',
|
||||
'judgeAfter','useSkillAfter','phaseDrawBegin','phaseAfter']},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
if(player.storage.zhangwu){
|
||||
for(var i=0;i<player.storage.zhangwu.length;i++){
|
||||
if(get.owner(player.storage.zhangwu[i])==player) continue;
|
||||
var position=get.position(player.storage.zhangwu[i]);
|
||||
if(position&&position!='s'&&position!='c'){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(event.name=='equip'&&player!=event.player&&event.card.name=='feilongduofeng') return true;
|
||||
//if(game.hasPlayer(function(current){
|
||||
// return current!=player&¤t.getEquip('feilongduofeng');
|
||||
//})){
|
||||
// return true;
|
||||
//}
|
||||
if(['discard','respond','useCard'].contains(event.name)&&event.cards){
|
||||
for(var i=0;i<event.cards.length;i++){
|
||||
if(event.cards[i].name=='feilongduofeng'&&get.position(event.cards[i])=='d'){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
for(var i=0;i<ui.discardPile.childElementCount;i++){
|
||||
if(ui.discardPile.childNodes[i].name=='feilongduofeng') return true;
|
||||
}
|
||||
return false;
|
||||
trigger:{
|
||||
player:'loseEnd',
|
||||
global:['equipEnd','addJudgeEnd','gainEnd','loseAsyncEnd','addToExpansionEnd'],
|
||||
},
|
||||
filter:function(event,player){
|
||||
if(event.name=='lose'&&event.getParent().name=='useCard') return false;
|
||||
var evt=event.getl(player);
|
||||
return evt&&evt.player==player&&evt.cards2.filter(function(i){
|
||||
return i.name=='feilongduofeng'&&get.owner(i)!=player;
|
||||
}).length>0;
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(trigger.name=='equip'||trigger.name=='respond'||trigger.delay==false) game.delay();
|
||||
'step 1'
|
||||
var list=[];
|
||||
/*game.countPlayer(function(current){
|
||||
if(current!=player){
|
||||
var es=current.getEquip('feilongduofeng');
|
||||
if(es){
|
||||
list.add(es);
|
||||
}
|
||||
}
|
||||
});*/
|
||||
if(trigger.name=='equip'&&player!=trigger.player) list.add(trigger.card);
|
||||
if(['discard','respond','useCard'].contains(trigger.name)&&trigger.cards){
|
||||
for(var i=0;i<trigger.cards.length;i++){
|
||||
if(trigger.cards[i].name=='feilongduofeng'&&get.position(trigger.cards[i])=='d'){
|
||||
trigger.cards[i].fix();
|
||||
list.add(trigger.cards[i]);
|
||||
ui.special.appendChild(trigger.cards[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
for(var i=0;i<ui.discardPile.childElementCount;i++){
|
||||
if(ui.discardPile.childNodes[i].name=='feilongduofeng'){
|
||||
list.add(ui.discardPile.childNodes[i]);
|
||||
ui.special.appendChild(ui.discardPile.childNodes[i]);
|
||||
}
|
||||
}
|
||||
var list2=[];
|
||||
if(player.storage.zhangwu){
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(player.storage.zhangwu.contains(list[i])){
|
||||
player.storage.zhangwu.remove(list[i]);
|
||||
list2.add(list[i]);
|
||||
list.splice(i--,1);
|
||||
}
|
||||
}
|
||||
for(var i=0;i<player.storage.zhangwu.length;i++){
|
||||
if(get.owner(player.storage.zhangwu[i])==player) continue;
|
||||
var position=get.position(player.storage.zhangwu[i]);
|
||||
if(position&&position!='s'&&position!='c'){
|
||||
list2.add(player.storage.zhangwu[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(list.length){
|
||||
player.gain(list);
|
||||
var owner=get.owner(list[0]);
|
||||
if(trigger.name!='respond'&&owner){
|
||||
player.line(owner,'green');
|
||||
owner.$give(list,player);
|
||||
}
|
||||
var cards=[],evt=trigger.getl(player);
|
||||
cards.addArray(evt.cards2.filter(function(i){
|
||||
return i.name=='feilongduofeng'&&get.owner(i)!=player;
|
||||
}));
|
||||
player.showCards(cards,get.translation(player)+'发动了【章武】');
|
||||
for(var i of cards){
|
||||
var owner=get.owner(i);
|
||||
if(owner) owner.lose(i,ui.cardPile)._triggered=null;
|
||||
else{
|
||||
player.$gain2(list,true);
|
||||
i.fix();
|
||||
ui.cardPile.appendChild(i);
|
||||
}
|
||||
event.delay=true;
|
||||
}
|
||||
if(list2.length){
|
||||
player.showCards(get.translation(player)+'发动了【章武】',list2);
|
||||
for(var i=0;i<list2.length;i++){
|
||||
var owner=get.owner(list2[i]);
|
||||
if(owner){
|
||||
owner.lose(list2[i],ui.special);
|
||||
event.delay=true;
|
||||
}
|
||||
}
|
||||
event.list2=list2;
|
||||
}
|
||||
'step 2'
|
||||
if(event.delay){
|
||||
game.delay();
|
||||
}
|
||||
'step 3'
|
||||
if(event.list2&&event.list2.length){
|
||||
for(var i=0;i<event.list2.length;i++){
|
||||
event.list2[i].fix();
|
||||
ui.cardPile.appendChild(event.list2[i]);
|
||||
}
|
||||
game.log(player,'将',event.list2,'置于牌堆底');
|
||||
player.draw(2);
|
||||
}
|
||||
}
|
||||
},
|
||||
count1:{
|
||||
trigger:{player:'loseAfter'},
|
||||
silent:true,
|
||||
filter:function(event,player){
|
||||
if(event.type!='gain'&&event.type!='equip') return true;
|
||||
if(event.parent.player==player) return true;
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
if(!player.storage.zhangwu){
|
||||
player.storage.zhangwu=[];
|
||||
}
|
||||
for(var i=0;i<trigger.stockcards.length;i++){
|
||||
if(trigger.stockcards[i].name=='feilongduofeng'){
|
||||
player.storage.zhangwu.add(trigger.stockcards[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
count2:{
|
||||
audio:'zhangwu',
|
||||
trigger:{player:'loseAfter'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
if(lib.skill.zhangwu_count1.filter(event,player)){
|
||||
return false;
|
||||
}
|
||||
for(var i=0;i<event.stockcards.length;i++){
|
||||
if(event.stockcards[i].name=='feilongduofeng'){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=[];
|
||||
for(var i=0;i<trigger.stockcards.length;i++){
|
||||
if(trigger.stockcards[i].name=='feilongduofeng'){
|
||||
list.add(trigger.stockcards[i]);
|
||||
}
|
||||
}
|
||||
if(list.length){
|
||||
if(trigger.type=='gain'){
|
||||
for(var i=0;i<list.length;i++){
|
||||
trigger.parent.cards.remove(list[i]);
|
||||
}
|
||||
}
|
||||
else if(trigger.type=='equip'){
|
||||
trigger.parent.cancelled=true;
|
||||
}
|
||||
player.showCards(get.translation(player)+'发动了【章武】',list);
|
||||
event.list=list;
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 1'
|
||||
for(var i=0;i<event.list.length;i++){
|
||||
event.list[i].fix();
|
||||
ui.cardPile.appendChild(event.list[i]);
|
||||
}
|
||||
game.log(player,'将',event.list,'置于牌堆底');
|
||||
player.draw(2);
|
||||
}
|
||||
},
|
||||
count3:{
|
||||
audio:'zhangwu',
|
||||
trigger:{global:'equipBefore'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.card&&event.card.name=='feilongduofeng'&&event.player!=player&&
|
||||
player.storage.zhangwu&&player.storage.zhangwu.contains(event.card);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
trigger.cancel();
|
||||
trigger.card.fix();
|
||||
player.showCards(get.translation(player)+'发动了【章武】',[trigger.card]);
|
||||
var owner=get.owner(trigger.card);
|
||||
if(owner){
|
||||
owner.lose(trigger.card,ui.special);
|
||||
}
|
||||
player.storage.zhangwu.remove(trigger.card);
|
||||
'step 1'
|
||||
trigger.card.fix();
|
||||
ui.cardPile.appendChild(trigger.card);
|
||||
game.log(player,'将',trigger.card,'置于牌堆底');
|
||||
player.draw(2);
|
||||
}
|
||||
},
|
||||
clear:{
|
||||
trigger:{global:'phaseAfter'},
|
||||
silent:true,
|
||||
content:function(){
|
||||
delete player.storage.zhangwu;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
shouyue:{
|
||||
unique:true,
|
||||
|
@ -10411,6 +10349,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
list[i].setIdentity();
|
||||
}
|
||||
},yelist,player.group);
|
||||
game.tryResult();
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
|
@ -11652,6 +11591,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
quanjin_info:'出牌阶段限一次,你可将一张手牌交给一名本回合内受到过伤害其他角色,然后令其执行一项“军令”。若其执行,则你摸一张牌。若其不执行,则你将手牌摸至与全场最多相等(至多摸五张)。',
|
||||
zaoyun:'凿运',
|
||||
zaoyun_info:'出牌阶段限一次,你可以弃置X张牌并选择一名距离为X+1的敌方角色。你对其造成1点伤害且至其的距离视为1至回合结束。',
|
||||
gzdeshao:'德劭',
|
||||
gzdeshao_info:'每回合限X次(X为你的体力值)。其他角色使用黑色牌指定你为唯一目标后,若其暗置的武将牌数大于等于你,则你可以弃置其一张牌。',
|
||||
gzmingfa:'明伐',
|
||||
gzmingfa_info:'出牌阶段限一次,你可以选择一名敌方角色。该角色的下个回合结束时,若其手牌数:小于你,你对其造成1点伤害并获得其一张手牌;大于你,你摸X张牌(X为你与其的手牌数之差且至多为5)。',
|
||||
|
||||
gz_cuimao:'崔琰毛玠',
|
||||
gzzhengbi:'征辟',
|
||||
|
@ -11847,7 +11790,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
wuhujiangdaqi_bg:'旗',
|
||||
wuhujiangdaqi_info:'存活的蜀势力角色的技能按以下规则改动:<br><strong>武圣</strong>:将“红色牌”改为“任意牌”<br><strong>咆哮</strong>:增加描述“你使用的【杀】无视其他角色的防具”<br><strong>龙胆</strong>:增加描述“你发动〖龙胆〗使用或打出牌时摸一张牌”<br><strong>烈弓</strong>:增加描述“你的攻击范围+1”<br><strong>铁骑</strong>:将“一张明置的武将牌”改为“所有明置的武将牌”',
|
||||
zhangwu:'章武',
|
||||
zhangwu_info:'锁定技。当【飞龙夺凤】进入弃牌堆或其他角色的装备区时,你获得之。当你失去【飞龙夺风】时,展示之,然后将此牌置于牌堆底并摸两张牌',
|
||||
zhangwu_info:'锁定技。当【飞龙夺凤】进入弃牌堆或其他角色的装备区后,你获得之。当你不因使用而失去【飞龙夺风】时,你展示此牌,将此牌置于牌堆底并摸两张牌',
|
||||
shouyue:'授钺',
|
||||
shouyue_info:'君主技。只要此武将牌处于明置状态,你便拥有“五虎将大旗”。',
|
||||
jizhao:'激诏',
|
||||
|
|