Misaka Kaori & Misaka Shiori
This commit is contained in:
parent
317e18431a
commit
966542c1ab
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
135
character/diy.js
135
character/diy.js
|
@ -5,6 +5,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
connect:true,
|
||||
connectBanned:['diy_tianyu','diy_yangyi','diy_lukang','ns_huamulan','ns_yuji','ns_duangui','ns_liuzhang'],
|
||||
character:{
|
||||
sp_key_yuri:['female','qun',4,['mubing','diaoling']],
|
||||
ns_zhangwei:['female','wei',3,['nsqiyue','nsxuezhu']],
|
||||
ns_chendao:['male','shu',4,['nsjianglie']],
|
||||
yj_caoang:['male','wei',4,['yjxuepin']],
|
||||
|
@ -52,6 +53,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_shizuru:['female','key',3,['shizuru_nianli','shizuru_benzhan']],
|
||||
key_shiorimiyuki:['female','key',3,['shiorimiyuki_banyin','shiorimiyuki_tingxian']],
|
||||
key_miki:['female','key',3,['miki_shenqiang','miki_huanmeng','miki_zhiluo']],
|
||||
key_shiori:['female','key','2/3',['shiori_huijuan']],
|
||||
key_kaori:['female','key','3/4',['kaori_siyuan']],
|
||||
|
||||
key_kud:['female','key',3,['kud_qiaoshou','kud_buhui']],
|
||||
key_misuzu:['female','key',3,['misuzu_hengzhou','misuzu_nongyin','misuzu_zhongxing']],
|
||||
|
@ -146,7 +149,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"ns_huangchengyan","ns_sunchensunjun","ns_yuanxi","ns_caoshuang"],
|
||||
diy_tieba:["diy_wenyang","ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua","ns_zhangwei"],
|
||||
diy_default:["diy_feishi","diy_liuyan","diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji","diy_liufu","diy_xizhenxihong","diy_liuzan","diy_zaozhirenjun","diy_yangyi","diy_tianyu"],
|
||||
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki"],
|
||||
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri"],
|
||||
diy_yongjian:["ns_chendao","yj_caoang"],
|
||||
},
|
||||
},
|
||||
|
@ -162,6 +165,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
|
||||
},
|
||||
characterTitle:{
|
||||
key_kaori:'#bKanon',
|
||||
key_shiori:'#bKanon',
|
||||
key_miki:'#bSummer Pockets',
|
||||
key_shiorimiyuki:'#rAngel Beats!',
|
||||
key_shizuru:'#bRewrite',
|
||||
|
@ -201,6 +206,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_kyousuke:'#bLittle Busters!',
|
||||
key_yuri:'#rAngel Beats!',
|
||||
key_haruko:'#bAIR',
|
||||
sp_key_yuri:'#bAngel Beats!',
|
||||
|
||||
key_kud:'#b千夜',
|
||||
key_misuzu:'#b长发及腰黑长直',
|
||||
|
@ -309,6 +315,124 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_lucia:['key_shizuru'],
|
||||
},
|
||||
skill:{
|
||||
kaori_siyuan:{
|
||||
enable:'phaseUse',
|
||||
filter:function(event,player){
|
||||
return player.countCards('he',lib.skill.kaori_siyuan.filterCard);
|
||||
},
|
||||
filterCard:function(card){
|
||||
return ['equip','delay'].contains(get.type(card,false));
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
var card=ui.selected.cards[0];
|
||||
if(get.type(card,false)=='delay') return target.canAddJudge({name:card.name});
|
||||
return target.isEmpty(get.subtype(card,false));
|
||||
},
|
||||
discard:false,
|
||||
lose:false,
|
||||
prepare:'give',
|
||||
content:function(){
|
||||
'step 0'
|
||||
var card=cards[0];
|
||||
if(get.type(card,false)=='equip') target.equip(card);
|
||||
else target.addJudge(card);
|
||||
'step 1'
|
||||
var list=[];
|
||||
for(var i of lib.inpile){
|
||||
var type=get.type(i);
|
||||
if(type=='basic'||type=='trick') list.push([type,'',i]);
|
||||
if(i=='sha'){
|
||||
list.push([type,'',i,'fire']);
|
||||
list.push([type,'',i,'thunder']);
|
||||
}
|
||||
}
|
||||
player.chooseButton(['是否视为使用一张基本牌或普通锦囊牌?',[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 2'
|
||||
if(result.bool){
|
||||
player.chooseUseTarget(true,{name:result.links[0][2],nature:result.links[0][3],isCard:true});
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
basic:{
|
||||
order:10
|
||||
},
|
||||
result:{
|
||||
target:function(player,target){
|
||||
var card=ui.selected.cards[0];
|
||||
if(card) return get.effect(target,card,target,target);
|
||||
return 0;
|
||||
},
|
||||
},
|
||||
}
|
||||
},
|
||||
shiori_huijuan:{
|
||||
trigger:{global:'phaseJieshuBegin'},
|
||||
direct:true,
|
||||
locked:true,
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&event.player.getHistory('useCard',function(evt){
|
||||
return evt.isPhaseUsing()&&['basic','trick'].contains(get.type(evt.card))&&player.hasUseTarget({
|
||||
name:evt.card.name,
|
||||
nature:evt.card.nature,
|
||||
isCard:true,
|
||||
});
|
||||
}).length>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=[];
|
||||
trigger.player.getHistory('useCard',function(evt){
|
||||
if(!evt.isPhaseUsing()||!['basic','trick'].contains(get.type(evt.card))) 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('shiori_huijuan'),[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('shiori_huijuan');
|
||||
player.chooseUseTarget(true,{name:result.links[0][2],nature:result.links[0][3],isCard:true});
|
||||
player.getStat('skill').shiori_huijuan=1;
|
||||
}
|
||||
},
|
||||
group:'shiori_huijuan_discard',
|
||||
},
|
||||
shiori_huijuan_discard:{
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
filter:function(event,player){
|
||||
var num=0;
|
||||
var stat=player.stat;
|
||||
for(var i=stat.length-2;i--;i>=0){
|
||||
if(stat[i].isMe) break;
|
||||
if(stat[i].skill&&stat[i].skill.shiori_huijuan) num++;
|
||||
}
|
||||
return num>=Math.max(2,game.countPlayer()/2);
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(!player.countDiscardableCards(player,'ej')) event._result={bool:false};
|
||||
else player.discardPlayerCard(player,'ej').set('ai',function(button){
|
||||
var card=button.link;
|
||||
var player=_status.event.player;
|
||||
if(get.position(card)=='j') return 7+Math.random();
|
||||
return 4+player.needsToDiscard()-get.value(card);
|
||||
});
|
||||
'step 1'
|
||||
if(!result.bool) player.skip('phaseUse');
|
||||
},
|
||||
},
|
||||
miki_shenqiang:{
|
||||
trigger:{
|
||||
global:'gameDrawAfter',
|
||||
|
@ -541,6 +665,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
player.removeAdditionalSkill('kud_qiaoshou_equip');
|
||||
delete player.storage.kud_qiaoshou_equip2;
|
||||
player.addEquipTrigger();
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -10029,6 +10154,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ns_liuzhang:'刘璋',
|
||||
ns_xinnanhua:'南华老仙',
|
||||
|
||||
sp_key_yuri:'SP仲村由理',
|
||||
key_lucia:'此花露西娅',
|
||||
key_kyousuke:'枣恭介',
|
||||
key_yuri:'仲村由理',
|
||||
|
@ -10076,6 +10202,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_shiorimiyuki:'关根诗织&入江美雪',
|
||||
key_shiorimiyuki_ab:'关根入江',
|
||||
key_miki:'野村美希',
|
||||
key_shiori:'美坂栞',
|
||||
key_kaori:'美坂香里',
|
||||
lucia_duqu:'毒躯',
|
||||
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
|
||||
lucia_zhenren:'振刃',
|
||||
|
@ -10303,6 +10431,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
miki_hydrogladiator_skill:'海德洛格拉迪尔特·改',
|
||||
miki_binoculars:'望远镜',
|
||||
miki_binoculars_info:'锁定技,其他角色的手牌对你可见。',
|
||||
shiori_huijuan:'绘卷',
|
||||
shiori_huijuan_discard:'绘卷',
|
||||
shiori_huijuan_info:'锁定技,其他角色的结束阶段开始时,你可以视为使用一张该角色本回合出牌阶段内使用过的基本牌或普通锦囊牌。准备阶段开始时,若你自上个回合起以此法使用的牌数不小于X,则你选择一项:①弃置装备区或判定区内的一张牌。②跳过本回合的出牌阶段。(X为场上玩家数的一半且至少为2)',
|
||||
kaori_siyuan:'思愿',
|
||||
kaori_siyuan_info:'出牌阶段,你可以将一张装备牌或延时锦囊牌置于一名其他角色的装备区内,然后可以视为使用一张基本牌或普通锦囊牌。',
|
||||
|
||||
key_kud:'库特莉亚芙卡',
|
||||
kud_qiaoshou:'巧手',
|
||||
|
|
|
@ -1398,17 +1398,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
targetInRange:function(card){
|
||||
if(get.suit(card)=='heart') return true;
|
||||
},
|
||||
cardUsable:function(card){
|
||||
if(card.name=='sha'&&get.suit(card)=='heart') return Infinity;
|
||||
}
|
||||
},
|
||||
audio:2,
|
||||
trigger:{player:['useCard1','respond']},
|
||||
firstDo:true,
|
||||
trigger:{player:'useCard'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.card.name=='sha'&&!event.skill&&
|
||||
event.cards.length==1&&get.suit(event.cards[0])=='heart';
|
||||
return event.card.name=='sha'&&get.suit(event.card)=='heart';
|
||||
},
|
||||
content:function(){
|
||||
trigger.directHit.addArray(game.players);
|
||||
},
|
||||
content:function(){},
|
||||
ai:{
|
||||
effect:{
|
||||
target:function(card,player,target,current){
|
||||
|
@ -3310,7 +3313,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
longhun_info:'你可以将同花色的X张牌按下列规则使用或打出:红桃当【桃】,方块当具火焰伤害的【杀】,梅花当【闪】,黑桃当【无懈可击】(X为你当前的体力值且至少为1)',
|
||||
juejing_info:'锁定技,摸牌阶段,你摸牌的数量改为你已损失的体力值+2;你的手牌上限+2。',
|
||||
wushen:'武神',
|
||||
wushen_info:'锁定技,你的红桃手牌和判定牌均视为【杀】;锁定技,你使用红桃【杀】无距离限制。',
|
||||
wushen_info:'锁定技,你的红桃手牌均视为【杀】;锁定技,你使用红桃【杀】无距离和次数限制且不可被响应。',
|
||||
wuhun:'武魂',
|
||||
wuhun21:'武魂',
|
||||
wuhun22:'武魂',
|
||||
|
|
|
@ -908,7 +908,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.gain(player.storage.zhengjing2,'gain2','log','fromStorage');
|
||||
delete player.storage.zhengjing2;
|
||||
player.removeSkill('zhengjing2');
|
||||
player.addTempSkill('zhengjing3');
|
||||
//player.addTempSkill('zhengjing3');
|
||||
player.skip('phaseJudge');
|
||||
player.skip('phaseDraw');
|
||||
},
|
||||
|
@ -1942,7 +1942,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
zhongzuo:{
|
||||
audio:2,
|
||||
trigger:{global:'phaseEnd'},
|
||||
trigger:{global:'phaseJieshuBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player.getHistory('damage').length>0||player.getHistory('sourceDamage').length>0;
|
||||
|
@ -5483,7 +5483,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhiyi:'执义',
|
||||
zhiyi_info:'锁定技,当你于一回合内使用或打出第一张基本牌时,你选择一项:1.摸一张牌。2.于此牌A(若此牌是因响应牌B而使用或打出的,则改为牌B)的使用或打出流程结算完成后,视为使用一张与此牌名称和属性相同的卡牌。',
|
||||
zhongzuo:'忠佐',
|
||||
zhongzuo_info:'一名角色的回合结束时,若你于此回合内造成或受到过伤害,则你可以令一名角色摸两张牌。若该角色已受伤,则你摸一张牌。',
|
||||
zhongzuo_info:'一名角色的结束阶段开始时,若你于此回合内造成或受到过伤害,则你可以令一名角色摸两张牌。若该角色已受伤,则你摸一张牌。',
|
||||
wanlan:'挽澜',
|
||||
wanlan_info:'限定技,当一名角色进入濒死状态时,你可以弃置所有手牌并令其回复体力至1点,然后对当前回合角色造成1点伤害。',
|
||||
re_jikang:"手杀嵇康",
|
||||
|
@ -5624,7 +5624,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
shuaiyan_info:'弃牌阶段开始时,若你的手牌数大于1,则你可以展示所有手牌,然后你令一名其他角色交给你一张牌。',
|
||||
zhengxuan:'郑玄',
|
||||
zhengjing:'整经',
|
||||
zhengjing_info:'出牌阶段,你可以整理卡牌。然后,你将整理出的卡牌置于一名角色的武将牌上。该角色的准备阶段获得这些牌,跳过此回合的判定和摸牌阶段且本回合内不能发动【整经】。',
|
||||
zhengjing_info:'出牌阶段,你可以整理卡牌。然后,你将整理出的卡牌置于一名角色的武将牌上。该角色的准备阶段获得这些牌,w且 跳过此回合的判定和摸牌阶段。',
|
||||
zhengjing2:'整经',
|
||||
|
||||
mobile_yijiang:'武将设计征集大赛',
|
||||
|
|
138
character/old.js
138
character/old.js
|
@ -6,12 +6,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
old:{
|
||||
old_shenhua:["yuji","zhangjiao","old_zhugezhan","old_guanqiujian","xiahouyuan","weiyan","xiaoqiao","pangde"],
|
||||
old_refresh:["old_zhangfei","old_huatuo","old_zhaoyun","ol_huaxiong"],
|
||||
old_yijiang1:["masu","xushu","fazheng","yujin","xin_yujin","old_xusheng","old_lingtong","ol_yujin"],
|
||||
old_yijiang2:["old_madai","old_zhonghui","old_wangyi","old_guanzhang"],
|
||||
old_yijiang1:["masu","xushu","yujin","xin_yujin","old_xusheng","old_lingtong"],
|
||||
old_yijiang2:["old_zhonghui"],
|
||||
old_yijiang3:["liru","old_zhuran","ol_manchong","old_fuhuanghou","old_caochong"],
|
||||
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan"],
|
||||
old_yijiang5:["old_caoxiu","old_quancong","old_zhuzhi"],
|
||||
old_yijiang67:["ol_xinxianying","ol_zhangrang","ol_liuyu"],
|
||||
old_yijiang67:["ol_zhangrang","ol_liuyu"],
|
||||
old_sp:["old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai","old_huangfusong","ol_maliang","old_wangyun"],
|
||||
old_mobile:["old_caochun","old_majun","old_jiakui"],
|
||||
},
|
||||
|
@ -39,7 +39,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
old_caochun:['male','wei',4,['shanjia']],
|
||||
masu:['male','shu',3,['xinzhan','huilei']],
|
||||
xushu:['male','shu',3,['wuyan','jujian']],
|
||||
fazheng:['male','shu',3,['enyuan','xuanhuo']],
|
||||
liru:['male','qun',3,['juece','mieji','fencheng']],
|
||||
yujin:['male','wei',4,['yizhong']],
|
||||
xin_yujin:['male','wei',4,['jieyue']],
|
||||
|
@ -49,9 +48,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
old_xusheng:['male','wu',4,['pojun']],
|
||||
old_zhuran:['male','wu',4,['olddanshou']],
|
||||
old_lingtong:['male','wu',4,['oldxuanfeng']],
|
||||
old_madai:['male','shu',4,['mashu','oldqianxi']],
|
||||
old_caoxiu:['male','wei',4,['taoxi']],
|
||||
old_wangyi:['female','wei',3,['oldzhenlie','oldmiji']],
|
||||
old_caozhen:['male','wei',4,['sidi']],
|
||||
old_quancong:['male','wu',4,['zhenshan']],
|
||||
old_lingju:['female','qun',3,['jieyuan','fenxin_old']],
|
||||
|
@ -63,10 +60,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
old_machao:['male','qun',4,['zhuiji','oldcihuai']],
|
||||
old_zhugezhan:["male","shu",3,["old_zuilun","old_fuyin"]],
|
||||
zhangliang:["male","qun",4,["old_jijun","old_fangtong"]],
|
||||
old_guanzhang:['male','shu',4,['old_fuhun']],
|
||||
ol_xinxianying:['female','wei',3,['caishi','zhongjian']],
|
||||
ol_zhangrang:['male','qun',3,['xintaoluan']],
|
||||
ol_yujin:['male','wei',4,['rezhenjun']],
|
||||
ol_guansuo:['male','shu',4,['zhengnan','xiefang']],
|
||||
ol_manchong:['male','wei',3,['yuce','junxing']],
|
||||
ol_liuyu:['male','qun',2,['zongzuo','zhige']],
|
||||
|
@ -82,27 +76,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audio:'shenxian',
|
||||
inherit:'shenxian',
|
||||
},
|
||||
old_fuhun:{
|
||||
audio:'fuhun',
|
||||
trigger:{player:'phaseDrawBegin1'},
|
||||
filter:function(event,player){
|
||||
return !event.numFixed;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
trigger.changeToZero();
|
||||
'step 1'
|
||||
var cards=get.cards(2);
|
||||
event.cards=cards;
|
||||
player.showCards(cards);
|
||||
'step 2'
|
||||
player.gain(cards,'gain2');
|
||||
if(get.color(cards[0])!=get.color(cards[1])){
|
||||
player.addTempSkill('wusheng');
|
||||
player.addTempSkill('paoxiao');
|
||||
}
|
||||
},
|
||||
},
|
||||
"old_guhuo":{
|
||||
group:["old_guhuo_guess","old_guhuo_respond","old_guhuo_wuxie"],
|
||||
enable:"chooseToUse",
|
||||
|
@ -686,98 +659,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
},
|
||||
oldzhenlie:{
|
||||
audio:'zhenlie',
|
||||
trigger:{player:'judge'},
|
||||
check:function(event,player){
|
||||
return event.judge(player.judging[0])<0;
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
var card=get.cards()[0];
|
||||
event.card=card;
|
||||
game.cardsGotoOrdering(card).relatedEvent=trigger;
|
||||
"step 1"
|
||||
player.$throw(card);
|
||||
card.clone.classList.add('thrownhighlight');
|
||||
if(trigger.player.judging[0].clone){
|
||||
trigger.player.judging[0].clone.classList.remove('thrownhighlight');
|
||||
game.addVideo('deletenode',player,get.cardsInfo([trigger.player.judging[0].clone]));
|
||||
}
|
||||
game.cardsDiscard(trigger.player.judging[0]);
|
||||
trigger.player.judging[0]=card;
|
||||
game.log(trigger.player,'的判定牌改为',card);
|
||||
game.delay(2);
|
||||
},
|
||||
},
|
||||
oldmiji:{
|
||||
trigger:{player:['phaseZhunbeiBegin','phaseJieshuBegin']},
|
||||
filter:function(event,player){
|
||||
return player.isDamaged();
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.judge(function(card){
|
||||
return get.color(card)=='black'?1:-1;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool&&player.maxHp>player.hp){
|
||||
var cards=get.cards(player.maxHp-player.hp);
|
||||
event.cards=cards;
|
||||
var dialog=ui.create.dialog('选择获得卡牌的目标',cards,'hidden');
|
||||
dialog.classList.add('noselect');
|
||||
player.chooseTarget(true,dialog).ai=function(target){
|
||||
return get.attitude(player,target)/Math.sqrt(1+target.countCards('h'));
|
||||
}
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
player.line(result.targets);
|
||||
result.targets[0].gain(event.cards,'draw');
|
||||
},
|
||||
ai:{
|
||||
effect:{
|
||||
target:function(card,player,target){
|
||||
if(get.tag(card,'recover')&&target.hp==target.maxHp-1) return [0,0];
|
||||
if(target.hasFriend()){
|
||||
if((get.tag(card,'damage')==1||get.tag(card,'loseHp'))&&target.hp==target.maxHp) return [0,1];
|
||||
}
|
||||
}
|
||||
},
|
||||
threaten:function(player,target){
|
||||
if(target.hp==1) return 3;
|
||||
if(target.hp==2) return 2;
|
||||
return 1;
|
||||
},
|
||||
}
|
||||
},
|
||||
oldqianxi:{
|
||||
trigger:{source:'damageBegin2'},
|
||||
check:function(event,player){
|
||||
var att=get.attitude(player,event.player);
|
||||
if(event.player.hp==event.player.maxHp) return att<0;
|
||||
if(event.player.hp==event.player.maxHp-1&&
|
||||
(event.player.maxHp<=3||event.player.hasSkillTag('maixie'))) return att<0;
|
||||
return att>0;
|
||||
},
|
||||
filter:function(event,player){
|
||||
return event.card&&event.card.name=='sha'&&get.distance(player,event.player)<=1;
|
||||
},
|
||||
logTarget:'player',
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.judge(function(card){
|
||||
return get.suit(card)!='heart'?1:-1;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
trigger.cancel();
|
||||
trigger.player.loseMaxHp(true);
|
||||
}
|
||||
}
|
||||
},
|
||||
oldxuanfeng:{
|
||||
audio:'xuanfeng',
|
||||
trigger:{player:'loseAfter'},
|
||||
|
@ -851,9 +732,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
old_xusheng:'旧徐盛',
|
||||
old_lingtong:'旧凌统',
|
||||
old_zhuran:'旧朱然',
|
||||
old_madai:'旧马岱',
|
||||
old_caoxiu:'旧曹休',
|
||||
old_wangyi:'旧王异',
|
||||
old_caozhen:'旧曹真',
|
||||
old_quancong:'旧全琮',
|
||||
old_lingju:'旧灵雎',
|
||||
|
@ -865,13 +744,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
old_zhugezhan:"旧诸葛瞻",
|
||||
zhangliang:'SP张梁',
|
||||
yuji:'旧于吉',
|
||||
old_guanzhang:'旧关兴张苞',
|
||||
old_zhangfei:'OL张飞',
|
||||
old_huatuo:'OL华佗',
|
||||
jsp_caoren:'☆SP曹仁',
|
||||
ol_xinxianying:'OL辛宪英',
|
||||
ol_zhangrang:'旧张让',
|
||||
ol_yujin:'镇军于禁',
|
||||
ol_liaohua:'OL廖化',
|
||||
ol_zhuran:'OL朱然',
|
||||
ol_guansuo:'OL关索',
|
||||
|
@ -887,8 +763,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
old_zhaoyun:'旧赵云',
|
||||
ol_huaxiong:'旧华雄',
|
||||
|
||||
old_fuhun:'父魂',
|
||||
old_fuhun_info:'摸牌阶段开始时,你可以放弃摸牌,改为从牌堆顶亮出两张牌并获得之,若亮出的牌颜色不同,你获得技能“武圣”、“咆哮”,直到回合结束。',
|
||||
"old_guhuo":"蛊惑",
|
||||
"old_guhuo_info":"你可以说出任何一种基本牌或普通锦囊牌,并正面朝下使用或打出一张手牌。体力值不为0的其他角色依次选择是否质疑。若无角色质疑,则该牌按你所述之牌结算。若有角色质疑则亮出验明:若为真,质疑者各失去1点体力;若为假,质疑者各摸一张牌。无论真假,弃置被质疑的牌。仅当被质疑的牌为红桃花色且为真时,该牌仍然可以进行结算。",
|
||||
"old_guhuo_guess":"蛊惑",
|
||||
|
@ -910,12 +784,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhenshan_use_backup:'振赡',
|
||||
zhenshan_info:'每名角色的回合限一次,每当你需要使用或打出一张基本牌时,你可以与一名手牌数少于你的角色交换手牌。若如此做,视为你使用或打出了此牌',
|
||||
zhenshan_use_info:'每名角色的回合限一次,每当你需要使用或打出一张基本牌时,你可以与一名手牌数少于你的角色交换手牌。若如此做,视为你使用或打出了此牌',
|
||||
oldzhenlie:'贞烈',
|
||||
oldzhenlie_info:'在你的判定牌生效前,你可以亮出牌堆顶的一张牌代替之',
|
||||
oldmiji:'秘计',
|
||||
oldmiji_info:'准备/结束阶段开始时,若你已受伤,你可以判定,若判定结果为黑色,你观看牌堆顶的X张牌(X为你已损失的体力值),然后将这些牌交给一名角色',
|
||||
oldqianxi:'潜袭',
|
||||
oldqianxi_info:'当你使用【杀】对距离为1的目标角色造成伤害时,你可以进行一次判定,若判定结果不为红桃,你防止此伤害,令其减1点体力上限',
|
||||
oldxuanfeng:'旋风',
|
||||
oldxuanfeng_info:'每当你失去一次装备区里的牌时,你可以执行下列两项中的一项:1.视为对任意一名其他角色使用一张【杀】(此【杀】不计入每回合的使用限制);2.对与你距离1以内的一名其他角色造成一点伤害',
|
||||
|
||||
|
|
|
@ -9,11 +9,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
refresh_huo:["ol_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","ol_pangtong","ol_yuanshao","ol_pangde","re_taishici"],
|
||||
refresh_lin:['re_zhurong','re_menghuo','re_dongzhuo','ol_sunjian','re_caopi','re_xuhuang'],
|
||||
refresh_shan:['re_dengai','re_jiangwei','re_caiwenji','ol_liushan','re_zhangzhang','re_zuoci','re_sunce'],
|
||||
refresh_yijiang:['re_wuguotai','re_gaoshun','re_zhangyi','re_caozhi','re_zhuran','re_wuyi','re_liaohua','re_guohuai','re_zhuran','re_chengpu','re_caozhang','re_quancong','yujin_yujin','re_lingtong','re_handang','re_zhonghui','re_sunluban','re_masu','re_jianyong','xin_xusheng'],
|
||||
refresh_yijiang1:['re_wuguotai','re_gaoshun','re_caozhi','yujin_yujin','re_lingtong','re_masu','xin_xusheng','xin_fazheng'],
|
||||
refresh_yijiang2:['old_madai','wangyi','guanzhang','re_handang','re_zhonghui','re_liaohua','re_chengpu','re_caozhang'],
|
||||
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran'],
|
||||
refresh_yijiang4:['re_sunluban','re_wuyi'],
|
||||
refresh_yijiang5:['re_zhangyi','re_quancong'],
|
||||
},
|
||||
},
|
||||
connect:true,
|
||||
character:{
|
||||
xin_fazheng:['male','shu',3,['xinenyuan','xinxuanhuo'],['die_audio']],
|
||||
wangyi:['female','wei',3,['zhenlie','miji']],
|
||||
old_madai:['male','shu',4,['mashu','qianxi']],
|
||||
guanzhang:['male','shu',4,['fuhun']],
|
||||
xin_xusheng:['male','wu',4,['decadepojun']],
|
||||
re_taishici:['male','wu',4,['tianyi','hanzhan']],
|
||||
re_masu:['male','shu',3,['resanyao','rezhiman']],
|
||||
|
@ -6481,8 +6489,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('refangzhu',result.targets);
|
||||
event.target=result.targets[0]
|
||||
event.target.chooseToDiscard('he',player.getDamagedHp()).set('ai',function(card){
|
||||
event.target=result.targets[0];
|
||||
if(player.isHealthy()) event._result={bool:false};
|
||||
else event.target.chooseToDiscard('he',player.getDamagedHp()).set('ai',function(card){
|
||||
var player=_status.event.player;
|
||||
if(player.isTurnedOver()||_status.event.getTrigger().player.getDamagedHp()>2) return -1;
|
||||
return (player.hp*player.hp)-get.value(card);
|
||||
|
@ -6494,7 +6503,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
event.target.loseHp();
|
||||
}
|
||||
else{
|
||||
event.target.draw(player.getDamagedHp());
|
||||
if(player.isDamaged()) event.target.draw(player.getDamagedHp());
|
||||
event.target.turnOver();
|
||||
}
|
||||
},
|
||||
|
@ -7057,14 +7066,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xin_xusheng:'界徐盛',
|
||||
decadepojun:'破军',
|
||||
decadepojun2:'破军',
|
||||
decadepojun_info:'当你使用【杀】指定目标后,你可以将其的至多X张牌置于其武将牌上。若这些牌中:有装备牌,你将这些牌中的一张置于弃牌堆;有锦囊牌,你摸一张牌。其于回合结束时获得其武将牌上的这些牌。',
|
||||
decadepojun_info:'当你使用【杀】指定目标后,你可以将其的至多X张牌置于其武将牌上(X为其体力值)。若这些牌中:有装备牌,你将这些牌中的一张置于弃牌堆;有锦囊牌,你摸一张牌。其于回合结束时获得其武将牌上的这些牌。',
|
||||
old_madai:'界马岱',
|
||||
wangyi:'界王异',
|
||||
guanzhang:'界关兴张苞',
|
||||
xin_fazheng:'界法正',
|
||||
|
||||
refresh_standard:'界限突破·标',
|
||||
refresh_feng:'界限突破·风',
|
||||
refresh_huo:'界限突破·火',
|
||||
refresh_lin:'界限突破·林',
|
||||
refresh_shan:'界限突破·山',
|
||||
refresh_yijiang:'界限突破·将',
|
||||
refresh_yijiang1:'界限突破·将1',
|
||||
refresh_yijiang2:'界限突破·将2',
|
||||
refresh_yijiang3:'界限突破·将3',
|
||||
refresh_yijiang4:'界限突破·将4',
|
||||
refresh_yijiang5:'界限突破·将5',
|
||||
},
|
||||
};
|
||||
});
|
||||
|
|
|
@ -633,6 +633,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player:'linkBegin'
|
||||
},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return !player.isLinked();
|
||||
},
|
||||
content:function(){
|
||||
trigger.cancel();
|
||||
},
|
||||
|
@ -1588,7 +1591,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
filter:function (event,player){
|
||||
return (player.getHistory('useCard',function(evt){
|
||||
return evt.getParent('phaseUse')==event;
|
||||
}).length<game.countPlayer(function(current){return !current.inRange(player)}))&&game.hasPlayer(function(target){
|
||||
}).length<game.countPlayer(function(current){return current!=player&&!current.inRange(player)}))&&game.hasPlayer(function(target){
|
||||
return target!=player&&!target.inRange(player)&&target.countDiscardableCards(player,'he');
|
||||
});
|
||||
},
|
||||
|
@ -1914,16 +1917,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
usable:1,
|
||||
delay:false,
|
||||
filter:function(event,player){
|
||||
var storage=player.getStorage('nzry_mingren');
|
||||
if(get.itemtype(storage)!='cards') return false;
|
||||
var num=player.countCards('he',{color:get.color(player.storage.nzry_mingren[0])});
|
||||
return game.hasPlayer(function(current){
|
||||
return current!=player&&
|
||||
player.inRange(current)&&
|
||||
player.storage.nzry_mingren!=undefined&&
|
||||
player.countCards('he',{color:get.color(player.storage.nzry_mingren[0])})>=Math.max(Math.abs(current.hp-player.hp),1);
|
||||
num>=Math.max(Math.abs(current.hp-player.hp),1);
|
||||
})&&player.storage.nzry_zhenliang!=true;
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return player.storage.nzry_mingren!=undefined&&
|
||||
target!=player&&
|
||||
return target!=player&&
|
||||
player.inRange(target)&&
|
||||
player.countCards('he',{color:get.color(player.storage.nzry_mingren[0])})>=Math.max(Math.abs(target.hp-player.hp),1);
|
||||
},
|
||||
|
|
|
@ -9136,8 +9136,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audio:'biluan',
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
checkx:function(player){
|
||||
var ng=game.countGroup();
|
||||
if(ng<2) return false;
|
||||
var ng=Math.min(4,game.countPlayer());
|
||||
var nai=0;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]!=player){
|
||||
|
@ -9164,7 +9163,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 1"
|
||||
if(result.bool){
|
||||
player.addSkill('rebiluan2');
|
||||
var ng=game.countGroup();
|
||||
var ng=Math.min(4,game.countPlayer());
|
||||
player.$damagepop(ng,'unknownx');
|
||||
player.storage.rebiluan2+=ng;
|
||||
player.markSkill('rebiluan2');
|
||||
|
@ -14689,7 +14688,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
lixia_info:'锁定技,其他角色的结束阶段开始时,若你不在其攻击范围内,你摸一张牌或令其摸一张牌。本局内其他角色计算与你的距离时-1。',
|
||||
rebiluan:'避乱',
|
||||
rebiluan2:'避乱',
|
||||
rebiluan_info:'结束阶段开始时,若有与你距离不大于1的其他角色,你可以弃置一张牌。若如此做,本局内其他角色计算与你的距离时+X。(X为场上势力数)',
|
||||
rebiluan_info:'结束阶段开始时,若有与你距离不大于1的其他角色,你可以弃置一张牌。若如此做,本局内其他角色计算与你的距离时+X。(X为场上角色数且至多为4)',
|
||||
relixia:'礼下',
|
||||
relixia_info:'锁定技,其他角色的结束阶段开始时,若你不在其攻击范围内,你选择一至两项:1.摸一张牌;2.其摸两张牌;3.其回复1点体力。本局内其他角色计算与你的距离时-X(X为你选择的选项数)。',
|
||||
yishe:'义舍',
|
||||
|
|
468
character/sp2.js
468
character/sp2.js
|
@ -4,8 +4,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
name:'sp2',
|
||||
connect:true,
|
||||
character:{
|
||||
re_maliang:['male','shu',3,['rexiemu','heli'],['unseen']],
|
||||
ol_yujin:['male','wei',4,['rezhenjun']],
|
||||
ol_xinxianying:['female','wei',3,['caishi','zhongjian']],
|
||||
caobuxing:['male','wu',3,['moying','juanhui'],['unseen']],
|
||||
//sp_zhangliao:['male','qun',4,['mubing','diaoling']],
|
||||
sp_key_yuri:['female','qun',4,['mubing','diaoling'],['unseen']],
|
||||
re_sunluyu:['female','wu',3,['remeibu','remumu']],
|
||||
liuzan:['male','wu',4,['refenyin','liji']],
|
||||
wenyang:['male','wei',5,['xinlvli','choujue']],
|
||||
|
@ -57,11 +60,431 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sp_shengun:["puyuan","guanlu","gexuan","xushao"],
|
||||
sp_baigei:['re_panfeng','xingdaorong'],
|
||||
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"],
|
||||
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','liuzan','re_sunluyu'],
|
||||
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','liuzan','re_sunluyu','caobuxing','ol_xinxianying','ol_yujin','re_maliang'],
|
||||
}
|
||||
},
|
||||
skill:{
|
||||
rexiemu:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return !game.hasPlayer(function(current){
|
||||
return current.hasMark('rexiemu');
|
||||
});
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt2('rexiemu'),lib.filter.notMe).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
return get.attitude(player,target)*Math.sqrt(Math.max(1+player.countCards('h'),1+target.countCards('h')));
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.logSkill('rexiemu',target);
|
||||
target.addMark('rexiemu',1);
|
||||
player.addSkill('rexiemu2');
|
||||
}
|
||||
},
|
||||
intro:{content:'mark'},
|
||||
ai:{
|
||||
expose:0.1,
|
||||
},
|
||||
},
|
||||
rexiemu2:{
|
||||
audio:'rexiemu',
|
||||
trigger:{global:['loseAfter']},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return (event.player==player||event.player.hasMark('rexiemu'))&&['useCard','respond'].contains(event.getParent().name)&&event.hs&&event.hs.length&&
|
||||
event.player!=_status.currentPhase&&game.hasPlayer(function(current){
|
||||
return current.hasMark('rexiemu');
|
||||
});
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
game.asyncDraw(game.filterPlayer(function(current){
|
||||
return current==player||current==trigger.player||current.hasMark('rexiemu');
|
||||
}));
|
||||
'step 1'
|
||||
game.delayx();
|
||||
},
|
||||
group:'rexiemu3',
|
||||
},
|
||||
rexiemu3:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
silent:true,
|
||||
firstDo:true,
|
||||
content:function(){
|
||||
player.removeSkill('rexiemu2');
|
||||
game.countPlayer(function(current){
|
||||
var num=current.countMark('rexiemu');
|
||||
if(num) current.removeMark('rexiemu',num);
|
||||
});
|
||||
},
|
||||
},
|
||||
heli:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return game.hasPlayer(function(current){
|
||||
return lib.skill.heli.filterTarget(null,player,current);
|
||||
});
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return target.countCards('h')<player.countCards('h')
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(target.countCards('h')) target.showHandcards();
|
||||
'step 1'
|
||||
var list=[];
|
||||
var cards=[];
|
||||
for(var i of lib.inpile) list.add(get.type2(i));
|
||||
for(var i of list){
|
||||
if(!target.countCards('h',{type:i})){
|
||||
var card=get.cardPile2(function(card){
|
||||
return get.type(card,false)==i;
|
||||
});
|
||||
if(card) cards.push(card);
|
||||
}
|
||||
}
|
||||
if(cards.length) target.gain(cards,'gain2','log');
|
||||
else event.finish();
|
||||
'step 2'
|
||||
game.updateRoundNumber();
|
||||
},
|
||||
ai:{
|
||||
order:10,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
return 1/Math.sqrt(1+target.countCards('h'))
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
moying:{
|
||||
audio:2,
|
||||
trigger:{player:'loseAfter'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player!=_status.currentPhase&&event.getParent().name!='useCard'&&event.cards2&&event.cards2.length==1&&!player.hasSkill('moying2')&&['equip','trick'].contains(get.type2(event.cards2[0],event.hs.contains(event.cards2[0])?player:false));
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
var number=trigger.cards2[0].number;
|
||||
var numbers=[number-2,number-1,number,number+1,number+2].filter(function(number){
|
||||
return number>=1&&number<=13;
|
||||
});
|
||||
if(player.isUnderControl()){
|
||||
game.modeSwapPlayer(player);
|
||||
}
|
||||
var switchToAuto=function(){
|
||||
_status.imchoosing=false;
|
||||
event._result={
|
||||
bool:true,
|
||||
suit:lib.suit.randomGet(),
|
||||
number:numbers.randomGet(),
|
||||
};
|
||||
if(event.dialog) event.dialog.close();
|
||||
if(event.control) event.control.close();
|
||||
};
|
||||
var chooseButton=function(player,numbers){
|
||||
var event=_status.event;
|
||||
player=player||event.player;
|
||||
var dialog=ui.create.dialog('是否发动【墨影】?','forcebutton','hidden');
|
||||
event.dialog=dialog;
|
||||
dialog.addText('花色');
|
||||
var table=document.createElement('div');
|
||||
table.classList.add('add-setting');
|
||||
table.style.margin='0';
|
||||
table.style.width='100%';
|
||||
table.style.position='relative';
|
||||
var listi=['spade','heart','club','diamond'];
|
||||
for(var i=0;i<listi.length;i++){
|
||||
var td=ui.create.div('.shadowed.reduce_radius.pointerdiv.tdnode');
|
||||
td.link=listi[i];
|
||||
table.appendChild(td);
|
||||
td.innerHTML='<span>'+get.translation(listi[i])+'</span>';
|
||||
td.addEventListener(lib.config.touchscreen?'touchend':'click',function(){
|
||||
if(_status.dragged) return;
|
||||
if(_status.justdragged) return;
|
||||
_status.tempNoButton=true;
|
||||
setTimeout(function(){
|
||||
_status.tempNoButton=false;
|
||||
},500);
|
||||
var link=this.link;
|
||||
var current=this.parentNode.querySelector('.bluebg');
|
||||
if(current){
|
||||
current.classList.remove('bluebg');
|
||||
}
|
||||
this.classList.add('bluebg');
|
||||
event._result.suit=link;
|
||||
});
|
||||
}
|
||||
dialog.content.appendChild(table);
|
||||
dialog.addText('点数');
|
||||
var table2=document.createElement('div');
|
||||
table2.classList.add('add-setting');
|
||||
table2.style.margin='0';
|
||||
table2.style.width='100%';
|
||||
table2.style.position='relative';
|
||||
for(var i=0;i<numbers.length;i++){
|
||||
var td=ui.create.div('.shadowed.reduce_radius.pointerdiv.tdnode');
|
||||
td.link=numbers[i];
|
||||
table2.appendChild(td);
|
||||
var num=numbers[i];
|
||||
switch(num){
|
||||
case 1:num='A';break;
|
||||
case 11:num='J';break;
|
||||
case 12:num='Q';break;
|
||||
case 13:num='K';break;
|
||||
}
|
||||
td.innerHTML='<span>'+num+'</span>';
|
||||
td.addEventListener(lib.config.touchscreen?'touchend':'click',function(){
|
||||
if(_status.dragged) return;
|
||||
if(_status.justdragged) return;
|
||||
_status.tempNoButton=true;
|
||||
setTimeout(function(){
|
||||
_status.tempNoButton=false;
|
||||
},500);
|
||||
var link=this.link;
|
||||
var current=this.parentNode.querySelector('.bluebg');
|
||||
if(current){
|
||||
current.classList.remove('bluebg');
|
||||
}
|
||||
this.classList.add('bluebg');
|
||||
event._result.number=link;
|
||||
});
|
||||
}
|
||||
dialog.content.appendChild(table2);
|
||||
dialog.add(' ');
|
||||
event.dialog.open();
|
||||
|
||||
event.switchToAuto=function(){
|
||||
event._result={
|
||||
bool:true,
|
||||
number:numbers.randomGet(),
|
||||
suit:lib.suit.randomGet(),
|
||||
};
|
||||
event.dialog.close();
|
||||
event.control.close();
|
||||
game.resume();
|
||||
_status.imchoosing=false;
|
||||
};
|
||||
event.control=ui.create.control('ok','cancel2',function(link){
|
||||
var result=event._result;
|
||||
if(link=='cancel2') result.bool=false;
|
||||
else{
|
||||
if(!result.number||!result.suit) return;
|
||||
result.bool=true;
|
||||
}
|
||||
event.dialog.close();
|
||||
event.control.close();
|
||||
game.resume();
|
||||
_status.imchoosing=false;
|
||||
});
|
||||
for(var i=0;i<event.dialog.buttons.length;i++){
|
||||
event.dialog.buttons[i].classList.add('selectable');
|
||||
}
|
||||
game.pause();
|
||||
game.countChoose();
|
||||
};
|
||||
if(event.isMine()){
|
||||
chooseButton(player,numbers);
|
||||
}
|
||||
else if(event.isOnline()){
|
||||
event.player.send(chooseButton,event.player,numbers);
|
||||
event.player.wait();
|
||||
game.pause();
|
||||
}
|
||||
else{
|
||||
switchToAuto();
|
||||
}
|
||||
"step 1"
|
||||
var map=event.result||result;
|
||||
if(result.bool){
|
||||
player.logSkill('moying');
|
||||
player.addTempSkill('moying2');
|
||||
var cards=[];
|
||||
for(var i=0;i<ui.cardPile.childNodes.length;i++){
|
||||
var card=ui.cardPile.childNodes[i];
|
||||
if(get.suit(card)==result.suit&&get.number(card)==result.number) cards.push(card);
|
||||
}
|
||||
if(cards.length) player.gain(cards,'gain2','log');
|
||||
}
|
||||
else event.finish();
|
||||
"step 2"
|
||||
game.updateRoundNumber();
|
||||
},
|
||||
},
|
||||
moying2:{},
|
||||
juanhui:{
|
||||
audio:2,
|
||||
charlotte:true,
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt2('juanhui'),lib.filter.notMe).set('ai',function(target){
|
||||
if(target.isTurnedOver()||target.hasJudge('lebu')) return Math.random();
|
||||
return (1+target.countCards('h'))*2+Math.random();
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.logSkill('juanhui',target);
|
||||
player.storage.juanhui2=target;
|
||||
player.storage.juanhui3=[];
|
||||
player.addSkill('juanhui2');
|
||||
}
|
||||
},
|
||||
},
|
||||
juanhui2:{
|
||||
mark:true,
|
||||
intro:{
|
||||
markcount:function(storage,player){
|
||||
return player.getStorage('juanhui3').length;
|
||||
},
|
||||
mark:function(dialog,storage,player){
|
||||
dialog.addText('记录目标');
|
||||
dialog.addSmall([storage]);
|
||||
var vcard=player.getStorage('juanhui3');
|
||||
if(vcard.length){
|
||||
dialog.addText('记录卡牌');
|
||||
dialog.addAuto([vcard,'vcard']);
|
||||
}
|
||||
},
|
||||
content:function(storage,player){
|
||||
var str='记录目标:'+get.translation(storage);
|
||||
var vcard=player.getStorage('juanhui3');
|
||||
if(vcard.length){
|
||||
str+='<br>记录卡牌:';
|
||||
for(var i of vcard){
|
||||
if(i[2]=='sha'&&i[3]) str+=get.translation(i[3]);
|
||||
str+=get.translation(i[2]);
|
||||
str+='、'
|
||||
}
|
||||
str=str.slice(0,str.length-1);
|
||||
}
|
||||
return str;
|
||||
},
|
||||
},
|
||||
onremove:function(player){
|
||||
delete player.storage.juanhui2;
|
||||
delete player.storage.juanhui3;
|
||||
},
|
||||
group:'juanhui3',
|
||||
enable:'phaseUse',
|
||||
filter:function(event,player){
|
||||
return player.getStorage('juanhui3').length>0;
|
||||
},
|
||||
chooseButton:{
|
||||
dialog:function(event,player){
|
||||
return ui.create.dialog('绢绘',[player.getStorage('juanhui3'),'vcard'],'hidden')
|
||||
},
|
||||
filter:function(button,player){
|
||||
return lib.filter.cardEnabled({
|
||||
name:button.link[2],
|
||||
nature:button.link[3],
|
||||
},player,_status.event.getParent());
|
||||
},
|
||||
check:function(button){
|
||||
var player=_status.event.player;
|
||||
var card={
|
||||
name:button.link[2],
|
||||
nature:button.link[3],
|
||||
};
|
||||
if(player.getUseValue(card)>0) return get.order(card);
|
||||
return -1;
|
||||
},
|
||||
backup:function(links,player){
|
||||
return {
|
||||
audio:'juanhui',
|
||||
filterCard:true,
|
||||
viewAs:{
|
||||
name:links[0][2],
|
||||
nature:links[0][3],
|
||||
},
|
||||
check:function(card){
|
||||
return 6-get.value(card);
|
||||
},
|
||||
precontent:function(){
|
||||
var card=event.result.card;
|
||||
if(card.name=='sha') event.getParent().addCount=false;
|
||||
var vcard=player.storage.juanhui3;
|
||||
for(var i=0;i<vcard.length;i++){
|
||||
if(vcard[i][2]==card.name) vcard.splice(i--,1);
|
||||
}
|
||||
if(vcard.length) player.markSkill('juanhui2');
|
||||
else{
|
||||
player.unmarkSkill('juanhui2');
|
||||
event.getParent().juanhui=true;
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
prompt:function(links,player){
|
||||
return '将一张手牌当做'+(links[0][2]=='sha'&&links[0][3]?get.translation(links[0][3]):'')+get.translation(links[0][2])+'使用';
|
||||
},
|
||||
},
|
||||
ai:{
|
||||
order:function(item,player){
|
||||
var muniu=player.getStorage('juanhui3');
|
||||
var order=0;
|
||||
for(var i=0;i<muniu.length;i++){
|
||||
var card={name:muniu[i][2],nature:muniu[i][3]};
|
||||
if(player.getUseValue(card)>0){
|
||||
var order2=get.order(card);
|
||||
if(order2>order) order=order2
|
||||
}
|
||||
}
|
||||
return order+0.1;
|
||||
},
|
||||
result:{
|
||||
player:1,
|
||||
},
|
||||
},
|
||||
},
|
||||
juanhui3:{
|
||||
charlotte:true,
|
||||
firstDo:true,
|
||||
trigger:{
|
||||
global:'useCard2',
|
||||
player:['phaseUseEnd','phaseUseSkipped','useCardAfter'],
|
||||
},
|
||||
silent:true,
|
||||
filter:function(event,player,name){
|
||||
if(event.name=='phaseUse') return true;
|
||||
else if(name=='useCardAfter') return event.getParent().juanhui;
|
||||
return event.player==player.storage.juanhui2&&event.player.isPhaseUsing()&&
|
||||
['basic','trick'].contains(get.type(event.card))&&player.getStorage('juanhui3').filter(function(vcard){
|
||||
return vcard[2]==event.card.name;
|
||||
}).length==0;
|
||||
},
|
||||
content:function(){
|
||||
if(trigger.name=='phaseUse') player.removeSkill('juanhui2');
|
||||
else if(event.triggername=='useCardAfter'){
|
||||
player.recover();
|
||||
player.drawTo(3);
|
||||
}
|
||||
else{
|
||||
var vcard=[get.type(trigger.card),'',trigger.card.name];
|
||||
if(trigger.card.nature) vcard.push(trigger.card.nature);
|
||||
player.storage.juanhui3.push(vcard);
|
||||
player.markSkill('juanhui2');
|
||||
}
|
||||
},
|
||||
},
|
||||
mubing:{
|
||||
audio:2,
|
||||
audioname:['sp_key_yuri'],
|
||||
trigger:{player:'phaseUseBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
|
@ -71,7 +494,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 0'
|
||||
var num=player.storage.mubing2?3:2;
|
||||
event.num=num+1;
|
||||
player.chooseToDiscard(true,[1,num],'he',get.prompt('mubing'),'弃置至多'+get.cnNumber(num)+'张牌,然后展示牌堆顶的'+get.cnNumber(num+1)+'张牌').logSkill='mubing';
|
||||
player.chooseToDiscard([1,num],'he',get.prompt('mubing'),'弃置至多'+get.cnNumber(num)+'张牌,然后展示牌堆顶的'+get.cnNumber(num+1)+'张牌').set('ai',function(card){
|
||||
var player=_status.event.player;
|
||||
if(card.name!='tengjia'&&get.position(card)=='e'&&get.equipValue(card,player)<=0) return 14;
|
||||
if(!ui.selected.cards.length){
|
||||
if(card.number<9) return 0;
|
||||
if(card.number>11) return card.number;
|
||||
if(!player.countCards('he',function(xcard){
|
||||
return xcard!=card&&card.number+xcard.number>17;
|
||||
})) return 0;
|
||||
return card.number;
|
||||
}
|
||||
var num=0;
|
||||
for(var i of ui.selected.cards){
|
||||
num+=i.number;
|
||||
}
|
||||
if(num+card.number<18) return 0;
|
||||
return Math.max(5-get.value(card),card.number);
|
||||
}).logSkill='mubing';
|
||||
'step 1'
|
||||
if(!result.bool){
|
||||
event.finish();return;
|
||||
|
@ -136,6 +576,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
diaoling:{
|
||||
audio:2,
|
||||
audioname:['sp_key_yuri'],
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
forced:true,
|
||||
juexingji:true,
|
||||
|
@ -145,7 +587,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var num=0;
|
||||
player.getAllHistory('gain',function(evt){
|
||||
var evt2=evt.getParent();
|
||||
if(evt.name=='mubing'&&evt.player==player) num+=evt.cards.filter(function(card){
|
||||
if(evt2.name=='mubing'&&evt2.player==player) num+=evt.cards.filter(function(card){
|
||||
return card.name=='sha'||get.subtype(card,false)=='equip1'||(get.type2(card,false)=='trick'&&get.tag({name:card.name},'damage'));
|
||||
}).length;
|
||||
});
|
||||
|
@ -4961,13 +5403,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
remumu_info:'出牌阶段开始时,你可以选择一项:1.弃置一名其他角色装备区里的一张牌,然后你本回合可使用【杀】的次数+1;2.获得一名角色装备区里的一张防具牌,然后你本回合可使用【杀】的次数-1。',
|
||||
sp_zhangliao:'SP张辽',
|
||||
//这俩技能给SP仲村由理毫无违和感好吗!!!
|
||||
sp_key_yuri:'SP仲村由理',
|
||||
mubing:'募兵',
|
||||
mubing_info:'出牌阶段开始时,你可以弃置至多两张牌,然后展示牌堆顶的三张牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。',
|
||||
diaoling:'调令',
|
||||
diaoling_info:'觉醒技,准备阶段,若你已经获得了6张或更多的【杀】或武器牌或伤害锦囊牌,则你回复1点体力或摸两张牌,然后修改【募兵】。',
|
||||
diaoling_info:'觉醒技,准备阶段,若你已因〖募兵〗获得了6张或更多的【杀】或武器牌或伤害锦囊牌,则你回复1点体力或摸两张牌,然后修改〖募兵〗。',
|
||||
mubing_rewrite:'募兵·改',
|
||||
mubing_rewrite_info:'出牌阶段开始时,你可以弃置至多三张牌,然后展示牌堆顶的四张牌,并可令一名角色获得任意张点数之和不大于你弃置的牌点数之和的牌。',
|
||||
caobuxing:'曹不兴',
|
||||
moying:'墨影',
|
||||
moying_info:'每回合限一次,当你于回合外不因使用而失去单一一张锦囊牌或装备牌后,你可以选择一个花色和与此牌点数差绝对值不超过2的点数,然后获得牌堆中所有与此牌花色点数相同的牌。',
|
||||
juanhui:'绢绘',
|
||||
juanhui2:'绢绘',
|
||||
juanhui2_backup:'绢绘',
|
||||
juanhui_info:'结束阶段,你可以选择一名其他角色。记录该角色下回合的出牌阶段里使用的基本牌和普通锦囊牌(每种牌名限记一次),你的下回合出牌阶段,可将一张手牌当这些牌里的任意一张牌使用(每张限使用一次,且【杀】不计次数)。当"绢绘"的牌全部用完时,你回复1点体力并将手牌摸至三张。',
|
||||
ol_xinxianying:'OL辛宪英',
|
||||
ol_yujin:'OL于禁',
|
||||
re_maliang:'马良',
|
||||
rexiemu:'协穆',
|
||||
rexiemu_info:'结束阶段,若全场没有“协穆”标记,你可以选择一名角色获得“协穆”标记直到你的下回合开始。你或该角色在各自的回合外使用或打出手牌时,你与其各摸一张牌(每回合限一次)。',
|
||||
heli:'贺励',
|
||||
heli_info:'出牌阶段限一次,你可以选择手牌数比你少的一名其他角色。该角色展示所有手牌,然后每缺少一种类型的牌,便从牌堆中随机获得一张此类型的牌。',
|
||||
|
||||
|
||||
sp_whlw:"文和乱武",
|
||||
sp_zlzy:"逐鹿中原",
|
||||
|
|
|
@ -919,6 +919,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
wusheng:{
|
||||
audio:2,
|
||||
audioname2:{old_guanzhang:'old_fuhun'},
|
||||
audioname:['re_guanyu','guanzhang','jsp_guanyu','guansuo'],
|
||||
enable:['chooseToRespond','chooseToUse'],
|
||||
filterCard:function(card,player){
|
||||
|
@ -982,6 +983,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
paoxiao:{
|
||||
audio:2,
|
||||
firstDo:true,
|
||||
audioname2:{old_guanzhang:'old_fuhun'},
|
||||
audioname:['re_zhangfei','guanzhang','xiahouba'],
|
||||
trigger:{player:'useCard1'},
|
||||
forced:true,
|
||||
|
|
|
@ -6,8 +6,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
//connectBanned:['qinmi'],
|
||||
characterSort:{
|
||||
yijiang:{
|
||||
yijiang_2011:['caozhi','re_yujin','zhangchunhua','xin_fazheng','xin_masu','xin_xushu','xusheng','lingtong','wuguotai','chengong','gaoshun'],
|
||||
yijiang_2012:['wangyi','xunyou','zhonghui','madai','liaohua','guanzhang','bulianshi','handang','chengpu','liubiao','old_huaxiong','caozhang'],
|
||||
yijiang_2011:['caozhi','re_yujin','zhangchunhua','fazheng','xin_masu','xin_xushu','xusheng','lingtong','wuguotai','chengong','gaoshun'],
|
||||
yijiang_2012:['old_wangyi','xunyou','zhonghui','madai','liaohua','old_guanzhang','bulianshi','handang','chengpu','liubiao','old_huaxiong','caozhang'],
|
||||
yijiang_2013:['manchong','guohuai','caochong','guanping','liufeng','jianyong','yufan','panzhangmazhong','zhuran','xin_liru','fuhuanghou'],
|
||||
yijiang_2014:['hanhaoshihuan','chenqun','caozhen','zhangsong','wuyi','zhoucang','zhuhuan','guyong','sunluban','yj_jushou','caifuren'],
|
||||
yijiang_2015:['caoxiu','caorui','zhongyao','xiahoushi','liuchen','zhangyi','zhuzhi','quancong','sunxiu','gongsunyuan','guotufengji'],
|
||||
|
@ -16,6 +16,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
character:{
|
||||
fazheng:['male','shu',3,['enyuan','xuanhuo']],
|
||||
old_guanzhang:['male','shu',4,['old_fuhun']],
|
||||
old_wangyi:['female','wei',3,['oldzhenlie','oldmiji']],
|
||||
caozhang:['male','wei',4,['jiangchi']],
|
||||
guohuai:['male','wei',4,['jingce']],
|
||||
zhangchunhua:['female','wei',3,['jueqing','shangshi']],
|
||||
|
@ -24,13 +27,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xunyou:['male','wei',3,['qice','zhiyu']],
|
||||
xin_xushu:['male','shu',3,['xinwuyan','xinjujian']],
|
||||
xin_masu:['male','shu',3,['olsanyao','rezhiman']],
|
||||
xin_fazheng:['male','shu',3,['xinenyuan','xinxuanhuo'],['die_audio']],
|
||||
zhuran:['male','wu',4,['danshou']],
|
||||
xusheng:['male','wu',4,['xinpojun']],
|
||||
wuguotai:['female','wu',3,['ganlu','buyi']],
|
||||
lingtong:['male','wu',4,['xuanfeng']],
|
||||
liubiao:['male','qun',3,['zishou','zongshi']],
|
||||
wangyi:['female','wei',3,['zhenlie','miji']],
|
||||
yufan:['male','wu',3,['zhiyan','zongxuan']],
|
||||
chengong:['male','qun',3,['mingce','zhichi']],
|
||||
bulianshi:['female','wu',3,['old_anxu','zhuiyi']],
|
||||
|
@ -38,10 +39,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
fuhuanghou:['female','qun',3,['qiuyuan','zhuikong']],
|
||||
zhonghui:['male','wei',4,['quanji','zili']],
|
||||
jianyong:['male','shu',3,['qiaoshui','jyzongshi']],
|
||||
madai:['male','shu',4,['mashu','qianxi']],
|
||||
madai:['male','shu',4,['mashu','oldqianxi']],
|
||||
liufeng:['male','shu',4,['xiansi']],
|
||||
manchong:['male','wei',3,['xinjunxing','yuce']],
|
||||
guanzhang:['male','shu',4,['fuhun']],
|
||||
chenqun:['male','wei',3,['pindi','faen']],
|
||||
sunluban:['female','wu',3,['chanhui','jiaojin']],
|
||||
guyong:['male','wu',3,['shenxing','bingyi']],
|
||||
|
@ -193,6 +193,123 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
fazheng:['liubei'],
|
||||
},
|
||||
skill:{
|
||||
oldzhenlie:{
|
||||
audio:2,
|
||||
trigger:{player:'judge'},
|
||||
check:function(event,player){
|
||||
return event.judge(player.judging[0])<0;
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
var card=get.cards()[0];
|
||||
event.card=card;
|
||||
game.cardsGotoOrdering(card).relatedEvent=trigger;
|
||||
"step 1"
|
||||
player.$throw(card);
|
||||
if(trigger.player.judging[0].clone){
|
||||
trigger.player.judging[0].clone.classList.remove('thrownhighlight');
|
||||
game.broadcast(function(card){
|
||||
if(card.clone){
|
||||
card.clone.classList.remove('thrownhighlight');
|
||||
}
|
||||
},trigger.player.judging[0]);
|
||||
game.addVideo('deletenode',player,get.cardsInfo([trigger.player.judging[0].clone]));
|
||||
}
|
||||
game.cardsDiscard(trigger.player.judging[0]);
|
||||
trigger.player.judging[0]=card;
|
||||
game.log(trigger.player,'的判定牌改为',card);
|
||||
game.delay(2);
|
||||
},
|
||||
},
|
||||
oldmiji:{
|
||||
trigger:{player:['phaseZhunbeiBegin','phaseJieshuBegin']},
|
||||
audio:2,
|
||||
filter:function(event,player){
|
||||
return player.isDamaged();
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.judge(function(card){
|
||||
return get.color(card)=='black'?1:-1;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool&&player.maxHp>player.hp){
|
||||
var cards=get.cards(player.maxHp-player.hp);
|
||||
event.cards=cards;
|
||||
player.chooseTarget(true).set('ai',function(target){
|
||||
return get.attitude(player,target)/Math.sqrt(1+target.countCards('h'));
|
||||
}).set('createDialog',['请选择一名角色获得这些牌',event.cards]);
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
player.line(result.targets);
|
||||
result.targets[0].gain(event.cards,'draw');
|
||||
},
|
||||
ai:{
|
||||
effect:{
|
||||
target:function(card,player,target){
|
||||
if(get.tag(card,'recover')&&target.hp==target.maxHp-1) return [0,0];
|
||||
if(target.hasFriend()){
|
||||
if((get.tag(card,'damage')==1||get.tag(card,'loseHp'))&&target.hp==target.maxHp) return [0,1];
|
||||
}
|
||||
}
|
||||
},
|
||||
threaten:function(player,target){
|
||||
if(target.hp==1) return 3;
|
||||
if(target.hp==2) return 2;
|
||||
return 1;
|
||||
},
|
||||
}
|
||||
},
|
||||
oldqianxi:{
|
||||
audio:2,
|
||||
trigger:{source:'damageBegin2'},
|
||||
check:function(event,player){
|
||||
var att=get.attitude(player,event.player);
|
||||
if(event.player.hp==event.player.maxHp) return att<0;
|
||||
if(event.player.hp==event.player.maxHp-1&&
|
||||
(event.player.maxHp<=3||event.player.hasSkillTag('maixie'))) return att<0;
|
||||
return att>0;
|
||||
},
|
||||
filter:function(event,player){
|
||||
return event.card&&event.card.name=='sha'&&get.distance(player,event.player)<=1;
|
||||
},
|
||||
logTarget:'player',
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.judge(function(card){
|
||||
return get.suit(card)!='heart'?1:-1;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
trigger.cancel();
|
||||
trigger.player.loseMaxHp(true);
|
||||
}
|
||||
}
|
||||
},
|
||||
old_fuhun:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseDrawBegin1'},
|
||||
filter:function(event,player){
|
||||
return !event.numFixed;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
trigger.changeToZero();
|
||||
'step 1'
|
||||
var cards=get.cards(2);
|
||||
event.cards=cards;
|
||||
player.showCards(cards,get.translation(player)+'发动了【父魂】');
|
||||
'step 2'
|
||||
player.gain(cards,'gain2');
|
||||
if(get.color(cards[0])!=get.color(cards[1])){
|
||||
player.addTempSkill('wusheng');
|
||||
player.addTempSkill('paoxiao');
|
||||
}
|
||||
},
|
||||
},
|
||||
shiyong:{
|
||||
audio:2,
|
||||
trigger:{player:'damageEnd'},
|
||||
|
@ -11824,7 +11941,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
translate:{
|
||||
old_huaxiong:'华雄',
|
||||
yufan:'虞翻',
|
||||
wangyi:'王异',
|
||||
xushu:'旧徐庶',
|
||||
caozhi:'曹植',
|
||||
zhangchunhua:'张春华',
|
||||
|
@ -11835,8 +11951,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
yujin:'毅重于禁',
|
||||
masu:'旧马谡',
|
||||
xin_masu:'马谡',
|
||||
fazheng:'旧法正',
|
||||
xin_fazheng:'法正',
|
||||
fazheng:'法正',
|
||||
wuguotai:'吴国太',
|
||||
chengong:'陈宫',
|
||||
xusheng:'徐盛',
|
||||
|
@ -11858,7 +11973,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
manchong:'满宠',
|
||||
liufeng:'刘封',
|
||||
liru:'旧李儒',
|
||||
guanzhang:'关兴张苞',
|
||||
yj_jushou:'沮授',
|
||||
zhuhuan:'朱桓',
|
||||
xiahoushi:'夏侯氏',
|
||||
|
@ -12366,6 +12480,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
pojun_info:'当你使用【杀】造成伤害后,你可以令受到该伤害的角色摸X张牌(X为该角色当前的体力值且最多为5),然后该角色将其武将牌翻面。',
|
||||
shiyong:'恃勇',
|
||||
shiyong_info:'锁定技,当你受到一次红色【杀】或【酒】【杀】造成的伤害后,须减1点体力上限',
|
||||
old_guanzhang:'关兴张苞',
|
||||
old_wangyi:'王异',
|
||||
oldqianxi:'潜袭',
|
||||
oldqianxi_info:'当你使用【杀】对距离为1的目标角色造成伤害时,你可以进行一次判定,若判定结果不为红桃,你防止此伤害,令其减1点体力上限',
|
||||
oldzhenlie:'贞烈',
|
||||
oldzhenlie_info:'在你的判定牌生效前,你可以亮出牌堆顶的一张牌代替之',
|
||||
oldmiji:'秘计',
|
||||
oldmiji_info:'准备/结束阶段开始时,若你已受伤,你可以判定,若判定结果为黑色,你观看牌堆顶的X张牌(X为你已损失的体力值),然后将这些牌交给一名角色',
|
||||
old_fuhun:'父魂',
|
||||
old_fuhun_info:'摸牌阶段开始时,你可以放弃摸牌,改为从牌堆顶亮出两张牌并获得之,若亮出的牌颜色不同,你获得技能“武圣”、“咆哮”,直到回合结束。',
|
||||
|
||||
yijiang_2011:'一将成名2011',
|
||||
yijiang_2012:'一将成名2012',
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'v1.9.102.1',
|
||||
'v1.9.103',
|
||||
'audio/background/aozhan_chaoming.mp3',
|
||||
'audio/background/aozhan_online.mp3',
|
||||
'audio/background/aozhan_rewrite.mp3',
|
||||
|
@ -589,6 +589,10 @@ window.noname_asset_list=[
|
|||
'audio/die/sp_sufei.mp3',
|
||||
'audio/die/wulan.mp3',
|
||||
'audio/die/key_saya.mp3',
|
||||
'audio/die/old_guanzhang.mp3',
|
||||
'audio/die/old_madai.mp3',
|
||||
'audio/die/old_wangyi.mp3',
|
||||
'audio/die/sunshao.mp3',
|
||||
|
||||
'audio/skill/anguo1.mp3',
|
||||
'audio/skill/anguo2.mp3',
|
||||
|
@ -2609,6 +2613,14 @@ window.noname_asset_list=[
|
|||
'audio/skill/saya_shouji2.mp3',
|
||||
'audio/skill/saya_powei1.mp3',
|
||||
'audio/skill/saya_powei2.mp3',
|
||||
'audio/skill/old_fuhun1.mp3',
|
||||
'audio/skill/old_fuhun2.mp3',
|
||||
'audio/skill/oldmiji1.mp3',
|
||||
'audio/skill/oldmiji2.mp3',
|
||||
'audio/skill/oldqianxi1.mp3',
|
||||
'audio/skill/oldqianxi2.mp3',
|
||||
'audio/skill/oldzhenlie1.mp3',
|
||||
'audio/skill/oldzhenlie2.mp3',
|
||||
|
||||
'font/huangcao.ttf',
|
||||
'font/shousha.ttf',
|
||||
|
@ -3221,6 +3233,8 @@ window.noname_asset_list=[
|
|||
'image/character/re_jianyong.jpg',
|
||||
'image/character/sp_key_yuri.jpg',
|
||||
'image/character/xin_xusheng.jpg',
|
||||
'image/character/key_kaori.jpg',
|
||||
'image/character/key_shiori.jpg',
|
||||
|
||||
'image/character/baiwuchang.jpg',
|
||||
'image/character/baosanniang.jpg',
|
||||
|
|
81
game/game.js
81
game/game.js
|
@ -7177,6 +7177,16 @@
|
|||
game.saveConfig('mousewheel',false);
|
||||
}
|
||||
|
||||
var show_splash=lib.config.show_splash;
|
||||
if(show_splash=='off'){
|
||||
show_splash=false;
|
||||
}
|
||||
else if(show_splash=='init'){
|
||||
if(localStorage.getItem('show_splash_off')){
|
||||
show_splash=false;
|
||||
}
|
||||
}
|
||||
localStorage.removeItem('show_splash_off');
|
||||
var extensionlist=[];
|
||||
if(!localStorage.getItem(lib.configprefix+'disable_extension')){
|
||||
if(lib.config.extensions&&lib.config.extensions.length){
|
||||
|
@ -7204,14 +7214,16 @@
|
|||
}
|
||||
_status.evaluatingExtension=false;
|
||||
}
|
||||
else{
|
||||
else if(lib.config.mode!='connect'||show_splash){
|
||||
extensionlist.push(lib.config.extensions[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
for(var i=0;i<lib.config.extensions.length;i++){
|
||||
game.import('extension',{name:lib.config.extensions[i]});
|
||||
if(lib.config.mode!='connect'||show_splash){
|
||||
for(var i=0;i<lib.config.extensions.length;i++){
|
||||
game.import('extension',{name:lib.config.extensions[i]});
|
||||
}
|
||||
}
|
||||
}
|
||||
var loadPack=function(){
|
||||
|
@ -7228,16 +7240,6 @@
|
|||
}
|
||||
}
|
||||
};
|
||||
var show_splash=lib.config.show_splash;
|
||||
if(show_splash=='off'){
|
||||
show_splash=false;
|
||||
}
|
||||
else if(show_splash=='init'){
|
||||
if(localStorage.getItem('show_splash_off')){
|
||||
show_splash=false;
|
||||
}
|
||||
}
|
||||
localStorage.removeItem('show_splash_off');
|
||||
if(localStorage.getItem(lib.configprefix+'playback')){
|
||||
toLoad++;
|
||||
lib.init.js(lib.assetURL+'mode',lib.config.mode,packLoaded,packLoaded);
|
||||
|
@ -7284,7 +7286,7 @@
|
|||
var styleLoaded=function(){
|
||||
styleToLoad--;
|
||||
if(styleToLoad==0){
|
||||
if(extensionlist.length){
|
||||
if(extensionlist.length&&(lib.config.mode!='connect'||show_splash)){
|
||||
var extToLoad=extensionlist.length;
|
||||
var extLoaded=function(){
|
||||
extToLoad--;
|
||||
|
@ -8561,26 +8563,29 @@
|
|||
clickedNode=true;
|
||||
lib.config.mode=this.link;
|
||||
game.saveConfig('mode',this.link);
|
||||
if(game.layout!='mobile'&&lib.layoutfixed.indexOf(lib.config.mode)!==-1){
|
||||
game.layout='mobile';
|
||||
ui.css.layout.href=lib.assetURL+'layout/'+game.layout+'/layout.css';
|
||||
}
|
||||
else if(game.layout=='mobile'&&lib.config.layout!='mobile'&&lib.layoutfixed.indexOf(lib.config.mode)===-1){
|
||||
game.layout=lib.config.layout;
|
||||
if(game.layout=='default'){
|
||||
ui.css.layout.href='';
|
||||
}
|
||||
else{
|
||||
ui.css.layout.href=lib.assetURL+'layout/'+game.layout+'/layout.css';
|
||||
}
|
||||
}
|
||||
splash.delete(1000);
|
||||
delete window.inSplash;
|
||||
window.resetGameTimeout=setTimeout(lib.init.reset,5000);
|
||||
if(this.link=='connect') game.reload();
|
||||
else{
|
||||
if(game.layout!='mobile'&&lib.layoutfixed.indexOf(lib.config.mode)!==-1){
|
||||
game.layout='mobile';
|
||||
ui.css.layout.href=lib.assetURL+'layout/'+game.layout+'/layout.css';
|
||||
}
|
||||
else if(game.layout=='mobile'&&lib.config.layout!='mobile'&&lib.layoutfixed.indexOf(lib.config.mode)===-1){
|
||||
game.layout=lib.config.layout;
|
||||
if(game.layout=='default'){
|
||||
ui.css.layout.href='';
|
||||
}
|
||||
else{
|
||||
ui.css.layout.href=lib.assetURL+'layout/'+game.layout+'/layout.css';
|
||||
}
|
||||
}
|
||||
splash.delete(1000);
|
||||
delete window.inSplash;
|
||||
window.resetGameTimeout=setTimeout(lib.init.reset,5000);
|
||||
|
||||
this.listenTransition(function(){
|
||||
lib.init.js(lib.assetURL+'mode',lib.config.mode,proceed);
|
||||
},500);
|
||||
this.listenTransition(function(){
|
||||
lib.init.js(lib.assetURL+'mode',lib.config.mode,proceed);
|
||||
},500);
|
||||
}
|
||||
}
|
||||
var downNode=function(){
|
||||
this.classList.add('glow');
|
||||
|
@ -20184,8 +20189,10 @@
|
|||
removeEquipTrigger:function(card){
|
||||
if(card){
|
||||
var info=get.info(card);
|
||||
var skills=this.getSkills(null,false);
|
||||
if(info.skills){
|
||||
for(var j=0;j<info.skills.length;j++){
|
||||
if(skills.contains(info.skills[j])) continue;
|
||||
this.removeSkillTrigger(info.skills[j]);
|
||||
}
|
||||
}
|
||||
|
@ -42900,6 +42907,14 @@
|
|||
}
|
||||
}
|
||||
else{
|
||||
for(var i of game.connectPlayers){
|
||||
var num=0;
|
||||
if(!i.nickname&&!i.classList.contains('unselectable2')) i++;
|
||||
}
|
||||
if(i>=lib.configOL.number-1){
|
||||
alert('至少要有两名玩家才能开始游戏!');
|
||||
return;
|
||||
}
|
||||
game.resume();
|
||||
}
|
||||
button.delete();
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
window.noname_update={
|
||||
version:'1.9.102.1',
|
||||
update:'1.9.102',
|
||||
version:'1.9.103.1',
|
||||
update:'1.9.103',
|
||||
changeLog:[
|
||||
'朱鹭户沙耶语音',
|
||||
'开黑斗地主模式',
|
||||
'OL张昌蒲、OL士燮、界简雍、界徐盛',
|
||||
'SP仲村由理',
|
||||
'美坂栞、美坂香里',
|
||||
'新神关羽',
|
||||
'武将分包调整',
|
||||
'bug修复',
|
||||
|
||||
],
|
||||
|
@ -16,37 +17,37 @@ window.noname_update={
|
|||
//'card/swd.js',
|
||||
//'card/mtg.js',
|
||||
//'card/gujian.js',
|
||||
'card/guozhan.js',
|
||||
//'card/guozhan.js',
|
||||
//'card/gwent.js',
|
||||
//'card/yunchou.js',
|
||||
//'card/zhenfa.js',
|
||||
//'card/zhulu.js',
|
||||
'character/diy.js',
|
||||
//'character/extra.js',
|
||||
//'character/diy.js',
|
||||
'character/extra.js',
|
||||
//'character/hearth.js',
|
||||
//'character/gujian.js',
|
||||
//'character/gwent.js',
|
||||
//'character/hearth.js',
|
||||
'character/mobile.js',
|
||||
//'character/mobile.js',
|
||||
//'character/mtg.js',
|
||||
'character/old.js',
|
||||
'character/refresh.js',
|
||||
//'character/shenhua.js',
|
||||
'character/sp.js',
|
||||
'character/sp2.js',
|
||||
//'character/old.js',
|
||||
//'character/refresh.js',
|
||||
'character/shenhua.js',
|
||||
//'character/sp.js',
|
||||
//'character/sp2.js',
|
||||
//'character/tw.js',
|
||||
//'character/standard.js',
|
||||
//'character/swd.js',
|
||||
//'character/xianjian.js',
|
||||
//'character/xinghuoliaoyuan.js',
|
||||
'character/yijiang.js',
|
||||
//'character/yijiang.js',
|
||||
//'character/yxs.js',
|
||||
//'extension/boss/extension.js',
|
||||
//'layout/default/layout.css',
|
||||
//'layout/nova/layout.css',
|
||||
//'mode/identity.js',
|
||||
'mode/doudizhu.js',
|
||||
'mode/guozhan.js',
|
||||
//'mode/doudizhu.js',
|
||||
//'mode/guozhan.js',
|
||||
//'mode/chess.js',
|
||||
//'mode/tafang.js',
|
||||
//'mode/single.js',
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 245 KiB |
Binary file not shown.
After Width: | Height: | Size: 195 KiB |
|
@ -1207,7 +1207,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
|
||||
stone_fennuxiaoji:['male','qun',1,['stone_fennuxiaoji1'],['minskin','stone'],[1,2]],
|
||||
stone_juxingchanchu:['male','qun',2,['stone_juxingchanchu1'],['minskin','stone'],[2,1]],
|
||||
stone_wuyi:['male','qun',1,['jijiu'],['minskin','stone'],[2,2]],
|
||||
stone_wuyi:['male','qun',1,['jijiu'],['minskin','stone','die_audio'],[2,2]],
|
||||
stone_langren:['male','qun',1,['stone_qianxing'],['minskin','stone'],[1,2]],
|
||||
stone_shishigui:['male','qun',2,['stone_shishigui1'],['minskin','stone'],[2,1]],
|
||||
|
||||
|
|
Loading…
Reference in New Issue