挑战模式

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,
"eqeqeq": true,
"-W041": false,
"globalstrict": true,
"funcscope": true,
"esnext": true,
"eqnull": true,
"strict": true,
"newcap": false,
"browser": true,
"unused": true,
"loopfunc": true,
"noyield": true,
"quotmark": "single",
"devel": true,
"node":true,
"asi":true,
"evil":true,
"expr":true,
"shadow":true,
"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_feishi:['male','shu',3,['shuaiyan','moshou'],['fullskin']],
diy_liuyan:['male','shu',4,['juedao','geju'],['fullskin']],
diy_luxun:['male','wu',3,['shaoying','zonghuo'],['fullskin']],
diy_yuji:['male','qun',3,['diyguhuo','diychanyuan'],['fullskin']],
// diy_luxun:['male','wu',3,['shaoying','zonghuo'],['fullskin']],
// diy_yuji:['male','qun',3,['diyguhuo','diychanyuan'],['fullskin']],
// diy_zhouyu:['male','wu',3,['jieyan','honglian']],
diy_zhouyu:['male','wu',3,['xiongzi','yaliang'],['fullskin']],
diy_caiwenji:['female','qun',3,['beige','guihan'],['fullskin']],

View File

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

View File

@ -8,6 +8,7 @@ window.config={
forbidstone:['zhugedan','pal_xuanxiao'],
forbidchess:['hetaihou','swd_kangnalishi'],
forbiddouble:['zhugedan','swd_kangnalishi','swd_nicole','dongzhuo','jg_simayi'],
layoutfixed:['chess','boss'],
all:{
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'],

View File

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

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);
-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;}*/
@ -465,6 +476,11 @@ div:hover>.intro{opacity: 1;}
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px;
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{
padding:3px;
width:auto;
@ -674,6 +690,31 @@ div[data-nature='soil']{
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{
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-right: 4px;
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{
-webkit-filter:grayscale(1);

View File

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

View File

@ -1,26 +1,140 @@
'use strict';
mode.boss={
game:{
reserveDead:true,
start:function(){
var next=game.createEvent('game',false);
next.content=function(){
"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();
var dialog=ui.create.dialog('还没完工~');
dialog.style.height='52px';
dialog.style.background=' rgba(0,0,0,0.2)';
dialog.style.boxShadow=' rgba(0, 0, 0, 0.3) 0 0 0 1px';
dialog.style.borderRadius='8px';
dialog.style.top='calc(50% - 52px)';
var time=(ui.window.offsetWidth-30)/200;
ui.window.appendChild(ui.control);
ui.control.classList.add('bosslist');
ui.window.appendChild(bosslist);
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();
"step 1"
console.log(1);
}
}
},
character:{
boss_zuiqiangshenhua:['male','qun',8,['mashu','wushuang','baonu'],['boss']],
boss_baonuzhanshen:['male','qun',4,['mashu','wushuang','xiuluo','shenwei','shenji'],['boss']],
boss_zhangchunhua:['female','shu',4,[],['fullskin','boss'],'wei'],
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(randomMove.length){
var list=randomMove.slice(0);
var randomMoved=false;
while(list.length){
var thismove=list.randomRemove();
if(player[thismove]()){
@ -594,7 +593,7 @@ mode.chess={
var next=game.createEvent('game',false);
next.content=function(){
"step 0"
for(i in lib.skill){
for(var i in lib.skill){
if(lib.skill[i].changeSeat){
lib.skill[i]={};
if(lib.translate[i+'_info']){
@ -647,10 +646,10 @@ mode.chess={
}
this._chessdrag=[e,this.parentNode.scrollLeft,this.parentNode.scrollTop];
});
ui.chess.addEventListener('mouseleave',function(e){
ui.chess.addEventListener('mouseleave',function(){
this._chessdrag=null;
});
ui.chess.addEventListener('mouseup',function(e){
ui.chess.addEventListener('mouseup',function(){
if(this._chessdrag){
this._chessdrag=null;
}
@ -662,7 +661,7 @@ mode.chess={
}
e.preventDefault();
});
ui.chessContainer.addEventListener('mousewheel',function(e){
ui.chessContainer.addEventListener('mousewheel',function(){
if(_status.currentChessFocus){
clearInterval(_status.currentChessFocus);
delete _status.currentChessFocus;
@ -742,7 +741,7 @@ mode.chess={
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');
for(var i=0;i<game.players.length;i++){
@ -760,11 +759,6 @@ mode.chess={
return uiintro;
});
var clearPrompt=function(){
for(var i=0;i<game.players.length;i++){
game.players[i].unprompt();
}
};
ui.create.system('显示距离',function(){
if(!game.me.isAlive()) return;
for(var i=0;i<game.players.length;i++){
@ -814,6 +808,7 @@ mode.chess={
node.style.backgroundImage=p.node.avatar.style.backgroundImage;
node.link=p;
node.listen(game.clickChessInfo);
p.instance=node;
if(_status.currentPhase==p){
node.classList.add('glow2');
}
@ -824,6 +819,7 @@ mode.chess={
clickChessInfo:function(e){
if(this.link.isAlive()){
this.link.chessFocus();
ui.click.target.call(this.link,e);
e.stopPropagation();
}
},

View File

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

View File

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

View File

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

View File

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

View File

@ -19,18 +19,6 @@ html{
.player,#mebg{
/*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{
color:white;
}

View File

@ -46,18 +46,6 @@ html{
.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;
}
.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{
text-shadow:rgba(0,0,0,0.1) 0 0 1px;
}