This commit is contained in:
parent
6ad9c8b8b6
commit
da0efe4982
|
@ -7,7 +7,9 @@ card.hearth={
|
|||
enable:true,
|
||||
filterTarget:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
target.damage('fire');
|
||||
'step 1'
|
||||
var hs=player.get('h');
|
||||
if(hs.length){
|
||||
player.discard(hs.randomGet());
|
||||
|
|
|
@ -61,6 +61,9 @@ card.sp={
|
|||
if(hs.length==1&&hs[0]!=card) return true;
|
||||
return false;
|
||||
},
|
||||
chongzhu:function(){
|
||||
return game.players.length<=2;
|
||||
},
|
||||
type:'trick',
|
||||
selectTarget:2,
|
||||
multitarget:true,
|
||||
|
@ -619,7 +622,7 @@ card.sp={
|
|||
du:'毒',
|
||||
du_info:'当你因使用、打出或弃置而失去此牌时,你失去一点体力',
|
||||
shengdong:'声东击西',
|
||||
shengdong_info:'出牌阶段,对一名其他角色使用。你交给目标角色一张手牌,若如此做,其将两张牌交给另一名由你选择的其他角色',
|
||||
shengdong_info:'出牌阶段,对一名其他角色使用。你交给目标角色一张手牌,若如此做,其将两张牌交给另一名由你选择的其他角色(存活角色不超过2时可重铸)',
|
||||
zengbin:'增兵减灶',
|
||||
zengbin_info:'出牌阶段,对一名角色使用。目标角色摸三张牌,然后选择一项:1.弃置一张非基本牌;2.弃置两张牌',
|
||||
caomu:'草木皆兵',
|
||||
|
|
|
@ -994,6 +994,8 @@ card.swd={
|
|||
},
|
||||
ai:{
|
||||
order:10,
|
||||
value:6,
|
||||
useful:1,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target==player&&target.num('h',{type:'equip'})) return 2.5;
|
||||
|
|
|
@ -12,7 +12,7 @@ card.yunchou={
|
|||
player.draw();
|
||||
"step 1"
|
||||
ui.clear();
|
||||
var cards=get.cards(Math.floor(game.players.length/2));
|
||||
var cards=get.cards(Math.ceil(game.players.length/2));
|
||||
var dialog=ui.create.dialog('调兵遣将',cards,true);
|
||||
_status.dieClose.push(dialog);
|
||||
dialog.videoId=lib.status.videoId++;
|
||||
|
@ -33,7 +33,7 @@ card.yunchou={
|
|||
var minValue=20;
|
||||
var hs=target.get('h');
|
||||
for(var i=0;i<hs.length;i++){
|
||||
minValue=Math.min(minValue,ai.get.value(hs[i]));
|
||||
minValue=Math.min(minValue,ai.get.value(hs[i],target));
|
||||
}
|
||||
if(target.isUnderControl(true)){
|
||||
event.dialog.setCaption('选择一张牌并用一张手牌替换之');
|
||||
|
@ -78,17 +78,18 @@ card.yunchou={
|
|||
event.finish();
|
||||
return;
|
||||
}
|
||||
var att=ai.get.attitude(player,player.nextSeat);
|
||||
var nextSeat=_status.currentPhase.next;
|
||||
var att=ai.get.attitude(player,nextSeat);
|
||||
if(player.isUnderControl(true)&&!_status.auto){
|
||||
event.dialog.setCaption('将任意张牌以任意顺序置于牌堆顶(先选择的在上)');
|
||||
}
|
||||
var next=player.chooseButton([1,event.dialog.buttons.length],event.dialog);
|
||||
next.ai=function(button){
|
||||
if(att>0){
|
||||
return ai.get.value(button.link,player.nextSeat)-5;
|
||||
return ai.get.value(button.link,nextSeat)-5;
|
||||
}
|
||||
else{
|
||||
return 5-ai.get.value(button.link,player.nextSeat);
|
||||
return 5-ai.get.value(button.link,nextSeat);
|
||||
}
|
||||
}
|
||||
next.set('closeDialog',false);
|
||||
|
@ -277,12 +278,7 @@ card.yunchou={
|
|||
shezhanqunru:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
enable:function(card,player){
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]!=player&&game.players[i].num('h')) return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
enable:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return target==player;
|
||||
},
|
||||
|
@ -297,6 +293,7 @@ card.yunchou={
|
|||
}
|
||||
}
|
||||
if(!list.length){
|
||||
target.draw(3);
|
||||
event.finish();
|
||||
}
|
||||
else{
|
||||
|
@ -1189,7 +1186,7 @@ card.yunchou={
|
|||
},
|
||||
translate:{
|
||||
diaobingqianjiang:'调兵遣将',
|
||||
diaobingqianjiang_info:'出牌阶段,对所有角色使用。你摸一张牌,然后亮出牌堆顶的X张牌(X为存活角色数的一半,向下取整),目标可以用一张手牌替换其中的一张牌。结算后,你可以将剩余的牌中的任意张以任意顺序置于牌堆顶',
|
||||
diaobingqianjiang_info:'出牌阶段,对所有角色使用。你摸一张牌,然后亮出牌堆顶的X张牌(X为存活角色数的一半,向上取整),目标可以用一张手牌替换其中的一张牌。结算后,你可以将剩余的牌中的任意张以任意顺序置于牌堆顶',
|
||||
caochuanjiejian:'草船借箭',
|
||||
caochuanjiejian_info:'出牌阶段对一名有手牌的其他角色使用,目标选择一项:将手牌中的所有杀(至少1张)交给你,并视为对你使用一张杀;或展示手牌并令你弃置任意张',
|
||||
xiaolicangdao:'笑里藏刀',
|
||||
|
|
|
@ -175,6 +175,7 @@ character.diy={
|
|||
return 6-ai.get.value(card);
|
||||
},
|
||||
content:function(){
|
||||
// if(player!=target) player.draw();
|
||||
var list=game.players.slice(0);
|
||||
get.sortSeat(list,target);
|
||||
target.useCard({name:'diaobingqianjiang'},list);
|
||||
|
@ -188,6 +189,7 @@ character.diy={
|
|||
for(var i=0;i<game.players.length;i++){
|
||||
num+=ai.get.effect(game.players[i],{name:'diaobingqianjiang'},target,player);
|
||||
}
|
||||
// if(player==target) return num/2;
|
||||
return num;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ character.gujian={
|
|||
gjqt_fengqingxue:['female','wu',3,['qinglan','yuehua','swd_wuxie']],
|
||||
gjqt_xiangling:['female','wu',3,['qianhuan','meihu','xidie']],
|
||||
gjqt_fanglansheng:['male','wu',3,['fanyin','mingkong','fumo']],
|
||||
gjqt_yinqianshang:['male','qun',4,['zhongji','zuizhan']],
|
||||
gjqt_yinqianshang:['male','qun',4,['zuiji','zuizhan']],
|
||||
gjqt_hongyu:['female','shu',4,['jianwu','meiying']],
|
||||
|
||||
gjqt_yuewuyi:['male','wei',4,['yanjia','xiuhua','liuying']],
|
||||
|
@ -16,6 +16,22 @@ character.gujian={
|
|||
gjqt_ouyangshaogong:['male','shu',3,['yunyin','shishui','duhun']],
|
||||
},
|
||||
skill:{
|
||||
zuiji:{
|
||||
enable:'phaseUse',
|
||||
filterCard:true,
|
||||
position:'he',
|
||||
viewAs:{name:'jiu'},
|
||||
viewAsFilter:function(player){
|
||||
if(!player.num('he')) return false;
|
||||
},
|
||||
prompt:'将一张手牌或装备牌当酒使用',
|
||||
check:function(card){
|
||||
return 5-ai.get.value(card);
|
||||
},
|
||||
ai:{
|
||||
threaten:1.2
|
||||
}
|
||||
},
|
||||
manwu:{
|
||||
trigger:{global:'phaseEnd'},
|
||||
check:function(event,player){
|
||||
|
@ -623,28 +639,6 @@ character.gujian={
|
|||
}
|
||||
}
|
||||
},
|
||||
zhongji:{
|
||||
trigger:{source:'damageBegin'},
|
||||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
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);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
trigger.num++;
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
threaten:1.3
|
||||
}
|
||||
},
|
||||
meiying_old:{
|
||||
trigger:{global:'phaseBefore'},
|
||||
filter:function(event,player){
|
||||
|
@ -1591,6 +1585,8 @@ character.gujian={
|
|||
gjqt_xiayize:'夏夷则',
|
||||
gjqt_aruan:'阿阮',
|
||||
|
||||
zuiji:'醉饮',
|
||||
zuiji_info:'出牌阶段,你可以将一张手牌或装备牌当酒使用',
|
||||
manwu:'曼舞',
|
||||
manwu_info:'在一名角色的回合结束阶段,若其手牌数为全场最少或之一,你可以令其摸一张牌',
|
||||
xfanghua:'芳华',
|
||||
|
@ -1613,9 +1609,7 @@ character.gujian={
|
|||
jianwu_info:'锁定技,攻击范围不含你的角色无法闪避你的杀',
|
||||
meiying:'魅影',
|
||||
meiying_info:'一名其他角色的回合结束时,若其未于此回合内使用过指定另一名角色为目标的牌,你可以弃置一张红色牌视为对其使用一张杀',
|
||||
zhongji:'重击',
|
||||
zhongji_info:'每当你即将造成伤害,可弃置一张黑色手牌令伤害+1',
|
||||
zuizhan:'醉斩',
|
||||
zuizhan:'乱斩',
|
||||
zuizhan_info:'每当你使用一张杀,可以摸一张牌,然后此杀随机增加一个额外目标',
|
||||
qianhuan:'千幻',
|
||||
qianhuan_info:'回合结束后,若你已受伤,你可以回复一点体力并将武将牌翻面。若你的武将牌背面朝上,你不能使用卡牌,也不能成为卡牌的目标',
|
||||
|
|
|
@ -80,7 +80,7 @@ character.hearth={
|
|||
// hs_yashaji:['male','wei',3,[]],
|
||||
// hs_wolazi:['male','wei',3,[]],
|
||||
|
||||
// hs_tanghangu:['male','wei',3,[]],
|
||||
hs_tanghangu:['male','shu',5,['zhongji']],
|
||||
hs_aya:['female','wu',3,['ayuling','qingzun']],
|
||||
// hs_barnes:['male','wei',3,[]],
|
||||
// hs_nuogefu:['male','wei',3,[]],
|
||||
|
@ -98,6 +98,31 @@ character.hearth={
|
|||
hs_malfurion:['hs_malorne'],
|
||||
},
|
||||
skill:{
|
||||
zhongji:{
|
||||
trigger:{source:'damageBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player.num('h',{color:'black'})>0;
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
var next=player.chooseToDiscard(get.prompt('zhongji',trigger.player),{color:'black'});
|
||||
next.logSkill=['zhongji',trigger.player];
|
||||
next.ai=function(card){
|
||||
if(ai.get.attitude(player,trigger.player)<0){
|
||||
return 7-ai.get.value(card);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
trigger.num++;
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
threaten:1.3
|
||||
}
|
||||
},
|
||||
fuwen:{
|
||||
trigger:{player:'phaseDiscardEnd'},
|
||||
frequent:true,
|
||||
|
@ -5549,6 +5574,8 @@ character.hearth={
|
|||
hs_tyrande:'泰兰德',
|
||||
hs_fenjie:'芬杰',
|
||||
|
||||
zhongji:'重击',
|
||||
zhongji_info:'每当你即将造成伤害,可弃置一张黑色手牌令伤害+1',
|
||||
fuwen:'符文',
|
||||
fuwen_info:'若你弃牌阶段弃置了锦囊牌,你可以获得一点护甲',
|
||||
jinzhou:'禁咒',
|
||||
|
|
|
@ -231,6 +231,7 @@ window.characterRank={
|
|||
'dianwei',
|
||||
],
|
||||
bp:[
|
||||
'hs_tanghangu',
|
||||
'ow_luba',
|
||||
'pal_leiyuange',
|
||||
'dongbai',
|
||||
|
|
|
@ -85,30 +85,6 @@ character.xiake={
|
|||
}
|
||||
},
|
||||
},
|
||||
zuijian:{
|
||||
enable:'phaseUse',
|
||||
filterCard:true,
|
||||
position:'he',
|
||||
viewAs:{name:'jiu'},
|
||||
viewAsFilter:function(player){
|
||||
if(!player.num('he')) return false;
|
||||
},
|
||||
prompt:'将一张手牌或装备牌当酒使用',
|
||||
check:function(card){
|
||||
return 4-ai.get.value(card);
|
||||
},
|
||||
mod:{
|
||||
attackFrom:function(from,to,distance){
|
||||
if(from.hasSkill('jiu')) return distance-1;
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
skillTagFilter:function(player){
|
||||
return player.num('he')>0;
|
||||
},
|
||||
threaten:1.2
|
||||
}
|
||||
},
|
||||
zitong:{
|
||||
trigger:{player:'useCard'},
|
||||
frequent:true,
|
||||
|
@ -139,8 +115,6 @@ character.xiake={
|
|||
gzhenji_info:'你使用杀造成伤害后,可以摸一张牌,并且本回合内可以额外使用一张杀',
|
||||
rouquan:'柔拳',
|
||||
rouquan_info:'你可以重铸装备区内的牌;当你没有武器牌时,你的杀可以指定任意个目标',
|
||||
zuijian:'醉剑',
|
||||
zuijian_info:'出牌阶段,你可以将一张手牌或装备牌当酒使用;当你使用酒后,你的攻击范围+1',
|
||||
zitong:'通悟',
|
||||
zitong_info:'当你于自己的回合内使用第三张牌时,你可以将一张传送门置于你的手牌',
|
||||
},
|
||||
|
|
|
@ -3109,7 +3109,8 @@ character.yijiang={
|
|||
trigger:{global:'useCard'},
|
||||
filter:function(event,player){
|
||||
return !player.hasSkill('zuoding2')&&get.suit(event.card)=='spade'&&
|
||||
event.targets&&event.targets.length&&event.player!=player;
|
||||
_status.currentPhase==event.player&&event.targets&&event.targets.length&&
|
||||
event.player!=player;
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
|
@ -7683,7 +7684,7 @@ character.yijiang={
|
|||
huomo_jiu:'墨酒',
|
||||
huomo_info:'每当你需要使用一张本回合内未使用过的基本牌时,你可以将一张黑色非基本牌置于牌堆顶,然后视为你使用了此基本牌',
|
||||
zuoding:'佐定',
|
||||
zuoding_info:'每当一名其他角色于其出牌阶段内使用♠牌指定目标后,若此阶段没有角色受到过伤害,则你可以令其中一名目标角色摸一张牌',
|
||||
zuoding_info:'每当一名其他角色于其回合内使用♠牌指定目标后,若本回合没有角色受到过伤害,则你可以令其中一名目标角色摸一张牌',
|
||||
taoxi:'讨袭',
|
||||
taoxi2:'讨袭',
|
||||
taoxi3:'讨袭',
|
||||
|
|
18
game/game.js
18
game/game.js
|
@ -15757,14 +15757,17 @@
|
|||
filter:function(event,player){
|
||||
return (player.num('h',function(card){
|
||||
var info=get.info(card);
|
||||
if(info.type=='stonecharacter'&&lib.config.mode=='stone') return !player.isMin()&&!player.canAddFellow();
|
||||
if(typeof info.chongzhu=='function'){
|
||||
return info.chongzhu(event,player);
|
||||
}
|
||||
return info.chongzhu;
|
||||
})>0);
|
||||
},
|
||||
filterCard:function(card){
|
||||
var info=get.info(card);
|
||||
var player=_status.event.player;
|
||||
if(info.type=='stonecharacter'&&lib.config.mode=='stone') return !player.isMin()&&!player.canAddFellow();
|
||||
if(typeof info.chongzhu=='function'){
|
||||
return info.chongzhu(event,_status.event.player);
|
||||
}
|
||||
return info.chongzhu;
|
||||
},
|
||||
prepare:function(cards,player){
|
||||
|
@ -19483,6 +19486,11 @@
|
|||
ui.control.show();
|
||||
ui.clear();
|
||||
game.stopCountChoose();
|
||||
if(game.layout=='long2'){
|
||||
ui.arena.classList.add('choose-character');
|
||||
ui.me.hide();
|
||||
ui.autonode.hide();
|
||||
}
|
||||
if(game.online){
|
||||
var dialog=ui.create.dialog();
|
||||
dialog.content.innerHTML=result;
|
||||
|
@ -19867,7 +19875,7 @@
|
|||
dialog.add(ui.create.div('.placeholder'));
|
||||
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(!_status.connectMode&&game.players[i].isUnderControl(true)) continue;
|
||||
if(!_status.connectMode&&game.players[i].isUnderControl(true)&&game.layout!='long2') continue;
|
||||
var hs=game.players[i].get('h');
|
||||
if(hs.length){
|
||||
dialog.add('<div class="text center">'+get.translation(game.players[i])+'</div>');
|
||||
|
@ -31795,7 +31803,7 @@
|
|||
ui.dialog.classList.add('scroll1');
|
||||
ui.dialog.classList.add('scroll2');
|
||||
}
|
||||
if(lib.config.layout=='long2'){
|
||||
if(game.layout=='long2'){
|
||||
if(height1+240>=ui.arena.offsetHeight){
|
||||
ui.dialog.classList.add('scroll3');
|
||||
}
|
||||
|
|
|
@ -873,6 +873,9 @@ div:not(.handcards)>.card>.info>span,
|
|||
transform:scale(0.8);
|
||||
transform-origin:top left;
|
||||
}
|
||||
.buttons.smallzoom .card.button>.name{
|
||||
transform: scale(0.8) !important;
|
||||
}
|
||||
.buttons .card.button>.info{
|
||||
transform:scale(0.8);
|
||||
transform-origin:top right;
|
||||
|
|
|
@ -1900,9 +1900,6 @@ mode.chess={
|
|||
if(lib.isPhoneLayout()){
|
||||
ui.control.style.top='calc(100% - 80px)';
|
||||
}
|
||||
else if(lib.config.layout=='newlayout'){
|
||||
ui.control.style.top='calc(100% - 30px)';
|
||||
}
|
||||
else{
|
||||
ui.control.style.top='calc(100% - 70px)';
|
||||
}
|
||||
|
@ -3447,9 +3444,6 @@ mode.chess={
|
|||
if(lib.isPhoneLayout()){
|
||||
ui.control.style.top='calc(100% - 80px)';
|
||||
}
|
||||
else if(lib.config.layout=='newlayout'){
|
||||
ui.control.style.top='calc(100% - 30px)';
|
||||
}
|
||||
else{
|
||||
ui.control.style.top='calc(100% - 70px)';
|
||||
}
|
||||
|
|
|
@ -593,7 +593,9 @@ mode.stone={
|
|||
enable:function(event,player){
|
||||
return player.canAddFellow();
|
||||
},
|
||||
chongzhu:true,
|
||||
chongzhu:function(event,player){
|
||||
return !player.isMin()&&!player.canAddFellow();
|
||||
},
|
||||
notarget:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
|
@ -726,7 +728,7 @@ mode.stone={
|
|||
game.addVideo('updateActCount',this,[used,this.actcount,this.getActCount()]);
|
||||
}
|
||||
var maxcount,overflow2;
|
||||
if(lib.config.layout=='default'||used=='outphase'||_status.currentPhase!=this){
|
||||
if(game.layout=='default'||used=='outphase'||_status.currentPhase!=this){
|
||||
maxcount=this.actcount;
|
||||
}
|
||||
else{
|
||||
|
|
|
@ -1120,7 +1120,7 @@ mode.versus={
|
|||
if(lib.isPhoneLayout()){
|
||||
ui.control.style.top='calc(100% - 80px)';
|
||||
}
|
||||
else if(lib.config.layout=='newlayout'){
|
||||
else if(game.layout=='newlayout'){
|
||||
ui.control.style.top='calc(100% - 30px)';
|
||||
}
|
||||
else{
|
||||
|
|
Loading…
Reference in New Issue