This commit is contained in:
parent
3a6ed3419b
commit
f4f1476aa1
15
CHANGELOG.MD
15
CHANGELOG.MD
|
@ -1,10 +1,11 @@
|
||||||
1.6.1
|
1.6.1
|
||||||
bug修复
|
* bug修复
|
||||||
本轮不无懈按钮
|
* 本轮不无懈按钮
|
||||||
编辑牌堆功能
|
* 编辑牌堆功能、牌堆按钮
|
||||||
皮肤、珠联璧合提示
|
皮肤菜单
|
||||||
|
珠联璧合提示
|
||||||
选将人数、高亮颜色选项
|
选将人数、高亮颜色选项
|
||||||
收藏录像
|
* 收藏录像
|
||||||
boss武将包
|
* boss武将包
|
||||||
标记数量显示
|
* 标记数量显示
|
||||||
精简版
|
精简版
|
||||||
|
|
|
@ -15,7 +15,7 @@ card.hearth={
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
basic:{
|
basic:{
|
||||||
order:5,
|
order:2,
|
||||||
value:[6,1],
|
value:[6,1],
|
||||||
useful:2,
|
useful:2,
|
||||||
},
|
},
|
||||||
|
|
|
@ -0,0 +1,893 @@
|
||||||
|
'usr strict';
|
||||||
|
character.boss={
|
||||||
|
mode:['identity','guozhan','stone','boss'],
|
||||||
|
character:{
|
||||||
|
boss_zhangchunhua:['female','wei',4,['jueqing','wuxin','shangshix'],['boss','bossallowed'],'wei'],
|
||||||
|
boss_zhenji:['female','wei',4,['tashui','lingbo','jiaoxia','fanghua'],['boss','bossallowed'],'wei'],
|
||||||
|
// boss_liubei:['male','shu',5,['lingfeng'],['boss','bossallowed'],'qun'],
|
||||||
|
// boss_zhugeliang:['male','shu',4,[],['boss','bossallowed'],'qun'],
|
||||||
|
boss_huangyueying:['female','shu',4,['boss_gongshen','boss_jizhi','qicai','boss_guiyin'],['boss','bossallowed'],'wei'],
|
||||||
|
boss_pangtong:['male','shu',4,['boss_tianyu','qiwu','niepan','boss_yuhuo'],['boss','bossallowed'],'zhu'],
|
||||||
|
boss_zhouyu:['male','wu',6,['huoshen','boss_honglian','boss_xianyin'],['boss','bossallowed'],'zhu'],
|
||||||
|
boss_lvbu1:['male','qun',8,['mashu','wushuang','boss_baonu'],['boss','bossallowed'],'wei'],
|
||||||
|
boss_lvbu2:['male','qun',4,['mashu','wushuang','swd_xiuluo','shenwei','shenji'],['hiddenboss'],'qun'],
|
||||||
|
boss_caiwenji:['female','qun',4,['beige','boss_hujia','boss_guihan'],['boss','bossallowed'],'wei'],
|
||||||
|
boss_zhangjiao:['male','qun',8,['boss_leiji','tiandao','jidian'],['boss','bossallowed'],'shu'],
|
||||||
|
boss_zuoci:['male','qun',0,['huanhua'],['boss','bossallowed'],'shu'],
|
||||||
|
// boss_yuji:['male','qun',8,[],['boss','bossallowed'],'nei'],
|
||||||
|
boss_diaochan:['female','qun',4,['fengwu','yunshen','lianji','boss_wange','yuehun'],['boss','bossallowed'],'qun'],
|
||||||
|
boss_huatuo:['male','qun',6,['chulao','mazui','boss_shengshou','guizhen','wuqin'],['boss','bossallowed'],'wu'],
|
||||||
|
boss_dongzhuo:['male','qun',20,['jiuchi','boss_qiangzheng','boss_baolin'],['boss','bossallowed'],'shu'],
|
||||||
|
// boss_shuijing:['male','qun',8,[],['boss','bossallowed'],'wei'],
|
||||||
|
},
|
||||||
|
skill:{
|
||||||
|
boss_leiji:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'respond'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.card.name=='shan';
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
"step 0";
|
||||||
|
player.chooseTarget('是否发动雷击?').ai=function(target){
|
||||||
|
return ai.get.damageEffect(target,player,player,'thunder');
|
||||||
|
};
|
||||||
|
"step 1"
|
||||||
|
if(result.bool){
|
||||||
|
player.logSkill('diyleiji',result.targets,'thunder');
|
||||||
|
event.target=result.targets[0];
|
||||||
|
event.target.judge(function(card){
|
||||||
|
// var suit=get.suit(card);
|
||||||
|
// if(suit=='spade') return -4;
|
||||||
|
// if(suit=='club') return -2;
|
||||||
|
if(get.color(card)=='black') return -2;
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
"step 2"
|
||||||
|
if(result.bool==false){
|
||||||
|
event.target.damage('thunder');
|
||||||
|
player.draw();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
effect:{
|
||||||
|
target:function(card,player,target,current){
|
||||||
|
if(get.tag(card,'respondShan')){
|
||||||
|
var hastarget=false;
|
||||||
|
for(var i=0;i<game.players.length;i++){
|
||||||
|
if(ai.get.attitude(target,game.players[i])<0){
|
||||||
|
hastarget=true;break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var be=target.num('e',{color:'black'});
|
||||||
|
if(target.num('h','shan')&&be){
|
||||||
|
if(!target.skills.contains('guidao')) return 0;
|
||||||
|
return [0,hastarget?target.num('he')/2:0];
|
||||||
|
}
|
||||||
|
if(target.num('h','shan')&&target.num('h')>2){
|
||||||
|
if(!target.skills.contains('guidao')) return 0;
|
||||||
|
return [0,hastarget?target.num('h')/4:0];
|
||||||
|
}
|
||||||
|
if(target.num('h')>3||(be&&target.num('h')>=2)){
|
||||||
|
return [0,0];
|
||||||
|
}
|
||||||
|
if(target.num('h')==0){
|
||||||
|
return [1.5,0];
|
||||||
|
}
|
||||||
|
if(target.num('h')==1&&!be){
|
||||||
|
return [1.2,0];
|
||||||
|
}
|
||||||
|
if(!target.skills.contains('guidao')) return [1,0.05];
|
||||||
|
return [1,Math.min(0.5,(target.num('h')+be)/4)];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
wuqin:{
|
||||||
|
trigger:{player:'phaseEnd'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.num('h')==0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.draw(3)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
boss_baolin:{
|
||||||
|
inherit:'juece',
|
||||||
|
},
|
||||||
|
boss_qiangzheng:{
|
||||||
|
trigger:{player:'phaseEnd'},
|
||||||
|
forced:true,
|
||||||
|
unique:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
for(var i=0;i<game.players.length;i++){
|
||||||
|
if(game.players[i]!=player&&game.players[i].num('h')) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
var players=get.players(player);
|
||||||
|
players.remove(player);
|
||||||
|
event.players=players;
|
||||||
|
"step 1"
|
||||||
|
if(event.players.length){
|
||||||
|
var current=event.players.shift();
|
||||||
|
var hs=current.get('h')
|
||||||
|
if(hs.length){
|
||||||
|
player.gain(hs.randomGet());
|
||||||
|
current.$give(1,player);
|
||||||
|
}
|
||||||
|
event.redo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
guizhen:{
|
||||||
|
trigger:{player:'loseEnd'},
|
||||||
|
frequent:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
if(player.num('h')) return false;
|
||||||
|
for(var i=0;i<event.cards.length;i++){
|
||||||
|
if(event.cards[i].original=='h') return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
var players=get.players(player);
|
||||||
|
players.remove(player);
|
||||||
|
event.players=players;
|
||||||
|
"step 1"
|
||||||
|
if(event.players.length){
|
||||||
|
var current=event.players.shift();
|
||||||
|
var hs=current.get('h');
|
||||||
|
if(hs.length){
|
||||||
|
current.lose(hs)._triggered=null;
|
||||||
|
current.$throw(hs);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
current.loseHp();
|
||||||
|
}
|
||||||
|
game.delay(0.5);
|
||||||
|
event.redo();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
boss_konghun:{
|
||||||
|
trigger:{player:'phaseEnd'},
|
||||||
|
direct:true,
|
||||||
|
filter:function(){
|
||||||
|
return game.players.length>=3;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
player.chooseTarget(function(card,player,target){
|
||||||
|
return target!=player;
|
||||||
|
}).ai=function(){
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
"step 1"
|
||||||
|
if(result.bool){
|
||||||
|
player.logSkill('boss_konghun',result.targets);
|
||||||
|
result.targets[0].goMad();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
group:'boss_konghun2'
|
||||||
|
},
|
||||||
|
boss_konghun2:{
|
||||||
|
trigger:{player:'phaseBegin'},
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
content:function(){
|
||||||
|
var players=game.players.concat(game.dead);
|
||||||
|
for(var i=0;i<players.length;i++){
|
||||||
|
if(players[i].isMad()){
|
||||||
|
players[i].unMad();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
yuehun:{
|
||||||
|
unique:true,
|
||||||
|
trigger:{player:'phaseEnd'},
|
||||||
|
frequent:true,
|
||||||
|
content:function(){
|
||||||
|
player.recover();
|
||||||
|
player.draw(2);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
boss_wange:{
|
||||||
|
inherit:'guiji'
|
||||||
|
},
|
||||||
|
fengwu:{
|
||||||
|
unique:true,
|
||||||
|
enable:'phaseUse',
|
||||||
|
usable:1,
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
event.current=player.next;
|
||||||
|
"step 1"
|
||||||
|
event.current.chooseToUse({name:'sha'},function(card,player,target){
|
||||||
|
if(player==target) return false;
|
||||||
|
if(get.distance(player,target)<=1) return true;
|
||||||
|
for(var i=0;i<game.players.length;i++){
|
||||||
|
if(game.players[i]==player) continue;
|
||||||
|
if(get.distance(player,game.players[i])<get.distance(player,target)) return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
})
|
||||||
|
"step 2"
|
||||||
|
if(result.bool==false) event.current.loseHp();
|
||||||
|
if(event.current.next!=player){
|
||||||
|
event.current=event.current.next;
|
||||||
|
game.delay(0.5);
|
||||||
|
event.goto(1);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
order:1,
|
||||||
|
result:{
|
||||||
|
player:function(player){
|
||||||
|
if(player.num('h','shan')) return 1;
|
||||||
|
var num=0;
|
||||||
|
for(var i=0;i<game.players.length;i++){
|
||||||
|
if(game.players[i].canUse('sha',player)&&game.players[i].num('h')>1){
|
||||||
|
num--;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
num++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
huanhua:{
|
||||||
|
trigger:{global:'gameDrawAfter'},
|
||||||
|
forced:true,
|
||||||
|
unique:true,
|
||||||
|
content:function(){
|
||||||
|
for(var i=0;i<game.players.length;i++){
|
||||||
|
if(game.players[i]==player) continue;
|
||||||
|
player.maxHp+=game.players[i].maxHp;
|
||||||
|
var skills=lib.character[game.players[i].name][3];
|
||||||
|
for(var j=0;j<skills.length;j++){
|
||||||
|
if(!lib.skill[skills[j]].forceunique){
|
||||||
|
player.addSkill(skills[j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
player.hp=player.maxHp;
|
||||||
|
player.update();
|
||||||
|
},
|
||||||
|
group:['huanhua3','huanhua4'],
|
||||||
|
ai:{
|
||||||
|
threaten:0.8,
|
||||||
|
effect:{
|
||||||
|
target:function(card){
|
||||||
|
if(card.name=='bingliang') return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
huanhua2:{
|
||||||
|
trigger:{player:'phaseDrawBefore'},
|
||||||
|
priority:10,
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
check:function(){
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
trigger.untrigger();
|
||||||
|
trigger.finish();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
huanhua3:{
|
||||||
|
trigger:{global:'drawAfter'},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.parent.name!='phaseDraw') return false;
|
||||||
|
return event.player!=player;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.draw(trigger.num);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
huanhua4:{
|
||||||
|
trigger:{global:'discardAfter'},
|
||||||
|
forced:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.parent.parent.name!='phaseDiscard') return false;
|
||||||
|
return event.player!=player;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.chooseToDiscard(trigger.cards.length,true);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
jidian:{
|
||||||
|
trigger:{source:'damageAfter'},
|
||||||
|
direct:true,
|
||||||
|
unique:true,
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
player.chooseTarget('是否发动【亟电】?',function(card,player,target){
|
||||||
|
return get.distance(trigger.player,target)<=1&&trigger.player!=target;
|
||||||
|
}).ai=function(target){
|
||||||
|
return ai.get.damageEffect(target,player,player,'thunder')+0.1;
|
||||||
|
}
|
||||||
|
"step 1"
|
||||||
|
if(result.bool){
|
||||||
|
event.target=result.targets[0];
|
||||||
|
event.target.judge(function(card){
|
||||||
|
return get.color(card)=='red'?0:-1;
|
||||||
|
})
|
||||||
|
player.logSkill('jidian',event.target,false);
|
||||||
|
trigger.player.line(event.target,'thunder');
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
"step 2"
|
||||||
|
if(result.color=='black'){
|
||||||
|
event.target.damage('thunder');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tinqin:{
|
||||||
|
inherit:'manjuan'
|
||||||
|
},
|
||||||
|
boss_hujia:{
|
||||||
|
trigger:{player:'phaseEnd'},
|
||||||
|
direct:true,
|
||||||
|
unique:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
if(player.hp==player.maxHp) return false;
|
||||||
|
if(!player.num('he')) return false;
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
player.chooseCardTarget({
|
||||||
|
position:'he',
|
||||||
|
filterTarget:function(card,player,target){
|
||||||
|
return player!=target&&!target.storage.boss_hujia;
|
||||||
|
},
|
||||||
|
filterCard:true,
|
||||||
|
ai1:function(card){
|
||||||
|
return ai.get.unuseful(card)+9;
|
||||||
|
},
|
||||||
|
ai2:function(target){
|
||||||
|
if(target.disabledSkills.boss_hujia) return Math.max(1,10-target.maxHp);
|
||||||
|
return 1/target.maxHp;
|
||||||
|
},
|
||||||
|
prompt:'是否发动【胡笳】?'
|
||||||
|
});
|
||||||
|
"step 1"
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
player.logSkill('boss_hujia',target);
|
||||||
|
if(target.disabledSkills.boss_hujia){
|
||||||
|
target.loseMaxHp();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
target.disabledSkills.boss_hujia=lib.character[target.name][3];
|
||||||
|
}
|
||||||
|
player.discard(result.cards);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.2,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
boss_guihan:{
|
||||||
|
unique:true,
|
||||||
|
enable:'chooseToUse',
|
||||||
|
mark:true,
|
||||||
|
init:function(player){
|
||||||
|
player.storage.boss_guihan=false;
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.type!='dying') return false;
|
||||||
|
if(player!=_status.dying) return false;
|
||||||
|
if(player.storage.boss_guihan) return false;
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
player.removeSkill('boss_guihan');
|
||||||
|
player.recover(player.maxHp-player.hp);
|
||||||
|
player.storage.boss_guihan=true;
|
||||||
|
"step 1"
|
||||||
|
player.draw(4);
|
||||||
|
"step 2"
|
||||||
|
for(var i=0;i<game.players.length;i++){
|
||||||
|
delete game.players[i].disabledSkills.boss_hujia;
|
||||||
|
}
|
||||||
|
if(game.bossinfo){
|
||||||
|
game.bossinfo.loopType=1;
|
||||||
|
}
|
||||||
|
player.removeSkill('beige');
|
||||||
|
player.removeSkill('boss_hujia');
|
||||||
|
player.addSkill('tinqin');
|
||||||
|
player.addSkill('boss_huixin');
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
skillTagFilter:function(player){
|
||||||
|
if(player.storage.boss_guihan) return false;
|
||||||
|
},
|
||||||
|
save:true,
|
||||||
|
result:{
|
||||||
|
player:4,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
intro:{
|
||||||
|
content:'limited'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
huoshen:{
|
||||||
|
trigger:{player:'damageBefore'},
|
||||||
|
forced:true,
|
||||||
|
unique:true,
|
||||||
|
filter:function(event){
|
||||||
|
return event.nature=='fire';
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
trigger.untrigger();
|
||||||
|
trigger.finish();
|
||||||
|
player.recover();
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
effect:{
|
||||||
|
target:function(card){
|
||||||
|
if(get.tag(card,'fireDamage')){
|
||||||
|
return [0,2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
boss_xianyin:{
|
||||||
|
trigger:{player:'loseEnd'},
|
||||||
|
frequent:true,
|
||||||
|
unique:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return _status.currentPhase!=player;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
player.judge(function(card){
|
||||||
|
return get.color(card)=='red'?1:0;
|
||||||
|
});
|
||||||
|
"step 1"
|
||||||
|
if(result.bool){
|
||||||
|
player.chooseTarget(true,'选择一个目标令其失去一点体力',function(card,player,target){
|
||||||
|
return player!=target;
|
||||||
|
}).ai=function(target){
|
||||||
|
return Math.max(1,9-target.hp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
"step 2"
|
||||||
|
if(result.targets.length){
|
||||||
|
result.targets[0].loseHp();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
effect:{
|
||||||
|
target:function(card){
|
||||||
|
if(get.tag(card,'loseCard')){
|
||||||
|
return [0.5,1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
boss_huixin:{
|
||||||
|
trigger:{player:'loseEnd'},
|
||||||
|
frequent:true,
|
||||||
|
unique:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return _status.currentPhase!=player;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
player.judge();
|
||||||
|
"step 1"
|
||||||
|
if(result.color=='black'){
|
||||||
|
_status.currentPhase.loseHp();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
player.recover();
|
||||||
|
player.draw();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
effect:{
|
||||||
|
target:function(card){
|
||||||
|
if(get.tag(card,'loseCard')){
|
||||||
|
return [0.5,1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
boss_shengshou:{
|
||||||
|
trigger:{player:'useCard'},
|
||||||
|
frequent:true,
|
||||||
|
unique:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.hp<player.maxHp;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
player.judge(function(card){
|
||||||
|
return get.color(card)=='red'?1:0;
|
||||||
|
});
|
||||||
|
"step 1"
|
||||||
|
if(result.bool){
|
||||||
|
player.recover();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
boss_honglian:{
|
||||||
|
trigger:{player:'phaseEnd'},
|
||||||
|
forced:true,
|
||||||
|
unique:true,
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
event.players=get.players(player);
|
||||||
|
event.players.remove(player);
|
||||||
|
player.draw(2);
|
||||||
|
"step 1"
|
||||||
|
if(event.players.length){
|
||||||
|
event.players.shift().damage('fire');
|
||||||
|
event.redo();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
boss_yuhuo:{
|
||||||
|
trigger:{player:'niepanAfter'},
|
||||||
|
forced:true,
|
||||||
|
unique:true,
|
||||||
|
content:function(){
|
||||||
|
player.addSkill('kanpo');
|
||||||
|
player.addSkill('shenwei');
|
||||||
|
player.addSkill('zhuyu');
|
||||||
|
if(game.bossinfo){
|
||||||
|
game.bossinfo.loopType=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
boss_tianyu:{
|
||||||
|
inherit:'suoling'
|
||||||
|
},
|
||||||
|
boss_jizhi:{
|
||||||
|
trigger:{player:'useCard'},
|
||||||
|
frequent:true,
|
||||||
|
unique:true,
|
||||||
|
filter:function(event){
|
||||||
|
var type=get.type(event.card,'trick');
|
||||||
|
return (type=='trick'||type=='equip')&&event.cards[0]&&event.cards[0]==event.card;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
var cards=get.cards();
|
||||||
|
player.gain(cards,'gain2');
|
||||||
|
game.log(get.translation(player)+'获得了'+get.translation(cards));
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
threaten:1.4
|
||||||
|
}
|
||||||
|
},
|
||||||
|
boss_guiyin:{
|
||||||
|
mod:{
|
||||||
|
targetEnabled:function(card,player,target){
|
||||||
|
if(_status.currentPhase==player&&target.hp<player.hp) return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
boss_gongshen:{
|
||||||
|
trigger:{global:'gameDrawAfter'},
|
||||||
|
forced:true,
|
||||||
|
unique:true,
|
||||||
|
content:function(){
|
||||||
|
for(var i=0;i<game.players.length;i++){
|
||||||
|
if(game.players[i]!=player){
|
||||||
|
game.players[i].forcemin=true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mod:{
|
||||||
|
targetEnabled:function(card,player,target){
|
||||||
|
if(get.type(card)=='delay'&&player!=target){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fanghua:{
|
||||||
|
trigger:{player:'phaseEnd'},
|
||||||
|
forced:true,
|
||||||
|
unique:true,
|
||||||
|
filter:function(){
|
||||||
|
for(var i=0;i<game.players.length;i++){
|
||||||
|
if(game.players[i].isTurnedOver()){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
event.players=get.players(player);
|
||||||
|
event.num=0;
|
||||||
|
for(var i=0;i<event.players.length;i++){
|
||||||
|
if(!event.players[i].isTurnedOver()){
|
||||||
|
event.players.splice(i--,1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"step 1"
|
||||||
|
if(event.players.length){
|
||||||
|
event.players.shift().loseHp();
|
||||||
|
event.redo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tashui:{
|
||||||
|
trigger:{player:['useCard','respondAfter']},
|
||||||
|
direct:true,
|
||||||
|
unique:true,
|
||||||
|
filter:function(event){
|
||||||
|
return get.color(event.card)=='black';
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
game.delay(0.5);
|
||||||
|
player.chooseTarget('是否发动【踏水】?',function(card,player,target){
|
||||||
|
return player!=target;
|
||||||
|
}).ai=function(target){
|
||||||
|
if(target.isTurnedOver()) return -1;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
"step 1"
|
||||||
|
if(result.bool){
|
||||||
|
player.logSkill('tashui',result.targets,'thunder');
|
||||||
|
result.targets[0].turnOver();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
effect:{
|
||||||
|
player:function(card){
|
||||||
|
if(get.color(card)=='black'){
|
||||||
|
return [1,2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
shangshix:{
|
||||||
|
trigger:{player:['loseEnd','changeHp']},
|
||||||
|
forced:true,
|
||||||
|
unique:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.num('h')<4;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.draw(4-player.num('h'));
|
||||||
|
},
|
||||||
|
group:'shangshix2',
|
||||||
|
ai:{
|
||||||
|
effect:{
|
||||||
|
target:function(card,player,target){
|
||||||
|
if(card.name=='shunshou') return;
|
||||||
|
if(card.name=='guohe'){
|
||||||
|
if(!target.num('e')) return [0,1];
|
||||||
|
}
|
||||||
|
else if(get.tag(card,'loseCard')){
|
||||||
|
return [0,1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
shangshix2:{
|
||||||
|
trigger:{player:'phaseEnd'},
|
||||||
|
forced:true,
|
||||||
|
unique:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.hp>1;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
event.players=get.players(player);
|
||||||
|
event.num=0;
|
||||||
|
"step 1"
|
||||||
|
if(event.players.length){
|
||||||
|
event.players.shift().loseHp();
|
||||||
|
event.redo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
wuxin:{
|
||||||
|
inherit:'miles_xueyi',
|
||||||
|
group:'swd_wuxie'
|
||||||
|
},
|
||||||
|
shenwei:{
|
||||||
|
unique:true,
|
||||||
|
trigger:{player:'phaseDrawBegin'},
|
||||||
|
forced:true,
|
||||||
|
content:function(){
|
||||||
|
trigger.num+=Math.max(2,game.players.length-1);
|
||||||
|
},
|
||||||
|
mod:{
|
||||||
|
maxHandcard:function(player,current){
|
||||||
|
return current+Math.max(2,game.players.length-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
shenji:{
|
||||||
|
unique:true,
|
||||||
|
mod:{
|
||||||
|
selectTarget:function(card,player,range){
|
||||||
|
if(card.name=='sha'||card.name=='juedou') range[1]=3;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
boss_baonu:{
|
||||||
|
unique:true,
|
||||||
|
group:'boss_baonu2',
|
||||||
|
trigger:{player:'changeHp'},
|
||||||
|
forced:true,
|
||||||
|
priority:100,
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.hp<=4
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.init('boss_lvbu2');
|
||||||
|
player.update();
|
||||||
|
ui.clear();
|
||||||
|
while(_status.event.name!='phaseLoop'){
|
||||||
|
_status.event=_status.event.parent;
|
||||||
|
}
|
||||||
|
for(var i=0;i<game.players.length;i++){
|
||||||
|
for(var j in game.players[i].tempSkills){
|
||||||
|
game.players[i].skills.remove(j);
|
||||||
|
delete game.players[i].tempSkills[j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_status.paused=false;
|
||||||
|
_status.event.player=player;
|
||||||
|
_status.event.step=0;
|
||||||
|
if(game.bossinfo){
|
||||||
|
game.bossinfo.loopType=1;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
effect:{
|
||||||
|
target:function(card,player){
|
||||||
|
if(get.tag(card,'damage')||get.tag(card,'loseHp')){
|
||||||
|
if(player.hp==5){
|
||||||
|
if(game.players.length<4) return [0,5];
|
||||||
|
var num=0
|
||||||
|
for(var i=0;i<game.players.length;i++){
|
||||||
|
if(game.players[i]!=game.boss&&game.players[i].hp==1){
|
||||||
|
num++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(num>1) return [0,2];
|
||||||
|
if(num&&Math.random()<0.7) return [0,1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
boss_baonu2:{
|
||||||
|
trigger:{player:'gameDrawBegin'},
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
content:function(){
|
||||||
|
player.draw(4,false);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
translate:{
|
||||||
|
boss_qiangzheng:'强征',
|
||||||
|
boss_qiangzheng_info:'锁定技,回合结束阶段,你获得每个敌方角色的一张手牌',
|
||||||
|
boss_baolin:'暴凌',
|
||||||
|
guizhen:'归真',
|
||||||
|
guizhen_info:'每当你失去最后一张手牌,你可以所有敌人失去全部手牌,没有手牌的角色失去一点体力(不触发技能)',
|
||||||
|
boss_shengshou:'圣手',
|
||||||
|
boss_shengshou_info:'每当你使用一张牌,你可以进行一次判定,若为红色,你回复一点体力',
|
||||||
|
wuqin:'五禽戏',
|
||||||
|
wuqin_info:'回合结束阶段,若你没有手牌,可以摸三张牌',
|
||||||
|
|
||||||
|
boss_konghun:'控心',
|
||||||
|
boss_konghun_info:'回合结束阶段,你可以指定一名敌人令其进入混乱状态(不受对方控制,并将队友视为敌人)直到下一回合开始',
|
||||||
|
yuehun:'月魂',
|
||||||
|
yuehun_info:'回合开始阶段,你可以回复一点体力并摸两张牌',
|
||||||
|
fengwu:'风舞',
|
||||||
|
fengwu_info:'出牌阶段限一次,可令除你外的所有角色依次对与其距离最近的另一名角色使用一张【杀】,无法如此做者失去1点体力。',
|
||||||
|
boss_wange:'笙歌',
|
||||||
|
|
||||||
|
huanhua:'幻化',
|
||||||
|
huanhua_info:'锁定技,游戏开始时,你获得其他角色的所有技能,体力上限变为其他角色之和;其他角色于摸牌阶段摸牌时,你摸等量的牌;其他角色于弃牌阶段弃牌时,你弃置等量的手牌',
|
||||||
|
|
||||||
|
boss_leiji:'雷击',
|
||||||
|
boss_leiji_info:'每当你使用或打出一张【闪】,可令任意一名角色进行一次判定,若结果为黑色,其受到一点雷电伤害,然后你摸一张牌',
|
||||||
|
jidian:'亟电',
|
||||||
|
jidian_info:'每当你造成一次伤害,可以指定距离受伤害角色1以内的一名其他角色进行判定,若结果为黑色,该角色受到一点雷电伤害',
|
||||||
|
|
||||||
|
tinqin:'听琴',
|
||||||
|
boss_guihan:'归汉',
|
||||||
|
boss_guihan_info:'限定技,濒死阶段,你可以将体力回复至体力上限,摸4张牌,令所有敌人的技能恢复,并获得技能【听琴】、【蕙质】',
|
||||||
|
boss_huixin:'蕙质',
|
||||||
|
boss_huixin_info:'每当你于回合外失去牌,可以进行一次判定,若为黑色,当前回合角色失去一点体力,否则你回复一点体力并摸一张牌',
|
||||||
|
boss_hujia:'胡笳',
|
||||||
|
boss_hujia_info:'回合结束阶段,若你已受伤,可以弃置一张牌令一名其他角色的所有技能失效,若其所有技能已失效,改为令其失去一点体力上限',
|
||||||
|
boss_honglian:'红莲',
|
||||||
|
boss_honglian_info:'锁定技,回合结束阶段,你摸两张牌,并对所有敌人造成一点火焰伤害',
|
||||||
|
huoshen:'火神',
|
||||||
|
huoshen_info:'锁定技,你防止即将受到的火焰伤害,改为回复1点体力',
|
||||||
|
boss_xianyin:'仙音',
|
||||||
|
boss_xianyin_info:'每当你于回合外失去牌,你可以进行一次判定,若为红色,你令一名敌人失去一点体力',
|
||||||
|
|
||||||
|
// boss_yuhuo:'浴火',
|
||||||
|
// boss_yuhuo_info:'觉醒技,在你涅槃后,你获得技能【神威】、【朱羽】',
|
||||||
|
boss_tianyu:'天狱',
|
||||||
|
|
||||||
|
boss_jizhi:'集智',
|
||||||
|
boss_jizhi_info:'每当你使用一张锦囊牌或装备牌,你可以摸一张牌并展示之',
|
||||||
|
boss_guiyin:'归隐',
|
||||||
|
boss_guiyin_info:'锁定技,体力值比你多的角色无法在回合内对你使用卡牌',
|
||||||
|
boss_gongshen:'工神',
|
||||||
|
boss_gongshen_info:'锁定技,除你之外的角色没有装备区;你不能成为其他角色的的延时锦囊目标',
|
||||||
|
|
||||||
|
fanghua:'芳华',
|
||||||
|
fanghua_info:'回合结束阶段,你可以令所有已翻面角色流失一点体力',
|
||||||
|
tashui:'踏水',
|
||||||
|
tashui_info:'每当你使用或打出一张黑色牌,你可以令一名其他角色翻面',
|
||||||
|
|
||||||
|
wuxin:'无心',
|
||||||
|
wuxin_info:'锁定技,你防止即将受到的伤害,改为流失一点体力;你不能成为其他角色的延时锦囊的目标',
|
||||||
|
shangshix:'伤逝',
|
||||||
|
shangshix2:'伤逝',
|
||||||
|
shangshix_info:'锁定技,你的手牌数至少为4,回合结束阶段,若你的体力值大于1,你令场上所有角色流失一点体力',
|
||||||
|
|
||||||
|
boss_baonu:'暴怒',
|
||||||
|
boss_baonu_info:'锁定技,当你的体力值降至4或更低时,你变身为暴怒战神,并立即开始你的回合',
|
||||||
|
shenwei:'神威',
|
||||||
|
shenwei_info:'锁定技,摸牌阶段,你额外摸X张牌,你的手牌上限+X,X为敌方存活角色个数且至少为2',
|
||||||
|
shenji:'神戟',
|
||||||
|
shenji_info:'你使用的杀或决斗可指定至多3名角色为目标',
|
||||||
|
|
||||||
|
boss_shuijing:'水镜先生',
|
||||||
|
boss_huangyueying:'奇智女杰',
|
||||||
|
boss_zhangchunhua:'冷血皇后',
|
||||||
|
boss_satan:'堕落天使',
|
||||||
|
boss_dongzhuo:'乱世魔王',
|
||||||
|
boss_lvbu1:'最强神话',
|
||||||
|
boss_lvbu2:'暴怒战神',
|
||||||
|
boss_zhouyu:'赤壁火神',
|
||||||
|
boss_pangtong:'涅盘凤雏',
|
||||||
|
boss_zhugeliang:'祭风卧龙',
|
||||||
|
boss_zhangjiao:'天公将军',
|
||||||
|
boss_zuoci:'迷之仙人',
|
||||||
|
boss_yuji:'琅琊道士',
|
||||||
|
boss_liubei:'蜀汉烈帝',
|
||||||
|
boss_caiwenji:'异乡孤女',
|
||||||
|
boss_huatuo:'药坛圣手',
|
||||||
|
boss_luxun:'蹁跹君子',
|
||||||
|
boss_zhenji:'洛水仙子',
|
||||||
|
boss_diaochan:'绝代妖姬',
|
||||||
|
}
|
||||||
|
};
|
|
@ -2600,7 +2600,8 @@ character.yijiang={
|
||||||
trigger:{player:'useCard'},
|
trigger:{player:'useCard'},
|
||||||
frequent:true,
|
frequent:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return (get.type(event.card,'trick')==player.storage.qiangzhi&&event.cards[0]&&event.cards[0]==event.card);
|
// return (get.type(event.card,'trick')==player.storage.qiangzhi&&event.cards[0]&&event.cards[0]==event.card);
|
||||||
|
return get.type(event.card,'trick')==player.storage.qiangzhi;
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
player.draw();
|
player.draw();
|
||||||
|
@ -3607,6 +3608,9 @@ character.yijiang={
|
||||||
trigger:{source:'damageBefore',player:'damageBefore'},
|
trigger:{source:'damageBefore',player:'damageBefore'},
|
||||||
forced:true,
|
forced:true,
|
||||||
priority:15,
|
priority:15,
|
||||||
|
check:function(event,player){
|
||||||
|
return ai.get.effect(event.target,event.card,event.player,player)<0;
|
||||||
|
},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return get.type(event.card,'trick')=='trick';
|
return get.type(event.card,'trick')=='trick';
|
||||||
},
|
},
|
||||||
|
|
|
@ -226,8 +226,9 @@ window.config={
|
||||||
show_pause:true,
|
show_pause:true,
|
||||||
show_auto:true,
|
show_auto:true,
|
||||||
show_volumn:true,
|
show_volumn:true,
|
||||||
|
show_cardpile:true,
|
||||||
only_fullskin:true,
|
only_fullskin:true,
|
||||||
show_wuxie:true,
|
show_wuxie:false,
|
||||||
show_wuxie_self:true,
|
show_wuxie_self:true,
|
||||||
show_stat:true,
|
show_stat:true,
|
||||||
show_playerids:true,
|
show_playerids:true,
|
||||||
|
@ -258,6 +259,8 @@ window.config={
|
||||||
plays:[],
|
plays:[],
|
||||||
banned:[],
|
banned:[],
|
||||||
bannedcards:[],
|
bannedcards:[],
|
||||||
|
bannedpile:{},
|
||||||
|
addedpile:{},
|
||||||
|
|
||||||
mode:'identity',
|
mode:'identity',
|
||||||
mode_config:{
|
mode_config:{
|
||||||
|
|
345
game/game.js
345
game/game.js
|
@ -598,9 +598,23 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
show_cardpile:{
|
||||||
|
name:'显示牌堆按钮',
|
||||||
|
init:true,
|
||||||
|
unfrequent:true,
|
||||||
|
onclick:function(bool){
|
||||||
|
game.saveConfig('show_cardpile',bool);
|
||||||
|
if(lib.config.show_cardpile){
|
||||||
|
ui.cardPileButton.style.display='';
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
ui.cardPileButton.style.display='none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
show_wuxie:{
|
show_wuxie:{
|
||||||
name:'显示不询问无懈',
|
name:'显示不询问无懈',
|
||||||
init:true,
|
init:false,
|
||||||
unfrequent:true,
|
unfrequent:true,
|
||||||
onclick:function(bool){
|
onclick:function(bool){
|
||||||
game.saveConfig('show_wuxie',bool);
|
game.saveConfig('show_wuxie',bool);
|
||||||
|
@ -4340,8 +4354,37 @@
|
||||||
delete this.node.jiu;
|
delete this.node.jiu;
|
||||||
delete this.node.jiu2;
|
delete this.node.jiu2;
|
||||||
}
|
}
|
||||||
|
this.updateMarks();
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
updateMarks:function(){
|
||||||
|
for(var i in this.marks){
|
||||||
|
if(i=='ghujia'||(!this.marks[i].querySelector('.image')&&lib.skill[i]&&
|
||||||
|
lib.skill[i].intro&&this.storage[i])){
|
||||||
|
this.marks[i].classList.add('overflowmark')
|
||||||
|
var num;
|
||||||
|
if(i=='ghujia'){
|
||||||
|
num=this.hujia;
|
||||||
|
}
|
||||||
|
else if(typeof this.storage[i]=='number'){
|
||||||
|
num=this.storage[i];
|
||||||
|
}
|
||||||
|
else if(Array.isArray(this.storage[i])){
|
||||||
|
num=this.storage[i].length;
|
||||||
|
}
|
||||||
|
if(num){
|
||||||
|
if(!this.marks[i].markcount){
|
||||||
|
this.marks[i].markcount=ui.create.div('.markcount.menubutton',this.marks[i]);
|
||||||
|
}
|
||||||
|
this.marks[i].markcount.innerHTML=num;
|
||||||
|
}
|
||||||
|
else if(this.marks[i].markcount){
|
||||||
|
this.marks[i].markcount.delete();
|
||||||
|
delete this.marks[i].markcount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
num:function(arg1,arg2,arg3){
|
num:function(arg1,arg2,arg3){
|
||||||
var i,j,k;
|
var i,j,k;
|
||||||
if(get.itemtype(arg1)=='position'){
|
if(get.itemtype(arg1)=='position'){
|
||||||
|
@ -5791,6 +5834,7 @@
|
||||||
}
|
}
|
||||||
if(this.marks[name]){
|
if(this.marks[name]){
|
||||||
this.marks[name].info=info;
|
this.marks[name].info=info;
|
||||||
|
this.updateMarks();
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if(card){
|
if(card){
|
||||||
|
@ -5888,6 +5932,7 @@
|
||||||
node.oncontextmenu=ui.click.rightplayer;
|
node.oncontextmenu=ui.click.rightplayer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.updateMarks();
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -8085,6 +8130,7 @@
|
||||||
},
|
},
|
||||||
character:{},
|
character:{},
|
||||||
perfectPair:{},
|
perfectPair:{},
|
||||||
|
cardPile:{},
|
||||||
group:['wei','shu','wu','qun'],
|
group:['wei','shu','wu','qun'],
|
||||||
nature:['fire','thunder','poison'],
|
nature:['fire','thunder','poison'],
|
||||||
linked:['fire','thunder'],
|
linked:['fire','thunder'],
|
||||||
|
@ -9355,6 +9401,9 @@
|
||||||
addVideo:function(type,player,content){
|
addVideo:function(type,player,content){
|
||||||
if(_status.video) return;
|
if(_status.video) return;
|
||||||
if(!_status.videoInited) return;
|
if(!_status.videoInited) return;
|
||||||
|
if(type=='storage'&&player&&player.update){
|
||||||
|
player.updateMarks();
|
||||||
|
}
|
||||||
if(game.getVideoName){
|
if(game.getVideoName){
|
||||||
var time=get.time();
|
var time=get.time();
|
||||||
if(!_status.lastVideoLog){
|
if(!_status.lastVideoLog){
|
||||||
|
@ -9998,9 +10047,21 @@
|
||||||
var vinum=parseInt(lib.config.video);
|
var vinum=parseInt(lib.config.video);
|
||||||
if(!_status.video&&vinum&&game.getVideoName&&window.indexedDB){
|
if(!_status.video&&vinum&&game.getVideoName&&window.indexedDB){
|
||||||
var store=lib.db.transaction(['video'],'readwrite').objectStore('video');
|
var store=lib.db.transaction(['video'],'readwrite').objectStore('video');
|
||||||
if(lib.videos.length>=vinum){
|
var videos=lib.videos.slice(0);
|
||||||
var toremove=lib.videos.pop();
|
for(var i=0;i<videos.length;i++){
|
||||||
store.delete(toremove.time);
|
if(videos[i].starred){
|
||||||
|
videos.splice(i--,1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(var deletei=0;deletei<5;deletei++){
|
||||||
|
if(videos.length>=vinum){
|
||||||
|
var toremove=videos.pop();
|
||||||
|
lib.videos.remove(toremove);
|
||||||
|
store.delete(toremove.time);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
var newvid={
|
var newvid={
|
||||||
name:game.getVideoName(),
|
name:game.getVideoName(),
|
||||||
|
@ -11148,6 +11209,28 @@
|
||||||
if(listen) node.listen(listen);
|
if(listen) node.listen(listen);
|
||||||
return node;
|
return node;
|
||||||
},
|
},
|
||||||
|
selectlist:function(list,init,position){
|
||||||
|
var select=document.createElement('select');
|
||||||
|
for(var i=0;i<list.length;i++){
|
||||||
|
var option=document.createElement('option');
|
||||||
|
if(Array.isArray(list[i])){
|
||||||
|
option.value=list[i][0];
|
||||||
|
option.innerHTML=list[i][1];
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
option.value=list[i];
|
||||||
|
option.innerHTML=list[i];
|
||||||
|
}
|
||||||
|
if(init==list[i]){
|
||||||
|
option.selected='selected';
|
||||||
|
}
|
||||||
|
select.appendChild(option);
|
||||||
|
}
|
||||||
|
if(position){
|
||||||
|
position.appendChild(select);
|
||||||
|
}
|
||||||
|
return select;
|
||||||
|
},
|
||||||
table:function(){
|
table:function(){
|
||||||
var str,row,col,position,position2,fixed,style,divposition;
|
var str,row,col,position,position2,fixed,style,divposition;
|
||||||
for(var i=0;i<arguments.length;i++){
|
for(var i=0;i<arguments.length;i++){
|
||||||
|
@ -11296,7 +11379,8 @@
|
||||||
else{
|
else{
|
||||||
for(var i in lib.character){
|
for(var i in lib.character){
|
||||||
if(lib.character[i][4].contains('minskin')) continue;
|
if(lib.character[i][4].contains('minskin')) continue;
|
||||||
if(lib.character[i][4].contains('boss')) continue;
|
if(lib.character[i][4].contains('boss')&&!
|
||||||
|
lib.character[i][4].contains('bossallowed')) continue;
|
||||||
if(lib.character[i][4].contains('hiddenboss')) continue;
|
if(lib.character[i][4].contains('hiddenboss')) continue;
|
||||||
if(filter&&filter(i)) continue;
|
if(filter&&filter(i)) continue;
|
||||||
list.push(i);
|
list.push(i);
|
||||||
|
@ -12488,6 +12572,8 @@
|
||||||
if(!lib.config.show_pause){
|
if(!lib.config.show_pause){
|
||||||
ui.pause.style.display='none';
|
ui.pause.style.display='none';
|
||||||
}
|
}
|
||||||
|
ui.cardPileButton=ui.create.system('牌堆',null,true);
|
||||||
|
lib.setPopped(ui.cardPileButton,ui.click.cardPileButton,220);
|
||||||
ui.wuxie=ui.create.system('不询问无懈',ui.click.wuxie,true);
|
ui.wuxie=ui.create.system('不询问无懈',ui.click.wuxie,true);
|
||||||
if(!lib.config.touchscreen){
|
if(!lib.config.touchscreen){
|
||||||
lib.setPopped(ui.config2,ui.click.pauseconfig,170);
|
lib.setPopped(ui.config2,ui.click.pauseconfig,170);
|
||||||
|
@ -12506,6 +12592,9 @@
|
||||||
if(!lib.config.show_wuxie){
|
if(!lib.config.show_wuxie){
|
||||||
ui.wuxie.style.display='none';
|
ui.wuxie.style.display='none';
|
||||||
}
|
}
|
||||||
|
if(!lib.config.show_cardpile){
|
||||||
|
ui.cardPileButton.style.display='none';
|
||||||
|
}
|
||||||
if(lib.config.touchscreen&&!lib.config.confirmtouch){
|
if(lib.config.touchscreen&&!lib.config.confirmtouch){
|
||||||
var backtomouse=ui.create.system('返回鼠标模式');
|
var backtomouse=ui.create.system('返回鼠标模式');
|
||||||
backtomouse.addEventListener('click',function(){
|
backtomouse.addEventListener('click',function(){
|
||||||
|
@ -12961,13 +13050,13 @@
|
||||||
if(autoskillexpanded){
|
if(autoskillexpanded){
|
||||||
this.classList.remove('on');
|
this.classList.remove('on');
|
||||||
for(var k=0;k<autoskillNodes.length;k++){
|
for(var k=0;k<autoskillNodes.length;k++){
|
||||||
autoskillNodes[k].hide();
|
autoskillNodes[k].style.display='none';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
this.classList.add('on');
|
this.classList.add('on');
|
||||||
for(var k=0;k<autoskillNodes.length;k++){
|
for(var k=0;k<autoskillNodes.length;k++){
|
||||||
autoskillNodes[k].show();
|
autoskillNodes[k].style.display='';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
autoskillexpanded=!autoskillexpanded;
|
autoskillexpanded=!autoskillexpanded;
|
||||||
|
@ -12976,13 +13065,13 @@
|
||||||
if(banskillexpanded){
|
if(banskillexpanded){
|
||||||
this.classList.remove('on');
|
this.classList.remove('on');
|
||||||
for(var k=0;k<banskillNodes.length;k++){
|
for(var k=0;k<banskillNodes.length;k++){
|
||||||
banskillNodes[k].hide();
|
banskillNodes[k].style.display='none';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
this.classList.add('on');
|
this.classList.add('on');
|
||||||
for(var k=0;k<banskillNodes.length;k++){
|
for(var k=0;k<banskillNodes.length;k++){
|
||||||
banskillNodes[k].show();
|
banskillNodes[k].style.display='';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
banskillexpanded=!banskillexpanded;
|
banskillexpanded=!banskillexpanded;
|
||||||
|
@ -13021,15 +13110,17 @@
|
||||||
var cfgnode=createConfig(cfg);
|
var cfgnode=createConfig(cfg);
|
||||||
if(cfg.type=='autoskill'){
|
if(cfg.type=='autoskill'){
|
||||||
autoskillNodes.push(cfgnode);
|
autoskillNodes.push(cfgnode);
|
||||||
cfgnode.style.transition='all 0s';
|
// cfgnode.style.transition='all 0s';
|
||||||
cfgnode.classList.add('indent');
|
cfgnode.classList.add('indent');
|
||||||
cfgnode.hide();
|
// cfgnode.hide();
|
||||||
|
cfgnode.style.display='none';
|
||||||
}
|
}
|
||||||
else if(cfg.type=='banskill'){
|
else if(cfg.type=='banskill'){
|
||||||
banskillNodes.push(cfgnode);
|
banskillNodes.push(cfgnode);
|
||||||
cfgnode.style.transition='all 0s';
|
// cfgnode.style.transition='all 0s';
|
||||||
cfgnode.classList.add('indent');
|
cfgnode.classList.add('indent');
|
||||||
cfgnode.hide();
|
// cfgnode.hide();
|
||||||
|
cfgnode.style.display='none';
|
||||||
}
|
}
|
||||||
if(j=='import_data_button'){
|
if(j=='import_data_button'){
|
||||||
ui.import_data_button=cfgnode;
|
ui.import_data_button=cfgnode;
|
||||||
|
@ -13275,6 +13366,17 @@
|
||||||
game.saveConfig('cards',lib.config.cards);
|
game.saveConfig('cards',lib.config.cards);
|
||||||
updateNodes();
|
updateNodes();
|
||||||
};
|
};
|
||||||
|
var toggleCardPile=function(bool){
|
||||||
|
var name=this._link.config._name;
|
||||||
|
var number=this._link.config._number;
|
||||||
|
if(bool){
|
||||||
|
lib.config.bannedpile[name].remove(number);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
lib.config.bannedpile[name].add(number);
|
||||||
|
}
|
||||||
|
game.saveConfig('bannedpile',lib.config.bannedpile);
|
||||||
|
}
|
||||||
|
|
||||||
var createModeConfig=function(mode,position){
|
var createModeConfig=function(mode,position){
|
||||||
var info=lib.cardPack[mode];
|
var info=lib.cardPack[mode];
|
||||||
|
@ -13323,6 +13425,136 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
page.classList.add('menu-buttons');
|
page.classList.add('menu-buttons');
|
||||||
|
if(mode.indexOf('mode_')!=0&&lib.cardPile[mode]){
|
||||||
|
var cardpileNodes=[];
|
||||||
|
var cardpileexpanded=false;
|
||||||
|
if(!lib.config.bannedpile[mode]){
|
||||||
|
lib.config.bannedpile[mode]=[];
|
||||||
|
}
|
||||||
|
if(!lib.config.addedpile[mode]){
|
||||||
|
lib.config.addedpile[mode]=[];
|
||||||
|
}
|
||||||
|
ui.create.div('.config.more','编辑牌堆 <div>></div>',page,function(){
|
||||||
|
if(cardpileexpanded){
|
||||||
|
this.classList.remove('on');
|
||||||
|
for(var k=0;k<cardpileNodes.length;k++){
|
||||||
|
cardpileNodes[k].style.display='none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
this.classList.add('on');
|
||||||
|
for(var k=0;k<cardpileNodes.length;k++){
|
||||||
|
cardpileNodes[k].style.display='';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cardpileexpanded=!cardpileexpanded;
|
||||||
|
});
|
||||||
|
var cfgnode=createConfig({
|
||||||
|
name:'添加...',
|
||||||
|
clear:true,
|
||||||
|
onclick:function(){
|
||||||
|
this.nextSibling.classList.toggle('hidden');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
cardpileNodes.push(cfgnode);
|
||||||
|
cfgnode.style.display='none';
|
||||||
|
cfgnode.classList.add('cardpilecfg');
|
||||||
|
cfgnode.classList.add('toggle');
|
||||||
|
cfgnode.style.marginTop='5px';
|
||||||
|
page.appendChild(cfgnode);
|
||||||
|
|
||||||
|
var cardpileadd=ui.create.div('.config.toggle.hidden.cardpilecfg.cardpilecfgadd',page);
|
||||||
|
var pileaddlist=[];
|
||||||
|
for(var i=0;i<lib.config.cards.length;i++){
|
||||||
|
if(!lib.cardPack[lib.config.cards[i]]) continue;
|
||||||
|
for(var j=0;j<lib.cardPack[lib.config.cards[i]].length;j++){
|
||||||
|
var cname=lib.cardPack[lib.config.cards[i]][j];
|
||||||
|
pileaddlist.push([cname,get.translation(cname)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var cardpileaddname=ui.create.selectlist(pileaddlist,null,cardpileadd);
|
||||||
|
cardpileaddname.style.width='75px';
|
||||||
|
cardpileaddname.style.marginRight='2px';
|
||||||
|
cardpileaddname.style.marginLeft='-1px';
|
||||||
|
var cardpileaddsuit=ui.create.selectlist([
|
||||||
|
['heart','红桃'],
|
||||||
|
['diamond','方片'],
|
||||||
|
['club','梅花'],
|
||||||
|
['spade','黑桃'],
|
||||||
|
],null,cardpileadd);
|
||||||
|
cardpileaddsuit.style.width='53px';
|
||||||
|
cardpileaddsuit.style.marginRight='2px';
|
||||||
|
var cardpileaddnumber=ui.create.selectlist([
|
||||||
|
1,2,3,4,5,6,7,8,9,10,11,12,13
|
||||||
|
],null,cardpileadd);
|
||||||
|
cardpileaddnumber.style.width='43px';
|
||||||
|
cardpileaddnumber.style.marginRight='2px';
|
||||||
|
var button=document.createElement('button');
|
||||||
|
button.innerHTML='确定';
|
||||||
|
button.style.width='40px';
|
||||||
|
var deletecard=function(){
|
||||||
|
this.parentNode.remove();
|
||||||
|
var info=this.parentNode._info;
|
||||||
|
var list=lib.config.addedpile[mode];
|
||||||
|
for(var i=0;i<list.length;i++){
|
||||||
|
if(list[i][0]==info[0]&&list[i][1]==info[1]&&list[i][2]==info[2]){
|
||||||
|
list.splice(i,1);break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
game.saveConfig('addedpile',lib.config.addedpile);
|
||||||
|
};
|
||||||
|
button.onclick=function(){
|
||||||
|
var card=[
|
||||||
|
cardpileaddsuit.value,
|
||||||
|
cardpileaddnumber.value,
|
||||||
|
cardpileaddname.value,
|
||||||
|
];
|
||||||
|
lib.config.addedpile[mode].push(card);
|
||||||
|
game.saveConfig('addedpile',lib.config.addedpile);
|
||||||
|
var cfgnode=ui.create.div('.config.toggle.cardpilecfg');
|
||||||
|
cfgnode._info=card;
|
||||||
|
cfgnode.innerHTML=get.translation(card[2])+' '+get.translation(card[0])+card[1];
|
||||||
|
var cfgnodedelete=document.createElement('span');
|
||||||
|
cfgnodedelete.classList.add('cardpiledelete');
|
||||||
|
cfgnodedelete.innerHTML='删除';
|
||||||
|
cfgnodedelete.onclick=deletecard;
|
||||||
|
cfgnode.appendChild(cfgnodedelete);
|
||||||
|
page.insertBefore(cfgnode,cardpileadd.nextSibling);
|
||||||
|
};
|
||||||
|
cardpileadd.appendChild(button);
|
||||||
|
cardpileadd.style.whiteSpace='nowrap';
|
||||||
|
cardpileNodes.push(cardpileadd);
|
||||||
|
|
||||||
|
for(var i=0;i<lib.config.addedpile[mode].length;i++){
|
||||||
|
var card=lib.config.addedpile[mode][i];
|
||||||
|
var cfgnode=ui.create.div('.config.toggle.cardpilecfg');
|
||||||
|
cfgnode._info=card;
|
||||||
|
cfgnode.innerHTML=get.translation(card[2])+' '+get.translation(card[0])+card[1];
|
||||||
|
var cfgnodedelete=document.createElement('span');
|
||||||
|
cfgnodedelete.classList.add('cardpiledelete');
|
||||||
|
cfgnodedelete.innerHTML='删除';
|
||||||
|
cfgnodedelete.onclick=deletecard;
|
||||||
|
cfgnode.appendChild(cfgnodedelete);
|
||||||
|
cfgnode.style.display='none';
|
||||||
|
cardpileNodes.push(cfgnode);
|
||||||
|
page.appendChild(cfgnode);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(var i=0;i<lib.cardPile[mode].length;i++){
|
||||||
|
var card=lib.cardPile[mode][i];
|
||||||
|
var cfgnode=createConfig({
|
||||||
|
name:get.translation(card[2])+' '+get.translation(card[0])+card[1],
|
||||||
|
_number:i,
|
||||||
|
_name:mode,
|
||||||
|
init:!lib.config.bannedpile[mode].contains(i),
|
||||||
|
onclick:toggleCardPile
|
||||||
|
});
|
||||||
|
cardpileNodes.push(cfgnode);
|
||||||
|
cfgnode.style.display='none';
|
||||||
|
cfgnode.classList.add('cardpilecfg');
|
||||||
|
page.appendChild(cfgnode);
|
||||||
|
}
|
||||||
|
}
|
||||||
return node;
|
return node;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -13654,6 +13886,17 @@
|
||||||
}
|
}
|
||||||
this.classList.toggle('active');
|
this.classList.toggle('active');
|
||||||
};
|
};
|
||||||
|
var staritem=function(){
|
||||||
|
this.parentNode.classList.toggle('starred');
|
||||||
|
var store=lib.db.transaction(['video'],'readwrite').objectStore('video');
|
||||||
|
if(this.parentNode.classList.contains('starred')){
|
||||||
|
this.parentNode.link.starred=true;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
this.parentNode.link.starred=false;
|
||||||
|
}
|
||||||
|
store.put(this.parentNode.link);
|
||||||
|
}
|
||||||
var createNode=function(video,before){
|
var createNode=function(video,before){
|
||||||
var node=ui.create.div('.videonode.menubutton.large',clickcapt);
|
var node=ui.create.div('.videonode.menubutton.large',clickcapt);
|
||||||
node.link=video;
|
node.link=video;
|
||||||
|
@ -13681,6 +13924,10 @@
|
||||||
else{
|
else{
|
||||||
page.appendChild(node);
|
page.appendChild(node);
|
||||||
}
|
}
|
||||||
|
ui.create.div('.video_star','★',node,staritem);
|
||||||
|
if(video.starred){
|
||||||
|
node.classList.add('starred');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for(var i=0;i<lib.videos.length;i++){
|
for(var i=0;i<lib.videos.length;i++){
|
||||||
createNode(lib.videos[i]);
|
createNode(lib.videos[i]);
|
||||||
|
@ -13715,15 +13962,27 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var store=lib.db.transaction(['video'],'readwrite').objectStore('video');
|
var store=lib.db.transaction(['video'],'readwrite').objectStore('video');
|
||||||
if(lib.videos.length>=parseInt(lib.config.video)&&lib.videos.length){
|
var videos=lib.videos.slice(0);
|
||||||
var toremove=lib.videos.pop();
|
for(var i=0;i<videos.length;i++){
|
||||||
store.delete(toremove.time);
|
if(videos[i].starred){
|
||||||
for(var i=0;i<page.childNodes.length;i++){
|
videos.splice(i--,1);
|
||||||
if(page.childNodes[i].link==toremove){
|
}
|
||||||
page.childNodes[i].remove();
|
}
|
||||||
break;
|
for(var deletei=0;deletei<5;deletei++){
|
||||||
|
if(videos.length>=parseInt(lib.config.video)&&videos.length){
|
||||||
|
var toremove=videos.pop();
|
||||||
|
lib.videos.remove(toremove);
|
||||||
|
store.delete(toremove.time);
|
||||||
|
for(var i=0;i<page.childNodes.length;i++){
|
||||||
|
if(page.childNodes[i].link==toremove){
|
||||||
|
page.childNodes[i].remove();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for(var i=0;i<lib.videos.length;i++){
|
for(var i=0;i<lib.videos.length;i++){
|
||||||
if(lib.videos[i].time==data.time){
|
if(lib.videos[i].time==data.time){
|
||||||
|
@ -14256,6 +14515,25 @@
|
||||||
|
|
||||||
return uiintro;
|
return uiintro;
|
||||||
},
|
},
|
||||||
|
cardPileButton:function(){
|
||||||
|
var uiintro=ui.create.dialog('hidden');
|
||||||
|
uiintro.listen(function(e){
|
||||||
|
e.stopPropagation();
|
||||||
|
});
|
||||||
|
uiintro.add('剩余 <span style="font-family:'+'xinwei'+'">'+ui.cardPile.childNodes.length);
|
||||||
|
uiintro.add('<div class="text center">弃牌堆</div>');
|
||||||
|
if(ui.discardPile.childNodes.length){
|
||||||
|
var list=[];
|
||||||
|
for(var i=0;i<ui.discardPile.childNodes.length;i++){
|
||||||
|
list.push(ui.discardPile.childNodes[i]);
|
||||||
|
}
|
||||||
|
uiintro.addSmall([list,'card']);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
uiintro.add('<div class="text center" style="padding-bottom:3px">无</div>');
|
||||||
|
}
|
||||||
|
return uiintro;
|
||||||
|
},
|
||||||
volumn:function(){
|
volumn:function(){
|
||||||
var uiintro=ui.create.dialog('hidden');
|
var uiintro=ui.create.dialog('hidden');
|
||||||
uiintro.listen(function(e){
|
uiintro.listen(function(e){
|
||||||
|
@ -18422,7 +18700,7 @@
|
||||||
lib.hiddenCharacters.push(k);
|
lib.hiddenCharacters.push(k);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else if(lib.config.mode!='boss'||i!='boss'){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18431,6 +18709,9 @@
|
||||||
if(!character[i][j][k][4]){
|
if(!character[i][j][k][4]){
|
||||||
character[i][j][k][4]=[];
|
character[i][j][k][4]=[];
|
||||||
}
|
}
|
||||||
|
if(character[i][j][k][4].contains('boss')){
|
||||||
|
lib.config.forbidai.add(k);
|
||||||
|
}
|
||||||
// if(lib.config.only_fullskin&&lib.isNewLayout()&&lib.config.mode!='chess'){
|
// if(lib.config.only_fullskin&&lib.isNewLayout()&&lib.config.mode!='chess'){
|
||||||
// if(!character[i][j][k][4].contains('fullskin')&&!character[i][j][k][4].contains('minskin')){
|
// if(!character[i][j][k][4].contains('fullskin')&&!character[i][j][k][4].contains('minskin')){
|
||||||
// continue;
|
// continue;
|
||||||
|
@ -18478,12 +18759,30 @@
|
||||||
if(j=='mode'||j=='forbid') continue;
|
if(j=='mode'||j=='forbid') continue;
|
||||||
if(j=='list'){
|
if(j=='list'){
|
||||||
if(lib.config.cards.contains(i)){
|
if(lib.config.cards.contains(i)){
|
||||||
|
var pile;
|
||||||
if(typeof card[i][j]=='function'){
|
if(typeof card[i][j]=='function'){
|
||||||
lib.card.list=lib.card.list.concat(lib.init.eval(card[i][j])());
|
pile=lib.init.eval(card[i][j])();
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
lib.card.list=lib.card.list.concat(card[i][j]);
|
pile=card[i][j];
|
||||||
}
|
}
|
||||||
|
lib.cardPile[i]=pile.slice(0);
|
||||||
|
if(lib.config.bannedpile[i]){
|
||||||
|
for(var k=0;k<lib.config.bannedpile[i].length;k++){
|
||||||
|
pile[lib.config.bannedpile[i][k]]=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(var k=0;k<pile.length;k++){
|
||||||
|
if(!pile[k]){
|
||||||
|
pile.splice(k--,1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(lib.config.addedpile[i]){
|
||||||
|
for(var k=0;k<lib.config.addedpile[i].length;k++){
|
||||||
|
pile.push(lib.config.addedpile[i][k]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lib.card.list=lib.card.list.concat(pile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
|
|
@ -18,6 +18,7 @@ character.pack={
|
||||||
gujian:'古剑奇谭',
|
gujian:'古剑奇谭',
|
||||||
xianjian:'仙剑',
|
xianjian:'仙剑',
|
||||||
xiake:'侠客',
|
xiake:'侠客',
|
||||||
|
boss:'BOSS'
|
||||||
};
|
};
|
||||||
card.pack={
|
card.pack={
|
||||||
standard:'标准',
|
standard:'标准',
|
||||||
|
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
@ -101,6 +101,14 @@ table{table-layout: fixed;}
|
||||||
#sidebar3.left{left:0;text-align:left;}
|
#sidebar3.left{left:0;text-align:left;}
|
||||||
.dialog.popped #sidebar,
|
.dialog.popped #sidebar,
|
||||||
.dialog.popped #sidebar2{padding:0;}
|
.dialog.popped #sidebar2{padding:0;}
|
||||||
|
.dialog .poppedpile{
|
||||||
|
width: 100%;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
}
|
||||||
|
.dialog .poppedpile>div{
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
#sidebar>div,#sidebar3>div{margin: 10px;position: relative;display: block;min-height: 5px;}
|
#sidebar>div,#sidebar3>div{margin: 10px;position: relative;display: block;min-height: 5px;}
|
||||||
#scrollzone1{left: 0;}
|
#scrollzone1{left: 0;}
|
||||||
#scrollzone2{left: calc(50% - 140px);}
|
#scrollzone2{left: calc(50% - 140px);}
|
||||||
|
@ -226,6 +234,23 @@ body>.background{z-index:-2}
|
||||||
.card>.background{font-family:'xiaozhuan'}
|
.card>.background{font-family:'xiaozhuan'}
|
||||||
.card>.background.tight{letter-spacing: -0.2em}
|
.card>.background.tight{letter-spacing: -0.2em}
|
||||||
.marks>.card>.background.skillmark{font-family:'huangcao';padding-top:4px;}
|
.marks>.card>.background.skillmark{font-family:'huangcao';padding-top:4px;}
|
||||||
|
.marks>.card.overflowmark{
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
.marks>div>.markcount.menubutton{
|
||||||
|
font-family: 'xinwei';
|
||||||
|
font-size: 9px;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
padding: 0;
|
||||||
|
line-height: 14px;
|
||||||
|
position: absolute;
|
||||||
|
left: 16px;
|
||||||
|
top: 14px;
|
||||||
|
border-radius: 100%;
|
||||||
|
z-index: 1;
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
/*--------窗口--------*/
|
/*--------窗口--------*/
|
||||||
.dialog{text-align: center;z-index:4;}
|
.dialog{text-align: center;z-index:4;}
|
||||||
.dialog{width: calc(90% - 420px);height: calc(100% / 3 - 160px / 3 + 120px);}
|
.dialog{width: calc(90% - 420px);height: calc(100% / 3 - 160px / 3 + 120px);}
|
||||||
|
@ -491,7 +516,8 @@ margin-bottom: 5px;
|
||||||
.unseen>.avatar,.unseen>.name,.unseen2>.avatar2{opacity: 0 !important;}
|
.unseen>.avatar,.unseen>.name,.unseen2>.avatar2{opacity: 0 !important;}
|
||||||
.player[data-position='0'].unseen>.avatar,
|
.player[data-position='0'].unseen>.avatar,
|
||||||
.player[data-position='0'].unseen2>.avatar2,
|
.player[data-position='0'].unseen2>.avatar2,
|
||||||
.player[data-position='0']>.name{opacity: 0.2 !important}
|
.player[data-position='0'].unseen>.name,
|
||||||
|
.player[data-position='0'].unseen2>.name{opacity: 0.2 !important}
|
||||||
.linked>.avatar,.linked>.avatar2{transform:rotate(-90deg);}
|
.linked>.avatar,.linked>.avatar2{transform:rotate(-90deg);}
|
||||||
.linked>.avatar2{top: 5px;}
|
.linked>.avatar2{top: 5px;}
|
||||||
.linked>.identity{top: 88px;}
|
.linked>.identity{top: 88px;}
|
||||||
|
|
|
@ -46,7 +46,8 @@
|
||||||
.menu-cheat.config{
|
.menu-cheat.config{
|
||||||
transition-property: opacity;
|
transition-property: opacity;
|
||||||
}
|
}
|
||||||
.menu-buttons>.toggle{
|
.menu-buttons>.toggle,
|
||||||
|
.menu-buttons>.config.more{
|
||||||
position:relative;
|
position:relative;
|
||||||
margin-bottom: 10px !important;
|
margin-bottom: 10px !important;
|
||||||
margin-left: 10px !important;
|
margin-left: 10px !important;
|
||||||
|
@ -54,9 +55,30 @@
|
||||||
width: calc(100% - 25px) !important;
|
width: calc(100% - 25px) !important;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
.menu-buttons>.config.more,
|
||||||
|
.menu-buttons>.toggle.cardpilecfg{
|
||||||
|
margin-bottom: 0 !important;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.menu-buttons>.toggle.cardpilecfgadd:not(.hidden){
|
||||||
|
margin-top: 0 !important;
|
||||||
|
}
|
||||||
|
.menu-buttons>.toggle.cardpilecfg{
|
||||||
|
margin-left: 20px !important;
|
||||||
|
width: calc(100% - 35px) !important;
|
||||||
|
}
|
||||||
|
.menu-buttons>.config.more *{
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
.menu-buttons>.button{
|
.menu-buttons>.button{
|
||||||
zoom:0.75;
|
zoom:0.75;
|
||||||
}
|
}
|
||||||
|
.menu-buttons .cardpiledelete{
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
float: right;
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
.menu-help{
|
.menu-help{
|
||||||
width: calc(100% - 30px) !important;
|
width: calc(100% - 30px) !important;
|
||||||
text-align: left !important;
|
text-align: left !important;
|
||||||
|
@ -468,3 +490,20 @@
|
||||||
left: 48px;
|
left: 48px;
|
||||||
top: 48px;
|
top: 48px;
|
||||||
}
|
}
|
||||||
|
.videonode>.video_star{
|
||||||
|
opacity: 0;
|
||||||
|
position: absolute;
|
||||||
|
left: 196px;
|
||||||
|
top: 4px;
|
||||||
|
font-size: 16px;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.videonode:not(.starred):hover>.video_star{
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
.videonode.starred>.video_star{
|
||||||
|
opacity: 1
|
||||||
|
}
|
||||||
|
|
880
mode/boss.js
880
mode/boss.js
|
@ -581,798 +581,8 @@ mode.boss={
|
||||||
chongzheng:6
|
chongzheng:6
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
character:{
|
|
||||||
boss_zhangchunhua:['female','wei',4,['jueqing','wuxin','shangshix'],['fullskin','boss'],'wei'],
|
|
||||||
boss_zhenji:['female','wei',4,['tashui','lingbo','jiaoxia','fanghua'],['fullskin','boss'],'wei'],
|
|
||||||
// boss_liubei:['male','shu',5,['lingfeng'],['fullskin','boss'],'qun'],
|
|
||||||
// boss_zhugeliang:['male','shu',4,[],['fullskin','boss'],'qun'],
|
|
||||||
boss_huangyueying:['female','shu',4,['boss_gongshen','boss_jizhi','qicai','boss_guiyin'],['fullskin','boss'],'wei'],
|
|
||||||
boss_pangtong:['male','shu',4,['boss_tianyu','qiwu','niepan','boss_yuhuo'],['fullskin','boss'],'zhu'],
|
|
||||||
boss_zhouyu:['male','wu',6,['huoshen','boss_honglian','boss_xianyin'],['fullskin','boss'],'zhu'],
|
|
||||||
boss_lvbu1:['male','qun',8,['mashu','wushuang','boss_baonu'],['fullskin','boss'],'wei'],
|
|
||||||
boss_lvbu2:['male','qun',4,['mashu','wushuang','swd_xiuluo','shenwei','shenji'],['fullskin','hiddenboss'],'qun'],
|
|
||||||
boss_caiwenji:['female','qun',4,['beige','boss_hujia','boss_guihan'],['fullskin','boss'],'wei'],
|
|
||||||
boss_zhangjiao:['male','qun',8,['boss_leiji','tiandao','jidian'],['fullskin','boss'],'shu'],
|
|
||||||
boss_zuoci:['male','qun',0,['huanhua'],['fullskin','boss'],'shu'],
|
|
||||||
// boss_yuji:['male','qun',8,[],['fullskin','boss'],'nei'],
|
|
||||||
boss_diaochan:['female','qun',4,['fengwu','yunshen','lianji','boss_wange','yuehun'],['fullskin','boss'],'qun'],
|
|
||||||
boss_huatuo:['male','qun',6,['chulao','mazui','boss_shengshou','guizhen','wuqin'],['fullskin','boss'],'wu'],
|
|
||||||
boss_dongzhuo:['male','qun',20,['jiuchi','boss_qiangzheng','boss_baolin'],['fullskin','boss'],'shu'],
|
|
||||||
// boss_shuijing:['male','qun',8,[],['fullskin','boss'],'wei'],
|
|
||||||
},
|
|
||||||
skill:{
|
skill:{
|
||||||
boss_leiji:{
|
|
||||||
audio:2,
|
|
||||||
trigger:{player:'respond'},
|
|
||||||
filter:function(event,player){
|
|
||||||
return event.card.name=='shan';
|
|
||||||
},
|
|
||||||
direct:true,
|
|
||||||
content:function(){
|
|
||||||
"step 0";
|
|
||||||
player.chooseTarget('是否发动雷击?').ai=function(target){
|
|
||||||
return ai.get.damageEffect(target,player,player,'thunder');
|
|
||||||
};
|
|
||||||
"step 1"
|
|
||||||
if(result.bool){
|
|
||||||
player.logSkill('diyleiji',result.targets,'thunder');
|
|
||||||
event.target=result.targets[0];
|
|
||||||
event.target.judge(function(card){
|
|
||||||
// var suit=get.suit(card);
|
|
||||||
// if(suit=='spade') return -4;
|
|
||||||
// if(suit=='club') return -2;
|
|
||||||
if(get.color(card)=='black') return -2;
|
|
||||||
return 0;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
event.finish();
|
|
||||||
}
|
|
||||||
"step 2"
|
|
||||||
if(result.bool==false){
|
|
||||||
event.target.damage('thunder');
|
|
||||||
player.draw();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
ai:{
|
|
||||||
effect:{
|
|
||||||
target:function(card,player,target,current){
|
|
||||||
if(get.tag(card,'respondShan')){
|
|
||||||
var hastarget=false;
|
|
||||||
for(var i=0;i<game.players.length;i++){
|
|
||||||
if(ai.get.attitude(target,game.players[i])<0){
|
|
||||||
hastarget=true;break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var be=target.num('e',{color:'black'});
|
|
||||||
if(target.num('h','shan')&&be){
|
|
||||||
if(!target.skills.contains('guidao')) return 0;
|
|
||||||
return [0,hastarget?target.num('he')/2:0];
|
|
||||||
}
|
|
||||||
if(target.num('h','shan')&&target.num('h')>2){
|
|
||||||
if(!target.skills.contains('guidao')) return 0;
|
|
||||||
return [0,hastarget?target.num('h')/4:0];
|
|
||||||
}
|
|
||||||
if(target.num('h')>3||(be&&target.num('h')>=2)){
|
|
||||||
return [0,0];
|
|
||||||
}
|
|
||||||
if(target.num('h')==0){
|
|
||||||
return [1.5,0];
|
|
||||||
}
|
|
||||||
if(target.num('h')==1&&!be){
|
|
||||||
return [1.2,0];
|
|
||||||
}
|
|
||||||
if(!target.skills.contains('guidao')) return [1,0.05];
|
|
||||||
return [1,Math.min(0.5,(target.num('h')+be)/4)];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
wuqin:{
|
|
||||||
trigger:{player:'phaseEnd'},
|
|
||||||
filter:function(event,player){
|
|
||||||
return player.num('h')==0;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
player.draw(3)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
boss_baolin:{
|
|
||||||
inherit:'juece',
|
|
||||||
},
|
|
||||||
boss_qiangzheng:{
|
|
||||||
trigger:{player:'phaseEnd'},
|
|
||||||
forced:true,
|
|
||||||
unique:true,
|
|
||||||
filter:function(event,player){
|
|
||||||
for(var i=0;i<game.players.length;i++){
|
|
||||||
if(game.players[i]!=player&&game.players[i].num('h')) return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
"step 0"
|
|
||||||
var players=get.players(player);
|
|
||||||
players.remove(player);
|
|
||||||
event.players=players;
|
|
||||||
"step 1"
|
|
||||||
if(event.players.length){
|
|
||||||
var current=event.players.shift();
|
|
||||||
var hs=current.get('h')
|
|
||||||
if(hs.length){
|
|
||||||
player.gain(hs.randomGet());
|
|
||||||
current.$give(1,player);
|
|
||||||
}
|
|
||||||
event.redo();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
guizhen:{
|
|
||||||
trigger:{player:'loseEnd'},
|
|
||||||
frequent:true,
|
|
||||||
filter:function(event,player){
|
|
||||||
if(player.num('h')) return false;
|
|
||||||
for(var i=0;i<event.cards.length;i++){
|
|
||||||
if(event.cards[i].original=='h') return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
"step 0"
|
|
||||||
var players=get.players(player);
|
|
||||||
players.remove(player);
|
|
||||||
event.players=players;
|
|
||||||
"step 1"
|
|
||||||
if(event.players.length){
|
|
||||||
var current=event.players.shift();
|
|
||||||
var hs=current.get('h');
|
|
||||||
if(hs.length){
|
|
||||||
current.lose(hs)._triggered=null;
|
|
||||||
current.$throw(hs);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
current.loseHp();
|
|
||||||
}
|
|
||||||
game.delay(0.5);
|
|
||||||
event.redo();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
boss_konghun:{
|
|
||||||
trigger:{player:'phaseEnd'},
|
|
||||||
direct:true,
|
|
||||||
filter:function(){
|
|
||||||
return game.players.length>=3;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
"step 0"
|
|
||||||
player.chooseTarget(function(card,player,target){
|
|
||||||
return target!=player;
|
|
||||||
}).ai=function(){
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
"step 1"
|
|
||||||
if(result.bool){
|
|
||||||
player.logSkill('boss_konghun',result.targets);
|
|
||||||
result.targets[0].goMad();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
group:'boss_konghun2'
|
|
||||||
},
|
|
||||||
boss_konghun2:{
|
|
||||||
trigger:{player:'phaseBegin'},
|
|
||||||
forced:true,
|
|
||||||
popup:false,
|
|
||||||
content:function(){
|
|
||||||
var players=game.players.concat(game.dead);
|
|
||||||
for(var i=0;i<players.length;i++){
|
|
||||||
if(players[i].isMad()){
|
|
||||||
players[i].unMad();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
yuehun:{
|
|
||||||
unique:true,
|
|
||||||
trigger:{player:'phaseEnd'},
|
|
||||||
frequent:true,
|
|
||||||
content:function(){
|
|
||||||
player.recover();
|
|
||||||
player.draw(2);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
boss_wange:{
|
|
||||||
inherit:'guiji'
|
|
||||||
},
|
|
||||||
fengwu:{
|
|
||||||
unique:true,
|
|
||||||
enable:'phaseUse',
|
|
||||||
usable:1,
|
|
||||||
content:function(){
|
|
||||||
"step 0"
|
|
||||||
event.current=player.next;
|
|
||||||
"step 1"
|
|
||||||
event.current.chooseToUse({name:'sha'},function(card,player,target){
|
|
||||||
if(player==target) return false;
|
|
||||||
if(get.distance(player,target)<=1) return true;
|
|
||||||
for(var i=0;i<game.players.length;i++){
|
|
||||||
if(game.players[i]==player) continue;
|
|
||||||
if(get.distance(player,game.players[i])<get.distance(player,target)) return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
})
|
|
||||||
"step 2"
|
|
||||||
if(result.bool==false) event.current.loseHp();
|
|
||||||
if(event.current.next!=player){
|
|
||||||
event.current=event.current.next;
|
|
||||||
game.delay(0.5);
|
|
||||||
event.goto(1);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
ai:{
|
|
||||||
order:1,
|
|
||||||
result:{
|
|
||||||
player:function(player){
|
|
||||||
if(player.num('h','shan')) return 1;
|
|
||||||
var num=0;
|
|
||||||
for(var i=0;i<game.players.length;i++){
|
|
||||||
if(game.players[i].canUse('sha',player)&&game.players[i].num('h')>1){
|
|
||||||
num--;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
num++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return num;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
huanhua:{
|
|
||||||
trigger:{global:'gameDrawAfter'},
|
|
||||||
forced:true,
|
|
||||||
unique:true,
|
|
||||||
content:function(){
|
|
||||||
for(var i=0;i<game.players.length;i++){
|
|
||||||
if(game.players[i]==player) continue;
|
|
||||||
player.maxHp+=game.players[i].maxHp;
|
|
||||||
var skills=lib.character[game.players[i].name][3];
|
|
||||||
for(var j=0;j<skills.length;j++){
|
|
||||||
if(!lib.skill[skills[j]].forceunique){
|
|
||||||
player.addSkill(skills[j]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
player.hp=player.maxHp;
|
|
||||||
player.update();
|
|
||||||
},
|
|
||||||
group:['huanhua3','huanhua4'],
|
|
||||||
ai:{
|
|
||||||
threaten:0.8,
|
|
||||||
effect:{
|
|
||||||
target:function(card){
|
|
||||||
if(card.name=='bingliang') return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
huanhua2:{
|
|
||||||
trigger:{player:'phaseDrawBefore'},
|
|
||||||
priority:10,
|
|
||||||
forced:true,
|
|
||||||
popup:false,
|
|
||||||
check:function(){
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
trigger.untrigger();
|
|
||||||
trigger.finish();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
huanhua3:{
|
|
||||||
trigger:{global:'drawAfter'},
|
|
||||||
forced:true,
|
|
||||||
filter:function(event,player){
|
|
||||||
if(event.parent.name!='phaseDraw') return false;
|
|
||||||
return event.player!=player;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
player.draw(trigger.num);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
huanhua4:{
|
|
||||||
trigger:{global:'discardAfter'},
|
|
||||||
forced:true,
|
|
||||||
filter:function(event,player){
|
|
||||||
if(event.parent.parent.name!='phaseDiscard') return false;
|
|
||||||
return event.player!=player;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
player.chooseToDiscard(trigger.cards.length,true);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
jidian:{
|
|
||||||
trigger:{source:'damageAfter'},
|
|
||||||
direct:true,
|
|
||||||
unique:true,
|
|
||||||
content:function(){
|
|
||||||
"step 0"
|
|
||||||
player.chooseTarget('是否发动【亟电】?',function(card,player,target){
|
|
||||||
return get.distance(trigger.player,target)<=1&&trigger.player!=target;
|
|
||||||
}).ai=function(target){
|
|
||||||
return ai.get.damageEffect(target,player,player,'thunder')+0.1;
|
|
||||||
}
|
|
||||||
"step 1"
|
|
||||||
if(result.bool){
|
|
||||||
event.target=result.targets[0];
|
|
||||||
event.target.judge(function(card){
|
|
||||||
return get.color(card)=='red'?0:-1;
|
|
||||||
})
|
|
||||||
player.logSkill('jidian',event.target,false);
|
|
||||||
trigger.player.line(event.target,'thunder');
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
event.finish();
|
|
||||||
}
|
|
||||||
"step 2"
|
|
||||||
if(result.color=='black'){
|
|
||||||
event.target.damage('thunder');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
tinqin:{
|
|
||||||
inherit:'manjuan'
|
|
||||||
},
|
|
||||||
boss_hujia:{
|
|
||||||
trigger:{player:'phaseEnd'},
|
|
||||||
direct:true,
|
|
||||||
unique:true,
|
|
||||||
filter:function(event,player){
|
|
||||||
if(player.hp==player.maxHp) return false;
|
|
||||||
if(!player.num('he')) return false;
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
"step 0"
|
|
||||||
player.chooseCardTarget({
|
|
||||||
position:'he',
|
|
||||||
filterTarget:function(card,player,target){
|
|
||||||
return player!=target&&!target.storage.boss_hujia;
|
|
||||||
},
|
|
||||||
filterCard:true,
|
|
||||||
ai1:function(card){
|
|
||||||
return ai.get.unuseful(card)+9;
|
|
||||||
},
|
|
||||||
ai2:function(target){
|
|
||||||
if(target.disabledSkills.boss_hujia) return Math.max(1,10-target.maxHp);
|
|
||||||
return 1/target.maxHp;
|
|
||||||
},
|
|
||||||
prompt:'是否发动【胡笳】?'
|
|
||||||
});
|
|
||||||
"step 1"
|
|
||||||
if(result.bool){
|
|
||||||
var target=result.targets[0];
|
|
||||||
player.logSkill('boss_hujia',target);
|
|
||||||
if(target.disabledSkills.boss_hujia){
|
|
||||||
target.loseMaxHp();
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
target.disabledSkills.boss_hujia=lib.character[target.name][3];
|
|
||||||
}
|
|
||||||
player.discard(result.cards);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
ai:{
|
|
||||||
expose:0.2,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
boss_guihan:{
|
|
||||||
unique:true,
|
|
||||||
enable:'chooseToUse',
|
|
||||||
mark:true,
|
|
||||||
init:function(player){
|
|
||||||
player.storage.boss_guihan=false;
|
|
||||||
},
|
|
||||||
filter:function(event,player){
|
|
||||||
if(event.type!='dying') return false;
|
|
||||||
if(player!=_status.dying) return false;
|
|
||||||
if(player.storage.boss_guihan) return false;
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
"step 0"
|
|
||||||
player.removeSkill('boss_guihan');
|
|
||||||
player.recover(player.maxHp-player.hp);
|
|
||||||
player.storage.boss_guihan=true;
|
|
||||||
"step 1"
|
|
||||||
player.draw(4);
|
|
||||||
"step 2"
|
|
||||||
for(var i=0;i<game.players.length;i++){
|
|
||||||
delete game.players[i].disabledSkills.boss_hujia;
|
|
||||||
}
|
|
||||||
game.bossinfo.loopType=1;
|
|
||||||
player.removeSkill('beige');
|
|
||||||
player.removeSkill('boss_hujia');
|
|
||||||
player.addSkill('tinqin');
|
|
||||||
player.addSkill('boss_huixin');
|
|
||||||
},
|
|
||||||
ai:{
|
|
||||||
skillTagFilter:function(player){
|
|
||||||
if(player.storage.boss_guihan) return false;
|
|
||||||
},
|
|
||||||
save:true,
|
|
||||||
result:{
|
|
||||||
player:4,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
intro:{
|
|
||||||
content:'limited'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
huoshen:{
|
|
||||||
trigger:{player:'damageBefore'},
|
|
||||||
forced:true,
|
|
||||||
unique:true,
|
|
||||||
filter:function(event){
|
|
||||||
return event.nature=='fire';
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
trigger.untrigger();
|
|
||||||
trigger.finish();
|
|
||||||
player.recover();
|
|
||||||
},
|
|
||||||
ai:{
|
|
||||||
effect:{
|
|
||||||
target:function(card){
|
|
||||||
if(get.tag(card,'fireDamage')){
|
|
||||||
return [0,2];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
boss_xianyin:{
|
|
||||||
trigger:{player:'loseEnd'},
|
|
||||||
frequent:true,
|
|
||||||
unique:true,
|
|
||||||
filter:function(event,player){
|
|
||||||
return _status.currentPhase!=player;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
"step 0"
|
|
||||||
player.judge(function(card){
|
|
||||||
return get.color(card)=='red'?1:0;
|
|
||||||
});
|
|
||||||
"step 1"
|
|
||||||
if(result.bool){
|
|
||||||
player.chooseTarget(true,'选择一个目标令其失去一点体力',function(card,player,target){
|
|
||||||
return player!=target;
|
|
||||||
}).ai=function(target){
|
|
||||||
return Math.max(1,9-target.hp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
event.finish();
|
|
||||||
}
|
|
||||||
"step 2"
|
|
||||||
if(result.targets.length){
|
|
||||||
result.targets[0].loseHp();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
ai:{
|
|
||||||
effect:{
|
|
||||||
target:function(card){
|
|
||||||
if(get.tag(card,'loseCard')){
|
|
||||||
return [0.5,1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
boss_huixin:{
|
|
||||||
trigger:{player:'loseEnd'},
|
|
||||||
frequent:true,
|
|
||||||
unique:true,
|
|
||||||
filter:function(event,player){
|
|
||||||
return _status.currentPhase!=player;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
"step 0"
|
|
||||||
player.judge();
|
|
||||||
"step 1"
|
|
||||||
if(result.color=='black'){
|
|
||||||
_status.currentPhase.loseHp();
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
player.recover();
|
|
||||||
player.draw();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
ai:{
|
|
||||||
effect:{
|
|
||||||
target:function(card){
|
|
||||||
if(get.tag(card,'loseCard')){
|
|
||||||
return [0.5,1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
boss_shengshou:{
|
|
||||||
trigger:{player:'useCard'},
|
|
||||||
frequent:true,
|
|
||||||
unique:true,
|
|
||||||
filter:function(event,player){
|
|
||||||
return player.hp<player.maxHp;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
"step 0"
|
|
||||||
player.judge(function(card){
|
|
||||||
return get.color(card)=='red'?1:0;
|
|
||||||
});
|
|
||||||
"step 1"
|
|
||||||
if(result.bool){
|
|
||||||
player.recover();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
boss_honglian:{
|
|
||||||
trigger:{player:'phaseEnd'},
|
|
||||||
forced:true,
|
|
||||||
unique:true,
|
|
||||||
content:function(){
|
|
||||||
"step 0"
|
|
||||||
event.players=get.players(player);
|
|
||||||
event.players.remove(player);
|
|
||||||
player.draw(2);
|
|
||||||
"step 1"
|
|
||||||
if(event.players.length){
|
|
||||||
event.players.shift().damage('fire');
|
|
||||||
event.redo();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
boss_yuhuo:{
|
|
||||||
trigger:{player:'niepanAfter'},
|
|
||||||
forced:true,
|
|
||||||
unique:true,
|
|
||||||
content:function(){
|
|
||||||
player.addSkill('kanpo');
|
|
||||||
player.addSkill('shenwei');
|
|
||||||
player.addSkill('zhuyu');
|
|
||||||
game.bossinfo.loopType=1;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
boss_tianyu:{
|
|
||||||
inherit:'suoling'
|
|
||||||
},
|
|
||||||
boss_jizhi:{
|
|
||||||
trigger:{player:'useCard'},
|
|
||||||
frequent:true,
|
|
||||||
unique:true,
|
|
||||||
filter:function(event){
|
|
||||||
var type=get.type(event.card,'trick');
|
|
||||||
return (type=='trick'||type=='equip')&&event.cards[0]&&event.cards[0]==event.card;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
var cards=get.cards();
|
|
||||||
player.gain(cards,'gain2');
|
|
||||||
game.log(get.translation(player)+'获得了'+get.translation(cards));
|
|
||||||
},
|
|
||||||
ai:{
|
|
||||||
threaten:1.4
|
|
||||||
}
|
|
||||||
},
|
|
||||||
boss_guiyin:{
|
|
||||||
mod:{
|
|
||||||
targetEnabled:function(card,player,target){
|
|
||||||
if(_status.currentPhase==player&&target.hp<player.hp) return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
boss_gongshen:{
|
|
||||||
trigger:{global:'gameDrawAfter'},
|
|
||||||
forced:true,
|
|
||||||
unique:true,
|
|
||||||
content:function(){
|
|
||||||
for(var i=0;i<game.players.length;i++){
|
|
||||||
if(game.players[i]!=player){
|
|
||||||
game.players[i].forcemin=true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
mod:{
|
|
||||||
targetEnabled:function(card,player,target){
|
|
||||||
if(get.type(card)=='delay'&&player!=target){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
fanghua:{
|
|
||||||
trigger:{player:'phaseEnd'},
|
|
||||||
forced:true,
|
|
||||||
unique:true,
|
|
||||||
filter:function(){
|
|
||||||
for(var i=0;i<game.players.length;i++){
|
|
||||||
if(game.players[i].isTurnedOver()){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
"step 0"
|
|
||||||
event.players=get.players(player);
|
|
||||||
event.num=0;
|
|
||||||
for(var i=0;i<event.players.length;i++){
|
|
||||||
if(!event.players[i].isTurnedOver()){
|
|
||||||
event.players.splice(i--,1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
"step 1"
|
|
||||||
if(event.players.length){
|
|
||||||
event.players.shift().loseHp();
|
|
||||||
event.redo();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
tashui:{
|
|
||||||
trigger:{player:['useCard','respondAfter']},
|
|
||||||
direct:true,
|
|
||||||
unique:true,
|
|
||||||
filter:function(event){
|
|
||||||
return get.color(event.card)=='black';
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
"step 0"
|
|
||||||
game.delay(0.5);
|
|
||||||
player.chooseTarget('是否发动【踏水】?',function(card,player,target){
|
|
||||||
return player!=target;
|
|
||||||
}).ai=function(target){
|
|
||||||
if(target.isTurnedOver()) return -1;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
"step 1"
|
|
||||||
if(result.bool){
|
|
||||||
player.logSkill('tashui',result.targets,'thunder');
|
|
||||||
result.targets[0].turnOver();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
ai:{
|
|
||||||
effect:{
|
|
||||||
player:function(card){
|
|
||||||
if(get.color(card)=='black'){
|
|
||||||
return [1,2];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
shangshix:{
|
|
||||||
trigger:{player:['loseEnd','changeHp']},
|
|
||||||
forced:true,
|
|
||||||
unique:true,
|
|
||||||
filter:function(event,player){
|
|
||||||
return player.num('h')<4;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
player.draw(4-player.num('h'));
|
|
||||||
},
|
|
||||||
group:'shangshix2',
|
|
||||||
ai:{
|
|
||||||
effect:{
|
|
||||||
target:function(card,player,target){
|
|
||||||
if(card.name=='shunshou') return;
|
|
||||||
if(card.name=='guohe'){
|
|
||||||
if(!target.num('e')) return [0,1];
|
|
||||||
}
|
|
||||||
else if(get.tag(card,'loseCard')){
|
|
||||||
return [0,1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
shangshix2:{
|
|
||||||
trigger:{player:'phaseEnd'},
|
|
||||||
forced:true,
|
|
||||||
unique:true,
|
|
||||||
filter:function(event,player){
|
|
||||||
return player.hp>1;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
"step 0"
|
|
||||||
event.players=get.players(player);
|
|
||||||
event.num=0;
|
|
||||||
"step 1"
|
|
||||||
if(event.players.length){
|
|
||||||
event.players.shift().loseHp();
|
|
||||||
event.redo();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
wuxin:{
|
|
||||||
inherit:'miles_xueyi',
|
|
||||||
group:'swd_wuxie'
|
|
||||||
},
|
|
||||||
shenwei:{
|
|
||||||
unique:true,
|
|
||||||
trigger:{player:'phaseDrawBegin'},
|
|
||||||
forced:true,
|
|
||||||
content:function(){
|
|
||||||
trigger.num+=Math.max(2,game.players.length-1);
|
|
||||||
},
|
|
||||||
mod:{
|
|
||||||
maxHandcard:function(player,current){
|
|
||||||
return current+Math.max(2,game.players.length-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
shenji:{
|
|
||||||
unique:true,
|
|
||||||
mod:{
|
|
||||||
selectTarget:function(card,player,range){
|
|
||||||
if(card.name=='sha'||card.name=='juedou') range[1]=3;
|
|
||||||
},
|
|
||||||
}
|
|
||||||
},
|
|
||||||
boss_baonu:{
|
|
||||||
unique:true,
|
|
||||||
group:'boss_baonu2',
|
|
||||||
trigger:{player:'changeHp'},
|
|
||||||
forced:true,
|
|
||||||
priority:100,
|
|
||||||
filter:function(event,player){
|
|
||||||
return player.hp<=4
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
player.init('boss_lvbu2');
|
|
||||||
player.update();
|
|
||||||
ui.clear();
|
|
||||||
while(_status.event.name!='phaseLoop'){
|
|
||||||
_status.event=_status.event.parent;
|
|
||||||
}
|
|
||||||
for(var i=0;i<game.players.length;i++){
|
|
||||||
for(var j in game.players[i].tempSkills){
|
|
||||||
game.players[i].skills.remove(j);
|
|
||||||
delete game.players[i].tempSkills[j];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_status.paused=false;
|
|
||||||
_status.event.player=player;
|
|
||||||
_status.event.step=0;
|
|
||||||
game.bossinfo.loopType=1;
|
|
||||||
},
|
|
||||||
ai:{
|
|
||||||
effect:{
|
|
||||||
target:function(card,player){
|
|
||||||
if(get.tag(card,'damage')||get.tag(card,'loseHp')){
|
|
||||||
if(player.hp==5){
|
|
||||||
if(game.players.length<4) return [0,5];
|
|
||||||
var num=0
|
|
||||||
for(var i=0;i<game.players.length;i++){
|
|
||||||
if(game.players[i]!=game.boss&&game.players[i].hp==1){
|
|
||||||
num++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(num>1) return [0,2];
|
|
||||||
if(num&&Math.random()<0.7) return [0,1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
boss_baonu2:{
|
|
||||||
trigger:{player:'gameDrawBegin'},
|
|
||||||
forced:true,
|
|
||||||
popup:false,
|
|
||||||
content:function(){
|
|
||||||
player.draw(4,false);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
_bossswap:{
|
_bossswap:{
|
||||||
trigger:{player:['phaseBegin','chooseToUseBegin','chooseToRespondBegin','chooseToDiscardBegin','chooseToCompareBegin',
|
trigger:{player:['phaseBegin','chooseToUseBegin','chooseToRespondBegin','chooseToDiscardBegin','chooseToCompareBegin',
|
||||||
'chooseButtonBegin','chooseCardBegin','chooseTargetBegin','chooseCardTargetBegin','chooseControlBegin',
|
'chooseButtonBegin','chooseCardBegin','chooseTargetBegin','chooseCardTargetBegin','chooseControlBegin',
|
||||||
|
@ -1390,96 +600,8 @@ mode.boss={
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
translate:{
|
translate:{
|
||||||
boss_qiangzheng:'强征',
|
|
||||||
boss_qiangzheng_info:'锁定技,回合结束阶段,你获得每个敌方角色的一张手牌',
|
|
||||||
boss_baolin:'暴凌',
|
|
||||||
guizhen:'归真',
|
|
||||||
guizhen_info:'每当你失去最后一张手牌,你可以所有敌人失去全部手牌,没有手牌的角色失去一点体力(不触发技能)',
|
|
||||||
boss_shengshou:'圣手',
|
|
||||||
boss_shengshou_info:'每当你使用一张牌,你可以进行一次判定,若为红色,你回复一点体力',
|
|
||||||
wuqin:'五禽戏',
|
|
||||||
wuqin_info:'回合结束阶段,若你没有手牌,可以摸三张牌',
|
|
||||||
|
|
||||||
boss_konghun:'控心',
|
|
||||||
boss_konghun_info:'回合结束阶段,你可以指定一名敌人令其进入混乱状态(不受对方控制,并将队友视为敌人)直到下一回合开始',
|
|
||||||
yuehun:'月魂',
|
|
||||||
yuehun_info:'回合开始阶段,你可以回复一点体力并摸两张牌',
|
|
||||||
fengwu:'风舞',
|
|
||||||
fengwu_info:'出牌阶段限一次,可令除你外的所有角色依次对与其距离最近的另一名角色使用一张【杀】,无法如此做者失去1点体力。',
|
|
||||||
boss_wange:'笙歌',
|
|
||||||
|
|
||||||
huanhua:'幻化',
|
|
||||||
huanhua_info:'锁定技,游戏开始时,你获得其他角色的所有技能,体力上限变为其他角色之和;其他角色于摸牌阶段摸牌时,你摸等量的牌;其他角色于弃牌阶段弃牌时,你弃置等量的手牌',
|
|
||||||
|
|
||||||
boss_leiji:'雷击',
|
|
||||||
boss_leiji_info:'每当你使用或打出一张【闪】,可令任意一名角色进行一次判定,若结果为黑色,其受到一点雷电伤害,然后你摸一张牌',
|
|
||||||
jidian:'亟电',
|
|
||||||
jidian_info:'每当你造成一次伤害,可以指定距离受伤害角色1以内的一名其他角色进行判定,若结果为黑色,该角色受到一点雷电伤害',
|
|
||||||
|
|
||||||
tinqin:'听琴',
|
|
||||||
boss_guihan:'归汉',
|
|
||||||
boss_guihan_info:'限定技,濒死阶段,你可以将体力回复至体力上限,摸4张牌,令所有敌人的技能恢复,并获得技能【听琴】、【蕙质】',
|
|
||||||
boss_huixin:'蕙质',
|
|
||||||
boss_huixin_info:'每当你于回合外失去牌,可以进行一次判定,若为黑色,当前回合角色失去一点体力,否则你回复一点体力并摸一张牌',
|
|
||||||
boss_hujia:'胡笳',
|
|
||||||
boss_hujia_info:'回合结束阶段,若你已受伤,可以弃置一张牌令一名其他角色的所有技能失效,若其所有技能已失效,改为令其失去一点体力上限',
|
|
||||||
boss_honglian:'红莲',
|
|
||||||
boss_honglian_info:'锁定技,回合结束阶段,你摸两张牌,并对所有敌人造成一点火焰伤害',
|
|
||||||
huoshen:'火神',
|
|
||||||
huoshen_info:'锁定技,你防止即将受到的火焰伤害,改为回复1点体力',
|
|
||||||
boss_xianyin:'仙音',
|
|
||||||
boss_xianyin_info:'每当你于回合外失去牌,你可以进行一次判定,若为红色,你令一名敌人失去一点体力',
|
|
||||||
|
|
||||||
// boss_yuhuo:'浴火',
|
|
||||||
// boss_yuhuo_info:'觉醒技,在你涅槃后,你获得技能【神威】、【朱羽】',
|
|
||||||
boss_tianyu:'天狱',
|
|
||||||
|
|
||||||
boss_jizhi:'集智',
|
|
||||||
boss_jizhi_info:'每当你使用一张锦囊牌或装备牌,你可以摸一张牌并展示之',
|
|
||||||
boss_guiyin:'归隐',
|
|
||||||
boss_guiyin_info:'锁定技,体力值比你多的角色无法在回合内对你使用卡牌',
|
|
||||||
boss_gongshen:'工神',
|
|
||||||
boss_gongshen_info:'锁定技,除你之外的角色没有装备区;你不能成为其他角色的的延时锦囊目标',
|
|
||||||
|
|
||||||
fanghua:'芳华',
|
|
||||||
fanghua_info:'回合结束阶段,你可以令所有已翻面角色流失一点体力',
|
|
||||||
tashui:'踏水',
|
|
||||||
tashui_info:'每当你使用或打出一张黑色牌,你可以令一名其他角色翻面',
|
|
||||||
|
|
||||||
wuxin:'无心',
|
|
||||||
wuxin_info:'锁定技,你防止即将受到的伤害,改为流失一点体力;你不能成为其他角色的延时锦囊的目标',
|
|
||||||
shangshix:'伤逝',
|
|
||||||
shangshix2:'伤逝',
|
|
||||||
shangshix_info:'锁定技,你的手牌数至少为4,回合结束阶段,若你的体力值大于1,你令场上所有角色流失一点体力',
|
|
||||||
|
|
||||||
boss_baonu:'暴怒',
|
|
||||||
boss_baonu_info:'锁定技,当你的体力值降至4或更低时,你变身为暴怒战神,并立即开始你的回合',
|
|
||||||
shenwei:'神威',
|
|
||||||
shenwei_info:'锁定技,摸牌阶段,你额外摸X张牌,你的手牌上限+X,X为敌方存活角色个数且至少为2',
|
|
||||||
shenji:'神戟',
|
|
||||||
shenji_info:'你使用的杀或决斗可指定至多3名角色为目标',
|
|
||||||
|
|
||||||
zhu:'神',
|
zhu:'神',
|
||||||
cai:'盟',
|
cai:'盟',
|
||||||
boss_shuijing:'水镜先生',
|
|
||||||
boss_huangyueying:'奇智女杰',
|
|
||||||
boss_zhangchunhua:'冷血皇后',
|
|
||||||
boss_satan:'堕落天使',
|
|
||||||
boss_dongzhuo:'乱世魔王',
|
|
||||||
boss_lvbu1:'最强神话',
|
|
||||||
boss_lvbu2:'暴怒战神',
|
|
||||||
boss_zhouyu:'赤壁火神',
|
|
||||||
boss_pangtong:'涅盘凤雏',
|
|
||||||
boss_zhugeliang:'祭风卧龙',
|
|
||||||
boss_zhangjiao:'天公将军',
|
|
||||||
boss_zuoci:'迷之仙人',
|
|
||||||
boss_yuji:'琅琊道士',
|
|
||||||
boss_liubei:'蜀汉烈帝',
|
|
||||||
boss_caiwenji:'异乡孤女',
|
|
||||||
boss_huatuo:'药坛圣手',
|
|
||||||
boss_luxun:'蹁跹君子',
|
|
||||||
boss_zhenji:'洛水仙子',
|
|
||||||
boss_diaochan:'绝代妖姬',
|
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
get:{
|
get:{
|
||||||
|
|
Loading…
Reference in New Issue