stone
|
@ -509,6 +509,7 @@ card.extra={
|
|||
bingliang_bg:'粮',
|
||||
bingliang_info:'目标角色判定阶段进行判定:若判定结果不为梅花,则跳过该角色的摸牌阶段。',
|
||||
hualiu_bg:'+马',
|
||||
hualiu_info:'其他角色与你的距离+1',
|
||||
zhuque_bg:'扇',
|
||||
zhuque_skill:'朱雀羽扇',
|
||||
zhuque_info:'你可以将一张普通【杀】当具火焰伤害的【杀】使用。',
|
||||
|
|
|
@ -242,6 +242,7 @@ card.guozhan={
|
|||
sanjian_skill:'三尖两刃刀',
|
||||
jingfanma_bg:'-马',
|
||||
jingfanma:'惊帆',
|
||||
jingfanma_info:'其他角色与你的距离-1',
|
||||
},
|
||||
list:[
|
||||
['heart',9,'yuanjiao'],
|
||||
|
|
|
@ -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.令你摸一张牌。',
|
||||
|
|
11
card/swd.js
|
@ -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"
|
||||
|
|
|
@ -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';
|
||||
});
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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')&¤t<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:{
|
||||
|
|
|
@ -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'],
|
||||
|
|
70
game/game.js
|
@ -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+=' '+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(){
|
||||
|
|
After Width: | Height: | Size: 61 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 94 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 51 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 49 KiB |
After Width: | Height: | Size: 49 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 135 KiB |
After Width: | Height: | Size: 108 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 109 KiB |
After Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 173 KiB After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 101 KiB |
After Width: | Height: | Size: 28 KiB |
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
1208
mode/stone.js
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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{
|
||||
|
|