1.3.1
|
@ -1,2 +1,4 @@
|
|||
1.3.1
|
||||
战棋模式改进
|
||||
单人控制改进
|
||||
新武将
|
||||
|
|
|
@ -445,16 +445,23 @@ card.hearth={
|
|||
shenenshu:{
|
||||
fullskin:true,
|
||||
enable:true,
|
||||
usable:1,
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player;
|
||||
},
|
||||
type:'trick',
|
||||
content:function(){
|
||||
var num=player.num('h')-target.num('h');
|
||||
if(num<1) num=1;
|
||||
if(num<-3) num=-3;
|
||||
if(num>3) num=3;
|
||||
target.draw(num);
|
||||
if(num>0){
|
||||
target.draw(num);
|
||||
}
|
||||
else if(num<0){
|
||||
player.draw(-num);
|
||||
}
|
||||
else{
|
||||
game.asyncDraw([target,player]);
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:10,
|
||||
|
@ -466,7 +473,18 @@ card.hearth={
|
|||
if(!player.skills.contains('jizhi')){
|
||||
nh--;
|
||||
}
|
||||
return Math.max(1,nh);
|
||||
if(nh>0) return nh;
|
||||
if(nh==0) return 1;
|
||||
return 0;
|
||||
},
|
||||
player:function(player,target){
|
||||
var nh=target.num('h')-player.num('h');
|
||||
if(!player.skills.contains('jizhi')){
|
||||
nh++;
|
||||
}
|
||||
if(nh>0) return nh;
|
||||
if(nh==0) return 1;
|
||||
return 0;
|
||||
}
|
||||
},
|
||||
expose:0.2
|
||||
|
@ -589,7 +607,7 @@ card.hearth={
|
|||
linghunzhihuo:'灵魂之火',
|
||||
linghunzhihuo_info:'对一名角色造成一点火焰伤害,然后随机弃置一张手牌',
|
||||
shenenshu:'神恩术',
|
||||
shenenshu_info:'对一名其他角色使用,令其摸X张牌,直到手牌数与你相等(X不小于1且不大于3)',
|
||||
shenenshu_info:'对一名其他角色使用,令你与目标中手牌数较少的摸若干张牌,直到手牌数相等(X不大于3),若手牌数已相等,改为你与目标各摸一张牌',
|
||||
zhiliaobo:'治疗波',
|
||||
zhiliaobo_info:'对一名受伤角色使用,令其回复一点体力,若其仍处于受伤状态,则进行一次判定,若结果为红色则再回复一点体力',
|
||||
yuansuhuimie:'元素毁灭',
|
||||
|
|
|
@ -174,7 +174,7 @@ character.hearth={
|
|||
trigger:{global:'dieAfter'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return !event.player.storage.bingshi;
|
||||
return !event.player.storage.bingshi&&event.player.skills.contains('bingshi');
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
|
@ -385,7 +385,11 @@ character.hearth={
|
|||
},
|
||||
content:function(){
|
||||
var card=cards[0];
|
||||
player.gain(game.createCard('liuxinghuoyu',get.suit(card),get.number(card)),'gain2');
|
||||
var card2=get.cardPile('liuxinghuoyu');
|
||||
if(!card2){
|
||||
card2=game.createCard('liuxinghuoyu',get.suit(card),get.number(card));
|
||||
}
|
||||
player.gain(card2,'gain2');
|
||||
},
|
||||
ai:{
|
||||
order:9,
|
||||
|
@ -1467,6 +1471,9 @@ character.hearth={
|
|||
player.addSkill('tuteng1');
|
||||
}
|
||||
else{
|
||||
if(rand.length>1){
|
||||
rand.remove('tuteng1');
|
||||
}
|
||||
player.addSkill(rand.randomGet());
|
||||
}
|
||||
if(rand2.length>=3){
|
||||
|
|
|
@ -1105,6 +1105,9 @@ character.refresh={
|
|||
}
|
||||
return target.num('he')>0;
|
||||
},
|
||||
filter:function(event,player){
|
||||
return player.num('he')>0;
|
||||
},
|
||||
filterCard:true,
|
||||
position:'he',
|
||||
selectTarget:[1,Infinity],
|
||||
|
|
|
@ -1729,7 +1729,7 @@ character.sp={
|
|||
effect:{
|
||||
target:function(card,player,target){
|
||||
if(get.tag(card,'damage')){
|
||||
if(target.hp==target.maxHp) return [0,1];
|
||||
if(target.hp==target.maxHp&&target.hasFriend()) return [0,1];
|
||||
}
|
||||
if(get.tag(card,'recover')&&player.hp>=player.maxHp-1) return [0,0];
|
||||
}
|
||||
|
|
|
@ -4370,7 +4370,7 @@ character.swd={
|
|||
frequent:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
event.cards=get.cards(Math.max(3,get.cardCount(true,player)+1));
|
||||
event.cards=get.cards(3);
|
||||
player.showCards(event.cards);
|
||||
"step 1"
|
||||
for(var i=0;i<cards.length;i++){
|
||||
|
@ -7719,7 +7719,7 @@ character.swd={
|
|||
miejing:'灭境',
|
||||
miejing_info:'限制技,你可以弃置所有黑色牌,然后令所有其他角色受到一点雷电伤害',
|
||||
lingxin:'灵心',
|
||||
lingxin_info:'回合结束阶段,你可以亮出牌堆顶的X+1张牌,然后获得其中的红桃牌,X为你回合内使用的牌数且至少为2',
|
||||
lingxin_info:'回合结束阶段,你可以亮出牌堆顶的三张牌,然后获得其中的红桃牌',
|
||||
fushen:'附身',
|
||||
fushen_info:'回合开始前,你可以将自己移出游戏,并代替另一名角色进行一回合,然后流失一点体力',
|
||||
fushen2:'附身',
|
||||
|
|
|
@ -0,0 +1,129 @@
|
|||
character.xiake={
|
||||
character:{
|
||||
// xk_dongfangweiming:['male','shu',4,[],['fullskin']],
|
||||
xk_guyuexuan:['male','qun',3,['rouquan','gzhenji'],['fullskin']],
|
||||
// xk_jinji:['male','shu',4,[],['fullskin']],
|
||||
// xk_shenxiangyun:['female','wei',3,[],['fullskin']],
|
||||
xk_fujianhan:['male','qun',4,['zuijian','zitong'],['fullskin']],
|
||||
},
|
||||
skill:{
|
||||
rouquan:{
|
||||
mod:{
|
||||
selectTarget:function(card,player,range){
|
||||
if(card.name=='sha'&&!player.get('e','1')&&range[1]!=-1) range[1]=Infinity;
|
||||
}
|
||||
},
|
||||
enable:'phaseUse',
|
||||
position:'e',
|
||||
filter:function(event,player){
|
||||
return player.num('e')>0;
|
||||
},
|
||||
filterCard:true,
|
||||
prompt:'弃置要重铸的牌并摸一张牌',
|
||||
discard:false,
|
||||
delay:0.5,
|
||||
check:function(card,player){
|
||||
var val=ai.get.equipValue(card);
|
||||
var player=_status.event.player;
|
||||
var cards=player.get('h',{subtype:get.subtype(card)});
|
||||
for(var i=0;i<cards.length;i++){
|
||||
if(ai.get.equipValue(cards[i])>=val){
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
},
|
||||
prepare:function(cards,player){
|
||||
player.$throw(cards,1000);
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.draw();
|
||||
"step 1"
|
||||
for(var i=0;i<cards.length;i++){
|
||||
ui.discardPile.appendChild(cards[i]);
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:9.5,
|
||||
result:{
|
||||
player:1
|
||||
}
|
||||
}
|
||||
},
|
||||
gzhenji:{
|
||||
trigger:{source:'damageEnd'},
|
||||
frequent:true,
|
||||
filter:function(event,player){
|
||||
return _status.currentPhase==player&&event.card&&event.card.name=='sha';
|
||||
},
|
||||
content:function(){
|
||||
player.draw();
|
||||
player.addTempSkill('gzhenji3','phaseAfter');
|
||||
}
|
||||
},
|
||||
gzhenji3:{
|
||||
mod:{
|
||||
cardUsable:function(card,player,num){
|
||||
if(card.name=='sha') return num+1;
|
||||
}
|
||||
},
|
||||
},
|
||||
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.skills.contains('jiu')) return distance-1;
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
skillTagFilter:function(player){
|
||||
return player.num('he')>0;
|
||||
},
|
||||
threaten:1.2
|
||||
}
|
||||
},
|
||||
zitong:{
|
||||
trigger:{player:'useCard'},
|
||||
frequent:true,
|
||||
filter:function(event,player){
|
||||
return _status.currentPhase==player&&get.cardCount(true,player)==2;
|
||||
},
|
||||
content:function(){
|
||||
var card=get.cardPile('chuansongmen');
|
||||
if(!card){
|
||||
card=game.createCard('chuansongmen');
|
||||
}
|
||||
player.gain(card,'gain2');
|
||||
},
|
||||
ai:{
|
||||
threaten:1.2
|
||||
}
|
||||
}
|
||||
},
|
||||
translate:{
|
||||
xk_dongfangweiming:'东方未明',
|
||||
xk_guyuexuan:'谷月轩',
|
||||
xk_jinji:'荆棘',
|
||||
xk_shenxiangyun:'沈湘芸',
|
||||
xk_fujianhan:'傅剑寒',
|
||||
gzhenji:'震击',
|
||||
gzhenji_info:'你使用杀造成伤害后,可以摸一张牌,并且本回合内可以额外使用一张杀',
|
||||
rouquan:'柔拳',
|
||||
rouquan_info:'你可以重铸装备区内的牌;当你没有武器牌时,你的杀可以指定任意个目标',
|
||||
zuijian:'醉剑',
|
||||
zuijian_info:'出牌阶段,你可以将一张手牌或装备牌当酒使用;当你使用酒后,你的攻击范围+1',
|
||||
zitong:'自通',
|
||||
zitong_info:'当你于自己的回合内使用第二张牌时,你可以将一张传送门置于你的手牌',
|
||||
},
|
||||
}
|
|
@ -6056,7 +6056,7 @@
|
|||
if(range[0]!=range[1]||range[0]>1) auto=false;
|
||||
for(i=0;i<game.players.length;i++){
|
||||
var nochess=true;
|
||||
if(lib.config.mode=='chess'){
|
||||
if(lib.config.mode=='chess'&&!event.chessForceAll){
|
||||
if(player&&get.distance(player,game.players[i],'pure')>7){
|
||||
nochess=false;
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ character.pack={
|
|||
swd:'轩辕剑',
|
||||
xswd:'轩辕剑·二',
|
||||
gujian:'古剑奇谭',
|
||||
xianjian:'仙剑',
|
||||
xianjian:'仙剑奇侠传',
|
||||
xiake:'侠客风云传',
|
||||
};
|
||||
card.pack={
|
||||
standard:'标准',
|
||||
|
|
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 99 KiB |
After Width: | Height: | Size: 515 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 67 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 479 KiB |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 494 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 54 KiB |
|
@ -30,6 +30,8 @@ table{table-layout: fixed;}
|
|||
#handcards1,#handcards2{white-space:nowrap;overflow-x: scroll;overflow-y:hidden;display: block;text-align: center;}
|
||||
#handcards1{left: 0;top:calc(100% - 140px);}
|
||||
#handcards2{left: calc(50% + 120px);top:calc(100% - 140px);}
|
||||
#arena.single-handcard #handcards1{width: 100%;}
|
||||
#arena.single-handcard #handcards2{display: none;}
|
||||
#system{padding: 6px;width: calc(100% - 12px);white-space: nowrap;z-index: 3;}
|
||||
#system>div{height: 100%;position: relative;margin: 0;padding: 0;}
|
||||
#system>div:last-child{text-align: right;float:right}
|
||||
|
@ -203,6 +205,16 @@ margin-bottom: 5px;
|
|||
.control{font-size: 18px;white-space: nowrap;position: relative;overflow: hidden;width: 0;opacity:0}
|
||||
.control>div{position: relative;padding: 3px;}
|
||||
/*--------角色--------*/
|
||||
.player>.avatar>.action{
|
||||
margin: 5px;
|
||||
font-family: 'huangcao';
|
||||
font-size: 20px;
|
||||
letter-spacing: -2px;
|
||||
text-shadow: black 0 0 1px, rgba(10, 155, 67, 1) 0 0 5px, rgba(10, 155, 67, 1) 0 0 10px;
|
||||
}
|
||||
.player>.avatar:not(.glow2)>.action{opacity: 0}
|
||||
.player.fakeme{width:100px;height:120px;top:calc(100% - 140px)}
|
||||
.player.fakeme>.avatar{width: 100%;height: 100%;box-shadow: none;left: 0;top: 0}
|
||||
.player{z-index: 4;width: 240px;height: 120px;}
|
||||
.player.minskin{width:120px;}
|
||||
.player.replaceme{-webkit-animation:replaceme 0.5s}
|
||||
|
@ -734,6 +746,7 @@ div[data-nature='soil']{
|
|||
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(0, 133, 255, 0.8) 0 0 15px !important;
|
||||
}
|
||||
.glow2{
|
||||
/*-webkit-animation:control_glow 4s infinite;*/
|
||||
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(10, 155, 67, 1) 0 0 15px, rgba(10, 155, 67, 1) 0 0 15px !important;
|
||||
}
|
||||
|
||||
|
@ -757,6 +770,14 @@ div[data-nature='soil']{
|
|||
}
|
||||
|
||||
/*--------动画--------*/
|
||||
@-webkit-keyframes control_glow{
|
||||
0%{box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 3px 10px}
|
||||
30%{box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(10, 155, 67, 1) 0 0 15px, rgba(10, 155, 67, 1) 0 0 15px}
|
||||
70%{box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(10, 155, 67, 1) 0 0 15px, rgba(10, 155, 67, 1) 0 0 15px}
|
||||
100%{box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 3px 10px}
|
||||
/*from{box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(10, 155, 67, 1) 0 0 15px, rgba(10, 155, 67, 1) 0 0 15px !important;}
|
||||
to{box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 3px 10px !important}*/
|
||||
}
|
||||
@-webkit-keyframes cardflip{
|
||||
from {-webkit-transform:perspective(600px) rotateY(-90deg) translateX(52px)}
|
||||
to{-webkit-transform:perspective(600px) rotateY(0deg) translateX(0)}
|
||||
|
|
15
mode/boss.js
|
@ -175,7 +175,9 @@ mode.boss={
|
|||
}
|
||||
ui.create.me();
|
||||
if(game.me!==boss){
|
||||
ui.fakeme=ui.create.div('.player',ui.arena);
|
||||
game.singleHandcard=true;
|
||||
ui.arena.classList.add('single-handcard');
|
||||
ui.fakeme=ui.create.div('.player');
|
||||
ui.fakeme.dataset.position=0;
|
||||
ui.fakeme.line=lib.element.player.line;
|
||||
ui.fakemebg=ui.create.div('.avatar',ui.fakeme).hide();
|
||||
|
@ -247,9 +249,15 @@ mode.boss={
|
|||
event.bosslist.delete();
|
||||
|
||||
game.arrangePlayers();
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
ui.create.div('.action',game.players[i].node.avatar).innerHTML='行动';
|
||||
}
|
||||
"step 3"
|
||||
game.gameDraw(game.boss);
|
||||
game.bossPhaseLoop();
|
||||
setTimeout(function(){
|
||||
ui.updateh(true);
|
||||
},200);
|
||||
}
|
||||
},
|
||||
bossPhaseLoop:function(){
|
||||
|
@ -323,11 +331,12 @@ mode.boss={
|
|||
}
|
||||
ui.versushighlight=game.me;
|
||||
game.me.node.avatar.classList.add('glow2');
|
||||
game.me.line(ui.fakeme,{opacity:0.5,dashed:true});
|
||||
// game.me.line(ui.fakeme,{opacity:0.5,dashed:true});
|
||||
|
||||
ui.fakemebg.style.backgroundImage=game.me.node.avatar.style.backgroundImage;
|
||||
ui.fakemebg.style.backgroundSize='cover';
|
||||
}
|
||||
ui.updateh(true);
|
||||
},
|
||||
modeSwapPlayer:function(player){
|
||||
game.swapControl(player);
|
||||
|
@ -485,7 +494,7 @@ mode.boss={
|
|||
},
|
||||
boss:{
|
||||
boss_zhangjiao:{
|
||||
loopType:2,
|
||||
// loopType:2,
|
||||
},
|
||||
boss_caiwenji:{
|
||||
loopType:2,
|
||||
|
|
147
mode/chess.js
|
@ -369,7 +369,6 @@ mode.chess={
|
|||
"step 0"
|
||||
if(!player.movable(0,1)&&!player.movable(0,-1)&&
|
||||
!player.movable(1,0)&&!player.movable(-1,0)){
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
event.switchToAuto=function(){
|
||||
|
@ -523,6 +522,117 @@ mode.chess={
|
|||
game:{
|
||||
minskin:true,
|
||||
singleHandcard:true,
|
||||
phaseLoopOrdered:function(player){
|
||||
var next=game.createEvent('phaseLoop');
|
||||
next.player=player;
|
||||
next.content=function(){
|
||||
"step 0"
|
||||
var passed=false;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(!game.players[i].classList.contains('acted')){
|
||||
if(game.players[i].side==player.side){
|
||||
passed=true;break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!passed){
|
||||
var num1=0;
|
||||
var next=null;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].side==player.side){
|
||||
game.players[i].classList.remove('acted');
|
||||
num1++;
|
||||
}
|
||||
else if(!next){
|
||||
next=game.players[i];
|
||||
}
|
||||
}
|
||||
var num2=game.players.length-num1;
|
||||
if(num2>num1){
|
||||
if(next.side==game.me.side){
|
||||
next=game.me;
|
||||
}
|
||||
var str;
|
||||
if(num2-num1>1){
|
||||
str='选择至多'+get.cnNumber(num2-num1)+'个已方角色各摸一张牌'
|
||||
}
|
||||
else{
|
||||
str='选择一个已方角色摸一张牌'
|
||||
}
|
||||
var nevt=next.chooseTarget(str,function(card,player,target){
|
||||
return target.side==next.side;
|
||||
},[1,num2-num1]);
|
||||
nevt.ai=function(target){
|
||||
return Math.max(1,10-target.num('h'));
|
||||
};
|
||||
nevt.chessForceAll=true;
|
||||
}
|
||||
else{
|
||||
event.goto(2);
|
||||
}
|
||||
}
|
||||
else{
|
||||
event.goto(2);
|
||||
}
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
game.asyncDraw(result.targets);
|
||||
}
|
||||
"step 2"
|
||||
var players=[];
|
||||
var next=null;
|
||||
if(player.side==game.me.side){
|
||||
player=game.me;
|
||||
}
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].side==player.side){
|
||||
if(!game.players[i].classList.contains('acted')){
|
||||
players.push(game.players[i]);
|
||||
}
|
||||
}
|
||||
else if(!next){
|
||||
next=game.players[i];
|
||||
}
|
||||
}
|
||||
if(players.length>1){
|
||||
var nevt=player.chooseTarget('选择下一个行动的角色',function(card,player,target){
|
||||
return target.side==player.side&&!target.classList.contains('acted');
|
||||
},true);
|
||||
nevt.chessForceAll=true;
|
||||
nevt.ai=function(target){
|
||||
var nj=target.num('j');
|
||||
if(nj){
|
||||
return -nj;
|
||||
}
|
||||
return Math.max(0,10-target.hp);
|
||||
}
|
||||
}
|
||||
else{
|
||||
event.decided=players[0];
|
||||
event.player=next;
|
||||
}
|
||||
"step 3"
|
||||
if(event.decided){
|
||||
event.decided.phase();
|
||||
event.justacted=event.decided;
|
||||
delete event.decided;
|
||||
}
|
||||
else{
|
||||
var current=result.targets[0];
|
||||
current.phase();
|
||||
event.justacted=current;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].side!=player.side){
|
||||
event.player=game.players[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
"step 4"
|
||||
event.justacted.classList.add('acted');
|
||||
event.goto(0);
|
||||
}
|
||||
},
|
||||
isChessNeighbour:function(a,b){
|
||||
if(a&&a.dataset){
|
||||
a=a.dataset.position;
|
||||
|
@ -799,7 +909,12 @@ mode.chess={
|
|||
}
|
||||
}
|
||||
game.gameDraw(p);
|
||||
game.phaseLoop(p);
|
||||
if(get.config('chess_ordered')){
|
||||
game.phaseLoopOrdered(p);
|
||||
}
|
||||
else{
|
||||
game.phaseLoop(p);
|
||||
}
|
||||
game.setChessInfo(p);
|
||||
}
|
||||
},
|
||||
|
@ -1414,6 +1529,10 @@ mode.chess={
|
|||
delay:false,
|
||||
preservecancel:true,
|
||||
filter:function(event,player){
|
||||
if(!player.movable(0,1)&&!player.movable(0,-1)&&
|
||||
!player.movable(1,0)&&!player.movable(-1,0)){
|
||||
return false;
|
||||
}
|
||||
var move=player.skills.contains('noactpunish')?2:1;
|
||||
move=game.checkMod(player,move,'chessMove',player.get('s'));
|
||||
return move>0;
|
||||
|
@ -1425,7 +1544,14 @@ mode.chess={
|
|||
player.chooseToMove(move).phasing=true;
|
||||
"step 1"
|
||||
if(!result.bool){
|
||||
player.getStat().skill._chessmove--;
|
||||
var skill=player.getStat().skill;
|
||||
skill._chessmove--;
|
||||
if(typeof skill._chessmovetried=='number'){
|
||||
skill._chessmovetried++;
|
||||
}
|
||||
else{
|
||||
skill._chessmovetried=1;
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
|
@ -1464,6 +1590,9 @@ mode.chess={
|
|||
return 1;
|
||||
},
|
||||
player:function(player){
|
||||
if(player.getStat().skill._chessmovetried>=10){
|
||||
return 0;
|
||||
}
|
||||
var x=lib.skill._chessmove.ai.result.playerx(player);
|
||||
if(player.isMad()) return -x;
|
||||
return x;
|
||||
|
@ -1629,6 +1758,7 @@ mode.chess={
|
|||
chessscroll_speed_config:'边缘滚动速度',
|
||||
chess_character_config:'战棋武将',
|
||||
only_chess_character_config:'只用战棋武将',
|
||||
chess_ordered_config:'指定行动顺序',
|
||||
|
||||
chess_caocao:'曹操',
|
||||
chess_xunyu:'荀彧',
|
||||
|
@ -1797,9 +1927,18 @@ mode.chess={
|
|||
'战棋模式':'<ul><li>n人对战n人的模式,由单人控制,开始游戏后随机分配位置与出牌顺序<li>'+
|
||||
'每人在出牌阶段有一次移动的机会,若一名角色在移动之前使用过指定其他角色为目标的牌,该回合可移动的最大距离为2,否则最大距离为1<li>'+
|
||||
'任何卡牌或技能无法指定位置相隔8个格以上的角色为目标<li>'+
|
||||
'杀死对方阵营的角色可摸一张牌,杀死本方阵营无惩罚'
|
||||
'杀死对方阵营的角色可摸一张牌,杀死本方阵营无惩罚<li>'+
|
||||
'开启指定行动顺序后,双方将交替行动,在一方行动完毕进行下一轮行动时,若其人数比另一方少,另一方可指定至多X名角色名摸一张牌,X为人数之差'
|
||||
},
|
||||
config:['battle_number','ban_weak','free_choose','change_choice',
|
||||
function(game,lib,get,ui){
|
||||
var current=get.config('chess_ordered');
|
||||
if(typeof current!=='boolean'){
|
||||
game.saveConfig('chess_ordered',true,true);
|
||||
current=true;
|
||||
}
|
||||
return ui.create.switcher('chess_ordered',current,ui.click.sidebar.local2);
|
||||
},
|
||||
function(game,lib,get,ui){
|
||||
var current=get.config('chess_character');
|
||||
if(typeof current!=='boolean'){
|
||||
|
|
|
@ -324,13 +324,17 @@ mode.versus={
|
|||
delete _status.list;
|
||||
var num=lib.storage.number;
|
||||
ui.create.players(num*2);
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
ui.create.div('.action',game.players[i].node.avatar).innerHTML='行动';
|
||||
}
|
||||
if(lib.storage.single_control&&lib.storage.control_all&&game.players.length>=4){
|
||||
ui.arena.dataset.number=parseInt(ui.arena.dataset.number)+1;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
game.players[i].dataset.position=parseInt(game.players[i].dataset.position)+1;
|
||||
}
|
||||
ui.fakeme=ui.create.div('.player',ui.arena);
|
||||
ui.fakeme.dataset.position=0;
|
||||
game.singleHandcard=true;
|
||||
ui.arena.classList.add('single-handcard');
|
||||
ui.fakeme=ui.create.div('.player.fakeme');
|
||||
ui.fakeme.line=lib.element.player.line;
|
||||
ui.fakemebg=ui.create.div('.avatar',ui.fakeme).hide();
|
||||
}
|
||||
|
@ -820,7 +824,7 @@ mode.versus={
|
|||
}
|
||||
ui.versushighlight=game.me;
|
||||
game.me.node.avatar.classList.add('glow2');
|
||||
game.me.line(ui.fakeme,{opacity:0.5,dashed:true});
|
||||
// game.me.line(ui.fakeme,{opacity:0.5,dashed:true});
|
||||
|
||||
var info=lib.character[name];
|
||||
if(lib.config.layout=='newlayout'&&info[4]&&info[4].contains('fullskin')){
|
||||
|
|