This commit is contained in:
parent
507dcea9ea
commit
e55ad39a76
|
@ -1,6 +1,2 @@
|
|||
1.2.11
|
||||
火攻bug
|
||||
铁索结算问题
|
||||
酒杀AI
|
||||
新卡
|
||||
牌堆修正
|
||||
1.2.12
|
||||
AI
|
||||
|
|
|
@ -389,7 +389,7 @@ card.hearth={
|
|||
filterTarget:function(card,player,target){return player==target},
|
||||
content:function(){
|
||||
target.gainMaxHp();
|
||||
target.loseHp();
|
||||
target.discard(target.get('h'));
|
||||
},
|
||||
ai:{
|
||||
basic:{
|
||||
|
@ -399,12 +399,9 @@ card.hearth={
|
|||
order:1,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target.hp==target.maxHp){
|
||||
if(target.num('h','tao')) return 1;
|
||||
if(target.num('h','caoyao')) return 1;
|
||||
if(target.num('h','zhiliaobo')) return 1;
|
||||
if(target.num('h')<target.hp) return 1;
|
||||
}
|
||||
var nh=target.num('h');
|
||||
if(nh<=1) return 1;
|
||||
if(nh==2&&target.hp==target.maxHp) return 1;
|
||||
return 0;
|
||||
},
|
||||
},
|
||||
|
@ -485,9 +482,7 @@ card.hearth={
|
|||
type:'trick',
|
||||
enable:true,
|
||||
selectTarget:-1,
|
||||
filterTarget:function(card,player,target){
|
||||
return target.num('he')>0;
|
||||
},
|
||||
filterTarget:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
target.chooseToDiscard([1,2],'he').ai=function(card){
|
||||
|
@ -525,6 +520,7 @@ card.hearth={
|
|||
if(target==player) nh--;
|
||||
if(nh==2) return -2.5;
|
||||
if(nh==1) return -3;
|
||||
if(nh==0) return -4;
|
||||
return -2;
|
||||
},
|
||||
},
|
||||
|
@ -558,9 +554,9 @@ card.hearth={
|
|||
zhiliaobo:'治疗波',
|
||||
zhiliaobo_info:'对一名受伤角色使用,令其回复一点体力,若其仍处于受伤状态,则进行一次判定,若结果为红色则再回复一点体力',
|
||||
yuansuhuimie:'元素毁灭',
|
||||
yuansuhuimie_info:'对所有有手牌的角色使用,令目标弃置1~2张牌,并受到2-X点雷电伤害,X为其弃置的手牌数',
|
||||
yuansuhuimie_info:'对所有角色使用,令目标弃置1~2张牌,并受到2-X点雷电伤害,X为其弃置的手牌数',
|
||||
xingjiegoutong:'星界沟通',
|
||||
xingjiegoutong_info:'增加一点体力上限,然后流失一点体力',
|
||||
xingjiegoutong_info:'增加一点体力上限,弃置你的所有手牌',
|
||||
tanshezhiren:'弹射之刃',
|
||||
tanshezhiren_info:'弃置一名随机角色的手牌,重复此过程直到有一名角色失去最后一张手牌',
|
||||
chuansongmen:'传送门',
|
||||
|
|
|
@ -205,7 +205,10 @@ card.qimou={
|
|||
ai:{
|
||||
order:9,
|
||||
result:{
|
||||
target:-1
|
||||
target:function(player,target){
|
||||
if(target.num('e')) return -1;
|
||||
return 0;
|
||||
}
|
||||
},
|
||||
tag:{
|
||||
multitarget:1,
|
||||
|
|
|
@ -8,7 +8,7 @@ character.hearth={
|
|||
hs_malfurion:['male','wu',4,['jihuo'],['fullskin']],
|
||||
hs_guldan:['male','qun',3,['fenliu','hongxi'],['fullskin']],
|
||||
hs_anduin:['male','qun',3,['shengguang','shijie','anying'],['fullskin']],
|
||||
hs_sthrall:['male','wu',4,['tuteng','tzhenji'],['fullskin']],
|
||||
hs_sthrall:['male','wu',4,['tuteng','guozai'],['fullskin']],
|
||||
hs_waleera:['female','qun',3,['jianren','mengun','wlianji'],['fullskin']],
|
||||
|
||||
hs_medivh:['male','wei',3,['jingxiang','moying','mdzhoufu'],['fullskin']],
|
||||
|
@ -28,7 +28,7 @@ character.hearth={
|
|||
hs_wujiyuansu:['male','qun',3,['wujiwuji'],['fullskin']],
|
||||
hs_mijiaojisi:['female','qun',3,['kuixin'],['fullskin']],
|
||||
hs_huzhixiannv:['female','wu',3,['jingmeng','qingliu'],['fullskin']],
|
||||
hs_tgolem:['male','qun',4,['guozai'],['fullskin']],
|
||||
// hs_tgolem:['male','qun',4,['guozai'],['fullskin']],
|
||||
hs_totemic:['male','wu',3,['s_tuteng'],['fullskin']],
|
||||
},
|
||||
perfectPair:{
|
||||
|
@ -1211,11 +1211,11 @@ character.hearth={
|
|||
game.delay(0.5);
|
||||
var target=result.targets[0];
|
||||
player.logSkill('tzhenji',target,'thunder');
|
||||
target.damage('thunder');
|
||||
var cs=target.get('he');
|
||||
if(cs.length){
|
||||
target.discard(cs.randomGet());
|
||||
}
|
||||
target.damage('thunder');
|
||||
player.addTempSkill('tzhenji2','phaseAfter');
|
||||
}
|
||||
},
|
||||
|
@ -1232,6 +1232,27 @@ character.hearth={
|
|||
}
|
||||
},
|
||||
tzhenji2:{},
|
||||
zuling:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
if(player.storage.zuling) return false;
|
||||
var rand=['tuteng1','tuteng2','tuteng3','tuteng4'];
|
||||
var num=0;
|
||||
for(var i=0;i<player.skills.length;i++){
|
||||
if(rand.contains(player.skills[i])) num++;
|
||||
if(num>=3) return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
var rand=['tuteng1','tuteng2','tuteng3','tuteng4'];
|
||||
for(var i=0;i<rand.length;i++){
|
||||
player.removeSkill(rand[i]);
|
||||
}
|
||||
player.storage.zuling=true;
|
||||
}
|
||||
},
|
||||
tzhenji_old:{
|
||||
trigger:{player:['useCard','respondEnd']},
|
||||
filter:function(event){
|
||||
|
@ -1334,6 +1355,7 @@ character.hearth={
|
|||
s_tuteng:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
forced:true,
|
||||
unique:true,
|
||||
content:function(){
|
||||
var rand=['tuteng1','tuteng2','tuteng4',
|
||||
'tuteng5','tuteng6','tuteng7'];
|
||||
|
@ -1365,24 +1387,118 @@ character.hearth={
|
|||
tuteng:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
var rand=['tuteng1','tuteng2','tuteng3','tuteng4'];
|
||||
for(var i=0;i<player.skills.length;i++){
|
||||
rand.remove(player.skills[i]);
|
||||
if(rand.length==0) return false;
|
||||
unique:true,
|
||||
direct:true,
|
||||
check:function(){
|
||||
return 0;
|
||||
},
|
||||
delay:0,
|
||||
init:function(){
|
||||
for(var i=1;i<=8;i++){
|
||||
lib.translate['tuteng'+i+'_info']=lib.skill['tuteng'+i].intro.content;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
position:'he',
|
||||
content:function(){
|
||||
'step 0'
|
||||
var rand=['tuteng1','tuteng2','tuteng3','tuteng4'];
|
||||
var rand2=[];
|
||||
var randx=[];
|
||||
var rand2x=[];
|
||||
if(player.storage.tuteng_awake){
|
||||
rand=rand.concat(['tuteng5','tuteng6','tuteng7','tuteng8']);
|
||||
}
|
||||
for(var i=0;i<player.skills.length;i++){
|
||||
if(rand.contains(player.skills[i])){
|
||||
rand.remove(player.skills[i]);
|
||||
rand2.push(player.skills[i]);
|
||||
}
|
||||
}
|
||||
if(rand.length){
|
||||
if(event.isMine()&&rand.length>1){
|
||||
var dialog=ui.create.dialog();
|
||||
for(var i=0;i<rand.length;i++){
|
||||
randx[i]=['','',rand[i]];
|
||||
}
|
||||
for(var i=0;i<rand2.length;i++){
|
||||
rand2x[i]=['','',rand2[i]];
|
||||
}
|
||||
dialog.add('选择一个图腾');
|
||||
dialog.add([randx,'vcard']);
|
||||
if(rand2.length>=3){
|
||||
dialog.add('替换一个已有图腾');
|
||||
dialog.add([rand2x,'vcard']);
|
||||
player.chooseButton(dialog,2,true).filterButton=function(button){
|
||||
if(ui.selected.buttons.length){
|
||||
var current=ui.selected.buttons[0].name;
|
||||
if(rand.contains(current)){
|
||||
return rand2.contains(button.name);
|
||||
}
|
||||
else{
|
||||
return rand.contains(button.name);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
}
|
||||
else{
|
||||
player.chooseButton(dialog,true);
|
||||
}
|
||||
for(var i=0;i<dialog.buttons.length;i++){
|
||||
var item=dialog.buttons[i]
|
||||
if(i==4){
|
||||
item.parentNode.insertBefore(document.createElement('br'),item);
|
||||
}
|
||||
item.style.zoom=0.7;
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(player.hp<player.maxHp&&rand.contains('tuteng1')){
|
||||
player.addSkill('tuteng1');
|
||||
}
|
||||
else{
|
||||
player.addSkill(rand.randomGet());
|
||||
}
|
||||
player.addTempSkill('tuteng_h','phaseAfter');
|
||||
if(rand2.length>=3){
|
||||
player.removeSkill(rand2.randomGet());
|
||||
}
|
||||
game.delay();
|
||||
event.finish();
|
||||
}
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 1'
|
||||
if(result.buttons.length==1){
|
||||
player.addSkill(result.buttons[0].name);
|
||||
}
|
||||
else if(result.buttons.length==2){
|
||||
var skill1=result.buttons[0].name;
|
||||
var skill2=result.buttons[1].name;
|
||||
if(player.skills.contains(skill1)){
|
||||
player.removeSkill(skill1);
|
||||
player.addSkill(skill2);
|
||||
}
|
||||
else{
|
||||
player.removeSkill(skill2);
|
||||
player.addSkill(skill1);
|
||||
}
|
||||
}
|
||||
player.addSkill(event.choice);
|
||||
if(!player.storage.tuteng_awake){
|
||||
var rand=['tuteng1','tuteng2','tuteng3','tuteng4',
|
||||
'tuteng5','tuteng6','tuteng7','tuteng8'];
|
||||
var num=0;
|
||||
for(var i=0;i<player.skills.length;i++){
|
||||
if(rand.contains(player.skills[i])) num++;
|
||||
if(num>=3){
|
||||
player.storage.tuteng_awake=true;
|
||||
player.popup('图腾已解锁');
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:11,
|
||||
|
@ -1391,7 +1507,7 @@ character.hearth={
|
|||
},
|
||||
effect:function(card,player){
|
||||
if(get.tag(card,'damage')){
|
||||
if(player.skills.contains('jueqing')) return [1,1];
|
||||
if(player.skills.contains('jueqing')) return;
|
||||
return 1.2;
|
||||
}
|
||||
},
|
||||
|
@ -1411,14 +1527,16 @@ character.hearth={
|
|||
forced:true,
|
||||
popup:false,
|
||||
filter:function(event,player){
|
||||
var tuteng=['tuteng1','tuteng2','tuteng3','tuteng4'];
|
||||
var tuteng=['tuteng1','tuteng2','tuteng3','tuteng4',
|
||||
'tuteng5','tuteng6','tuteng7','tuteng8'];
|
||||
for(var i=0;i<player.skills.length;i++){
|
||||
if(tuteng.contains(player.skills[i])) return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
var tuteng=['tuteng1','tuteng2','tuteng3','tuteng4'];
|
||||
var tuteng=['tuteng1','tuteng2','tuteng3','tuteng4',
|
||||
'tuteng5','tuteng6','tuteng7','tuteng8'];
|
||||
var rand=[];
|
||||
for(var i=0;i<player.skills.length;i++){
|
||||
if(tuteng.contains(player.skills[i])){
|
||||
|
@ -1432,6 +1550,7 @@ character.hearth={
|
|||
},
|
||||
tuteng1:{
|
||||
mark:'image',
|
||||
nopop:true,
|
||||
intro:{
|
||||
content:'回合结束阶段,你回复一点体力'
|
||||
},
|
||||
|
@ -1446,6 +1565,7 @@ character.hearth={
|
|||
},
|
||||
tuteng2:{
|
||||
mark:'image',
|
||||
nopop:true,
|
||||
intro:{
|
||||
content:'每当你造成一点伤害,你摸一张牌'
|
||||
},
|
||||
|
@ -1460,6 +1580,7 @@ character.hearth={
|
|||
},
|
||||
tuteng3:{
|
||||
mark:'image',
|
||||
nopop:true,
|
||||
intro:{
|
||||
content:'你受到的伤害-1'
|
||||
},
|
||||
|
@ -1474,6 +1595,7 @@ character.hearth={
|
|||
},
|
||||
tuteng4:{
|
||||
mark:'image',
|
||||
nopop:true,
|
||||
intro:{
|
||||
content:'你的锦囊牌造成的伤害+1'
|
||||
},
|
||||
|
@ -1488,6 +1610,7 @@ character.hearth={
|
|||
},
|
||||
tuteng5:{
|
||||
mark:'image',
|
||||
nopop:true,
|
||||
intro:{
|
||||
content:'回合结束阶段,你摸一张牌'
|
||||
},
|
||||
|
@ -1499,6 +1622,7 @@ character.hearth={
|
|||
},
|
||||
tuteng6:{
|
||||
mark:'image',
|
||||
nopop:true,
|
||||
intro:{
|
||||
content:'你的杀造成的伤害+1'
|
||||
},
|
||||
|
@ -1513,6 +1637,7 @@ character.hearth={
|
|||
},
|
||||
tuteng7:{
|
||||
mark:'image',
|
||||
nopop:true,
|
||||
intro:{
|
||||
content:'回合结束阶段,你令一名其他角色回复一点体力'
|
||||
},
|
||||
|
@ -1540,6 +1665,18 @@ character.hearth={
|
|||
}
|
||||
}
|
||||
},
|
||||
tuteng8:{
|
||||
mark:'image',
|
||||
nopop:true,
|
||||
intro:{
|
||||
content:'当计算你与其它角色的距离时,始终-1'
|
||||
},
|
||||
mod:{
|
||||
globalFrom:function(from,to,distance){
|
||||
return distance-1;
|
||||
}
|
||||
}
|
||||
},
|
||||
fenliu:{
|
||||
enable:'phaseUse',
|
||||
prompt:'流失1点体力并摸两张牌',
|
||||
|
@ -1586,24 +1723,51 @@ character.hearth={
|
|||
card:{
|
||||
tuteng1:{
|
||||
image:'card/tuteng1',
|
||||
color:'white',
|
||||
noname:true,
|
||||
textShadow:'black 0 0 2px',
|
||||
},
|
||||
tuteng2:{
|
||||
image:'card/tuteng2',
|
||||
color:'white',
|
||||
noname:true,
|
||||
textShadow:'black 0 0 2px',
|
||||
},
|
||||
tuteng3:{
|
||||
image:'card/tuteng3',
|
||||
color:'white',
|
||||
noname:true,
|
||||
textShadow:'black 0 0 2px',
|
||||
},
|
||||
tuteng4:{
|
||||
image:'card/tuteng4',
|
||||
color:'white',
|
||||
noname:true,
|
||||
textShadow:'black 0 0 2px',
|
||||
},
|
||||
tuteng5:{
|
||||
image:'card/tuteng5',
|
||||
color:'white',
|
||||
noname:true,
|
||||
textShadow:'black 0 0 2px',
|
||||
},
|
||||
tuteng6:{
|
||||
image:'card/tuteng6',
|
||||
color:'white',
|
||||
noname:true,
|
||||
textShadow:'black 0 0 2px',
|
||||
},
|
||||
tuteng7:{
|
||||
image:'card/tuteng7',
|
||||
color:'white',
|
||||
noname:true,
|
||||
textShadow:'black 0 0 2px',
|
||||
},
|
||||
tuteng8:{
|
||||
image:'card/tuteng8',
|
||||
color:'white',
|
||||
noname:true,
|
||||
textShadow:'black 0 0 2px',
|
||||
},
|
||||
},
|
||||
translate:{
|
||||
|
@ -1711,7 +1875,9 @@ character.hearth={
|
|||
jingxiang:'镜像',
|
||||
jingxiang_info:'每当你需要打出卡牌时,你可以观看一名随机角色的手牌并将其视为你的手牌打出',
|
||||
tuteng:'图腾',
|
||||
tuteng_info:'出牌阶段限一次,你可以随机获得一个图腾,并令你本回合的手牌上限-1;每当你受到一次伤害,你随机失去一个图腾',
|
||||
tuteng_info:'出牌阶段,你可以获得一个基础图腾,当你的图腾数量达到3时,你解锁全部图腾;每当你受到一次伤害,你随机失去一个图腾',
|
||||
zuling:'祖灵',
|
||||
zuling_info:'觉醒技,回合开始阶段,若你拥有至少3个图腾,你失去所有图腾,并解锁强化图腾',
|
||||
tuteng1:'治疗图腾',
|
||||
tuteng2:'灼热图腾',
|
||||
tuteng3:'石爪图腾',
|
||||
|
@ -1719,6 +1885,7 @@ character.hearth={
|
|||
tuteng5:'法力之潮图腾',
|
||||
tuteng6:'火舌图腾',
|
||||
tuteng7:'活力图腾',
|
||||
tuteng8:'图腾魔像',
|
||||
tzhenji:'震击',
|
||||
tzhenji_info:'每当你因弃置而失去黑色牌,可对一名角色造成1点雷电伤害,并随机弃置其一张牌,每回合限发动一次',
|
||||
fenliu:'分流',
|
||||
|
|
|
@ -78,6 +78,7 @@ character.jiange={
|
|||
"step 1"
|
||||
if(event.targets.length){
|
||||
event.targets.shift().damage('thunder');
|
||||
event.redo();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -2028,6 +2028,7 @@ character.swd={
|
|||
}
|
||||
player.draw();
|
||||
player.useCard({name:'sha'},cards,targets,'jianji',false).animate=false;
|
||||
player.line(targets,'fire');
|
||||
"step 1"
|
||||
if(event.added){
|
||||
player.skills.remove('unequip');
|
||||
|
|
|
@ -2051,7 +2051,7 @@ character.yijiang={
|
|||
player.getStat('skill').qice--;
|
||||
for(var i in lib.card){
|
||||
if(lib.card[i].mode&&lib.card[i].mode.contains(lib.config.mode)==false) continue;
|
||||
if(lib.card[i].type=='trick') list.push(['','',i]);
|
||||
if(lib.card[i].type=='trick') list.push(['锦囊','',i]);
|
||||
}
|
||||
var dialog=ui.create.dialog([list,'vcard']);
|
||||
player.chooseButton(dialog,function(button){
|
||||
|
|
13
game/game.js
13
game/game.js
|
@ -4320,6 +4320,9 @@
|
|||
if(this.node.background.innerHTML.length>1) this.node.background.classList.add('tight');
|
||||
else this.node.background.classList.remove('tight');
|
||||
}
|
||||
if(lib.card[card[2]].noname){
|
||||
this.node.name.style.display='none';
|
||||
}
|
||||
if(lib.card[card[2]].color){
|
||||
this.style.color=lib.card[card[2]].color;
|
||||
}
|
||||
|
@ -10739,6 +10742,7 @@
|
|||
var skills=node.skills;
|
||||
var skills2=game.filterSkills(node.skills,node);
|
||||
for(i=0;i<skills.length;i++){
|
||||
if(lib.skill[skills[i]]&&lib.skill[skills[i]].nopop) continue;
|
||||
if(lib.translate[skills[i]+'_info']){
|
||||
translation=get.translation(skills[i]).slice(0,2);
|
||||
if(!skills2.contains(skills[i])){
|
||||
|
@ -10828,7 +10832,7 @@
|
|||
if(typeof info.mark=='function'){
|
||||
var stint=info.mark(uiintro,player.storage[node.skill],player);
|
||||
if(stint){
|
||||
if(stint.length<=10){
|
||||
if(stint.length<=100){
|
||||
uiintro.add('<div class="text center">'+stint+'</div>');
|
||||
}
|
||||
else{
|
||||
|
@ -10842,7 +10846,7 @@
|
|||
if(stint[0]=='$'){
|
||||
uiintro.add('<div class="caption">'+stint.slice(1)+'</div>');
|
||||
}
|
||||
else if(stint.length<=10){
|
||||
else if(stint.length<=100){
|
||||
uiintro.add('<div class="text center">'+stint+'</div>');
|
||||
}
|
||||
else{
|
||||
|
@ -10886,8 +10890,13 @@
|
|||
}
|
||||
}
|
||||
else if(lib.translate[name+'_info']){
|
||||
if(lib.translate[name+'_info'].length<=100){
|
||||
uiintro.add('<div class="text center">'+lib.translate[name+'_info']+'</div>');
|
||||
}
|
||||
else{
|
||||
uiintro.add('<div class="text">'+lib.translate[name+'_info']+'</div>');
|
||||
}
|
||||
}
|
||||
uiintro.add(ui.create.div('.placeholder.slim'));
|
||||
}
|
||||
else if(node.classList.contains('character')){
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
|
@ -27,6 +27,11 @@ html{
|
|||
text-shadow:none;
|
||||
background: url('wood3.png');
|
||||
}
|
||||
.marks>.card:not(.fullskin){
|
||||
color: white;
|
||||
text-shadow: black 0 0 2px;
|
||||
background: linear-gradient(#4b4b4b, #464646);
|
||||
}
|
||||
#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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue