This commit is contained in:
libccy 2015-11-09 11:15:16 +08:00
parent a4a104675b
commit a00e3c03b4
31 changed files with 1189 additions and 245 deletions

View File

@ -1,2 +1,4 @@
1.5.2
明忠模式
1.5.3
战棋路障、特殊战场角色
战棋自动显示距离
修正部分区域点击困难的问题

View File

@ -435,6 +435,7 @@ card.standard={
ui.clear();
var cards=get.cards(game.players.length);
var dialog=ui.create.dialog('五谷丰登',cards,true);
_status.dieClose.push(dialog);
dialog.videoId=lib.status.videoId++;
game.addVideo('cardDialog',null,['五谷丰登',get.cardsInfo(cards),dialog.videoId]);
event.parent.preResult=dialog.videoId;
@ -479,6 +480,7 @@ card.standard={
for(var i=0;i<ui.dialogs.length;i++){
if(ui.dialogs[i].videoId==event.preResult){
ui.dialogs[i].close();
_status.dieClose.remove(ui.dialogs[i]);
break;
}
}

View File

@ -268,8 +268,22 @@ card.swd={
},
ai:{
basic:{
useful:[5,1],
value:[5,1],
useful:function(card,i){
if(_status.event.player.hp>1){
if(i==0) return 5;
return 1;
}
if(i==0) return 7.3;
return 3;
},
value:function(card,player){
if(player.hp>1){
if(i==0) return 5;
return 1;
}
if(i==0) return 7.3;
return 3;
},
},
order:function(){
return lib.card.sha.ai.order+0.2;

View File

@ -1107,7 +1107,8 @@ character.extra={
shelie_info:'摸牌阶段,你可以放弃摸牌,改为从牌堆顶亮出五张牌,你获得不同花色的牌各一张,将其余的牌置入弃牌堆。',
gongxin_info:'出牌阶段,你可以观看一名其他角色的手牌,并可以展示其中一张红桃牌,然后将其弃置或置于牌堆顶,每阶段限一次。',
guixin_info:'每当你受到1次伤害后若至少一名其他角色的区域里有牌你可以选择所有其他角色获得这些角色区域里的一张牌然后将你的武将牌翻面。',
qinyin_info:'每当你于弃牌阶段内因你的弃置而失去第X张手牌时X至少为2你可以选择一项1.令所有角色各回复1点体力2.令所有角色各失去1点体力。每阶段限一次。',
qinyin_info:'弃牌阶段结束时若你于此阶段内弃置过你的至少两张手牌则你可以选择一项1. 所有角色各回复1点体力2. 所有角色各失去1点体力。',
// qinyin_info:'每当你于弃牌阶段内因你的弃置而失去第X张手牌时X至少为2你可以选择一项1.令所有角色各回复1点体力2.令所有角色各失去1点体力。每阶段限一次。',
yeyan_info:'限定技出牌阶段你可以对一至三名角色造成至多共3点火焰伤害你可以任意分配每名目标角色受到的伤害点数若你将对一名角色分配2点或更多的火焰伤害你须先弃置四张不同花色的手牌再失去3点体力。',
qixing:'七星',
qixing_bg:'星',

View File

@ -918,6 +918,7 @@ character.mountain={
priority:10,
content:function(){
for(var i in lib.character){
if(i.indexOf('stone_')==0) continue;
var add=false;
for(var j=0;j<lib.character[i][3].length;j++){
var info=lib.skill[lib.character[i][3][j]];

View File

@ -2268,6 +2268,7 @@ character.sp={
ai:{
order:7,
threaten:1.5,
expose:0.2,
result:{
target:function(player,target){
if(target.num('h')<target.hp){

View File

@ -6,7 +6,7 @@ character.swd={
swd_anka:['male','qun',3,['songci','anlianying'],['fullskin']],
swd_septem:['male','qun',4,['jiying','liaoyuan','yishan'],['fullskin']],
swd_kama:['female','qun',3,['yueren','shangshi'],['fullskin']],
swd_miles:['male','qun',4,['aojian','miles_xueyi','mohua2']],
// swd_miles:['male','qun',4,['aojian','miles_xueyi','mohua2']],
swd_nicole:['female','wu',3,['minjing','lingwu','huanjian'],['fullskin']],
swd_wangsiyue:['female','wei',3,['duishi','biyue'],['fullskin']],
swd_weida:['female','qun',3,['yueren','zhenlie']],
@ -14,7 +14,7 @@ character.swd={
swd_chenjingchou:['male','wu',3,['youyin','yihua'],['fullskin']],
swd_duguningke:['female','qun',3,['lianji','touxi'],['fullskin']],
swd_guyue:['male','wei',3,['tiandao','swdqinyin','wangchen'],['fullskin']],
swd_guyue:['male','wei',3,['tiandao','qinyin','wangchen'],['fullskin']],
swd_tuobayuer:['female','shu',4,['liuhong','poyue','niepan'],['fullskin']],
swd_yuwentuo:['male','qun',4,['wushuang','xielei','kunlunjing'],['fullskin']],
swd_yuxiaoxue:['female','wei',3,['huanhun','daixing','yinyue'],['fullskin']],
@ -2879,7 +2879,8 @@ character.swd={
content:function(){
"step 0"
if(typeof event.count!='number'){
event.count=trigger.cards.length-1;
// event.count=trigger.cards.length-1;
event.count=1;
}
var recover=0,lose=0;
for(var i=0;i<game.players.length;i++){
@ -2912,8 +2913,9 @@ character.swd={
}
}
}
var prompt='是否发动【琴音】(剩余'+get.cnNumber(event.count)+'次)';
player.chooseControl('失去体力','回复体力','cancel',
ui.create.dialog('是否发动【琴音】(剩余'+get.cnNumber(event.count)+'次)','hidden')).ai=function(){
ui.create.dialog('是否发动【琴音】','hidden')).ai=function(){
// console.log(lose,recover);
if(lose>recover&&lose>0) return 0;
if(lose<recover&&recover>0) return 1;
@ -7944,8 +7946,6 @@ character.swd={
fushen2:'附身',
tiandao:'天道',
tiandao_info:'任意一名角色的判定生效前,你可以打出一张牌替换之',
swdqinyin:'琴音',
swdqinyin_info:'回合结束阶段,若你于本回合内未造成过伤害,你可以令所有角色失去或回复一点体力',
wangchen:'忘尘',
wangchen_info:'若你于弃牌阶段弃置了基本牌,可令一名角色翻面',
guiyin:'归隐',

View File

@ -68,7 +68,7 @@ character.xianjian={
}
},
ningbin:{
trigger:{player:'damageEnd',source:'damageEnd'},
trigger:{player:'damageEnd'},
forced:true,
filter:function(event){
return event.nature=='thunder';
@ -1360,7 +1360,7 @@ character.xianjian={
xuanyan2:'玄炎',
xuanyan_info:'锁定技,你的火属性伤害+1你造成火属性伤害后流失1点体力',
ningbin:'凝冰',
ningbin_info:'锁定技,每当你造成或受到1次雷属性伤害你回复1点体力',
ningbin_info:'锁定技,每当你受到1次雷属性伤害你回复1点体力',
fenxin:'焚心',
fenxin2:'焚心',
fenxin_info:'锁定技,每当你的体力值发生改变,你摸等量的牌;每当你杀死一名角色,你增加一点体力上限并回复一点体力',

View File

@ -1,7 +1,7 @@
character.zhuogui={
character:{
nianshou:['male','shu',4,['nianrui','qixiang']],
mamian:['male','qun',4,['lianyu','guiji']],
// mamian:['male','qun',4,['lianyu','guiji']],
niutou:['male','shu',4,['manjia','xiaoshou'],['fullskin']],
baiwuchang:['male','qun',3,['qiangzheng','moukui']],
heiwuchang:['male','qun',3,['suoling','xixing']],

View File

@ -13,6 +13,7 @@
ai:{},
lastdragchange:[],
skillaudio:[],
dieClose:[]
};
var lib={
configprefix:'noname_0.9_',
@ -1312,25 +1313,48 @@
}
},
},
chess_treasure:{
name:'特殊战场角色',
init:'0.2',
frequent:true,
item:{
'0':'关闭',
'0.1':'较少出现',
'0.2':'偶尔出现',
'0.333':'时常出现',
'0.5':'频繁出现',
}
},
chess_obstacle:{
name:'随机路障',
init:'0.333',
item:{
'0':'关闭',
'0.2':'少量',
'0.333':'中量',
'0.5':'大量',
},
frequent:true,
},
show_distance:{
name:'显示距离',
init:true,
// frequent:true,
},
chess_ordered:{
name:'交替行动',
init:true,
frequent:true,
// frequent:true,
},
chess_character:{
name:'战棋武将',
init:true,
frequent:true,
// frequent:true,
},
chessscroll_speed:{
name:'边缘滚动速度',
init:'20',
item:{
'0':'不滚动',
'10':'10格/秒',
'20':'20格/秒',
'30':'30格/秒',
}
chess_card:{
name:'战棋卡牌',
init:true,
// frequent:true,
},
free_choose:{
name:'自由选将',
@ -1367,6 +1391,16 @@
init:false,
restart:true,
},
chessscroll_speed:{
name:'边缘滚动速度',
init:'20',
item:{
'0':'不滚动',
'10':'10格/秒',
'20':'20格/秒',
'30':'30格/秒',
}
},
}
},
stone:{
@ -1463,12 +1497,15 @@
'身份模式':'<div style="margin:10px">明忠</div><ul style="margin-top:0"><li>本模式需要8名玩家进行游戏使用的身份牌为1主公、2忠臣、4反贼和1内奸。游戏开始时每名玩家随机获得一个身份由系统随机选择一名忠臣身份的玩家亮出身份将忠臣牌正面朝上放在面前其他身份包括主公的玩家不亮出身份。<li>'+
'首先由亮出身份的忠臣玩家随机获得六张武将牌,挑选一名角色,并将选好的武将牌展示给其他玩家。之后其余每名玩家随机获得三张武将牌,各自从其中挑选一张同时亮出<li>'+
'亮出身份牌的忠臣增加1点体力上限。角色濒死和死亡的结算及胜利条件与普通身份局相同。',
'战棋模式':'<div style="margin:10px">对阵</div><ul style="margin-top:0"><li>n人对战n人的模式由单人控制开始游戏后随机分配位置与出牌顺序<li>'+
'战棋模式':
'<div style="margin:10px">对阵模式</div><ul style="margin-top:0"><li>n人对战n人的模式由单人控制开始游戏后随机分配位置与出牌顺序<li>'+
'每人在出牌阶段有一次移动的机会若一名角色在移动之前使用过指定其他角色为目标的牌该回合可移动的最大距离为2否则最大距离为1<li>'+
'任何卡牌或技能无法指定位置相隔8个格以上的角色为目标<li>'+
'杀死对方阵营的角色可摸一张牌,杀死本方阵营无惩罚<li>'+
'开启交替行动后在一方所有角色行动完毕进行下一轮行动时若其人数比另一方少另一方可指定至多X名角色名摸一张牌X为人数之差</ul>'+
'<div style="margin:10px">统率</div><ul style="margin-top:0"><li>收集武将进行战斗,根据战斗难度及我方出场武将的强度,战斗胜利后将获得数量不等的金钱。没有君主出场时,获得的金钱较多<li>'+
'开启交替行动时双方无论存活角色角色多少都将轮流进行行动。在一方所有角色行动完毕进行下一轮行动时若其人数比另一方少另一方可指定至多X名角色名摸一张牌X为人数之差<li>'+
'开启特殊战场角色后每个回合结束时有一定机率出现一个特殊角色该角色不参与战斗并有一个影响周围或全体角色的效果。该角色在出现后的5〜10个回合内消失<li>'+
'战场上可设置出现随机路障,角色无法移动到路障处。当一名角色的周围四格有至少三格为路障或在战场外,其可以在回合内清除一个相邻路障</ul>'+
'<div style="margin:10px">统率模式</div><ul style="margin-top:0"><li>收集武将进行战斗,根据战斗难度及我方出场武将的强度,战斗胜利后将获得数量不等的金钱。没有君主出场时,获得的金钱较多<li>'+
'金钱可以用来招募随机武将,招到已有武将,或遣返不需要的武将时可得到招募令<li>'+
'战斗中有君主出场时可招降敌将成功率取决于敌将的稀有度、剩余体力值以及手牌数。成功后战斗立即结束且没有金钱奖励。每发动一次招降无论成功还是失败都会扣除10招募令<li>'+
'挑战武将会与该武将以及与其强度相近的武将进行战斗敌方人数与我方出场人数相同但不少于3。胜利后可通过招募令招募该武将<li>'+
@ -2854,7 +2891,7 @@
event.finish();
}
"step 6"
ui.clear();
if(event.card.name!='wuxie') ui.clear();
},
useSkill:function(){
"step 0"
@ -4132,6 +4169,18 @@
return cards;
}
},
playerfocus:function(time){
time=time||1000;
this.classList.add('playerfocus');
ui.arena.classList.add('playerfocus');
var that=this;
setTimeout(function(){
that.classList.remove('playerfocus');
ui.arena.classList.remove('playerfocus');
},1000);
game.addVideo('playerfocus',this,time);
return this;
},
changeHujia:function(num){
if(typeof num!='number'){
num=1;
@ -5777,6 +5826,7 @@
$throwordered:function(node,nosource){
if(nosource){
node.style.transform='scale(0)';
node.classList.add('center');
}
else{
node.dataset.position=this.dataset.position;
@ -6093,6 +6143,30 @@
game.animate.flame(left+this.offsetWidth/2,
top+this.offsetHeight-30,700,'thunder');
},
$rare2:function(){
game.addVideo('flame',this,'rare2');
var rect=this.getBoundingClientRect();
var left=rect.left;
var top=rect.top+15;
game.animate.flame(left+this.offsetWidth/2,
top+this.offsetHeight-30,700,'rare');
},
$epic2:function(){
game.addVideo('flame',this,'epic2');
var rect=this.getBoundingClientRect();
var left=rect.left;
var top=rect.top+15;
game.animate.flame(left+this.offsetWidth/2,
top+this.offsetHeight-30,700,'epic');
},
$legend2:function(){
game.addVideo('flame',this,'legend2');
var rect=this.getBoundingClientRect();
var left=rect.left;
var top=rect.top+15;
game.animate.flame(left+this.offsetWidth/2,
top+this.offsetHeight-30,700,'legend');
},
$rare:function(){
game.addVideo('flame',this,'rare');
var left,top;
@ -7442,7 +7516,9 @@
if(content.type=='delay'){
game.delay(content.content);
}
else if(typeof content.player=='string'&&game.playerMap[content.player]){
else if(typeof content.player=='string'&&game.playerMap[content.player]&&
game.playerMap[content.player].classList&&
!game.playerMap[content.player].classList.contains('obstacle')){
game.videoContent[content.type](game.playerMap[content.player],content.content);
}
else{
@ -7584,14 +7660,9 @@
console.log(player);
}
},
playerfocus:function(player){
if(player){
player.classList.add('playerfocus');
ui.arena.classList.add('playerfocus');
setTimeout(function(){
player.classList.remove('playerfocus');
ui.arena.classList.remove('playerfocus');
},1000);
playerfocus:function(player,time){
if(player&&player.playerfocus){
player.playerfocus(time);
}
else{
console.log(player);
@ -7626,6 +7697,17 @@
console.log(player)
}
},
addObstacle:function(pos){
if(pos){
game.addObstacle(pos[0],pos[1]);
}
else{
console.log(pos)
}
},
removeObstacle:function(pos){
game.removeObstacle(pos);
},
moveTox:function(player,pos){
if(player&&player.dataset){
delete lib.posmap[player.dataset.position];
@ -7651,6 +7733,25 @@
console.log('chessFocus');
}
},
removeTreasure:function(pos){
if(game.playerMap[pos]){
game.playerMap[pos].delete();
delete game.playerMap[pos];
}
else{
console.log(pos);
}
},
initobs:function(obs){
if(obs){
for(var i=0;i<obs.length;i++){
game.addObstacle(obs[i]);
}
}
else{
console.log(obs);
}
},
stonePosition:function(content){
var player=game.playerMap[content[0]];
if(player){
@ -8127,7 +8228,7 @@
}
},
unmarkSkill:function(player,name){
if(player&&name){
if(player&&player.unmarkSkill){
player.unmarkSkill(name);
}
else{
@ -9088,6 +9189,9 @@
}
else{
if(player&&player.classList.contains('dead')&&event.name!='phaseLoop'){
while(_status.dieClose.length){
_status.dieClose.shift().close();
}
event.finish();
}
else if(player&&player.removed&&event.name!='phaseLoop'){
@ -9251,7 +9355,7 @@
nochess=false;
}
}
if(event.filterTarget(card,player,game.players[i])&&
if(event.filterTarget(card,player,game.players[i])&&!game.players[i].forceout&&
(game.players[i].isOut()==false||event.includeOutTarget)&&nochess){
if(ui.selected.targets.length<range[1]){
game.players[i].classList.add('selectable');
@ -9351,6 +9455,25 @@
_status.multitarget=true;
}
if(event.isMine()){
if(lib.config.mode=='chess'&&game.me&&get.config('show_distance')){
for(var i=0;i<game.players.length;i++){
if(game.players[i]==game.me){
game.players[i].node.action.hide();
}
else{
game.players[i].node.action.show();
var dist=get.distance(game.me,game.players[i],'pure');
var dist2=get.distance(game.me,game.players[i]);
game.players[i].node.action.innerHTML='距离:'+dist2+'/'+dist;
if(dist>7){
game.players[i].node.action.classList.add('thunder');
}
else{
game.players[i].node.action.classList.remove('thunder');
}
}
}
}
if(ok&&auto&&lib.config.auto_confirm&&(!_status.mousedragging||!_status.mouseleft)&&!_status.mousedown){
if(ui.confirm){
if(!skillinfo||!skillinfo.preservecancel){
@ -12001,6 +12124,7 @@
for(var i=0;i<start.firstChild.childNodes.length;i++){
var node=start.firstChild.childNodes[i];
if(node.link){
if(node.mode.indexOf('mode_')==0) continue;
if(lib.config.characters.contains(node.mode)){
node.classList.remove('off');
node.link.firstChild.classList.add('on');
@ -12040,8 +12164,13 @@
init:lib.config.characters.contains(mode),
onclick:togglePack
});
page.appendChild(cfgnode);
if(mode.indexOf('mode_')!=0){
page.appendChild(cfgnode);
}
var banCharacter=function(){
if(mode.indexOf('mode_')==0){
return;
}
this.classList.toggle('unselectable');
if(this.classList.contains('unselectable')){
lib.config.banned.add(this.link);
@ -12066,6 +12195,11 @@
for(var i=0;i<lib.config.all.characters.length;i++){
createModeConfig(lib.config.all.characters[i],start.firstChild);
}
for(var i in lib.characterPack){
if(i.indexOf('mode_')==0){
createModeConfig(i,start.firstChild);
}
}
var active=start.firstChild.querySelector('.active');
if(!active){
active=start.firstChild.firstChild;
@ -12106,6 +12240,7 @@
for(var i=0;i<start.firstChild.childNodes.length;i++){
var node=start.firstChild.childNodes[i];
if(node.link){
if(node.mode.indexOf('mode_')==0) continue;
if(lib.config.cards.contains(node.mode)){
node.classList.remove('off');
node.link.firstChild.classList.add('on');
@ -12145,8 +12280,13 @@
init:lib.config.cards.contains(mode),
onclick:togglePack
});
page.appendChild(cfgnode);
if(mode.indexOf('mode_')!=0){
page.appendChild(cfgnode);
}
var banCard=function(){
if(mode.indexOf('mode_')==0){
return;
}
this.classList.toggle('unselectable');
if(this.classList.contains('unselectable')){
lib.config.bannedcards.add(this.link[2]);
@ -12171,6 +12311,11 @@
for(var i=0;i<lib.config.all.cards.length;i++){
createModeConfig(lib.config.all.cards[i],start.firstChild);
}
for(var i in lib.cardPack){
if(i.indexOf('mode_')==0){
createModeConfig(i,start.firstChild);
}
}
var active=start.firstChild.querySelector('.active');
if(!active){
active=start.firstChild.firstChild;
@ -12774,8 +12919,13 @@
lib.setHover(node,ui.click.hoverplayer);
}
}
node.node.group.innerHTML='<div>'+get.translation(infoitem[1])+'</div>';
node.node.group.style.backgroundColor=get.translation(infoitem[1]+'Color');
if(infoitem[1]){
node.node.group.innerHTML='<div>'+get.translation(infoitem[1])+'</div>';
node.node.group.style.backgroundColor=get.translation(infoitem[1]+'Color');
}
else{
node.node.group.style.display='none';
}
}
else{
if(item.name.indexOf('unknown')==0){
@ -15586,7 +15736,7 @@
var i,translation,intro,str;
if(node.classList.contains('player')){
var capt=get.translation(node.name);
if(lib.character[node.name]){
if(lib.character[node.name]&&lib.character[node.name][1]){
capt+='&nbsp;&nbsp;'+lib.translate[lib.character[node.name][1]];
}
uiintro.add(capt);
@ -16802,7 +16952,7 @@
}
}
lib.skilllist=[];
lib.characterPack={};
if(!lib.characterPack) lib.characterPack={};
for(i in character){
if(character[i].character){
lib.characterPack[i]=character[i].character
@ -16857,7 +17007,7 @@
}
}
}
lib.cardPack={};
if(!lib.cardPack) lib.cardPack={};
for(i in card){
lib.cardPack[i]=[];
if(card[i].card){

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

BIN
image/character/default/mamian.jpg Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -28,9 +28,13 @@ table{table-layout: fixed;}
pointer-events: none;
position: absolute;
}
#arena.playerfocus>div:not(.playerfocus){
#arena.playerfocus>div:not(.playerfocus):not(#chess-container):not(.removing){
opacity: 0.3 !important;
}
#arena.playerfocus #chess>div:not(.playerfocus):not(.removing){
opacity: 0.3 !important;
}
#me,#mebg{width: 100%;height: 140px;top:calc(100% - 140px);left:0;}
#mebg{z-index:-1}
#handcards1,#handcards2{width: calc(50% - 140px);height: 127px;padding: 10px;}
@ -39,8 +43,8 @@ table{table-layout: fixed;}
#handcards2{left: calc(50% + 120px);top:calc(100% - 140px);}
#arena.single-handcard #handcards1{width: 100%;}
#arena.single-handcard #handcards2{display: none;}
#system{padding: 6px;width: calc(100% - 12px);white-space: nowrap;z-index: 3;}
#system>div{height: 100%;position: relative;margin: 0;padding: 0;}
#system{padding: 6px;width: calc(100% - 12px);white-space: nowrap;z-index: 3;pointer-events: none}
#system>div{height: 100%;position: relative;margin: 0;padding: 0;pointer-events: auto}
#system>div:last-child{text-align: right;float:right}
#system>div>div{position: relative;padding-top: 6px;padding-bottom: 6px;padding-left: 8px;padding-right: 8px;text-align: center;margin:4px}
#paused,#click{left: 0;top:0;width: 100%;height: 100%;z-index: 5;}
@ -242,7 +246,8 @@ margin-bottom: 5px;
.button.character>.intro{top:71px;left:0;}
.button.character>.identity{top:-6px;left:72px;}
/*--------确认--------*/
#control{text-align: center;z-index: 2;top: calc(200% / 3);left: calc(5% + 240px);width: calc(90% - 480px);}
#control{text-align: center;z-index: 2;top: calc(200% / 3);left: calc(5% + 240px);width: calc(90% - 480px);pointer-events: none}
#control>*{pointer-events: auto}
.control{padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;margin-left: 4px;margin-right: 4px;}
.control{font-size: 18px;white-space: nowrap;position: relative;overflow: hidden;opacity:0}
.control:not(.nozoom){width:0}
@ -260,7 +265,7 @@ margin-bottom: 5px;
.player>.avatar:not(.glow2)>.action{opacity: 0}
.player.controlfakeme{width:100px;height:120px;top:calc(100% - 140px)}
.player.controlfakeme>.avatar{width: 100%;height: 100%;box-shadow: none;left: 0;top: 0}
.player{z-index: 4;width: 240px;height: 120px;}
.player{z-index: 2;width: 240px;height: 120px;}
.player.minskin{width:120px;}
.player.replaceme{
animation:replaceme 0.5s;
@ -508,6 +513,10 @@ margin-bottom: 5px;
animation: game_start 0.5s;
-webkit-animation: game_start 0.5s;
}
.start2{
animation: card_start 0.5s;
-webkit-animation: card_start 0.5s;
}
.dialog{
animation: dialog_start 0.5s;
-webkit-animation: dialog_start 0.5s;
@ -533,7 +542,7 @@ margin-bottom: 5px;
animation: card_start 0.5s;
-webkit-animation: card_start 0.5s;
}
.card.judgestart{
.judgestart{
animation: card_judgestart 1s;
-webkit-animation: card_judgestart 1s;
}

View File

@ -125,7 +125,7 @@
}
.player:not([data-position='0']).minskin.linked .equips,
#arena.chess .player.minskin.linked .equips{
transform:rotate(90deg) translate(-90px,-6px) scale(0.73);
transform:rotate(90deg) translate(-92px,-6px) scale(0.73);
}
.player:not([data-position='0']).linked div:not(.equips) .card,
.player:not([data-position='0']).linked .identity,

View File

@ -116,11 +116,20 @@
-webkit-animation-fill-mode: forwards;
}
.player.playergrid{
.player.playergrid,.player.obstacle{
background: rgba(0,0,0,0.2);
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px;
border-radius:8px;
}
.player.obstacle{
background: repeating-linear-gradient(
135deg,
rgba(0,0,0,0.2),
rgba(0,0,0,0.2) 10px,
rgba(0,0,0,0.1) 10px,
rgba(0,0,0,0.1) 20px
);
}
.playergrid.temp{
opacity:0.3;
}
@ -147,3 +156,27 @@
#arena.leadercontrol>#control{
transition: all 0.5s !important;
}
.player.treasure{
box-shadow: none;
}
.player.treasure .count,
.player.treasure .identity{
display: none;
}
.player.treasure .avatar{
width: 120px;
height: 120px;
left: 0;
top: 0;
}
.player .action{
text-shadow: black 0 0 1px !important;
font-size: 16px !important;
left:0;
}
.player .action.thunder{
color: rgb(117,186,255);
}
#arena.selecting .player .action:not(.hidden){
opacity: 1 !important;
}

View File

@ -104,7 +104,7 @@
transform-origin:bottom left;
}
.player.minskin.linked .equips{
transform:rotate(90deg) translate(-90px,-6px) scale(0.73);
transform:rotate(90deg) translate(-92px,-6px) scale(0.73);
}
.player.linked div:not(.equips) .card,
.player.linked .identity{

View File

@ -307,6 +307,7 @@ mode.boss={
game.addVideo('init',null,info);
"step 3"
event.trigger('gameStart');
game.gameDraw(game.boss);
game.bossPhaseLoop();
setTimeout(function(){

File diff suppressed because it is too large Load Diff

View File

@ -589,15 +589,9 @@ mode.identity={
game.zhu.setIdentity();
game.zhu.isZhu=true;
delete game.zhong;
game.zhu.$legend();
if(lib.config.animation) game.zhu.$legend();
game.delay(2);
game.zhu.classList.add('playerfocus');
ui.arena.classList.add('playerfocus');
setTimeout(function(){
game.zhu.classList.remove('playerfocus');
ui.arena.classList.remove('playerfocus');
},1000);
game.addVideo('playerfocus',game.zhu);
game.zhu.playerfocus(1000);
}
},
logAi:function(targets,card){

View File

@ -207,6 +207,45 @@ mode.stone={
}
}
},
cardPack:{
mode_stone:[
'zhaohunfan','jintiao','liumangxingzhen','shengerpingdeng','emofengdi','konghunshi',
'mindieyi','miefafu','dianhaishenzhu','yesushengxue','sanghunzhao','fengraozhijiao'
]
},
characterPack:{
mode_stone:{
stone_weibing:['male','wei',2,['stone_weibing'],['minskin','stone'],[1,0]],
stone_weiguan:['male','wei',1,['stone_weiguan'],['minskin','stone'],[1,2]],
stone_weijiang:['male','wei',3,['stone_weijiang'],['minskin','stone'],[3,0]],
stone_shubing:['male','shu',2,['stone_shubing'],['minskin','stone'],[1,0]],
stone_shuguan:['male','shu',1,['stone_shuguan'],['minskin','stone'],[1,2]],
stone_shujiang:['male','shu',3,['stone_shujiang'],['minskin','stone'],[3,0]],
stone_wubing:['male','wu',2,['stone_wubing'],['minskin','stone'],[1,0]],
stone_wuguan:['male','wu',1,['stone_wuguan'],['minskin','stone'],[1,2]],
stone_wujiang:['male','wu',3,['stone_wujiang'],['minskin','stone'],[3,0]],
stone_qunbing:['male','qun',2,['stone_qunbing'],['minskin','stone'],[1,0]],
stone_qunguan:['male','qun',1,['stone_qunguan'],['minskin','stone'],[1,2]],
stone_qunjiang:['male','qun',3,['stone_qunjiang'],['minskin','stone'],[3,0]],
stone_daoshi:['male','qun',1,['stone_daoshi'],['minskin','stone'],[1,2]],
stone_sanxian:['male','qun',2,['stone_sanxian'],['minskin','stone'],[2,0]],
stone_yisheng:['male','qun',1,['jijiu'],['minskin','stone'],[2,2]],
stone_yinshi:['male','qun',1,['stone_yinshi'],['minskin','stone'],[1,2]],
stone_banxian:['male','qun',3,['stone_banxian'],['minskin','stone'],[3,0]],
stone_daogu:['female','qun',1,['stone_daogu'],['minskin','stone'],[1,2]],
stone_gongzhu:['female','wu',1,['shushen'],['minskin','stone'],[2,2]],
stone_genv:['female','wei',1,['jieyin'],['minskin','stone'],[1,2]],
stone_wunv:['female','qun',1,['biyue'],['minskin','stone'],[3,2]],
stone_huanghou:['female','qun',2,['stone_huanghou'],['minskin','stone'],[3,1]],
stone_feipin:['female','qun',1,['guixiu'],['minskin','stone'],[1,2]],
stone_yiji:['female','qun',1,['stone_yiji'],['minskin','stone'],[2,2]],
}
},
game:{
reserveDead:true,
getVideoName:function(){
@ -252,28 +291,27 @@ mode.stone={
initStone:function(){
var list=[],list2=[];
var i,j,name;
for(i in lib.character){
if(lib.character[i][4]&&lib.character[i][4].contains('minskin')&&lib.character[i][4].contains('stone')){
lib.character[i][3].add('stonesha');
lib.character[i][3].add('stoneshan');
lib.character[i][3].add('stonedraw');
name=i+'_stonecharacter';
if(lib.character[i][5][0]<3){
list.push(name);
}
else{
list2.push(name);
}
lib.card[name]={
image:'character/default/'+i,
stoneact:lib.character[i][5][0]
};
for(j in lib.card.stonecharacter){
lib.card[name][j]=lib.card.stonecharacter[j];
}
lib.translate[name]=get.translation(i);
lib.translate[name+'_info']=get.skillintro(i);
for(var i in lib.characterPack.mode_stone){
lib.character[i]=lib.characterPack.mode_stone[i];
lib.character[i][3].add('stonesha');
lib.character[i][3].add('stoneshan');
lib.character[i][3].add('stonedraw');
name=i+'_stonecharacter';
if(lib.character[i][5][0]<3){
list.push(name);
}
else{
list2.push(name);
}
lib.card[name]={
image:'character/default/'+i,
stoneact:lib.character[i][5][0]
};
for(j in lib.card.stonecharacter){
lib.card[name][j]=lib.card.stonecharacter[j];
}
lib.translate[name]=get.translation(i);
lib.translate[name+'_info']=get.skillintro(i);
}
var addedcardcount=Math.ceil(lib.card.list.length/80);
var addedcardcount2=Math.ceil(lib.card.list.length/160);
@ -409,6 +447,7 @@ mode.stone={
_status.videoInited=true,
game.addVideo('init',null,info);
event.trigger('gameStart');
game.gameDraw(game.me,2);
if(game.me.side){
game.stoneLoop(game.me);
@ -893,37 +932,6 @@ mode.stone={
}
},
},
character:{
stone_weibing:['male','wei',2,['stone_weibing'],['minskin','stone'],[1,0]],
stone_weiguan:['male','wei',1,['stone_weiguan'],['minskin','stone'],[1,2]],
stone_weijiang:['male','wei',3,['stone_weijiang'],['minskin','stone'],[3,0]],
stone_shubing:['male','shu',2,['stone_shubing'],['minskin','stone'],[1,0]],
stone_shuguan:['male','shu',1,['stone_shuguan'],['minskin','stone'],[1,2]],
stone_shujiang:['male','shu',3,['stone_shujiang'],['minskin','stone'],[3,0]],
stone_wubing:['male','wu',2,['stone_wubing'],['minskin','stone'],[1,0]],
stone_wuguan:['male','wu',1,['stone_wuguan'],['minskin','stone'],[1,2]],
stone_wujiang:['male','wu',3,['stone_wujiang'],['minskin','stone'],[3,0]],
stone_qunbing:['male','qun',2,['stone_qunbing'],['minskin','stone'],[1,0]],
stone_qunguan:['male','qun',1,['stone_qunguan'],['minskin','stone'],[1,2]],
stone_qunjiang:['male','qun',3,['stone_qunjiang'],['minskin','stone'],[3,0]],
stone_daoshi:['male','qun',1,['stone_daoshi'],['minskin','stone'],[1,2]],
stone_sanxian:['male','qun',2,['stone_sanxian'],['minskin','stone'],[2,0]],
stone_yisheng:['male','qun',1,['jijiu'],['minskin','stone'],[2,2]],
stone_yinshi:['male','qun',1,['stone_yinshi'],['minskin','stone'],[1,2]],
stone_banxian:['male','qun',3,['stone_banxian'],['minskin','stone'],[3,0]],
stone_daogu:['female','qun',1,['stone_daogu'],['minskin','stone'],[1,2]],
stone_gongzhu:['female','wu',1,['shushen'],['minskin','stone'],[2,2]],
stone_genv:['female','wei',1,['jieyin'],['minskin','stone'],[1,2]],
stone_wunv:['female','qun',1,['biyue'],['minskin','stone'],[3,2]],
stone_huanghou:['female','qun',2,['stone_huanghou'],['minskin','stone'],[3,1]],
stone_feipin:['female','qun',1,['guixiu'],['minskin','stone'],[1,2]],
stone_yiji:['female','qun',1,['stone_yiji'],['minskin','stone'],[2,2]],
},
skill:{
chaofeng:{
mark:true,
@ -1520,7 +1528,9 @@ mode.stone={
fengraozhijiao:'丰饶之角',
fengraozhijiao_info:'令一名随从回复全部体力',
stonecard:'法术'
stonecard:'法术',
mode_stone_card_config:'炉石模式',
mode_stone_character_config:'炉石模式',
},
ai:{
get:{

View File

@ -5,5 +5,5 @@
background-size:cover;
}
#arena:not(.chess) .player[data-position='0']>.equips>.equip5 {
border-radius: 8px;
border-radius: 4px;
}

View File

@ -35,6 +35,10 @@ body{
.player.unseen .equips:not(*:empty){
border-radius:4px;
}
#arena:not(.chess) .player[data-position='0']>.equips>.equip5 {
border-radius: 4px;
}
.card{
color:white;
}
@ -47,6 +51,15 @@ body{
#me>div>.card,#arena>.card:not(*:empty){
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 3px 10px;
}
/*.player{
background:repeating-linear-gradient(
135deg,
rgba(0,0,0,0.4),
rgba(0,0,0,0.4) 2px,
rgba(0,0,0,0.2) 2px,
rgba(0,0,0,0.2) 4px
);
}*/
.menupaused{
opacity: 0.3;