Merge pull request #175 from copcap/dev
新增十常侍、族钟琰、谋祝融、谋孟获、界曹冲;解禁陈泰、牵招、新杀孙寒华、桓范;代码调整
|
@ -2158,8 +2158,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
player.chooseToUse(get.prompt('qinglong',trigger.target),function(card,player,event){
|
||||
if(get.name(card)!='sha') return false;
|
||||
if(player.getEquip('qinglong')==card) return false;
|
||||
var target=_status.event.targetx;
|
||||
if(!lib.filter.targetEnabled(card,player,target)) return false;
|
||||
return lib.filter.filterCard.apply(this,arguments);
|
||||
},trigger.target,-1).set('addCount',false).logSkill='qinglong_skill';
|
||||
},trigger.target,-1).set('targetx',trigger.target).set('addCount',false).logSkill='qinglong_skill';
|
||||
}
|
||||
},
|
||||
zhangba_skill:{
|
||||
|
|
|
@ -15,6 +15,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
clan_hanrong:['male','qun',3,['clanlianhe','clanhuanjia','clanxumin'],['clan:颍川韩氏']],
|
||||
clan_wukuang:['male','qun',4,['clanlianzhu','clanmuyin'],['clan:陈留吴氏']],
|
||||
clan_wangling:['male','wei',4,['clanbolong','clanzhongliu'],['clan:太原王氏']],
|
||||
clan_zhongyan:['female','jin',3,['clanguangu','clanxiaoyong','clanbaozu'],['clan:颍川钟氏']],
|
||||
},
|
||||
characterSort:{
|
||||
clan:{
|
||||
|
@ -25,6 +26,257 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
skill:{
|
||||
//钟琰族钟琰
|
||||
clanguangu:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
zhuanhuanji:true,
|
||||
mark:true,
|
||||
marktext:'☯',
|
||||
intro:{
|
||||
content:function(storage){
|
||||
return '转换技。出牌阶段限一次,你可以观看'+(storage?'一名角色的至多四张手':'牌堆顶的至多四张')+'牌,然后可以使用其中的一张牌';
|
||||
},
|
||||
},
|
||||
filter:function(event,player){
|
||||
if(player.storage.clanguangu) return game.hasPlayer(current=>{
|
||||
return current.countCards('h');
|
||||
});
|
||||
return true;
|
||||
},
|
||||
chooseButton:{
|
||||
dialog:function(event,player){
|
||||
var dialog=ui.create.dialog('观骨:选择观看牌堆的牌数','hidden');
|
||||
if(player.storage.clanguangu) dialog.forceDirect=true;
|
||||
return dialog;
|
||||
},
|
||||
chooseControl:function(event,player){
|
||||
var list=[1,2,3,4].map(i=>{
|
||||
return get.cnNumber(i,true);
|
||||
});
|
||||
list.push('cancel2');
|
||||
return list;
|
||||
},
|
||||
check:function(button,player){
|
||||
var ret;
|
||||
if(!player.hasSkill('clanxiaoyong')) ret=4;
|
||||
else{
|
||||
var list=[4,3,2,1];
|
||||
player.getHistory('useCard',evt=>{
|
||||
var len=lib.skill.dcweidang.getLength(evt.card);
|
||||
list.remove(len);
|
||||
});
|
||||
if(list.length) ret=list[0];
|
||||
else ret=4;
|
||||
}
|
||||
return get.cnNumber(ret,true);
|
||||
},
|
||||
backup:function(result,player){
|
||||
return {
|
||||
audio:'clanguangu',
|
||||
filterCard:()=>false,
|
||||
selectCard:-1,
|
||||
filterTarget:function(card,player,target){
|
||||
if(player.storage.clanguangu) return true;
|
||||
return false;
|
||||
},
|
||||
selectTarget:function(){
|
||||
var player=_status.event.player;
|
||||
if(player.storage.clanguangu) return 1;
|
||||
return -1;
|
||||
},
|
||||
num:result.index+1,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.changeZhuanhuanji('clanguangu');
|
||||
if(!targets.length){
|
||||
var num=lib.skill.clanguangu_backup.num;
|
||||
var cards=get.cards(num);
|
||||
game.cardsGotoOrdering(cards);
|
||||
event.cards=cards;
|
||||
event.goto(2);
|
||||
}
|
||||
else{
|
||||
var ret;
|
||||
if(!player.hasSkill('clanxiaoyong')) ret=4;
|
||||
else{
|
||||
var list=[4,3,2,1];
|
||||
player.getHistory('useCard',evt=>{
|
||||
var len=lib.skill.dcweidang.getLength(evt.card);
|
||||
list.remove(len);
|
||||
});
|
||||
if(list.length) ret=list[0];
|
||||
else ret=4;
|
||||
}
|
||||
player.choosePlayerCard(target,'h',true,[1,4]).set('prompt','观骨:观看'+get.translation(target)+'的至多四张牌').set('ai',button=>{
|
||||
if(ui.selected.buttons.length>=_status.event.num) return 0;
|
||||
return Math.random();
|
||||
}).set('num',ret);
|
||||
}
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
event.cards=result.links;
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
var count=cards.length;
|
||||
event.getParent().viewedCount=count;
|
||||
player.chooseButton(['观骨:是否使用其中一张牌?',cards]).set('filterButton',button=>{
|
||||
var player=_status.event.player;
|
||||
var card=button.link;
|
||||
var cardx={
|
||||
name:get.name(card,get.owner(card)),
|
||||
nature:get.nature(card,get.owner(card)),
|
||||
cards:[card],
|
||||
}
|
||||
return player.hasUseTarget(cardx);
|
||||
}).set('ai',button=>{
|
||||
var len=_status.event.len;
|
||||
var card=button.link;
|
||||
var fix=1;
|
||||
if(lib.skill.dcweidang.getLength(card)==len) fix=2;
|
||||
return fix*_status.event.player.getUseValue(card);
|
||||
}).set('len',function(){
|
||||
if(!player.hasSkill('clanxiaoyong')) return 0;
|
||||
var list=[];
|
||||
player.getHistory('useCard',evt=>{
|
||||
var len=lib.skill.dcweidang.getLength(evt.card);
|
||||
list.add(len);
|
||||
});
|
||||
if(!list.contains(count)) return count;
|
||||
if(list.length) return list.randomGet();
|
||||
return 4;
|
||||
}());
|
||||
'step 3'
|
||||
if(result.bool){
|
||||
var card=result.links[0];
|
||||
cards.remove(card);
|
||||
var cardx={
|
||||
name:get.name(card,get.owner(card)),
|
||||
nature:get.nature(card,get.owner(card)),
|
||||
cards:[card],
|
||||
}
|
||||
var next=player.chooseUseTarget(cardx,[card],true).set('oncard',(card)=>{
|
||||
var owner=_status.event.getParent().owner;
|
||||
if(owner) owner.$throw(card.cards);
|
||||
});
|
||||
if(card.name!=cardx.name||card.nature!=cardx.nature) next.viewAs=true;
|
||||
var owner=get.owner(card);
|
||||
if(owner!=player&&get.position(card)=='h'){
|
||||
next.throw=false;
|
||||
next.set('owner',owner);
|
||||
}
|
||||
}
|
||||
'step 4'
|
||||
if(!targets.length){
|
||||
while(cards.length) ui.cardPile.insertBefore(cards.pop().fix(),ui.cardPile.firstChild);
|
||||
game.updateRoundNumber();
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:10,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
return -Math.min(target.countCards('h'),4)/2;
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
},
|
||||
prompt:function(result){
|
||||
if(result.index) return '点击“确定”以观看牌堆顶牌';
|
||||
return '观骨:选择观看牌的目标';
|
||||
},
|
||||
},
|
||||
subSkill:{
|
||||
backup:{},
|
||||
},
|
||||
ai:{
|
||||
order:10,
|
||||
result:{
|
||||
player:1,
|
||||
}
|
||||
},
|
||||
},
|
||||
clanxiaoyong:{
|
||||
audio:2,
|
||||
trigger:{
|
||||
player:'useCard',
|
||||
},
|
||||
filter:function(event,player){
|
||||
if(!player.getStat().skill.clanguangu) return false;
|
||||
var history=player.getAllHistory('useSkill',evt=>{
|
||||
return evt.skill=='clanguangu_backup';
|
||||
}).map(evt=>evt.event);
|
||||
if(!history.length) return false;
|
||||
var num=0;
|
||||
for(var i=history.length-1;i>=0;i--){
|
||||
var evt=history[i];
|
||||
if(evt.viewedCount){
|
||||
num=evt.viewedCount;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(num&&lib.skill.dcweidang.getLength(event.card)==num) return true;
|
||||
return false;
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
delete player.getStat().skill.clanguangu;
|
||||
game.log(player,'重置了','#g【观骨】');
|
||||
},
|
||||
mod:{
|
||||
aiOrder:function(player,card,num){
|
||||
if(!player.hasSkill('clanguangu')||!player.getStat().skill.clanguangu) return;
|
||||
var history=player.getAllHistory('useSkill',evt=>{
|
||||
return evt.skill=='clanguangu_backup';
|
||||
}).map(evt=>evt.event);
|
||||
if(!history.length) return;
|
||||
var numx=0;
|
||||
for(var i=history.length-1;i>=0;i--){
|
||||
var evt=history[i];
|
||||
if(evt.viewedCount){
|
||||
numx=evt.viewedCount;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(numx==lib.skill.dcweidang.getLength(card)){
|
||||
if(!player.hasHistory('useCard',evt=>{
|
||||
return numx==lib.skill.dcweidang.getLength(evt.card);
|
||||
})){
|
||||
return num+9;
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
clanbaozu:{
|
||||
audio:2,
|
||||
audioname:['clan_zhongyan'],
|
||||
trigger:{
|
||||
gloabl:'dying',
|
||||
},
|
||||
clanSkill:true,
|
||||
limited:true,
|
||||
skillAnimation:true,
|
||||
animationColor:'water',
|
||||
filter:function(event,player){
|
||||
return event.player.hasClan('颍川钟氏')&&event.player.hp<=0&&!event.player.isLinked();
|
||||
},
|
||||
logTarget:'player',
|
||||
check:function(event,player){
|
||||
return get.recoverEffect(event.player,player,player)>10;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
trigger.player.link(true);
|
||||
trigger.player.recover();
|
||||
}
|
||||
},
|
||||
//族王凌
|
||||
clanbolong:{
|
||||
audio:2,
|
||||
|
@ -1548,6 +1800,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(player.storage.clanlianzhu) return '转换技。每名角色A的出牌阶段限一次。阴:A可以重铸一张牌,然后你可以重铸一张牌。若这两张牌颜色不同,则你的手牌上限-1;<span class="bluetext">阳:A可以令你选择一名在你或A攻击范围内的另一名其他角色B,然后A和你可依次选择是否对B使用一张【杀】。若这两张【杀】颜色相同,则你的手牌上限+1</span>。';
|
||||
return '转换技。每名角色A的出牌阶段限一次。<span class="bluetext">阴:A可以重铸一张牌,然后你可以重铸一张牌。若这两张牌颜色不同,则你的手牌上限-1</span>;阳:A可以令你选择一名在你或A攻击范围内的另一名其他角色B,然后A和你可依次选择是否对B使用一张【杀】。若这两张【杀】颜色相同,则你的手牌上限+1。';
|
||||
},
|
||||
clanguangu:function(player){
|
||||
if(player.storage.clanguangu) return '转换技,出牌阶段限一次。阴:你可以观看牌堆顶的至多四张牌;<span class="bluetext">阳:你可以观看一名角色的至多四张手牌。</span>然后你可以使用其中的一张牌。';
|
||||
return '转换技,出牌阶段限一次。<span class="bluetext">阴:你可以观看牌堆顶的至多四张牌;</span>阳:你可以观看一名角色的至多四张手牌。然后你可以使用其中的一张牌。';
|
||||
},
|
||||
},
|
||||
translate:{
|
||||
clan_wuxian:'族吴苋',
|
||||
|
@ -1607,11 +1863,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
clanbolong_info:'出牌阶段限一次。你可以令一名其他角色选择一项:1.你交给其一张牌,然后视为对其使用一张雷【杀】;2.交给你等同于你手牌数的牌,然后视为对你使用一张【酒】。',
|
||||
clanzhongliu:'中流',
|
||||
clanzhongliu_info:'宗族技,锁定技。当你使用牌时,若此牌对应的实体牌不全为同族角色的手牌,你重置武将牌上的技能。',
|
||||
clan_zhongyan:'族钟琰',
|
||||
clanguangu:'观骨',
|
||||
clanguangu_info:'转换技,出牌阶段限一次。阴:你可以观看牌堆顶的至多四张牌;阳:你可以观看一名角色的至多四张手牌。然后你可以使用其中的一张牌。',
|
||||
clanxiaoyong:'啸咏',
|
||||
clanxiaoyong_info:'锁定技。当你于回合内首次使用字数为X的牌时,你重置〖观骨〗(X为你上次发动〖观骨〗观看的牌数)。',
|
||||
clanbaozu:'保族',
|
||||
clanbaozu_info:'宗族技,限定技。当一名同族角色进入濒死状态时,你可以令其横置并回复1点体力。',
|
||||
|
||||
clan_wu:'陈留·吴氏',
|
||||
clan_xun:'颍川·荀氏',
|
||||
clan_han:'颍川·韩氏',
|
||||
clan_wang:'太原·王氏',
|
||||
clan_zhong:'颍川·钟氏',
|
||||
},
|
||||
};
|
||||
});
|
||||
|
|
1175
character/mobile.js
|
@ -67,7 +67,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
pe_wenqin:['male','wei',4,['gzjinfa']],
|
||||
pe_sunchen:['male','wu',4,['zyshilu','zyxiongnve']],
|
||||
pe_mengda:['male','wei',4,['qiuan','liangfan']],
|
||||
pe_zhonghui:['male','wei',4,['zyquanji','zypaiyi']],
|
||||
pe_zhonghui:['male','wei',4,['zyquanji','zypaiyi'],['clan:颍川钟氏']],
|
||||
pe_wangyun:['male','qun',3,['zylianji','zymoucheng'],['clan:太原王氏']],
|
||||
shen_jiaxu:['male','shen',3,['weimu','zybishi','zyjianbing'],['qun']],
|
||||
yj_zhenji:['female','wei',3,['yjluoshen','qingguo']],
|
||||
|
|
|
@ -66,7 +66,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xin_yujin:['male','wei',4,['jieyue']],
|
||||
//lusu:['male','wu',3,['haoshi','dimeng']],
|
||||
//yuanshao:['male','qun',4,['luanji','xueyi'],['zhu']],
|
||||
old_zhonghui:['male','wei',3,['zzhenggong','zquanji','zbaijiang']],
|
||||
old_zhonghui:['male','wei',3,['zzhenggong','zquanji','zbaijiang'],['clan:颍川钟氏']],
|
||||
old_xusheng:['male','wu',4,['pojun']],
|
||||
old_zhuran:['male','wu',4,['olddanshou']],
|
||||
old_lingtong:['male','wu',4,['oldxuanfeng']],
|
||||
|
|
|
@ -300,6 +300,7 @@ window.noname_character_rank={
|
|||
'wangguan',
|
||||
'duanqiaoxiao',
|
||||
'old_wanglang',
|
||||
'shichangshi',
|
||||
'key_misuzu',
|
||||
'key_sunohara',
|
||||
'key_umi',
|
||||
|
@ -582,6 +583,7 @@ window.noname_character_rank={
|
|||
'dc_ruiji',
|
||||
'yuantanyuanxiyuanshang',
|
||||
'yanghong',
|
||||
'dc_sunhanhua',
|
||||
],
|
||||
bp:[
|
||||
'chess_diaochan',
|
||||
|
@ -926,6 +928,7 @@ window.noname_character_rank={
|
|||
'ol_zhangzhang',
|
||||
'ol_mengda',
|
||||
'dc_wuban',
|
||||
're_caochong',
|
||||
],
|
||||
b:[
|
||||
'diy_feishi',
|
||||
|
@ -1216,6 +1219,9 @@ window.noname_character_rank={
|
|||
'vtb_xiaotao',
|
||||
'zhangchu',
|
||||
'dc_duyu',
|
||||
'chentai',
|
||||
'clan_zhongyan',
|
||||
'sb_zhurong',
|
||||
],
|
||||
bm:[
|
||||
'diy_xizhenxihong',
|
||||
|
@ -1404,6 +1410,7 @@ window.noname_character_rank={
|
|||
'yeshiwen',
|
||||
'qianzhao',
|
||||
'vtb_xiaosha',
|
||||
'huanfan',
|
||||
],
|
||||
c:[
|
||||
'xiahoudun',
|
||||
|
@ -1465,6 +1472,7 @@ window.noname_character_rank={
|
|||
'old_liubiao',
|
||||
'luoxian',
|
||||
'ol_huban',
|
||||
'sb_menghuo',
|
||||
],
|
||||
d:[
|
||||
'lvmeng',
|
||||
|
@ -1505,6 +1513,7 @@ window.noname_character_rank={
|
|||
'junk_lidian',
|
||||
'junk_duanwei',
|
||||
'std_panfeng',
|
||||
'qianzhao',
|
||||
],
|
||||
rarity:{
|
||||
legend:[
|
||||
|
|
|
@ -11,7 +11,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
refresh_shan:['ol_jiangwei','ol_caiwenji','ol_liushan','ol_zhangzhang','re_zuoci','re_sunce','ol_dengai','re_zhanghe'],
|
||||
refresh_yijiang1:['xin_wuguotai','xin_gaoshun','dc_caozhi','yujin_yujin','re_masu','xin_xusheng','re_fazheng','xin_lingtong','re_zhangchunhua','dc_xushu','re_chengong'],
|
||||
refresh_yijiang2:['re_madai','re_wangyi','xin_handang','xin_zhonghui','re_liaohua','re_chengpu','re_caozhang','dc_bulianshi','xin_liubiao','re_xunyou','re_guanzhang'],
|
||||
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','xin_yufan','dc_liru','re_manchong','re_fuhuanghou','re_guanping','re_liufeng'],
|
||||
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','xin_yufan','dc_liru','re_manchong','re_fuhuanghou','re_guanping','re_liufeng','re_caochong'],
|
||||
refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan','re_caozhen','re_zhoucang','dc_chenqun','re_caifuren','re_guyong','re_jushou','re_zhuhuan','re_zhangsong'],
|
||||
refresh_yijiang5:['re_zhangyi','re_quancong','re_caoxiu','re_sunxiu','re_gongsunyuan','re_guotufengji','re_xiahoushi','re_liuchen','re_zhuzhi'],
|
||||
refresh_yijiang6:['re_guohuanghou','re_sundeng'],
|
||||
|
@ -20,6 +20,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
connect:true,
|
||||
character:{
|
||||
re_caochong:['male','wei',3,['rechengxiang','renxin']],
|
||||
ol_zhangzhang:['male','wu',3,['olzhijian','olguzheng']],
|
||||
re_jsp_huangyueying:['female','qun',3,['rejiqiao','relinglong']],
|
||||
re_zhangsong:['male','shu',3,['qiangzhi','rexiantu']],
|
||||
|
@ -52,7 +53,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ol_lusu:['male','wu',3,['olhaoshi','oldimeng']],
|
||||
re_jiaxu:['male','qun',3,['rewansha','reluanwu','reweimu']],
|
||||
re_guyong:['male','wu',3,['reshenxing','rebingyi']],
|
||||
xin_zhonghui:['male','wei',4,['xinquanji','xinzili']],
|
||||
xin_zhonghui:['male','wei',4,['xinquanji','xinzili'],['clan:颍川钟氏']],
|
||||
re_caifuren:['female','qun',3,['reqieting','rexianzhou']],
|
||||
re_guanping:['male','shu',4,['relongyin','jiezhong']],
|
||||
re_guotufengji:['male','qun',3,['rejigong','shifei']],
|
||||
|
@ -161,6 +162,35 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_guohuai:['xiahouyuan','zhanghe'],
|
||||
},
|
||||
skill:{
|
||||
//不想突破可以不突破的界曹冲
|
||||
rechengxiang:{
|
||||
audio:2,
|
||||
group:'rechengxiang_gain',
|
||||
trigger:{
|
||||
player:'rechengxiang_gainEnd',
|
||||
},
|
||||
direct:true,
|
||||
subfrequent:['gain'],
|
||||
filter:function(event,player){
|
||||
return event.cards2&&event.cards2.map(card=>{
|
||||
return get.number(card);
|
||||
}).reduce((sum,num)=>{
|
||||
return sum+=num;
|
||||
},0)==13;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.link(false);
|
||||
'step 1'
|
||||
player.turnOver(false);
|
||||
},
|
||||
subSkill:{
|
||||
gain:{
|
||||
inherit:'chengxiang',
|
||||
audio:'rechengxiang',
|
||||
}
|
||||
}
|
||||
},
|
||||
//OL界二张
|
||||
olzhijian:{
|
||||
audio:2,
|
||||
|
@ -1483,7 +1513,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var effect=player.getUseValue(button.link[2]);
|
||||
if(player.countCards('hs',button.link[2])>0) return 0;
|
||||
if((player.getStat('skill').reqice||0)<player.countMark('reqice_mark')+1){
|
||||
if(['draw','gain'].some(i=>get.tag(button.link[2],i) >= 1)) return effect*2;
|
||||
if(['draw','gain'].some(i=>get.tag(button.link[2],i) >= 1)) return effect*5;
|
||||
}
|
||||
if(effect>0) return effect;
|
||||
return 0;
|
||||
|
@ -11984,6 +12014,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
player.storage.rerende2.push(target);
|
||||
player.give(cards,target);
|
||||
'step 1'
|
||||
if(typeof player.storage.rerende!='number'){
|
||||
player.storage.rerende=0;
|
||||
}
|
||||
|
@ -12051,7 +12082,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 1'
|
||||
'step 2'
|
||||
if(result&&result.bool&&result.links[0]){
|
||||
var card={name:result.links[0][2],nature:result.links[0][3]};
|
||||
player.chooseUseTarget(card,true);
|
||||
|
@ -14655,6 +14686,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
olzhijian_info:'出牌阶段,你可以将一张装备牌置于其他角色的装备区(可替换原装备),然后摸一张牌。',
|
||||
olguzheng:'固政',
|
||||
olguzheng_info:'每阶段限一次。当其他角色的至少两张牌因弃置而进入弃牌堆后,你可以令其获得其中一张牌,然后你可以获得剩余的牌。',
|
||||
re_caochong:'界曹冲',
|
||||
rechengxiang:'称象',
|
||||
rechengxiang_info:'当你受到伤害后,你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于13的牌。若你获得的牌点数之和为13,你复原武将牌。',
|
||||
|
||||
refresh_standard:'界限突破·标',
|
||||
refresh_feng:'界限突破·风',
|
||||
|
|
158
character/sb.js
|
@ -35,7 +35,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sb_sunce:['male','wu',4,['sbjiang','sbhunzi','sbzhiba'],['zhu']],
|
||||
sb_daqiao:['female','wu',3,['sbguose','sbliuli']],
|
||||
sb_liubiao:['male','qun',3,['sbzishou','sbzongshi']],
|
||||
sb_zhurong:['female','shu',4,['sblieren','sbjuxiang'],['unseen']],
|
||||
sb_zhurong:['female','shu',4,['sblieren','sbjuxiang']],
|
||||
sb_menghuo:['male','shu',4,['sbhuoshou','sbzaiqi']],
|
||||
},
|
||||
characterSort:{
|
||||
sb:{
|
||||
|
@ -43,10 +44,158 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sb_shi:['sb_xuhuang','sb_machao','sb_fazheng','sb_chengong','sb_diaochan','sb_pangtong'],
|
||||
sb_tong:['liucheng','sp_yangwan','sb_xiahoushi','sb_zhangfei','sb_zhaoyun','sb_sunce','sb_zhurong'],
|
||||
sb_yu:['sb_yujin','sb_lvmeng','sb_huangzhong','sb_huanggai','sb_zhouyu','sb_caoren','sb_ganning'],
|
||||
sb_neng:['sb_huaxiong','sb_sunshangxiang','sb_jiangwei','sb_yuanshao'],
|
||||
sb_neng:['sb_huaxiong','sb_sunshangxiang','sb_jiangwei','sb_yuanshao','sb_menghuo'],
|
||||
}
|
||||
},
|
||||
skill:{
|
||||
//萌货
|
||||
sbhuoshou:{
|
||||
audio:2,
|
||||
trigger:{
|
||||
player:'phaseUseBegin',
|
||||
},
|
||||
filter:function(event,player){
|
||||
return true;
|
||||
},
|
||||
forced:true,
|
||||
onremove:true,
|
||||
group:['sbhuoshou_cancel','sbhuoshou_source','sbhuoshou_nanmaned'],
|
||||
content:function(){
|
||||
'step 0'
|
||||
var card=get.discardPile(card=>{
|
||||
return card.name=='nanman';
|
||||
});
|
||||
if(card){
|
||||
player.gain(card,'gain2');
|
||||
}
|
||||
else{
|
||||
game.log('但是弃牌堆里并没有','#y南蛮入侵','!');
|
||||
player.addMark('sbhuoshou',1,false);
|
||||
if(player.countMark('sbhuoshou')>=5&&Math.random()<0.25) player.chat('我南蛮呢');
|
||||
}
|
||||
},
|
||||
subSkill:{
|
||||
cancel:{
|
||||
audio:'sbhuoshou',
|
||||
trigger:{target:'useCardToBefore'},
|
||||
forced:true,
|
||||
priority:15,
|
||||
filter:function(event,player){
|
||||
return (event.card.name=='nanman');
|
||||
},
|
||||
content:function(){
|
||||
trigger.cancel();
|
||||
},
|
||||
},
|
||||
source:{
|
||||
audio:'sbhuoshou',
|
||||
trigger:{global:'useCardToPlayered'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.isFirstTarget&&event.card&&event.card.name=='nanman'&&event.player!=player;
|
||||
},
|
||||
content:function(){
|
||||
trigger.getParent().customArgs.default.customSource=player;
|
||||
}
|
||||
},
|
||||
nanmaned:{
|
||||
trigger:{
|
||||
player:'useCard1',
|
||||
},
|
||||
filter:function(event,player){
|
||||
return event.card.name=='nanman';
|
||||
},
|
||||
forced:true,
|
||||
popup:false,
|
||||
charlotte:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.addTempSkill('sbhuoshou_ban','phaseUseAfter');
|
||||
}
|
||||
},
|
||||
ban:{
|
||||
charlotte:true,
|
||||
intro:{
|
||||
content:'此阶段不能再使用【南蛮入侵】',
|
||||
}
|
||||
},
|
||||
},
|
||||
mod:{
|
||||
cardEnabled:function(card,player){
|
||||
if(player.hasSkill('sbhuoshou_ban')&&card.name=='nanman') return false;
|
||||
},
|
||||
},
|
||||
ai:{
|
||||
threaten:1.9,
|
||||
}
|
||||
},
|
||||
sbzaiqi:{
|
||||
audio:2,
|
||||
trigger:{
|
||||
player:'phaseDiscardEnd',
|
||||
},
|
||||
chargeSkill:true,
|
||||
filter:function(event,player){
|
||||
return player.hasMark('charge');
|
||||
},
|
||||
group:'sbzaiqi_backflow',
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt('sbzaiqi'),'选择任意名角色并消耗等量蓄力值,令这些角色选择一项:1.令你摸一张牌;2.弃置一张牌,然后你回复1点体力',[1,player.countMark('charge')]).set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
return get.attitude(player,target)+player.getDamagedHp()*3.5;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var targets=result.targets;
|
||||
targets.sortBySeat();
|
||||
event.targets=targets;
|
||||
player.logSkill('sbzaiqi',targets);
|
||||
player.removeMark('charge',targets.length);
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
var target=targets.shift();
|
||||
event.target=target;
|
||||
if(!target.countCards('he')) event._result={bool:false};
|
||||
else target.chooseToDiscard(get.translation(player)+'对你发动了【再起】','是否弃置一张牌令其回复1点体力?或者点击“取消”,令该角色摸一张牌。','he').set('ai',card=>{
|
||||
var eff=_status.event.eff,att=_status.event.att;
|
||||
if(eff>0&&att>0||eff<=0&&att<0) return 5.5-get.value(card);
|
||||
return 0;
|
||||
}).set('eff',get.recoverEffect(player,player,target)).set('att',get.attitude(target,player));
|
||||
'step 3'
|
||||
target.line(player);
|
||||
if(result.bool){
|
||||
player.recover();
|
||||
}
|
||||
else{
|
||||
player.draw();
|
||||
}
|
||||
game.delayex();
|
||||
if(targets.length) event.goto(2);
|
||||
},
|
||||
subSkill:{
|
||||
backflow:{
|
||||
audio:'sbzaiqi',
|
||||
trigger:{
|
||||
player:'enterGame',
|
||||
source:'damageSource',
|
||||
global:'phaseBefore',
|
||||
},
|
||||
usable:1,
|
||||
forced:true,
|
||||
locked:false,
|
||||
filter:function(event,player){
|
||||
if(event.name=='damage') return true;
|
||||
return (event.name!='phase'||game.phaseNumber==0);
|
||||
},
|
||||
content:function(){
|
||||
player.addMark('charge',1);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
//祝融
|
||||
sblieren:{
|
||||
audio:2,
|
||||
|
@ -4491,6 +4640,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sblieren_info:'当你使用【杀】指定唯一目标后,你可以摸一张牌并与其拼点。若你赢,此【杀】结算结束后,你可以对另一名其他角色造成1点伤害。',
|
||||
sbjuxiang:'巨象',
|
||||
sbjuxiang_info:'锁定技。①【南蛮入侵】对你无效。②当其他角色使用【南蛮入侵】结算结束后,你获得此牌对应的所有实体牌。③结束阶段,若你未于本回合使用过【南蛮入侵】,你可以将一张游戏外的随机【南蛮入侵】(共八张)交给一名角色。',
|
||||
sb_menghuo:'谋孟获',
|
||||
sbhuoshou:'祸首',
|
||||
sbhuoshou_info:'锁定技。①【南蛮入侵】对你无效。②当其他角色使用【南蛮入侵】指定第一个目标后,你代替其成为此牌的伤害来源。③出牌阶段开始时,你随机获得弃牌堆中的一张【南蛮入侵】。④出牌阶段,若你于此阶段使用过【南蛮入侵】,你不能使用【南蛮入侵】。',
|
||||
sbzaiqi:'再起',
|
||||
sbzaiqi_info:'蓄力技(1/7)。①弃牌阶段结束时,你可以消耗任意点蓄力值并选择等量名角色,然后令这些角色选择一项:1.令你摸一张牌;2.弃置一张牌,然后你回复1点体力。②每回合限一次。当你造成伤害后,你获得1点蓄力值。',
|
||||
|
||||
sb_zhi:'谋攻篇·知',
|
||||
sb_shi:'谋攻篇·识',
|
||||
|
|
|
@ -18,9 +18,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhangjinyun:['female','shu',3,['dchuizhi','dcjijiao']],
|
||||
dc_mengda:['male','wei',4,['dclibang','dcwujie']],
|
||||
dc_zhangmancheng:['male','qun',4,['dclvecheng','dczhongji'],['unseen']],
|
||||
huanfan:['male','wei',3,['dcjianzheng','dcfumou'],['unseen']],
|
||||
huanfan:['male','wei',3,['dcjianzheng','dcfumou']],
|
||||
mengyou:['male','qun',5,['hmmanyi','dcmanzhi'],['unseen']],
|
||||
chentai:['male','wei',4,['dcjiuxian','dcchenyong'],['unseen']],
|
||||
chentai:['male','wei',4,['dcctjiuxian','dcchenyong']],
|
||||
dc_sunchen:['male','wu',4,['dczigu','dczuowei'],['unseen']],
|
||||
sunyu:['male','wu',3,['dcquanshou','dcshexue'],['unseen']],
|
||||
xizheng:['male','shu',3,['dcdanyi','dcwencan'],['unseen']],
|
||||
|
@ -41,7 +41,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
dc_yangbiao:['male','qun',3,['dczhaohan','dcjinjie','dcjue']],
|
||||
dc_huojun:['male','shu',4,['dcgue','dcsigong']],
|
||||
guānning:['male','shu',3,['dcxiuwen','dclongsong']],
|
||||
dc_sunhanhua:['female','wu',3,['dchuiling','dcchongxu'],['unseen']],
|
||||
dc_sunhanhua:['female','wu',3,['dchuiling','dcchongxu']],
|
||||
dc_sunziliufang:['male','wei',3,['dcqinshen','dcweidang']],
|
||||
dc_tengfanglan:['female','wu',3,['dcluochong','dcaichen']],
|
||||
yuantanyuanxiyuanshang:['male','qun',4,['dcneifa']],
|
||||
|
@ -2333,7 +2333,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
//陈泰
|
||||
dcjiuxian:{
|
||||
dcctjiuxian:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
|
@ -2359,18 +2359,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 0'
|
||||
player.draw(cards.length);
|
||||
'step 1'
|
||||
player.addTempSkill('dcjiuxian_help');
|
||||
player.addTempSkill('dcctjiuxian_help');
|
||||
player.chooseUseTarget({
|
||||
name:'juedou',
|
||||
isCard:true,
|
||||
storage:{dcjiuxian:true}
|
||||
storage:{dcctjiuxian:true}
|
||||
},true);
|
||||
},
|
||||
subSkill:{
|
||||
help:{
|
||||
trigger:{global:'damageSource'},
|
||||
filter:function(event,player){
|
||||
return event.card&&event.card.storage&&event.card.storage.dcjiuxian&&event.player.isIn()&&
|
||||
return event.card&&event.card.storage&&event.card.storage.dcctjiuxian&&event.player.isIn()&&
|
||||
event.getParent(2).targets.contains(event.player)&&game.hasPlayer(current=>{
|
||||
return current!=player&&event.player.inRange(current)&¤t.isDamaged();
|
||||
});
|
||||
|
@ -2387,7 +2387,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.logSkill('dcjiuxian_help',target);
|
||||
player.logSkill('dcctjiuxian_help',target);
|
||||
target.recover(player);
|
||||
}
|
||||
}
|
||||
|
@ -4196,7 +4196,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var card={name:name,isCard:true};
|
||||
if(event.filterCard(card,player,event)) vcards.push(['基本','',name]);
|
||||
}
|
||||
return ui.create.dialog('胆迎',[vcards,'vcard'],'hidden');
|
||||
var dialog=ui.create.dialog('胆迎',[vcards,'vcard'],'hidden');
|
||||
dialog.direct=true;
|
||||
return dialog;
|
||||
},
|
||||
backup:function(links,player){
|
||||
return {
|
||||
|
@ -4802,6 +4804,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}]
|
||||
];
|
||||
var name=evt.name;
|
||||
if(trigger.name=='loseAsync') name=evt.type;
|
||||
var list=['useCard','respond','discard','other'];
|
||||
if(!list.contains(name)) name='other';
|
||||
for(var i=0;i<1+player.countMark('dcqinghuang_add');i++){
|
||||
|
@ -4838,6 +4841,35 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
},
|
||||
dcqinghuang:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseUseBegin'},
|
||||
filter:function(event,player){
|
||||
return player.maxHp>1;
|
||||
},
|
||||
check:function(event,player){
|
||||
var num1=player.countCards('h');
|
||||
var num2=player.countCards('h',card=>player.hasValueTarget(card));
|
||||
var num3=player.getHandcardLimit();
|
||||
if(player.isDamaged()){
|
||||
return num2>1||num1-num2-num3>0;
|
||||
}
|
||||
else{
|
||||
return num2>2+Math.max(0,3-player.hp)||player.hp>2&&num1-num2-num3>2;
|
||||
}
|
||||
},
|
||||
content:function(){
|
||||
player.loseMaxHp();
|
||||
player.addTempSkill('dcqinghuang_add');
|
||||
player.addMark('dcqinghuang_add',1,false);
|
||||
},
|
||||
subSkill:{
|
||||
add:{
|
||||
charlotte:true,
|
||||
onremove:true,
|
||||
}
|
||||
}
|
||||
},
|
||||
//孟节
|
||||
dcyinlu:{
|
||||
audio:2,
|
||||
|
@ -31287,8 +31319,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
dcmanzhi:'蛮智',
|
||||
dcmanzhi_info:'①准备阶段,你可以选择一名其他角色并选择一项:1.令其交给你两张牌,然后其视为使用一张无距离限制的【杀】;2.获得其区域内至多两张牌,然后交给其等量的牌并摸一张牌。②结束阶段,若你的体力值与本回合准备阶段时的体力值相等,你可以执行你未于本回合执行过的〖蛮智①〗的分支。',
|
||||
chentai:'陈泰',
|
||||
dcjiuxian:'救陷',
|
||||
dcjiuxian_info:'出牌阶段限一次。你可以重铸一半数量的手牌(向上取整),然后视为使用一张【决斗】。当此牌对目标角色造成伤害后,你可以令其攻击范围内的一名其他角色回复1点体力。',
|
||||
dcctjiuxian:'救陷',
|
||||
dcctjiuxian_info:'出牌阶段限一次。你可以重铸一半数量的手牌(向上取整),然后视为使用一张【决斗】。当此牌对目标角色造成伤害后,你可以令其攻击范围内的一名其他角色回复1点体力。',
|
||||
dcchenyong:'沉勇',
|
||||
dcchenyong_info:'结束阶段,你可以摸X张牌(X为本回合你使用过的牌的类型数)。',
|
||||
dc_sunchen:'孙綝',
|
||||
|
|
|
@ -7577,7 +7577,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(event.filterCard({name:'shan'},player,event)){
|
||||
list.push(['基本','','shan']);
|
||||
}
|
||||
return ui.create.dialog('朝凤',[list,'vcard'],'hidden');
|
||||
var dialog=ui.create.dialog('朝凤',[list,'vcard'],'hidden');
|
||||
dialog.direct=true;
|
||||
return dialog;
|
||||
},
|
||||
check:function(button){
|
||||
var player=_status.event.player;
|
||||
|
|
|
@ -46,7 +46,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
bulianshi:['female','wu',3,['old_anxu','zhuiyi']],
|
||||
handang:['male','wu',4,['gongji','jiefan']],
|
||||
fuhuanghou:['female','qun',3,['qiuyuan','zhuikong']],
|
||||
zhonghui:['male','wei',4,['quanji','zili']],
|
||||
zhonghui:['male','wei',4,['quanji','zili'],['clan:颍川钟氏']],
|
||||
jianyong:['male','shu',3,['qiaoshui','jyzongshi']],
|
||||
old_madai:['male','shu',4,['mashu','qianxi']],
|
||||
liufeng:['male','shu',4,['xiansi']],
|
||||
|
@ -72,7 +72,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
|
||||
caorui:['male','wei',3,['huituo','mingjian','xingshuai'],['zhu']],
|
||||
caoxiu:['male','wei',4,['qianju','qingxi']],
|
||||
zhongyao:['male','wei',3,['huomo','zuoding']],
|
||||
zhongyao:['male','wei',3,['huomo','zuoding'],['clan:颍川钟氏']],
|
||||
liuchen:['male','shu',4,['zhanjue','qinwang'],['zhu']],
|
||||
zhangyi:['male','shu',4,['wurong','shizhi']],
|
||||
sunxiu:['male','wu',3,['yanzhu','xingxue','xinzhaofu'],['zhu']],
|
||||
|
@ -12835,7 +12835,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
var dialog=ui.create.dialog(str,cards);
|
||||
dialog.videoId=id;
|
||||
},player,event.videoId,event.cards,event.name=='chengxiang'?13:12);
|
||||
},player,event.videoId,event.cards,event.name=='oldchengxiang'?12:13);
|
||||
event.time=get.utc();
|
||||
game.addVideo('showCards',player,['称象',get.cardsInfo(event.cards)]);
|
||||
game.addVideo('delay',null,2);
|
||||
|
@ -12849,7 +12849,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
return (num+get.number(button.link)<=_status.event.maxNum);
|
||||
});
|
||||
next.set('maxNum',event.name=='chengxiang'?13:12);
|
||||
next.set('maxNum',event.name=='oldchengxiang'?12:13);
|
||||
next.set('ai',function(button){
|
||||
return get.value(button.link,_status.event.player);
|
||||
});
|
||||
|
@ -12915,6 +12915,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
renxin:{
|
||||
trigger:{global:'damageBegin4'},
|
||||
audio:2,
|
||||
audioname:['re_caochong'],
|
||||
//priority:6,
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&event.player.hp==1&&player.countCards('he',{type:'equip'})>0;
|
||||
|
@ -13543,7 +13544,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
chengpu:['re_chengpu','tw_chengpu','ns_chengpu','chengpu','xin_chengpu'],
|
||||
liubiao:['re_liubiao','xin_liubiao','liubiao','oldre_liubiao','old_liubiao'],
|
||||
manchong:['re_manchong','manchong'],
|
||||
caochong:['caochong','old_caochong'],
|
||||
caochong:['re_caochong','caochong','old_caochong'],
|
||||
guohuai:['guohuai','tw_guohuai','re_guohuai','xin_guohuai','ol_guohuai'],
|
||||
jianyong:['re_jianyong','xin_jianyong','jianyong'],
|
||||
panzhangmazhong:['xin_panzhangmazhong','re_panzhangmazhong','panzhangmazhong'],
|
||||
|
@ -14103,8 +14104,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhiyan_info:'结束阶段,你可以令一名角色摸一张牌并展示之,若为装备牌,其使用此牌并回复一点体力。',
|
||||
miji_info:'结束阶段,若你已受伤,则可以摸X张牌,然后可以将等量的牌交给一名其他角色(X为你已损失的体力值)。',
|
||||
zhenlie_info:'当你成为其他角色使用【杀】或普通锦囊牌的目标后,你可以失去一点体力并令此牌对你无效,然后弃置对方一张牌。',
|
||||
chengxiang_info:'当你受到伤害后,你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于13的牌',
|
||||
oldchengxiang_info:'当你受到伤害后,你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于12的牌',
|
||||
chengxiang_info:'当你受到伤害后,你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于13的牌。',
|
||||
oldchengxiang_info:'当你受到伤害后,你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于12的牌。',
|
||||
renxin_info:'当体力值为1的一名其他角色受到伤害时,你可以将武将牌翻面并弃置一张装备牌,然后防止此伤害。',
|
||||
oldrenxin_info:'其他角色进入濒死状态时,你可以将所有手牌交给该角色并翻面,然后该角色回复1点体力。',
|
||||
jingce_info:'出牌阶段结束时,若你本回合使用的牌数量大于或等于你的当前体力值,你可以摸两张牌。',
|
||||
|
|
|
@ -11,7 +11,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
yangzhi:['female','jin',3,['xinwanyi','maihuo']],
|
||||
yangyan:['female','jin',3,['xinxuanbei','xianwan']],
|
||||
ol_huaxin:['male','wei',3,['caozhao','olxibing']],
|
||||
zhongyan:['female','jin',3,['bolan','yifa']],
|
||||
zhongyan:['female','jin',3,['bolan','yifa'],['clan:颍川钟氏']],
|
||||
weiguan:['male','jin',3,['zhongyun','shenpin']],
|
||||
cheliji:['male','qun',4,['chexuan','qiangshou']],
|
||||
simazhou:['male','jin',4,['recaiwang','naxiang']],
|
||||
|
|
132
game/game.js
|
@ -12402,6 +12402,7 @@
|
|||
next.setContent(info.content);
|
||||
next.skillHidden=event.skillHidden;
|
||||
if(info.forceDie) next.forceDie=true;
|
||||
if(event.skill=='_turnover') next.includeOut=true;
|
||||
"step 4"
|
||||
if(player._hookTrigger){
|
||||
for(var i=0;i<player._hookTrigger.length;i++){
|
||||
|
@ -13039,19 +13040,55 @@
|
|||
if(event.dialog&&typeof event.dialog=='object') event.dialog.close();
|
||||
var dialog=info.chooseButton.dialog(event,player);
|
||||
if(info.chooseButton.chooseControl){
|
||||
var next=player.chooseControl(info.chooseButton.chooseControl(event,player));
|
||||
next.dialog=dialog;
|
||||
next.set('ai',info.chooseButton.check||function(){return 0;});
|
||||
if(event.id) next._parent_id=event.id;
|
||||
next.type='chooseToUse_button';
|
||||
var choices=info.chooseButton.chooseControl(event,player);
|
||||
var choicesx=choices.slice(0);
|
||||
choicesx.remove('cancel2');
|
||||
if(choicesx.length==1&&dialog.direct||dialog.forceDirect){
|
||||
event._result={
|
||||
bool:true,
|
||||
control:choicesx[0],
|
||||
index:0,
|
||||
}
|
||||
}
|
||||
else{
|
||||
var next=player.chooseControl(choices);
|
||||
next.dialog=dialog;
|
||||
next.set('ai',info.chooseButton.check||function(){return 0;});
|
||||
if(event.id) next._parent_id=event.id;
|
||||
next.type='chooseToUse_button';
|
||||
}
|
||||
}
|
||||
else{
|
||||
var next=player.chooseButton(dialog);
|
||||
next.set('ai',info.chooseButton.check||function(){return 1;});
|
||||
next.set('filterButton',info.chooseButton.filter||function(){return true;});
|
||||
next.set('selectButton',info.chooseButton.select||1);
|
||||
if(event.id) next._parent_id=event.id;
|
||||
next.type='chooseToUse_button';
|
||||
var ai=info.chooseButton.check||function(){return 1;};
|
||||
var filterButton=info.chooseButton.filter||function(){return true};
|
||||
var selectButton=info.chooseButton.select||1;
|
||||
var chooseable=[];
|
||||
var evt=game.createEvent('emptyEvent');
|
||||
event.next.remove(evt);
|
||||
evt.parent=_status.event;
|
||||
evt.player=player;
|
||||
var tmpevt=_status.event;
|
||||
_status.event=evt;
|
||||
for(var i=0;i<dialog.buttons.length;i++){
|
||||
var btn=dialog.buttons[i];
|
||||
if(filterButton(btn,player)) chooseable.push(btn);
|
||||
}
|
||||
_status.event=tmpevt;
|
||||
if(chooseable.length==1&&dialog.direct||dialog.forceDirect){
|
||||
event._result={
|
||||
bool:true,
|
||||
buttons:chooseable[0],
|
||||
links:[chooseable[0].link],
|
||||
}
|
||||
}
|
||||
else{
|
||||
var next=player.chooseButton(dialog);
|
||||
next.set('ai',ai);
|
||||
next.set('filterButton',filterButton);
|
||||
next.set('selectButton',selectButton);
|
||||
if(event.id) next._parent_id=event.id;
|
||||
next.type='chooseToUse_button';
|
||||
}
|
||||
}
|
||||
event.buttoned=event.result.skill;
|
||||
}
|
||||
|
@ -13220,15 +13257,51 @@
|
|||
if(event.dialog&&typeof event.dialog=='object') event.dialog.close();
|
||||
var dialog=info.chooseButton.dialog(event,player);
|
||||
if(info.chooseButton.chooseControl){
|
||||
var next=player.chooseControl(info.chooseButton.chooseControl(event,player));
|
||||
next.dialog=dialog;
|
||||
next.set('ai',info.chooseButton.check||function(){return 0;});
|
||||
var choices=info.chooseButton.chooseControl(event,player);
|
||||
var choicesx=choices.slice(0);
|
||||
choicesx.remove('cancel2');
|
||||
if(choicesx.length==1&&dialog.direct||dialog.forceDirect){
|
||||
event._result={
|
||||
bool:true,
|
||||
control:choicesx[0],
|
||||
index:0,
|
||||
}
|
||||
}
|
||||
else{
|
||||
var next=player.chooseControl(choices);
|
||||
next.dialog=dialog;
|
||||
next.set('ai',info.chooseButton.check||function(){return 0;});
|
||||
}
|
||||
}
|
||||
else{
|
||||
var next=player.chooseButton(dialog);
|
||||
next.set('ai',info.chooseButton.check||function(){return 1;});
|
||||
next.set('filterButton',info.chooseButton.filter||function(){return true;});
|
||||
next.set('selectButton',info.chooseButton.select||1);
|
||||
var ai=info.chooseButton.check||function(){return 1;};
|
||||
var filterButton=info.chooseButton.filter||function(){return true};
|
||||
var selectButton=info.chooseButton.select||1;
|
||||
var chooseable=[];
|
||||
var evt=game.createEvent('emptyEvent');
|
||||
event.next.remove(evt);
|
||||
evt.parent=_status.event;
|
||||
evt.player=player;
|
||||
var tmpevt=_status.event;
|
||||
_status.event=evt;
|
||||
for(var i=0;i<dialog.buttons.length;i++){
|
||||
var btn=dialog.buttons[i];
|
||||
if(filterButton(btn,player)) chooseable.push(btn);
|
||||
}
|
||||
_status.event=tmpevt;
|
||||
if(chooseable.length==1&&dialog.direct||dialog.forceDirect){
|
||||
event._result={
|
||||
bool:true,
|
||||
buttons:chooseable[0],
|
||||
links:[chooseable[0].link],
|
||||
}
|
||||
}
|
||||
else{
|
||||
var next=player.chooseButton(dialog);
|
||||
next.set('ai',ai);
|
||||
next.set('filterButton',filterButton);
|
||||
next.set('selectButton',selectButton);
|
||||
}
|
||||
}
|
||||
event.buttoned=event.result.skill;
|
||||
}
|
||||
|
@ -19232,6 +19305,7 @@
|
|||
dead:this.isDead(),
|
||||
linked:this.isLinked(),
|
||||
turnedover:this.isTurnedOver(),
|
||||
out:this.isOut(),
|
||||
phaseNumber:this.phaseNumber,
|
||||
unseen:this.isUnseen(0),
|
||||
unseen2:this.isUnseen(1),
|
||||
|
@ -22429,6 +22503,7 @@
|
|||
}
|
||||
var next=game.createEvent('turnOver');
|
||||
next.player=this;
|
||||
next.includeOut=true;
|
||||
next.setContent('turnOver');
|
||||
return next;
|
||||
},
|
||||
|
@ -28773,7 +28848,7 @@
|
|||
},
|
||||
},
|
||||
_showHiddenCharacter:{
|
||||
trigger:{player:['changeHp','phaseBeginStart','loseMaxHpBegin']},
|
||||
trigger:{player:['changeHp','phaseBeginStart','loseMaxHpBegin','gainMaxHpBegin']},
|
||||
firstDo:true,
|
||||
forced:true,
|
||||
popup:false,
|
||||
|
@ -29718,10 +29793,10 @@
|
|||
giveup:function(player){
|
||||
if(lib.node.observing.contains(this)||!player||!player._giveUp) return;
|
||||
_status.event.next.length=0;
|
||||
game.createEvent('giveup',false).setContent(function(){
|
||||
game.createEvent('giveup',false).set('includeOut',true).setContent(function(){
|
||||
game.log(player,'投降');
|
||||
player.popup('投降');
|
||||
player.die('nosource');
|
||||
player.die('nosource').includeOut=true;
|
||||
}).player=player;
|
||||
},
|
||||
auto:function(){
|
||||
|
@ -30302,6 +30377,7 @@
|
|||
}
|
||||
else{
|
||||
player.init(info.name1,info.name2);
|
||||
if(info.name&&info.name!=info.name1) player.name=info.name;
|
||||
}
|
||||
if(!info.unseen) player.classList.remove('unseen');
|
||||
if(!info.unseen2) player.classList.remove('unseen2');
|
||||
|
@ -30341,6 +30417,9 @@
|
|||
if(info.turnedover){
|
||||
player.classList.add('turnedover');
|
||||
}
|
||||
if(info.out){
|
||||
player.classList.add('out');
|
||||
}
|
||||
if(info.disableJudge){
|
||||
player.$disableJudge();
|
||||
}
|
||||
|
@ -34062,7 +34141,7 @@
|
|||
}
|
||||
},
|
||||
createTrigger:function(name,skill,player,event){
|
||||
if(player.isOut()||player.removed) return;
|
||||
if((player.isOut()||player.removed)&&skill!='_turnover') return;
|
||||
if(player.isDead()&&!lib.skill[skill].forceDie) return;
|
||||
var next=game.createEvent('trigger',false);
|
||||
next.skill=skill;
|
||||
|
@ -34070,6 +34149,7 @@
|
|||
next.triggername=name;
|
||||
next.forceDie=true;
|
||||
next._trigger=event;
|
||||
if(skill=='_turnover') next.includeOut=true;
|
||||
next.setContent('createTrigger');
|
||||
},
|
||||
createEvent:function(name,trigger,triggerevent){
|
||||
|
@ -45460,10 +45540,10 @@
|
|||
}
|
||||
else{
|
||||
_status.event.next.length=0;
|
||||
game.createEvent('giveup',false).setContent(function(){
|
||||
game.createEvent('giveup',false).set('includeOut',true).setContent(function(){
|
||||
game.log(player,'投降');
|
||||
player.popup('投降');
|
||||
player.die('nosource');
|
||||
player.die('nosource').includeOut=true;
|
||||
}).player=player;
|
||||
}
|
||||
if(_status.paused&&_status.imchoosing&&!_status.auto){
|
||||
|
@ -50524,7 +50604,7 @@
|
|||
}
|
||||
// ui.click.skin(this,player.name);
|
||||
game.pause2();
|
||||
ui.click.charactercard(player.name,null,null,true,this);
|
||||
ui.click.charactercard(player.name1||player.name,null,null,true,this);
|
||||
},
|
||||
avatar2:function(){
|
||||
if(!lib.config.doubleclick_intro) return;
|
||||
|
@ -50770,7 +50850,7 @@
|
|||
}
|
||||
game.uncheck();
|
||||
game.check();
|
||||
if(event.skillDialog){
|
||||
if(event.skillDialog===true){
|
||||
var str=get.translation(skill);
|
||||
if(info.prompt){
|
||||
var str2;
|
||||
|
|
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 29 KiB |