Sunflower
This commit is contained in:
parent
3092b87111
commit
34d1c820e3
|
@ -1735,11 +1735,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
});
|
||||
next.logSkill='guanshi_skill';
|
||||
next.set('ai',function(card){
|
||||
var evt=_status.event.getParent();
|
||||
if(get.attitude(evt.player,evt._trigger.target)<0){
|
||||
if(evt.player.hasSkill('jiu')||
|
||||
evt.player.hasSkill('tianxianjiu')||
|
||||
evt._trigger.target.hp==1){
|
||||
var evt=_status.event.getTrigger();
|
||||
if(get.attitude(evt.player,evt.target)<0){
|
||||
if(evt.baseDamage+evt.extraDamage>=Math.min(2,evt.target.hp)){
|
||||
return 8-get.value(card)
|
||||
}
|
||||
return 5-get.value(card)
|
||||
|
|
|
@ -57,6 +57,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_kaori:['female','key','3/4',['kaori_siyuan']],
|
||||
key_akiko:['female','key',3,['akiko_dongcha']],
|
||||
key_abyusa:['female','key',3,['abyusa_jueqing','abyusa_dunying']],
|
||||
key_godan:['male','key',6,['godan_yuanyi','godan_feiqu','godan_xiaoyuan']],
|
||||
|
||||
key_kud:['female','key',3,['kud_qiaoshou','kud_buhui']],
|
||||
key_misuzu:['female','key',3,['misuzu_hengzhou','misuzu_nongyin','misuzu_zhongxing']],
|
||||
|
@ -151,7 +152,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","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa"],
|
||||
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","key_akiko","key_abyusa","key_godan"],
|
||||
diy_yongjian:["ns_chendao","yj_caoang"],
|
||||
},
|
||||
},
|
||||
|
@ -167,6 +168,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
|
||||
},
|
||||
characterTitle:{
|
||||
key_godan:'#rAngel Beats!',
|
||||
key_abyusa:'#rAngel Beats!',
|
||||
key_akiko:'#bKanon',
|
||||
key_kaori:'#bKanon',
|
||||
|
@ -319,6 +321,38 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_lucia:['key_shizuru'],
|
||||
},
|
||||
skill:{
|
||||
godan_yuanyi:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
forced:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
var num=game.roundNumber;
|
||||
if(num&&typeof num=='number') player.draw(Math.min(3,num));
|
||||
'step 1'
|
||||
var next=player.phaseUse();
|
||||
event.next.remove(next);
|
||||
trigger.next.push(next);
|
||||
},
|
||||
},
|
||||
godan_feiqu:{
|
||||
inherit:'doruji_feiqu',
|
||||
},
|
||||
godan_xiaoyuan:{
|
||||
trigger:{player:'changeHp'},
|
||||
forced:true,
|
||||
juexingji:true,
|
||||
skillAnimation:true,
|
||||
animationColor:'soil',
|
||||
filter:function(event,player){
|
||||
return event.num<0&&player.hp<4;
|
||||
},
|
||||
content:function(){
|
||||
player.awakenSkill('godan_xiaoyuan');
|
||||
player.loseMaxHp(3);
|
||||
player.draw(3);
|
||||
player.removeSkill('godan_feiqu');
|
||||
},
|
||||
},
|
||||
abyusa_jueqing:{
|
||||
audio:'jueqing',
|
||||
trigger:{source:'damageBegin2'},
|
||||
|
@ -4291,7 +4325,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ai:{
|
||||
effect:{
|
||||
player:function(card,player,target){
|
||||
if(get.attitude(player,target)>0&&get.tag(card,'damage')) return 'zeroplayertarget';
|
||||
if(target&&get.attitude(player,target)>0&&get.tag(card,'damage')) return 'zeroplayertarget';
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -10325,6 +10359,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_kaori:'美坂香里',
|
||||
key_akiko:'水濑秋子',
|
||||
key_abyusa:'游佐',
|
||||
key_godan:'松下护騨',
|
||||
lucia_duqu:'毒躯',
|
||||
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
|
||||
lucia_zhenren:'振刃',
|
||||
|
@ -10567,6 +10602,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
abyusa_jueqing_rewrite_info:'锁定技,你即将造成的伤害均视为失去体力。',
|
||||
abyusa_dunying:'遁影',
|
||||
abyusa_dunying_info:'锁定技,其他角色计算与你的距离时+X。准备阶段和结束阶段,你摸X张牌(X为你已损失的体力值)。',
|
||||
godan_yuanyi:'远忆',
|
||||
godan_yuanyi_info:'锁定技,回合开始时,你摸X张牌并进行一个额外的出牌阶段。(X为游戏轮数且至多为3)',
|
||||
godan_feiqu:'肥躯',
|
||||
godan_feiqu_info:'锁定技,当你使用【杀】时,或你成为【杀】的目标后,你令此【杀】不可被响应。',
|
||||
godan_xiaoyuan:'消元',
|
||||
godan_xiaoyuan_info:'觉醒技,当你扣减体力时,若你的体力值小于4,则你减3点体力上限并摸三张牌,失去【肥躯】。',
|
||||
|
||||
key_kud:'库特莉亚芙卡',
|
||||
kud_qiaoshou:'巧手',
|
||||
|
|
|
@ -5615,7 +5615,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
shixin:'释衅',
|
||||
shixin_info:'锁定技,当你受到火属性伤害时,你防止此伤害。',
|
||||
zhaohuo:'招祸',
|
||||
zhaohuo_info:'锁定技,当其他角色进入濒死状态时,你将体力上限调整为1点。若你的体力上限因此减少,则你摸一张牌。(X为你以此法减少的体力上限)',
|
||||
zhaohuo_info:'锁定技,当其他角色进入濒死状态时,你将体力上限调整为1点。若你的体力上限因此减少,则你摸X张牌。(X为你以此法减少的体力上限)',
|
||||
yixiang:'义襄',
|
||||
yixiang_info:'每名角色的回合限一次,当你成为一名角色使用牌的目标后,若该角色的体力值大于你的体力值,你可以随机获得牌堆里的一张你没有的基本牌。',
|
||||
yirang:'揖让',
|
||||
|
|
|
@ -2407,7 +2407,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
mod:{
|
||||
judge:function(player,result){
|
||||
if(_status.event.card&&_status.event.card.name=='lebu'&&player.countMark('sishu2')%2==1){
|
||||
if(_status.event.cardname=='lebu'&&player.countMark('sishu2')%2==1){
|
||||
if(result.bool==false){
|
||||
result.bool=true;
|
||||
}
|
||||
|
@ -4249,11 +4249,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
"new_repaoxiao":{
|
||||
audio:"paoxiao",
|
||||
inherit:"paoxiao",
|
||||
firstDo:true,
|
||||
audioname2:{old_guanzhang:'old_fuhun'},
|
||||
audioname:['re_zhangfei','guanzhang','xiahouba'],
|
||||
trigger:{player:'useCard1'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return (!event.audioed||!player.hasSkill('new_repaoxiao2'))&&event.card.name=='sha';
|
||||
},
|
||||
content:function(){
|
||||
trigger.audioed=true;
|
||||
player.addTempSkill('new_repaoxiao2');
|
||||
},
|
||||
mod:{
|
||||
targetInRange:function (card,player){
|
||||
if(card.name=='sha'&&get.cardCount({name:'sha'},player)>0) return true;
|
||||
},
|
||||
cardUsable:function (card,player,num){
|
||||
if(card.name=='sha') return Infinity;
|
||||
},
|
||||
|
@ -4267,6 +4275,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
},
|
||||
new_repaoxiao2:{
|
||||
charlotte:true,
|
||||
mod:{
|
||||
targetInRange:function (card,player){
|
||||
if(card.name=='sha') return true;
|
||||
},
|
||||
},
|
||||
},
|
||||
"new_tishen":{
|
||||
trigger:{
|
||||
player:"phaseUseEnd",
|
||||
|
@ -6975,9 +6991,41 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return true;
|
||||
},
|
||||
prompt:'将一张黑桃手牌当酒使用',
|
||||
check:function(card){
|
||||
check:function(cardx){
|
||||
if(_status.event.type=='dying') return 1;
|
||||
return 4-get.value(card);
|
||||
var player=_status.event.player;
|
||||
var shas=player.getCards('h','sha');
|
||||
if(shas.length>1&&(player.getCardUsable('sha')>1||player.countCards('h','zhuge'))){
|
||||
return 0;
|
||||
}
|
||||
shas.sort(function(a,b){
|
||||
return get.order(b)-get.order(a);
|
||||
});
|
||||
var card;
|
||||
if(shas.length){
|
||||
for(var i=0;i<shas.length;i++){
|
||||
if(shas[i]!=cardx&&lib.filter.filterCard(shas[i],player)){
|
||||
card=shas[i];break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(card){
|
||||
if(game.hasPlayer(function(current){
|
||||
return (get.attitude(player,current)<0&&
|
||||
!current.hasShan()
|
||||
&¤t.hp+current.countCards('h',{name:['tao','jiu']})>1+(player.storage.jiu||0)
|
||||
&&player.canUse(card,current,true,true)&&
|
||||
!current.hasSkillTag('filterDamage',null,{
|
||||
player:player,
|
||||
card:card,
|
||||
jiu:true,
|
||||
})&&
|
||||
get.effect(current,card,player)>0);
|
||||
})){
|
||||
return 4-get.value(cardx);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
},
|
||||
ai:{
|
||||
skillTagFilter:function(player){
|
||||
|
|
|
@ -15,7 +15,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
character:{
|
||||
old_zhoutai:['male','wu',4,['gzbuqu']],
|
||||
old_zhoutai:['male','wu',4,['buqu','new_fenji']],
|
||||
old_caoren:['male','wei',4,['moon_jushou','jiewei']],
|
||||
xuhuang:['male','wei',4,['gzduanliang']],
|
||||
re_pangde:['male','qun',4,['mashu','jianchu']],
|
||||
|
@ -816,11 +816,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
var num=player.getStat('damage');
|
||||
var num=0;
|
||||
player.getHistory('sourceDamage',function(evt){
|
||||
if(evt.getParent('phaseUse')==event) num+=evt.num;
|
||||
});
|
||||
return !num||num>1;
|
||||
},
|
||||
content:function(){
|
||||
var numx=player.getStat('damage');
|
||||
var numx=0;
|
||||
player.getHistory('sourceDamage',function(evt){
|
||||
if(evt.getParent('phaseUse')==trigger) numx+=evt.num;
|
||||
});
|
||||
if(!numx){
|
||||
var num=player.hp-player.countCards('h');
|
||||
if(num>0) player.draw(num);
|
||||
|
@ -2719,8 +2725,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
shaRelated:true,
|
||||
mod:{
|
||||
targetInRange:function(card,player,target){
|
||||
if(card.name=='sha'&&card.number){
|
||||
if(get.distance(player,target)<=card.number) return true;
|
||||
if(card.name=='sha'&&typeof get.number(card)=='number'){
|
||||
if(get.distance(player,target)<=get.number(card)) return true;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -6502,6 +6508,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
trigger[trigger.name=='gain'?'source':'player'].draw(2);
|
||||
},
|
||||
},
|
||||
new_fenji:{
|
||||
audio:"fenji",
|
||||
trigger:{
|
||||
global:"phaseJieshuBegin",
|
||||
},
|
||||
filter:function (event,player){
|
||||
if(event.player.countCards('h')==0&&event.player.isAlive()) return true;
|
||||
return false;
|
||||
},
|
||||
check:function (event,player){
|
||||
return get.attitude(player,event.player)>2;
|
||||
},
|
||||
content:function (){
|
||||
player.line(trigger.player,'green');
|
||||
trigger.player.draw(2);
|
||||
player.loseHp();
|
||||
},
|
||||
},
|
||||
leiji:{
|
||||
audio:2,
|
||||
trigger:{player:['useCard','respond']},
|
||||
|
@ -7530,6 +7554,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
guhuo_info:'每名角色的回合限一次,你可以扣置一张手牌当一张基本牌或普通锦囊牌使用或打出。其他角色依次选择是否质疑。一旦有其他角色质疑则翻开此牌:若为假则此牌作废,若为真,则质疑角色获得技能“缠怨”(锁定技,你不能质疑于吉,只要你的体力值为1,你失去你的武将技能)',
|
||||
fenji_info:'当一名角色的手牌被其他角色弃置或获得后,你可以失去1点体力,然后令该角色摸两张牌。',
|
||||
|
||||
new_fenji:"奋激",
|
||||
new_fenji_info:"一名角色的结束阶段开始时,若其没有手牌,你可以令其摸两张牌,然后你失去1点体力。",
|
||||
gzduanliang:'断粮',
|
||||
gzduanliang_info:'你可以将一张黑色基本牌或黑色装备牌当【兵粮寸断】使用;你可以对距离为2的角色使用【兵粮寸断】',
|
||||
"xinfu_guhuo":"蛊惑",
|
||||
|
|
114
character/sp.js
114
character/sp.js
|
@ -879,62 +879,57 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xinjingong:{
|
||||
audio:'jingong',
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return player.countCards('he',function(card){
|
||||
return event.xinjingong_list&&player.countCards('he',function(card){
|
||||
return card.name=='sha'||get.type(card)=='equip';
|
||||
});
|
||||
},
|
||||
delay:false,
|
||||
usable:1,
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=get.inpile('trick').randomGets(2);
|
||||
if(Math.random()<0.5){
|
||||
list.push('wy_meirenji');
|
||||
onChooseToUse:function(event){
|
||||
if(!game.online){
|
||||
var evt=event.getParent();
|
||||
if(evt.name!='phaseUse') return;
|
||||
if(!evt.xinjingong_list){
|
||||
var list=get.inpile('trick').randomGets(2);
|
||||
if(Math.random()<0.5){
|
||||
list.push('wy_meirenji');
|
||||
}
|
||||
else{
|
||||
list.push('wy_xiaolicangdao');
|
||||
}
|
||||
evt.xinjingong_list=list;
|
||||
}
|
||||
if(!event.xinjingong_list) event.set('xinjingong_list',evt.xinjingong_list);
|
||||
}
|
||||
else{
|
||||
list.push('wy_xiaolicangdao');
|
||||
}
|
||||
for(var i=0;i<list.length;i++){
|
||||
list[i]=['锦囊','',list[i]];
|
||||
}
|
||||
player.chooseButton(['矜功',[list,'vcard']]).set('filterButton',function(button,player){
|
||||
return game.hasPlayer(function(current){
|
||||
return player.canUse(button.link[2],current,true,false);
|
||||
});
|
||||
}).set('ai',function(button){
|
||||
var player=_status.event.player;
|
||||
return player.getUseValue(button.link[2]);
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var name=result.links[0][2];
|
||||
event.fakecard={name:name};
|
||||
player.chooseCardTarget({
|
||||
},
|
||||
chooseButton:{
|
||||
dialog:function(event,player){
|
||||
var list=[];
|
||||
for(var i of event.xinjingong_list) list.push(['锦囊','',i]);
|
||||
return ui.create.dialog('矜功',[list,'vcard']);
|
||||
},
|
||||
filter:function(button,player){
|
||||
return lib.filter.filterCard({name:button.link[2]},player,_status.event.getParent());
|
||||
},
|
||||
check:function(button){
|
||||
return _status.event.player.getUseValue({name:button.link[2]});
|
||||
},
|
||||
backup:function(links,player){
|
||||
return {
|
||||
audio:'xinjingong',
|
||||
filterCard:true,
|
||||
position:'he',
|
||||
viewAs:{name:links[0][2]},
|
||||
check:function(card){
|
||||
return 6-get.value(card);
|
||||
},
|
||||
filterCard:function(card){
|
||||
return card.name=='sha'||get.type(card)=='equip';
|
||||
},
|
||||
position:'he',
|
||||
filterTarget:lib.filter.filterTarget,
|
||||
selectTarget:lib.filter.selectTarget,
|
||||
ai1:function(card){
|
||||
return 7-get.value(card);
|
||||
},
|
||||
ai2:function(target){
|
||||
var card=_status.event.fakecard;
|
||||
var player=_status.event.player;
|
||||
return get.effect(target,card,player,player);
|
||||
},
|
||||
_get_card:event.fakecard,
|
||||
prompt:'将一张装备牌或【杀】当作'+get.translation(name)+'使用'
|
||||
}).set('fakecard',event.fakecard);
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
if(result.bool){
|
||||
player.useCard(event.fakecard,result.cards,result.targets);
|
||||
};
|
||||
},
|
||||
prompt:function(links,player){
|
||||
return '将一张【杀】或装备牌当做'+get.translation(links[0][2])+'使用';
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
|
@ -5236,6 +5231,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
info.audioname2.old_yuanshu='weidi';
|
||||
}
|
||||
},map.skills);
|
||||
'step 3'
|
||||
if(player.isMinHp()) player.recover();
|
||||
},
|
||||
},
|
||||
refanghun:{
|
||||
|
@ -9779,8 +9776,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
filter:function(event,player){
|
||||
if(player.countCards('he')==0) return false;
|
||||
if(event.card.name=='sha') return true;
|
||||
var type=get.type(event.card,'trick');
|
||||
return type=='trick';
|
||||
return get.type(event.card)=='trick';
|
||||
},
|
||||
autodelay:true,
|
||||
content:function(){
|
||||
|
@ -10328,8 +10324,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
check:function(card){return 6-get.value(card)},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=lib.group.slice(0);
|
||||
list.remove('shen');
|
||||
var list=lib.group.filter(function(group){
|
||||
return ['wei','shu','wu','qun'].contains(group)||game.hasPlayer(function(current){
|
||||
return current.group==group;
|
||||
})
|
||||
});
|
||||
if(player.storage.xiemu2) list.removeArray(player.storage.xiemu2);
|
||||
var list2=list.slice(0);
|
||||
list2.sort(function(a,b){
|
||||
|
@ -11143,19 +11142,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
qiangwu3:{
|
||||
mod:{
|
||||
aiOrder:function(player,card,num){
|
||||
if(card.name=='sha'&&card.number>player.storage.qiangwu) return num+2;
|
||||
if(card.name=='sha'&&get.number(card)>player.storage.qiangwu) return num+2;
|
||||
},
|
||||
targetInRange:function(card,player){
|
||||
if(_status.currentPhase==player&&card.name=='sha'&&card.number<player.storage.qiangwu) return true;
|
||||
if(_status.currentPhase==player&&card.name=='sha'&&get.number(card)<player.storage.qiangwu) return true;
|
||||
},
|
||||
cardUsable:function(card,player){
|
||||
if(_status.currentPhase==player&&card.name=='sha'&&card.number>player.storage.qiangwu) return Infinity;
|
||||
if(_status.currentPhase==player&&card.name=='sha'&&get.number(card)>player.storage.qiangwu) return Infinity;
|
||||
}
|
||||
},
|
||||
trigger:{player:'useCard1'},
|
||||
filter:function(event,player){
|
||||
if(_status.currentPhase==player&&event.card.name=='sha'&&
|
||||
event.card.number>player.storage.qiangwu&&event.addCount!==false) return true;
|
||||
get.number(event.card)>player.storage.qiangwu&&event.addCount!==false) return true;
|
||||
return false;
|
||||
},
|
||||
forced:true,
|
||||
|
@ -15194,7 +15193,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
canshi_info:'摸牌阶段开始时,你可以改为摸X张牌(X为已受伤的角色数),若如此做,当你于此回合内使用基本牌或锦囊牌时,你弃置一张牌。',
|
||||
recanshi:'残蚀',
|
||||
recanshi2:'残蚀',
|
||||
recanshi_info:'摸牌阶段开始时,你可以多摸X张牌(X为已受伤的角色数),若如此做,当你于此回合内使用【杀】或锦囊牌时,你弃置一张牌。',
|
||||
recanshi_info:'摸牌阶段开始时,你可以多摸X张牌(X为已受伤的角色数),若如此做,当你于此回合内使用【杀】或普通锦囊牌时,你弃置一张牌。',
|
||||
zhuiji_info:'锁定技,你与体力值不大于你的角色的距离视为1。',
|
||||
kunfen:'困奋',
|
||||
kunfen_info:'锁定技,结束阶段开始时,你失去1点体力,然后摸两张牌。',
|
||||
|
@ -15317,6 +15316,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xinmoucheng:'谋逞',
|
||||
xinmoucheng_info:'觉醒技,准备阶段,若你已经发动了3次以上的〖连计〗,则你失去〖连计〗并获得〖矜功〗。',
|
||||
xinjingong:'矜功',
|
||||
xinjingong_backup:'矜功',
|
||||
xinjingong_info:'出牌阶段限一次,你可以将一张【杀】或装备牌当做三张随机锦囊牌中的一张使用。',
|
||||
caiyang:'蔡阳',
|
||||
yinka:'印卡',
|
||||
|
|
|
@ -3139,14 +3139,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
pingjian_temp:{
|
||||
onremove:true,
|
||||
trigger:{player:'useSkillAfter'},
|
||||
trigger:{player:['useSkillBegin','useCard1']},
|
||||
silent:true,
|
||||
firstDo:true,
|
||||
filter:function(event,player){
|
||||
return event.skill==player.storage.pingjian_temp;
|
||||
if(!lib.skill[event.skill]) return false;
|
||||
if(event.skill==player.storage.pingjian_temp) return true;
|
||||
if(lib.skill[event.skill].sourceSkill==player.storage.pingjian_temp) return true;
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
player.removeSkill(trigger.skill);
|
||||
player.removeSkill(player.storage.pingjian_temp);
|
||||
player.removeSkill('pingjian_temp');
|
||||
},
|
||||
},
|
||||
|
@ -3999,14 +4002,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=[];
|
||||
for(var i=0;i<lib.group.length;i++){
|
||||
if(lib.group[i]=='shen') continue;
|
||||
if(lib.group[i]=='western'&&!game.hasPlayer(function(current){
|
||||
return current.group=='western'
|
||||
})) continue;
|
||||
list.push(lib.group[i]);
|
||||
}
|
||||
var list=lib.group.filter(function(group){
|
||||
return ['wei','shu','wu','qun'].contains(group)||game.hasPlayer(function(current){
|
||||
return current.group==group;
|
||||
})
|
||||
});
|
||||
player.chooseControl(list).set('prompt','秉诏:请选择一个势力').set('ai',function(){
|
||||
var listx=list.slice(0);
|
||||
list.sort(function(a,b){
|
||||
|
|
|
@ -7851,7 +7851,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
trigger:{player:'phaseUseEnd'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player.getStat().skill.yanyu>=2;
|
||||
return player.getHistory('lose',function(evt){
|
||||
var evt2=evt.getParent();
|
||||
return evt2.name=='useSkill'&&evt2.skill=='yanyu'&&evt.getParent(3)==event;
|
||||
}).length>=2;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
|
@ -12452,7 +12455,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhiyu:'智愚',
|
||||
qice:'奇策',
|
||||
qice_backup:'奇策',
|
||||
jiangchi:'将弛',
|
||||
jiangchi:'将驰',
|
||||
jiangchi_less:'少摸一张',
|
||||
jiangchi_more:'多摸一张',
|
||||
zishou:'自守',
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'v1.9.104.1',
|
||||
'v1.9.105.1',
|
||||
'audio/background/aozhan_chaoming.mp3',
|
||||
'audio/background/aozhan_online.mp3',
|
||||
'audio/background/aozhan_rewrite.mp3',
|
||||
|
@ -3379,6 +3379,7 @@ window.noname_asset_list=[
|
|||
'image/character/xin_caozhang.jpg',
|
||||
'image/character/xin_gongsunzan.jpg',
|
||||
'image/character/xin_liaohua.jpg',
|
||||
'image/character/key_godan.jpg',
|
||||
|
||||
'image/character/baiwuchang.jpg',
|
||||
'image/character/baosanniang.jpg',
|
||||
|
|
|
@ -126,10 +126,10 @@ window.config={
|
|||
right_click:'pause',
|
||||
sort:'type_sort',
|
||||
|
||||
cards:['standard','ex','extra','sp','classic','basic','zhulu'],
|
||||
cards:['standard','ex','extra','sp','classic','basic'],
|
||||
characters:['standard','shenhua','sp','sp2','yijiang','refresh','xinghuoliaoyuan','mobile','extra'],
|
||||
connect_characters:[],
|
||||
connect_cards:[],
|
||||
connect_characters:['diy'],
|
||||
connect_cards:['huanlekapai','guozhan','sp','zhulu'],
|
||||
plays:[],
|
||||
extensions:[],
|
||||
banned:[],
|
||||
|
|
614
game/game.js
614
game/game.js
|
@ -837,23 +837,23 @@
|
|||
}
|
||||
},
|
||||
// fewplayer:{
|
||||
// name:'启用人数',
|
||||
// name:'启用人数',
|
||||
// intro:'设置启用新版布局的最小人数(不足时切换至默认布局)',
|
||||
// init:'3',
|
||||
// // unfrequent:true,
|
||||
// item:{
|
||||
// '2':'两人',
|
||||
// '3':'三人',
|
||||
// '4':'四人',
|
||||
// '5':'五人',
|
||||
// '6':'六人',
|
||||
// '7':'七人',
|
||||
// '8':'八人',
|
||||
// },
|
||||
// onclick:function(item){
|
||||
// game.saveConfig('fewplayer',item);
|
||||
// if(ui.arena) ui.arena.setNumber(ui.arena.dataset.number);
|
||||
// }
|
||||
// init:'3',
|
||||
// // unfrequent:true,
|
||||
// item:{
|
||||
// '2':'两人',
|
||||
// '3':'三人',
|
||||
// '4':'四人',
|
||||
// '5':'五人',
|
||||
// '6':'六人',
|
||||
// '7':'七人',
|
||||
// '8':'八人',
|
||||
// },
|
||||
// onclick:function(item){
|
||||
// game.saveConfig('fewplayer',item);
|
||||
// if(ui.arena) ui.arena.setNumber(ui.arena.dataset.number);
|
||||
// }
|
||||
// },
|
||||
player_height:{
|
||||
name:'角色高度',
|
||||
|
@ -3772,43 +3772,43 @@
|
|||
// onclick:function(){
|
||||
// if(this.innerHTML!='已隐藏'){
|
||||
// this.innerHTML='已隐藏';
|
||||
// var pack=lib.config.all.cards.slice(0);
|
||||
// if(Array.isArray(lib.config.hiddenCardPack)){
|
||||
// for(var i=0;i<lib.config.hiddenCardPack.length;i++){
|
||||
// pack.add(lib.config.hiddenCardPack[i]);
|
||||
// }
|
||||
// }
|
||||
// for(var i=0;i<pack.length;i++){
|
||||
// if(lib.config.all.sgscards.contains(pack[i])){
|
||||
// pack.splice(i--,1);
|
||||
// }
|
||||
// }
|
||||
// var pack=lib.config.all.cards.slice(0);
|
||||
// if(Array.isArray(lib.config.hiddenCardPack)){
|
||||
// for(var i=0;i<lib.config.hiddenCardPack.length;i++){
|
||||
// pack.add(lib.config.hiddenCardPack[i]);
|
||||
// }
|
||||
// }
|
||||
// for(var i=0;i<pack.length;i++){
|
||||
// if(lib.config.all.sgscards.contains(pack[i])){
|
||||
// pack.splice(i--,1);
|
||||
// }
|
||||
// }
|
||||
// game.saveConfig('hiddenCardPack',pack);
|
||||
//
|
||||
// var pack=lib.config.all.characters.slice(0);
|
||||
// if(Array.isArray(lib.config.hiddenCharacterPack)){
|
||||
// for(var i=0;i<lib.config.hiddenCharacterPack.length;i++){
|
||||
// pack.add(lib.config.hiddenCharacterPack[i]);
|
||||
// }
|
||||
// }
|
||||
// for(var i=0;i<pack.length;i++){
|
||||
// if(lib.config.all.sgscharacters.contains(pack[i])){
|
||||
// pack.splice(i--,1);
|
||||
// }
|
||||
// }
|
||||
// var pack=lib.config.all.characters.slice(0);
|
||||
// if(Array.isArray(lib.config.hiddenCharacterPack)){
|
||||
// for(var i=0;i<lib.config.hiddenCharacterPack.length;i++){
|
||||
// pack.add(lib.config.hiddenCharacterPack[i]);
|
||||
// }
|
||||
// }
|
||||
// for(var i=0;i<pack.length;i++){
|
||||
// if(lib.config.all.sgscharacters.contains(pack[i])){
|
||||
// pack.splice(i--,1);
|
||||
// }
|
||||
// }
|
||||
// game.saveConfig('hiddenCharacterPack',pack);
|
||||
//
|
||||
// var pack=lib.config.all.mode.slice(0);
|
||||
// if(Array.isArray(lib.config.hiddenModePack)){
|
||||
// for(var i=0;i<lib.config.hiddenModePack.length;i++){
|
||||
// pack.add(lib.config.hiddenModePack[i]);
|
||||
// }
|
||||
// }
|
||||
// for(var i=0;i<pack.length;i++){
|
||||
// if(lib.config.all.sgsmodes.contains(pack[i])){
|
||||
// pack.splice(i--,1);
|
||||
// }
|
||||
// }
|
||||
// var pack=lib.config.all.mode.slice(0);
|
||||
// if(Array.isArray(lib.config.hiddenModePack)){
|
||||
// for(var i=0;i<lib.config.hiddenModePack.length;i++){
|
||||
// pack.add(lib.config.hiddenModePack[i]);
|
||||
// }
|
||||
// }
|
||||
// for(var i=0;i<pack.length;i++){
|
||||
// if(lib.config.all.sgsmodes.contains(pack[i])){
|
||||
// pack.splice(i--,1);
|
||||
// }
|
||||
// }
|
||||
// game.saveConfig('hiddenModePack',pack);
|
||||
//
|
||||
// var that=this;
|
||||
|
@ -9885,14 +9885,14 @@
|
|||
var info=get.info(card);
|
||||
var range;
|
||||
if(!info.notarget){
|
||||
var select=get.copy(info.selectTarget);
|
||||
if(select==undefined){
|
||||
range=[1,1];
|
||||
}
|
||||
else if(typeof select=='number') range=[select,select];
|
||||
else if(get.itemtype(select)=='select') range=select;
|
||||
else if(typeof select=='function') range=select(card,player);
|
||||
game.checkMod(card,player,range,'selectTarget',player);
|
||||
var select=get.copy(info.selectTarget);
|
||||
if(select==undefined){
|
||||
range=[1,1];
|
||||
}
|
||||
else if(typeof select=='number') range=[select,select];
|
||||
else if(get.itemtype(select)=='select') range=select;
|
||||
else if(typeof select=='function') range=select(card,player);
|
||||
game.checkMod(card,player,range,'selectTarget',player);
|
||||
}
|
||||
if(info.notarget||range[1]==-1){
|
||||
if(!info.notarget&&range[1]==-1){
|
||||
|
@ -10142,7 +10142,8 @@
|
|||
cardsGotoOrdering:function(){
|
||||
game.getGlobalHistory().cardMove.push(event);
|
||||
for(var i=0;i<cards.length;i++){
|
||||
cards[i].goto(ui.ordering);
|
||||
cards[i].fix();
|
||||
ui.ordering.appendChild(cards[i]);
|
||||
}
|
||||
var evt=event.relatedEvent||event.getParent();
|
||||
if(!evt.orderingCards) evt.orderingCards=[];
|
||||
|
@ -10337,9 +10338,9 @@
|
|||
}
|
||||
player.ai.tempIgnore=[];
|
||||
_status.globalHistory.push({
|
||||
cardMove:[],
|
||||
custom:[],
|
||||
});
|
||||
cardMove:[],
|
||||
custom:[],
|
||||
});
|
||||
game.countPlayer2(function(current){
|
||||
current.actionHistory.push({useCard:[],respond:[],skipped:[],lose:[],gain:[],sourceDamage:[],damage:[],custom:[]});
|
||||
current.stat.push({card:{},skill:{}});
|
||||
|
@ -14261,7 +14262,7 @@
|
|||
// game.playAudio('effect','draw');
|
||||
// }
|
||||
// game.broadcast(function(){
|
||||
// if(lib.config.background_audio){
|
||||
// if(lib.config.background_audio){
|
||||
// game.playAudio('effect','draw');
|
||||
// }
|
||||
// });
|
||||
|
@ -15079,12 +15080,12 @@
|
|||
// player.removeEquipTrigger();
|
||||
|
||||
// for(var i in lib.skill.globalmap){
|
||||
// if(lib.skill.globalmap[i].contains(player)){
|
||||
// lib.skill.globalmap[i].remove(player);
|
||||
// if(lib.skill.globalmap[i].length==0&&!lib.skill[i].globalFixed){
|
||||
// game.removeGlobalSkill(i);
|
||||
// }
|
||||
// }
|
||||
// if(lib.skill.globalmap[i].contains(player)){
|
||||
// lib.skill.globalmap[i].remove(player);
|
||||
// if(lib.skill.globalmap[i].length==0&&!lib.skill[i].globalFixed){
|
||||
// game.removeGlobalSkill(i);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
game.broadcastAll(function(player){
|
||||
|
@ -15591,76 +15592,76 @@
|
|||
var from=this;
|
||||
if(from==to||from.hasSkill('undist')||to.hasSkill('undist')) return false;
|
||||
if(!game.players.contains(from)&&!game.dead.contains(from)) return false;
|
||||
if(!game.players.contains(to)&&!game.dead.contains(to)) return false;
|
||||
var mod1=game.checkMod(from,to,'unchanged','inRange',from);
|
||||
if(mod1!='unchanged') return mod1;
|
||||
var mod2=game.checkMod(from,to,'unchanged','inRangeOf',to);
|
||||
if(mod2!='unchanged') return mod2;
|
||||
if(from.getAttackRange()<1) return false;
|
||||
var player=from,m,n=1,i;
|
||||
var fxy,txy;
|
||||
if(game.chess){
|
||||
fxy=from.getXY();
|
||||
txy=to.getXY();
|
||||
n=Math.abs(fxy[0]-txy[0])+Math.abs(fxy[1]-txy[1]);
|
||||
}
|
||||
else if(to.isMin(true)||from.isMin(true)){}
|
||||
else{
|
||||
var length=game.players.length;
|
||||
var totalPopulation=game.players.length+game.dead.length+1;
|
||||
for(var iwhile=0;iwhile<totalPopulation;iwhile++){
|
||||
if(player.nextSeat!=to){
|
||||
player=player.nextSeat;
|
||||
if(player.isAlive()&&!player.isOut()&&!player.hasSkill('undist')&&!player.isMin(true)) n++;
|
||||
}
|
||||
else{
|
||||
break;
|
||||
}
|
||||
}
|
||||
for(i=0;i<game.players.length;i++){
|
||||
if(game.players[i].isOut()||game.players[i].hasSkill('undist')||game.players[i].isMin(true)) length--;
|
||||
}
|
||||
if(from.isDead()) length++;
|
||||
if(to.isDead()) length++;
|
||||
var left=from.hasSkillTag('left_hand');
|
||||
var right=from.hasSkillTag('right_hand');
|
||||
if(left===right) n=Math.min(n,length-n);
|
||||
else if(left==true) n=length-n;
|
||||
}
|
||||
if(!game.players.contains(to)&&!game.dead.contains(to)) return false;
|
||||
var mod1=game.checkMod(from,to,'unchanged','inRange',from);
|
||||
if(mod1!='unchanged') return mod1;
|
||||
var mod2=game.checkMod(from,to,'unchanged','inRangeOf',to);
|
||||
if(mod2!='unchanged') return mod2;
|
||||
if(from.getAttackRange()<1) return false;
|
||||
var player=from,m,n=1,i;
|
||||
var fxy,txy;
|
||||
if(game.chess){
|
||||
fxy=from.getXY();
|
||||
txy=to.getXY();
|
||||
n=Math.abs(fxy[0]-txy[0])+Math.abs(fxy[1]-txy[1]);
|
||||
}
|
||||
else if(to.isMin(true)||from.isMin(true)){}
|
||||
else{
|
||||
var length=game.players.length;
|
||||
var totalPopulation=game.players.length+game.dead.length+1;
|
||||
for(var iwhile=0;iwhile<totalPopulation;iwhile++){
|
||||
if(player.nextSeat!=to){
|
||||
player=player.nextSeat;
|
||||
if(player.isAlive()&&!player.isOut()&&!player.hasSkill('undist')&&!player.isMin(true)) n++;
|
||||
}
|
||||
else{
|
||||
break;
|
||||
}
|
||||
}
|
||||
for(i=0;i<game.players.length;i++){
|
||||
if(game.players[i].isOut()||game.players[i].hasSkill('undist')||game.players[i].isMin(true)) length--;
|
||||
}
|
||||
if(from.isDead()) length++;
|
||||
if(to.isDead()) length++;
|
||||
var left=from.hasSkillTag('left_hand');
|
||||
var right=from.hasSkillTag('right_hand');
|
||||
if(left===right) n=Math.min(n,length-n);
|
||||
else if(left==true) n=length-n;
|
||||
}
|
||||
|
||||
n=game.checkMod(from,to,n,'globalFrom',from);
|
||||
n=game.checkMod(from,to,n,'globalTo',to);
|
||||
m=n;
|
||||
m=game.checkMod(from,to,m,'attackFrom',from);
|
||||
m=game.checkMod(from,to,m,'attackTo',to);
|
||||
var equips1=from.getCards('e',function(card){
|
||||
return !ui.selected.cards||!ui.selected.cards.contains(card);
|
||||
}),equips2=to.getCards('e',function(card){
|
||||
return !ui.selected.cards||!ui.selected.cards.contains(card);
|
||||
});
|
||||
for(i=0;i<equips1.length;i++){
|
||||
var info=get.info(equips1[i]).distance;
|
||||
if(!info) continue;
|
||||
if(info.globalFrom){
|
||||
m+=info.globalFrom;
|
||||
n+=info.globalFrom;
|
||||
}
|
||||
if(info.attackFrom){
|
||||
m+=info.attackFrom;
|
||||
}
|
||||
}
|
||||
for(i=0;i<equips2.length;i++){
|
||||
var info=get.info(equips2[i]).distance;
|
||||
if(!info) continue;
|
||||
if(info.globalTo){
|
||||
m+=info.globalTo;
|
||||
n+=info.globalTo;
|
||||
}
|
||||
if(info.attaclTo){
|
||||
m+=info.attaclTo;
|
||||
}
|
||||
}
|
||||
return m<=1;
|
||||
n=game.checkMod(from,to,n,'globalFrom',from);
|
||||
n=game.checkMod(from,to,n,'globalTo',to);
|
||||
m=n;
|
||||
m=game.checkMod(from,to,m,'attackFrom',from);
|
||||
m=game.checkMod(from,to,m,'attackTo',to);
|
||||
var equips1=from.getCards('e',function(card){
|
||||
return !ui.selected.cards||!ui.selected.cards.contains(card);
|
||||
}),equips2=to.getCards('e',function(card){
|
||||
return !ui.selected.cards||!ui.selected.cards.contains(card);
|
||||
});
|
||||
for(i=0;i<equips1.length;i++){
|
||||
var info=get.info(equips1[i]).distance;
|
||||
if(!info) continue;
|
||||
if(info.globalFrom){
|
||||
m+=info.globalFrom;
|
||||
n+=info.globalFrom;
|
||||
}
|
||||
if(info.attackFrom){
|
||||
m+=info.attackFrom;
|
||||
}
|
||||
}
|
||||
for(i=0;i<equips2.length;i++){
|
||||
var info=get.info(equips2[i]).distance;
|
||||
if(!info) continue;
|
||||
if(info.globalTo){
|
||||
m+=info.globalTo;
|
||||
n+=info.globalTo;
|
||||
}
|
||||
if(info.attaclTo){
|
||||
m+=info.attaclTo;
|
||||
}
|
||||
}
|
||||
return m<=1;
|
||||
},
|
||||
inRangeOf:function(source){
|
||||
return source.inRange(this);
|
||||
|
@ -15695,22 +15696,22 @@
|
|||
return next;
|
||||
},
|
||||
chooseToEnable:function(){
|
||||
var next=game.createEvent('chooseToEnable');
|
||||
next.player=this;
|
||||
next.setContent('chooseToEnable');
|
||||
return next;
|
||||
},
|
||||
chooseToDisable:function(horse){
|
||||
var next=game.createEvent('chooseToDisable');
|
||||
next.player=this;
|
||||
if(horse) next.horse=true;
|
||||
next.setContent('chooseToDisable');
|
||||
return next;
|
||||
},
|
||||
countDisabled:function(){
|
||||
if(!this.storage.disableEquip) return 0;
|
||||
return this.storage.disableEquip.length;
|
||||
},
|
||||
var next=game.createEvent('chooseToEnable');
|
||||
next.player=this;
|
||||
next.setContent('chooseToEnable');
|
||||
return next;
|
||||
},
|
||||
chooseToDisable:function(horse){
|
||||
var next=game.createEvent('chooseToDisable');
|
||||
next.player=this;
|
||||
if(horse) next.horse=true;
|
||||
next.setContent('chooseToDisable');
|
||||
return next;
|
||||
},
|
||||
countDisabled:function(){
|
||||
if(!this.storage.disableEquip) return 0;
|
||||
return this.storage.disableEquip.length;
|
||||
},
|
||||
isPhaseUsing:function(notmeisok){
|
||||
if(!notmeisok&&_status.currentPhase!=this) return false;
|
||||
return _status.event.name=='phaseUse'||_status.event.getParent('phaseUse').name=='phaseUse';
|
||||
|
@ -19206,6 +19207,7 @@
|
|||
}
|
||||
if(next.judge==undefined) next.judge=function(){return 0};
|
||||
if(next.position==undefined) next.position=ui.discardPile;
|
||||
if(next.card) next.cardname=next.card.viewAs||next.card.name;
|
||||
|
||||
var str='';
|
||||
if(next.card) str=get.translation(next.card.viewAs||next.card.name);
|
||||
|
@ -20533,14 +20535,14 @@
|
|||
list.push(all[j]);
|
||||
}
|
||||
else{
|
||||
if(!filter) list.addArray(all[j][key]);
|
||||
else{
|
||||
var history=all[j][key].slice(0);
|
||||
if(!filter) list.addArray(all[j][key]);
|
||||
else{
|
||||
var history=all[j][key].slice(0);
|
||||
if(last) history=history.slice(0,history.indexOf(last)+1);
|
||||
for(var i=0;i<history.length;i++){
|
||||
if(filter(history[i])) list.push(history[i]);
|
||||
}
|
||||
}
|
||||
for(var i=0;i<history.length;i++){
|
||||
if(filter(history[i])) list.push(history[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return list;
|
||||
|
@ -23602,12 +23604,12 @@
|
|||
if(filter(info.trigger[i])){bool=true;break}
|
||||
}
|
||||
if(!bool) return;
|
||||
var priority=0;
|
||||
var priority=0;
|
||||
if(info.priority){
|
||||
priority=info.priority*100;
|
||||
}
|
||||
if(info.silent){
|
||||
priority++;
|
||||
priority++;
|
||||
}
|
||||
if(info.equipSkill) priority-=25;
|
||||
if(info.cardSkill) priority-=50;
|
||||
|
@ -25647,9 +25649,9 @@
|
|||
},
|
||||
exec:function(func){
|
||||
// if(typeof func=='function'){
|
||||
// var args=Array.from(arguments);
|
||||
// args.shift();
|
||||
// func.apply(this,args);
|
||||
// var args=Array.from(arguments);
|
||||
// args.shift();
|
||||
// func.apply(this,args);
|
||||
// }
|
||||
},
|
||||
log:function(){
|
||||
|
@ -27321,13 +27323,53 @@
|
|||
game.importedPack=obj;
|
||||
}
|
||||
},
|
||||
createDir:function(dir,success,error){
|
||||
var nullFC=function(){};
|
||||
success=success||nullFC;
|
||||
error=error||nullFC;
|
||||
dir=dir.split("/");
|
||||
if(window.resolveLocalFileSystemURL){
|
||||
window.resolveLocalFileSystemURL(lib.assetURL,function(entry){
|
||||
(function redo(entry){
|
||||
var i=dir.shift();
|
||||
entry.getDirectory(i,{create:true},function(dirEntry){
|
||||
if(dir.length) redo(dirEntry);
|
||||
else success();
|
||||
});
|
||||
})(entry);
|
||||
},error);
|
||||
}
|
||||
else{
|
||||
var fs=require("fs");
|
||||
var str=__dirname;
|
||||
(function redo(){
|
||||
str+="/";
|
||||
str+=dir.shift();
|
||||
fs.exists(str,function(exists){
|
||||
if(exists){
|
||||
//已存在此目录
|
||||
if(dir.length) redo();
|
||||
else success();
|
||||
}
|
||||
else{
|
||||
fs.mkdir(str, function(){
|
||||
if(dir.length) redo();
|
||||
else success();
|
||||
});
|
||||
}
|
||||
});
|
||||
})();
|
||||
}
|
||||
},
|
||||
importExtension:function(data,finishLoad,exportext,pkg){
|
||||
//by 来瓶可乐加冰
|
||||
if(!window.JSZip){
|
||||
lib.init.js(lib.assetURL+'game','jszip',function(){
|
||||
game.importExtension(data,finishLoad,exportext,pkg);
|
||||
});
|
||||
}
|
||||
else if(get.objtype(data)=='object'){
|
||||
//导出
|
||||
var zip=new JSZip();
|
||||
var filelist=[];
|
||||
var filelist2=[];
|
||||
|
@ -27420,17 +27462,23 @@
|
|||
}
|
||||
}
|
||||
else{
|
||||
//导入
|
||||
function UHP(){
|
||||
alert("导入失败");
|
||||
};
|
||||
var zip=new JSZip();
|
||||
try{
|
||||
zip.load(data);
|
||||
// alert(zip.file('文件夹/加扩展.js').asText())
|
||||
var str=zip.file('extension.js').asText();
|
||||
if(str===""||undefined) throw('你导入的不是扩展!请选择正确的文件');
|
||||
_status.importingExtension=true;
|
||||
eval(str);
|
||||
_status.importingExtension=false;
|
||||
if(!game.importedPack) throw('err');
|
||||
var extname=game.importedPack.name;
|
||||
if(lib.config.all.plays.contains('extname')){
|
||||
throw('err');
|
||||
if(lib.config.all.plays.contains(extname)){
|
||||
throw('禁止安装游戏原生扩展');
|
||||
}
|
||||
if(lib.config.extensions.contains(extname)){
|
||||
game.removeExtension(extname,true);
|
||||
|
@ -27446,16 +27494,36 @@
|
|||
if(game.download){
|
||||
var filelist=[];
|
||||
for(var i in zip.files){
|
||||
if(i[0]!='.'&&i[0]!='_'){
|
||||
//alert(zip.files[i].dir+i)
|
||||
if(!zip.files[i].dir&&i[0]!='.'&&i[0]!='_'){
|
||||
filelist.push(i);
|
||||
}
|
||||
}
|
||||
//alert(filelist)
|
||||
if(lib.node&&lib.node.fs){
|
||||
//电脑端
|
||||
//具备nodeJS环境
|
||||
game.ensureDirectory('extension/'+extname,function(){
|
||||
var writeFile=function(){
|
||||
var writeFile=function(e){
|
||||
if(e){
|
||||
finishLoad();
|
||||
UHP();
|
||||
return;
|
||||
}
|
||||
if(filelist.length){
|
||||
var filename=filelist.shift();
|
||||
lib.node.fs.writeFile(__dirname+'/extension/'+extname+'/'+filename,zip.files[filename].asNodeBuffer(),null,writeFile);
|
||||
//filename 数组 ...dir+/+file
|
||||
var zipdir=filename;
|
||||
filename=filename.split("/");
|
||||
var name=filename.pop();
|
||||
if(filename.length) game.createDir('extension/'+extname+"/"+filename.join("/"),function(){
|
||||
//这里需要个创文件夹的函数
|
||||
Letgo(filename.join("/")+"/"+name);
|
||||
},UHP);
|
||||
else Letgo(name);
|
||||
function Letgo(name){
|
||||
lib.node.fs.writeFile(__dirname+'/extension/'+extname+"/"+name,zip.file(zipdir).asNodeBuffer(),null,writeFile);
|
||||
}
|
||||
}
|
||||
else{
|
||||
finishLoad();
|
||||
|
@ -27464,24 +27532,36 @@
|
|||
writeFile();
|
||||
});
|
||||
}
|
||||
else{
|
||||
else{
|
||||
window.resolveLocalFileSystemURL(lib.assetURL,function(entry){
|
||||
entry.getDirectory('extension/'+extname,{create:true},function(dirEntry){
|
||||
var writeFile=function(){
|
||||
if(filelist.length){
|
||||
var filename=filelist.shift();
|
||||
dirEntry.getFile(filename,{create:true},function(fileEntry){
|
||||
//扩展文件夹
|
||||
writeFile();
|
||||
function writeFile(){
|
||||
if(filelist.length){
|
||||
var filename=filelist.shift();
|
||||
//filename 数组 ...dir+/+file
|
||||
var zipdir=filename;
|
||||
filename=filename.split("/");
|
||||
var name=filename.pop();
|
||||
if(filename.length) game.createDir('extension/'+extname+"/"+filename.join("/"),function(){
|
||||
Letgo(filename.join("/")+"/"+name);
|
||||
},UHP);
|
||||
else Letgo(name);
|
||||
function Letgo(name){
|
||||
dirEntry.getFile(name,{create:true},function(fileEntry){
|
||||
fileEntry.createWriter(function(fileWriter){
|
||||
fileWriter.onwriteend=writeFile;
|
||||
fileWriter.write(zip.files[filename].asArrayBuffer());
|
||||
fileWriter.onwriteend=writeFile;
|
||||
fileWriter.write(zip.file(zipdir).asArrayBuffer());
|
||||
});
|
||||
});
|
||||
},UHP);
|
||||
}
|
||||
}
|
||||
else{
|
||||
finishLoad();
|
||||
}
|
||||
};
|
||||
writeFile();
|
||||
};
|
||||
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -27527,7 +27607,7 @@
|
|||
alert('导入失败');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
};
|
||||
},
|
||||
export:function(textToWrite,name){
|
||||
var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'});
|
||||
|
@ -31606,8 +31686,8 @@
|
|||
|
||||
// var pilecfg=lib.config.customcardpile[get.config('cardpilename')];
|
||||
// if(pilecfg){
|
||||
// lib.config.bannedpile=pilecfg[0]||{};
|
||||
// lib.config.addedpile=pilecfg[1]||{};
|
||||
// lib.config.bannedpile=pilecfg[0]||{};
|
||||
// lib.config.addedpile=pilecfg[1]||{};
|
||||
// }
|
||||
|
||||
_status.event={
|
||||
|
@ -35177,15 +35257,15 @@
|
|||
var expanded=false;
|
||||
if(hiddenNodes.length){
|
||||
// ui.create.div('.config.more','更多 <div>></div>',page,function(){
|
||||
// if(expanded){
|
||||
// this.classList.remove('on');
|
||||
// this.parentNode.classList.remove('expanded');
|
||||
// }
|
||||
// else{
|
||||
// this.classList.add('on');
|
||||
// this.parentNode.classList.add('expanded');
|
||||
// }
|
||||
// expanded=!expanded;
|
||||
// if(expanded){
|
||||
// this.classList.remove('on');
|
||||
// this.parentNode.classList.remove('expanded');
|
||||
// }
|
||||
// else{
|
||||
// this.classList.add('on');
|
||||
// this.parentNode.classList.add('expanded');
|
||||
// }
|
||||
// expanded=!expanded;
|
||||
// });
|
||||
page.classList.add('morenodes');
|
||||
for(var k=0;k<hiddenNodes.length;k++){
|
||||
|
@ -37979,7 +38059,7 @@
|
|||
editnode.classList.add('disabled');
|
||||
delnode.innerHTML='取消';
|
||||
delete delnode.button;
|
||||
container.code='card={\n \n}\n\n\/*\n示例:\ncard={\n type:"basic",\n enable:true,\n filterTarget:true,\n content:function(){\n target.draw()\n },\n ai:{\n order:1,\n result:{\n target:1\n }\n }\n}\n此例的效果为目标摸一张牌\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
container.code='card={\n \n}\n\n\/*\n示例:\ncard={\n type:"basic",\n enable:true,\n filterTarget:true,\n content:function(){\n target.draw()\n },\n ai:{\n order:1,\n result:{\n target:1\n }\n }\n}\n此例的效果为目标摸一张牌\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
}
|
||||
|
||||
newCard=ui.create.div('.new_character',page);
|
||||
|
@ -38193,7 +38273,7 @@
|
|||
};
|
||||
var saveConfig=ui.create.div('.editbutton','保存',editorpage,saveInput);
|
||||
var editor=ui.create.div(editorpage);
|
||||
container.code='card={\n \n}\n\n\/*\n示例:\ncard={\n type:"basic",\n enable:true,\n filterTarget:true,\n content:function(){\n target.draw()\n },\n ai:{\n order:1,\n result:{\n target:1\n }\n }\n}\n此例的效果为目标摸一张牌\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
container.code='card={\n \n}\n\n\/*\n示例:\ncard={\n type:"basic",\n enable:true,\n filterTarget:true,\n content:function(){\n target.draw()\n },\n ai:{\n order:1,\n result:{\n target:1\n }\n }\n}\n此例的效果为目标摸一张牌\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
|
||||
var editnode=ui.create.div('.menubutton.large.new_card.disabled','创建卡牌',newCard,function(){
|
||||
var name=page.querySelector('input.new_name').value;
|
||||
|
@ -38544,7 +38624,7 @@
|
|||
editnode.classList.add('disabled');
|
||||
delnode.innerHTML='取消';
|
||||
delete delnode.button;
|
||||
container.code='skill={\n \n}\n\n\/*\n示例:\nskill={\n trigger:{player:"phaseJieshuBegin"},\n frequent:true,\n content:function(){\n player.draw()\n }\n}\n此例为闭月代码\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
container.code='skill={\n \n}\n\n\/*\n示例:\nskill={\n trigger:{player:"phaseJieshuBegin"},\n frequent:true,\n content:function(){\n player.draw()\n }\n}\n此例为闭月代码\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
if(page.fromchar=='add'){
|
||||
page.fromchar=true;
|
||||
}
|
||||
|
@ -38645,7 +38725,7 @@
|
|||
};
|
||||
var saveConfig=ui.create.div('.editbutton','保存',editorpage,saveInput);
|
||||
var editor=ui.create.div(editorpage);
|
||||
container.code='skill={\n \n}\n\n\/*\n示例:\nskill={\n trigger:{player:"phaseJieshuBegin"},\n frequent:true,\n content:function(){\n player.draw()\n }\n}\n此例为闭月代码\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
container.code='skill={\n \n}\n\n\/*\n示例:\nskill={\n trigger:{player:"phaseJieshuBegin"},\n frequent:true,\n content:function(){\n player.draw()\n }\n}\n此例为闭月代码\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
|
||||
var citebutton=document.createElement('button');
|
||||
citebutton.innerHTML='引用代码';
|
||||
|
@ -38873,10 +38953,10 @@
|
|||
}
|
||||
}
|
||||
else{
|
||||
dashes.content.node.code='function(config,pack){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之后、界面加载之前\n参数1扩展选项(见选项代码);参数2为扩展定义的武将、卡牌和技能等(可在此函数中修改)\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
dashes.precontent.node.code='function(){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之前,且不受禁用扩展的限制\n除添加模式外请慎用\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
dashes.config.node.code='config={\n \n}\n\n\/*\n示例:\nconfig={\n switcher_example:{\n name:"示例列表选项",\n init:"3",\n item:{"1":"一","2":"二","3":"三"}\n },\n toggle_example:{\n name:"示例开关选项",\n init:true\n }\n}\n此例中传入的主代码函数的默认参数为{switcher_example:"3",toggle_example:true}\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
dashes.help.node.code='help={\n \n}\n\n\/*\n示例:\nhelp={\n "帮助条目":"<ul><li>列表1-条目1<li>列表1-条目2</ul><ol><li>列表2-条目1<li>列表2-条目2</ul>"\n}\n帮助内容将显示在菜单-选项-帮助中\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
dashes.content.node.code='function(config,pack){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之后、界面加载之前\n参数1扩展选项(见选项代码);参数2为扩展定义的武将、卡牌和技能等(可在此函数中修改)\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
dashes.precontent.node.code='function(){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之前,且不受禁用扩展的限制\n除添加模式外请慎用\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
dashes.config.node.code='config={\n \n}\n\n\/*\n示例:\nconfig={\n switcher_example:{\n name:"示例列表选项",\n init:"3",\n item:{"1":"一","2":"二","3":"三"}\n },\n toggle_example:{\n name:"示例开关选项",\n init:true\n }\n}\n此例中传入的主代码函数的默认参数为{switcher_example:"3",toggle_example:true}\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
dashes.help.node.code='help={\n \n}\n\n\/*\n示例:\nhelp={\n "帮助条目":"<ul><li>列表1-条目1<li>列表1-条目2</ul><ol><li>列表2-条目1<li>列表2-条目2</ul>"\n}\n帮助内容将显示在菜单-选项-帮助中\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/';
|
||||
}
|
||||
};
|
||||
var dashes={};
|
||||
|
@ -38998,10 +39078,10 @@
|
|||
}
|
||||
};
|
||||
page.content={}
|
||||
createCode('主','主代码',page,clickCode,'content','function(config,pack){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之后、界面加载之前\n参数1扩展选项(见选项代码);参数2为扩展定义的武将、卡牌和技能等(可在此函数中修改)\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/');
|
||||
createCode('启','启动代码',page,clickCode,'precontent','function(){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之前,且不受禁用扩展的限制\n除添加模式外请慎用\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/');
|
||||
createCode('选','选项代码',page,clickCode,'config','config={\n \n}\n\n\/*\n示例:\nconfig={\n switcher_example:{\n name:"示例列表选项",\n init:"3",\n item:{"1":"一","2":"二","3":"三"}\n },\n toggle_example:{\n name:"示例开关选项",\n init:true\n }\n}\n此例中传入的主代码函数的默认参数为{switcher_example:"3",toggle_example:true}\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/');
|
||||
createCode('帮','帮助代码',page,clickCode,'help','help={\n \n}\n\n\/*\n示例:\nhelp={\n "帮助条目":"<ul><li>列表1-条目1<li>列表1-条目2</ul><ol><li>列表2-条目1<li>列表2-条目2</ul>"\n}\n帮助内容将显示在菜单-选项-帮助中\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/');
|
||||
createCode('主','主代码',page,clickCode,'content','function(config,pack){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之后、界面加载之前\n参数1扩展选项(见选项代码);参数2为扩展定义的武将、卡牌和技能等(可在此函数中修改)\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/');
|
||||
createCode('启','启动代码',page,clickCode,'precontent','function(){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之前,且不受禁用扩展的限制\n除添加模式外请慎用\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/');
|
||||
createCode('选','选项代码',page,clickCode,'config','config={\n \n}\n\n\/*\n示例:\nconfig={\n switcher_example:{\n name:"示例列表选项",\n init:"3",\n item:{"1":"一","2":"二","3":"三"}\n },\n toggle_example:{\n name:"示例开关选项",\n init:true\n }\n}\n此例中传入的主代码函数的默认参数为{switcher_example:"3",toggle_example:true}\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/');
|
||||
createCode('帮','帮助代码',page,clickCode,'help','help={\n \n}\n\n\/*\n示例:\nhelp={\n "帮助条目":"<ul><li>列表1-条目1<li>列表1-条目2</ul><ol><li>列表2-条目1<li>列表2-条目2</ul>"\n}\n帮助内容将显示在菜单-选项-帮助中\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/');
|
||||
|
||||
return page;
|
||||
}());
|
||||
|
@ -39825,7 +39905,7 @@
|
|||
game.checkForUpdate(null,true);
|
||||
};
|
||||
// if(lib.config.dev){
|
||||
// li1.lastChild.appendChild(button3);
|
||||
// li1.lastChild.appendChild(button3);
|
||||
// }
|
||||
|
||||
(function(){
|
||||
|
@ -41004,14 +41084,14 @@
|
|||
},
|
||||
characterDialog:function(){
|
||||
// if(lib.config.character_dialog_style=='newstyle'){
|
||||
// for(var i=0;i<arguments.length;i++){
|
||||
// if(arguments[i]=='thisiscard'){
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// if(i==arguments.length){
|
||||
// return ui.create.characterDialog2.apply(this,arguments);
|
||||
// }
|
||||
// for(var i=0;i<arguments.length;i++){
|
||||
// if(arguments[i]=='thisiscard'){
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// if(i==arguments.length){
|
||||
// return ui.create.characterDialog2.apply(this,arguments);
|
||||
// }
|
||||
// }
|
||||
var filter,str,noclick,thisiscard,seperate,expandall,onlypack,heightset,precharacter;
|
||||
for(var i=0;i<arguments.length;i++){
|
||||
|
@ -42012,10 +42092,10 @@
|
|||
// ui.arena.classList.remove('player_autolong');
|
||||
// }
|
||||
// if(game.layout=='long'&&parseInt(num)<parseInt(lib.config.fewplayer)){
|
||||
// this.classList.add('fewplayer');
|
||||
// this.classList.add('fewplayer');
|
||||
// }
|
||||
// else{
|
||||
// this.classList.remove('fewplayer');
|
||||
// this.classList.remove('fewplayer');
|
||||
// }
|
||||
}
|
||||
|
||||
|
@ -46308,10 +46388,10 @@
|
|||
}
|
||||
if(lib.config.background_speak&&e!=='init'){
|
||||
var audioname=this.link;
|
||||
if(info.audioname2&&info.audioname2[playername]){
|
||||
audioname=info.audioname2[playername];
|
||||
info=lib.skill[audioname];
|
||||
}
|
||||
if(info.audioname2&&info.audioname2[playername]){
|
||||
audioname=info.audioname2[playername];
|
||||
info=lib.skill[audioname];
|
||||
}
|
||||
var audioinfo=info.audio;
|
||||
var that=this;
|
||||
var getIndex=function(i){
|
||||
|
@ -47867,16 +47947,16 @@
|
|||
var indent='';
|
||||
var str;
|
||||
for(var i=0;i<level;i++){
|
||||
indent+=' ';
|
||||
indent+=' ';
|
||||
}
|
||||
if(get.objtype(obj)=='object'){
|
||||
str='{\n';
|
||||
for(var i in obj){
|
||||
if(/[^a-zA-Z]/.test(i)){
|
||||
str+=indent+' "'+i+'":'+get.stringify(obj[i],level+1)+',\n';
|
||||
str+=indent+' "'+i+'":'+get.stringify(obj[i],level+1)+',\n';
|
||||
}
|
||||
else{
|
||||
str+=indent+' '+i+':'+get.stringify(obj[i],level+1)+',\n';
|
||||
str+=indent+' '+i+':'+get.stringify(obj[i],level+1)+',\n';
|
||||
}
|
||||
}
|
||||
str+=indent+'}';
|
||||
|
@ -47885,7 +47965,7 @@
|
|||
else{
|
||||
if(typeof obj=='function'){
|
||||
str=obj.toString();
|
||||
str=str.replace(/\t/g,' ');
|
||||
str=str.replace(/\t/g,' ');
|
||||
var i=str.lastIndexOf('\n');
|
||||
var num=0;
|
||||
for(var j=i+1;j<str.length&&str[j]==' ';j++){
|
||||
|
@ -47893,7 +47973,7 @@
|
|||
}
|
||||
num=Math.floor(num/4);
|
||||
for(i=0;i<num-level;i++){
|
||||
str=str.replace(/\n /g,'\n');
|
||||
str=str.replace(/\n /g,'\n');
|
||||
}
|
||||
}
|
||||
else{
|
||||
|
@ -48809,7 +48889,9 @@
|
|||
},
|
||||
number:function(card,player){
|
||||
//啥时候狗卡出相关技能我再完善
|
||||
return card.number;
|
||||
if(typeof card.number=='number') return card.number;
|
||||
else if(card.cards&&card.cards.length==1) return get.number(card.cards[0]);
|
||||
return null;
|
||||
},
|
||||
nature:function(card,player){
|
||||
if(get.itemtype(player)=='player'||player!==false){
|
||||
|
@ -49844,23 +49926,23 @@
|
|||
}
|
||||
}
|
||||
// if(get.is.phoneLayout()){
|
||||
// var storage=node.storage;
|
||||
// for(i in storage){
|
||||
// if(get.info(i)&&get.info(i).intro){
|
||||
// intro=get.info(i).intro;
|
||||
// if(node.getSkills().concat(lib.skill.global).contains(i)==false&&!intro.show) continue;
|
||||
// var name=intro.name?intro.name:get.translation(i);
|
||||
// if(typeof name=='function'){
|
||||
// name=name(storage[i],node);
|
||||
// }
|
||||
// translation='<div><div class="skill">『'+name.slice(0,2)+'』</div><div>';
|
||||
// var stint=get.storageintro(intro.content,storage[i],node,null,i);
|
||||
// if(stint){
|
||||
// translation+=stint+'</div></div>';
|
||||
// uiintro.add(translation);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// var storage=node.storage;
|
||||
// for(i in storage){
|
||||
// if(get.info(i)&&get.info(i).intro){
|
||||
// intro=get.info(i).intro;
|
||||
// if(node.getSkills().concat(lib.skill.global).contains(i)==false&&!intro.show) continue;
|
||||
// var name=intro.name?intro.name:get.translation(i);
|
||||
// if(typeof name=='function'){
|
||||
// name=name(storage[i],node);
|
||||
// }
|
||||
// translation='<div><div class="skill">『'+name.slice(0,2)+'』</div><div>';
|
||||
// var stint=get.storageintro(intro.content,storage[i],node,null,i);
|
||||
// if(stint){
|
||||
// translation+=stint+'</div></div>';
|
||||
// uiintro.add(translation);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
if(lib.config.right_range&&_status.gameStarted){
|
||||
|
@ -51023,21 +51105,21 @@
|
|||
else temp3=undefined;
|
||||
if(temp2&&typeof temp2.effect=='function'){
|
||||
if(!player.hasSkillTag('ignoreSkill',true,{
|
||||
card:card,
|
||||
target:target,
|
||||
skill:skills2[i],
|
||||
isLink:isLink,
|
||||
})) temp2=temp2.effect(card,player,target,result2,isLink);
|
||||
else temp2=undefined;
|
||||
card:card,
|
||||
target:target,
|
||||
skill:skills2[i],
|
||||
isLink:isLink,
|
||||
})) temp2=temp2.effect(card,player,target,result2,isLink);
|
||||
else temp2=undefined;
|
||||
}
|
||||
else if(temp2&&typeof temp2.effect=='object'&&typeof temp2.effect.target=='function'){
|
||||
if(!player.hasSkillTag('ignoreSkill',true,{
|
||||
card:card,
|
||||
target:target,
|
||||
skill:skills2[i],
|
||||
isLink:isLink,
|
||||
})) temp2=temp2.effect.target(card,player,target,result2,isLink);
|
||||
else temp2=undefined;
|
||||
card:card,
|
||||
target:target,
|
||||
skill:skills2[i],
|
||||
isLink:isLink,
|
||||
})) temp2=temp2.effect.target(card,player,target,result2,isLink);
|
||||
else temp2=undefined;
|
||||
}
|
||||
else temp2=undefined;
|
||||
if(typeof temp2=='object'){
|
||||
|
@ -51185,21 +51267,21 @@
|
|||
else temp3=undefined;
|
||||
if(temp2&&typeof temp2.effect=='function'){
|
||||
if(!player.hasSkillTag('ignoreSkill',true,{
|
||||
card:card,
|
||||
target:target,
|
||||
skill:skills2[i],
|
||||
isLink:isLink,
|
||||
})) temp2=temp2.effect(card,player,target,result2,isLink);
|
||||
else temp2=undefined;
|
||||
card:card,
|
||||
target:target,
|
||||
skill:skills2[i],
|
||||
isLink:isLink,
|
||||
})) temp2=temp2.effect(card,player,target,result2,isLink);
|
||||
else temp2=undefined;
|
||||
}
|
||||
else if(temp2&&typeof temp2.effect=='object'&&typeof temp2.effect.target=='function'){
|
||||
if(!player.hasSkillTag('ignoreSkill',true,{
|
||||
card:card,
|
||||
target:target,
|
||||
skill:skills2[i],
|
||||
isLink:isLink,
|
||||
})) temp2=temp2.effect.target(card,player,target,result2,isLink);
|
||||
else temp2=undefined;
|
||||
card:card,
|
||||
target:target,
|
||||
skill:skills2[i],
|
||||
isLink:isLink,
|
||||
})) temp2=temp2.effect.target(card,player,target,result2,isLink);
|
||||
else temp2=undefined;
|
||||
}
|
||||
else temp2=undefined;
|
||||
if(typeof temp2=='object'){
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
window.bannedKeyWords=[
|
||||
'ghs','直肠','性交','做爱','http','吃奶','骚逼','哈巴狗','美眉','癌','屁眼','艹','傻逼','操你','做鸡','奸','姦','华为','屄','狗子','屎',
|
||||
'ghs','直肠','性交','做爱','http','吃奶','骚逼','哈巴狗','美眉','癌','屁眼','艹','傻逼','操你','做鸡','奸','姦','华为','屄','狗子','屎','同性恋','肖战','鸡巴','精液','粪水','挂月亮中','贱骨头',
|
||||
];
|
|
@ -1,8 +1,8 @@
|
|||
window.noname_update={
|
||||
version:'1.9.105',
|
||||
update:'1.9.104.1',
|
||||
version:'1.9.105.1',
|
||||
update:'1.9.105',
|
||||
changeLog:[
|
||||
'动态技能描述(dynamicTranslate)',
|
||||
'松下护騨',
|
||||
'bug修复',
|
||||
|
||||
],
|
||||
|
@ -11,16 +11,16 @@ window.noname_update={
|
|||
//'card/huanlekapai.js',
|
||||
//'card/sp.js',
|
||||
'card/standard.js',
|
||||
'card/swd.js',
|
||||
//'card/swd.js',
|
||||
//'card/mtg.js',
|
||||
//'card/gujian.js',
|
||||
//'card/guozhan.js',
|
||||
'card/gwent.js',
|
||||
//'card/gwent.js',
|
||||
//'card/yunchou.js',
|
||||
//'card/zhenfa.js',
|
||||
'card/zhulu.js',
|
||||
//'card/zhulu.js',
|
||||
'character/diy.js',
|
||||
'character/extra.js',
|
||||
//'character/extra.js',
|
||||
//'character/hearth.js',
|
||||
//'character/gujian.js',
|
||||
//'character/gwent.js',
|
||||
|
@ -33,17 +33,17 @@ window.noname_update={
|
|||
'character/sp.js',
|
||||
'character/sp2.js',
|
||||
//'character/tw.js',
|
||||
'character/standard.js',
|
||||
//'character/standard.js',
|
||||
//'character/swd.js',
|
||||
//'character/xianjian.js',
|
||||
'character/xinghuoliaoyuan.js',
|
||||
//'character/xinghuoliaoyuan.js',
|
||||
'character/yijiang.js',
|
||||
//'character/yxs.js',
|
||||
//'extension/boss/extension.js',
|
||||
'layout/default/layout.css',
|
||||
//'layout/default/layout.css',
|
||||
//'layout/nova/layout.css',
|
||||
//'mode/identity.js',
|
||||
'mode/doudizhu.js',
|
||||
//'mode/doudizhu.js',
|
||||
'mode/guozhan.js',
|
||||
//'mode/chess.js',
|
||||
//'mode/tafang.js',
|
||||
|
@ -51,11 +51,11 @@ window.noname_update={
|
|||
//'mode/stone.js',
|
||||
//'mode/brawl.js',
|
||||
//'mode/versus.js',
|
||||
//'mode/boss.js',
|
||||
'mode/boss.js',
|
||||
'game/game.js',
|
||||
'game/keyWords.js',
|
||||
//'game/NoSleep.js',
|
||||
//'game/config.js',
|
||||
'game/config.js',
|
||||
//'game/package.js',
|
||||
//'game/asset.js',
|
||||
//'game/source.js',
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 68 KiB |
|
@ -2797,7 +2797,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
logTarget:'source',
|
||||
content:function(){
|
||||
trigger.source.damage().nature=lib.linked.randomGet();
|
||||
trigger.source.damage().nature=['fire','thunder'].randomGet();
|
||||
},
|
||||
},
|
||||
boss_pingdeng:{
|
||||
|
|
182
mode/guozhan.js
182
mode/guozhan.js
|
@ -211,6 +211,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
vanish:true,
|
||||
derivation:'guozhan',
|
||||
},
|
||||
zhulian_card:{
|
||||
cardimage:'wuzhong',
|
||||
},
|
||||
},
|
||||
aozhanRank:{
|
||||
'8':[],
|
||||
|
@ -1167,7 +1170,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
else{
|
||||
if(get.attitude(player,trigger.source)>=0) check=false;
|
||||
}
|
||||
player.chooseCard(get.prompt('gzfudi'),'交给其一张手牌,然后对其势力中体力值最大且不小于你的一名角色造成1点伤害').set('aicheck',check).set('ai',function(card){
|
||||
player.chooseCard(get.prompt('gzfudi',trigger.source),'交给其一张手牌,然后对其势力中体力值最大且不小于你的一名角色造成1点伤害').set('aicheck',check).set('ai',function(card){
|
||||
if(!_status.event.aicheck) return 0;
|
||||
return 9-get.value(card);
|
||||
});
|
||||
|
@ -2227,24 +2230,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
expose:0.1,
|
||||
},
|
||||
},
|
||||
"new_fenji":{
|
||||
audio:"fenji",
|
||||
trigger:{
|
||||
global:"phaseAfter",
|
||||
},
|
||||
filter:function (event,player){
|
||||
if(event.player.countCards('h')==0&&event.player.isAlive()) return true;
|
||||
return false;
|
||||
},
|
||||
check:function (event,player){
|
||||
return get.attitude(player,event.player)>2;
|
||||
},
|
||||
content:function (){
|
||||
player.line(trigger.player,'green');
|
||||
trigger.player.draw(2);
|
||||
player.loseHp();
|
||||
},
|
||||
},
|
||||
"new_luanji":{
|
||||
audio:"luanji",
|
||||
enable:"phaseUse",
|
||||
|
@ -3532,12 +3517,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
game.countPlayer(function(current){current.addSkill('aozhan')});
|
||||
},
|
||||
},
|
||||
"xianqu_skill":{
|
||||
"_xianqu_skill":{
|
||||
ruleSkill:true,
|
||||
enable:"phaseUse",
|
||||
//filter:function (event,player){
|
||||
//return player.countCards('h')<4;
|
||||
//},
|
||||
filter:function (event,player){
|
||||
return player.hasMark('_xianqu_skill');
|
||||
},
|
||||
usable:1,
|
||||
mark:true,
|
||||
intro:{
|
||||
|
@ -3545,9 +3530,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function (){
|
||||
"step 0"
|
||||
player.removeMark('_xianqu_skill',1);
|
||||
game.log(player,'移去了','#g先驱','标记');
|
||||
var num=4-player.countCards('h');
|
||||
if(num) player.draw(num);
|
||||
player.chooseTarget('是否观看一名其他角色的一张暗置武将牌?',function(card,player,target){
|
||||
"step 1"
|
||||
if(game.hasPlayer(function(current){
|
||||
return current!=player&¤t.isUnseen(2);
|
||||
})) player.chooseTarget('是否观看一名其他角色的一张暗置武将牌?',function(card,player,target){
|
||||
return target!=player&&target.isUnseen(2);
|
||||
}).set('ai',function(target){
|
||||
if(target.isUnseen()){
|
||||
|
@ -3557,7 +3547,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
return -get.attitude(_status.event.player,target);
|
||||
});
|
||||
"step 1"
|
||||
else event.finish();
|
||||
"step 2"
|
||||
if(result.bool){
|
||||
event.target=result.targets[0];
|
||||
player.line(event.target,'green');
|
||||
|
@ -3570,10 +3561,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
if(controls.length==0) event.finish();
|
||||
}
|
||||
else{
|
||||
player.removeSkill('xianqu_skill');
|
||||
player.removeSkill('_xianqu_skill');
|
||||
event.finish();
|
||||
}
|
||||
"step 2"
|
||||
"step 3"
|
||||
if(result.control){
|
||||
if(result.control=='主将'){
|
||||
player.viewCharacter(event.target,0);
|
||||
|
@ -3588,7 +3579,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
else{
|
||||
player.viewCharacter(event.target,1);
|
||||
}
|
||||
player.removeSkill('xianqu_skill');
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
|
@ -3602,78 +3592,93 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
"zhulianbihe_skill":{
|
||||
ruleSkill:true,
|
||||
group:["zhulianbihe_skill_draw","zhulianbihe_skill_tao"],
|
||||
mark:true,
|
||||
intro:{
|
||||
content:"◇出牌阶段,你可以弃置此标记 然后摸两张牌。<br>◇你可以将此标记当做【桃】使用。",
|
||||
},
|
||||
},
|
||||
"yinyang_skill":{
|
||||
ruleSkill:true,
|
||||
group:["yinyang_skill_draw","yinyang_skill_add"],
|
||||
mark:true,
|
||||
intro:{
|
||||
content:"◇出牌阶段,你可以弃置此标记,然后摸一张牌。<br>◇弃牌阶段,你可以弃置此标记,然后本回合手牌上限+2。",
|
||||
},
|
||||
},
|
||||
"zhulianbihe_skill_draw":{
|
||||
"_zhulianbihe_skill_draw":{
|
||||
ruleSkill:true,
|
||||
enable:"phaseUse",
|
||||
usable:1,
|
||||
content:function (){
|
||||
player.draw(2);
|
||||
player.removeSkill('zhulianbihe_skill');
|
||||
filter:function(event,player){
|
||||
return player.hasMark('zhulianbihe_skill');
|
||||
},
|
||||
chooseButton:{
|
||||
dialog:function(event,player){
|
||||
return ui.create.dialog('珠联璧合',[[
|
||||
['摸牌','','zhulian_card'],
|
||||
['基本','','tao']
|
||||
],'vcard'],'hidden');
|
||||
},
|
||||
filter:function(button,player){
|
||||
if(button.link[2]!='tao') return true;
|
||||
return lib.filter.filterCard({name:'tao',isCard:true},player,_status.event.getParent());
|
||||
},
|
||||
check:function(button){
|
||||
var player=_status.event.player;
|
||||
if(button.link[2]=='tao') return get.effect_use(player,{name:'tao'},player)>0?2:0;
|
||||
if(player.getHandcardLimit()-player.countCards('h')>1&&!game.hasPlayer(function(current){
|
||||
return current!=player&¤t.isFriendOf(player)&¤t.hp+current.countCards('h','shan')<=2;
|
||||
})) return 1;
|
||||
return 0;
|
||||
},
|
||||
backup:function(links,player){
|
||||
if(links[0][2]=='tao') return get.copy(lib.skill._zhulianbihe_skill_tao);
|
||||
return {
|
||||
content:function(){
|
||||
player.draw(2);
|
||||
player.removeMark('zhulianbihe_skill',1);
|
||||
},
|
||||
};
|
||||
},
|
||||
},
|
||||
ai:{
|
||||
order:function (item,player){
|
||||
var cards=player.getCards('h');
|
||||
if(player.hp>=3){
|
||||
if(cards.length>=3){
|
||||
for(var i=0;i<cards.length;i++){
|
||||
if(get.tag(cards[i],'recover')>=1) return 7.2;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
else return 7.2;
|
||||
}
|
||||
if(player.hp=2){
|
||||
if(cards.length<2){
|
||||
for(var i=0;i<cards.length;i++){
|
||||
if(get.tag(cards[i],'recover')>=1) return 7.2;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
order:function(item,player){
|
||||
if(get.effect_use(player,{name:'tao'},player)>0) return get.order({name:'tao'},player)-0.1;
|
||||
return 7.2;
|
||||
},
|
||||
result:{
|
||||
player:2,
|
||||
player:1,
|
||||
},
|
||||
},
|
||||
},
|
||||
"zhulianbihe_skill_tao":{
|
||||
"_zhulianbihe_skill_tao":{
|
||||
ruleSkill:true,
|
||||
enable:"chooseToUse",
|
||||
filter:function(event,player){
|
||||
return event.type!='phase'&&player.hasMark('zhulianbihe_skill');
|
||||
},
|
||||
viewAs:{
|
||||
name:"tao",
|
||||
isCard:true,
|
||||
},
|
||||
filterCard:function (){return false},
|
||||
filterCard:function(){return false},
|
||||
selectCard:-1,
|
||||
precontent:function (){
|
||||
player.removeSkill('zhulianbihe_skill');
|
||||
precontent:function(){
|
||||
player.removeMark('zhulianbihe_skill',1);
|
||||
},
|
||||
ai:{
|
||||
save:true,
|
||||
respondTao:true,
|
||||
skillTagFilter:function(player){
|
||||
if(!player.hasMark('zhulianbihe_skill')) return false;
|
||||
},
|
||||
},
|
||||
},
|
||||
"yinyang_skill_draw":{
|
||||
"_yinyang_skill_draw":{
|
||||
ruleSkill:true,
|
||||
enable:"phaseUse",
|
||||
usable:1,
|
||||
content:function (){
|
||||
filter:function(event,player){
|
||||
return player.hasMark('yinyang_skill');
|
||||
},
|
||||
content:function(){
|
||||
player.draw();
|
||||
player.removeSkill('yinyang_skill');
|
||||
player.removeMark('yinyang_skill',1);
|
||||
},
|
||||
ai:{
|
||||
order:function (item,player){
|
||||
|
@ -3690,18 +3695,18 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
},
|
||||
"yinyang_skill_add":{
|
||||
"_yinyang_skill_add":{
|
||||
ruleSkill:true,
|
||||
trigger:{
|
||||
player:"phaseDiscardBefore",
|
||||
player:"phaseDiscardBegin",
|
||||
},
|
||||
filter:function (event,player){
|
||||
return player.needsToDiscard();
|
||||
return player.hasMark('yinyang_skill')&&player.needsToDiscard();
|
||||
},
|
||||
prompt:"是否弃置【阴阳鱼】标记,使本回合的手牌上限+2?",
|
||||
prompt:"是否弃置一枚【阴阳鱼】标记,使本回合的手牌上限+2?",
|
||||
content:function (){
|
||||
player.addTempSkill('yinyang_add','phaseAfter');
|
||||
player.removeSkill('yinyang_skill');
|
||||
player.removeMark('yinyang_skill',1);
|
||||
},
|
||||
},
|
||||
"yinyang_add":{
|
||||
|
@ -7436,20 +7441,24 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
jihun_info:"当你受到伤害后,或与你势力不同的角色脱离濒死状态后,你可以将剩余武将牌堆的一张牌当做“魂”扣置于游戏外。",
|
||||
|
||||
|
||||
"xianqu_skill":"先驱",
|
||||
"xianqu_skill_info":"",
|
||||
"_xianqu_skill":"先驱",
|
||||
"_xianqu_skill_info":"",
|
||||
"zhulianbihe_skill":"珠联璧合",
|
||||
"zhulianbihe_skill_info":"",
|
||||
_zhulianbihe_skill_draw_backup:'珠联',
|
||||
zhulian_card:'摸两张牌',
|
||||
zhulian_card_info:'弃置【珠联璧合】标记并摸两张牌',
|
||||
zhulian_card_bg:'摸',
|
||||
"yinyang_skill":"阴阳鱼",
|
||||
"yinyang_skill_info":"",
|
||||
"zhulianbihe_skill_draw":"珠联•摸牌",
|
||||
"zhulianbihe_skill_draw_info":"",
|
||||
"zhulianbihe_skill_tao":"珠联•桃",
|
||||
"zhulianbihe_skill_tao_info":"",
|
||||
"yinyang_skill_draw":"阴阳鱼",
|
||||
"yinyang_skill_draw_info":"",
|
||||
"yinyang_skill_add":"阴阳鱼",
|
||||
"yinyang_skill_add_info":"",
|
||||
"_zhulianbihe_skill_draw":"珠联",
|
||||
"_zhulianbihe_skill_draw_info":"",
|
||||
"_zhulianbihe_skill_tao":"珠联",
|
||||
"_zhulianbihe_skill_tao_info":"",
|
||||
"_yinyang_skill_draw":"阴阳鱼",
|
||||
"_yinyang_skill_draw_info":"",
|
||||
"_yinyang_skill_add":"阴阳鱼",
|
||||
"_yinyang_skill_add_info":"",
|
||||
"yinyang_add":"阴阳鱼",
|
||||
"yinyang_add_info":"",
|
||||
|
||||
|
@ -7459,8 +7468,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
"new_duanliang_info":"出牌阶段,你可以将一张黑色基本牌或黑色装备牌当做【兵粮寸断】使用。你使用【兵粮寸断】没有距离限制。若你对距离超过2的角色发动了〖断粮〗,则本回合不能再发动〖断粮〗。",
|
||||
"new_shushen":"淑慎",
|
||||
"new_shushen_info":"当你回复1点体力后,你可令一名其他角色摸一张牌。",
|
||||
"new_fenji":"奋激",
|
||||
"new_fenji_info":"一名角色的结束阶段开始时,若其没有手牌,你可以令其摸两张牌,然后你失去1点体力。",
|
||||
"new_luanji":"乱击",
|
||||
"new_luanji_info":"你可以将两张与你本回合以此法转化的花色均不相同的手牌当【万箭齐发】使用。当一名与你势力相同的角色因响应此牌而打出【闪】时,该角色摸一张牌。",
|
||||
"new_qingcheng":"倾城",
|
||||
|
@ -7950,8 +7957,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
player.$removeCharacter(event.num);
|
||||
},
|
||||
doubleDraw:function(){
|
||||
game.log(player,'获得了','#g【阴阳鱼】','标记');
|
||||
player.addSkill('yinyang_skill');
|
||||
if(!player.hasMark('yinyang_skill')) player.addMark('yinyang_skill',1);
|
||||
},
|
||||
changeViceOnline:function(){
|
||||
'step 0'
|
||||
|
@ -8028,8 +8034,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
zhulian:function(){
|
||||
player.popup('珠联璧合');
|
||||
game.log(player,'获得了','#g【珠联璧合】','标记');
|
||||
player.addSkill('zhulianbihe_skill');
|
||||
if(!player.hasMark('zhulianbihe_skill')) player.addMark('zhulianbihe_skill',1);
|
||||
},
|
||||
},
|
||||
player:{
|
||||
|
@ -8430,8 +8435,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
this.draw(2).log=false;
|
||||
}
|
||||
else{
|
||||
this.addSkill('xianqu_skill');
|
||||
game.log(this,'获得了','#g【先驱】','标记');
|
||||
this.addMark('_xianqu_skill',1);
|
||||
}
|
||||
_status.initshown=true;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue