挑战模式

This commit is contained in:
libccy 2015-05-11 19:57:44 +08:00
parent 55b77af5cd
commit 3c5bed7959
37 changed files with 418 additions and 151 deletions

View File

@ -1,18 +1,42 @@
{ {
"camelcase": true, "-W041": false,
"eqeqeq": true,
"globalstrict": true, "globalstrict": true,
"funcscope": true,
"esnext": true, "esnext": true,
"eqnull": true,
"strict": true, "strict": true,
"newcap": false, "newcap": false,
"browser": true, "browser": true,
"unused": true, "unused": true,
"loopfunc": true, "loopfunc": true,
"noyield": true, "noyield": true,
"quotmark": "single",
"devel": true, "devel": true,
"node":true, "node":true,
"asi":true,
"evil":true,
"expr":true,
"shadow":true,
"globals": { "globals": {
"player":true,
"event":true,
"target":true,
"targets":true,
"num":true,
"source":true,
"card":true,
"cards":true,
"result":true,
"trigger":true,
"mode":true,
"character":true,
"card":true,
"play":true,
"lib":true,
"game":true,
"ui":true,
"get":true,
"ai":true,
"_status":true,
"forced":true
} }
} }

View File

@ -4,8 +4,8 @@ character.diy={
// diy_hanlong:['male','wei',4,['siji','ciqiu'],['fullskin']], // diy_hanlong:['male','wei',4,['siji','ciqiu'],['fullskin']],
diy_feishi:['male','shu',3,['shuaiyan','moshou'],['fullskin']], diy_feishi:['male','shu',3,['shuaiyan','moshou'],['fullskin']],
diy_liuyan:['male','shu',4,['juedao','geju'],['fullskin']], diy_liuyan:['male','shu',4,['juedao','geju'],['fullskin']],
diy_luxun:['male','wu',3,['shaoying','zonghuo'],['fullskin']], // diy_luxun:['male','wu',3,['shaoying','zonghuo'],['fullskin']],
diy_yuji:['male','qun',3,['diyguhuo','diychanyuan'],['fullskin']], // diy_yuji:['male','qun',3,['diyguhuo','diychanyuan'],['fullskin']],
// diy_zhouyu:['male','wu',3,['jieyan','honglian']], // diy_zhouyu:['male','wu',3,['jieyan','honglian']],
diy_zhouyu:['male','wu',3,['xiongzi','yaliang'],['fullskin']], diy_zhouyu:['male','wu',3,['xiongzi','yaliang'],['fullskin']],
diy_caiwenji:['female','qun',3,['beige','guihan'],['fullskin']], diy_caiwenji:['female','qun',3,['beige','guihan'],['fullskin']],

View File

@ -1,3 +1,4 @@
'use strict';
(function(){ (function(){
var temp; var temp;
try{ try{

View File

@ -8,6 +8,7 @@ window.config={
forbidstone:['zhugedan','pal_xuanxiao'], forbidstone:['zhugedan','pal_xuanxiao'],
forbidchess:['hetaihou','swd_kangnalishi'], forbidchess:['hetaihou','swd_kangnalishi'],
forbiddouble:['zhugedan','swd_kangnalishi','swd_nicole','dongzhuo','jg_simayi'], forbiddouble:['zhugedan','swd_kangnalishi','swd_nicole','dongzhuo','jg_simayi'],
layoutfixed:['chess','boss'],
all:{ all:{
mode:['identity','guozhan','versus','boss','chess','stone'], mode:['identity','guozhan','versus','boss','chess','stone'],
characters:['standard','wind','fire','woods','mountain','extra','sp','yijiang','refresh','guozhan','jiange','zhuogui','diy','yxs','swd','xswd','gujian','xianjian'], characters:['standard','wind','fire','woods','mountain','extra','sp','yijiang','refresh','guozhan','jiange','zhuogui','diy','yxs','swd','xswd','gujian','xianjian'],

View File

@ -132,6 +132,7 @@ window.play={};
init:function(){ init:function(){
lib.config={}; lib.config={};
var config2; var config2;
var config=window.config;
for(var i in config){ for(var i in config){
lib.config[i]=lib.init.eval(config[i]); lib.config[i]=lib.init.eval(config[i]);
} }
@ -175,7 +176,7 @@ window.play={};
lib.init.js('character',lib.config.all.characters); lib.init.js('character',lib.config.all.characters);
lib.init.js('play',lib.config.plays); lib.init.js('play',lib.config.plays);
ui.css={}; ui.css={};
if(lib.config.mode=='chess'){ if(lib.config.layoutfixed.indexOf(lib.config.mode)!==-1){
lib.config.layout='newlayout'; lib.config.layout='newlayout';
} }
ui.css.layout=lib.init.css('layout/'+lib.config.layout,'layout'); ui.css.layout=lib.init.css('layout/'+lib.config.layout,'layout');
@ -1991,8 +1992,12 @@ window.play={};
if(!game.minskin&&lib.config.layout=='newlayout'&&info[4].contains('fullskin')){ if(!game.minskin&&lib.config.layout=='newlayout'&&info[4].contains('fullskin')){
this.classList.remove('minskin'); this.classList.remove('minskin');
this.classList.add('fullskin'); this.classList.add('fullskin');
this.node.avatar.style.backgroundImage='url("image/character/fullskin/'+character+'.jpg")'; if(lib.fakeavatar&&lib.fakeavatar[character]){
this.node.avatar.style.backgroundSize='cover'; this.node.avatar.setBackground('character/fullskin/'+lib.fakeavatar[character]);
}
else{
this.node.avatar.setBackground('character/fullskin/'+character);
}
} }
else{ else{
this.node.avatar.setBackground(character,'character'); this.node.avatar.setBackground(character,'character');
@ -2012,7 +2017,6 @@ window.play={};
this.group=info[1]; this.group=info[1];
this.hp=info[2]; this.hp=info[2];
this.maxHp=info[2]; this.maxHp=info[2];
// this.node.identity.style.backgroundColor=get.translation(this.group+'Color');
this.node.intro.innerHTML=lib.config.intro; this.node.intro.innerHTML=lib.config.intro;
if(lib.config.touchscreen){ if(lib.config.touchscreen){
lib.setLongPress(this,ui.click.intro); lib.setLongPress(this,ui.click.intro);
@ -2036,8 +2040,12 @@ window.play={};
if(lib.config.layout=='newlayout'&&lib.config.only_fullskin){ if(lib.config.layout=='newlayout'&&lib.config.only_fullskin){
this.classList.add('fullskin2'); this.classList.add('fullskin2');
this.node.avatar2.style.backgroundImage='url("image/character/fullskin/'+character2+'.jpg")'; if(lib.fakeavatar&&lib.fakeavatar[character2]){
this.node.avatar2.style.backgroundSize='cover'; this.node.avatar2.setBackground('character/fullskin/'+lib.fakeavatar[character2]);
}
else{
this.node.avatar2.setBackground('character/fullskin/'+character2);
}
} }
else{ else{
this.node.avatar2.setBackground(character2,'character'); this.node.avatar2.setBackground(character2,'character');
@ -2128,6 +2136,12 @@ window.play={};
hp.innerHTML=this.hp+'/'+this.maxHp; hp.innerHTML=this.hp+'/'+this.maxHp;
hp.classList.add('text'); hp.classList.add('text');
} }
else if(lib.config.layout=='newlayout'&&
(this.maxHp>9||(this.maxHp>5&&this.classList.contains('minskin')))){
hp.innerHTML=this.hp+'<br>/<br>'+this.maxHp;
hp.classList.add('text');
hp.classList.remove('long');
}
else{ else{
hp.innerHTML=''; hp.innerHTML='';
hp.classList.remove('text'); hp.classList.remove('text');
@ -2145,38 +2159,24 @@ window.play={};
hp.childNodes[i].classList.add('lost'); hp.childNodes[i].classList.add('lost');
} }
} }
if(this.classList.contains('minskin')){ if(this.maxHp==9){
if(this.maxHp>5){ hp.classList.add('long');
this.node.hp.classList.add('longlong');
}
else{
this.node.hp.classList.remove('longlong');
}
} }
else{ else{
if(this.maxHp>9){ hp.classList.remove('long');
this.node.hp.classList.add('longlong');
}
else{
this.node.hp.classList.remove('longlong');
}
if(this.maxHp==9||this.maxHp>=17){
this.node.hp.classList.add('long');
}
else{
this.node.hp.classList.remove('long');
}
} }
} }
if(this.hp==0){
if(this.hp>Math.round(this.maxHp/2)||this.hp===this.maxHp){ hp.dataset.condition='';
this.node.hp.dataset.condition='high'; }
else if(this.hp>Math.round(this.maxHp/2)||this.hp===this.maxHp){
hp.dataset.condition='high';
} }
else if(this.hp>Math.floor(this.maxHp/3)){ else if(this.hp>Math.floor(this.maxHp/3)){
this.node.hp.dataset.condition='mid'; hp.dataset.condition='mid';
} }
else{ else{
this.node.hp.dataset.condition='low'; hp.dataset.condition='low';
} }
setTimeout(function(){ setTimeout(function(){
@ -2529,6 +2529,7 @@ window.play={};
chooseToRespond:function(){ chooseToRespond:function(){
var next=game.createEvent('chooseToRespond'); var next=game.createEvent('chooseToRespond');
next.player=this; next.player=this;
var filter;
for(var i=0;i<arguments.length;i++){ for(var i=0;i<arguments.length;i++){
if(typeof arguments[i]=='number'){ if(typeof arguments[i]=='number'){
next.selectCard=[arguments[i],arguments[i]]; next.selectCard=[arguments[i],arguments[i]];
@ -2548,7 +2549,7 @@ window.play={};
} }
else if(typeof arguments[i]=='object'){ else if(typeof arguments[i]=='object'){
next.filterCard=get.filter(arguments[i]); next.filterCard=get.filter(arguments[i]);
var filter=arguments[i]; filter=arguments[i];
} }
else if(arguments[i]=='nosource'){ else if(arguments[i]=='nosource'){
next.nosource=true; next.nosource=true;
@ -5112,6 +5113,10 @@ window.play={};
if(lib.updates.length===1){ if(lib.updates.length===1){
game.run(); game.run();
} }
return func;
},
unupdate:function(func){
lib.updates.remove(func);
}, },
stop:function(){ stop:function(){
cancelAnimationFrame(lib.status.frameId); cancelAnimationFrame(lib.status.frameId);
@ -5682,6 +5687,20 @@ window.play={};
if(game.players[i].classList.contains('selected')){ if(game.players[i].classList.contains('selected')){
game.players[i].classList.add('selectable'); game.players[i].classList.add('selectable');
} }
if(game.players[i].instance){
if(game.players[i].classList.contains('selected')){
game.players[i].instance.classList.add('selected');
}
else{
game.players[i].instance.classList.remove('selected');
}
if(game.players[i].classList.contains('selectable')){
game.players[i].instance.classList.add('selectable');
}
else{
game.players[i].instance.classList.remove('selectable');
}
}
} }
if(ui.selected.targets.length<range[0]){ if(ui.selected.targets.length<range[0]){
if(!event.forced||get.selectableTargets().length) if(!event.forced||get.selectableTargets().length)
@ -5803,6 +5822,10 @@ window.play={};
for(j=0;j<game.players.length;j++){ for(j=0;j<game.players.length;j++){
game.players[j].classList.remove('selected'); game.players[j].classList.remove('selected');
game.players[j].classList.remove('selectable'); game.players[j].classList.remove('selectable');
if(game.players[j].instance){
game.players[j].instance.classList.remove('selected');
game.players[j].instance.classList.remove('selectable');
}
} }
ui.selected.targets.length=0; ui.selected.targets.length=0;
} }
@ -6578,6 +6601,8 @@ window.play={};
else{ else{
for(var i in lib.character){ for(var i in lib.character){
if(lib.character[i][4].contains('minskin')) continue; if(lib.character[i][4].contains('minskin')) continue;
if(lib.character[i][4].contains('boss')) continue;
if(lib.character[i][4].contains('hiddenboss')) continue;
if(filter&&filter(i)) continue; if(filter&&filter(i)) continue;
list.push(i); list.push(i);
if(namecapt.indexOf(getCapt(i))==-1){ if(namecapt.indexOf(getCapt(i))==-1){
@ -7068,7 +7093,10 @@ window.play={};
modeconfig.push(ui.create.switcher('strict_sort',get.config('strict_sort'),ui.click.sidebar.local)); modeconfig.push(ui.create.switcher('strict_sort',get.config('strict_sort'),ui.click.sidebar.local));
modeconfig.push(ui.create.switcher('reverse_sort',get.config('reverse_sort'),ui.click.sidebar.reverse_sort));break; modeconfig.push(ui.create.switcher('reverse_sort',get.config('reverse_sort'),ui.click.sidebar.reverse_sort));break;
default:{ default:{
if(typeof lib.config.current_mode[i]==='function'){ if(Array.isArray(lib.config.current_mode[i])){
modeconfig.push(ui.create.switcher.apply(this,lib.config.current_mode[i]));
}
else if(typeof lib.config.current_mode[i]==='function'){
modeconfig.push(lib.config.current_mode[i](game,lib,get,ui)); modeconfig.push(lib.config.current_mode[i](game,lib,get,ui));
} }
} }
@ -7163,7 +7191,11 @@ window.play={};
} }
})); }));
appearence.push(ui.create.switcher('theme',lib.config.all.theme,lib.config.theme,ui.click.sidebar.theme)); appearence.push(ui.create.switcher('theme',lib.config.all.theme,lib.config.theme,ui.click.sidebar.theme));
appearence.push(ui.create.switcher('layout',lib.config.all.layout,lib.config.layout,ui.click.sidebar.layout)); var layoutconfig=ui.create.switcher('layout',lib.config.all.layout,lib.config.layout,ui.click.sidebar.layout);
appearence.push(layoutconfig);
if(lib.config.layoutfixed.contains(lib.config.mode)){
layoutconfig.classList.add('disabled');
}
appearence.push(ui.create.switcher('image_background',lib.config.all.image_background,lib.config.image_background,ui.click.sidebar.image_background)); appearence.push(ui.create.switcher('image_background',lib.config.all.image_background,lib.config.image_background,ui.click.sidebar.image_background));
appearence.push(ui.create.switcher('image_background_filter',lib.config.all.image_background_filter,lib.config.image_background_filter,ui.click.sidebar.image_background_filter)); appearence.push(ui.create.switcher('image_background_filter',lib.config.all.image_background_filter,lib.config.image_background_filter,ui.click.sidebar.image_background_filter));
appearence.push(ui.create.switcher('ui_zoom',['极小','很小','较小','原始','较大','很大'],lib.config.ui_zoom,ui.click.sidebar.ui_zoom)); appearence.push(ui.create.switcher('ui_zoom',['极小','很小','较小','原始','较大','很大'],lib.config.ui_zoom,ui.click.sidebar.ui_zoom));
@ -8631,6 +8663,7 @@ window.play={};
}, },
switcher:function(){ switcher:function(){
if(_status.dragged) return; if(_status.dragged) return;
if(this.parentNode.classList.contains('disabled')) return;
if(_status.choosing) return; if(_status.choosing) return;
_status.clicked=true; _status.clicked=true;
_status.tempunpop=true; _status.tempunpop=true;
@ -9038,6 +9071,9 @@ window.play={};
node.appendChild(ui.sidebar); node.appendChild(ui.sidebar);
node.appendChild(ui.sidebar3); node.appendChild(ui.sidebar3);
ui.arena.classList.add('paused'); ui.arena.classList.add('paused');
if(game.onpause){
game.onpause();
}
}, },
resume:function(e){ resume:function(e){
if(_status.pausing) return; if(_status.pausing) return;
@ -9048,6 +9084,9 @@ window.play={};
ui.arena.classList.remove('paused'); ui.arena.classList.remove('paused');
game.resume2(); game.resume2();
e.stopPropagation(); e.stopPropagation();
if(game.onresume){
game.onresume();
}
return false; return false;
}, },
config:function(){ config:function(){
@ -9064,6 +9103,9 @@ window.play={};
ui.config.animate('start'); ui.config.animate('start');
ui.window.appendChild(ui.config); ui.window.appendChild(ui.config);
},100); },100);
if(game.onpause2){
game.onpause2();
}
}, },
config2:function(e){ config2:function(e){
_status.clicked=true; _status.clicked=true;
@ -9087,6 +9129,9 @@ window.play={};
game.resume2(); game.resume2();
} }
// e.stopPropagation(); // e.stopPropagation();
if(game.onresume2){
game.onresume2();
}
return false; return false;
}, },
swap:function(){ swap:function(){
@ -9096,30 +9141,30 @@ window.play={};
if(ui.auto) ui.auto.show(); if(ui.auto) ui.auto.show();
game.swapPlayer(this); game.swapPlayer(this);
}, },
mousewheel: function(e){ mousewheel:function(evt){
var evt = window.event || e;
var node=this; var node=this;
var num=50; var num=this._scrollnum||6;
var speed=this._scrollspeed||16;
clearInterval(node.interval); clearInterval(node.interval);
if(evt.detail > 0 || evt.wheelDelta < 0){ if(evt.detail > 0 || evt.wheelDelta < 0){
node.interval=setInterval(function(){ node.interval=setInterval(function(){
if(num--&&Math.abs(node.scrollLeft+node.clientWidth-node.scrollWidth)>5){ if(num--&&Math.abs(node.scrollLeft+node.clientWidth-node.scrollWidth)>0){
node.scrollLeft +=2; node.scrollLeft +=speed;
} }
else{ else{
clearInterval(node.interval); clearInterval(node.interval);
} }
},1); },16);
} }
else{ else{
node.interval=setInterval(function(){ node.interval=setInterval(function(){
if(num--&&node.scrollLeft>0){ if(num--&&node.scrollLeft>0){
node.scrollLeft -=2; node.scrollLeft -=speed;
} }
else{ else{
clearInterval(node.interval); clearInterval(node.interval);
} }
},1); },16);
} }
}, },
touchStart:function(e){ touchStart:function(e){
@ -10062,17 +10107,17 @@ window.play={};
if(num<0||num>99) return num; if(num<0||num>99) return num;
if(num<=10){ if(num<=10){
switch(num){ switch(num){
case 0:return '';break; case 0:return '';
case 1:return '一';break; case 1:return '一';
case 2:return two?'二':'两';break; case 2:return two?'二':'两';
case 3:return '三';break; case 3:return '三';
case 4:return '四';break; case 4:return '四';
case 5:return '五';break; case 5:return '五';
case 6:return '六';break; case 6:return '六';
case 7:return '七';break; case 7:return '七';
case 8:return '八';break; case 8:return '八';
case 9:return '九';break; case 9:return '九';
case 10:return '十';break; case 10:return '十';
} }
} }
if(num<20){ if(num<20){
@ -10349,38 +10394,31 @@ window.play={};
if(content>0){ if(content>0){
return '共有'+content+'个标记'; return '共有'+content+'个标记';
} }
else{ return false;
return false;
}
} }
case 'turn':{ case 'turn':{
if(content>0){ if(content>0){
return '还剩'+content+'个回合'; return '还剩'+content+'个回合';
} }
else{ return false;
return false;
}
} }
case 'time':{ case 'time':{
if(content>0){ if(content>0){
return '还剩'+content+'次'; return '还剩'+content+'次';
} }
else{ return false;
return false;
}
} }
case 'limited':{ case 'limited':{
if(content){ if(content){
return '已发动'; return '已发动';
} }
else{ return '未发动';
return '未发动';
}
} }
case 'cardCount':{ case 'cardCount':{
if(typeof content=='object'&&typeof content.length=='number'){ if(typeof content=='object'&&typeof content.length=='number'){
return '共有'+get.cnNumber(content.length)+'张牌'; return '共有'+get.cnNumber(content.length)+'张牌';
} }
return false;
} }
case 'card':case 'cards':{ case 'card':case 'cards':{
if(get.itemtype(content)=='card'){ if(get.itemtype(content)=='card'){
@ -10393,16 +10431,13 @@ window.play={};
else{ else{
dialog.add(content); dialog.add(content);
} }
return false;
} }
else{ else{
if(content&&content.length){ if(content&&content.length){
return get.translation(content); return get.translation(content);
} }
else{
return false;
}
} }
return false;
} }
case 'player':case 'players':{ case 'player':case 'players':{
if(get.itemtype(content)=='player'){ if(get.itemtype(content)=='player'){
@ -10421,9 +10456,7 @@ window.play={};
if(content&&content.length){ if(content&&content.length){
return get.translation(content); return get.translation(content);
} }
else{ return false;
return false;
}
} }
} }
default:{ default:{

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

View File

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -259,6 +259,17 @@ margin-bottom: 5px;
border: 1px solid rgba(39, 79, 7, 1); border: 1px solid rgba(39, 79, 7, 1);
-webkit-filter: grayscale(1); -webkit-filter: grayscale(1);
} }
.hp.text[data-condition="low"]{
text-shadow: black 0 0 1px,rgba(232, 53, 53,1) 0 0 2px,rgba(232, 53, 53,1) 0 0 5px,rgba(232, 53, 53,1) 0 0 10px
}
.hp.text[data-condition="mid"]{
text-shadow: black 0 0 1px,rgba(255, 203, 0,1) 0 0 2px,rgba(255, 203, 0,1) 0 0 5px,rgba(255, 203, 0,1) 0 0 10px
}
.hp.text[data-condition="high"]{
text-shadow: rgba(57, 123, 4,1) 0 0 2px,rgba(57, 123, 4,1) 0 0 5px,rgba(57, 123, 4,1) 0 0 10px
}
/*.hp>div{width: 6px;height: 6px;margin-left: 3px;position: relative;}*/ /*.hp>div{width: 6px;height: 6px;margin-left: 3px;position: relative;}*/
@ -465,6 +476,11 @@ div:hover>.intro{opacity: 1;}
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px; box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px;
border-radius:4px; border-radius:4px;
} }
.shadowed{
background: rgba(0,0,0,0.2);
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px;
border-radius:8px;
}
.underline,.underlinenode{ .underline,.underlinenode{
padding:3px; padding:3px;
width:auto; width:auto;
@ -674,6 +690,31 @@ div[data-nature='soil']{
top:59px; top:59px;
} }
.player.selectable{
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 133, 255, 0.8) 0 0 15px;
}
.selected{
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(255, 0, 0, 0.8) 0 0 15px !important;
}
.glow{
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(0, 133, 255, 0.8) 0 0 15px !important;
}
.glow2{
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;
}
.control.blue{
background-image: linear-gradient(rgba(47,101,150,1), rgba(43, 90, 132,1));
}
.control.red{
background-image: linear-gradient(rgba(150, 47, 47, 1), rgba(132, 43, 43, 1));
}
.control.red,.control.blue{
color:white;
text-shadow:black 0 0 2px;
}
/*--------动画--------*/ /*--------动画--------*/
@-webkit-keyframes cardflip{ @-webkit-keyframes cardflip{
from {-webkit-transform:perspective(600px) rotateY(-90deg) translateX(52px)} from {-webkit-transform:perspective(600px) rotateY(-90deg) translateX(52px)}

View File

@ -0,0 +1,65 @@
#bosslist{
width:100%;
height:calc(50% + 200px);
text-align:center;
top:calc(50% - 200px);
white-space:nowrap;
z-index:1;
}
#bosslist.scroll{
overflow-x:scroll;
}
.bosspaused>#bosslist,
.bosspaused>#control{
opacity:0.2 !important;
}
#bosslist>.player.bossshow{
opacity:1;
-webkit-animation:boss_start 0.5s;
-webkit-transform:none;
}
#bosslist>.player{
position:relative;
margin:10px;
left:0;
top:0;
width:180px;
height:216px;
opacity: 0;
transition: all 0.3s;
-webkit-transform:translateY(-200px);
}
#bosslist>.player:hover{
-webkit-transform:scale(1.1);
}
#bosslist>div:first-child,
#bosslist>div:last-child{
width:20px;
position:relative;
}
#bosslist>.player>div:not(.hp):not(.identity):not(.avatar){
display:none !important;
}
#bosslist>.player>.identity{
left:16px;
top:20px;
line-height:24px;
white-space:normal;
}
#bosslist>.player>.hp{
top:22px;
left:144px;
}
#bosslist>.player>.avatar{
width:156px;
height:192px;
}
#control.bosslist{
top:calc(50% + 100px);
}
#control.bosslist>div{
transition:opacity 0.5s;
}
@-webkit-keyframes boss_start{from {opacity: 0;-webkit-transform:translateY(-200px);}}

View File

@ -87,6 +87,14 @@
margin-left: 4px; margin-left: 4px;
margin-right: 4px; margin-right: 4px;
margin-bottom: 8px; margin-bottom: 8px;
transition:box-shadow 0.5s;
}
.fakeme.player>.selectable{
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(0, 133, 255, 1) 0 0 5px, rgba(0, 133, 255, 1) 0 0 10px;
}
.fakeme.player>.selected{
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(255, 0, 0, 1) 0 0 5px, rgba(255, 0, 0, 1) 0 0 10px !important;
} }
.fakeme.player>.dead{ .fakeme.player>.dead{
-webkit-filter:grayscale(1); -webkit-filter:grayscale(1);

View File

@ -19,6 +19,9 @@
.player.minskin .hp{ .player.minskin .hp{
left:86px; left:86px;
} }
.player.minskin .hp.text{
left:86px;
}
.player.minskin .hp.longlong{ .player.minskin .hp.longlong{
left:74px; left:74px;
} }
@ -217,6 +220,13 @@
z-index:3; z-index:3;
-webkit-transform:rotate(180deg); -webkit-transform:rotate(180deg);
} }
.player .hp.text{
font-family:'huangcao';
font-size:22px;
-webkit-transform:none;
transition:all 0s;
left:114px;
}
.player .hp.long{ .player .hp.long{
bottom:12px; bottom:12px;
max-height:156px; max-height:156px;

View File

@ -1,26 +1,140 @@
'use strict'; 'use strict';
mode.boss={ mode.boss={
game:{ game:{
reserveDead:true,
start:function(){ start:function(){
var next=game.createEvent('game',false); var next=game.createEvent('game',false);
next.content=function(){ next.content=function(){
"step 0" "step 0"
lib.init.css('layout/mode','boss') for(var i in lib.skill){
if(lib.skill[i].changeSeat){
lib.skill[i]={};
if(lib.translate[i+'_info']){
lib.translate[i+'_info']='此模式下不可用';
}
}
}
lib.init.css('layout/mode','boss');
var bosslist=ui.create.div('#bosslist');
if(!lib.config.touchscreen&&lib.config.mousewheel){
bosslist._scrollspeed=30;
bosslist._scrollnum=10;
bosslist.onmousewheel=ui.click.mousewheel;
}
var bosslistlinks={};
var toggleBoss=function(bool){
game.saveConfig(this.name,bool,true);
var node=bosslistlinks[this.name];
if(bool){
node.style.display='';
}
else{
node.style.display='none';
}
};
var onpause=function(){
ui.window.classList.add('bosspaused');
}
var onresume=function(){
ui.window.classList.remove('bosspaused');
}
game.onpause=onpause;
game.onpause2=onpause;
game.onresume=onresume;
game.onresume2=onresume;
ui.create.div(bosslist);
var list=[];
for(var i in lib.character){
var info=lib.character[i];
if(info[4].contains('boss')){
var cfg=i+'_bossconfig';
if(get.config(cfg)==undefined){
game.saveConfig(cfg,true,true);
}
lib.translate[cfg+'_config']=lib.translate[i];
lib.config.current_mode.push([cfg,get.config(cfg),toggleBoss]);
var player=ui.create.player(bosslist).init(i);
list.push(player);
player.node.hp.classList.add('text');
player.node.hp.dataset.condition='';
player.node.hp.innerHTML=info[2];
player.setIdentity(player.name);
player.node.identity.dataset.color=info[5];
bosslistlinks[cfg]=player;
if(!get.config(cfg)){
player.style.display='none';
}
}
}
ui.create.div(bosslist);
lib.translate.boss_pangtong='涅槃凤雏';
ui.create.arena(); ui.create.arena();
var dialog=ui.create.dialog('还没完工~'); var time=(ui.window.offsetWidth-30)/200;
dialog.style.height='52px'; ui.window.appendChild(ui.control);
dialog.style.background=' rgba(0,0,0,0.2)'; ui.control.classList.add('bosslist');
dialog.style.boxShadow=' rgba(0, 0, 0, 0.3) 0 0 0 1px';
dialog.style.borderRadius='8px'; ui.window.appendChild(bosslist);
dialog.style.top='calc(50% - 52px)'; var interval=setInterval(function(){
if(list.length){
list.shift().classList.add('bossshow');
}
else{
clearInterval(interval);
}
},500/time);
setTimeout(function(){
bosslist.classList.add('scroll');
},1000);
setTimeout(function(){
var control=ui.create.control('快速开始',function(){
control.hide();
bosslist.delete();
});
},500);
game.pause(); game.pause();
"step 1"
console.log(1);
} }
} }
}, },
character:{ character:{
boss_zuiqiangshenhua:['male','qun',8,['mashu','wushuang','baonu'],['boss']], boss_zhangchunhua:['female','shu',4,[],['fullskin','boss'],'wei'],
boss_baonuzhanshen:['male','qun',4,['mashu','wushuang','xiuluo','shenwei','shenji'],['boss']], boss_zhenji:['female','shu',4,[],['fullskin','boss'],'wei'],
boss_liubei:['male','shu',4,[],['fullskin','boss'],'qun'],
boss_zhugeliang:['male','shu',4,[],['fullskin','boss'],'qun'],
boss_huangyueying:['female','shu',4,[],['fullskin','boss'],'wei'],
boss_pangtong:['male','shu',4,[],['fullskin','boss'],'zhu'],
boss_zhouyu:['male','wu',4,[],['fullskin','boss'],'zhu'],
boss_lvbu1:['male','qun',8,['mashu','wushuang','baonu'],['fullskin','boss'],'wei'],
boss_lvbu2:['male','qun',4,['mashu','wushuang','xiuluo','shenwei','shenji'],['fullskin','hiddenboss'],'qun'],
boss_caiwenji:['female','qun',8,[],['fullskin','boss'],'wei'],
boss_zhangjiao:['male','qun',8,[],['fullskin','boss'],'shu'],
boss_zuoci:['male','qun',8,[],['fullskin','boss'],'shu'],
boss_yuji:['male','qun',8,[],['fullskin','boss'],'nei'],
boss_diaochan:['male','qun',8,[],['fullskin','boss'],'qun'],
boss_huatuo:['male','qun',8,[],['fullskin','boss'],'wu'],
boss_dongzhuo:['male','qun',8,[],['fullskin','boss'],'shu'],
boss_shuijing:['male','qun',8,[],['fullskin','boss'],'wei'],
}, },
translate:{
boss_shuijing:'水镜先生',
boss_huangyueying:'奇智女杰',
boss_zhangchunhua:'冷血皇后',
boss_satan:'堕落天使',
boss_dongzhuo:'乱世魔王',
boss_lvbu1:'最强神话',
boss_lvbu2:'暴怒战神',
boss_zhouyu:'赤壁火神',
boss_pangtong:'涅盘凤雏',
boss_zhugeliang:'祭风卧龙',
boss_zhangjiao:'天公将军',
boss_zuoci:'迷之仙人',
boss_yuji:'琅琊道士',
boss_liubei:'昭烈皇帝',
boss_caiwenji:'异乡孤女',
boss_huatuo:'药坛圣手',
boss_luxun:'蹁跹君子',
boss_zhenji:'洛水仙子',
boss_diaochan:'绝代妖姬',
}
} }

View File

@ -433,7 +433,6 @@ mode.chess={
if(targets.length==0){ if(targets.length==0){
if(randomMove.length){ if(randomMove.length){
var list=randomMove.slice(0); var list=randomMove.slice(0);
var randomMoved=false;
while(list.length){ while(list.length){
var thismove=list.randomRemove(); var thismove=list.randomRemove();
if(player[thismove]()){ if(player[thismove]()){
@ -594,7 +593,7 @@ mode.chess={
var next=game.createEvent('game',false); var next=game.createEvent('game',false);
next.content=function(){ next.content=function(){
"step 0" "step 0"
for(i in lib.skill){ for(var i in lib.skill){
if(lib.skill[i].changeSeat){ if(lib.skill[i].changeSeat){
lib.skill[i]={}; lib.skill[i]={};
if(lib.translate[i+'_info']){ if(lib.translate[i+'_info']){
@ -647,10 +646,10 @@ mode.chess={
} }
this._chessdrag=[e,this.parentNode.scrollLeft,this.parentNode.scrollTop]; this._chessdrag=[e,this.parentNode.scrollLeft,this.parentNode.scrollTop];
}); });
ui.chess.addEventListener('mouseleave',function(e){ ui.chess.addEventListener('mouseleave',function(){
this._chessdrag=null; this._chessdrag=null;
}); });
ui.chess.addEventListener('mouseup',function(e){ ui.chess.addEventListener('mouseup',function(){
if(this._chessdrag){ if(this._chessdrag){
this._chessdrag=null; this._chessdrag=null;
} }
@ -662,7 +661,7 @@ mode.chess={
} }
e.preventDefault(); e.preventDefault();
}); });
ui.chessContainer.addEventListener('mousewheel',function(e){ ui.chessContainer.addEventListener('mousewheel',function(){
if(_status.currentChessFocus){ if(_status.currentChessFocus){
clearInterval(_status.currentChessFocus); clearInterval(_status.currentChessFocus);
delete _status.currentChessFocus; delete _status.currentChessFocus;
@ -742,7 +741,7 @@ mode.chess={
lib.posmap[enemy.dataset.position]=enemy; lib.posmap[enemy.dataset.position]=enemy;
} }
lib.setPopped(ui.create.system('查看手牌',null,true),function(e){ lib.setPopped(ui.create.system('查看手牌',null,true),function(){
var uiintro=ui.create.dialog('hidden'); var uiintro=ui.create.dialog('hidden');
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
@ -760,11 +759,6 @@ mode.chess={
return uiintro; return uiintro;
}); });
var clearPrompt=function(){
for(var i=0;i<game.players.length;i++){
game.players[i].unprompt();
}
};
ui.create.system('显示距离',function(){ ui.create.system('显示距离',function(){
if(!game.me.isAlive()) return; if(!game.me.isAlive()) return;
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
@ -814,6 +808,7 @@ mode.chess={
node.style.backgroundImage=p.node.avatar.style.backgroundImage; node.style.backgroundImage=p.node.avatar.style.backgroundImage;
node.link=p; node.link=p;
node.listen(game.clickChessInfo); node.listen(game.clickChessInfo);
p.instance=node;
if(_status.currentPhase==p){ if(_status.currentPhase==p){
node.classList.add('glow2'); node.classList.add('glow2');
} }
@ -824,6 +819,7 @@ mode.chess={
clickChessInfo:function(e){ clickChessInfo:function(e){
if(this.link.isAlive()){ if(this.link.isAlive()){
this.link.chessFocus(); this.link.chessFocus();
ui.click.target.call(this.link,e);
e.stopPropagation(); e.stopPropagation();
} }
}, },

View File

@ -1,3 +1,4 @@
'use strict';
mode.guozhan={ mode.guozhan={
game:{ game:{
start:function(){ start:function(){
@ -56,7 +57,6 @@ mode.guozhan={
}, },
showIdentity:function(started){ showIdentity:function(started){
if(game.phaseNumber==0&&!started) return; if(game.phaseNumber==0&&!started) return;
var players=game.players.concat(game.dead);
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
game.players[i].showCharacter(2); game.players[i].showCharacter(2);
} }
@ -173,6 +173,7 @@ mode.guozhan={
}; };
next.switchToAuto=function(){ next.switchToAuto=function(){
event.ai(game.me,list); event.ai(game.me,list);
ui.arena.classList.remove('selecting');
}; };
event.dialogxx=ui.create.characterDialog(); event.dialogxx=ui.create.characterDialog();

View File

@ -1,3 +1,4 @@
'use strict';
mode.identity={ mode.identity={
game:{ game:{
start:function(){ start:function(){
@ -58,7 +59,6 @@ mode.identity={
} }
}, },
showIdentity:function(){ showIdentity:function(){
var players=game.players.concat(game.dead);
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
game.players[i].identityShown=true; game.players[i].identityShown=true;
game.players[i].ai.shown=1; game.players[i].ai.shown=1;
@ -575,19 +575,21 @@ mode.identity={
case 'zhong': return 6; case 'zhong': return 6;
case 'nei': case 'nei':
if(game.players.length==2) return -10; if(game.players.length==2) return -10;
if(ai.get.situation()>1) return 0; if(situation>1) return 0;
return Math.min(3,get.population('fan')); return Math.min(3,get.population('fan'));
case 'fan': return -4; case 'fan': return -4;
} }
break;
case 'zhong': case 'zhong':
switch(identity2){ switch(identity2){
case 'zhu': return 10; case 'zhu': return 10;
case 'zhong': return get.population('fan')>0?4:-1; case 'zhong': return get.population('fan')>0?4:-1;
case 'nei': case 'nei':
if(get.population('fan')==0) return -2; if(get.population('fan')==0) return -2;
return Math.min(3,-ai.get.situation()); return Math.min(3,-situation);
case 'fan': return -8; case 'fan': return -8;
} }
break;
case 'nei': case 'nei':
if(identity2=='zhu'&&game.players.length==2) return -10; if(identity2=='zhu'&&game.players.length==2) return -10;
var strategy=get.aiStrategy(); var strategy=get.aiStrategy();
@ -601,16 +603,16 @@ mode.identity={
if(strategy==6) return -1; if(strategy==6) return -1;
if(strategy==5) return 10; if(strategy==5) return 10;
if(to.hp<=0) return 10; if(to.hp<=0) return 10;
if(ai.get.situation()>1) num=0; if(situation>1) num=0;
else num=get.population('fan')+Math.max(0,3-game.zhu.hp); else num=get.population('fan')+Math.max(0,3-game.zhu.hp);
if(strategy==2) num--; if(strategy==2) num--;
if(strategy==3) num++; if(strategy==3) num++;
return num; return num;
case 'zhong': case 'zhong':
if(strategy==5) return Math.min(0,-ai.get.situation()); if(strategy==5) return Math.min(0,-situation);
if(strategy==6) return Math.max(-1,-ai.get.situation()); if(strategy==6) return Math.max(-1,-situation);
if(get.population('fan')==0) num=-5; if(get.population('fan')==0) num=-5;
else if(ai.get.situation()<=0) num=0; else if(situation<=0) num=0;
else if(game.zhu&&game.zhu.hp<2) num=0; else if(game.zhu&&game.zhu.hp<2) num=0;
else if(game.zhu&&game.zhu.hp==2) num=-0.5 else if(game.zhu&&game.zhu.hp==2) num=-0.5
else num=-2; else num=-2;
@ -622,27 +624,28 @@ mode.identity={
if(from.ai.friend.contains(to)) return 5; if(from.ai.friend.contains(to)) return 5;
return -1; return -1;
case 'fan': case 'fan':
if(strategy==5) return Math.max(-1,ai.get.situation()); if(strategy==5) return Math.max(-1,situation);
if(strategy==6) return Math.min(0,ai.get.situation()); if(strategy==6) return Math.min(0,situation);
if((game.zhu&&game.zhu.hp<=2&&ai.get.situation()<=0)||ai.get.situation()<-1) num=-3; if((game.zhu&&game.zhu.hp<=2&&situation<=0)||situation<-1) num=-3;
else if(ai.get.situation()<0||get.population('zhong')==0) num=-2; else if(situation<0||get.population('zhong')==0) num=-2;
else if((game.zhu&&game.zhu.hp>4&&ai.get.situation()>0)||ai.get.situation()>1) num=1; else if((game.zhu&&game.zhu.hp>4&&situation>0)||situation>1) num=1;
else num=0; else num=0;
if(strategy==2) num++; if(strategy==2) num++;
if(strategy==3) num--; if(strategy==3) num--;
return num; return num;
} }
break;
case 'fan': case 'fan':
switch(identity2){ switch(identity2){
case 'zhu': case 'zhu':
if(ai.get.situation()==1) return -6; if(situation==1) return -6;
if(ai.get.situation()>1) return -5; if(situation>1) return -5;
return -10; return -10;
case 'zhong': return -7; case 'zhong': return -7;
case 'nei': case 'nei':
if(get.population('zhong')==0) return -7; if(get.population('zhong')==0) return -7;
if(game.zhu&&game.zhu.hp<=2) return -1; if(game.zhu&&game.zhu.hp<=2) return -1;
return Math.min(3,ai.get.situation()); return Math.min(3,situation);
case 'fan': return 5; case 'fan': return 5;
} }
} }

View File

@ -1064,7 +1064,7 @@ mode.stone={
event.chooser.chooseTarget('魏兵:弃置对方一名随从的所有牌',function(card,playerx,target){ event.chooser.chooseTarget('魏兵:弃置对方一名随从的所有牌',function(card,playerx,target){
return player.side!=target.side&&target.isMin()&&target.num('he')>0; return player.side!=target.side&&target.isMin()&&target.num('he')>0;
}).ai=function(target){ }).ai=function(target){
return 1; return target.num('he');
}; };
player.line(event.chooser); player.line(event.chooser);
"step 1" "step 1"

View File

@ -1,3 +1,4 @@
'use strict';
mode.versus={ mode.versus={
game:{ game:{
start:function(){ start:function(){
@ -585,7 +586,6 @@ mode.versus={
}, },
versusCheckHandcards:function(){ versusCheckHandcards:function(){
_status.clicked=true; _status.clicked=true;
var i,translation,intro,str;
if(ui.intro){ if(ui.intro){
ui.intro.close(); ui.intro.close();
if(ui.intro.source=='versusCheckHandcards'){ if(ui.intro.source=='versusCheckHandcards'){
@ -626,7 +626,7 @@ mode.versus={
} }
} }
}, },
versusHoverEnemy:function(e){ versusHoverEnemy:function(){
var uiintro=ui.create.dialog('hidden'); var uiintro=ui.create.dialog('hidden');
if(_status.enemyDied.length){ if(_status.enemyDied.length){
@ -644,7 +644,7 @@ mode.versus={
return uiintro; return uiintro;
}, },
versusHoverFriend:function(e){ versusHoverFriend:function(){
var uiintro=ui.create.dialog('hidden'); var uiintro=ui.create.dialog('hidden');
if(_status.friendDied.length){ if(_status.friendDied.length){
@ -662,7 +662,7 @@ mode.versus={
return uiintro; return uiintro;
}, },
versusHoverReplace:function(e){ versusHoverReplace:function(){
var uiintro=ui.create.dialog('hidden'); var uiintro=ui.create.dialog('hidden');
uiintro.add(ui.autoreplace); uiintro.add(ui.autoreplace);
@ -680,7 +680,7 @@ mode.versus={
return uiintro; return uiintro;
}, },
versusHoverHandcards:function(e){ versusHoverHandcards:function(){
var uiintro=ui.create.dialog('hidden'); var uiintro=ui.create.dialog('hidden');
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
@ -700,7 +700,6 @@ mode.versus={
}, },
versusCheckEnemy:function(){ versusCheckEnemy:function(){
_status.clicked=true; _status.clicked=true;
var i,translation,intro,str;
if(ui.intro){ if(ui.intro){
ui.intro.close(); ui.intro.close();
if(ui.intro.source=='versusCheckEnemy'){ if(ui.intro.source=='versusCheckEnemy'){
@ -715,9 +714,6 @@ mode.versus={
ui.intro=ui.create.dialog(); ui.intro=ui.create.dialog();
ui.intro.source='versusCheckEnemy'; ui.intro.source='versusCheckEnemy';
if(_status.enemyDied.length){ if(_status.enemyDied.length){
ui.intro.add('已阵亡'); ui.intro.add('已阵亡');
ui.intro.add([_status.enemyDied,'character']); ui.intro.add([_status.enemyDied,'character']);
@ -733,7 +729,6 @@ mode.versus={
}, },
versusCheckFriend:function(){ versusCheckFriend:function(){
_status.clicked=true; _status.clicked=true;
var i,translation,intro,str;
if(ui.intro){ if(ui.intro){
ui.intro.close(); ui.intro.close();
if(ui.intro.source=='versusCheckFriend'){ if(ui.intro.source=='versusCheckFriend'){
@ -779,7 +774,6 @@ mode.versus={
} }
else{ else{
_status.clicked=true; _status.clicked=true;
var i,translation,intro,str;
if(ui.intro){ if(ui.intro){
ui.intro.close(); ui.intro.close();
if(ui.intro.source==this.parentNode){ if(ui.intro.source==this.parentNode){

View File

@ -19,18 +19,6 @@ html{
.player,#mebg{ .player,#mebg{
/*background:url('wood.png') left repeat-y,url('wood.png') right repeat-y,linear-gradient(#4b4b4b, #464646);*/ /*background:url('wood.png') left repeat-y,url('wood.png') right repeat-y,linear-gradient(#4b4b4b, #464646);*/
} }
.player.selectable{
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 133, 255, 0.8) 0 0 15px;
}
.glow{
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(0, 133, 255, 0.8) 0 0 15px !important;
}
.glow2{
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;
}
.selected{
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(255, 0, 0, 0.8) 0 0 15px !important;
}
.card{ .card{
color:white; color:white;
} }

View File

@ -46,18 +46,6 @@ html{
.control,#system>div>div,.popup,.dialog>.bar{ .control,#system>div>div,.popup,.dialog>.bar{
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.2) 0 2px 10px; box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.2) 0 2px 10px;
} }
.player.selectable{
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 133, 255, 0.8) 0 0 15px;
}
.glow{
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(0, 133, 255, 0.8) 0 0 15px !important;
}
.glow2{
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;
}
.selected{
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(255, 0, 0, 0.8) 0 0 15px !important;
}
.card{ .card{
text-shadow:rgba(0,0,0,0.1) 0 0 1px; text-shadow:rgba(0,0,0,0.1) 0 0 1px;
} }