This commit is contained in:
libccy 2015-12-12 16:37:15 +08:00
parent 3725e6d370
commit 99a2e96305
49 changed files with 263 additions and 386 deletions

View File

@ -221,7 +221,7 @@ character.extra={
player.chooseCard('是否弃置一枚“忍”,并发动【鬼才】?').ai=function(card){
var trigger=_status.event.parent._trigger;
var player=_status.event.player;
var result=trigger.judge(card)-trigger.judge(trigger.player.judging);
var result=trigger.judge(card)-trigger.judge(trigger.player.judging[0]);
var attitude=ai.get.attitude(player,trigger.player);
if(attitude==0||result==0) return 0;
if(attitude>0){
@ -243,12 +243,12 @@ character.extra={
player.logSkill('jilue_guicai');
player.storage.renjie--;
player.updateMarks();
if(trigger.player.judging.clone){
trigger.player.judging.clone.delete();
game.addVideo('deletenode',player,get.cardsInfo([trigger.player.judging.clone]));
if(trigger.player.judging[0].clone){
trigger.player.judging[0].clone.delete();
game.addVideo('deletenode',player,get.cardsInfo([trigger.player.judging[0].clone]));
}
ui.discardPile.appendChild(trigger.player.judging);
trigger.player.judging=result.cards[0];
ui.discardPile.appendChild(trigger.player.judging[0]);
trigger.player.judging[0]=result.cards[0];
trigger.position.appendChild(result.cards[0]);
game.log(trigger.player,'的判定牌改为',result.cards[0]);
game.delay(2);

View File

@ -1175,13 +1175,14 @@ character.hearth={
}
if(player.storage.mdzhoufu3.isAlive()){
// player.storage.mdzhoufu3.draw();
player.storage.mdzhoufu3.gain(player.judging,'gain2');
player.storage.mdzhoufu3.gain(player.judging[0],'gain2');
}
else{
ui.discardPile.appendChild(player.judging[0]);
game.delay(1.5);
}
"step 1"
player.judging=player.storage.mdzhoufu2;
player.judging[0]=player.storage.mdzhoufu2;
trigger.position.appendChild(player.storage.mdzhoufu2);
// trigger.untrigger();
game.log(player,'的判定牌改为',player.storage.mdzhoufu2);

View File

@ -126,10 +126,10 @@ character.refresh={
content:function(){
"step 0"
player.chooseCard(get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+
get.translation(trigger.player.judging)+',是否发动【鬼才】?','he').ai=function(card){
get.translation(trigger.player.judging[0])+',是否发动【鬼才】?','he').ai=function(card){
var trigger=_status.event.parent._trigger;
var player=_status.event.player;
var result=trigger.judge(card)-trigger.judge(trigger.player.judging);
var result=trigger.judge(card)-trigger.judge(trigger.player.judging[0]);
var attitude=ai.get.attitude(player,trigger.player);
if(attitude==0||result==0) return 0;
if(attitude>0){
@ -149,12 +149,12 @@ character.refresh={
"step 2"
if(result.bool){
player.logSkill('reguicai');
if(trigger.player.judging.clone){
trigger.player.judging.clone.delete();
game.addVideo('deletenode',player,get.cardsInfo([trigger.player.judging.clone]));
if(trigger.player.judging[0].clone){
trigger.player.judging[0].clone.delete();
game.addVideo('deletenode',player,get.cardsInfo([trigger.player.judging[0].clone]));
}
ui.discardPile.appendChild(trigger.player.judging);
trigger.player.judging=result.cards[0];
ui.discardPile.appendChild(trigger.player.judging[0]);
trigger.player.judging[0]=result.cards[0];
trigger.position.appendChild(result.cards[0]);
game.log(trigger.player,'的判定牌改为',result.cards[0]);
game.delay(2);

View File

@ -390,13 +390,13 @@ character.sp={
content:function(){
"step 0"
var list=player.storage.yishe;
var dialog=ui.create.dialog(get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+get.translation(trigger.player.judging)+
var dialog=ui.create.dialog(get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+get.translation(trigger.player.judging[0])+
',是否发动【米道】?',list,'hidden');
player.chooseButton(dialog,function(button){
var card=button.link;
var trigger=_status.event.parent._trigger;
var player=_status.event.player;
var result=trigger.judge(card)-trigger.judge(trigger.player.judging);
var result=trigger.judge(card)-trigger.judge(trigger.player.judging[0]);
var attitude=ai.get.attitude(player,trigger.player);
return result*attitude;
});
@ -418,8 +418,8 @@ character.sp={
"step 2"
if(event.card){
player.logSkill('midao',trigger.player);
ui.discardPile.appendChild(trigger.player.judging);
trigger.player.judging=event.card;
ui.discardPile.appendChild(trigger.player.judging[0]);
trigger.player.judging[0]=event.card;
trigger.position.appendChild(event.card);
game.log(trigger.player,'的判定牌改为',event.card);
event.card.expired=true;
@ -1189,7 +1189,7 @@ character.sp={
game.delay(1.5);
}
"step 1"
player.judging=player.storage.zhoufu2;
player.judging[0]=player.storage.zhoufu2;
trigger.position.appendChild(player.storage.zhoufu2);
// trigger.untrigger();
game.log(player,'的判定牌改为',player.storage.zhoufu2);
@ -2518,7 +2518,7 @@ character.sp={
check:function(event,player){
if(ai.get.attitude(player,event.player)<=0) return false;
var cards=player.get('he');
var judge=event.judge(event.player.judging);
var judge=event.judge(event.player.judging[0]);
for(var i=0;i<cards.length;i++){
// console.log(event.judge(cards[i]),judge,ai.get.useful(cards[i]));
var judge2=event.judge(cards[i]);
@ -2530,7 +2530,7 @@ character.sp={
content:function(){
"step 0"
var target=trigger.player;
var judge=trigger.judge(target.judging);
var judge=trigger.judge(target.judging[0]);
var attitude=ai.get.attitude(target,player);
target.choosePlayerCard('请选择代替判定的牌','he','visible',true,player).ai=function(button){
var card=button.link;
@ -2564,12 +2564,12 @@ character.sp={
}
"step 2"
if(result.bool){
if(trigger.player.judging.clone){
trigger.player.judging.clone.delete();
game.addVideo('deletenode',player,get.cardsInfo([trigger.player.judging.clone]));
if(trigger.player.judging[0].clone){
trigger.player.judging[0].clone.delete();
game.addVideo('deletenode',player,get.cardsInfo([trigger.player.judging[[0]].clone]));
}
ui.discardPile.appendChild(trigger.player.judging);
trigger.player.judging=event.card;
ui.discardPile.appendChild(trigger.player.judging[0]);
trigger.player.judging[0]=event.card;
game.delay(2);
}
},
@ -3536,7 +3536,7 @@ character.sp={
duanxie_info:'出牌阶段限一次,你可以令一名其他角色横置武将牌,若如此做,你横置武将牌。',
xiaoguo_info:'其他角色的结束阶段开始时你可以弃置一张基本牌令该角色选择一项1.弃置一张装备牌并令你摸一张牌2.受到你对其造成的1点伤害。',
sijian_info:'当你失去最后的手牌时,你可以弃置一名其他角色的一张牌。',
suishi_info:'锁定技。当一名其他角色进入濒死状态时,你摸一张牌;其他与你势力相同的角色死亡时你失去1点体力。',
suishi_info:'锁定技。当一名其他角色进入濒死状态时,你摸一张牌;当一名其他角色死亡时你失去1点体力。',
quji_info:'出牌阶段限一次你可以弃置X张牌X为你已损失的体力值然后令至多X名已受伤的角色各回复1点体力。若你以此法弃置的牌中有黑色牌你失去一点体力。',
junbing_info:'一名角色的结束阶段开始时若其手牌数少于或者等于1该角色可以摸一张牌。若如此做该角色须将所有手牌交给你然后你交给其等量的牌。',
shefu_info:'结束阶段开始时,你可以将一张手牌移出游戏,称为“伏兵”。然后为“伏兵”记录一个基本牌或锦囊牌名称(须与其他“伏兵”记录的名称均不同)。你的回合外,当有其他角色使用与你记录的“伏兵”牌名相同的牌时,你可以令此牌无效,然后将该“伏兵”置入弃牌堆。',

View File

@ -147,10 +147,10 @@ character.standard={
content:function(){
"step 0"
player.chooseCard(get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+
get.translation(trigger.player.judging)+',是否发动【鬼才】?').ai=function(card){
get.translation(trigger.player.judging[0])+',是否发动【鬼才】?').ai=function(card){
var trigger=_status.event.parent._trigger;
var player=_status.event.player;
var result=trigger.judge(card)-trigger.judge(trigger.player.judging);
var result=trigger.judge(card)-trigger.judge(trigger.player.judging[0]);
var attitude=ai.get.attitude(player,trigger.player);
if(attitude==0||result==0) return 0;
if(attitude>0){
@ -170,12 +170,12 @@ character.standard={
"step 2"
if(result.bool){
player.logSkill('guicai');
if(trigger.player.judging.clone){
trigger.player.judging.clone.delete();
game.addVideo('deletenode',player,get.cardsInfo([trigger.player.judging.clone]));
if(trigger.player.judging[0].clone){
trigger.player.judging[0].clone.delete();
game.addVideo('deletenode',player,get.cardsInfo([trigger.player.judging[0].clone]));
}
ui.discardPile.appendChild(trigger.player.judging);
trigger.player.judging=result.cards[0];
ui.discardPile.appendChild(trigger.player.judging[0]);
trigger.player.judging[0]=result.cards[0];
trigger.position.appendChild(result.cards[0]);
game.log(trigger.player,'的判定牌改为',result.cards[0]);
game.delay(2);

View File

@ -3073,10 +3073,10 @@ character.swd={
content:function(){
"step 0"
player.chooseCard(get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+
get.translation(trigger.player.judging)+',是否发动【天道】?','he').ai=function(card){
get.translation(trigger.player.judging[0])+',是否发动【天道】?','he').ai=function(card){
var trigger=_status.event.parent._trigger;
var player=_status.event.player;
var result=trigger.judge(card)-trigger.judge(trigger.player.judging);
var result=trigger.judge(card)-trigger.judge(trigger.player.judging[0]);
var attitude=ai.get.attitude(player,trigger.player);
if(attitude==0||result==0) return 0;
if(attitude>0){
@ -3096,9 +3096,9 @@ character.swd={
"step 2"
if(result.bool){
player.logSkill('tiandao');
player.$gain2(trigger.player.judging);
player.gain(trigger.player.judging);
trigger.player.judging=result.cards[0];
player.$gain2(trigger.player.judging[0]);
player.gain(trigger.player.judging[0]);
trigger.player.judging[0]=result.cards[0];
trigger.position.appendChild(result.cards[0]);
game.log(trigger.player,'的判定牌改为',result.cards[0]);
}
@ -6309,13 +6309,13 @@ character.swd={
for(var i=0;i<game.players.length;i++){
list=list.concat(game.players[i].get('j'));
}
var dialog=ui.create.dialog(get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+get.translation(trigger.player.judging)+
var dialog=ui.create.dialog(get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+get.translation(trigger.player.judging[0])+
',是否发动【天轮】?',list,'hidden');
player.chooseButton(dialog,function(button){
var card=button.link;
var trigger=_status.event.parent._trigger;
var player=_status.event.player;
var result=trigger.judge(card)-trigger.judge(trigger.player.judging);
var result=trigger.judge(card)-trigger.judge(trigger.player.judging[0]);
var attitude=ai.get.attitude(player,trigger.player);
return result*attitude;
});
@ -6332,8 +6332,8 @@ character.swd={
"step 2"
if(event.card){
player.logSkill('tianlun',trigger.player);
ui.discardPile.appendChild(trigger.player.judging);
trigger.player.judging=event.card;
ui.discardPile.appendChild(trigger.player.judging[0]);
trigger.player.judging[0]=event.card;
trigger.position.appendChild(event.card);
game.log(trigger.player,'的判定牌改为',event.card);
event.card.expired=true;

View File

@ -405,12 +405,12 @@ character.wind={
content:function(){
"step 0"
player.chooseCard(get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+
get.translation(trigger.player.judging)+',是否发动【鬼道】?','he',function(card){
get.translation(trigger.player.judging[0])+',是否发动【鬼道】?','he',function(card){
return get.color(card)=='black';
}).ai=function(card){
var trigger=_status.event.parent._trigger;
var player=_status.event.player;
var result=trigger.judge(card)-trigger.judge(trigger.player.judging);
var result=trigger.judge(card)-trigger.judge(trigger.player.judging[0]);
var attitude=ai.get.attitude(player,trigger.player);
if(attitude==0||result==0) return 0;
if(attitude>0){
@ -430,9 +430,9 @@ character.wind={
"step 2"
if(result.bool){
player.logSkill('guidao');
player.$gain2(trigger.player.judging);
player.gain(trigger.player.judging);
trigger.player.judging=result.cards[0];
player.$gain2(trigger.player.judging[0]);
player.gain(trigger.player.judging[0]);
trigger.player.judging[0]=result.cards[0];
trigger.position.appendChild(result.cards[0]);
game.log(trigger.player,'的判定牌改为',result.cards[0]);
}

View File

@ -5592,7 +5592,7 @@ character.yijiang={
anxu:'安恤',
zhuiyi:'追忆',
gongji:'弓骑',
qiuyuan:'援',
qiuyuan:'援',
zhuikong:'惴恐',
qieting:'窃听',
xianzhou:'献州',

View File

@ -321,9 +321,10 @@ window.config={
current_mode:{},
forbid:[
['huashen'],
['lingwu','jilve'],
['lingwu','yongsi'],
['lingwu','shangshi'],
['lingwu'],
// ['lingwu','jilve'],
// ['lingwu','yongsi'],
// ['lingwu','shangshi'],
// ['jizhi','zhiheng'],
// ['xiaoji','zhiheng'],
// ['relianying','zhiheng'],
@ -349,7 +350,9 @@ window.config={
['yiji','tuntian'],
['reyiji','tuntian'],
['tuntian','guidao'],
['tuntian','guicai'],
['tuntian','tiandao'],
['tuntian','huanshi'],
// ['tuntian','guicai'],
// ['jiang','chongzhen'],
['fenji','yuling'],
['jiushi','guixin'],

View File

@ -16,18 +16,11 @@
dieClose:[]
};
var lib={
version:1.70,
version:1.71,
changeLog:[
'界面显示改进',
'AI改进',
'武将图修改',
'boss、将5配音(@tanyuanjkl提取)',
'可隐藏模式、武将、卡牌包',
'开始界面',
'显示历史记录选项',
'左滑/右滑手势',
'自定义背景音乐',
'自定义武将',
'bug修复',
'双指拖动对话框',
'对决模式调整',
],
configprefix:'noname_0.9_',
updates:[],
@ -2471,6 +2464,9 @@
}
lib.configMenu.audio.config.background_music.item.music_random='随机';
lib.configMenu.audio.config.background_music.item.music_off='关闭';
if(lib.config.touchscreen){
delete lib.configMenu.audio.config.background_music.item.music_custom;
}
}
delete character.pack;
delete card.pack;
@ -4649,33 +4645,33 @@
"step 0"
var judgestr=get.translation(player)+'的'+event.judgestr+'判定';
event.videoId=lib.status.videoId++;
player.judging=get.cards()[0];
game.addVideo('judge1',player,[get.cardInfo(player.judging),judgestr,event.videoId]);
player.judging.unshift(get.cards()[0]);
game.addVideo('judge1',player,[get.cardInfo(player.judging[0]),judgestr,event.videoId]);
if(lib.config.mode=='chess'){
event.node=player.judging.copy('thrown','center',ui.arena).animate('start');
event.node=player.judging[0].copy('thrown','center',ui.arena).animate('start');
}
else{
event.node=player.$throwordered(player.judging.copy(),true);
event.node=player.$throwordered(player.judging[0].copy(),true);
}
event.node.classList.add('thrownhighlight');
ui.arena.classList.add('thrownhighlight');
event.dialog=ui.create.dialog(judgestr);
event.dialog.classList.add('center');
game.log(player,'进行'+event.judgestr+'判定,亮出的判定牌为',player.judging);
game.log(player,'进行'+event.judgestr+'判定,亮出的判定牌为',player.judging[0]);
game.delay(2);
event.trigger('judge');
"step 1"
event.result={
card:player.judging,
number:get.number(player.judging),
suit:get.suit(player.judging),
color:get.color(player.judging),
judge:event.judge(player.judging),
card:player.judging[0],
number:get.number(player.judging[0]),
suit:get.suit(player.judging[0]),
color:get.color(player.judging[0]),
judge:event.judge(player.judging[0]),
node:event.node,
};
if(event.result.judge>0) event.result.bool=true;
if(event.result.judge<0) event.result.bool=false;
delete player.judging;
player.judging.shift();
if(event.result.judge>0){
player.popup('洗具');
}
@ -8123,6 +8119,9 @@
if(info.filter&&!info.filter(trigger,player,event.triggername)){
event.finish();
}
else if(event._trigger.notrigger.contains(player)&&!lib.skill.global.contains(event.skill)){
event.finish();
}
else{
var hidden=player.hiddenSkills.slice(0);
game.expandSkills(hidden);
@ -8184,14 +8183,20 @@
}
}
},
untrigger:function(all){
untrigger:function(all,player){
if(all){
this.next.length=0;
this._triggered=5;
}
else if(player){
this.notrigger.add(player);
for(var i=0;i<this.next.length;i++){
if(this.next[i].player==player) this.next.splice(i--,1);
}
}
else{
for(var i=0;i<this.next.length;i++){
if(this.next[i]._trigger==this) this.next.remove(this.next[i]);
if(this.next[i]._trigger==this) this.next.splice(i--,1);
}
}
}
@ -9111,6 +9116,7 @@
ui.system.style.display='';
ui.refresh(ui.system);
ui.system.show();
ui.window.show();
if(lib.config.mode!='versus'&&lib.config.mode!='boss'){
ui.arena.style.display='';
ui.refresh(ui.arena);
@ -10569,6 +10575,7 @@
finished:false,
next:[],
aiexclude:[],
notrigger:[],
custom:{
add:{},
replace:{}
@ -11538,8 +11545,12 @@
next.content=function(){
"step 0"
var end=player;
var numx=num;
do{
player.directgain(get.cards(4));
if(typeof num=='function'){
numx=num(player);
}
player.directgain(get.cards(numx));
if(player.singleHp===true&&lib.config.mode!='guozhan'){
player.doubleDraw();
}
@ -12457,6 +12468,7 @@
dialog.contentContainer.ontouchstart=ui.click.touchStart;
dialog.contentContainer.ontouchmove = ui.click.touchScroll;
dialog.contentContainer.style.WebkitOverflowScrolling='touch';
dialog.ontouchstart=ui.click.dragtouchdialog;
return dialog;
},
line2:function(){
@ -12719,10 +12731,15 @@
delete window.isIpad;
}
ui.refresh(ui.window);
// setTimeout(function(){
// ui.window.show();
// },500);
ui.window.show();
if(!localStorage.getItem(lib.configprefix+'playback')){
ui.window.show();
}
else{
setTimeout(function(){
ui.window.show();
},1000);
}
ui.window.addEventListener(lib.config.touchscreen?'touchend':'click',ui.click.window);
ui.system=ui.create.div("#system.",ui.window);
ui.arena=ui.create.div('#arena',ui.window);
@ -14942,22 +14959,22 @@
}
textstr+='\n';
text.value=textstr;
perserveMenu=true;
// perserveMenu=true;
}
runButton.listen(function(){
textstr='';
perserveMenu=false;
// perserveMenu=false;
try{
eval(text.value);
eval('text.value='+text.value);
}
catch(e){
text.value=e;
perserveMenu=true;
}
if(!perserveMenu){
text.value='';
clickContainer.call(menuContainer);
// perserveMenu=true;
}
// if(!perserveMenu){
// text.value='';
// clickContainer.call(menuContainer);
// }
});
}());
(function(){
@ -15409,6 +15426,7 @@
node.modeSkills=[];
node.popups=[];
node.damagepopups=[];
node.judging=[];
node.stat=[{card:{},skill:{}}];
node.tempSkills={};
node.storage={};
@ -15540,6 +15558,23 @@
},
},
click:{
dragtouchdialog:function(e){
if(e.touches.length>1&&
!this.classList.contains('popped')&&
!this.classList.contains('fixed')){
_status.draggingtouchdialog=this;
this._dragorigin={
clientX:e.touches[0].clientX,
clientY:e.touches[0].clientY,
};
if(!this._dragtransform){
this._dragtransform=[0,0];
}
this._dragorigintransform=this._dragtransform.slice(0);
e.preventDefault();
e.stopPropagation();
}
},
identity:function(){
if(_status.dragged) return;
_status.clicked=true;
@ -15933,7 +15968,7 @@
},
windowtouchstart:function(e){
if(window.inSplash) return;
if(e.touches[0]&&lib.config.swipe){
if(e.touches[0]&&lib.config.swipe&&e.touches.length<2){
_status._swipeorigin={
clientX:e.touches[0].clientX,
clientY:e.touches[0].clientY,
@ -15963,6 +15998,19 @@
}
_status.clicked=true;
}
else if(_status.draggingtouchdialog){
delete _status._swipeorigin;
if(_status.draggingtouchdialog._dragorigin&&_status.draggingtouchdialog._dragtransform&&e.touches.length){
var translate=_status.draggingtouchdialog._dragtransform.slice(0);
var dx=e.touches[0].clientX-_status.draggingtouchdialog._dragorigin.clientX;
var dy=e.touches[0].clientY-_status.draggingtouchdialog._dragorigin.clientY;
translate[0]+=dx;
translate[1]+=dy;
_status.draggingtouchdialog._dragtouches=e.touches[0];
_status.draggingtouchdialog.style.transform='translate('+translate[0]+'px,'+translate[1]+'px)';
}
_status.clicked=true;
}
else if(_status._swipeorigin&&e.touches[0]){
_status._swipeorigin.touches=e.touches[0];
}
@ -16121,7 +16169,7 @@
},
windowtouchend:function(e){
if(window.inSplash) return;
if(e.touches.length==1&&!_status.dragged){
if(e.touches.length==1&&!_status.dragged&&!_status.draggingtouchdialog){
ui.click.pause();
}
if(_status.draggingroundmenu){
@ -16154,6 +16202,25 @@
game.saveConfig('roundmenu_transform',translate);
delete _status.draggingroundmenu;
}
else if(_status.draggingtouchdialog){
delete _status._swipeorigin;
if(_status.draggingtouchdialog._dragorigin&&_status.draggingtouchdialog._dragtransform&&_status.draggingtouchdialog._dragtouches){
var dx=_status.draggingtouchdialog._dragtouches.clientX-_status.draggingtouchdialog._dragorigin.clientX;
var dy=_status.draggingtouchdialog._dragtouches.clientY-_status.draggingtouchdialog._dragorigin.clientY;
var translate=_status.draggingtouchdialog._dragtransform;
translate[0]+=dx;
translate[1]+=dy;
_status.draggingtouchdialog.style.transform='translate('+translate[0]+'px,'+translate[1]+'px)';
delete _status.draggingtouchdialog._dragorigin;
}
_status.clicked=false;
delete _status.draggingtouchdialog;
_status.justdragged=true;
setTimeout(function(){
_status.justdragged=false;
},500);
}
else if(_status._swipeorigin&&!_status.paused2&&!_status.mousedragging){
if(get.currentTime()-_status._swipeorigin.time<500){
var dx=_status._swipeorigin.touches.clientX-_status._swipeorigin.clientX;
@ -16813,7 +16880,9 @@
if(_status.dragged) return;
if(_status.clicked) return;
if(_status.tempNoButton) return;
if(_status.draggingtouchdialog) return;
if(this.classList.contains('noclick')) return;
if(_status.justdragged) return;
_status.clicked=true;
var custom=_status.event.custom;
if(custom.replace.button){
@ -17396,6 +17465,7 @@
},
touchScroll:function(e) {
if(_status.mousedragging) return;
if(_status.draggingtouchdialog) return;
if(!_status.dragged){
if (Math.abs(e.touches[0].clientX - this.startX) > 10 ||
Math.abs(e.touches[0].clientY - this.startY) > 10) {
@ -18778,7 +18848,7 @@
},
owner:function(card){
for(var i=0;i<game.players.length;i++){
if(game.players[i].get('hej').contains(card)||game.players[i].judging==card)
if(game.players[i].get('hej').contains(card)||game.players[i].judging[0]==card)
return game.players[i];
}
for(var i=0;i<game.players.length;i++){

View File

@ -1311,7 +1311,7 @@ div:hover>.wunature{
.player.selectable{
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 133, 255, 0.5) 0 0 5px, rgba(0, 133, 255, 0.6) 0 0 12px, rgba(0, 133, 255, 0.8) 0 0 15px;
}
.selected{
.selected,.selectedx{
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px,rgba(255, 0, 0, 0.4) 0 0 5px, rgba(255, 0, 0, 0.4) 0 0 12px, rgba(255, 0, 0, 0.8) 0 0 15px !important;
}
#me .card.selected{
@ -1330,8 +1330,7 @@ div:hover>.wunature{
.glow{
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 133, 255, 0.4) 0 0 5px, rgba(0, 133, 255, 0.5) 0 0 12px, rgba(0, 133, 255, 0.8) 0 0 15px !important;
}
.glow2:not(.player.glow_phase)>.avatar,
.player.current_action .avatar{
.glow2:not(.player.glow_phase)>.avatar{
/*-webkit-animation:control_glow 4s infinite;*/
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(10, 155, 67, 1) 0 0 15px, rgba(10, 155, 67, 1) 0 0 15px !important;
}

View File

@ -19,6 +19,7 @@
top:0;
overflow:scroll;
text-align:center;
position: absolute;
}
#chess{
margin-top:36px;

View File

@ -1579,11 +1579,9 @@ mode.chess={
ui.create.cards();
game.finishCards();
ui.chessContainer=ui.create.div('#chess-container',ui.arena);
ui.chessContainer.ontouchstart = ui.click.touchStart;
ui.chessContainer.ontouchmove = ui.click.touchScroll;
lib.setScroll(ui.chessContainer);
ui.chessContainer.style.WebkitOverflowScrolling='touch';
ui.chess=ui.create.div('#chess',ui.chessContainer);
lib.setScroll(ui.chess);
ui.canvas2=document.createElement('canvas');
ui.canvas2.id='canvas2';
ui.chess.appendChild(ui.canvas2);
@ -1692,42 +1690,46 @@ mode.chess={
}
ui.chess.style.height=148*ui.chessheight+'px';
ui.chess.style.width=148*ui.chesswidth+'px';
ui.chess.addEventListener('mousedown',function(e){
if(Array.isArray(e.path)){
for(var i=0;i<e.path.length;i++){
var itemtype=get.itemtype(e.path[i]);
if(itemtype=='button'||itemtype=='card'||itemtype=='player'){
return;
if(!lib.config.touchscreen){
ui.chess.addEventListener('mousedown',function(e){
if(Array.isArray(e.path)){
for(var i=0;i<e.path.length;i++){
var itemtype=get.itemtype(e.path[i]);
if(itemtype=='button'||itemtype=='card'||itemtype=='player'){
return;
}
}
}
}
this._chessdrag=[e,this.parentNode.scrollLeft,this.parentNode.scrollTop];
});
ui.chess.addEventListener('mouseleave',function(){
this._chessdrag=null;
});
ui.chess.addEventListener('mouseup',function(){
if(this._chessdrag){
this._chessdrag=[e,this.parentNode.scrollLeft,this.parentNode.scrollTop];
});
ui.chess.addEventListener('mouseleave',function(){
this._chessdrag=null;
}
});
ui.chess.addEventListener('mousemove',function(e){
if(this._chessdrag){
this.parentNode.scrollLeft=this._chessdrag[1]-e.x+this._chessdrag[0].x;
this.parentNode.scrollTop=this._chessdrag[2]-e.y+this._chessdrag[0].y;
_status.clicked=true;
}
e.preventDefault();
});
ui.chessContainer.addEventListener('mousewheel',function(){
if(_status.currentChessFocus){
clearInterval(_status.currentChessFocus);
delete _status.currentChessFocus;
}
});
});
ui.chess.addEventListener('mouseup',function(){
if(this._chessdrag){
this._chessdrag=null;
}
});
ui.chess.addEventListener('mousemove',function(e){
if(this._chessdrag){
this.parentNode.scrollLeft=this._chessdrag[1]-e.x+this._chessdrag[0].x;
this.parentNode.scrollTop=this._chessdrag[2]-e.y+this._chessdrag[0].y;
_status.clicked=true;
}
e.preventDefault();
});
ui.chessContainer.addEventListener('mousewheel',function(){
if(_status.currentChessFocus){
clearInterval(_status.currentChessFocus);
delete _status.currentChessFocus;
}
});
}
ui.chessscroll1=ui.create.div('.chessscroll.left',ui.chessContainer);
ui.chessscroll2=ui.create.div('.chessscroll.right',ui.chessContainer);
var chessscroll=function(){
if(lib.config.touchscreen) return;
var direction=this.direction;
var speed=parseInt(get.config('chessscroll_speed'));
if(!speed) return;

View File

@ -211,6 +211,7 @@ mode.guozhan={
td.link=i-1;
td.addEventListener(lib.config.touchscreen?'touchend':'click',function(){
if(_status.dragged) return;
if(_status.justdragged) return;
if(_status.cheat_seat){
_status.cheat_seat.classList.remove('thundertext');
if(_status.cheat_seat==this){

View File

@ -498,6 +498,7 @@ mode.identity={
td.innerHTML=get.translation(list[i]+'2');
td.addEventListener(lib.config.touchscreen?'touchend':'click',function(){
if(_status.dragged) return;
if(_status.justdragged) return;
_status.tempNoButton=true;
setTimeout(function(){
_status.tempNoButton=false;
@ -541,6 +542,7 @@ mode.identity={
}
td.addEventListener(lib.config.touchscreen?'touchend':'click',function(){
if(_status.dragged) return;
if(_status.justdragged) return;
if(get.distance(game.zhu,game.me,'absolute')==this.link) return;
var current=this.parentNode.querySelector('.thundertext');
if(current){

View File

@ -43,7 +43,7 @@ mode.versus={
if(lib.storage.choice==undefined) game.save('choice',20);
if(lib.storage.zhu==undefined) game.save('zhu',true);
if(lib.storage.noreplace_end==undefined) game.save('noreplace_end',true);
if(lib.storage.die_stop==undefined) game.save('die_stop',true);
if(lib.storage.first_less==undefined) game.save('first_less',true);
if(lib.storage.autoreplaceinnerhtml==undefined) game.save('autoreplaceinnerhtml',true);
// if(lib.storage.only_zhu==undefined) game.save('only_zhu',true);
if(lib.storage.single_control==undefined) game.save('single_control',true);
@ -70,7 +70,45 @@ mode.versus={
game.chooseCharacter();
"step 3"
event.trigger('gameStart');
game.gameDraw(game.players[0]);
var firstAct;
if(lib.storage.zhu){
firstAct=(_status.currentSide==game.me.side)?game.friendZhu:game.enemyZhu;
}
else{
if(!lib.storage.cross_seat&&!lib.storage.random_seat&&lib.storage.number>1){
for(var i=0;i<game.players.length-1;i++){
if(game.players[i].side!=game.players[i+1].side){
var actcount;
if(Math.random()<0.5){
actcount=i;
}
else{
if(i>=lib.storage.number){
actcount=i-lib.storage.number;
}
else{
actcount=i+lib.storage.number;
}
}
if(actcount>0){
actcount--;
}
else{
actcount=game.players.length-1;
}
firstAct=game.players[actcount];
break;
}
}
}
else{
firstAct=game.players[Math.floor(Math.random()*game.players.length)];
}
}
game.gameDraw(firstAct,function(player){
if(player==firstAct) return 3;
return 4;
});
_status.round=0;
if(lib.storage.single_control){
lib.skill.global.push('versus_swap');
@ -99,10 +137,10 @@ mode.versus={
if(lib.storage.zhu){
_status.currentSide=true;
game.versusPhaseLoop((_status.currentSide==game.me.side)?game.friendZhu:game.enemyZhu);
game.versusPhaseLoop(firstAct);
}
else{
game.versusPhaseLoop(game.players[Math.floor(Math.random()*game.players.length)]);
game.versusPhaseLoop(firstAct);
}
}
},
@ -134,7 +172,7 @@ mode.versus={
this.dialog.versus_assign_enemy=this.dialog.add(ui.create.switcher('versus_assign_enemy',lib.storage.assign_enemy)).querySelector('.toggle');
this.dialog.versus_single_control=this.dialog.add(ui.create.switcher('versus_single_control',lib.storage.single_control)).querySelector('.toggle');
// this.dialog.versus_control_all=this.dialog.add(ui.create.switcher('versus_control_all',lib.storage.control_all)).querySelector('.toggle');
this.dialog.versus_die_stop=this.dialog.add(ui.create.switcher('versus_die_stop',lib.storage.die_stop)).querySelector('.toggle');
this.dialog.versus_first_less=this.dialog.add(ui.create.switcher('versus_first_less',lib.storage.first_less)).querySelector('.toggle');
this.dialog.versus_reward=this.dialog.add(ui.create.switcher('versus_reward',[0,1,2,3,4],lib.storage.versus_reward)).querySelector('.toggle');
this.dialog.versus_punish=this.dialog.add(ui.create.switcher('versus_punish',['弃牌','无','摸牌'],lib.storage.versus_punish)).querySelector('.toggle');
this.dialog.versus_seat_order=this.dialog.add(ui.create.switcher('seat_order',['对阵','交叉','随机'],lib.storage.seat_order)).querySelector('.toggle');
@ -252,7 +290,7 @@ mode.versus={
var buttons=_status.event.dialog.buttons.slice(0);
buttons.randomSort();
for(var i=0;i<buttons.length;i++){
if(buttons[i].classList.contains('glow')||buttons[i].classList.contains('selected')){
if(buttons[i].classList.contains('glow')||buttons[i].classList.contains('selectedx')){
buttons.splice(i,1);i--;
}
}
@ -277,10 +315,10 @@ mode.versus={
});
event.custom.replace.button=function(button){
if(_status.choose_enemy){
if(button.classList.contains('glow')||button.classList.contains('selected')||_status.choosefinished) return;
if(button.classList.contains('glow')||button.classList.contains('selectedx')||_status.choosefinished) return;
_status.choose_enemy=false;
if(!_status.color){
button.classList.add('selected');
button.classList.add('selectedx');
// button.style.transform='rotate(-3deg)';
}
else{
@ -290,15 +328,15 @@ mode.versus={
_status.enemy.push(button.link);
var buttons=_status.event.dialog.buttons.slice(0);
for(var i=0;i<buttons.length;i++){
if(buttons[i].classList.contains('glow')||buttons[i].classList.contains('selected')){
if(buttons[i].classList.contains('glow')||buttons[i].classList.contains('selectedx')){
buttons.splice(i,1);i--;
}
}
}
else{
if(button.classList.contains('glow')||button.classList.contains('selected')||_status.choosefinished) return;
if(button.classList.contains('glow')||button.classList.contains('selectedx')||_status.choosefinished) return;
if(_status.color){
button.classList.add('selected');
button.classList.add('selectedx');
// button.style.transform='rotate(-3deg)';
}
else{
@ -308,7 +346,7 @@ mode.versus={
_status.friend.push(button.link);
var buttons=_status.event.dialog.buttons.slice(0);
for(var i=0;i<buttons.length;i++){
if(buttons[i].classList.contains('glow')||buttons[i].classList.contains('selected')){
if(buttons[i].classList.contains('glow')||buttons[i].classList.contains('selectedx')){
buttons.splice(i,1);i--;
}
}
@ -322,7 +360,7 @@ mode.versus={
// button2.style.transform='rotate(-3deg)';
}
else{
button2.classList.add('selected');
button2.classList.add('selectedx');
// button2.style.transform='rotate(-3deg)';
}
_status.enemy.push(button2.link);
@ -376,7 +414,7 @@ mode.versus={
// dialog.versus_control_all.parentNode.classList.add('disabled');
// }
// game.save('control_all',dialog.versus_control_all.link);
game.save('die_stop',dialog.versus_die_stop.link);
game.save('first_less',dialog.versus_first_less.link);
game.save('number',dialog.versus_number.link);
game.save('versus_reward',dialog.versus_reward.link);
game.save('versus_punish',dialog.versus_punish.link);
@ -717,9 +755,7 @@ mode.versus={
source.init(event.character);
source.node.identity.dataset.color=get.translation(source.side+'Color');
source.draw(4);
if(lib.storage.die_stop){
_status.event.parent.parent.parent.untrigger(true);
}
_status.event.parent.parent.parent.untrigger(false,source);
if(lib.storage.single_control&&lib.storage.control_all){
game.onSwapControl();
}
@ -1044,7 +1080,6 @@ mode.versus={
falseColor:"wei",
versus_zhu_config:'启用主将',
versus_only_zhu_config:'只当主将',
versus_die_stop_config:'死亡后终止结算',
versus_main_zhu_config:'主将死亡后结束',
versus_assign_enemy_config:'指定对手',
versus_cross_seat_config:'交叉座位',
@ -1053,6 +1088,7 @@ mode.versus={
versus_single_control_config:'单人控制',
seat_order_config:'座位排列',
versus_control_all_config:'固定控制位置',
versus_first_less_config:'先手少摸牌',
versus_reward_config:'杀敌摸牌',
versus_punish_config:'杀死队友',
versus_number_config:'对阵人数',

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,24 +0,0 @@
html{
color: rgba(0,0,0,0.3);
background: url('block.png');
}
#system>div>div,#me,.control,.player,.popup,.card,.avatar,.avatar2,.button{
border-radius: 8px;
border:1px solid rgba(0,0,0,0.2);
}
.avatar,.avatar2,.button.character{
border:none;
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.2) 0 3px 10px;
}
#paused{
background-color: rgba(0,0,0,0.5);
}
.control,#system>div>div{
background: white;
}
.player.selectable,.glow{
box-shadow:0 1px 10px rgba(0,133,255,0.3);
}
.selected{
box-shadow:0 1px 10px rgba(255,0,0,0.3) !important;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -1,23 +0,0 @@
html{
color: rgba(0,0,0,0.3);
text-shadow: white 1px 1px 1px;
background-image: url('oxygen.jpg');
}
#system>div>div,#me,.control,.player,.popup,.card,.avatar,.avatar2,.button{
border:1px solid #fff;
box-shadow:0px 1px 3px rgba(0,0,0,0.3);
background-color: rgba(255,255,255,0.5);
border-radius: 8px;
}
#paused{
background-color: rgba(255,255,255,0.5);
}
.control{
background: rgba(255,255,255,0.8);
}
.player.selectable,.glow{
box-shadow:0 1px 10px rgba(0,133,255,0.3);
}
.selected{
box-shadow:0 1px 10px rgba(255,0,0,0.3) !important;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

View File

@ -1,28 +0,0 @@
html{
color: white;
text-shadow: black 0 0 2px;
background: url('grid.png'),linear-gradient(#dddddd, #ffffff);
}
#system>div>div,#me,.control,.player,.popup,.card,.avatar,.avatar2,.button{
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.2) 0 3px 10px;
background-image: linear-gradient(#6c7989, #535b65);
border-radius: 8px;
}
.player,#me{
background:url('dock.png') bottom repeat-x,linear-gradient(#6c7989, #535b65) fixed;
}
.card{
background: url('grid.png'),linear-gradient(#ffffff, #eeeeee) !important;
}
#paused{
background-color: rgba(0,0,0,0.5);
}
.player.selectable,.glow{
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;
}
.card{
background-image: linear-gradient(#6c7989, #535b65);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 KiB

View File

@ -1,30 +0,0 @@
html{
color: white;
text-shadow: black 0 0 2px;
background-image: url('blur.jpg');
background-size: cover;
}
#system>div>div,#me,.control,.player,.popup,.card,.avatar,.avatar2,.button{
box-shadow: rgba(0, 0, 0, 0.2) 2px 3px 5px,rgba(255,255,255,0.1) 2px 3px 5px inset,rgba(255,255,255,0.25) 0 0 5px inset;
border-radius: 8px;
background-image: url('glow.png');
background-size: cover;
}
#paused{
background-color: rgba(0,0,0,0.5);
}
.player.selectable,.glow{
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;
}
.card{
color: white !important;
}
.fire{
color: rgb(255,119,63) !important;
}
.thunder{
color: rgb(117,186,255) !important;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

View File

@ -1,48 +0,0 @@
html{
color: white;
text-shadow: black 0 0 2px;
background: url('jeans.jpg');
}
#system>div>div,#mebg,.control,.player,.popup,.card,.avatar,.avatar2,.button{
box-shadow: rgba(0, 0, 0, 0.15) 0 0 10px;
border-radius: 8px;
border:1px dashed white;
background:none;
}
.card{
/*background: url('jeans.jpg');*/
}
.avatar,.avatar2,.button.character{
border:none;
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.2) 0 3px 10px;
}
#paused{
background-color: rgba(0,0,0,0.5);
}
.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;
}
.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;
}
.fire{
color: rgb(255,119,63);
}
.thunder{
color: rgb(117,186,255);
}
.poison{
color: rgb(104,221,127);
}
.brown{
color: rgb(196,157,58);
}
.brown{
color: rgb(195,161,223);
}

View File

@ -1,19 +0,0 @@
html{
color: rgba(0,0,0,0.3);
background: rgba(0,0,0,0.15);
}
#system>div>div,#me,.control,.player,.popup,.card,.avatar,.avatar2,.button{
background-color: rgba(255,255,255,0.5);
}
#paused{
background-color: rgba(0,0,0,0.5);
}
.player.selectable,.glow{
-webkit-transform: scale(1.05)
}
.selected,.target{
-webkit-transform: rotate(-3deg) !important;
}
.hp>div{box-shadow:0px 1px 1px rgba(0,0,0,0.1) !important;}
.player,.button.character{text-shadow: rgba(0,0,0,0.3) 0 0 2px !important;}
.identity{border:1px solid rgba(0, 0, 0, 0.1) !important;}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -1,23 +0,0 @@
html{
color: rgba(0,0,0,0.3);
background: url('p_4.png'),url('bg_1.jpg');
}
#system>div>div,#me,.control,.player,.popup,.card,.avatar,.avatar2,.button{
border-radius: 8px;
border: 1px solid rgba(0,0,0,0.2);
}
#me,.player,#arena>.card,.p0>.equips>div,#system>div>div,.control,.popup{
background: rgba(255,255,255,0.3);
}
.control{
background: rgba(255,255,255,0.5);
}
.card,.player.p0{
background: url('p_4.png'),url('bg_1.jpg');
}
.player.selectable,.glow{
box-shadow: inset rgba(0, 133, 255, 0.3) 0 0 15px;
}
.selected{
box-shadow: inset rgba(255, 0, 0, 0.3) 0 0 15px !important;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -1,23 +0,0 @@
html{
color: white;
text-shadow: black 1px 1px 1px;
background: #25262a;
}
#system>div>div,.control,.player,.popup,.avatar,.avatar2,.button{
background-color: #35373a;
}
#me{
background-color: #2b2d30;
}
.card{
background-color: #424346;
}
#paused{
background-color: rgba(0,0,0,0.5);
}
.player.selectable,.glow{
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;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

View File

@ -1,20 +0,0 @@
html{
color: rgba(0,0,0,0.3);
text-shadow: white 1px 1px 1px;
background: url('grid.png'),linear-gradient(#eeeeee, #fafafa) fixed;
}
#system>div>div,#me,.control,.player,.popup,.card,.avatar,.avatar2,.button{
border:1px solid #fff;
box-shadow:0px 1px 3px rgba(0,0,0,0.3);
background: linear-gradient(#eeeeee, #fafafa);
border-radius: 8px;
}
#paused{
background-color: rgba(255,255,255,0.5);
}
.player.selectable,.glow{
box-shadow:0 1px 10px rgba(0,133,255,0.3);
}
.selected{
box-shadow:0 1px 10px rgba(255,0,0,0.3) !important;
}