This commit is contained in:
libccy 2015-11-26 16:15:28 +08:00
parent abf2cde699
commit 18cb652aa1
13 changed files with 336 additions and 105 deletions

View File

@ -1,6 +1,7 @@
1.6.0
低性能模式优化
双击换肤
新手向导
录像声音
1.6.1
bug修复
本轮不无懈按钮
选将数、牌堆选项
皮肤、珠联璧合提示
3v3主公技
高亮颜色选项

View File

@ -16,7 +16,7 @@ card.hearth={
ai:{
basic:{
order:5,
value:[5,1],
value:[6,1],
useful:2,
},
result:{

View File

@ -285,7 +285,7 @@ card.qimou={
return 0;
},
useful:3,
value:7
value:4
}
},
},

View File

@ -651,9 +651,11 @@ card.shenqi={
kongdongyin_info:'令你抵挡一次死亡将体力回复至1并摸一张牌发动后进入弃牌堆',
//kunlunjing_info:'回合开始前,你可以令场上所有牌还原到你上一回合结束后的位置,然后流失一点体力',
nvwashi_info:'意一名角色濒死时,你可以令其进行一次判定,若结果为红桃,其回复一点体力',
kongxin_info:'出牌阶段限一次,你可以与一名其他角色进行拼点,若你赢,你可以指定另一名角色视为对方对该角色使用一张杀,否则对方可弃置你一张处于',
kongxin_info:'出牌阶段限一次,你可以与一名其他角色进行拼点,若你赢,你可以指定另一名角色视为对方对该角色使用一张杀,否则对方可弃置你一张牌',
fuxiqin_info:'出牌阶段限一次,你可以与一名其他角色进行拼点,若你赢,你可以指定另一名角色视为对方对该角色使用一张杀,否则对方可弃置你一张牌',
lianyaohu_info:'当一名其他角色于回合外弃置的卡牌进入弃牌堆后,你将其放入炼妖壶(每回合只发动一次);出牌阶段限一次,你可以弃置两张炼妖壶中的牌,从牌堆中获得一张与弃置的牌类别均不相同的牌',
fuxiqin_info:'出牌阶段你可以选择一名角色并流失X点体力然后获得其控制权直到其首次进入濒死状态X为该角色当前的体力值',
// fuxiqin_info:'出牌阶段你可以选择一名角色并流失X点体力然后获得其控制权直到其首次进入濒死状态X为该角色当前的体力值',
// fuxiqin_info:'',
},
list:[
// ['diamond',13,'donghuangzhong'],

View File

@ -1272,7 +1272,8 @@ card.standard={
event.state=true;
event.card=trigger.card;
"step 1"
if(ui.wuxie.classList.contains('glow')&&!_status.auto){
if((ui.wuxie.classList.contains('glow')||(ui.tempnowuxie&&
ui.tempnowuxie.classList.contains('glow')))&&!_status.auto){
if(event.current==game.me||event.current.isUnderControl()){
event._result={bool:false};
return;
@ -1316,7 +1317,7 @@ card.standard={
str+='失效';
}
str+=',是否无懈?';
event.current.chooseToUse({
var nevt=event.current.chooseToUse({
filterCard:function(card,player){
if(card.name!='wuxie') return false;
var mod=game.checkMod(card,player,'unchanged','cardEnabled',player.get('s'));
@ -1344,6 +1345,12 @@ card.standard={
source:event.source,
source2:event.source2
});
if(nevt.isMine()&&!trigger.multitarget){
if(trigger.targets.length>1&&!ui.tempnowuxie){
ui.tempnowuxie=ui.create.control('本轮不无懈',ui.click.tempnowuxie);
ui.tempnowuxie._origin=trigger.parent;
}
}
"step 2"
if(result.bool){
event.end=event.current;

View File

@ -218,7 +218,7 @@ character.diy={
return true;
},
filterTarget:function(card,player,target){
return target.sex=='male';
return target.sex=='male'&&player!=target;
},
content:function(){
"step 0"

View File

@ -1176,14 +1176,16 @@ character.sp={
trigger:{player:'phaseEnd'},
forced:true,
content:function(){
player.unmark(player.storage.zhoufu2.name);
if(player.storage.zhoufu3.isAlive()){
player.storage.zhoufu3.gain(player.storage.zhoufu2);
player.$give(player.storage.zhoufu2,player.storage.zhoufu3);
game.delay();
}
else{
ui.discardPile.appendChild(player.storage.zhoufu2);
if(player.storage.zhoufu2){
player.unmark(player.storage.zhoufu2.name);
if(player.storage.zhoufu3.isAlive()){
player.storage.zhoufu3.gain(player.storage.zhoufu2);
player.$give(player.storage.zhoufu2,player.storage.zhoufu3);
game.delay();
}
else{
ui.discardPile.appendChild(player.storage.zhoufu2);
}
}
player.removeSkill('zhoufu2');
delete player.storage.zhoufu2;

View File

@ -56,6 +56,55 @@ character.swd={
swd_muyue:['female','wei',3,['xingzhui','lingxian','shouyin']],
swd_ziqiao:['female','shu',3,['guaili','fuyan']],
swd_fengyu:['male','shu',4,['zhenwei','shangxi']],
// swd_wushi:['male','wei',3,['zhoufu','yingbin','xuying']],
// swd_lanmoshen:['female','wei',3,['bingjian','lieren']],
swd_huanglei:['male','qun',3,['jilve','gongshen']],
// swd_libai:['female','qun',3,['miaobi','zhexian']],
// swd_kendi:['male','qun',3,['guanxing','jianyan']],
// swd_lijing:['male','qun',4,['tianyi','zhuhai']],
// swd_lilian:['female','qun',3,['swd_wuxie','qingcheng']],
// swd_linming:['male','qun',3,['shelie','bifa']],
// swd_philis:['male','qun',4,['yicong','wangxi']],
// swd_pepin:['male','qun',4,['rejianxiong','quhu']],
swd_kangnalishi:['male','qun',1,['busi','xuying','yinguo']],
swd_xuanyuanjiantong:['male','qun',3,['chengjian','huanling']],
// swd_huiyan:['male','qun',3,['wendao','xiaozhan','xunzhi']],
// swd_chenfu:['male','qun',4,['xuanzhou','bingfeng']],
// swd_chengyaojin:['male','qun',4,['jiuchi','jufu']],
swd_shanxiaoxiao:['female','wu',3,['shehun','xiaomoyu']],
swd_yuchiyanhong:['female','shu',3,['huanxing','meihuo']],
// swd_hanteng:['male','qun',4,['kuangfu']],
// swd_heran:['male','qun',3,['yujian','guiyin','shejie']],
// swd_xingtian:['male','qun',8,[]],
// swd_qinshubao:['male','qun',3,['huajing','pingxu']],
// swd_tuobayueer:['female','shu',3,['shushen','biyue']],
// swd_yangshuo:['male','qun',4,['longdan','luomu']],
// swd_zhanglie:['male','qun',4,['huajin','poxiao']],
swd_hanluo:['male','qun',5,['hzhenwei']],
swd_fu:['male','qun',5,['yudun','paoxiao']],
swd_linyue:['male','wei',3,['zhenjiu','mazui']],
swd_zidashu:['male','wu',3,['shoulie','hudun']],
swd_maixing:['male','wu',3,['toudan','shending']],
swd_fuyan:['male','qun',4,['lianda']],
swd_haidapang:['female','wu',3,['bingjian','rumeng']],
swd_shaowei:['female','shu',3,['jianji','huangyu']],
swd_youzhao:['male','shu',4,['longdan','yuchen']],
// swd_qingming:['male','shu',3,['mingfu','tianlun']],
swd_shangzhang:['male','shu',4,['lianwu']],
swd_situqiang:['female','shu',3,['qingnang','chulao']],
swd_chunyuheng:['male','wei',2,['jueqing','shengshou','xuying']],
swd_hanlong:['male','wei',4,['ciqiu','siji']],
swd_yuli:['female','wu',3,['lingxin','tianxiang']],
swd_zhanggao:['male','wei',4,['yicong','poxing']],
swd_hupo:['male','wu',3,['dunxing','guiying']],
swd_jiangziya:['male','wu',3,['mingfu','tianlun']],
},
perfectPair:{
swd_fengtianling:['swd_huyue','swd_jiting'],

View File

@ -1,52 +1,5 @@
character.xswd={
character:{
// swd_wushi:['male','wei',3,['zhoufu','yingbin','xuying']],
// swd_lanmoshen:['female','wei',3,['bingjian','lieren']],
swd_huanglei:['male','qun',3,['jilve','gongshen']],
// swd_libai:['female','qun',3,['miaobi','zhexian']],
// swd_kendi:['male','qun',3,['guanxing','jianyan']],
// swd_lijing:['male','qun',4,['tianyi','zhuhai']],
// swd_lilian:['female','qun',3,['swd_wuxie','qingcheng']],
// swd_linming:['male','qun',3,['shelie','bifa']],
// swd_philis:['male','qun',4,['yicong','wangxi']],
// swd_pepin:['male','qun',4,['rejianxiong','quhu']],
swd_kangnalishi:['male','qun',1,['busi','xuying','yinguo']],
swd_xuanyuanjiantong:['male','qun',3,['chengjian','huanling']],
// swd_huiyan:['male','qun',3,['wendao','xiaozhan','xunzhi']],
// swd_chenfu:['male','qun',4,['xuanzhou','bingfeng']],
// swd_chengyaojin:['male','qun',4,['jiuchi','jufu']],
swd_shanxiaoxiao:['female','wu',3,['shehun','xiaomoyu']],
swd_yuchiyanhong:['female','shu',3,['huanxing','meihuo']],
// swd_hanteng:['male','qun',4,['kuangfu']],
// swd_heran:['male','qun',3,['yujian','guiyin','shejie']],
// swd_xingtian:['male','qun',8,[]],
// swd_qinshubao:['male','qun',3,['huajing','pingxu']],
// swd_tuobayueer:['female','shu',3,['shushen','biyue']],
// swd_yangshuo:['male','qun',4,['longdan','luomu']],
// swd_zhanglie:['male','qun',4,['huajin','poxiao']],
swd_hanluo:['male','qun',5,['hzhenwei']],
swd_fu:['male','qun',5,['yudun','paoxiao']],
swd_linyue:['male','wei',3,['zhenjiu','mazui']],
swd_zidashu:['male','wu',3,['shoulie','hudun']],
swd_maixing:['male','wu',3,['toudan','shending']],
swd_fuyan:['male','qun',4,['lianda']],
swd_haidapang:['female','wu',3,['bingjian','rumeng']],
swd_shaowei:['female','shu',3,['jianji','huangyu']],
swd_youzhao:['male','shu',4,['longdan','yuchen']],
// swd_qingming:['male','shu',3,['mingfu','tianlun']],
swd_shangzhang:['male','shu',4,['lianwu']],
swd_situqiang:['female','shu',3,['qingnang','chulao']],
swd_chunyuheng:['male','wei',2,['jueqing','shengshou','xuying']],
swd_hanlong:['male','wei',4,['ciqiu','siji']],
swd_yuli:['female','wu',3,['lingxin','tianxiang']],
swd_zhanggao:['male','wei',4,['yicong','poxing']],
swd_hupo:['male','wu',3,['dunxing','guiying']],
swd_jiangziya:['male','wu',3,['mingfu','tianlun']],
},
}

View File

@ -1103,7 +1103,7 @@ character.yijiang={
clone.delete();
game.addVideo('deletenode',player,get.cardsInfo([clone]));
}
player.gainPlayerCard(target,true);
player.gainPlayerCard(target,true,'he');
}
else{
player.$gain2(event.card1);

View File

@ -118,7 +118,8 @@
touchscreen:{
name:'触屏模式',
init:false,
restart:true
restart:true,
unfrequent:true,
},
change_skin:{
name:'双击换肤',
@ -668,6 +669,11 @@
init:true,
unfrequent:true,
},
die_flip:{
name:'阵亡效果',
init:true,
unfrequent:true,
},
animation:{
name:'游戏特效',
init:true,
@ -3273,6 +3279,10 @@
}
"step 6"
if(event.card.name!='wuxie') ui.clear();
if(ui.tempnowuxie&&ui.tempnowuxie._origin==event){
ui.tempnowuxie.close();
delete ui.tempnowuxie;
}
},
useSkill:function(){
"step 0"
@ -3932,6 +3942,10 @@
game.addVideo('diex',player);
player.$die(source);
if(player.dieAfter) player.dieAfter(source);
if(ui.tempnowuxie&&ui.tempnowuxie._origin&&ui.tempnowuxie._origin.player==player){
ui.tempnowuxie.close();
delete ui.tempnowuxie;
}
},
equip:function(){
"step 0"
@ -7043,28 +7057,30 @@
},
$die:function(){
game.addVideo('die',this);
var top0=ui.window.offsetHeight/2;
var left0=ui.window.offsetWidth/2;
var ratio=(left0-this.offsetLeft)/(top0-this.offsetTop);
var left=Math.abs(50*ratio/Math.sqrt(1+ratio*ratio));
var top=Math.abs(50/Math.sqrt(1+ratio*ratio));
if(left0-this.offsetLeft>0) left=-left;
if(top0-this.offsetTop>0) top=-top;
if(lib.isMobileMe(this)){
left=-Math.random()*5-10;
top=Math.random()*5+10;
if(lib.config.die_flip){
var top0=ui.window.offsetHeight/2;
var left0=ui.window.offsetWidth/2;
var ratio=(left0-this.offsetLeft)/(top0-this.offsetTop);
var left=Math.abs(50*ratio/Math.sqrt(1+ratio*ratio));
var top=Math.abs(50/Math.sqrt(1+ratio*ratio));
if(left0-this.offsetLeft>0) left=-left;
if(top0-this.offsetTop>0) top=-top;
if(lib.isMobileMe(this)){
left=-Math.random()*5-10;
top=Math.random()*5+10;
}
var transform='translate('+left+'px,'+top+'px) '+
'rotate('+(Math.random()*20-10)+'deg) '+
((Math.random()-0.5<0)?'rotateX(180deg)':'rotateY(180deg)');
if(lib.isMobileMe(this)){
this.node.avatar.style.transform=transform;
this.node.avatar2.style.transform=transform;
}
else{
this.style.transform=transform;
}
this.queue(false);
}
var transform='translate('+left+'px,'+top+'px) '+
'rotate('+(Math.random()*20-10)+'deg) '+
((Math.random()-0.5<0)?'rotateX(180deg)':'rotateY(180deg)');
if(lib.isMobileMe(this)){
this.node.avatar.style.transform=transform;
this.node.avatar2.style.transform=transform;
}
else{
this.style.transform=transform;
}
this.queue(false);
},
$phaseJudge:function(card){
game.addVideo('phaseJudge',this,get.cardInfo(card));
@ -13587,7 +13603,7 @@
var perserveMenu=false;
game.print=function(){
for(var i=0;i<arguments.length;i++){
if(arguments[i]){
if(arguments[i]!==undefined){
textstr+=arguments[i]+' '
}
}
@ -14431,6 +14447,195 @@
if(_status.dragged) return;
game.swapPlayer(this.link);
},
windowtouchstart:function(e){
_status.mousedown=true;
if(e.path){
for(var i=0;i<e.path.length;i++){
var itemtype=get.itemtype(e.path[i]);
if(itemtype=='button') break;
if(itemtype=='dialog'&&
!e.path[i].classList.contains('popped')&&
!e.path[i].classList.contains('fixed')){
var ddialog=e.path[i];
_status.draggingdialog=ddialog;
ddialog._dragorigin=e;
if(!ddialog._dragtransform){
ddialog._dragtransform=[0,0];
}
return;
}
}
}
var evt=_status.event;
if(!lib.config.enable_drag) return;
if(!ui.arena.classList.contains('selecting')) return;
if(!evt.isMine()) return;
if(!Array.isArray(e.path)) return;
for(var i=0;i<e.path.length;i++){
var itemtype=get.itemtype(e.path[i]);
if(itemtype=='card'||itemtype=='button'||itemtype=='player'){
if(e.path[i].classList.contains('selectable')&&
!e.path[i].classList.contains('selected')&&
!e.path[i].classList.contains('noclick')){
_status.clicked=false;
ui.click[itemtype].call(e.path[i]);
if(e.path[i].classList.contains('selected')){
_status.mousedragging=e.touches[0];
_status.mousedragorigin=e.path[i];
_status.mouseleft=false;
_status.selectionfull=false;
_status.multitarget=false;
// if(ui.confirm&&ui.confirm.str=='c') ui.confirm.close();
}
}
return;
}
}
},
windowtouchmove:function(e){
if(!Array.isArray(e.path)) return;
var dialogs=document.querySelectorAll('#window>.dialog.popped:not(.static)');
for(var i=0;i<dialogs.length;i++){
dialogs[i].delete();
}
var node=_status.currentmouseenter;
if(_status.mousedragging){
e.preventDefault();
ui.canvas.width=ui.arena.offsetWidth;
ui.canvas.height=ui.arena.offsetHeight;
var ctx=ui.ctx;
ctx.shadowBlur=5;
ctx.shadowColor='rgba(0,0,0,0.3)';
ctx.strokeStyle='white';
ctx.lineWidth=3;
ctx.setLineDash([8,2]);
ctx.beginPath();
ctx.moveTo(_status.mousedragging.clientX-ui.arena.offsetLeft,_status.mousedragging.clientY-ui.arena.offsetTop);
if(_status.multitarget){
for(var i=0;i<_status.lastdragchange.length;i++){
var exy=_status.lastdragchange[i]._lastdragchange;
ctx.lineTo(exy[0],exy[1]);
}
}
if(!_status.selectionfull){
ctx.lineTo(e.touches[0].clientX-ui.arena.offsetLeft,e.touches[0].clientY-ui.arena.offsetTop);
}
ctx.stroke();
if(!_status.multitarget){
for(var i=0;i<_status.lastdragchange.length;i++){
ctx.moveTo(_status.mousedragging.clientX-ui.arena.offsetLeft,_status.mousedragging.clientY-ui.arena.offsetTop);
var exy=_status.lastdragchange[i]._lastdragchange;
ctx.lineTo(exy[0],exy[1]);
ctx.stroke();
}
}
for(var i=0;i<e.path.length;i++){
// e.path.contains(_status.mousedragorigin)===true
if(e.path[i]==_status.mousedragorigin){
if(_status.mouseleft){
_status.mousedragging=null;
_status.mousedragorigin=null;
_status.clicked=false;
game.uncheck();
game.check();
ui.canvas.width=ui.arena.offsetWidth;
ui.canvas.height=ui.arena.offsetHeight;
_status.clicked=true;
}
return;
}
game.print(2);
var itemtype=get.itemtype(e.path[i]);
if(itemtype=='card'||itemtype=='button'||itemtype=='player'){
_status.mouseleft=true;
var item=e.path[i];
var ex=e.touches[0].clientX-ui.arena.offsetLeft;
var ey=e.touches[0].clientY-ui.arena.offsetTop;
var exx=ex,eyy=ey;
if(lib.config.mode=='chess'){
ex-=-ui.chessContainer.scrollLeft+ui.chess.offsetLeft;
ey-=-ui.chessContainer.scrollTop+ui.chess.offsetTop;
}
if(itemtype!='player'||(ex>item.offsetLeft&&ex<item.offsetLeft+item.offsetWidth&&
ey>item.offsetTop&&ey<item.offsetTop+item.offsetHeight)){
var targetfixed=false;
if(itemtype=='player'){
if(get.select(_status.event.selectTarget)[1]==-1){
targetfixed=true;
}
}
if(!targetfixed&&item.classList.contains('selectable')&&_status.dragstatuschanged!=item){
_status.mouseleft=true;
_status.dragstatuschanged=item;
_status.clicked=false;
var notbefore=itemtype=='player'&&!item.classList.contains('selected');
ui.click[itemtype].call(item);
if(item.classList.contains('selected')){
if(notbefore){
_status.lastdragchange.push(item);
e.path[i]._lastdragchange=[exx,eyy];
}
}
else{
_status.lastdragchange.remove(item);
}
_status.selectionfull=true;
if(_status.event.filterButton&&ui.selected.buttons.length<get.select(_status.event.selectButton)[1]){
_status.selectionfull=false;
}
else if(_status.event.filterCard&&ui.selected.cards.length<get.select(_status.event.selectCard)[1]){
_status.selectionfull=false;
}
else if(_status.event.filterTarget&&ui.selected.targets.length<get.select(_status.event.selectTarget)[1]){
_status.selectionfull=false;
}
}
}
return;
}
}
_status.mouseleft=true;
_status.dragstatuschanged=null;
}
e.preventDefault();
},
windowtouchend:function(e){
if(e.touches.length==1&&!_status.dragged){
ui.click.pause();
}
else{
var tmpflag=false;
_status.mousedown=false;
if(_status.mousedragging&&_status.mouseleft){
if(game.check()){
if(ui.confirm){
ui.confirm.close();
}
ui.click.ok();
}
else{
game.uncheck();
game.check();
}
}
else if(_status.mousedragging&&_status.mousedragorigin){
tmpflag=_status.mousedragorigin;
}
_status.lastdragchange.length=0;
_status.mousedragging=null;
_status.mouseleft=false;
_status.mousedragorigin=null;
_status.dragstatuschanged=false;
ui.canvas.width=ui.arena.offsetWidth;
ui.canvas.height=ui.arena.offsetHeight;
if(tmpflag){
ui.click[get.itemtype(tmpflag)].call(tmpflag);
game.check();
}
}
},
windowmousewheel:function(e){
_status.tempunpopup=e;
},
@ -15313,6 +15518,15 @@
ui.click.cancel(ui.confirm.lastChild);
}
},
tempnowuxie:function(){
if(this.classList.contains('hidden')) return;
this.classList.toggle('glow');
if(this.classList.contains('glow')&&
(_status.event.parent.name=='_wuxie1'||_status.event.parent.name=='_wuxie2')&&
_status.event.isMine()&&ui.confirm){
ui.click.cancel(ui.confirm.lastChild);
}
},
pause:function(){
if(_status.paused2) return;
ui.system.hide();
@ -15438,6 +15652,7 @@
_status.dragged=false;
},
touchScroll:function(e) {
if(_status.mousedragging) return;
if(!_status.dragged){
if (Math.abs(e.touches[0].clientX - this.startX) > 10 ||
Math.abs(e.touches[0].clientY - this.startY) > 10) {
@ -18376,18 +18591,18 @@
document.oncontextmenu=ui.click.right;
}
else{
document.ontouchstart=ui.click.windowmousedown;
document.ontouchend=ui.click.windowmousemove;
document.ontouchmove=ui.click.windowmousemove;
// document.ontouchstart=ui.click.windowtouchstart;
// document.ontouchend=ui.click.windowtouchend;
// document.ontouchmove=ui.click.windowtouchmove;
document.ontouchend=function(e){
if(e.touches.length==1&&!_status.dragged){
ui.click.pause();
}
}
document.ontouchmove = function(e) {
e.preventDefault();
};
}
// document.ontouchend=function(e){
// if(e.touches.length==1&&!_status.dragged){
// ui.click.pause();
// }
// }
// document.ontouchmove = function(e) {
// e.preventDefault();
// };
window.onbeforeunload=function(){
if(lib.config.confirm_exit&&!_status.reloading){
return '是否离开游戏?'

View File

@ -15,7 +15,6 @@ character.pack={
yxs:'英雄杀',
hearth:'炉石传说',
swd:'轩辕剑',
xswd:'轩辕剑2',
gujian:'古剑奇谭',
xianjian:'仙剑',
xiake:'侠客',

View File

@ -489,6 +489,9 @@ margin-bottom: 5px;
.identity{text-align: center;width: 22px;height: 22px;}
.identity>div{position: relative;top: 2px;}
.unseen>.avatar,.unseen>.name,.unseen2>.avatar2{opacity: 0 !important;}
.player[data-position='0'].unseen>.avatar,
.player[data-position='0'].unseen2>.avatar2,
.player[data-position='0']>.name{opacity: 0.2 !important}
.linked>.avatar,.linked>.avatar2{transform:rotate(-90deg);}
.linked>.avatar2{top: 5px;}
.linked>.identity{top: 88px;}
@ -728,7 +731,7 @@ div:hover>.intro{opacity: 1;}
0 10px 10px -9px rgba(0,0,0,0.1),0 10px 0 -9px rgba(0,0,0,0.05);}*/
.selected,.target{/*transform: scale(1.05);*/}
/*.player.target{-webkit-filter:brightness(1.2)}*/
.target{transform: rotate(-3deg);}
.target{transform: rotate(-3deg);box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(255, 0, 0, 0.8) 0 0 15px !important;}
.target2{transform: rotate(3deg);}
.content>.config.line2{
transform:translateX(-5px);