noname/mode/brawl.js

1160 lines
51 KiB
JavaScript
Raw Normal View History

2016-08-15 14:19:58 +00:00
'use strict';
mode.brawl={
start:function(){
2016-08-16 10:56:29 +00:00
var dialog=ui.create.dialog();
dialog.classList.add('fixed');
dialog.classList.add('scroll1');
dialog.classList.add('scroll2');
dialog.classList.add('fullwidth');
dialog.classList.add('fullheight');
dialog.classList.add('noupdate');
dialog.classList.add('character');
dialog.contentContainer.style.overflow='visible';
dialog.style.overflow='hidden';
dialog.content.style.height='100%';
dialog.contentContainer.style.transition='all 0s';
var packnode=ui.create.div('.packnode',dialog);
lib.setScroll(packnode);
var clickCapt=function(){
var active=this.parentNode.querySelector('.active');
if(active){
2016-08-18 10:51:06 +00:00
if(active==this) return;
2016-08-16 10:56:29 +00:00
for(var i=0;i<active.nodes.length;i++){
active.nodes[i].remove();
if(active.nodes[i].showcaseinterval){
clearInterval(active.nodes[i].showcaseinterval);
delete active.nodes[i].showcaseinterval;
}
}
active.classList.remove('active');
}
this.classList.add('active');
for(var i=0;i<this.nodes.length;i++){
dialog.content.appendChild(this.nodes[i]);
}
var showcase=this.nodes[this.nodes.length-1];
showcase.style.height=(dialog.content.offsetHeight-showcase.offsetTop)+'px';
if(typeof showcase.action=='function'){
showcase.action(showcase._showcased?false:true);
showcase._showcased=true;
}
2016-08-18 10:51:06 +00:00
if(this._nostart) start.style.display='none';
else start.style.display='';
2016-08-16 11:58:30 +00:00
game.save('currentBrawl',this.link);
2016-08-16 10:56:29 +00:00
}
var createNode=function(name){
var info=lib.brawl[name];
var node=ui.create.div('.dialogbutton.menubutton.large',info.name,packnode,clickCapt);
var caption=get.translation(info.mode)+'模式';
if(info.submode){
caption+=' - '+info.submode;
}
var intro;
if(Array.isArray(info.intro)){
intro='<ul style="text-align:left;margin-top:0;width:450px">';
for(var i=0;i<info.intro.length;i++){
intro+='<li>'+info.intro[i];
}
}
else{
intro=info.intro;
}
var showcase=ui.create.div();
showcase.style.margin='0px';
showcase.style.padding='0px';
showcase.style.width='100%';
showcase.style.display='block'
showcase.action=info.showcase;
node.nodes=[
ui.create.div('.caption',caption),
ui.create.div('.text center',intro),
showcase
];
node.link=name;
2016-08-18 10:51:06 +00:00
node._nostart=info.nostart;
2016-08-16 11:58:30 +00:00
if(lib.storage.currentBrawl==name){
clickCapt.call(node);
}
2016-08-16 10:56:29 +00:00
return node;
}
var start=ui.create.div('.menubutton.round.highlight','斗',dialog.content,function(){
var active=packnode.querySelector('.active');
if(active){
for(var i=0;i<active.nodes.length;i++){
if(active.nodes[i].showcaseinterval){
clearInterval(active.nodes[i].showcaseinterval);
delete active.nodes[i].showcaseinterval;
}
}
dialog.delete();
var info=lib.brawl[active.link];
ui.brawlinfo=ui.create.system('乱斗',null,true);
lib.setPopped(ui.brawlinfo,function(){
var uiintro=ui.create.dialog('hidden');
uiintro.add(info.name);
uiintro.add('<div class="text center">'+active.nodes[1].innerHTML+'</div>');
var ul=uiintro.querySelector('ul');
if(ul){
ul.style.width='180px';
}
uiintro.add(ui.create.div('.placeholder'));
return uiintro;
},250);
_status.brawl=info.content;
game.switchMode(info.mode);
if(info.init){
info.init();
}
}
});
start.style.position='absolute';
start.style.left='auto';
start.style.right='10px';
start.style.top='auto';
start.style.bottom='10px';
start.style.width='80px';
start.style.height='80px';
start.style.lineHeight='80px';
2016-08-16 16:25:34 +00:00
start.style.margin='0';
start.style.padding='5px';
2016-08-16 10:56:29 +00:00
start.style.fontSize='72px';
2016-08-16 16:25:34 +00:00
start.style.zIndex=3;
start.style.transition='all 0s';
2016-08-18 10:51:06 +00:00
for(var i in lib.brawl){
createNode(i);
}
if(!lib.storage.currentBrawl){
clickCapt.call(packnode.firstChild);
}
2016-08-16 10:56:29 +00:00
},
brawl:{
duzhansanguo:{
name:'毒战三国',
mode:'identity',
intro:'牌堆中额外添加10%的毒',
2016-08-16 16:25:34 +00:00
showcase:function(init){
2016-08-16 10:56:29 +00:00
var node=this;
2016-08-16 16:25:34 +00:00
var func=function(){
2016-08-18 13:48:50 +00:00
var card=game.createCard('du','noclick');
2016-08-16 10:56:29 +00:00
node.nodes.push(card);
card.style.position='absolute';
var rand1=Math.round(Math.random()*100);
var rand2=Math.round(Math.random()*100);
2016-08-16 16:25:34 +00:00
var rand3=Math.round(Math.random()*40)-20;
2016-08-16 10:56:29 +00:00
card.style.left='calc('+rand1+'% - '+rand1+'px)';
card.style.top='calc('+rand2+'% - '+rand2+'px)';
2016-08-16 11:58:30 +00:00
card.style.transform='scale(0.8) rotate('+rand3+'deg)';
2016-08-16 10:56:29 +00:00
card.style.opacity=0;
node.appendChild(card);
ui.refresh(card);
card.style.opacity=1;
2016-08-16 11:58:30 +00:00
card.style.transform='scale(1) rotate('+rand3+'deg)';
2016-08-16 10:56:29 +00:00
if(node.nodes.length>7){
setTimeout(function(){
while(node.nodes.length>5){
node.nodes.shift().delete();
}
},500);
}
2016-08-16 16:25:34 +00:00
};
if(init){
node.nodes=[];
for(var i=0;i<5;i++){
func();
}
}
node.showcaseinterval=setInterval(func,1000);
2016-08-16 10:56:29 +00:00
},
content:{
cardPile:function(list){
var num=Math.ceil(list.length/10);
while(num--){
list.push([['heart','diamond','club','spade'].randomGet(),Math.ceil(Math.random()*13),'du']);
}
return list;
}
},
},
daozhiyueying:{
name:'导师月英',
mode:'identity',
intro:'牌堆中所有非延时锦囊牌数量翻倍;移除拥有集智技能的角色',
showcase:function(init){
var node=this;
var player1,player2;
if(init){
2016-08-18 13:48:50 +00:00
player1=ui.create.player(null,true).init('huangyueying');
player2=ui.create.player(null,true).init('re_huangyueying');
2016-08-16 10:56:29 +00:00
player1.style.left='20px';
player1.style.top='20px';
player1.style.transform='scale(0.9)';
2016-08-16 11:58:30 +00:00
player1.node.count.innerHTML='2';
player1.node.count.dataset.condition='mid';
2016-08-16 10:56:29 +00:00
player2.style.left='auto';
player2.style.right='20px';
player2.style.top='20px';
player2.style.transform='scale(0.9)';
2016-08-16 11:58:30 +00:00
player2.node.count.innerHTML='2';
player2.node.count.dataset.condition='mid';
2016-08-16 10:56:29 +00:00
this.appendChild(player1);
this.appendChild(player2);
this.player1=player1;
this.player2=player2;
}
else{
player1=this.player1;
player2=this.player2;
}
var rect1=player1.getBoundingClientRect();
var rect2=player2.getBoundingClientRect();
var left1=rect1.left+rect1.width/2-ui.arena.offsetLeft;
var left2=rect2.left+rect2.width/2-ui.arena.offsetLeft;
var top1=rect1.top+rect1.height/2-ui.arena.offsetTop;
var top2=rect2.top+rect2.height/2-ui.arena.offsetTop;
2016-08-16 11:58:30 +00:00
var createCard=function(wuxie){
var card;
if(wuxie){
2016-08-18 13:48:50 +00:00
card=game.createCard('wuxie','noclick');
2016-08-16 11:58:30 +00:00
card.style.transform='scale(0.9)';
}
else{
2016-08-18 13:48:50 +00:00
card=ui.create.card(null,'noclick',true);
2016-08-16 11:58:30 +00:00
}
card.style.opacity=0;
card.style.position='absolute';
card.style.zIndex=2;
card.style.margin=0;
return card;
}
var func=function(){
2016-08-16 10:56:29 +00:00
game.linexy([left1,top1,left2,top2]);
2016-08-16 11:58:30 +00:00
var card=createCard(true);
card.style.left='43px';
card.style.top='58px';
node.appendChild(card);
ui.refresh(card);
card.style.opacity=1;
card.style.transform='scale(0.9) translate(137px,152px)';
setTimeout(function(){
card.delete();
},1000);
player1.node.count.innerHTML='1';
setTimeout(function(){
if(!node.showcaseinterval) return;
player1.node.count.innerHTML='2';
var card=createCard();
card.style.left='43px';
card.style.top='58px';
card.style.transform='scale(0.9) translate(137px,152px)';
node.appendChild(card);
ui.refresh(card);
card.style.opacity=1;
card.style.transform='scale(0.9)';
setTimeout(function(){
card.delete();
},1000);
},300);
setTimeout(function(){
if(!node.showcaseinterval) return;
player2.node.count.innerHTML='1';
game.linexy([left2,top2,left1,top1]);
var card=createCard(true);
card.style.left='auto';
card.style.right='43px';
card.style.top='58px';
node.appendChild(card);
ui.refresh(card);
card.style.opacity=1;
card.style.transform='scale(0.9) translate(-137px,152px)';
setTimeout(function(){
card.delete();
},700);
setTimeout(function(){
if(!node.showcaseinterval) return;
player2.node.count.innerHTML='2';
var card=createCard();
card.style.left='auto';
card.style.right='43px';
card.style.top='58px';
card.style.transform='scale(0.9) translate(-137px,152px)';
node.appendChild(card);
ui.refresh(card);
card.style.opacity=1;
card.style.transform='scale(0.9)';
setTimeout(function(){
card.delete();
},700);
},300);
},1000);
};
node.showcaseinterval=setInterval(func,2200);
func();
2016-08-16 10:56:29 +00:00
},
init:function(){
for(var i in lib.character){
var skills=lib.character[i][3]
if(skills.contains('jizhi')||skills.contains('rejizhi')||skills.contains('lingzhou')){
delete lib.character[i];
}
}
},
content:{
cardPile:function(list){
var list2=[];
for(var i=0;i<list.length;i++){
list2.push(list[i]);
if(get.type(list[i][2])=='trick'){
list2.push(list[i]);
}
}
return list2;
}
}
},
weiwoduzun:{
name:'唯我独尊',
mode:'identity',
intro:[
2016-08-16 16:25:34 +00:00
'牌堆中杀的数量增加30%',
2016-08-16 10:56:29 +00:00
'游戏开始时,主公获得一枚战神标记',
'拥有战神标记的角色杀造成的伤害+1',
'受到杀造成的伤害后战神印记将移到伤害来源的武将牌上'
2016-08-16 16:25:34 +00:00
],
showcase:function(init){
var node=this;
var player;
if(init){
2016-08-18 13:48:50 +00:00
player=ui.create.player(null,true);
2016-08-16 16:25:34 +00:00
player.init('boss_lvbu2');
player.style.left='calc(50% - 75px)';
player.style.top='20px';
player.node.count.remove();
player.node.hp.remove();
player.style.transition='all 0.5s';
node.appendChild(player);
node.playernode=player;
}
else{
player=node.playernode;
}
var num=0;
var num2=0;
this.showcaseinterval=setInterval(function(){
var dx,dy
if(num2%3==0){
player.animate('target');
player.animate('zoomin');
}
num2++;
switch(num++){
2016-08-18 10:51:06 +00:00
case 0:dx=-180;dy=0;break;
case 1:dx=-140;dy=100;break;
2016-08-16 16:25:34 +00:00
case 2:dx=0;dy=155;break;
2016-08-18 10:51:06 +00:00
case 3:dx=140;dy=100;break;
case 4:dx=180;dy=0;break;
2016-08-16 16:25:34 +00:00
}
if(num>=5){
num=0;
}
2016-08-18 13:48:50 +00:00
var card=game.createCard('sha','noclick');
2016-08-16 16:25:34 +00:00
card.style.left='calc(50% - 52px)';
card.style.top='68px';
card.style.position='absolute';
card.style.margin=0;
card.style.zIndex=2;
card.style.opacity=0;
node.appendChild(card);
ui.refresh(card);
card.style.opacity=1;
card.style.transform='translate('+dx+'px,'+dy+'px)';
setTimeout(function(){
card.delete();
},700);
},700);
},
init:function(){
lib.skill.weiwoduzun={
mark:true,
intro:{
content:'杀造成的伤害+1'
},
group:['weiwoduzun_damage','weiwoduzun_lose'],
subSkill:{
damage:{
trigger:{source:'damageBegin'},
forced:true,
filter:function(event){
return event.card&&event.card.name=='sha'&&event.notLink();
},
content:function(){
trigger.num++;
}
},
lose:{
trigger:{player:'damageEnd'},
forced:true,
filter:function(event){
return event.source&&event.source.isAlive();
},
content:function(){
player.removeSkill('weiwoduzun');
trigger.source.addSkill('weiwoduzun');
}
}
}
};
lib.translate.weiwoduzun='战神';
lib.translate.weiwoduzun_bg='尊';
},
content:{
cardPile:function(list){
var num=0;
for(var i=0;i<list.length;i++){
if(list[i][2]=='sha') num++;
}
num=Math.round(num*0.3);
if(num<=0) return list;
while(num--){
var nature='';
var rand=Math.random();
if(rand<0.15){
nature='fire';
}
else if(rand<0.3){
nature='thunder';
}
var suit=['heart','spade','club','diamond'].randomGet();
var number=Math.ceil(Math.random()*13);
if(nature){
list.push([suit,number,'sha',nature]);
}
else{
list.push([suit,number,'sha']);
}
}
return list;
},
gameStart:function(){
if(_status.mode=='zhong'){
game.zhong.addSkill('weiwoduzun');
}
else{
game.zhu.addSkill('weiwoduzun');
}
}
}
2016-08-16 10:56:29 +00:00
},
tongxingzhizheng:{
name:'同姓之争',
mode:'versus',
submode:'2v2',
2016-08-16 16:25:34 +00:00
intro:'姓氏相同的武将组合一队',
showcase:function(init){
var node=this;
var getList=function(){
var list=[['guanyu','guanping','guansuo','guanyinping'],
['caocao','caopi','caozhi','caorui'],['liubei','liushan','liuchen'],
['xiahouyuan','xiahouba','xiahoushi'],['sunjian','sunquan','sunce'],
['zhangjiao','zhangliang','zhangbao'],['zhugeliang','zhugeguo','zhugejin','zhugeke'],
['mateng','machao','madai','mayunlu']];
list.randomSort();
var list2=[];
for(var i=0;i<list.length;i++){
list2=list2.concat(list[i]);
}
node.list=list2;
};
var func=function(){
if(!node.list.length){
getList();
}
2016-08-18 13:48:50 +00:00
var card=ui.create.player(null,true);
2016-08-16 16:25:34 +00:00
card.init(node.list.shift());
card.node.marks.remove();
card.node.count.remove();
card.node.hp.remove();
node.nodes.push(card);
card.style.position='absolute';
var rand1=Math.round(Math.random()*100);
var rand2=Math.round(Math.random()*100);
var rand3=Math.round(Math.random()*40)-20;
card.style.left='calc('+rand1+'% - '+(rand1*1.5)+'px)';
card.style.top='calc('+rand2+'% - '+(rand2*1.8)+'px)';
card.style.transform='scale(1.2) rotate('+rand3+'deg)';
card.style.opacity=0;
ui.refresh(card);
node.appendChild(card);
ui.refresh(card);
card.style.transform='scale(0.9) rotate('+rand3+'deg)';
card.style.opacity=1;
if(node.nodes.length>4){
setTimeout(function(){
while(node.nodes.length>3){
node.nodes.shift().delete();
}
},500);
}
};
node.list=[];
if(init){
node.nodes=[];
for(var i=0;i<3;i++){
func();
}
}
node.showcaseinterval=setInterval(func,1000);
},
init:function(){
var map={};
var map3=[];
var list1=['司','夏','诸'];
var list2=['马','侯','葛'];
var exclude=['界','新','大'];
for(var i in lib.character){
if(lib.filter.characterDisabled(i)) continue;
var surname=lib.translate[i];
for(var j=0;j<surname.length;j++){
if(exclude.contains(surname[j])) continue;
if(!/[a-z]/i.test(surname[j])){
var index=list1.indexOf(surname[j]);
if(index!=-1&&surname[j+1]==list2[index]){
surname=surname[j]+surname[j+1];
}
else{
surname=surname[j];
}
break;
}
}
if(!map[surname]){
map[surname]=[];
}
map[surname].push(i);
}
for(var i in map){
if(map[i].length<4){
delete map[i];
}
else{
map3.push(i);
}
}
_status.brawl.map=map;
_status.brawl.map3=map3;
},
content:{
submode:'two',
chooseCharacterFixed:true,
chooseCharacter:function(list,player){
if(player.side==game.me.side){
if(_status.brawl.mylist){
return _status.brawl.mylist.randomGets(2);
}
}
else{
if(_status.brawl.enemylist){
return _status.brawl.enemylist.randomGets(2);
}
}
var surname=_status.brawl.map3.randomRemove();
var list=_status.brawl.map[surname];
if(player==game.me){
_status.brawl.mylist=list;
}
else{
_status.brawl.enemylist=list;
}
return list.randomRemove(2);
}
}
2016-08-16 10:56:29 +00:00
},
tongqueduopao:{
name:'铜雀夺袍',
mode:'identity',
intro:[
'主公必选曹操',
'其余玩家从曹休、文聘、曹洪、张郃、夏侯渊、徐晃、许褚这些武将中随机选中一个',
'游戏开始时将麒麟弓和爪黄飞电各置于每名角色的装备区内,大宛马洗入牌堆,移除其他的武器牌和坐骑牌'
2016-08-16 16:25:34 +00:00
],
init:function(){
game.saveConfig('player_number','8','identity');
game.saveConfig('double_character',false,'identity');
},
showcase:function(init){
var node=this;
var list=['caoxiu','wenpin','caohong','zhanghe','xiahouyuan','xuhuang','re_xuzhu'];
list.randomSort();
list.push('re_caocao');
var func=function(){
2016-08-18 13:48:50 +00:00
var card=ui.create.player(null,true);
2016-08-16 16:25:34 +00:00
card.init(list.shift());
card.node.marks.remove();
card.node.count.remove();
card.node.hp.remove();
node.nodes.push(card);
card.style.position='absolute';
2016-08-18 10:51:06 +00:00
card.style.zIndex=2;
card.style.transition='all 2s';
2016-08-16 16:25:34 +00:00
var rand1=Math.round(Math.random()*100);
var rand2=Math.round(Math.random()*100);
var rand3=Math.round(Math.random()*40)-20;
card.style.left='calc('+rand1+'% - '+(rand1*1.5)+'px)';
card.style.top='calc('+rand2+'% - '+(rand2*1.8)+'px)';
card.style.transform='scale(0.8) rotate('+rand3+'deg)';
node.appendChild(card);
2016-08-18 10:51:06 +00:00
ui.refresh(card);
};
var list2=['qilin','dawan','zhuahuang'];
var func2=function(){
2016-08-18 13:48:50 +00:00
var card=game.createCard(list2.shift(),'noclick');
2016-08-18 10:51:06 +00:00
node.nodes.push(card);
card.style.position='absolute';
card.style.zIndex=2;
card.style.transition='all 2s';
var rand1=Math.round(Math.random()*100);
var rand2=Math.round(Math.random()*100);
var rand3=Math.round(Math.random()*40)-20;
card.style.left='calc('+rand1+'% - '+rand1+'px)';
card.style.top='calc('+rand2+'% - '+rand2+'px)';
card.style.transform='rotate('+rand3+'deg)';
node.appendChild(card);
ui.refresh(card);
2016-08-16 16:25:34 +00:00
};
2016-08-18 10:51:06 +00:00
2016-08-16 16:25:34 +00:00
if(init){
node.nodes=[];
}
else{
while(node.nodes.length){
node.nodes.shift().remove();
}
}
2016-08-18 10:51:06 +00:00
for(var i=0;i<5;i++){
func();
}
for(var i=0;i<3;i++){
func2();
2016-08-16 16:25:34 +00:00
func();
}
2016-08-18 10:51:06 +00:00
var func3=function(){
for(var i=0;i<node.nodes.length;i++){
var card=node.nodes[i];
if(card.classList.contains('player')){
var rand1=Math.round(Math.random()*100);
var rand2=Math.round(Math.random()*100);
var rand3=Math.round(Math.random()*40)-20;
card.style.left='calc('+rand1+'% - '+(rand1*1.5)+'px)';
card.style.top='calc('+rand2+'% - '+(rand2*1.8)+'px)';
card.style.transform='scale(0.8) rotate('+rand3+'deg)';
}
else{
var rand1=Math.round(Math.random()*100);
var rand2=Math.round(Math.random()*100);
var rand3=Math.round(Math.random()*40)-20;
card.style.left='calc('+rand1+'% - '+rand1+'px)';
card.style.top='calc('+rand2+'% - '+rand2+'px)';
card.style.transform='rotate('+rand3+'deg)';
}
}
}
func3();
node.showcaseinterval=setInterval(func3,5000);
2016-08-16 16:25:34 +00:00
},
content:{
cardPile:function(list){
for(var i=0;i<list.length;i++){
var subtype=get.subtype(list[i][2]);
if(subtype=='equip1'||subtype=='equip3'||subtype=='equip4'){
list.splice(i--,1);
}
}
for(var i=0;i<8;i++){
list.push([['heart','diamond','club','spade'].randomGet(),Math.ceil(Math.random()*13),'dawan']);
}
return list;
},
gameStart:function(){
for(var i=0;i<game.players.length;i++){
game.players[i].$equip(game.createCard('qilin'));
game.players[i].$equip(game.createCard('zhuahuang'));
}
},
submode:'normal',
list:['caoxiu','wenpin','caohong','zhanghe','xiahouyuan','xuhuang','re_xuzhu'],
chooseCharacterFixed:true,
chooseCharacterAi:function(player){
if(player==game.zhu){
player.init('re_caocao');
}
else{
_status.brawl.list.remove(game.me.name);
player.init(_status.brawl.list.randomRemove());
}
},
chooseCharacter:function(){
if(game.me==game.zhu){
return ['re_caocao'];
}
else{
2016-08-18 10:51:06 +00:00
_status.brawl.list.randomSort();
return _status.brawl.list;
// return _status.brawl.list.randomGets(1);
2016-08-16 16:25:34 +00:00
}
}
}
2016-08-16 10:56:29 +00:00
},
// shenrudihou:{
// name:'深入敌后',
// mode:'versus',
// submode:'1v1',
// intro:'选将阶段选择武将和对战阶段选择上场的武将都由对手替你选择,而且你不知道对手为你选择了什么武将'
// },
tongjiangmoshi:{
name:'同将模式',
mode:'identity',
2016-08-16 16:25:34 +00:00
intro:'玩家选择一个武将,所有角色均使用此武将',
showcase:function(init){
if(init){
this.nodes=[];
}
else{
while(this.nodes.length){
this.nodes.shift().remove();
}
}
var lx=this.offsetWidth/2-120;
var ly=Math.min(lx,this.offsetHeight/2-60);
var setPos=function(node){
var i=node.index;
var deg=Math.PI/4*i;
var dx=lx*Math.cos(deg);
var dy=ly*Math.sin(deg);
node.style.transform='translate('+dx+'px,'+dy+'px)';
}
for(var i=0;i<8;i++){
2016-08-18 13:48:50 +00:00
var node=ui.create.player(null,true);
2016-08-16 16:25:34 +00:00
this.nodes.push(node);
node.init('zuoci');
node.classList.add('minskin');
node.node.marks.remove();
node.node.hp.remove();
node.node.count.remove();
node.style.left='calc(50% - 60px)';
node.style.top='calc(50% - 60px)';
node.index=i;
setPos(node);
this.appendChild(node);
}
var nodes=this.nodes;
this.showcaseinterval=setInterval(function(){
for(var i=0;i<nodes.length;i++){
nodes[i].index++;
if(nodes[i].index>7){
nodes[i].index=0;
}
setPos(nodes[i]);
}
},1000);
},
content:{
gameStart:function(){
var target=(_status.mode=='zhong')?game.zhong:game.zhu;
if(get.config('double_character')){
target.init(game.me.name,game.me.name2);
}
else{
target.init(game.me.name);
}
target.hp++;
target.maxHp++;
target.update();
},
chooseCharacterAi:function(player,list,list2,back){
if(player==game.zhu){
return;
}
else{
if(get.config('double_character')){
player.init(game.me.name,game.me.name2);
}
else{
player.init(game.me.name);
}
}
},
chooseCharacter:function(list,list2,num){
if(game.me!=game.zhu){
return list.slice(0,list2);
}
else{
if(_status.event.zhongmode){
return list.slice(0,6);
}
else{
return list.concat(list2.slice(0,num));
}
}
}
}
2016-08-16 10:56:29 +00:00
},
2016-08-16 16:25:34 +00:00
// baiyudujiang:{
// name:'白衣渡江',
// mode:'versus',
// submode:'2v2',
// intro:[
// '玩家在选将时可从6-8张的武将牌里选择两张武将牌一张面向大家可见加入游戏另一张是隐藏面孔暗置',
// '选择的两张武将牌需满足以下至少两个条件1.性别相同2.体力上限相同3.技能数量相同',
// '每名玩家在其回合开始或回合结束时,可以选择将自己的武将牌弃置,然后使用暗置的武将牌进行剩余的游戏'
2016-08-18 10:51:06 +00:00
// ],
// content:{
// submode:'two',
// chooseCharacterNum:2,
// chooseCharacterAfter:function(){
//
// }
// }
2016-08-16 16:25:34 +00:00
// }
2016-08-18 10:51:06 +00:00
scene:{
name:'自创场景',
mode:'identity',
2016-08-18 13:48:50 +00:00
intro:'<div style="position:relative;display:block;margin-bottom:5px">场景名称:<input name="scenename" type="text" style="width:120px"></div><div style="position:relative;display:block">场景说明:<input name="sceneintro" type="text" style="width:120px"></div>',
2016-08-18 10:51:06 +00:00
content:{
submode:'normal'
},
nostart:true,
showcase:function(init){
if(init){
this.style.transition='all 0s';
this.style.height=(this.offsetHeight-10)+'px';
this.style.overflow='scroll';
lib.setScroll(this);
this.style.paddingTop='10px';
var style={marginLeft:'3px',marginRight:'3px'};
var style2={position:'relative',display:'block',left:0,top:0,marginBottom:'6px',padding:0,width:'100%'};
var line1=ui.create.div(style2,this);
var current=null;
var addCharacter=ui.create.node('button','添加角色',line1,function(){
line1.style.display='none';
line7.style.display='none';
line2.style.display='block';
line2_t.style.display='block';
line3.style.display='block';
line4.style.display='block';
line5.style.display='block';
line6_h.style.display='block';
line6_e.style.display='block';
line6_j.style.display='block';
capt1.style.display='block';
capt2.style.display='block';
if(line6_h.childElementCount) capt_h.style.display='block';
if(line6_e.childElementCount) capt_e.style.display='block';
if(line6_j.childElementCount) capt_j.style.display='block';
},style);
2016-08-18 13:48:50 +00:00
var editPile=ui.create.node('button','游戏状态',line1,function(){
2016-08-18 10:51:06 +00:00
console.log(1);
},style);
var saveButton=ui.create.node('button','保存',line1,function(){
console.log(1);
},style);
var capt1=ui.create.div(style2,'','角色信息',this);
var line2=ui.create.div(style2,this);
line2.style.display='none';
var identity=ui.create.selectlist([['zhu','主公'],['zhong','忠臣'],['nei','内奸'],['fan','反贼']],'zhu',line2);
identity.style.marginLeft='3px';
identity.style.marginRight='3px';
2016-08-18 13:48:50 +00:00
var position=ui.create.selectlist([['0','随机位置'],['1','一号位'],['2','二号位'],['3','三号位'],['4','四号位'],['5','五号位'],['6','六号位'],['7','七号位'],['8','八号位']],'1',line2);
2016-08-18 10:51:06 +00:00
position.style.marginLeft='3px';
position.style.marginRight='3px';
var line2_t=ui.create.div(style2,this);
line2_t.style.display='none';
2016-08-18 13:48:50 +00:00
line2_t.style.marginBottom='10px';
2016-08-18 10:51:06 +00:00
ui.create.node('span','体力:',line2_t);
var hp=ui.create.node('input',line2_t,{width:'40px'});
hp.type='text';
2016-08-18 13:48:50 +00:00
ui.create.node('span','体力上限:',line2_t,{marginLeft:'15px'});
2016-08-18 10:51:06 +00:00
var maxHp=ui.create.node('input',line2_t,{width:'40px'});
maxHp.type='text';
2016-08-18 13:48:50 +00:00
ui.create.node('span','横置 ',line2_t,{marginLeft:'20px'});
var linked=ui.create.node('input',line2_t);
linked.type='checkbox';
ui.create.node('span','翻面 ',line2_t,{marginLeft:'15px'});
var turnedover=ui.create.node('input',line2_t);
turnedover.type='checkbox';
2016-08-18 10:51:06 +00:00
var list=[];
for(var i in lib.character){
list.push([i,lib.translate[i]]);
}
list.sort(function(a,b){
a=a[0];b=b[0];
var aa=a,bb=b;
if(aa.indexOf('_')!=-1){
aa=aa.slice(aa.indexOf('_')+1);
}
if(bb.indexOf('_')!=-1){
bb=bb.slice(bb.indexOf('_')+1);
}
if(aa!=bb){
return aa>bb?1:-1;
}
return a>b?1:-1;
});
2016-08-18 13:48:50 +00:00
list.unshift(['random','自选主将']);
2016-08-18 10:51:06 +00:00
var name1=ui.create.selectlist(list,list[0],line2);
name1.style.marginLeft='3px';
name1.style.marginRight='3px';
name1.style.maxWidth='80px';
2016-08-18 13:48:50 +00:00
list[0][1]='自选副将';
2016-08-18 10:51:06 +00:00
list.unshift(['none','无副将']);
var name2=ui.create.selectlist(list,list[0],line2);
name2.style.marginLeft='3px';
name2.style.marginRight='3px';
name2.style.maxWidth='80px';
var capt2=ui.create.div(style2,'','添加卡牌',this);
var line3=ui.create.div(style2,this);
line3.style.display='none';
capt1.style.display='none';
capt2.style.display='none';
var line5=ui.create.div(style2,this);
line5.style.display='none';
var pileaddlist=[];
for(var i=0;i<lib.config.cards.length;i++){
if(!lib.cardPack[lib.config.cards[i]]) continue;
for(var j=0;j<lib.cardPack[lib.config.cards[i]].length;j++){
var cname=lib.cardPack[lib.config.cards[i]][j];
pileaddlist.push([cname,get.translation(cname)]);
if(cname=='sha'){
pileaddlist.push(['huosha','火杀']);
pileaddlist.push(['leisha','雷杀']);
}
}
}
for(var i in lib.cardPack){
if(lib.config.all.cards.contains(i)) continue;
for(var j=0;j<lib.cardPack[i].length;j++){
var cname=lib.cardPack[i][j];
pileaddlist.push([cname,get.translation(cname)]);
}
}
2016-08-18 13:48:50 +00:00
pileaddlist.unshift(['random',['随机卡牌']]);
2016-08-18 10:51:06 +00:00
var cardpileaddname=ui.create.selectlist(pileaddlist,null,line3);
cardpileaddname.style.marginLeft='3px';
cardpileaddname.style.marginRight='3px';
cardpileaddname.style.maxWidth='80px';
var cardpileaddsuit=ui.create.selectlist([
['random','随机花色'],
['heart','红桃'],
['diamond','方片'],
['club','梅花'],
['spade','黑桃'],
],null,line3);
cardpileaddsuit.style.marginLeft='3px';
cardpileaddsuit.style.marginRight='3px';
var cardpileaddnumber=ui.create.selectlist([
['random','随机点数'],1,2,3,4,5,6,7,8,9,10,11,12,13
],null,line3);
cardpileaddnumber.style.marginLeft='3px';
cardpileaddnumber.style.marginRight='3px';
2016-08-18 13:48:50 +00:00
var fakecard=function(name,suit,number){
2016-08-18 10:51:06 +00:00
var card=ui.create.card(null,'noclick',true);
card.style.zoom=0.6;
2016-08-18 13:48:50 +00:00
number=parseInt(cardpileaddnumber.value);
2016-08-18 10:51:06 +00:00
var name2=name;
var suit2=suit;
var number2=number;
if(name2=='random') name2='sha';
if(suit2=='random') suit2='?';
if(!number2){
number='random';
number2='?';
}
card.init([suit2,number2,name2]);
card.name=name;
card.suit=suit;
card.number=number;
if(name=='random'){
card.node.name.innerHTML=get.verticalStr('随机卡牌');
}
2016-08-18 13:48:50 +00:00
return card;
};
var cc_h=ui.create.node('button','加入手牌',line5,function(){
var card=fakecard(cardpileaddname.value,cardpileaddsuit.value,cardpileaddnumber.value);
2016-08-18 10:51:06 +00:00
card.listen(function(){
this.remove();
if(!line6_h.childElementCount) capt_h.style.display='none';
});
line6_h.appendChild(card);
capt_h.style.display='block';
});
var cc_e=ui.create.node('button','加入装备',line5,function(){
if(get.type(cardpileaddname.value)!='equip') return;
var subtype=get.subtype(cardpileaddname.value);
for(var i=0;i<line6_e.childElementCount;i++){
if(get.subtype(line6_e.childNodes[i].name)==subtype){
line6_e.childNodes[i].remove();break;
}
}
2016-08-18 13:48:50 +00:00
var card=fakecard(cardpileaddname.value,cardpileaddsuit.value,cardpileaddnumber.value);
2016-08-18 10:51:06 +00:00
card.listen(function(){
this.remove();
if(!line6_e.childElementCount) capt_e.style.display='none';
});
line6_e.appendChild(card);
capt_e.style.display='block';
});
var cc_j=ui.create.node('button','加入判定',line5,function(){
if(get.type(cardpileaddname.value)!='delay') return;
for(var i=0;i<line6_j.childElementCount;i++){
if(line6_j.childNodes[i].name==cardpileaddname.value){
line6_j.childNodes[i].remove();break;
}
}
2016-08-18 13:48:50 +00:00
var card=fakecard(cardpileaddname.value,cardpileaddsuit.value,cardpileaddnumber.value);
2016-08-18 10:51:06 +00:00
card.listen(function(){
this.remove();
if(!line6_j.childElementCount) capt_j.style.display='none';
});
line6_j.appendChild(card);
capt_j.style.display='block';
});
cc_h.style.marginLeft='3px';
cc_h.style.marginRight='3px';
cc_e.style.marginLeft='3px';
cc_e.style.marginRight='3px';
cc_j.style.marginLeft='3px';
cc_j.style.marginRight='3px';
var capt_h=ui.create.div(style2,'','手牌区',this);
var line6_h=ui.create.div(style2,this);
var capt_e=ui.create.div(style2,'','装备区',this);
var line6_e=ui.create.div(style2,this);
var capt_j=ui.create.div(style2,'','判定区',this);
var line6_j=ui.create.div(style2,this);
line6_j.style.marginBottom='10px';
capt_h.style.display='none';
capt_e.style.display='none';
capt_j.style.display='none';
var line4=ui.create.div(style2,this);
line4.style.display='none';
var resetCharacter=function(){
line1.style.display='block';
line7.style.display='block';
line2.style.display='none';
line2_t.style.display='none';
line3.style.display='none';
line4.style.display='none';
line5.style.display='none';
line6_h.style.display='none';
line6_e.style.display='none';
line6_j.style.display='none';
capt1.style.display='none';
capt2.style.display='none';
capt_h.style.display='none';
capt_e.style.display='none';
capt_j.style.display='none';
name1.value='random';
name2.value='none';
identity.value='zhu';
position.value='1';
hp.value='';
maxHp.value='';
line6_h.innerHTML='';
line6_e.innerHTML='';
line6_j.innerHTML='';
cardpileaddname.value='random';
cardpileaddsuit.value='random';
cardpileaddnumber.value='random';
};
ui.create.node('button','确定',line4,style,function(){
var info={
name:name1.value,
name2:name2.value,
identity:identity.value,
position:position.value,
hp:hp.value,
maxHp:maxHp.value,
handcards:[],
equips:[],
judges:[]
};
for(var i=0;i<line6_h.childElementCount;i++){
info.handcards.push([line6_h.childNodes[i].name,line6_h.childNodes[i].suit,line6_h.childNodes[i].number]);
}
for(var i=0;i<line6_e.childElementCount;i++){
info.equips.push([line6_e.childNodes[i].name,line6_e.childNodes[i].suit,line6_e.childNodes[i].number]);
}
for(var i=0;i<line6_j.childElementCount;i++){
info.judges.push([line6_j.childNodes[i].name,line6_j.childNodes[i].suit,line6_j.childNodes[i].number]);
}
2016-08-18 13:48:50 +00:00
var player=ui.create.player(null,true);
2016-08-18 10:51:06 +00:00
var name=info.name,name3=info.name2;
if(name=='random'){
name='re_caocao';
}
if(name3!='none'){
if(name3=='random'){
name3='liubei';
}
player.init(name,name3);
if(info.name2=='random'){
player.node.name2.innerHTML=get.verticalStr('随机副将');
}
}
else{
player.init(name);
}
if(info.name=='random'){
player.node.name.innerHTML=get.verticalStr('随机主将');
}
if(info.maxHp){
player.maxHp=info.maxHp;
}
if(info.hp){
player.hp=Math.min(info.hp,player.maxHp);
}
for(var i=0;i<info.handcards.length;i++){
2016-08-18 13:48:50 +00:00
player.node.handcards1.appendChild(ui.create.card());
}
for(var i=0;i<info.equips.length;i++){
player.$equip(fakecard.apply(this,info.equips[i]));
}
for(var i=0;i<info.judges.length;i++){
player.node.judges.appendChild(fakecard.apply(this,info.judges[i]));
2016-08-18 10:51:06 +00:00
}
player.update();
2016-08-18 13:48:50 +00:00
player.style.transform='scale(0.6)';
2016-08-18 10:51:06 +00:00
player.style.position='relative';
player.style.left=0;
player.style.top=0;
2016-08-18 13:48:50 +00:00
player.style.margin='-26px';
2016-08-18 10:51:06 +00:00
player.node.marks.remove();
line7.appendChild(player);
2016-08-18 13:48:50 +00:00
player.listen(function(){
if(confirm('是否删除此角色?')){
this.remove();
}
});
2016-08-18 10:51:06 +00:00
resetCharacter();
});
ui.create.node('button','取消',line4,style,resetCharacter);
var line7=ui.create.div(style2,this);
line7.style.marginTop='12px';
}
}
}
2016-08-15 14:19:58 +00:00
}
};