|
@ -1,5 +1,6 @@
|
|||
1.5.7
|
||||
对决模式改进
|
||||
屏蔽强将选项
|
||||
卡牌、卡背、体力条样式
|
||||
新武将(张鲁、士燮、马云騄、兀突骨、sp蔡文姬)
|
||||
徐盛、步练师修改
|
||||
新武将(5个SP武将、补全一将成名)
|
||||
安卓精简版(去掉配音、DIY武将及卡牌)
|
||||
|
|
|
@ -534,7 +534,7 @@ card.hearth={
|
|||
},
|
||||
ai:{
|
||||
order:4,
|
||||
value:[6,3],
|
||||
value:[8,3],
|
||||
useful:[6,3],
|
||||
result:{
|
||||
target:function(player,target){
|
||||
|
@ -543,7 +543,7 @@ card.hearth={
|
|||
var num=target.maxHp-target.hp;
|
||||
if(num<1) return 0;
|
||||
if(num==1) return 1;
|
||||
if(target.hp==2) return 2.5;
|
||||
if(target.hp==1) return 2.5;
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -95,6 +95,7 @@ card.standard={
|
|||
}
|
||||
else{
|
||||
event.trigger('shaMiss');
|
||||
event.responded=result;
|
||||
}
|
||||
"step 2"
|
||||
if(result.bool==false&&!event.unhurt){
|
||||
|
@ -1122,7 +1123,7 @@ card.standard={
|
|||
player.removeSkill('jiu');
|
||||
event.jiu=true;
|
||||
}
|
||||
player.chooseToUse('是否发动青龙偃月刀?',{name:'sha'},trigger.target,-1);
|
||||
player.chooseToUse('是否发动青龙偃月刀?',{name:'sha'},trigger.target,-1).logSkill='qinglong';
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('qinglong');
|
||||
|
@ -1154,9 +1155,11 @@ card.standard={
|
|||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('是否发动贯石斧?',2,'he',function(card){
|
||||
var next=player.chooseToDiscard('是否发动贯石斧?',2,'he',function(card){
|
||||
return player.get('e',{subtype:'equip1'}).contains(card)==false;
|
||||
}).ai=
|
||||
});
|
||||
next.logSkill='guanshi_skill';
|
||||
next.ai=
|
||||
function(card){
|
||||
if(ai.get.attitude(player,trigger.target)<0){
|
||||
if(player.skills.contains('jiu')||
|
||||
|
@ -1170,7 +1173,6 @@ card.standard={
|
|||
};
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('guanshi_skill');
|
||||
trigger.untrigger();
|
||||
trigger.trigger('shaHit');
|
||||
trigger._result.bool=false;
|
||||
|
@ -1218,6 +1220,7 @@ card.standard={
|
|||
bagua_skill:{
|
||||
trigger:{player:'chooseToRespondBegin'},
|
||||
filter:function(event,player){
|
||||
if(event.responded) return false;
|
||||
if(!event.filterCard({name:'shan'})) return false;
|
||||
if(event.parent.player.num('s','unequip')) return false;
|
||||
return true;
|
||||
|
|
|
@ -183,7 +183,7 @@ character.fire={
|
|||
event.finish();
|
||||
}
|
||||
"step 2"
|
||||
if(result.bool){
|
||||
if(result.bool&&result.targets&&result.targets.length){
|
||||
result.targets[0].damage(target);
|
||||
}
|
||||
},
|
||||
|
|
|
@ -60,7 +60,9 @@ character.gujian={
|
|||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('是否弃置一张黑色牌使伤害+1?',{color:'black'}).ai=function(card){
|
||||
var next=player.chooseToDiscard('是否弃置一张黑色牌使伤害+1?',{color:'black'});
|
||||
next.logSkill='zhongji';
|
||||
next.ai=function(card){
|
||||
if(ai.get.attitude(player,trigger.player)<0){
|
||||
return 7-ai.get.value(card);
|
||||
}
|
||||
|
@ -68,7 +70,6 @@ character.gujian={
|
|||
}
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('zhongji');
|
||||
trigger.num++;
|
||||
}
|
||||
},
|
||||
|
@ -120,12 +121,13 @@ character.gujian={
|
|||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('是否发动【戏蝶】?',[1,Math.min(3,player.num('h')-player.hp)]).ai=function(card){
|
||||
var next=player.chooseToDiscard('是否发动【戏蝶】?',[1,Math.min(3,player.num('h')-player.hp)]);
|
||||
next.ai=function(card){
|
||||
return 6-ai.get.value(card);
|
||||
}
|
||||
next.logSkill='xidie';
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('xidie');
|
||||
player.storage.xidie=result.cards.length;
|
||||
}
|
||||
},
|
||||
|
@ -380,7 +382,9 @@ character.gujian={
|
|||
priority:-5,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('是否对'+get.translation(trigger.player)+'发动【晴岚】?','he').ai=function(card){
|
||||
var next=player.chooseToDiscard('是否对'+get.translation(trigger.player)+'发动【晴岚】?','he');
|
||||
next.logSkill='qinglan';
|
||||
next.ai=function(card){
|
||||
if(trigger.num>1||!trigger.source){
|
||||
if(ai.get.attitude(player,trigger.player)>0){
|
||||
return 9-ai.get.value(card);
|
||||
|
@ -403,7 +407,6 @@ character.gujian={
|
|||
}
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('qinglan');
|
||||
trigger.untrigger();
|
||||
trigger.finish();
|
||||
if(trigger.source){
|
||||
|
@ -644,15 +647,16 @@ character.gujian={
|
|||
for(var i=0;i<event.targets.length;i++){
|
||||
num+=ai.get.effect(event.targets[i],{name:'sha'},player,player);
|
||||
}
|
||||
player.chooseToDiscard(function(card){
|
||||
var next=player.chooseToDiscard(function(card){
|
||||
return get.type(card)!='basic';
|
||||
},'是否发动千军?').ai=function(card){
|
||||
},'是否发动千军?');
|
||||
next.logSkill=['qianjun',event.targets];
|
||||
next.ai=function(card){
|
||||
if(num<=0) return -1;
|
||||
return 7-ai.get.value(card);
|
||||
}
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('qianjun',targets);
|
||||
for(var i=0;i<targets.length;i++){
|
||||
trigger.targets.add(targets[i]);
|
||||
// targets[i].classList.add('selected');
|
||||
|
|
|
@ -24,13 +24,14 @@ character.hearth={
|
|||
hs_bchillmaw:['male','wei',6,['hanshuang','bingshi'],['fullskin']],
|
||||
hs_malorne:['male','wu',3,['enze','chongsheng'],['fullskin']],
|
||||
hs_malygos:['male','wei',4,['malymowang'],['fullskin']],
|
||||
hs_xuefashi:['male','wei',2,['liehun','xjumo'],['fullskin']],
|
||||
hs_xuefashi:['male','wei',3,['liehun','xjumo'],['fullskin']],
|
||||
// hs_loatheb:['male','wei',2,[],['fullskin']],
|
||||
// hs_trueheart:['male','wei',2,[],['fullskin']],
|
||||
// hs_sainaliusi:['male','wei',2,[],['fullskin']],
|
||||
// hs_lrhonin:['male','wei',2,[],['fullskin']],
|
||||
// hs_bolvar:['male','wei',2,[],['fullskin']],
|
||||
// hs_fuding:['male','wei',2,[],['fullskin']],
|
||||
hs_ysera:['female','wu',4,['chenshui'],['fullskin']],
|
||||
|
||||
hs_ronghejuren:['male','shu',8,[],['fullskin']],
|
||||
hs_edwin:['male','qun',3,['lianzhan'],['fullskin']],
|
||||
|
@ -49,8 +50,21 @@ character.hearth={
|
|||
hs_malfurion:['hs_malorne'],
|
||||
},
|
||||
skill:{
|
||||
chenshui:{
|
||||
trigger:{player:'phaseEnd'},
|
||||
frequent:true,
|
||||
content:function(){
|
||||
var list=['mengjing_feicuiyoulong','mengjing_huanxiaojiemei',
|
||||
'mengjing_suxing','mengjing_mengye','mengjing_mengjing'];
|
||||
player.gain(game.createCard(list.randomGet()));
|
||||
player.$draw();
|
||||
},
|
||||
ai:{
|
||||
threaten:2
|
||||
}
|
||||
},
|
||||
liehun:{
|
||||
trigger:{player:'phaseUseBegin'},
|
||||
trigger:{player:'phaseEnd'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.num('h',{type:'basic'})<player.num('h');
|
||||
|
@ -78,7 +92,7 @@ character.hearth={
|
|||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
return num+3;
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
malymowang:{
|
||||
|
@ -757,6 +771,22 @@ character.hearth={
|
|||
}
|
||||
}
|
||||
},
|
||||
mengjing_mengye:{
|
||||
trigger:{player:'phaseEnd'},
|
||||
forced:true,
|
||||
priority:-1,
|
||||
filter:function(event,player){
|
||||
return player.num('he')>0;
|
||||
},
|
||||
content:function(){
|
||||
player.discard(player.get('he'));
|
||||
player.removeSkill('mengjing_mengye');
|
||||
},
|
||||
mark:'image',
|
||||
intro:{
|
||||
content:'回合结束阶段,弃置所有牌'
|
||||
}
|
||||
},
|
||||
zhanhou:{
|
||||
init:function(player){
|
||||
player.forcemin=true;
|
||||
|
@ -778,11 +808,11 @@ character.hearth={
|
|||
player:1
|
||||
}
|
||||
},
|
||||
mod:{
|
||||
globalFrom:function(from,to,distance){
|
||||
return distance-from.hujia;
|
||||
}
|
||||
},
|
||||
// mod:{
|
||||
// globalFrom:function(from,to,distance){
|
||||
// return distance-from.hujia;
|
||||
// }
|
||||
// },
|
||||
},
|
||||
shijie:{
|
||||
trigger:{player:'phaseEnd'},
|
||||
|
@ -1311,15 +1341,16 @@ character.hearth={
|
|||
var val=ai.get.value(trigger.card);
|
||||
var suit=get.suit(trigger.card);
|
||||
var eff=ai.get.effect(trigger.target,trigger.card,trigger.player,player);
|
||||
player.chooseToDiscard('是否对'+get.translation(trigger.player)+'使用的'+get.translation(trigger.card)+'发动【闷棍】?',function(card){
|
||||
var next=player.chooseToDiscard('是否对'+get.translation(trigger.player)+'使用的'+get.translation(trigger.card)+'发动【闷棍】?',function(card){
|
||||
return get.suit(card)==suit;
|
||||
}).ai=function(card){
|
||||
});
|
||||
next.logSkill=['mengun',trigger.player];
|
||||
next.ai=function(card){
|
||||
if(eff>=0) return 0;
|
||||
return Math.min(8,1+val)-ai.get.value(card);
|
||||
}
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('mengun',trigger.player);
|
||||
game.log(get.translation(trigger.player)+'收回了'+get.translation(trigger.cards));
|
||||
trigger.untrigger();
|
||||
trigger.finish();
|
||||
|
@ -1385,10 +1416,11 @@ character.hearth={
|
|||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('是否发动【激活】?').ai=ai.get.unuseful2;
|
||||
var next=player.chooseToDiscard('是否发动【激活】?');
|
||||
next.ai=ai.get.unuseful2;
|
||||
next.logSkill='jihuo';
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('jihuo');
|
||||
player.storage.jihuo=true;
|
||||
}
|
||||
else{
|
||||
|
@ -1941,6 +1973,146 @@ character.hearth={
|
|||
},
|
||||
},
|
||||
card:{
|
||||
mengjing_feicuiyoulong:{
|
||||
type:'mengjing',
|
||||
image:'card/mengjing_feicuiyoulong',
|
||||
color:'white',
|
||||
opacity:1,
|
||||
textShadow:'black 0 0 2px',
|
||||
enable:true,
|
||||
filterTarget:true,
|
||||
content:function(){
|
||||
target.damage(2);
|
||||
},
|
||||
ai:{
|
||||
order:5,
|
||||
result:{
|
||||
target:-2
|
||||
},
|
||||
tag:{
|
||||
damage:2
|
||||
},
|
||||
useful:5,
|
||||
value:10,
|
||||
}
|
||||
},
|
||||
mengjing_suxing:{
|
||||
type:'mengjing',
|
||||
image:'card/mengjing_suxing',
|
||||
color:'white',
|
||||
opacity:1,
|
||||
textShadow:'black 0 0 2px',
|
||||
enable:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return player!=target;
|
||||
},
|
||||
selectTarget:-1,
|
||||
content:function(){
|
||||
target.loseHp();
|
||||
var he=target.get('he');
|
||||
if(he.length){
|
||||
target.discard(he.randomGets(2));
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
result:{
|
||||
target:-1,
|
||||
},
|
||||
order:6,
|
||||
useful:5,
|
||||
value:10,
|
||||
}
|
||||
},
|
||||
mengjing_mengye:{
|
||||
type:'mengjing',
|
||||
image:'card/mengjing_mengye',
|
||||
color:'white',
|
||||
opacity:1,
|
||||
textShadow:'black 0 0 2px',
|
||||
enable:true,
|
||||
filterTarget:true,
|
||||
content:function(){
|
||||
target.draw();
|
||||
target.addSkill('mengjing_mengye');
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
useful:5,
|
||||
value:10,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target.skills.contains('mengjing_mengye')) return 0.5;
|
||||
return -target.num('he');
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
mengjing_mengjing:{
|
||||
type:'mengjing',
|
||||
image:'card/mengjing_mengjing',
|
||||
color:'white',
|
||||
opacity:1,
|
||||
textShadow:'black 0 0 2px',
|
||||
enable:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return !target.num('j','lebu')||target.num('e')>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var es=target.get('e');
|
||||
if(es.length){
|
||||
target.gain(es,'gain2');
|
||||
}
|
||||
'step 1'
|
||||
if(!target.num('j','lebu')){
|
||||
target.addJudge(game.createCard('lebu'));
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:2,
|
||||
useful:5,
|
||||
value:10,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
var num=target.hp-target.num('he')-2;
|
||||
if(num>-1) return -1;
|
||||
if(target.hp<3) num--;
|
||||
if(target.hp<2) num--;
|
||||
if(target.hp<1) num--;
|
||||
return num;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
mengjing_huanxiaojiemei:{
|
||||
type:'mengjing',
|
||||
image:'card/mengjing_huanxiaojiemei',
|
||||
color:'white',
|
||||
opacity:1,
|
||||
textShadow:'black 0 0 2px',
|
||||
enable:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return target.hp<target.maxHp;
|
||||
},
|
||||
content:function(){
|
||||
target.recover(target.maxHp-target.hp);
|
||||
},
|
||||
ai:{
|
||||
order:6,
|
||||
value:10,
|
||||
useful:[7,4],
|
||||
result:{
|
||||
target:function(player,target){
|
||||
var eff=ai.get.recoverEffect(target,player,target);
|
||||
if(eff<=0) return 0;
|
||||
var num=target.maxHp-target.hp;
|
||||
if(num<1) return 0;
|
||||
if(target.hp==1) return num+0.5;
|
||||
return num;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
tuteng1:{
|
||||
image:'card/tuteng1',
|
||||
color:'white',
|
||||
|
@ -2016,6 +2188,7 @@ character.hearth={
|
|||
hs_siwangzhiyi:'死亡之翼',
|
||||
hs_malygos:'玛里苟斯',
|
||||
hs_xuefashi:'血法师',
|
||||
hs_ysera:'伊瑟拉',
|
||||
|
||||
hs_ronghejuren:'熔核巨人',
|
||||
hs_edwin:'艾德温',
|
||||
|
@ -2025,10 +2198,24 @@ character.hearth={
|
|||
hs_totemic:'图腾师',
|
||||
hs_bilanyoulong:'碧蓝幼龙',
|
||||
|
||||
chenshui:'沉睡',
|
||||
chenshui_info:'回合结束阶段,你可以将一张随机梦境牌加入你的手牌',
|
||||
mengjing:'梦境',
|
||||
mengjing_card_config:'梦境',
|
||||
mengjing_feicuiyoulong:'翡翠幼龙',
|
||||
mengjing_feicuiyoulong_info:'出牌阶段对任意一名角色使用,对目标造成2点伤害',
|
||||
mengjing_huanxiaojiemei:'欢笑姐妹',
|
||||
mengjing_huanxiaojiemei_info:'出牌阶段对一名已受伤角色使用,令目标恢复所有体力值',
|
||||
mengjing_suxing:'苏醒',
|
||||
mengjing_suxing_info:'令所有其他角色流失一点体力并随机弃置两张牌',
|
||||
mengjing_mengye:'梦魇',
|
||||
mengjing_mengye_info:'令一名角色摸1张牌,并在其下一个回合结束阶段弃置其所有牌',
|
||||
mengjing_mengjing:'梦境',
|
||||
mengjing_mengjing_info:'令一名角色将装备区内的所有牌收入手牌,并将一张乐不思蜀置于其判定区',
|
||||
xjumo:'聚魔',
|
||||
xjumo_info:'锁定技,你的手牌上限+3',
|
||||
xjumo_info:'锁定技,你的手牌上限+2',
|
||||
liehun:'裂魂',
|
||||
liehun_info:'锁定技,出牌阶段开始时,你获得手牌中所有非基本牌的复制',
|
||||
liehun_info:'锁定技,回合结束阶段,你获得手牌中所有非基本牌的复制',
|
||||
malymowang:'魔网',
|
||||
malymowang_info:'锁定技,你的锦囊牌造成的伤害+1;出牌阶段开始时,你观看随机3张锦囊牌,并将其中一张加入你的手牌',
|
||||
lingzhou:'灵咒',
|
||||
|
@ -2091,7 +2278,7 @@ character.hearth={
|
|||
fengxian:'奉献',
|
||||
fengxian_info:'出牌阶段限一次,你可以令场上所有角色各弃置一张手牌',
|
||||
zhanhou:'战吼',
|
||||
zhanhou_info:'锁定技,你没有装备区,你可以弃置一张装备牌并获得一点护甲值;每有一点护甲值,你与其他角色的距离-1',
|
||||
zhanhou_info:'锁定技,你没有装备区,你可以弃置一张装备牌并获得一点护甲值',
|
||||
anying:'暗影',
|
||||
anying_info:'限定技,出牌阶段,你可以弃置两张黑色牌,失去技能圣光,并获得技能心刺',
|
||||
shijie:'视界',
|
||||
|
|
|
@ -90,15 +90,16 @@ character.jiange={
|
|||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('he','是否弃置一张牌令'+get.translation(trigger.player)+'的摸牌数-1?').ai=function(card){
|
||||
var next=player.chooseToDiscard('he','是否弃置一张牌令'+get.translation(trigger.player)+'的摸牌数-1?');
|
||||
next.ai=function(card){
|
||||
if(ai.get.attitude(player,trigger.player)<0){
|
||||
return 6-ai.get.value(card);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
next.logSkill=['jueji',trigger.player];
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('jueji',trigger.player);
|
||||
trigger.num--;
|
||||
}
|
||||
},
|
||||
|
|
|
@ -212,11 +212,12 @@ character.mountain={
|
|||
event.finish();
|
||||
}
|
||||
else{
|
||||
player.chooseToDiscard('是否发动巧变路过判定阶段?').ai=ai.get.unuseful2;
|
||||
var next=player.chooseToDiscard('是否发动巧变路过判定阶段?');
|
||||
next.ai=ai.get.unuseful2;
|
||||
next.logSkill='qiaobian';
|
||||
}
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('qiaobian');
|
||||
trigger.untrigger();
|
||||
trigger.finish();
|
||||
}
|
||||
|
@ -421,7 +422,9 @@ character.mountain={
|
|||
content:function(){
|
||||
"step 0"
|
||||
var discard=player.num('h')>player.hp;
|
||||
player.chooseToDiscard('是否发动巧变路过弃牌阶段?').ai=function(card){
|
||||
var next=player.chooseToDiscard('是否发动巧变路过弃牌阶段?');
|
||||
next.logSkill='qiaobian';
|
||||
next.ai=function(card){
|
||||
if(discard){
|
||||
return 100-ai.get.useful(card);
|
||||
}
|
||||
|
@ -431,7 +434,6 @@ character.mountain={
|
|||
};
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('qiaobian');
|
||||
trigger.untrigger();
|
||||
trigger.finish();
|
||||
}
|
||||
|
@ -795,10 +797,11 @@ character.mountain={
|
|||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('he','是否发动悲歌?').ai=ai.get.unuseful2;
|
||||
var next=player.chooseToDiscard('he','是否发动悲歌?');
|
||||
next.ai=ai.get.unuseful2;
|
||||
next.logSkill='beige';
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('beige');
|
||||
trigger.player.judge();
|
||||
}
|
||||
else{
|
||||
|
|
|
@ -52,6 +52,7 @@ window.characterRank={
|
|||
'hs_malygos',
|
||||
],
|
||||
a:[
|
||||
'hs_ysera',
|
||||
'yxs_diaochan',
|
||||
'swd_wangsiyue',
|
||||
'swd_lanyin',
|
||||
|
@ -87,7 +88,7 @@ window.characterRank={
|
|||
'zhoutai',
|
||||
],
|
||||
am:[
|
||||
'hs_xuefashi',
|
||||
'sp_caiwenji',
|
||||
'manchong',
|
||||
'swd_linyue',
|
||||
'swd_fuyan',
|
||||
|
@ -141,9 +142,12 @@ window.characterRank={
|
|||
'hs_siwangzhiyi',
|
||||
'jg_huangyueying',
|
||||
'hs_bilanyoulong',
|
||||
'zhanglu',
|
||||
],
|
||||
bp:[
|
||||
'shixie',
|
||||
'yxs_mozi',
|
||||
'hs_xuefashi',
|
||||
'xiahoushi',
|
||||
'zhangsong',
|
||||
'zhuhuan',
|
||||
|
@ -170,6 +174,7 @@ window.characterRank={
|
|||
'jiangwei',
|
||||
'liubei',
|
||||
'mateng',
|
||||
'wutugu',
|
||||
'swd_chunyuheng',
|
||||
'hetaihou',
|
||||
'hs_alleria',
|
||||
|
@ -206,6 +211,7 @@ window.characterRank={
|
|||
'guyong',
|
||||
'diy_xuhuang',
|
||||
'sunquan',
|
||||
'hs_jgarrosh',
|
||||
],
|
||||
b:[
|
||||
'pal_linyueru',
|
||||
|
@ -231,7 +237,6 @@ window.characterRank={
|
|||
'sp_sunshangxiang',
|
||||
're_lidian',
|
||||
'jiangqing',
|
||||
'hs_jgarrosh',
|
||||
'hs_lrexxar',
|
||||
'mifuren',
|
||||
'diy_huangzhong',
|
||||
|
@ -269,6 +274,7 @@ window.characterRank={
|
|||
'zhouyu',
|
||||
'guanyinping',
|
||||
'dingfeng',
|
||||
'mayunlu',
|
||||
'pangtong',
|
||||
'zhugeliangwolong',
|
||||
'shen_guanyu',
|
||||
|
|
|
@ -962,12 +962,8 @@ character.refresh={
|
|||
!lib.filter.autoRespondSha.call({player:player});
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToUse({name:'sha'},'是否对'+get.translation(trigger.player)+'使用一张杀',trigger.player);
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('zhuhai');
|
||||
}
|
||||
player.chooseToUse({name:'sha'},'是否对'+get.translation(trigger.player)+'使用一张杀',
|
||||
trigger.player).logSkill='zhuhai';
|
||||
}
|
||||
},
|
||||
qianxin:{
|
||||
|
|
462
character/sp.js
|
@ -36,9 +36,381 @@ character.sp={
|
|||
sp_caiwenji:['female','wei',3,['chenqing','mozhi'],['fullskin']],
|
||||
},
|
||||
skill:{
|
||||
chenqing:{
|
||||
trigger:{global:'dying'},
|
||||
priority:6,
|
||||
filter:function(event,player){
|
||||
return event.player.hp<=0&&!player.skills.contains('chenqing2');
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget('是否发动【陈情】?',function(card,player,target){
|
||||
return target!=player&&target!=trigger.player;
|
||||
}).ai=function(target){
|
||||
if(ai.get.attitude(player,trigger.player)>0){
|
||||
var att1=ai.get.attitude(target,player);
|
||||
var att2=ai.get.attitude(target,trigger.player);
|
||||
var att3=ai.get.attitude(player,target);
|
||||
if(att3<0) return 0;
|
||||
return att1/2+att2+att3;
|
||||
}
|
||||
else{
|
||||
return ai.get.attitude(player,target);
|
||||
}
|
||||
}
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.addTempSkill('chenqing2',{player:'phaseBegin'});
|
||||
event.target=result.targets[0];
|
||||
event.target.draw(4);
|
||||
player.logSkill('chenqing',event.target);
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
var target=event.target;
|
||||
var tosave=trigger.player;
|
||||
var att=ai.get.attitude(target,tosave);
|
||||
var hastao=target.num('h','tao');
|
||||
target.chooseToDiscard(4,true).ai=function(card){
|
||||
if(!hastao&&att>0){
|
||||
var suit=get.suit(card);
|
||||
for(var i=0;i<ui.selected.cards.length;i++){
|
||||
if(get.suit(ui.selected.cards[i])==suit){
|
||||
return -4-ai.get.value(card);
|
||||
}
|
||||
}
|
||||
}
|
||||
return -ai.get.value(card);
|
||||
}
|
||||
'step 3'
|
||||
if(result.cards&&result.cards.length==4){
|
||||
var suits=[];
|
||||
for(var i=0;i<result.cards.length;i++){
|
||||
suits.add(get.suit(result.cards[i]));
|
||||
}
|
||||
if(suits.length==4){
|
||||
event.target.useCard({name:'tao'},trigger.player);
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
skillTagFilter:function(player){
|
||||
return !player.skills.contains('chenqing2');
|
||||
},
|
||||
expose:0.2,
|
||||
threaten:1.5,
|
||||
save:true,
|
||||
}
|
||||
},
|
||||
mozhi:{
|
||||
intro:{
|
||||
content:'cards'
|
||||
},
|
||||
init:function(player){
|
||||
player.storage.mozhi=[];
|
||||
},
|
||||
trigger:{player:'phaseEnd'},
|
||||
frequent:true,
|
||||
filter:function(event,player){
|
||||
return player.storage.mozhi.length>0&&player.num('h')>0;
|
||||
},
|
||||
content:function(){
|
||||
if(player.storage.mozhi.length&&player.num('h')){
|
||||
var card=player.storage.mozhi.shift();
|
||||
card={name:card.name,nature:card.nature,suit:card.suit,number:card.number};
|
||||
if(lib.filter.cardEnabled(card)){
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(player.canUse(card,game.players[i])){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(i<game.players.length){
|
||||
lib.skill.mozhix.viewAs=card;
|
||||
var next=player.chooseToUse();
|
||||
if(event.isMine()){
|
||||
next.openskilldialog='将一张手牌当'+get.translation(card)+'使用';
|
||||
}
|
||||
next.backup('mozhix');
|
||||
}
|
||||
}
|
||||
event.redo();
|
||||
}
|
||||
},
|
||||
group:['mozhi2','mozhi3']
|
||||
},
|
||||
mozhix:{
|
||||
filterCard:true,
|
||||
selectCard:1
|
||||
},
|
||||
mozhi2:{
|
||||
trigger:{player:'phaseAfter'},
|
||||
forced:true,
|
||||
silent:true,
|
||||
popup:false,
|
||||
content:function(){
|
||||
player.storage.mozhi.length=0;
|
||||
player.unmarkSkill('mozhi');
|
||||
}
|
||||
},
|
||||
mozhi3:{
|
||||
trigger:{player:'useCard'},
|
||||
forced:true,
|
||||
silent:true,
|
||||
popup:false,
|
||||
filter:function(event,player){
|
||||
if(_status.currentPhase!=player) return false;
|
||||
if(event.parent.parent.name!='phaseUse') return false;
|
||||
var type=get.type(event.card);
|
||||
return player.storage.mozhi.length<2&&(type=='basic'||type=='trick');
|
||||
},
|
||||
content:function(){
|
||||
player.storage.mozhi.add(trigger.card);
|
||||
player.markSkill('mozhi');
|
||||
}
|
||||
},
|
||||
chenqing2:{},
|
||||
ranshang:{
|
||||
trigger:{player:'damageEnd'},
|
||||
filter:function(event,player){
|
||||
return event.nature=='fire';
|
||||
},
|
||||
init:function(player){
|
||||
player.storage.ranshang=0;
|
||||
},
|
||||
forced:true,
|
||||
check:function(){
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
if(player.storage.ranshang){
|
||||
player.storage.ranshang++;
|
||||
}
|
||||
else{
|
||||
player.storage.ranshang=1;
|
||||
player.markSkill('ranshang');
|
||||
}
|
||||
game.addVideo('storage',player,['ranshang',player.storage.ranshang]);
|
||||
},
|
||||
intro:{
|
||||
content:'mark'
|
||||
},
|
||||
ai:{
|
||||
effect:{
|
||||
target:function(card,player,target,current){
|
||||
if(card.name=='sha'){
|
||||
if(card.nature=='fire'||player.skills.contains('zhuque_skill')) return 2;
|
||||
}
|
||||
if(get.tag(card,'fireDamage')&¤t<0) return 2;
|
||||
}
|
||||
}
|
||||
},
|
||||
group:'ranshang2'
|
||||
},
|
||||
ranshang2:{
|
||||
trigger:{player:'phaseEnd'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.storage.ranshang>0;
|
||||
},
|
||||
content:function(){
|
||||
player.loseHp(player.storage.ranshang);
|
||||
}
|
||||
},
|
||||
hanyong:{
|
||||
trigger:{player:'useCard'},
|
||||
filter:function(event,player){
|
||||
return player.storage.hanyong>player.hp&&event.card&&
|
||||
(event.card.name=='nanman'||event.card.name=='wanjian');
|
||||
},
|
||||
content:function(){
|
||||
player.addTempSkill('hanyong3','useCardAfter');
|
||||
},
|
||||
init:function(player){
|
||||
player.storage.hanyong=0;
|
||||
},
|
||||
group:'hanyong2'
|
||||
},
|
||||
hanyong2:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
silent:true,
|
||||
content:function(){
|
||||
player.storage.hanyong++;
|
||||
}
|
||||
},
|
||||
hanyong3:{
|
||||
trigger:{source:'damageBegin'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.card&&(event.card.name=='nanman'||event.card.name=='wanjian');
|
||||
},
|
||||
content:function(){
|
||||
trigger.num++;
|
||||
}
|
||||
},
|
||||
yishe:{
|
||||
trigger:{player:'phaseEnd'},
|
||||
init:function(player){
|
||||
player.storage.yishe=[];
|
||||
},
|
||||
filter:function(event,player){
|
||||
return !player.storage.yishe||!player.storage.yishe.length;
|
||||
},
|
||||
intro:{
|
||||
content:'cards'
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.draw(2);
|
||||
player.chooseCard(2,'he',true,'选择两张牌作为“米”');
|
||||
'step 1'
|
||||
player.markSkill('yishe');
|
||||
player.storage.yishe=result.cards;
|
||||
player.lose(result.cards,ui.special);
|
||||
game.addVideo('storage',player,['yishe',get.cardsInfo(player.storage.yishe),'cards']);
|
||||
}
|
||||
},
|
||||
bushi:{
|
||||
trigger:{player:'damageEnd',source:'damageEnd'},
|
||||
filter:function(event,player){
|
||||
return player.storage.yishe&&player.storage.yishe.length&&event.player.isAlive();
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
trigger.player.chooseCardButton('选择获得一张“米”',player.storage.yishe);
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('bushi');
|
||||
trigger.player.gain(result.buttons[0].link,'gain2');
|
||||
player.storage.yishe.remove(result.buttons[0].link);
|
||||
game.addVideo('storage',player,['yishe',get.cardsInfo(player.storage.yishe),'cards']);
|
||||
if(player.storage.yishe.length==0){
|
||||
player.recover();
|
||||
player.unmarkSkill('yishe');
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
midao:{
|
||||
unique:true,
|
||||
trigger:{global:'judge'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player.storage.yishe&&player.storage.yishe.length&&event.player.isAlive();
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
var list=player.storage.yishe;
|
||||
var dialog=ui.create.dialog(get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+get.translation(trigger.player.judging)+
|
||||
',是否发动【米道】?',list,'hidden');
|
||||
player.chooseButton(dialog,function(button){
|
||||
var card=button.link;
|
||||
var trigger=_status.event.parent._trigger;
|
||||
var player=_status.event.player;
|
||||
var result=trigger.judge(card)-trigger.judge(trigger.player.judging);
|
||||
var attitude=ai.get.attitude(player,trigger.player);
|
||||
return result*attitude;
|
||||
});
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
event.card=result.buttons[0].link;
|
||||
player.$throw(event.card,1000);
|
||||
player.storage.yishe.remove(result.buttons[0].link);
|
||||
game.addVideo('storage',player,['yishe',get.cardsInfo(player.storage.yishe),'cards']);
|
||||
if(player.storage.yishe.length==0){
|
||||
player.recover();
|
||||
player.unmarkSkill('yishe');
|
||||
}
|
||||
if(event.card.clone){
|
||||
event.card.clone.classList.add('thrownhighlight');
|
||||
game.addVideo('highlightnode',player,get.cardInfo(event.card));
|
||||
}
|
||||
}
|
||||
"step 2"
|
||||
if(event.card){
|
||||
player.logSkill('midao',trigger.player);
|
||||
ui.discardPile.appendChild(trigger.player.judging);
|
||||
trigger.player.judging=event.card;
|
||||
trigger.position.appendChild(event.card);
|
||||
game.log(get.translation(trigger.player)+'的判定牌改为'+get.translation(event.card));
|
||||
event.card.expired=true;
|
||||
game.delay(2);
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
tag:{
|
||||
rejudge:0.6
|
||||
}
|
||||
}
|
||||
},
|
||||
fengpo:{
|
||||
trigger:{player:['shaBegin','juedouBegin']},
|
||||
filter:function(event,player){
|
||||
if(player.skills.contains('fengpo3')) return false;
|
||||
return event.target&&event.targets&&event.targets.length==1;
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.addTempSkill('fengpo3','phaseAfter');
|
||||
player.chooseControl('draw_card','加伤害','cancel',
|
||||
ui.create.dialog('是否发动【凤魄】?','hidden'));
|
||||
'step 1'
|
||||
if(result.control&&result.control!='cancel'){
|
||||
player.logSkill('fengpo');
|
||||
var nd=trigger.target.num('h',{suit:'diamond'});
|
||||
if(result.control=='draw_card'){
|
||||
player.draw(nd);
|
||||
}
|
||||
else{
|
||||
player.addTempSkill('fengpo2','useCardToAfter');
|
||||
player.storage.fengpo=nd;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
fengpo2:{
|
||||
trigger:{source:'damageBegin'},
|
||||
filter:function(event){
|
||||
return event.card&&(event.card.name=='sha'||event.card.name=='juedou')&&
|
||||
event.parent.name!='_lianhuan'&&event.parent.name!='_lianhuan2';
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
if(typeof player.storage.fengpo=='number'){
|
||||
trigger.num+=player.storage.fengpo;
|
||||
}
|
||||
}
|
||||
},
|
||||
fengpo3:{},
|
||||
biluan:{
|
||||
trigger:{player:'phaseDrawBefore'},
|
||||
mark:true,
|
||||
unique:true,
|
||||
intro:{
|
||||
content:function(storage){
|
||||
if(storage>0){
|
||||
return '防御距离+'+storage;
|
||||
}
|
||||
else if(storage<0){
|
||||
return '防御距离'+storage;
|
||||
}
|
||||
else{
|
||||
return '无距离变化';
|
||||
}
|
||||
}
|
||||
},
|
||||
init:function(player){
|
||||
player.storage.biluan=0;
|
||||
},
|
||||
check:function(event,player){
|
||||
if(player.num('h')>player.hp) return true;
|
||||
if(player.num('j','lebu')) return true;
|
||||
var ng=[];
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].group!='unknown'){
|
||||
|
@ -49,26 +421,68 @@ character.sp={
|
|||
if(ng<2) return false;
|
||||
var nai=0;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
var dist=get.distance(game.players[i],player,'attack');
|
||||
if(dist<=1&&dist+ng>1){
|
||||
nai++;
|
||||
if(game.players[i]!=player){
|
||||
var dist=get.distance(game.players[i],player,'attack');
|
||||
if(dist<=1&&dist+ng>1){
|
||||
nai++;
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log(nai);
|
||||
return nai>=2;
|
||||
},
|
||||
filter:function(event,player){
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(get.distance(game.players[i],player)<=1){
|
||||
if(game.players[i]!=player&&
|
||||
get.distance(game.players[i],player)<=1){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
content:function(){
|
||||
var ng=[];
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].group!='unknown'){
|
||||
ng.add(game.players[i].group);
|
||||
}
|
||||
}
|
||||
player.$damagepop(ng.length,'unknownx');
|
||||
player.storage.biluan+=ng.length;
|
||||
game.addVideo('storage',player,['biluan',player.storage.biluan]);
|
||||
trigger.untrigger();
|
||||
trigger.finish();
|
||||
},
|
||||
mod:{
|
||||
globalTo:function(from,to,distance){
|
||||
if(typeof to.storage.biluan=='number'){
|
||||
return distance+to.storage.biluan;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
biluan2:{
|
||||
mark:true,
|
||||
lixia:{
|
||||
trigger:{global:'phaseEnd'},
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&get.distance(event.player,player,'attack')>1;
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(function(card,player,target){
|
||||
return target==player||target==trigger.player;
|
||||
},true,'礼下:选择一个目标摸一张牌').ai=function(target){
|
||||
return target==player;
|
||||
}.ai=function(target){
|
||||
return player==target?1:0;
|
||||
};
|
||||
'step 1'
|
||||
if(result.targets.length){
|
||||
result.targets[0].draw();
|
||||
player.line(result.targets[0],'green');
|
||||
}
|
||||
player.storage.biluan--;
|
||||
game.addVideo('storage',player,['biluan',player.storage.biluan]);
|
||||
}
|
||||
},
|
||||
fuji:{
|
||||
trigger:{global:'damageBegin'},
|
||||
|
@ -386,8 +800,7 @@ character.sp={
|
|||
if(cards.length){
|
||||
var dialog;
|
||||
if(event.isMine()){
|
||||
dialog=ui.create.dialog('是否发动【'+get.translation(event.name)+'】?');
|
||||
dialog.style.opacity='none';
|
||||
dialog=ui.create.dialog('是否发动【'+get.translation(event.name)+'】?','hidden');
|
||||
dialog.add(cards);
|
||||
for(var i=0;i<dialog.buttons.length;i++){
|
||||
dialog.buttons[i].style.opacity=1;
|
||||
|
@ -401,14 +814,15 @@ character.sp={
|
|||
}
|
||||
}
|
||||
maxval+=cards.length-1;
|
||||
player.chooseToDiscard('he',{suit:suits},dialog).ai=function(card){
|
||||
var next=player.chooseToDiscard('he',{suit:suits},dialog);
|
||||
next.ai=function(card){
|
||||
return maxval-ai.get.value(card);
|
||||
};
|
||||
next.logSkill='manjuan';
|
||||
event.cards=cards;
|
||||
}
|
||||
"step 2"
|
||||
if(result.bool){
|
||||
player.logSkill(event.name);
|
||||
game.log(get.translation(player)+'获得了'+get.translation(event.cards));
|
||||
player.gain(event.cards,'gain2');
|
||||
}
|
||||
|
@ -564,12 +978,13 @@ character.sp={
|
|||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('协穆:是否弃置一张杀并摸两张牌?',{name:'sha'}).ai=function(card){
|
||||
var next=player.chooseToDiscard('协穆:是否弃置一张杀并摸两张牌?',{name:'sha'});
|
||||
next.ai=function(card){
|
||||
return 9-ai.get.value(card);
|
||||
};
|
||||
next.logSkill='xiemu';
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('xiemu');
|
||||
player.draw(2);
|
||||
}
|
||||
},
|
||||
|
@ -922,9 +1337,11 @@ character.sp={
|
|||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('是否发动【名士】?',{color:'black'}).ai=function(card){
|
||||
var next=player.chooseToDiscard('是否发动【名士】?',{color:'black'});
|
||||
next.ai=function(card){
|
||||
return 9-ai.get.value(card);
|
||||
}
|
||||
next.logSkill='mingshi';
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
trigger.num--;
|
||||
|
@ -1100,16 +1517,17 @@ character.sp={
|
|||
content:function(){
|
||||
"step 0"
|
||||
var nono=(Math.abs(ai.get.attitude(player,trigger.player))<3);
|
||||
player.chooseToDiscard('是否对'+get.translation(trigger.player)+'发动【鸩毒】?').ai=function(card){
|
||||
var next=player.chooseToDiscard('是否对'+get.translation(trigger.player)+'发动【鸩毒】?');
|
||||
next.ai=function(card){
|
||||
if(nono) return -1;
|
||||
if(ai.get.damageEffect(trigger.player,player,player)>0){
|
||||
return 7-ai.get.useful(card);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
next.logSkill=['zhendu',trigger.player];
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('zhendu',trigger.player);
|
||||
trigger.player.damage();
|
||||
}
|
||||
else{
|
||||
|
@ -1448,16 +1866,17 @@ character.sp={
|
|||
content:function(){
|
||||
"step 0"
|
||||
var nono=(Math.abs(ai.get.attitude(player,trigger.player))<3);
|
||||
player.chooseToDiscard('是否发动【骁果】?',{type:'basic'}).ai=function(card){
|
||||
var next=player.chooseToDiscard('是否发动【骁果】?',{type:'basic'});
|
||||
next.ai=function(card){
|
||||
if(nono) return 0;
|
||||
if(ai.get.damageEffect(trigger.player,player,player)>0){
|
||||
return 8-ai.get.useful(card);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
next.logSkill=['xiaoguo',trigger.player];
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('xiaoguo',trigger.player);
|
||||
var nono=(ai.get.damageEffect(trigger.player,player,trigger.player)>=0);
|
||||
trigger.player.chooseToDiscard('he',{type:'equip'}).ai=function(card){
|
||||
if(nono){
|
||||
|
@ -2381,7 +2800,7 @@ character.sp={
|
|||
if(current>0) return;
|
||||
if(target.num('h')==0) return 1.6;
|
||||
if(target.num('h')==1) return 1.2;
|
||||
if(target.num('h')==2) return [0.8,0.5,0,-0.5];
|
||||
if(target.num('h')==2) return [0.8,0.2,0,-0.2];
|
||||
return [0.4,0.7,0,-0.7];
|
||||
}
|
||||
}
|
||||
|
@ -2850,12 +3269,14 @@ character.sp={
|
|||
zhanglu:'张鲁',
|
||||
wutugu:'兀突骨',
|
||||
mateng:'马腾',
|
||||
sp_caiwenji:'蔡文姬',
|
||||
|
||||
biluan:'避乱',
|
||||
biluan_info:'摸牌阶段开始时,若有其他角色与你距离不大于1,则你可以放弃摸牌。若如此做,其他角色与你距离+X(X为势力数)',
|
||||
lixia:'礼下',
|
||||
lixia_info:'锁定技,其他角色结束阶段开始时,若你不在其攻击范围内,你摸一张牌或令其摸一张牌。若如此做,其他角色与你的距离-1',
|
||||
yishe:'义舍',
|
||||
yishe_bg:'米',
|
||||
yishe_info:'结束阶段开始时,若你的武将牌上没有牌,你可以摸两张牌。若如此做,你将两张牌置于武将牌上,称为“米”;当“米”移至其他区域后,若你的武将牌上没有“米”,你回复1点体力',
|
||||
bushi:'布施',
|
||||
midao:'米道',
|
||||
|
@ -2868,6 +3289,7 @@ character.sp={
|
|||
mozhi:'默识',
|
||||
mozhi_info:'结束阶段开始时,你可以将一张手牌当你本回合出牌阶段使用的第一张基本或非延时类锦囊牌使用。然后,你可以将一张手牌当你本回合出牌阶段使用的第二张基本或非延时类锦囊牌使用',
|
||||
ranshang:'燃殇',
|
||||
ranshang2:'燃殇',
|
||||
ranshang_info:'锁定技,当你受到1点火焰伤害后,你获得1枚“燃”标记;结束阶段开始时,你失去X点体力(X为“燃”标记的数量)',
|
||||
hanyong:'悍勇',
|
||||
hanyong_info:'当你使用【南蛮入侵】或【万箭齐发】时,若你的体力值小于游戏轮数,你可以令此牌造成的伤害+1',
|
||||
|
|
|
@ -46,6 +46,7 @@ character.standard={
|
|||
unique:true,
|
||||
trigger:{player:'chooseToRespondBegin'},
|
||||
filter:function(event,player){
|
||||
if(event.responded) return false;
|
||||
if(!player.isZhu) return false;
|
||||
if(event.filterCard({name:'shan'})==false) return false;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
|
@ -515,6 +516,7 @@ character.standard={
|
|||
audio:2,
|
||||
trigger:{player:'chooseToRespondBegin'},
|
||||
filter:function(event,player){
|
||||
if(event.responded) return false;
|
||||
if(!player.isZhu) return false;
|
||||
if(event.filterCard({name:'sha'})==false) return false;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
|
|
103
character/swd.js
|
@ -331,7 +331,7 @@ character.swd={
|
|||
var dialog=ui.create.dialog('聒噪:选择一个目标将手牌替换',cards,'hidden');
|
||||
dialog.classList.add('noselect');
|
||||
var next=player.chooseTarget(true,dialog,function(card,player,target){
|
||||
return target.num('h')>0;
|
||||
return target.num('h')>0&&get.distance(player,target)<=2;
|
||||
}).ai=function(target){
|
||||
var att=ai.get.attitude(player,target);
|
||||
var hs=target.get('h');
|
||||
|
@ -665,9 +665,11 @@ character.swd={
|
|||
"step 0"
|
||||
var yep=ai.get.attitude(player,trigger.player)<0&&
|
||||
trigger.player.num('h')>2;
|
||||
player.chooseToDiscard(function(card){
|
||||
var next=player.chooseToDiscard(function(card){
|
||||
return get.type(card)!='basic';
|
||||
},'是否对'+get.translation(trigger.player)+'发动【入梦】?','he').ai=function(card){
|
||||
},'是否对'+get.translation(trigger.player)+'发动【入梦】?','he');
|
||||
next.logSkill=['rumeng',trigger.player];
|
||||
next.ai=function(card){
|
||||
if(yep){
|
||||
return 6-ai.get.value(card);
|
||||
}
|
||||
|
@ -675,7 +677,6 @@ character.swd={
|
|||
}
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('rumeng',trigger.player);
|
||||
trigger.player.chooseToDiscard({type:'basic'},'入梦:弃置一张基本牌或路过出牌及弃牌阶段').ai=function(card){
|
||||
return 5-ai.get.value(card);
|
||||
}
|
||||
|
@ -702,15 +703,16 @@ character.swd={
|
|||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('he','是否发动【连打】?').ai=function(card){
|
||||
var next=player.chooseToDiscard('he','是否发动【连打】?');
|
||||
next.ai=function(card){
|
||||
if(ai.get.effect(trigger.target,{name:'sha'},player,player)>0){
|
||||
return 7-ai.get.value(card);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
next.logSkill='lianda';
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('lianda');
|
||||
player.addTempSkill('lianda2','phaseAfter');
|
||||
player.useCard({name:'sha'},trigger.target);
|
||||
}
|
||||
|
@ -840,7 +842,9 @@ character.swd={
|
|||
}
|
||||
}
|
||||
}
|
||||
player.chooseToDiscard('he','是否发动【镇卫】?').ai=function(card){
|
||||
var next=player.chooseToDiscard('he','是否发动【镇卫】?');
|
||||
next.logSkill='hzhenwei',trigger.target;
|
||||
next.ai=function(card){
|
||||
if(save){
|
||||
return 7-ai.get.value(card);
|
||||
}
|
||||
|
@ -848,7 +852,6 @@ character.swd={
|
|||
}
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('hzhenwei',trigger.target);
|
||||
trigger.target=player;
|
||||
trigger.untrigger();
|
||||
trigger.trigger('useCardToBefore');
|
||||
|
@ -1616,13 +1619,14 @@ character.swd={
|
|||
content:function(){
|
||||
"step 0"
|
||||
var att=ai.get.attitude(player,trigger.player);
|
||||
player.chooseToDiscard('he','是否发动【碎岩】?').ai=function(card){
|
||||
var next=player.chooseToDiscard('he','是否发动【碎岩】?');
|
||||
next.ai=function(card){
|
||||
if(att<0) return 7-ai.get.value(card);
|
||||
return -1;
|
||||
}
|
||||
next.logSkill=['suiyan',trigger.player];
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('suiyan',trigger.player);
|
||||
trigger.player.discard(trigger.player.get('e'));
|
||||
}
|
||||
},
|
||||
|
@ -2146,7 +2150,9 @@ character.swd={
|
|||
str+='对'+get.translation(trigger.targets);
|
||||
}
|
||||
str+='的'+get.translation(trigger.card)+'失效?'
|
||||
player.chooseToDiscard('he',{type:'equip'},str).ai=function(card){
|
||||
var next=player.chooseToDiscard('he',{type:'equip'},str);
|
||||
next.logSkill='gongshen';
|
||||
next.ai=function(card){
|
||||
if(effect<0){
|
||||
var val=9-ai.get.value(card);
|
||||
var nme=trigger.card.name;
|
||||
|
@ -2173,7 +2179,6 @@ character.swd={
|
|||
game.delay();
|
||||
trigger.untrigger();
|
||||
trigger.finish();
|
||||
player.logSkill('gongshen');
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
|
@ -3066,14 +3071,15 @@ character.swd={
|
|||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('是否弃置两张手牌将'+get.translation(trigger.card)+'反弹?',2).ai=function(card){
|
||||
var next=player.chooseToDiscard('是否弃置两张手牌将'+get.translation(trigger.card)+'反弹?',2);
|
||||
next.ai=function(card){
|
||||
if(ai.get.effect(player,trigger.card)<0) return 4-ai.get.value(card);
|
||||
return 0;
|
||||
}
|
||||
next.logSkill='yihua';
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
// player.discard(result.cards);
|
||||
player.logSkill('yihua');
|
||||
trigger.target=trigger.player;
|
||||
trigger.player=player;
|
||||
trigger.untrigger();
|
||||
|
@ -3312,10 +3318,9 @@ character.swd={
|
|||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToUse({name:'sha'},'是否对'+get.translation(trigger.player)+'使用一张杀',trigger.player);
|
||||
player.chooseToUse({name:'sha'},'是否对'+get.translation(trigger.player)+'使用一张杀',trigger.player).logSkill='rexue';
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('rexue');
|
||||
player.draw();
|
||||
}
|
||||
}
|
||||
|
@ -3400,7 +3405,9 @@ character.swd={
|
|||
"step 0"
|
||||
var att=ai.get.attitude(player,trigger.player);
|
||||
var nh=player.num('h');
|
||||
player.chooseToDiscard('是否发动苏生?').ai=function(card){
|
||||
var next=player.chooseToDiscard('是否发动苏生?');
|
||||
next.logSkill='susheng';
|
||||
next.ai=function(card){
|
||||
if(att>3||(att>1&&nh>2)){
|
||||
return ai.get.unuseful2(card);
|
||||
}
|
||||
|
@ -3414,7 +3421,6 @@ character.swd={
|
|||
trigger.player.hp=1;
|
||||
if(trigger.player.maxHp<1) trigger.player.maxHp=1;
|
||||
trigger.player.update();
|
||||
player.logSkill('susheng');
|
||||
player.addTempSkill('susheng2','phaseAfter');
|
||||
}
|
||||
|
||||
|
@ -4268,9 +4274,11 @@ character.swd={
|
|||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('he','是否发动【唤魂】?',function(card){
|
||||
var next=player.chooseToDiscard('he','是否发动【唤魂】?',function(card){
|
||||
return get.color(card)=='red';
|
||||
}).ai=function(card){
|
||||
});
|
||||
next.logSkill=['huanhun',trigger.player];
|
||||
next.ai=function(card){
|
||||
if(ai.get.attitude(player,trigger.player)>0){
|
||||
return 8-ai.get.value(card);
|
||||
}
|
||||
|
@ -4278,7 +4286,6 @@ character.swd={
|
|||
};
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('huanhun',trigger.player);
|
||||
trigger.player.judge(function(card){
|
||||
return get.color(card)=='red'?1:-1;
|
||||
});
|
||||
|
@ -4394,7 +4401,9 @@ character.swd={
|
|||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('请选择发动代形的卡牌','he',[1,player.num('he')]).ai=function(card){
|
||||
var next=player.chooseToDiscard('请选择发动代形的卡牌','he',[1,player.num('he')]);
|
||||
next.logSkill='daixing';
|
||||
next.ai=function(card){
|
||||
if(ui.selected.cards.length>=2) return 0;
|
||||
if(ui.selected.cards.length==1){
|
||||
if(player.num('h')>player.hp){
|
||||
|
@ -4408,7 +4417,6 @@ character.swd={
|
|||
if(result.bool){
|
||||
player.changeHujia(result.cards.length);
|
||||
player.storage.daixing=result.cards.length;
|
||||
player.logSkill('daixing');
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
|
@ -5051,7 +5059,9 @@ character.swd={
|
|||
var num=player.num('h')-trigger.source.num('h');
|
||||
event.num=num;
|
||||
if(num>0){
|
||||
player.chooseToDiscard(num,'是否弃置'+num+'张手牌,并对'+get.translation(trigger.source)+'造成一点伤害?').ai=function(card){
|
||||
var next=player.chooseToDiscard(num,'是否弃置'+num+'张手牌,并对'+get.translation(trigger.source)+'造成一点伤害?');
|
||||
next.logSkill=['pozhen',trigger.source];
|
||||
next.ai=function(card){
|
||||
if(ai.get.damageEffect(trigger.source,player,player)>0&&num<=2){
|
||||
return 6-ai.get.value(card);
|
||||
}
|
||||
|
@ -5068,11 +5078,11 @@ character.swd={
|
|||
}
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('pozhen',trigger.source);
|
||||
if(event.num>0){
|
||||
trigger.source.damage();
|
||||
}
|
||||
else{
|
||||
player.logSkill('pozhen',trigger.source);
|
||||
var cards=trigger.source.get('h');
|
||||
cards.sort(lib.sort.random);
|
||||
trigger.source.discard(cards.slice(0,-event.num));
|
||||
|
@ -5605,9 +5615,11 @@ character.swd={
|
|||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('he','是否弃置一张装备牌抵消伤害?',function(card,player){
|
||||
var next=player.chooseToDiscard('he','是否弃置一张装备牌抵消伤害?',function(card,player){
|
||||
return get.type(card)=='equip';
|
||||
}).ai=function(card){
|
||||
});
|
||||
next.logSkill='yulin';
|
||||
next.ai=function(card){
|
||||
if(player.hp==1||trigger.num>1){
|
||||
return 9-ai.get.value(card);
|
||||
}
|
||||
|
@ -5618,7 +5630,6 @@ character.swd={
|
|||
};
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('yulin');
|
||||
game.delay();
|
||||
trigger.untrigger();
|
||||
trigger.finish();
|
||||
|
@ -5792,9 +5803,11 @@ character.swd={
|
|||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('朱羽:是否弃置一张红色手牌使其受到一点火焰伤害?',function(card){
|
||||
var next=player.chooseToDiscard('朱羽:是否弃置一张红色手牌使其受到一点火焰伤害?',function(card){
|
||||
return get.color(card)=='red';
|
||||
}).ai=function(card){
|
||||
});
|
||||
next.logSkill=['zhuyu',trigger.player,'fire'];
|
||||
next.ai=function(card){
|
||||
if(trigger.player.hasSkillTag('nofire')) return 0;
|
||||
if(ai.get.damageEffect(trigger.player,player,player,'fire')>0){
|
||||
return 9-ai.get.value(card);
|
||||
|
@ -5803,7 +5816,6 @@ character.swd={
|
|||
};
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('zhuyu',trigger.player,'fire');
|
||||
trigger.player.damage('fire');
|
||||
}
|
||||
}
|
||||
|
@ -5822,9 +5834,11 @@ character.swd={
|
|||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('是否弃置一张黑色手牌使其横置或翻面?',function(card){
|
||||
var next=player.chooseToDiscard('是否弃置一张黑色手牌使其横置或翻面?',function(card){
|
||||
return get.color(card)=='black';
|
||||
}).ai=function(card){
|
||||
});
|
||||
next.logSkill='ningshuang';
|
||||
next.ai=function(card){
|
||||
if(ai.get.attitude(player,trigger.player)<0){
|
||||
return 9-ai.get.value(card);
|
||||
}
|
||||
|
@ -5832,7 +5846,6 @@ character.swd={
|
|||
};
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('ningshuang');
|
||||
if(trigger.player.classList.contains('turnedover')){
|
||||
trigger.player.loseHp();
|
||||
}
|
||||
|
@ -6239,7 +6252,7 @@ character.swd={
|
|||
list=list.concat(game.players[i].get('j'));
|
||||
}
|
||||
var dialog=ui.create.dialog(get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+get.translation(trigger.player.judging)+
|
||||
',是否发动【天轮】?',list);
|
||||
',是否发动【天轮】?',list,'hidden');
|
||||
player.chooseButton(dialog,function(button){
|
||||
var card=button.link;
|
||||
var trigger=_status.event.parent._trigger;
|
||||
|
@ -6275,7 +6288,7 @@ character.swd={
|
|||
}
|
||||
}
|
||||
},
|
||||
longyin:{
|
||||
hlongyin:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterCard:function(card,player){
|
||||
|
@ -6875,16 +6888,17 @@ character.swd={
|
|||
ai.get.attitude(player,trigger.source)<0&&
|
||||
ai.get.damageEffect(trigger.player,trigger.source,player)<
|
||||
ai.get.damageEffect(trigger.source,trigger.player,player);
|
||||
player.chooseToDiscard('是否将伤害来源('+get.translation(trigger.source)+
|
||||
')和目标('+get.translation(trigger.player)+')对调?','he').ai=function(card){
|
||||
var next=player.chooseToDiscard('是否将伤害来源('+get.translation(trigger.source)+
|
||||
')和目标('+get.translation(trigger.player)+')对调?','he');
|
||||
next.ai=function(card){
|
||||
if(go){
|
||||
return 10-ai.get.value(card);
|
||||
}
|
||||
return 0;
|
||||
};
|
||||
next.logSkill='yinguo';
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('yinguo');
|
||||
var target=trigger.player;
|
||||
trigger.player=trigger.source;
|
||||
trigger.source=target;
|
||||
|
@ -7568,13 +7582,14 @@ character.swd={
|
|||
content:function(){
|
||||
"step 0"
|
||||
var dis=trigger.target.num('h','shan')||trigger.target.num('e','bagua')||trigger.target.num('h')>2;
|
||||
player.chooseToDiscard('是否发动【狩猎】?').ai=function(card){
|
||||
var next=player.chooseToDiscard('是否发动【狩猎】?');
|
||||
next.ai=function(card){
|
||||
if(dis) return 7-ai.get.value(card);
|
||||
return 0;
|
||||
}
|
||||
next.logSkill='shoulie';
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('shoulie');
|
||||
trigger.directHit=true;
|
||||
}
|
||||
}
|
||||
|
@ -7817,7 +7832,7 @@ character.swd={
|
|||
bingfeng2_info:'不能使用或打出手牌',
|
||||
bingfeng_info:'限定技,出牌阶段,你可以指定至多三个目标与其一同翻面,且处于翻面状态时不能使用或打出手牌;若如此做,你失去技能玄咒并减少一点体力上限',
|
||||
guozao:'聒噪',
|
||||
guozao_info:'锁定技,每当距离你1以内的角色受到一次伤害,若伤害来源不你,你须观看牌堆顶的三张牌,然后指定一名有手牌的角色将手牌与这些牌交换',
|
||||
guozao_info:'锁定技,每当距离你1以内的角色受到一次伤害,若伤害来源不你,你须观看牌堆顶的三张牌,然后指定距离2以内的一名有手牌角色将手牌与这些牌交换',
|
||||
heihuo:'黑火',
|
||||
heihuo_info:'出牌阶段,你可以弃置一张装备牌,令你的手牌数加倍;若你的手牌因此达到8张或更多,你立即受到3点火焰伤害且本回合内不能再次发动黑火',
|
||||
yaotong:'妖瞳',
|
||||
|
@ -8097,7 +8112,7 @@ character.swd={
|
|||
tianhuo:'天火',
|
||||
huanyin:'幻音',
|
||||
tianlun:'天轮',
|
||||
longyin:'龙吟',
|
||||
hlongyin:'龙吟',
|
||||
lanzhi:'兰芷',
|
||||
duanyi:'断意',
|
||||
miesheng:'灭生',
|
||||
|
@ -8166,7 +8181,7 @@ character.swd={
|
|||
duanyi_info:'出牌阶段限一次,你可以弃置两张杀,对一名角色造成一点伤害,然后其翻面并摸X张牌,X为其已损失的体力值',
|
||||
guxing_info:'出牌阶段,你可以将最后至多X张手牌当杀使用,此杀无视距离且可以指定至多3个目标,每造成一次伤害,你摸一张牌,X为你已损失的体力值且至少为1。',
|
||||
tianlun_info:'任意一名角色的判定生效前,你可以弃置一张场上角色的判定牌代替之',
|
||||
longyin_info:'出牌阶段,你可以弃置任意张颜色相同且点数不同的牌,并获得逆时针座位距离与卡牌点数相同的角色区域内的一张牌。每阶段限一次',
|
||||
hlongyin_info:'出牌阶段,你可以弃置任意张颜色相同且点数不同的牌,并获得逆时针座位距离与卡牌点数相同的角色区域内的一张牌。每阶段限一次',
|
||||
lanzhi_info:'每当你即将造成伤害,可以防止此伤害,然后摸两张牌。每回合限发动一次。',
|
||||
tianhuo_info:'出牌阶段,你可以令所有角色弃置其判定区域内的牌,并受到没有来源的等量火焰伤害,每阶段限一次',
|
||||
huanyin_info:'锁定技,每当你成为其他角色的卡牌的目标时,你进行一次判定,若为黑桃则取消之,若为红桃你摸一张牌',
|
||||
|
|
|
@ -408,7 +408,9 @@ character.xianjian={
|
|||
targets.push(game.players[i]);
|
||||
}
|
||||
}
|
||||
player.chooseToDiscard('是否对'+get.translation(targets)+'发动【忘忧】?','he').ai=function(card){
|
||||
var next=player.chooseToDiscard('是否对'+get.translation(targets)+'发动【忘忧】?','he');
|
||||
next.logSkill=['wangyou',event.targets];
|
||||
next.ai=function(card){
|
||||
if(num<=0) return 0;
|
||||
switch(num){
|
||||
case 1:return 5-ai.get.value(card);
|
||||
|
@ -420,7 +422,6 @@ character.xianjian={
|
|||
"step 1"
|
||||
if(result.bool){
|
||||
event.targets.sort(lib.sort.seat);
|
||||
player.logSkill('wangyou',event.targets);
|
||||
game.asyncDraw(event.targets);
|
||||
}
|
||||
else{
|
||||
|
@ -760,7 +761,8 @@ character.xianjian={
|
|||
}
|
||||
}
|
||||
if(num){
|
||||
player.chooseToDiscard(num,'是否发动【千方】?','he').ai=function(card){
|
||||
var next=player.chooseToDiscard(num,'是否发动【千方】?','he');
|
||||
next.ai=function(card){
|
||||
if(ainum>=0){
|
||||
switch(num){
|
||||
case 1:return 8-ai.get.value(card);
|
||||
|
@ -770,6 +772,8 @@ character.xianjian={
|
|||
}
|
||||
return -1;
|
||||
}
|
||||
next.logSkill='qianfang';
|
||||
event.logged=true;
|
||||
}
|
||||
else{
|
||||
player.chooseBool('是否发动【千方】?').ai=function(){
|
||||
|
@ -781,7 +785,7 @@ character.xianjian={
|
|||
player.storage.xuanning=0;
|
||||
player.unmarkSkill('xuanning');
|
||||
player.addTempSkill('qianfang2','phaseAfter');
|
||||
player.logSkill('qianfang');
|
||||
if(!event.logged) player.logSkill('qianfang');
|
||||
player.useCard({name:'wanjian'},event.targets);
|
||||
}
|
||||
else{
|
||||
|
@ -1223,7 +1227,9 @@ character.xianjian={
|
|||
trigger:{target:'useCardToBefore'},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('是否弃置两张牌使'+get.translation(trigger.card)+'失效?','he',2).ai=function(card){
|
||||
var next=player.chooseToDiscard('是否弃置两张牌使'+get.translation(trigger.card)+'失效?','he',2);
|
||||
next.logSkill='xiaoyao';
|
||||
next.ai=function(card){
|
||||
if(ai.get.effect(player,trigger.card,trigger.player,player)<0){
|
||||
if(get.tag(trigger.card,'respondSha')&&player.num('h','sha')) return 0;
|
||||
if(get.tag(trigger.card,'respondShan')&&player.num('h','shan')) return 0;
|
||||
|
@ -1235,7 +1241,6 @@ character.xianjian={
|
|||
if(result.bool){
|
||||
trigger.untrigger();
|
||||
trigger.finish();
|
||||
player.logSkill('xiaoyao');
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
2014
character/yijiang.js
|
@ -658,12 +658,13 @@ character.yxs={
|
|||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToDiscard('he','是否弃置一张黑色牌并收回'+get.translation(trigger.card)+'?',{color:'black'}).ai=function(card){
|
||||
var next=player.chooseToDiscard('he','是否弃置一张黑色牌并收回'+get.translation(trigger.card)+'?',{color:'black'});
|
||||
next.ai=function(card){
|
||||
return ai.get.value(trigger.card)-ai.get.value(card);
|
||||
}
|
||||
next.logSkill='jieyong';
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('jieyong');
|
||||
player.gain(trigger.card,'gain2');
|
||||
player.addTempSkill('jieyong2',['phaseAfter','phaseBegin']);
|
||||
}
|
||||
|
@ -801,15 +802,16 @@ character.yxs={
|
|||
"step 0"
|
||||
var val=ai.get.value(trigger.card);
|
||||
var suit=get.suit(trigger.card);
|
||||
player.chooseToDiscard('he','逐鹿:是否发动弃置一张'+get.translation(suit)+
|
||||
'牌并获得'+get.translation(trigger.card)+'?',{suit:suit}).ai=function(card){
|
||||
var next=player.chooseToDiscard('he','逐鹿:是否发动弃置一张'+get.translation(suit)+
|
||||
'牌并获得'+get.translation(trigger.card)+'?',{suit:suit});
|
||||
next.ai=function(card){
|
||||
return val-ai.get.value(card);
|
||||
};
|
||||
next.logSkill='zhulu';
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.gain(trigger.card,'gain2');
|
||||
player.addTempSkill('zhulu2','phaseAfter');
|
||||
player.logSkill('zhulu');
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
|
|
216
game/game.js
|
@ -239,6 +239,12 @@
|
|||
else{
|
||||
ui.arena.classList.remove('mobile');
|
||||
}
|
||||
if(lib.config.layout=='default'){
|
||||
ui.arena.classList.add('oldlayout');
|
||||
}
|
||||
else{
|
||||
ui.arena.classList.remove('oldlayout');
|
||||
}
|
||||
if(lib.config.layout=='default'&&lib.config.hp_style=='official'){
|
||||
ui.arena.classList.add('hpimage');
|
||||
}
|
||||
|
@ -359,7 +365,7 @@
|
|||
item:{
|
||||
default:'无',
|
||||
blur:'模糊',
|
||||
gray:'黑色',
|
||||
gray:'黑白',
|
||||
sepia:'怀旧',
|
||||
invert:'反色',
|
||||
saturate:'饱和',
|
||||
|
@ -1748,8 +1754,7 @@
|
|||
help:{
|
||||
'游戏选项':'<ul><li>控制台命令<br>开启后可用浏览器控制台控制游戏<li>自动确认<br>开启后当候选目标仅有1个时点击目标无需再点击确定<li>'+
|
||||
'触屏模式<br>可消除iOS等设备上300ms的点击延迟,但开启后无法使用鼠标<li>滚轮控制手牌<br>开启后滚轮可控制手牌的左右滚动,建议Mac等具备横向滚动功能的设备关闭此选项'+
|
||||
'<li>隐藏非全身皮肤<br>在新版布局中,若角色没有全身皮肤将被隐藏<li>游戏玩法<br>为游戏增加不同玩法,开启后可在帮助中查看介绍'+
|
||||
'<li>加强主公<br>反贼人数多于2时主公会额外增加一个技能(每个主公的额外技能固定,非常备主公增加天命)',
|
||||
'<li>隐藏非全身皮肤<br>在新版布局中,若角色没有全身皮肤将被隐藏<li>游戏玩法<br>为游戏增加不同玩法,开启后可在帮助中查看介绍',
|
||||
'游戏操作':'<ul><li>长按/鼠标悬停/右键单击(需在设置中开启)显示信息<li>触屏模式中双指点击切换暂停<li>移动布局中,点击顶部的左半边或右半边可显示按钮,双击顶部可令界面下移(方便标身份)<li>键盘快捷键<br>'+
|
||||
'<table><tr><td>a<td>切换托管<tr><td>c<td>打开设置<tr><td>w<td>切换不询问无懈<tr><td>▭<td>暂停</ul>',
|
||||
'游戏命令':'<div style="margin:10px">变量名</div><ul style="margin-top:0"><li>场上角色<br>game.players<li>阵亡角色<br>game.dead'+
|
||||
|
@ -1764,7 +1769,8 @@
|
|||
'<li>使用卡牌<br>player.useCard(card,<br>targets)<li>死亡<br>player.die()<li>复活<br>player.revive(hp)</ul>'+
|
||||
'<div style="margin:10px">游戏操作</div><ul style="margin-top:0"><li>在命令输入框中输出结果<br>game.print(str)<li>游戏结束<br>game.over(bool)'+
|
||||
'<li>角色资料<br>lib.character<li>卡牌资料<br>lib.card',
|
||||
'身份模式':'<div style="margin:10px">明忠</div><ul style="margin-top:0"><li>本模式需要8名玩家进行游戏,使用的身份牌为:1主公、2忠臣、4反贼和1内奸。游戏开始时,每名玩家随机获得一个身份,由系统随机选择一名忠臣身份的玩家亮出身份(将忠臣牌正面朝上放在面前),其他身份(包括主公)的玩家不亮出身份。<li>'+
|
||||
'身份模式':'<div style="margin:10px">选项</div><ul style="margin-top:0"><li>加强主公<br>反贼人数多于2时主公会额外增加一个技能(每个主公的额外技能固定,非常备主公增加天命)</ul>'+
|
||||
'<div style="margin:10px">明忠</div><ul style="margin-top:0"><li>本模式需要8名玩家进行游戏,使用的身份牌为:1主公、2忠臣、4反贼和1内奸。游戏开始时,每名玩家随机获得一个身份,由系统随机选择一名忠臣身份的玩家亮出身份(将忠臣牌正面朝上放在面前),其他身份(包括主公)的玩家不亮出身份。<li>'+
|
||||
'首先由亮出身份的忠臣玩家随机获得六张武将牌,挑选一名角色,并将选好的武将牌展示给其他玩家。之后其余每名玩家随机获得三张武将牌,各自从其中挑选一张同时亮出<li>'+
|
||||
'亮出身份牌的忠臣增加1点体力上限。角色濒死和死亡的结算及胜利条件与普通身份局相同。',
|
||||
'战棋模式':
|
||||
|
@ -1805,6 +1811,7 @@
|
|||
}
|
||||
else{
|
||||
node.addEventListener('mouseenter',ui.click.hoverpopped);
|
||||
// node.addEventListener('mouseleave',ui.click.hoverpopped_leave);
|
||||
}
|
||||
},
|
||||
placePoppedDialog:function(dialog,e){
|
||||
|
@ -2203,6 +2210,9 @@
|
|||
playerproto:{
|
||||
phase:function(){
|
||||
"step 0"
|
||||
if(player.node.judges.childElementCount){
|
||||
player.popup('判定阶段');
|
||||
}
|
||||
player.phaseJudge();
|
||||
"step 1"
|
||||
player.phaseDraw();
|
||||
|
@ -2213,6 +2223,7 @@
|
|||
game.delayx();
|
||||
}
|
||||
"step 2"
|
||||
if(!player.skipList.contains('phaseUse')) player.popup('出牌阶段');
|
||||
player.phaseUse();
|
||||
"step 3"
|
||||
player.phaseDiscard()
|
||||
|
@ -2255,7 +2266,7 @@
|
|||
},
|
||||
phaseUse:function(){
|
||||
"step 0";
|
||||
player.chooseToUse();
|
||||
player.chooseToUse().modCancel='结束';
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
event.goto(0);
|
||||
|
@ -2265,6 +2276,9 @@
|
|||
"step 0"
|
||||
event.num=player.num('h')-game.checkMod(player,player.hp,'maxHandcard',player.get('s'));
|
||||
if(event.num<=0) event.finish();
|
||||
else{
|
||||
player.popup('弃牌阶段');
|
||||
}
|
||||
event.trigger('phaseDiscard');
|
||||
"step 1"
|
||||
player.chooseToDiscard(num,true);
|
||||
|
@ -2352,6 +2366,14 @@
|
|||
event.skillDialog.close();
|
||||
}
|
||||
if(event.result.bool){
|
||||
if(event.logSkill){
|
||||
if(typeof event.logSkill=='string'){
|
||||
player.logSkill(event.logSkill);
|
||||
}
|
||||
else if(Array.isArray(event.logSkill)){
|
||||
player.logSkill.apply(player,event.logSkill);
|
||||
}
|
||||
}
|
||||
if(event.result.card||!event.result.skill){
|
||||
player.useCard(event.result.card,event.result.cards,event.result.targets,event.result.skill);
|
||||
}
|
||||
|
@ -2464,6 +2486,14 @@
|
|||
if(event.promptdiscard){
|
||||
event.promptdiscard.close();
|
||||
}
|
||||
if(event.logSkill&&event.result.bool){
|
||||
if(typeof event.logSkill=='string'){
|
||||
player.logSkill(event.logSkill);
|
||||
}
|
||||
else if(Array.isArray(event.logSkill)){
|
||||
player.logSkill.apply(player,event.logSkill);
|
||||
}
|
||||
}
|
||||
player.discard(event.result.cards);
|
||||
if(event.dialog) event.dialog.close();
|
||||
},
|
||||
|
@ -3149,7 +3179,9 @@
|
|||
}
|
||||
}
|
||||
if(event.animate!=false||num>0){
|
||||
if(num==0)game.delayx();
|
||||
if(num==0){
|
||||
if(event.delayx!==false) game.delayx();
|
||||
}
|
||||
else game.delayx(0.5);
|
||||
}
|
||||
"step 3"
|
||||
|
@ -3169,7 +3201,7 @@
|
|||
}
|
||||
"step 5"
|
||||
if(document.getElementsByClassName('thrown').length){
|
||||
game.delayx();
|
||||
if(event.delayx!==false) game.delayx();
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
|
@ -4463,6 +4495,13 @@
|
|||
return cards;
|
||||
}
|
||||
},
|
||||
syncStorage:function(skill){
|
||||
switch(get.itemtype(this.storage[skill])){
|
||||
case 'cards':game.addVideo('storage',this,[skill,get.cardsInfo(this.storage[skill]),'cards']);break;
|
||||
case 'card':game.addVideo('storage',this,[skill,get.cardInfo(this.storage[skill]),'cards']);break;
|
||||
default:game.addVideo('storage',this,[skill,this.storage[skill]]);
|
||||
}
|
||||
},
|
||||
playerfocus:function(time){
|
||||
time=time||1000;
|
||||
this.classList.add('playerfocus');
|
||||
|
@ -6035,7 +6074,7 @@
|
|||
|
||||
var dx=this.offsetLeft+this.offsetWidth/2-52-node.offsetLeft;
|
||||
var dy=this.offsetTop+this.offsetHeight/2-52-node.offsetTop;
|
||||
if(node.style.transform&&node.style.transform!='none'){
|
||||
if(node.style.transform&&node.style.transform!='none'&&node.style.transform.indexOf('translate')==-1){
|
||||
node.style.transform+=' translate('+dx+'px,'+dy+'px)';
|
||||
}
|
||||
else{
|
||||
|
@ -6220,7 +6259,7 @@
|
|||
ny=ny[0]*ui.arena.offsetHeight/100+ny[1];
|
||||
var dx=this.offsetLeft+this.offsetWidth/2-52-nx;
|
||||
var dy=this.offsetTop+this.offsetHeight/2-52-ny;
|
||||
if(node.style.transform&&node.style.transform!='none'){
|
||||
if(node.style.transform&&node.style.transform!='none'&&node.style.transform.indexOf('translate')==-1){
|
||||
node.style.transform+=' translate('+dx+'px,'+dy+'px)';
|
||||
}
|
||||
else{
|
||||
|
@ -6264,7 +6303,7 @@
|
|||
ny=ny[0]*ui.arena.offsetHeight/100+ny[1];
|
||||
var dx=this.offsetLeft+this.offsetWidth/2-52-nx;
|
||||
var dy=this.offsetTop+this.offsetHeight/2-52-ny;
|
||||
if(node.style.transform&&node.style.transform!='none'){
|
||||
if(node.style.transform&&node.style.transform!='none'&&node.style.transform.indexOf('translate')==-1){
|
||||
node.style.transform+=' translate('+dx+'px,'+dy+'px)';
|
||||
}
|
||||
else{
|
||||
|
@ -6358,7 +6397,7 @@
|
|||
// node.dataset.position=player.dataset.position;
|
||||
var dx=player.offsetLeft+player.offsetWidth/2-52-node.offsetLeft;
|
||||
var dy=player.offsetTop+player.offsetHeight/2-52-node.offsetTop;
|
||||
if(node.style.transform&&node.style.transform!='none'){
|
||||
if(node.style.transform&&node.style.transform!='none'&&node.style.transform.indexOf('translate')==-1){
|
||||
node.style.transform+=' translate('+dx+'px,'+dy+'px)';
|
||||
}
|
||||
else{
|
||||
|
@ -6708,21 +6747,26 @@
|
|||
}
|
||||
}
|
||||
else{
|
||||
var zoom1=0.9,zoom2=0.95;
|
||||
if(arguments[1]=='phase'){
|
||||
zoom1=1.05;
|
||||
zoom2=1.05;
|
||||
}
|
||||
if(lib.isMobileMe(this)){
|
||||
if(this.isLinked()){
|
||||
this.node.avatar.style.transform='scale(0.9) rotate(-90deg)';
|
||||
this.node.avatar2.style.transform='scale(0.9) rotate(-90deg)';
|
||||
this.node.avatar.style.transform='scale('+zoom1+') rotate(-90deg)';
|
||||
this.node.avatar2.style.transform='scale('+zoom1+') rotate(-90deg)';
|
||||
}
|
||||
else{
|
||||
this.node.avatar.style.transform='scale(0.9)';
|
||||
this.node.avatar2.style.transform='scale(0.9)';
|
||||
this.node.avatar.style.transform='scale('+zoom1+')';
|
||||
this.node.avatar2.style.transform='scale('+zoom1+')';
|
||||
}
|
||||
}
|
||||
else if(this.isLinked()&&lib.isNewLayout()){
|
||||
this.style.transform='scale(0.95) rotate(-90deg)';
|
||||
this.style.transform='scale('+zoom2+') rotate(-90deg)';
|
||||
}
|
||||
else{
|
||||
this.style.transform='scale(0.95)';
|
||||
this.style.transform='scale('+zoom2+')';
|
||||
}
|
||||
}
|
||||
this.queue();
|
||||
|
@ -6867,7 +6911,7 @@
|
|||
|
||||
var dx=player.offsetLeft+player.offsetWidth/2-52-this.offsetLeft;
|
||||
var dy=player.offsetTop+player.offsetHeight/2-52-this.offsetTop;
|
||||
if(this.style.transform&&this.style.transform!='none'){
|
||||
if(this.style.transform&&this.style.transform!='none'&&this.style.transform.indexOf('translate')==-1){
|
||||
this.style.transform+=' translate('+dx+'px,'+dy+'px)';
|
||||
}
|
||||
else{
|
||||
|
@ -7552,7 +7596,9 @@
|
|||
_status.currentPhase.classList.remove('glow_phase');
|
||||
}
|
||||
player.classList.add('glow_phase');
|
||||
// player.animate('playerbright',500);
|
||||
}
|
||||
// player.$damage(null,'phase')
|
||||
game.addVideo('phaseChange',player);
|
||||
_status.currentPhase=player;
|
||||
game.log();
|
||||
|
@ -8746,6 +8792,7 @@
|
|||
for(var j=0;j<l2.length;j++){
|
||||
if(l2[j].suit==l1[i][0]&&l2[j].number==l1[i][1]&&l2[j].name==l1[i][2]){
|
||||
l2[j].delete();
|
||||
l2.splice(j--,1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -9968,13 +10015,21 @@
|
|||
else{
|
||||
ui.arena.classList.add('selecting');
|
||||
_status.imchoosing=true;
|
||||
if(!_status.noconfirm){
|
||||
if(!_status.noconfirm&&!_status.event.noconfirm){
|
||||
if(!_status.mousedown||_status.mouseleft){
|
||||
var str='';
|
||||
if(ok) str+='o';
|
||||
if(!event.forced&&get.noSelected()) str+='c';
|
||||
ui.create.confirm(str);
|
||||
}
|
||||
if(ui.confirm&&ui.confirm.lastChild.link=='cancel'){
|
||||
if(_status.event.parent.name=='phaseUse'&&!_status.event.skill){
|
||||
ui.confirm.lastChild.innerHTML='结束';
|
||||
}
|
||||
else{
|
||||
ui.confirm.lastChild.innerHTML='取消';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10887,6 +10942,7 @@
|
|||
groupSort=function(name){
|
||||
if(lib.card[name[2]].type=='basic') return 0;
|
||||
if(lib.card[name[2]].type=='stonecard') return 0.5;
|
||||
if(lib.card[name[2]].type=='mengjing') return 0.3;
|
||||
if(lib.card[name[2]].type=='stonecharacter') return 1;
|
||||
if(lib.card[name[2]].type=='chess') return 1.5;
|
||||
if(lib.card[name[2]].type=='trick') return 2;
|
||||
|
@ -11166,6 +11222,9 @@
|
|||
if(lib.config.layout=='mobile'||lib.config.layout=='phone'){
|
||||
ui.arena.classList.add('mobile');
|
||||
}
|
||||
if(lib.config.layout=='default'){
|
||||
ui.arena.classList.add('oldlayout');
|
||||
}
|
||||
if(lib.config.layout=='default'&&lib.config.hp_style=='official'){
|
||||
ui.arena.classList.add('hpimage');
|
||||
}
|
||||
|
@ -12114,16 +12173,17 @@
|
|||
}
|
||||
};
|
||||
var clickContainer=function(){
|
||||
if(this.animating){
|
||||
return;
|
||||
}
|
||||
this.animating=true;
|
||||
menu.classList.add('zoomout');
|
||||
menu.classList.remove('zoomin');
|
||||
setTimeout(function(){
|
||||
menuContainer.classList.add('hidden');
|
||||
menuContainer.animating=false;
|
||||
},300);
|
||||
// if(this.animating){
|
||||
// return;
|
||||
// }
|
||||
// this.animating=true;
|
||||
// menu.classList.add('zoomout');
|
||||
// menu.classList.remove('zoomin');
|
||||
// setTimeout(function(){
|
||||
// menuContainer.classList.add('hidden');
|
||||
// menuContainer.animating=false;
|
||||
// },300);
|
||||
menuContainer.classList.add('hidden');
|
||||
|
||||
game.resume2();
|
||||
if(game.onresume2){
|
||||
|
@ -12225,13 +12285,13 @@
|
|||
if(menuContainer.classList.contains('hidden')){
|
||||
ui.config2.classList.add('pressdown2');
|
||||
ui.arena.classList.add('menupaused');
|
||||
menu.classList.remove('zoomout');
|
||||
menu.classList.add('zoomin');
|
||||
// menu.classList.remove('zoomout');
|
||||
// menu.classList.add('zoomin');
|
||||
menuContainer.classList.remove('hidden');
|
||||
menuContainer.animating=true;
|
||||
setTimeout(function(){
|
||||
menuContainer.animating=false;
|
||||
},300);
|
||||
// menuContainer.animating=true;
|
||||
// setTimeout(function(){
|
||||
// menuContainer.animating=false;
|
||||
// },300);
|
||||
for(var i=0;i<menuUpdates.length;i++){
|
||||
menuUpdates[i]();
|
||||
}
|
||||
|
@ -12696,9 +12756,14 @@
|
|||
this.classList.toggle('unselectable');
|
||||
if(this.classList.contains('unselectable')){
|
||||
lib.config.banned.add(this.link);
|
||||
this.node.hp._innerHTML=this.node.hp.innerHTML;
|
||||
this.node.hp.innerHTML='已禁用';
|
||||
this.node.hp.style.top='8px';
|
||||
}
|
||||
else{
|
||||
lib.config.banned.remove(this.link);
|
||||
this.node.hp.innerHTML=this.node.hp._innerHTML;
|
||||
this.node.hp.style.top='';
|
||||
}
|
||||
game.saveConfig('banned',lib.config.banned);
|
||||
};
|
||||
|
@ -12706,8 +12771,12 @@
|
|||
for(var i=0;i<buttons.length;i++){
|
||||
buttons[i].classList.add('noclick');
|
||||
buttons[i].listen(banCharacter);
|
||||
buttons[i].node.hp.style.transition='all 0s';
|
||||
if(lib.config.banned.contains(buttons[i].link)){
|
||||
buttons[i].classList.add('unselectable');
|
||||
buttons[i].node.hp._innerHTML=buttons[i].node.hp.innerHTML;
|
||||
buttons[i].node.hp.innerHTML='已禁用';
|
||||
buttons[i].node.hp.style.top='8px';
|
||||
}
|
||||
}
|
||||
page.classList.add('menu-buttons');
|
||||
|
@ -12812,9 +12881,13 @@
|
|||
this.classList.toggle('unselectable');
|
||||
if(this.classList.contains('unselectable')){
|
||||
lib.config.bannedcards.add(this.link[2]);
|
||||
this.node.info._innerHTML=this.node.info.innerHTML;
|
||||
this.node.info.innerHTML='已禁用';
|
||||
}
|
||||
else{
|
||||
lib.config.bannedcards.remove(this.link[2]);
|
||||
this.node.info.innerHTML=this.node.info._innerHTML;
|
||||
this.node.info.style.top='';
|
||||
}
|
||||
game.saveConfig('bannedcards',lib.config.bannedcards);
|
||||
};
|
||||
|
@ -12824,6 +12897,8 @@
|
|||
buttons[i].listen(banCard);
|
||||
if(lib.config.bannedcards.contains(buttons[i].link[2])){
|
||||
buttons[i].classList.add('unselectable');
|
||||
buttons[i].node.info._innerHTML=buttons[i].node.info.innerHTML;
|
||||
buttons[i].node.info.innerHTML='已禁用';
|
||||
}
|
||||
}
|
||||
page.classList.add('menu-buttons');
|
||||
|
@ -13836,6 +13911,9 @@
|
|||
if(!this._poppedfunc){
|
||||
return;
|
||||
}
|
||||
// if(this._poppedalready){
|
||||
// return;
|
||||
// }
|
||||
if(lib.config.touchscreen){
|
||||
_status.touchpopping=true;
|
||||
setTimeout(function(){
|
||||
|
@ -13848,6 +13926,7 @@
|
|||
ui.currentpopped._uiintro.delete();
|
||||
delete ui.currentpopped._uiintro;
|
||||
}
|
||||
// this._poppedalready=true;
|
||||
ui.currentpopped=this;
|
||||
uiintro.classList.add('popped');
|
||||
uiintro.classList.add('static');
|
||||
|
@ -13873,6 +13952,9 @@
|
|||
uiintro.addEventListener('mouseleave',ui.click.leavehoverpopped);
|
||||
}
|
||||
},
|
||||
hoverpopped_leave:function(){
|
||||
this._poppedalready=false;
|
||||
},
|
||||
leavehoverpopped:function(){
|
||||
if(_status.dragged) return;
|
||||
this.delete();
|
||||
|
@ -16127,6 +16209,7 @@
|
|||
func=function(card){
|
||||
if(get.type(card)=='basic') return 2;
|
||||
if(get.type(card)=='stonecard') return -0.5;
|
||||
if(get.type(card)=='mengjing') return 0.5;
|
||||
if(get.type(card)=='stonecharacter') return 1;
|
||||
if(get.type(card)=='chess') return 1.5;
|
||||
if(get.type(card)=='trick') return -1;
|
||||
|
@ -16357,7 +16440,7 @@
|
|||
}
|
||||
}
|
||||
// if(!simple)
|
||||
if(false){
|
||||
if(lib.config.touchscreen){
|
||||
var storage=node.storage;
|
||||
for(i in storage){
|
||||
if(get.info(i)&&get.info(i).intro){
|
||||
|
@ -16375,34 +16458,36 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
uiintro.add(ui.create.div('.placeholder'));
|
||||
var table,tr,td;
|
||||
table=document.createElement('table');
|
||||
tr=document.createElement('tr');
|
||||
table.appendChild(tr);
|
||||
td=document.createElement('td');
|
||||
td.innerHTML='攻击范围';
|
||||
tr.appendChild(td);
|
||||
td=document.createElement('td');
|
||||
td.innerHTML='进攻距离';
|
||||
tr.appendChild(td);
|
||||
td=document.createElement('td');
|
||||
td.innerHTML='防御距离';
|
||||
tr.appendChild(td);
|
||||
if(false){
|
||||
uiintro.add(ui.create.div('.placeholder'));
|
||||
var table,tr,td;
|
||||
table=document.createElement('table');
|
||||
tr=document.createElement('tr');
|
||||
table.appendChild(tr);
|
||||
td=document.createElement('td');
|
||||
td.innerHTML='攻击范围';
|
||||
tr.appendChild(td);
|
||||
td=document.createElement('td');
|
||||
td.innerHTML='进攻距离';
|
||||
tr.appendChild(td);
|
||||
td=document.createElement('td');
|
||||
td.innerHTML='防御距离';
|
||||
tr.appendChild(td);
|
||||
|
||||
tr=document.createElement('tr');
|
||||
table.appendChild(tr);
|
||||
td=document.createElement('td');
|
||||
td.innerHTML=get.attackRange(node);
|
||||
tr.appendChild(td);
|
||||
td=document.createElement('td');
|
||||
td.innerHTML=get.globalFrom(node);
|
||||
tr.appendChild(td);
|
||||
td=document.createElement('td');
|
||||
td.innerHTML=get.globalTo(node);
|
||||
tr.appendChild(td);
|
||||
tr=document.createElement('tr');
|
||||
table.appendChild(tr);
|
||||
td=document.createElement('td');
|
||||
td.innerHTML=get.attackRange(node);
|
||||
tr.appendChild(td);
|
||||
td=document.createElement('td');
|
||||
td.innerHTML=get.globalFrom(node);
|
||||
tr.appendChild(td);
|
||||
td=document.createElement('td');
|
||||
td.innerHTML=get.globalTo(node);
|
||||
tr.appendChild(td);
|
||||
|
||||
uiintro.content.appendChild(table);
|
||||
uiintro.content.appendChild(table);
|
||||
}
|
||||
}
|
||||
|
||||
uiintro.add(ui.create.div('.placeholder.slim'));
|
||||
|
@ -17189,6 +17274,13 @@
|
|||
window.lib=lib;
|
||||
window._status=_status;
|
||||
},
|
||||
rank:function(){
|
||||
var list=lib.rank.s.concat(lib.rank.ap).concat(lib.rank.a).concat(lib.rank.am).
|
||||
concat(lib.rank.bp).concat(lib.rank.b).concat(lib.rank.bm).concat(lib.rank.c).concat(lib.rank.d);
|
||||
for(var i in lib.character){
|
||||
if(i!='zuoci'&&!list.contains(i)) console.log(i);
|
||||
}
|
||||
},
|
||||
h:function(player){
|
||||
console.log(get.translation(player.get('h')));
|
||||
},
|
||||
|
|
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 71 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 185 KiB |
After Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 181 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 344 KiB After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 39 KiB |
|
@ -132,6 +132,10 @@ body>.background{z-index:-2}
|
|||
animation:cardflip 0.3s ease-out;
|
||||
-webkit-animation:cardflip 0.3s ease-out;
|
||||
}
|
||||
.player.playerbright{
|
||||
filter:brightness(1.2);
|
||||
-webkit-filter:brightness(1.2);
|
||||
}
|
||||
.player.playerflip{
|
||||
animation:playerflip 0.3s ease-out;
|
||||
-webkit-animation:playerflip 0.3s ease-out;
|
||||
|
@ -246,7 +250,7 @@ margin-bottom: 5px;
|
|||
.button.character>.intro{top:71px;left:0;}
|
||||
.button.character>.identity{top:-6px;left:72px;}
|
||||
/*--------确认--------*/
|
||||
#control{text-align: center;z-index: 2;top: calc(200% / 3);left: calc(5% + 240px);width: calc(90% - 480px);pointer-events: none}
|
||||
#control{text-align: center;z-index: 5;top: calc(200% / 3);left: calc(5% + 240px);width: calc(90% - 480px);pointer-events: none}
|
||||
#control>*{pointer-events: auto;}
|
||||
.control{padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;margin-left: 4px;margin-right: 4px;}
|
||||
.control{font-size: 18px;white-space: nowrap;position: relative;overflow: hidden;opacity:0}
|
||||
|
@ -642,6 +646,7 @@ div:hover>.intro{opacity: 1;}
|
|||
.dialog.scroll1.scroll2{box-shadow:0 -10px 10px -9px rgba(0,0,0,0.1),0 -10px 0 -9px rgba(0,0,0,0.05),
|
||||
0 10px 10px -9px rgba(0,0,0,0.1),0 10px 0 -9px rgba(0,0,0,0.05);}*/
|
||||
.selected,.target{/*transform: scale(1.05);*/}
|
||||
/*.player.target{-webkit-filter:brightness(1.2)}*/
|
||||
.target{transform: rotate(-3deg);}
|
||||
.target2{transform: rotate(3deg);}
|
||||
.content>.config.line2{
|
||||
|
|
|
@ -72,22 +72,37 @@
|
|||
left:calc(50% - 200px);
|
||||
top:calc(50% - 150px);
|
||||
}
|
||||
.menu.main.slideup{
|
||||
/*.menu.main.slideup{
|
||||
animation:menuslideup 0.5s forwards;
|
||||
-webkit-animation:menuslideup 0.5s forwards;
|
||||
}
|
||||
.menu.main.slidedown{
|
||||
animation:menuslidedown 0.5s forwards;
|
||||
-webkit-animation:menuslidedown 0.5s forwards;
|
||||
}*/
|
||||
.menu-container.hidden>.menu.main{
|
||||
transform:scale(0.5);
|
||||
transform-origin:2px -35px;
|
||||
opacity:0;
|
||||
}
|
||||
.menu.main.zoomin{
|
||||
.menu-container>.menu.main{
|
||||
transition: all 0.3s;
|
||||
transform-origin:2px -35px;
|
||||
}
|
||||
/*.menu.main.zoomin{
|
||||
animation:menuzoomin 0.3s forwards;
|
||||
-webkit-animation:menuzoomin 0.3s forwards;
|
||||
transform:scale(0.5);
|
||||
transform-origin:2px -35px;
|
||||
opacity:0;
|
||||
}
|
||||
.menu.main.zoomout{
|
||||
animation:menuzoomout 0.3s forwards;
|
||||
-webkit-animation:menuzoomout 0.3s forwards;
|
||||
}
|
||||
transform:scale(0.5);
|
||||
transform-origin:2px -35px;
|
||||
opacity:0;
|
||||
}*/
|
||||
.menu.main{
|
||||
width: 400px;
|
||||
height:300px;
|
||||
|
@ -223,7 +238,7 @@
|
|||
}
|
||||
|
||||
.popup-container.hidden{
|
||||
display:none;
|
||||
pointer-events:none;
|
||||
}
|
||||
.popup-container>.menu{
|
||||
position:absolute;
|
||||
|
|
|
@ -202,6 +202,9 @@
|
|||
.player.linked{
|
||||
transform:rotate(-90deg);
|
||||
}
|
||||
.player.linked.target{
|
||||
transform:rotate(-93deg);
|
||||
}
|
||||
.player.acted.linked .identity{
|
||||
transform:rotate(270deg);
|
||||
}
|
||||
|
|