This commit is contained in:
libccy 2016-02-04 14:55:02 +08:00
parent 812a0d4e5e
commit 8113913138
47 changed files with 1333 additions and 79 deletions

View File

@ -509,6 +509,7 @@ card.extra={
bingliang_bg:'粮',
bingliang_info:'目标角色判定阶段进行判定:若判定结果不为梅花,则跳过该角色的摸牌阶段。',
hualiu_bg:'+马',
hualiu_info:'其他角色与你的距离+1',
zhuque_bg:'扇',
zhuque_skill:'朱雀羽扇',
zhuque_info:'你可以将一张普通【杀】当具火焰伤害的【杀】使用。',

View File

@ -242,6 +242,7 @@ card.guozhan={
sanjian_skill:'三尖两刃刀',
jingfanma_bg:'-马',
jingfanma:'惊帆',
jingfanma_info:'其他角色与你的距离-1',
},
list:[
['heart',9,'yuanjiao'],

View File

@ -1603,11 +1603,9 @@ card.standard={
jueying_info:'其他角色与你的距离+1',
dilu_info:'其他角色与你的距离+1',
zhuahuang_info:'其他角色与你的距离+1',
hualiu_info:'其他角色与你的距离+1',
chitu_info:'你与其他角色的距离-1',
dawan_info:'你与其他角色的距离-1',
zixin_info:'你与其他角色的距离-1',
jingfanma_info:'你与其他角色的距离-1',
zhuge_skill_info:'你于出牌阶段内使用【杀】无次数限制。',
zhuge_info:'你于出牌阶段内使用【杀】无次数限制。',
cixiong_skill_info:'每当你使用【杀】指定一名异性的目标角色后你可以令其选择一项1.弃置一张手牌2.令你摸一张牌。',

View File

@ -291,6 +291,9 @@ card.swd={
result:{
target:function(player,target){
if(target&&target==_status.dying) return 2;
if(lib.config.mode=='stone'&&!player.isMin()){
if(player.getActCount()+1>=player.actcount) return false;
}
var shas=target.get('h','sha');
var ok=false;
if(shas.length){
@ -847,10 +850,10 @@ card.swd={
"step 0"
player.judge(function(card){
switch(get.suit(card)){
case 'heart':return player.maxHp>player.hp?2:0;break;
case 'diamond':return 1;break;
case 'club':return 1;break;
case 'spade':return 0;break;
case 'heart':return player.maxHp>player.hp?2:0;
case 'diamond':return 1;
case 'club':return 1;
case 'spade':return 0;
}
});
"step 1"

View File

@ -1775,6 +1775,7 @@ character.shenhua={
content:function(){
"step 0"
player.chooseControl('baonue_hp','baonue_maxHp',function(event,player){
if(player.hp==player.maxHp) return 'baonue_hp';
if(player.hp<player.maxHp-1||player.hp<=2) return 'baonue_maxHp';
return 'baonue_hp';
});

View File

@ -356,7 +356,9 @@ character.sp={
filter:function(event,player){
if(player.num('h')>=player.hp) return false;
for(var i=0;i<game.players.length;i++){
if(player!=game.players[i]&&get.distance(player,game.players[i],'attack')<=1){
if(player!=game.players[i]&&
get.distance(player,game.players[i],'attack')<=1&&
game.players[i].num('he')){
return true;
}
}
@ -371,7 +373,7 @@ character.sp={
content:function(){
'step 0'
player.chooseTarget('焚天:选择一名攻击范围内的角色,将其一张牌置于你的武将牌上',true,function(card,player,target){
return player!=target&&get.distance(player,target,'attack')<=1;
return player!=target&&get.distance(player,target,'attack')<=1&&target.num('he')>0;
}).ai=function(target){
return -ai.get.attitude(player,target)
}

View File

@ -921,6 +921,18 @@ character.yijiang={
trigger.responded=true;
trigger.result={bool:true,card:{name:'shan'}}
}
},
ai:{
effect:{
target:function(card,player,target,current){
if(get.tag(card,'respondShan')&&current<0){
var nh=player.num('h');
for(var i=0;i<game.players.length;i++){
if(game.players[i].num('h')>nh) return 0.4;
}
}
}
}
}
},
huaiyi:{

View File

@ -5,9 +5,9 @@ window.config={
forbidall:['caocao','simayi','guanyu','zhangfei','zhaoyun','ganning','lvmeng','lvbu',
'xiahouyuan','huangzhong','weiyan','dianwei','gongsunzan','zhangjiao'],
forbidversus:['swd_kangnalishi'],
forbidstone:['zhugedan','pal_xuanxiao','hs_malfurion','lusu','chenlin','gjqt_bailitusu',
'swd_anka','swd_nicole','daqiao','re_daqiao','zhuran','huatuo','swd_tuwei','hs_guldan','wangyi',
'swd_guyue','swd_jiangziya','guojia','re_guojia','shen_caocao','swd_qiner','gjqt_aruan'],
forbidstone:['zhugedan','pal_xuanxiao','hs_malfurion','lusu','chenlin','gjqt_bailitusu','yuanshao',
'swd_anka','swd_nicole','daqiao','re_daqiao','zhuran','huatuo','swd_tuwei','hs_guldan','wangyi','caoang',
'swd_guyue','swd_jiangziya','guojia','re_guojia','shen_caocao','swd_qiner','gjqt_aruan','swd_hanluo'],
forbidchess:['hetaihou','swd_kangnalishi'],
forbidboss:['caiwenji','gjqt_aruan','pal_xuanxiao','swd_hupo'],
forbiddouble:['zhugedan','swd_kangnalishi','dongzhuo','wutugu','jg_simayi','hs_siwangzhiyi','hs_ronghejuren','hs_shanlingjuren'],

View File

@ -2441,11 +2441,13 @@
// map.deck_length.show();
// map.deck_repeat.show();
map.random_length.hide();
map.skill_bar.show();
}
else{
// map.deck_length.hide();
// map.deck_repeat.hide();
map.random_length.show();
map.skill_bar.hide();
}
},
stone_mode:{
@ -2509,6 +2511,12 @@
}
},
},
skill_bar:{
name:'怒气值',
init:true,
frequent:true,
restart:true,
},
double_character:{
name:'双将模式',
init:false,
@ -2627,13 +2635,18 @@
'<div style="margin:10px">职业技能</div><ul style="margin-top:0"><li>祭司:召唤一个随机图腾'+
'<li>法师:对一名随从造成一点火焰伤害'+
'<li>牧师:回复一点体力'+
'<li>战士:获得一点护甲(不能超过5点)'+
'<li>战士:获得一点护甲(不能超过3点)'+
'<li>术士:牌库中摸两张牌'+
'<li>潜行者:装备一把武器和一个随机非武器装备'+
'<li>圣骑士:召唤一名士兵'+
'<li>猎人:对敌方主将造成一点伤害'+
'<li>德鲁伊:视为使用一张不计入出杀次数的杀</ul>'+
'<div style="margin:10px">怒气值</div><ul style="margin-top:0"><li>每当友方随从受到伤害获得3点怒气值主将受到伤害获得6点怒气值'+
'<li>每有一个友方随从死亡获得10点怒气值主将死亡获得20点怒气值'+
'<li>回合结束阶段若己方随从数少于对方会获得10X点怒气值X为随从数之差'+
'<li>怒气值达到100时不再增加。回合开始阶段若怒气值己满可消耗全部怒气值并召唤一名传说随从</ul>'+
'<div style="margin:10px">战斗</div><ul style="margin-top:0"><li>游戏流程类似1v1场上有两名主将进行对抗主将的体力上限+1'+
'<li>游戏牌堆移除了乐不思蜀等跳过出牌阶段的卡牌'+
'<li>主将出牌阶段的出牌数量行动值有上限先手为2后手为3装备牌不计入出牌上限<li>游戏每进行一轮,主将的出牌上限+1超过6时减至3并重新累加'+
'<li>使用随从牌可召唤一个随从随从出场时背面朝上。每一方在场的随从数不能超过4<li>随从于摸牌阶段摸牌基数为1随从的随从牌均视为闪装备牌均视为杀<li>'+
'随从与其他所有角色相互距离基数为1<li>'+
@ -2642,6 +2655,20 @@
'<li>嘲讽:若一方阵营中有嘲讽角色,则同阵营的无嘲讽角色不以能成为杀目标'+
'<li>行动顺序为先主将后随从。主将或随从死亡后立即移出游戏主将死亡后替补登场替补登场时摸3+X张牌X为对方存活的随从数无替补时游戏结束'
},
setIntro:function(node,func){
if(lib.config.touchscreen){
lib.setLongPress(node,ui.click.intro);
}
else{
if(lib.config.hover_all){
lib.setHover(node,ui.click.hoverplayer);
}
if(lib.config.right_info){
node.oncontextmenu=ui.click.rightplayer;
}
}
node._customintro=func;
},
setPopped:function(node,func,width,height){
node._poppedfunc=func;
node._poppedwidth=width;
@ -3966,7 +3993,7 @@
event.dialog.add('手牌');
var hs=target.get('h');
hs.randomSort();
if(event.visible){
if(event.visible||target==player){
event.dialog.add(hs);
}
else{
@ -4042,7 +4069,7 @@
event.dialog.add('手牌');
var hs=target.get('h');
hs.randomSort();
if(event.visible){
if(event.visible||target==player){
event.dialog.add(hs);
}
else{
@ -5115,7 +5142,9 @@
if(ui.wuxie) ui.wuxie.hide();
}
game.addVideo('diex',player);
player.$die(source);
if(event.animate!==false){
player.$die(source);
}
if(player.dieAfter) player.dieAfter(source);
if(typeof _status.coin=='number'&&source&&!_status.auto){
if(source==game.me||source.isUnderControl()){
@ -9335,6 +9364,12 @@
prepare:function(cards,player){
player.$throw(cards,1000);
},
check:function(card){
if(get.type(card)=='stonecharacter'&&_status.event.player.num('h',{type:'stonecharacter'})<=1){
return 0;
}
return 1;
},
discard:false,
delay:0.5,
content:function(){
@ -20598,7 +20633,22 @@
return uiintro;
}
var i,translation,intro,str;
if(node.classList.contains('player')){
if(typeof node._customintro=='function'){
node._customintro(uiintro);
}
else if(Array.isArray(node._customintro)){
var caption=node._customintro[0];
var content=node._customintro[1];
if(typeof caption=='function'){
caption=caption(node);
}
if(typeof content=='function'){
content=content(node);
}
uiintro.add(caption);
uiintro.add('<div class="text center" style="padding-bottom:5px">'+content+'</div>');
}
else if(node.classList.contains('player')){
var capt=get.translation(node.name);
if(lib.character[node.name]&&lib.character[node.name][1]){
capt+='&nbsp;&nbsp;'+lib.translate[lib.character[node.name][1]];
@ -20880,6 +20930,16 @@
uiintro.add(get.translation(career));
uiintro.add('<div class="text center" style="padding-bottom:5px">'+lib.translate['_'+career+'_skill_info']+'</div>');
}
else if(node.classList.contains('skillbar')){
if(node==ui.friendBar){
uiintro.add('友方怒气值');
uiintro.add('<div class="text center" style="padding-bottom:5px">'+_status.friendRage+'/100</div>');
}
else if(node==ui.enemyBar){
uiintro.add('敌方怒气值');
uiintro.add('<div class="text center" style="padding-bottom:5px">'+_status.enemyRage+'/100</div>');
}
}
return uiintro;
},
groups:function(){

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

BIN
image/character/stone_kelushi.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
image/character/stone_meimo.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

View File

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -727,8 +727,12 @@ margin-bottom: 5px;
border: 1px solid rgba(31, 82, 131, 1);
}
.hp.actcount>div.overflow:not(.lost){
background: rgb(162, 162, 162);
border: 1px solid rgb(117, 117, 117);
background: rgb(154, 154, 154);
border: 1px solid rgb(109, 109, 109);
}
.hp.actcount.overflow2>div.overflow:not(.lost){
background: rgb(173, 129, 63);
border: 1px solid rgb(131, 109, 31);
}
.hp.actcount>.lost{
background: rgba(63, 119, 173,1);

View File

@ -270,6 +270,84 @@
display: none !important;
}
#arena>.skillbar{
width: 65px;
height: 65px;
border-radius: 100%;
font-size: 55px;
font-family: 'huangcao';
top:calc(50% - 110px);
line-height: 65px;
text-align: center;
}
#arena>.skillbar.left{
left:0;
right: auto;
}
#arena>.skillbar.right{
right:0;
left:auto;
}
#arena>.skillbar>div{
border-radius: 100%;
width: 55px;
height: 55px;
position: absolute;
margin: 0;
padding: 0;
left: 5px;
top: 5px;
overflow: hidden;
}
#arena>.skillbar>.skillbarshadow{
box-shadow: 0px 0px 8px #222 inset;
z-index: 1;
}
#arena>.skillbar>.skillbarfill>div{
box-shadow: 0px 0px 10px #555 inset,rgba(0, 0, 0, 0.05) 0 0 0 1px;
width: 200%;
height: 200%;
position: absolute;
margin: 0;
padding: 0;
background-color: rgba(63, 119, 173,1);
left: -50%;
top: 100%;
}
#arena>.skillbar.full>.skillbarfill>div{
box-shadow: none;
background-color: red;
}
#arena>.skillbar.full{
/*transform: scale(1.1);*/
/*box-shadow: rgba(0, 0, 0, 0.1) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 3px 10px;
-webkit-animation:skillbarglow 3s infinite;*/
}
#arena>.skillbar>.skillbartext{
font-family: 'xinwei';
font-size: 35px;
width: 100%;
text-align: center;
height: 35px;
line-height: 40px;
overflow: visible;
margin: 0;
padding: 0;
left: 0;
top: 15px;
z-index: 2;
opacity: 0;
}
/*#arena>.skillbar>.skillbartext:hover{
opacity: 1;
}*/
@-webkit-keyframes skillbarglow{
0%{box-shadow: rgba(0, 0, 0, 0.1) 0 0 0 1px, rgba(255, 0, 0, 0.4) 0 0 5px}
50%{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, 1) 0 0 30px, rgba(255, 0, 0, 0.2) 0 0 30px}
100%{box-shadow: rgba(0, 0, 0, 0.1) 0 0 0 1px, rgba(255, 0, 0, 0.4) 0 0 5px}
}
div[data-career='mage']{
background-image: url('../../../image/card/stone_mage.png');
background-size:cover;

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@ body[data-background_color_music='blue']{
}
#system>div>div,#mebg,.control,.player,.card,.avatar,.avatar2,.button,#window>.dialog.popped,
.player.unseen .equips:not(*:empty),.menu,#splash>div,
#arena.mobile:not(.chess) .player[data-position='0'] .equips{
#arena.mobile:not(.chess) .player[data-position='0'] .equips,.playerbg{
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(#4b4b4b, #464646);
border-radius: 8px;

View File

@ -16,7 +16,7 @@ body{
}
#system>div>div,#mebg,.control,.player,.card,.avatar,.avatar2,.button,#window>.dialog.popped,
.player.unseen .equips:not(*:empty),.menu,.menubutton,#splash>div,
#arena.mobile:not(.chess) .player[data-position='0'] .equips{
#arena.mobile:not(.chess) .player[data-position='0'] .equips,.playerbg{
box-shadow: rgba(0, 0, 0, 0.4) 0 0 0 1px, rgba(0, 0, 0, 0.2) 0 3px 10px;
background-image: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4));
border-radius: 8px;

View File

@ -9,7 +9,7 @@ body[data-background_color_wood='black']{
background: url('grid.png'),linear-gradient(#333333, #222222) fixed;
}
#system>div>div,#mebg,.control,.player,.card,.avatar,.avatar2,.button,.dialog>.bar,.menu,#splash>div,
#arena.mobile:not(.chess) .player[data-position='0'] .equips{
#arena.mobile:not(.chess) .player[data-position='0'] .equips,.playerbg{
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 3px 10px;
border-radius: 8px;
}
@ -66,7 +66,7 @@ body[data-background_color_wood='black']{
color: rgb(62, 41, 30);
}
.player,.card,.button,.dialog>.bar,
#arena.mobile:not(.chess) .player[data-position='0'] .equips{
#arena.mobile:not(.chess) .player[data-position='0'] .equips,.playerbg{
background: url('wood.jpg');
}
.control,#system>div>div,.menubutton,#system>div>.pressdown2{