1.5.3
|
@ -1,2 +1,4 @@
|
|||
1.5.2
|
||||
明忠模式
|
||||
1.5.3
|
||||
战棋路障、特殊战场角色
|
||||
战棋自动显示距离
|
||||
修正部分区域点击困难的问题
|
||||
|
|
|
@ -435,6 +435,7 @@ card.standard={
|
|||
ui.clear();
|
||||
var cards=get.cards(game.players.length);
|
||||
var dialog=ui.create.dialog('五谷丰登',cards,true);
|
||||
_status.dieClose.push(dialog);
|
||||
dialog.videoId=lib.status.videoId++;
|
||||
game.addVideo('cardDialog',null,['五谷丰登',get.cardsInfo(cards),dialog.videoId]);
|
||||
event.parent.preResult=dialog.videoId;
|
||||
|
@ -479,6 +480,7 @@ card.standard={
|
|||
for(var i=0;i<ui.dialogs.length;i++){
|
||||
if(ui.dialogs[i].videoId==event.preResult){
|
||||
ui.dialogs[i].close();
|
||||
_status.dieClose.remove(ui.dialogs[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
18
card/swd.js
|
@ -268,8 +268,22 @@ card.swd={
|
|||
},
|
||||
ai:{
|
||||
basic:{
|
||||
useful:[5,1],
|
||||
value:[5,1],
|
||||
useful:function(card,i){
|
||||
if(_status.event.player.hp>1){
|
||||
if(i==0) return 5;
|
||||
return 1;
|
||||
}
|
||||
if(i==0) return 7.3;
|
||||
return 3;
|
||||
},
|
||||
value:function(card,player){
|
||||
if(player.hp>1){
|
||||
if(i==0) return 5;
|
||||
return 1;
|
||||
}
|
||||
if(i==0) return 7.3;
|
||||
return 3;
|
||||
},
|
||||
},
|
||||
order:function(){
|
||||
return lib.card.sha.ai.order+0.2;
|
||||
|
|
|
@ -1107,7 +1107,8 @@ character.extra={
|
|||
shelie_info:'摸牌阶段,你可以放弃摸牌,改为从牌堆顶亮出五张牌,你获得不同花色的牌各一张,将其余的牌置入弃牌堆。',
|
||||
gongxin_info:'出牌阶段,你可以观看一名其他角色的手牌,并可以展示其中一张红桃牌,然后将其弃置或置于牌堆顶,每阶段限一次。',
|
||||
guixin_info:'每当你受到1次伤害后,若至少一名其他角色的区域里有牌,你可以选择所有其他角色,获得这些角色区域里的一张牌,然后将你的武将牌翻面。',
|
||||
qinyin_info:'每当你于弃牌阶段内因你的弃置而失去第X张手牌时(X至少为2),你可以选择一项:1.令所有角色各回复1点体力;2.令所有角色各失去1点体力。每阶段限一次。',
|
||||
qinyin_info:'弃牌阶段结束时,若你于此阶段内弃置过你的至少两张手牌,则你可以选择一项:1. 所有角色各回复1点体力;2. 所有角色各失去1点体力。',
|
||||
// qinyin_info:'每当你于弃牌阶段内因你的弃置而失去第X张手牌时(X至少为2),你可以选择一项:1.令所有角色各回复1点体力;2.令所有角色各失去1点体力。每阶段限一次。',
|
||||
yeyan_info:'限定技,出牌阶段,你可以对一至三名角色造成至多共3点火焰伤害(你可以任意分配每名目标角色受到的伤害点数),若你将对一名角色分配2点或更多的火焰伤害,你须先弃置四张不同花色的手牌再失去3点体力。',
|
||||
qixing:'七星',
|
||||
qixing_bg:'星',
|
||||
|
|
|
@ -918,6 +918,7 @@ character.mountain={
|
|||
priority:10,
|
||||
content:function(){
|
||||
for(var i in lib.character){
|
||||
if(i.indexOf('stone_')==0) continue;
|
||||
var add=false;
|
||||
for(var j=0;j<lib.character[i][3].length;j++){
|
||||
var info=lib.skill[lib.character[i][3][j]];
|
||||
|
|
|
@ -2268,6 +2268,7 @@ character.sp={
|
|||
ai:{
|
||||
order:7,
|
||||
threaten:1.5,
|
||||
expose:0.2,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target.num('h')<target.hp){
|
||||
|
|
|
@ -6,7 +6,7 @@ character.swd={
|
|||
swd_anka:['male','qun',3,['songci','anlianying'],['fullskin']],
|
||||
swd_septem:['male','qun',4,['jiying','liaoyuan','yishan'],['fullskin']],
|
||||
swd_kama:['female','qun',3,['yueren','shangshi'],['fullskin']],
|
||||
swd_miles:['male','qun',4,['aojian','miles_xueyi','mohua2']],
|
||||
// swd_miles:['male','qun',4,['aojian','miles_xueyi','mohua2']],
|
||||
swd_nicole:['female','wu',3,['minjing','lingwu','huanjian'],['fullskin']],
|
||||
swd_wangsiyue:['female','wei',3,['duishi','biyue'],['fullskin']],
|
||||
swd_weida:['female','qun',3,['yueren','zhenlie']],
|
||||
|
@ -14,7 +14,7 @@ character.swd={
|
|||
|
||||
swd_chenjingchou:['male','wu',3,['youyin','yihua'],['fullskin']],
|
||||
swd_duguningke:['female','qun',3,['lianji','touxi'],['fullskin']],
|
||||
swd_guyue:['male','wei',3,['tiandao','swdqinyin','wangchen'],['fullskin']],
|
||||
swd_guyue:['male','wei',3,['tiandao','qinyin','wangchen'],['fullskin']],
|
||||
swd_tuobayuer:['female','shu',4,['liuhong','poyue','niepan'],['fullskin']],
|
||||
swd_yuwentuo:['male','qun',4,['wushuang','xielei','kunlunjing'],['fullskin']],
|
||||
swd_yuxiaoxue:['female','wei',3,['huanhun','daixing','yinyue'],['fullskin']],
|
||||
|
@ -2879,7 +2879,8 @@ character.swd={
|
|||
content:function(){
|
||||
"step 0"
|
||||
if(typeof event.count!='number'){
|
||||
event.count=trigger.cards.length-1;
|
||||
// event.count=trigger.cards.length-1;
|
||||
event.count=1;
|
||||
}
|
||||
var recover=0,lose=0;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
|
@ -2912,8 +2913,9 @@ character.swd={
|
|||
}
|
||||
}
|
||||
}
|
||||
var prompt='是否发动【琴音】(剩余'+get.cnNumber(event.count)+'次)';
|
||||
player.chooseControl('失去体力','回复体力','cancel',
|
||||
ui.create.dialog('是否发动【琴音】(剩余'+get.cnNumber(event.count)+'次)','hidden')).ai=function(){
|
||||
ui.create.dialog('是否发动【琴音】?','hidden')).ai=function(){
|
||||
// console.log(lose,recover);
|
||||
if(lose>recover&&lose>0) return 0;
|
||||
if(lose<recover&&recover>0) return 1;
|
||||
|
@ -7944,8 +7946,6 @@ character.swd={
|
|||
fushen2:'附身',
|
||||
tiandao:'天道',
|
||||
tiandao_info:'任意一名角色的判定生效前,你可以打出一张牌替换之',
|
||||
swdqinyin:'琴音',
|
||||
swdqinyin_info:'回合结束阶段,若你于本回合内未造成过伤害,你可以令所有角色失去或回复一点体力',
|
||||
wangchen:'忘尘',
|
||||
wangchen_info:'若你于弃牌阶段弃置了基本牌,可令一名角色翻面',
|
||||
guiyin:'归隐',
|
||||
|
|
|
@ -68,7 +68,7 @@ character.xianjian={
|
|||
}
|
||||
},
|
||||
ningbin:{
|
||||
trigger:{player:'damageEnd',source:'damageEnd'},
|
||||
trigger:{player:'damageEnd'},
|
||||
forced:true,
|
||||
filter:function(event){
|
||||
return event.nature=='thunder';
|
||||
|
@ -1360,7 +1360,7 @@ character.xianjian={
|
|||
xuanyan2:'玄炎',
|
||||
xuanyan_info:'锁定技,你的火属性伤害+1;你造成火属性伤害后流失1点体力',
|
||||
ningbin:'凝冰',
|
||||
ningbin_info:'锁定技,每当你造成或受到1次雷属性伤害,你回复1点体力',
|
||||
ningbin_info:'锁定技,每当你受到1次雷属性伤害,你回复1点体力',
|
||||
fenxin:'焚心',
|
||||
fenxin2:'焚心',
|
||||
fenxin_info:'锁定技,每当你的体力值发生改变,你摸等量的牌;每当你杀死一名角色,你增加一点体力上限并回复一点体力',
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
character.zhuogui={
|
||||
character:{
|
||||
nianshou:['male','shu',4,['nianrui','qixiang']],
|
||||
mamian:['male','qun',4,['lianyu','guiji']],
|
||||
// mamian:['male','qun',4,['lianyu','guiji']],
|
||||
niutou:['male','shu',4,['manjia','xiaoshou'],['fullskin']],
|
||||
baiwuchang:['male','qun',3,['qiangzheng','moukui']],
|
||||
heiwuchang:['male','qun',3,['suoling','xixing']],
|
||||
|
|
216
game/game.js
|
@ -13,6 +13,7 @@
|
|||
ai:{},
|
||||
lastdragchange:[],
|
||||
skillaudio:[],
|
||||
dieClose:[]
|
||||
};
|
||||
var lib={
|
||||
configprefix:'noname_0.9_',
|
||||
|
@ -1312,25 +1313,48 @@
|
|||
}
|
||||
},
|
||||
},
|
||||
chess_treasure:{
|
||||
name:'特殊战场角色',
|
||||
init:'0.2',
|
||||
frequent:true,
|
||||
item:{
|
||||
'0':'关闭',
|
||||
'0.1':'较少出现',
|
||||
'0.2':'偶尔出现',
|
||||
'0.333':'时常出现',
|
||||
'0.5':'频繁出现',
|
||||
}
|
||||
},
|
||||
chess_obstacle:{
|
||||
name:'随机路障',
|
||||
init:'0.333',
|
||||
item:{
|
||||
'0':'关闭',
|
||||
'0.2':'少量',
|
||||
'0.333':'中量',
|
||||
'0.5':'大量',
|
||||
},
|
||||
frequent:true,
|
||||
},
|
||||
show_distance:{
|
||||
name:'显示距离',
|
||||
init:true,
|
||||
// frequent:true,
|
||||
},
|
||||
chess_ordered:{
|
||||
name:'交替行动',
|
||||
init:true,
|
||||
frequent:true,
|
||||
// frequent:true,
|
||||
},
|
||||
chess_character:{
|
||||
name:'战棋武将',
|
||||
init:true,
|
||||
frequent:true,
|
||||
// frequent:true,
|
||||
},
|
||||
chessscroll_speed:{
|
||||
name:'边缘滚动速度',
|
||||
init:'20',
|
||||
item:{
|
||||
'0':'不滚动',
|
||||
'10':'10格/秒',
|
||||
'20':'20格/秒',
|
||||
'30':'30格/秒',
|
||||
}
|
||||
chess_card:{
|
||||
name:'战棋卡牌',
|
||||
init:true,
|
||||
// frequent:true,
|
||||
},
|
||||
free_choose:{
|
||||
name:'自由选将',
|
||||
|
@ -1367,6 +1391,16 @@
|
|||
init:false,
|
||||
restart:true,
|
||||
},
|
||||
chessscroll_speed:{
|
||||
name:'边缘滚动速度',
|
||||
init:'20',
|
||||
item:{
|
||||
'0':'不滚动',
|
||||
'10':'10格/秒',
|
||||
'20':'20格/秒',
|
||||
'30':'30格/秒',
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
stone:{
|
||||
|
@ -1463,12 +1497,15 @@
|
|||
'身份模式':'<div style="margin:10px">明忠</div><ul style="margin-top:0"><li>本模式需要8名玩家进行游戏,使用的身份牌为:1主公、2忠臣、4反贼和1内奸。游戏开始时,每名玩家随机获得一个身份,由系统随机选择一名忠臣身份的玩家亮出身份(将忠臣牌正面朝上放在面前),其他身份(包括主公)的玩家不亮出身份。<li>'+
|
||||
'首先由亮出身份的忠臣玩家随机获得六张武将牌,挑选一名角色,并将选好的武将牌展示给其他玩家。之后其余每名玩家随机获得三张武将牌,各自从其中挑选一张同时亮出<li>'+
|
||||
'亮出身份牌的忠臣增加1点体力上限。角色濒死和死亡的结算及胜利条件与普通身份局相同。',
|
||||
'战棋模式':'<div style="margin:10px">对阵</div><ul style="margin-top:0"><li>n人对战n人的模式,由单人控制,开始游戏后随机分配位置与出牌顺序<li>'+
|
||||
'战棋模式':
|
||||
'<div style="margin:10px">对阵模式</div><ul style="margin-top:0"><li>n人对战n人的模式,由单人控制,开始游戏后随机分配位置与出牌顺序<li>'+
|
||||
'每人在出牌阶段有一次移动的机会,若一名角色在移动之前使用过指定其他角色为目标的牌,该回合可移动的最大距离为2,否则最大距离为1<li>'+
|
||||
'任何卡牌或技能无法指定位置相隔8个格以上的角色为目标<li>'+
|
||||
'杀死对方阵营的角色可摸一张牌,杀死本方阵营无惩罚<li>'+
|
||||
'开启交替行动后,在一方所有角色行动完毕进行下一轮行动时,若其人数比另一方少,另一方可指定至多X名角色名摸一张牌,X为人数之差</ul>'+
|
||||
'<div style="margin:10px">统率</div><ul style="margin-top:0"><li>收集武将进行战斗,根据战斗难度及我方出场武将的强度,战斗胜利后将获得数量不等的金钱。没有君主出场时,获得的金钱较多<li>'+
|
||||
'开启交替行动时,双方无论存活角色角色多少都将轮流进行行动。在一方所有角色行动完毕进行下一轮行动时,若其人数比另一方少,另一方可指定至多X名角色名摸一张牌,X为人数之差<li>'+
|
||||
'开启特殊战场角色后,每个回合结束时有一定机率出现一个特殊角色,该角色不参与战斗,并有一个影响周围或全体角色的效果。该角色在出现后的5〜10个回合内消失<li>'+
|
||||
'战场上可设置出现随机路障,角色无法移动到路障处。当一名角色的周围四格有至少三格为路障或在战场外,其可以在回合内清除一个相邻路障</ul>'+
|
||||
'<div style="margin:10px">统率模式</div><ul style="margin-top:0"><li>收集武将进行战斗,根据战斗难度及我方出场武将的强度,战斗胜利后将获得数量不等的金钱。没有君主出场时,获得的金钱较多<li>'+
|
||||
'金钱可以用来招募随机武将,招到已有武将,或遣返不需要的武将时可得到招募令<li>'+
|
||||
'战斗中有君主出场时可招降敌将,成功率取决于敌将的稀有度、剩余体力值以及手牌数。成功后战斗立即结束且没有金钱奖励。每发动一次招降,无论成功还是失败,都会扣除10招募令<li>'+
|
||||
'挑战武将会与该武将以及与其强度相近的武将进行战斗,敌方人数与我方出场人数相同,但不少于3。胜利后可通过招募令招募该武将<li>'+
|
||||
|
@ -2854,7 +2891,7 @@
|
|||
event.finish();
|
||||
}
|
||||
"step 6"
|
||||
ui.clear();
|
||||
if(event.card.name!='wuxie') ui.clear();
|
||||
},
|
||||
useSkill:function(){
|
||||
"step 0"
|
||||
|
@ -4132,6 +4169,18 @@
|
|||
return cards;
|
||||
}
|
||||
},
|
||||
playerfocus:function(time){
|
||||
time=time||1000;
|
||||
this.classList.add('playerfocus');
|
||||
ui.arena.classList.add('playerfocus');
|
||||
var that=this;
|
||||
setTimeout(function(){
|
||||
that.classList.remove('playerfocus');
|
||||
ui.arena.classList.remove('playerfocus');
|
||||
},1000);
|
||||
game.addVideo('playerfocus',this,time);
|
||||
return this;
|
||||
},
|
||||
changeHujia:function(num){
|
||||
if(typeof num!='number'){
|
||||
num=1;
|
||||
|
@ -5777,6 +5826,7 @@
|
|||
$throwordered:function(node,nosource){
|
||||
if(nosource){
|
||||
node.style.transform='scale(0)';
|
||||
node.classList.add('center');
|
||||
}
|
||||
else{
|
||||
node.dataset.position=this.dataset.position;
|
||||
|
@ -6093,6 +6143,30 @@
|
|||
game.animate.flame(left+this.offsetWidth/2,
|
||||
top+this.offsetHeight-30,700,'thunder');
|
||||
},
|
||||
$rare2:function(){
|
||||
game.addVideo('flame',this,'rare2');
|
||||
var rect=this.getBoundingClientRect();
|
||||
var left=rect.left;
|
||||
var top=rect.top+15;
|
||||
game.animate.flame(left+this.offsetWidth/2,
|
||||
top+this.offsetHeight-30,700,'rare');
|
||||
},
|
||||
$epic2:function(){
|
||||
game.addVideo('flame',this,'epic2');
|
||||
var rect=this.getBoundingClientRect();
|
||||
var left=rect.left;
|
||||
var top=rect.top+15;
|
||||
game.animate.flame(left+this.offsetWidth/2,
|
||||
top+this.offsetHeight-30,700,'epic');
|
||||
},
|
||||
$legend2:function(){
|
||||
game.addVideo('flame',this,'legend2');
|
||||
var rect=this.getBoundingClientRect();
|
||||
var left=rect.left;
|
||||
var top=rect.top+15;
|
||||
game.animate.flame(left+this.offsetWidth/2,
|
||||
top+this.offsetHeight-30,700,'legend');
|
||||
},
|
||||
$rare:function(){
|
||||
game.addVideo('flame',this,'rare');
|
||||
var left,top;
|
||||
|
@ -7442,7 +7516,9 @@
|
|||
if(content.type=='delay'){
|
||||
game.delay(content.content);
|
||||
}
|
||||
else if(typeof content.player=='string'&&game.playerMap[content.player]){
|
||||
else if(typeof content.player=='string'&&game.playerMap[content.player]&&
|
||||
game.playerMap[content.player].classList&&
|
||||
!game.playerMap[content.player].classList.contains('obstacle')){
|
||||
game.videoContent[content.type](game.playerMap[content.player],content.content);
|
||||
}
|
||||
else{
|
||||
|
@ -7584,14 +7660,9 @@
|
|||
console.log(player);
|
||||
}
|
||||
},
|
||||
playerfocus:function(player){
|
||||
if(player){
|
||||
player.classList.add('playerfocus');
|
||||
ui.arena.classList.add('playerfocus');
|
||||
setTimeout(function(){
|
||||
player.classList.remove('playerfocus');
|
||||
ui.arena.classList.remove('playerfocus');
|
||||
},1000);
|
||||
playerfocus:function(player,time){
|
||||
if(player&&player.playerfocus){
|
||||
player.playerfocus(time);
|
||||
}
|
||||
else{
|
||||
console.log(player);
|
||||
|
@ -7626,6 +7697,17 @@
|
|||
console.log(player)
|
||||
}
|
||||
},
|
||||
addObstacle:function(pos){
|
||||
if(pos){
|
||||
game.addObstacle(pos[0],pos[1]);
|
||||
}
|
||||
else{
|
||||
console.log(pos)
|
||||
}
|
||||
},
|
||||
removeObstacle:function(pos){
|
||||
game.removeObstacle(pos);
|
||||
},
|
||||
moveTox:function(player,pos){
|
||||
if(player&&player.dataset){
|
||||
delete lib.posmap[player.dataset.position];
|
||||
|
@ -7651,6 +7733,25 @@
|
|||
console.log('chessFocus');
|
||||
}
|
||||
},
|
||||
removeTreasure:function(pos){
|
||||
if(game.playerMap[pos]){
|
||||
game.playerMap[pos].delete();
|
||||
delete game.playerMap[pos];
|
||||
}
|
||||
else{
|
||||
console.log(pos);
|
||||
}
|
||||
},
|
||||
initobs:function(obs){
|
||||
if(obs){
|
||||
for(var i=0;i<obs.length;i++){
|
||||
game.addObstacle(obs[i]);
|
||||
}
|
||||
}
|
||||
else{
|
||||
console.log(obs);
|
||||
}
|
||||
},
|
||||
stonePosition:function(content){
|
||||
var player=game.playerMap[content[0]];
|
||||
if(player){
|
||||
|
@ -8127,7 +8228,7 @@
|
|||
}
|
||||
},
|
||||
unmarkSkill:function(player,name){
|
||||
if(player&&name){
|
||||
if(player&&player.unmarkSkill){
|
||||
player.unmarkSkill(name);
|
||||
}
|
||||
else{
|
||||
|
@ -9088,6 +9189,9 @@
|
|||
}
|
||||
else{
|
||||
if(player&&player.classList.contains('dead')&&event.name!='phaseLoop'){
|
||||
while(_status.dieClose.length){
|
||||
_status.dieClose.shift().close();
|
||||
}
|
||||
event.finish();
|
||||
}
|
||||
else if(player&&player.removed&&event.name!='phaseLoop'){
|
||||
|
@ -9251,7 +9355,7 @@
|
|||
nochess=false;
|
||||
}
|
||||
}
|
||||
if(event.filterTarget(card,player,game.players[i])&&
|
||||
if(event.filterTarget(card,player,game.players[i])&&!game.players[i].forceout&&
|
||||
(game.players[i].isOut()==false||event.includeOutTarget)&&nochess){
|
||||
if(ui.selected.targets.length<range[1]){
|
||||
game.players[i].classList.add('selectable');
|
||||
|
@ -9351,6 +9455,25 @@
|
|||
_status.multitarget=true;
|
||||
}
|
||||
if(event.isMine()){
|
||||
if(lib.config.mode=='chess'&&game.me&&get.config('show_distance')){
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]==game.me){
|
||||
game.players[i].node.action.hide();
|
||||
}
|
||||
else{
|
||||
game.players[i].node.action.show();
|
||||
var dist=get.distance(game.me,game.players[i],'pure');
|
||||
var dist2=get.distance(game.me,game.players[i]);
|
||||
game.players[i].node.action.innerHTML='距离:'+dist2+'/'+dist;
|
||||
if(dist>7){
|
||||
game.players[i].node.action.classList.add('thunder');
|
||||
}
|
||||
else{
|
||||
game.players[i].node.action.classList.remove('thunder');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(ok&&auto&&lib.config.auto_confirm&&(!_status.mousedragging||!_status.mouseleft)&&!_status.mousedown){
|
||||
if(ui.confirm){
|
||||
if(!skillinfo||!skillinfo.preservecancel){
|
||||
|
@ -12001,6 +12124,7 @@
|
|||
for(var i=0;i<start.firstChild.childNodes.length;i++){
|
||||
var node=start.firstChild.childNodes[i];
|
||||
if(node.link){
|
||||
if(node.mode.indexOf('mode_')==0) continue;
|
||||
if(lib.config.characters.contains(node.mode)){
|
||||
node.classList.remove('off');
|
||||
node.link.firstChild.classList.add('on');
|
||||
|
@ -12040,8 +12164,13 @@
|
|||
init:lib.config.characters.contains(mode),
|
||||
onclick:togglePack
|
||||
});
|
||||
page.appendChild(cfgnode);
|
||||
if(mode.indexOf('mode_')!=0){
|
||||
page.appendChild(cfgnode);
|
||||
}
|
||||
var banCharacter=function(){
|
||||
if(mode.indexOf('mode_')==0){
|
||||
return;
|
||||
}
|
||||
this.classList.toggle('unselectable');
|
||||
if(this.classList.contains('unselectable')){
|
||||
lib.config.banned.add(this.link);
|
||||
|
@ -12066,6 +12195,11 @@
|
|||
for(var i=0;i<lib.config.all.characters.length;i++){
|
||||
createModeConfig(lib.config.all.characters[i],start.firstChild);
|
||||
}
|
||||
for(var i in lib.characterPack){
|
||||
if(i.indexOf('mode_')==0){
|
||||
createModeConfig(i,start.firstChild);
|
||||
}
|
||||
}
|
||||
var active=start.firstChild.querySelector('.active');
|
||||
if(!active){
|
||||
active=start.firstChild.firstChild;
|
||||
|
@ -12106,6 +12240,7 @@
|
|||
for(var i=0;i<start.firstChild.childNodes.length;i++){
|
||||
var node=start.firstChild.childNodes[i];
|
||||
if(node.link){
|
||||
if(node.mode.indexOf('mode_')==0) continue;
|
||||
if(lib.config.cards.contains(node.mode)){
|
||||
node.classList.remove('off');
|
||||
node.link.firstChild.classList.add('on');
|
||||
|
@ -12145,8 +12280,13 @@
|
|||
init:lib.config.cards.contains(mode),
|
||||
onclick:togglePack
|
||||
});
|
||||
page.appendChild(cfgnode);
|
||||
if(mode.indexOf('mode_')!=0){
|
||||
page.appendChild(cfgnode);
|
||||
}
|
||||
var banCard=function(){
|
||||
if(mode.indexOf('mode_')==0){
|
||||
return;
|
||||
}
|
||||
this.classList.toggle('unselectable');
|
||||
if(this.classList.contains('unselectable')){
|
||||
lib.config.bannedcards.add(this.link[2]);
|
||||
|
@ -12171,6 +12311,11 @@
|
|||
for(var i=0;i<lib.config.all.cards.length;i++){
|
||||
createModeConfig(lib.config.all.cards[i],start.firstChild);
|
||||
}
|
||||
for(var i in lib.cardPack){
|
||||
if(i.indexOf('mode_')==0){
|
||||
createModeConfig(i,start.firstChild);
|
||||
}
|
||||
}
|
||||
var active=start.firstChild.querySelector('.active');
|
||||
if(!active){
|
||||
active=start.firstChild.firstChild;
|
||||
|
@ -12774,8 +12919,13 @@
|
|||
lib.setHover(node,ui.click.hoverplayer);
|
||||
}
|
||||
}
|
||||
node.node.group.innerHTML='<div>'+get.translation(infoitem[1])+'</div>';
|
||||
node.node.group.style.backgroundColor=get.translation(infoitem[1]+'Color');
|
||||
if(infoitem[1]){
|
||||
node.node.group.innerHTML='<div>'+get.translation(infoitem[1])+'</div>';
|
||||
node.node.group.style.backgroundColor=get.translation(infoitem[1]+'Color');
|
||||
}
|
||||
else{
|
||||
node.node.group.style.display='none';
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(item.name.indexOf('unknown')==0){
|
||||
|
@ -15586,7 +15736,7 @@
|
|||
var i,translation,intro,str;
|
||||
if(node.classList.contains('player')){
|
||||
var capt=get.translation(node.name);
|
||||
if(lib.character[node.name]){
|
||||
if(lib.character[node.name]&&lib.character[node.name][1]){
|
||||
capt+=' '+lib.translate[lib.character[node.name][1]];
|
||||
}
|
||||
uiintro.add(capt);
|
||||
|
@ -16802,7 +16952,7 @@
|
|||
}
|
||||
}
|
||||
lib.skilllist=[];
|
||||
lib.characterPack={};
|
||||
if(!lib.characterPack) lib.characterPack={};
|
||||
for(i in character){
|
||||
if(character[i].character){
|
||||
lib.characterPack[i]=character[i].character
|
||||
|
@ -16857,7 +17007,7 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
lib.cardPack={};
|
||||
if(!lib.cardPack) lib.cardPack={};
|
||||
for(i in card){
|
||||
lib.cardPack[i]=[];
|
||||
if(card[i].card){
|
||||
|
|
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 7.7 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 22 KiB |
|
@ -28,9 +28,13 @@ table{table-layout: fixed;}
|
|||
pointer-events: none;
|
||||
position: absolute;
|
||||
}
|
||||
#arena.playerfocus>div:not(.playerfocus){
|
||||
#arena.playerfocus>div:not(.playerfocus):not(#chess-container):not(.removing){
|
||||
opacity: 0.3 !important;
|
||||
}
|
||||
#arena.playerfocus #chess>div:not(.playerfocus):not(.removing){
|
||||
opacity: 0.3 !important;
|
||||
}
|
||||
|
||||
#me,#mebg{width: 100%;height: 140px;top:calc(100% - 140px);left:0;}
|
||||
#mebg{z-index:-1}
|
||||
#handcards1,#handcards2{width: calc(50% - 140px);height: 127px;padding: 10px;}
|
||||
|
@ -39,8 +43,8 @@ table{table-layout: fixed;}
|
|||
#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{padding: 6px;width: calc(100% - 12px);white-space: nowrap;z-index: 3;pointer-events: none}
|
||||
#system>div{height: 100%;position: relative;margin: 0;padding: 0;pointer-events: auto}
|
||||
#system>div:last-child{text-align: right;float:right}
|
||||
#system>div>div{position: relative;padding-top: 6px;padding-bottom: 6px;padding-left: 8px;padding-right: 8px;text-align: center;margin:4px}
|
||||
#paused,#click{left: 0;top:0;width: 100%;height: 100%;z-index: 5;}
|
||||
|
@ -242,7 +246,8 @@ 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);}
|
||||
#control{text-align: center;z-index: 2;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}
|
||||
.control:not(.nozoom){width:0}
|
||||
|
@ -260,7 +265,7 @@ margin-bottom: 5px;
|
|||
.player>.avatar:not(.glow2)>.action{opacity: 0}
|
||||
.player.controlfakeme{width:100px;height:120px;top:calc(100% - 140px)}
|
||||
.player.controlfakeme>.avatar{width: 100%;height: 100%;box-shadow: none;left: 0;top: 0}
|
||||
.player{z-index: 4;width: 240px;height: 120px;}
|
||||
.player{z-index: 2;width: 240px;height: 120px;}
|
||||
.player.minskin{width:120px;}
|
||||
.player.replaceme{
|
||||
animation:replaceme 0.5s;
|
||||
|
@ -508,6 +513,10 @@ margin-bottom: 5px;
|
|||
animation: game_start 0.5s;
|
||||
-webkit-animation: game_start 0.5s;
|
||||
}
|
||||
.start2{
|
||||
animation: card_start 0.5s;
|
||||
-webkit-animation: card_start 0.5s;
|
||||
}
|
||||
.dialog{
|
||||
animation: dialog_start 0.5s;
|
||||
-webkit-animation: dialog_start 0.5s;
|
||||
|
@ -533,7 +542,7 @@ margin-bottom: 5px;
|
|||
animation: card_start 0.5s;
|
||||
-webkit-animation: card_start 0.5s;
|
||||
}
|
||||
.card.judgestart{
|
||||
.judgestart{
|
||||
animation: card_judgestart 1s;
|
||||
-webkit-animation: card_judgestart 1s;
|
||||
}
|
||||
|
|
|
@ -125,7 +125,7 @@
|
|||
}
|
||||
.player:not([data-position='0']).minskin.linked .equips,
|
||||
#arena.chess .player.minskin.linked .equips{
|
||||
transform:rotate(90deg) translate(-90px,-6px) scale(0.73);
|
||||
transform:rotate(90deg) translate(-92px,-6px) scale(0.73);
|
||||
}
|
||||
.player:not([data-position='0']).linked div:not(.equips) .card,
|
||||
.player:not([data-position='0']).linked .identity,
|
||||
|
|
|
@ -116,11 +116,20 @@
|
|||
-webkit-animation-fill-mode: forwards;
|
||||
}
|
||||
|
||||
.player.playergrid{
|
||||
.player.playergrid,.player.obstacle{
|
||||
background: rgba(0,0,0,0.2);
|
||||
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px;
|
||||
border-radius:8px;
|
||||
}
|
||||
.player.obstacle{
|
||||
background: repeating-linear-gradient(
|
||||
135deg,
|
||||
rgba(0,0,0,0.2),
|
||||
rgba(0,0,0,0.2) 10px,
|
||||
rgba(0,0,0,0.1) 10px,
|
||||
rgba(0,0,0,0.1) 20px
|
||||
);
|
||||
}
|
||||
.playergrid.temp{
|
||||
opacity:0.3;
|
||||
}
|
||||
|
@ -147,3 +156,27 @@
|
|||
#arena.leadercontrol>#control{
|
||||
transition: all 0.5s !important;
|
||||
}
|
||||
.player.treasure{
|
||||
box-shadow: none;
|
||||
}
|
||||
.player.treasure .count,
|
||||
.player.treasure .identity{
|
||||
display: none;
|
||||
}
|
||||
.player.treasure .avatar{
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.player .action{
|
||||
text-shadow: black 0 0 1px !important;
|
||||
font-size: 16px !important;
|
||||
left:0;
|
||||
}
|
||||
.player .action.thunder{
|
||||
color: rgb(117,186,255);
|
||||
}
|
||||
#arena.selecting .player .action:not(.hidden){
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
|
|
@ -104,7 +104,7 @@
|
|||
transform-origin:bottom left;
|
||||
}
|
||||
.player.minskin.linked .equips{
|
||||
transform:rotate(90deg) translate(-90px,-6px) scale(0.73);
|
||||
transform:rotate(90deg) translate(-92px,-6px) scale(0.73);
|
||||
}
|
||||
.player.linked div:not(.equips) .card,
|
||||
.player.linked .identity{
|
||||
|
|
|
@ -307,6 +307,7 @@ mode.boss={
|
|||
game.addVideo('init',null,info);
|
||||
|
||||
"step 3"
|
||||
event.trigger('gameStart');
|
||||
game.gameDraw(game.boss);
|
||||
game.bossPhaseLoop();
|
||||
setTimeout(function(){
|
||||
|
|
965
mode/chess.js
|
@ -589,15 +589,9 @@ mode.identity={
|
|||
game.zhu.setIdentity();
|
||||
game.zhu.isZhu=true;
|
||||
delete game.zhong;
|
||||
game.zhu.$legend();
|
||||
if(lib.config.animation) game.zhu.$legend();
|
||||
game.delay(2);
|
||||
game.zhu.classList.add('playerfocus');
|
||||
ui.arena.classList.add('playerfocus');
|
||||
setTimeout(function(){
|
||||
game.zhu.classList.remove('playerfocus');
|
||||
ui.arena.classList.remove('playerfocus');
|
||||
},1000);
|
||||
game.addVideo('playerfocus',game.zhu);
|
||||
game.zhu.playerfocus(1000);
|
||||
}
|
||||
},
|
||||
logAi:function(targets,card){
|
||||
|
|
118
mode/stone.js
|
@ -207,6 +207,45 @@ mode.stone={
|
|||
}
|
||||
}
|
||||
},
|
||||
cardPack:{
|
||||
mode_stone:[
|
||||
'zhaohunfan','jintiao','liumangxingzhen','shengerpingdeng','emofengdi','konghunshi',
|
||||
'mindieyi','miefafu','dianhaishenzhu','yesushengxue','sanghunzhao','fengraozhijiao'
|
||||
]
|
||||
},
|
||||
characterPack:{
|
||||
mode_stone:{
|
||||
stone_weibing:['male','wei',2,['stone_weibing'],['minskin','stone'],[1,0]],
|
||||
stone_weiguan:['male','wei',1,['stone_weiguan'],['minskin','stone'],[1,2]],
|
||||
stone_weijiang:['male','wei',3,['stone_weijiang'],['minskin','stone'],[3,0]],
|
||||
|
||||
stone_shubing:['male','shu',2,['stone_shubing'],['minskin','stone'],[1,0]],
|
||||
stone_shuguan:['male','shu',1,['stone_shuguan'],['minskin','stone'],[1,2]],
|
||||
stone_shujiang:['male','shu',3,['stone_shujiang'],['minskin','stone'],[3,0]],
|
||||
|
||||
stone_wubing:['male','wu',2,['stone_wubing'],['minskin','stone'],[1,0]],
|
||||
stone_wuguan:['male','wu',1,['stone_wuguan'],['minskin','stone'],[1,2]],
|
||||
stone_wujiang:['male','wu',3,['stone_wujiang'],['minskin','stone'],[3,0]],
|
||||
|
||||
stone_qunbing:['male','qun',2,['stone_qunbing'],['minskin','stone'],[1,0]],
|
||||
stone_qunguan:['male','qun',1,['stone_qunguan'],['minskin','stone'],[1,2]],
|
||||
stone_qunjiang:['male','qun',3,['stone_qunjiang'],['minskin','stone'],[3,0]],
|
||||
|
||||
stone_daoshi:['male','qun',1,['stone_daoshi'],['minskin','stone'],[1,2]],
|
||||
stone_sanxian:['male','qun',2,['stone_sanxian'],['minskin','stone'],[2,0]],
|
||||
stone_yisheng:['male','qun',1,['jijiu'],['minskin','stone'],[2,2]],
|
||||
stone_yinshi:['male','qun',1,['stone_yinshi'],['minskin','stone'],[1,2]],
|
||||
stone_banxian:['male','qun',3,['stone_banxian'],['minskin','stone'],[3,0]],
|
||||
|
||||
stone_daogu:['female','qun',1,['stone_daogu'],['minskin','stone'],[1,2]],
|
||||
stone_gongzhu:['female','wu',1,['shushen'],['minskin','stone'],[2,2]],
|
||||
stone_genv:['female','wei',1,['jieyin'],['minskin','stone'],[1,2]],
|
||||
stone_wunv:['female','qun',1,['biyue'],['minskin','stone'],[3,2]],
|
||||
stone_huanghou:['female','qun',2,['stone_huanghou'],['minskin','stone'],[3,1]],
|
||||
stone_feipin:['female','qun',1,['guixiu'],['minskin','stone'],[1,2]],
|
||||
stone_yiji:['female','qun',1,['stone_yiji'],['minskin','stone'],[2,2]],
|
||||
}
|
||||
},
|
||||
game:{
|
||||
reserveDead:true,
|
||||
getVideoName:function(){
|
||||
|
@ -252,28 +291,27 @@ mode.stone={
|
|||
initStone:function(){
|
||||
var list=[],list2=[];
|
||||
var i,j,name;
|
||||
for(i in lib.character){
|
||||
if(lib.character[i][4]&&lib.character[i][4].contains('minskin')&&lib.character[i][4].contains('stone')){
|
||||
lib.character[i][3].add('stonesha');
|
||||
lib.character[i][3].add('stoneshan');
|
||||
lib.character[i][3].add('stonedraw');
|
||||
name=i+'_stonecharacter';
|
||||
if(lib.character[i][5][0]<3){
|
||||
list.push(name);
|
||||
}
|
||||
else{
|
||||
list2.push(name);
|
||||
}
|
||||
lib.card[name]={
|
||||
image:'character/default/'+i,
|
||||
stoneact:lib.character[i][5][0]
|
||||
};
|
||||
for(j in lib.card.stonecharacter){
|
||||
lib.card[name][j]=lib.card.stonecharacter[j];
|
||||
}
|
||||
lib.translate[name]=get.translation(i);
|
||||
lib.translate[name+'_info']=get.skillintro(i);
|
||||
for(var i in lib.characterPack.mode_stone){
|
||||
lib.character[i]=lib.characterPack.mode_stone[i];
|
||||
lib.character[i][3].add('stonesha');
|
||||
lib.character[i][3].add('stoneshan');
|
||||
lib.character[i][3].add('stonedraw');
|
||||
name=i+'_stonecharacter';
|
||||
if(lib.character[i][5][0]<3){
|
||||
list.push(name);
|
||||
}
|
||||
else{
|
||||
list2.push(name);
|
||||
}
|
||||
lib.card[name]={
|
||||
image:'character/default/'+i,
|
||||
stoneact:lib.character[i][5][0]
|
||||
};
|
||||
for(j in lib.card.stonecharacter){
|
||||
lib.card[name][j]=lib.card.stonecharacter[j];
|
||||
}
|
||||
lib.translate[name]=get.translation(i);
|
||||
lib.translate[name+'_info']=get.skillintro(i);
|
||||
}
|
||||
var addedcardcount=Math.ceil(lib.card.list.length/80);
|
||||
var addedcardcount2=Math.ceil(lib.card.list.length/160);
|
||||
|
@ -409,6 +447,7 @@ mode.stone={
|
|||
_status.videoInited=true,
|
||||
game.addVideo('init',null,info);
|
||||
|
||||
event.trigger('gameStart');
|
||||
game.gameDraw(game.me,2);
|
||||
if(game.me.side){
|
||||
game.stoneLoop(game.me);
|
||||
|
@ -893,37 +932,6 @@ mode.stone={
|
|||
}
|
||||
},
|
||||
},
|
||||
character:{
|
||||
stone_weibing:['male','wei',2,['stone_weibing'],['minskin','stone'],[1,0]],
|
||||
stone_weiguan:['male','wei',1,['stone_weiguan'],['minskin','stone'],[1,2]],
|
||||
stone_weijiang:['male','wei',3,['stone_weijiang'],['minskin','stone'],[3,0]],
|
||||
|
||||
stone_shubing:['male','shu',2,['stone_shubing'],['minskin','stone'],[1,0]],
|
||||
stone_shuguan:['male','shu',1,['stone_shuguan'],['minskin','stone'],[1,2]],
|
||||
stone_shujiang:['male','shu',3,['stone_shujiang'],['minskin','stone'],[3,0]],
|
||||
|
||||
stone_wubing:['male','wu',2,['stone_wubing'],['minskin','stone'],[1,0]],
|
||||
stone_wuguan:['male','wu',1,['stone_wuguan'],['minskin','stone'],[1,2]],
|
||||
stone_wujiang:['male','wu',3,['stone_wujiang'],['minskin','stone'],[3,0]],
|
||||
|
||||
stone_qunbing:['male','qun',2,['stone_qunbing'],['minskin','stone'],[1,0]],
|
||||
stone_qunguan:['male','qun',1,['stone_qunguan'],['minskin','stone'],[1,2]],
|
||||
stone_qunjiang:['male','qun',3,['stone_qunjiang'],['minskin','stone'],[3,0]],
|
||||
|
||||
stone_daoshi:['male','qun',1,['stone_daoshi'],['minskin','stone'],[1,2]],
|
||||
stone_sanxian:['male','qun',2,['stone_sanxian'],['minskin','stone'],[2,0]],
|
||||
stone_yisheng:['male','qun',1,['jijiu'],['minskin','stone'],[2,2]],
|
||||
stone_yinshi:['male','qun',1,['stone_yinshi'],['minskin','stone'],[1,2]],
|
||||
stone_banxian:['male','qun',3,['stone_banxian'],['minskin','stone'],[3,0]],
|
||||
|
||||
stone_daogu:['female','qun',1,['stone_daogu'],['minskin','stone'],[1,2]],
|
||||
stone_gongzhu:['female','wu',1,['shushen'],['minskin','stone'],[2,2]],
|
||||
stone_genv:['female','wei',1,['jieyin'],['minskin','stone'],[1,2]],
|
||||
stone_wunv:['female','qun',1,['biyue'],['minskin','stone'],[3,2]],
|
||||
stone_huanghou:['female','qun',2,['stone_huanghou'],['minskin','stone'],[3,1]],
|
||||
stone_feipin:['female','qun',1,['guixiu'],['minskin','stone'],[1,2]],
|
||||
stone_yiji:['female','qun',1,['stone_yiji'],['minskin','stone'],[2,2]],
|
||||
},
|
||||
skill:{
|
||||
chaofeng:{
|
||||
mark:true,
|
||||
|
@ -1520,7 +1528,9 @@ mode.stone={
|
|||
fengraozhijiao:'丰饶之角',
|
||||
fengraozhijiao_info:'令一名随从回复全部体力',
|
||||
|
||||
stonecard:'法术'
|
||||
stonecard:'法术',
|
||||
mode_stone_card_config:'炉石模式',
|
||||
mode_stone_character_config:'炉石模式',
|
||||
},
|
||||
ai:{
|
||||
get:{
|
||||
|
@ -1538,6 +1548,6 @@ mode.stone={
|
|||
},
|
||||
config:['battle_number','double_character','double_hp','ban_weak','free_choose','change_choice'],
|
||||
help:{
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,5 +5,5 @@
|
|||
background-size:cover;
|
||||
}
|
||||
#arena:not(.chess) .player[data-position='0']>.equips>.equip5 {
|
||||
border-radius: 8px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
|
|
@ -35,6 +35,10 @@ body{
|
|||
.player.unseen .equips:not(*:empty){
|
||||
border-radius:4px;
|
||||
}
|
||||
#arena:not(.chess) .player[data-position='0']>.equips>.equip5 {
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.card{
|
||||
color:white;
|
||||
}
|
||||
|
@ -47,6 +51,15 @@ body{
|
|||
#me>div>.card,#arena>.card:not(*:empty){
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 3px 10px;
|
||||
}
|
||||
/*.player{
|
||||
background:repeating-linear-gradient(
|
||||
135deg,
|
||||
rgba(0,0,0,0.4),
|
||||
rgba(0,0,0,0.4) 2px,
|
||||
rgba(0,0,0,0.2) 2px,
|
||||
rgba(0,0,0,0.2) 4px
|
||||
);
|
||||
}*/
|
||||
|
||||
.menupaused{
|
||||
opacity: 0.3;
|
||||
|
|