1.7.11
|
@ -117,9 +117,7 @@ card.guozhan={
|
|||
},
|
||||
ai:{
|
||||
wuxie:function(){
|
||||
if(lib.config.mode=='guozhan'){
|
||||
return 0;
|
||||
}
|
||||
},
|
||||
basic:{
|
||||
useful:3,
|
||||
|
|
374
card/qimou.js
|
@ -1,374 +0,0 @@
|
|||
'use strict';
|
||||
card.qimou={
|
||||
card:{
|
||||
chenhuodajie:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
content:function(){
|
||||
if(target.num('he')){
|
||||
player.gainPlayerCard('he',target,true);
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
useful:6,
|
||||
value:6,
|
||||
result:{
|
||||
target:-1
|
||||
},
|
||||
tag:{
|
||||
loseCard:1
|
||||
}
|
||||
}
|
||||
},
|
||||
shushangkaihua:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
enable:true,
|
||||
selectTarget:-1,
|
||||
multitarget:true,
|
||||
multiline:true,
|
||||
filterTarget:function(card,player,target){
|
||||
if(player==target) return true;
|
||||
var num=target.num('h');
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].num('h')<num) return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
content:function(){
|
||||
// target.draw();
|
||||
game.asyncDraw(targets);
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
value:5,
|
||||
result:{
|
||||
target:1
|
||||
}
|
||||
}
|
||||
},
|
||||
huoshaolianying:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
filterTarget:function(card,player,target){
|
||||
if(player==target) return false;
|
||||
var link=false;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].isLinked()&&game.players[i]!=player){
|
||||
link=true;break;
|
||||
}
|
||||
}
|
||||
if(link){
|
||||
if(!target.isLinked()) return false;
|
||||
var distance=get.distance(player,target,'absolute');
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(target!=game.players[i]&&
|
||||
game.players[i]!=player&&
|
||||
game.players[i].isLinked()){
|
||||
if(get.distance(player,game.players[i],'absolute')<distance){
|
||||
return false;
|
||||
}
|
||||
if(get.distance(player,game.players[i],'absolute')==distance&&
|
||||
parseInt(game.players[i].dataset.position)<parseInt(target.dataset.position)){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
var dist=get.distance(player,target);
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]!=player&&get.distance(player,game.players[i])<dist) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
},
|
||||
enable:true,
|
||||
selectTarget:-1,
|
||||
content:function(){
|
||||
target.damage('fire');
|
||||
},
|
||||
ai:{
|
||||
order:5,
|
||||
value:6,
|
||||
tag:{
|
||||
damage:1,
|
||||
natureDamage:1,
|
||||
fireDamage:1,
|
||||
},
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target.hasSkillTag('nofire')||target.hasSkillTag('nodamage')) return 0;
|
||||
if(target.skills.contains('xuying')&&target.num('h')==0) return 0;
|
||||
if(!target.isLinked()){
|
||||
return ai.get.damageEffect(target,player,target,'fire');
|
||||
}
|
||||
var num=0;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].isLinked()){
|
||||
var eff=ai.get.damageEffect(game.players[i],player,target,'fire');
|
||||
if(eff>0){
|
||||
num++;
|
||||
}
|
||||
else if(eff<0){
|
||||
num--;
|
||||
}
|
||||
}
|
||||
}
|
||||
return num;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
yihuajiemu:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
enable:true,
|
||||
filterTarget:function(card,player,target){
|
||||
if(target.isMin()) return false;
|
||||
if(ui.selected.targets.length){
|
||||
return target.get('e',{subtype:'equip5'}).length==0;
|
||||
}
|
||||
else{
|
||||
return target.get('e',{subtype:'equip5'}).length>0;
|
||||
}
|
||||
},
|
||||
selectTarget:2,
|
||||
multitarget:true,
|
||||
content:function(){
|
||||
if(targets[0].get('e','5')){
|
||||
targets[0].$give(targets[0].get('e','5'),targets[1]);
|
||||
targets[1].equip(targets[0].get('e','5'));
|
||||
game.delay();
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target.get('e',{subtype:'equip5'}).length){
|
||||
if(ai.get.attitude(target,player)>0){
|
||||
return -0.5;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
},
|
||||
tag:{
|
||||
loseCard:1
|
||||
}
|
||||
}
|
||||
},
|
||||
fudichouxin:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
enable:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return player!=target&&target.get('h').length;
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToCompare(target).clear=false;
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.gain([result.player,result.target]);
|
||||
result.player.clone.moveDelete(player);
|
||||
result.target.clone.moveDelete(player);
|
||||
game.addVideo('gain2',player,get.cardsInfo([result.player,result.target]));
|
||||
}
|
||||
else if(!result.cancelled){
|
||||
result.player.clone.delete();
|
||||
result.target.clone.delete();
|
||||
game.addVideo('deletenode',player,get.cardsInfo([result.player,result.target]));
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:4,
|
||||
result:{
|
||||
target:function(player){
|
||||
if(player.get('h').length<=1) return 0;
|
||||
return -1;
|
||||
},
|
||||
player:function(player){
|
||||
if(player.get('h').length<=1) return 0;
|
||||
return 0.5;
|
||||
}
|
||||
},
|
||||
tag:{
|
||||
loseCard:1
|
||||
}
|
||||
}
|
||||
},
|
||||
shuiyanqijun:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
enable:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return target.num('e');
|
||||
},
|
||||
selectTarget:-1,
|
||||
content:function(){
|
||||
if(target.num('e')) target.chooseToDiscard('e',true);
|
||||
},
|
||||
ai:{
|
||||
order:9,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target.num('e')) return -1;
|
||||
return 0;
|
||||
}
|
||||
},
|
||||
tag:{
|
||||
multitarget:1,
|
||||
multineg:1
|
||||
}
|
||||
}
|
||||
},
|
||||
toulianghuanzhu:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
enable:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return target.num('h')>0;
|
||||
},
|
||||
selectTarget:2,
|
||||
multitarget:true,
|
||||
targetprompt:['被拿牌','得牌'],
|
||||
content:function(){
|
||||
"step 0"
|
||||
targets[0].addTempSkill('toulianghuanzhu2','phaseAfter');
|
||||
var hs=targets[0].get('h');
|
||||
event.num=Math.min(2,hs.length);
|
||||
if(event.num){
|
||||
targets[1].gain(hs.randomGets(event.num));
|
||||
targets[0].$give(event.num,targets[1]);
|
||||
game.delay();
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
"step 1"
|
||||
if(targets[1].num('h')){
|
||||
if(_status.auto&&targets[1]==game.me){
|
||||
game.delay();
|
||||
}
|
||||
targets[1].chooseCard(true,event.num,'选择'+get.cnNumber(event.num)+'张手牌还给'+get.translation(targets[0])).ai=ai.get.disvalue;
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
"step 2"
|
||||
targets[0].gain(result.cards);
|
||||
targets[1].$give(event.num,targets[0]);
|
||||
},
|
||||
ai:{
|
||||
order:6.5,
|
||||
tag:{
|
||||
loseCard:1,
|
||||
multitarget:1,
|
||||
multineg:1
|
||||
},
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(ui.selected.targets.length){
|
||||
if(target==player&&target.num('h')<=1) return 0;
|
||||
return 0.5;
|
||||
}
|
||||
if(target.skills.contains('toulianghuanzhu2')) return 0;
|
||||
return -0.5;
|
||||
}
|
||||
},
|
||||
wuxie:function(){
|
||||
return 0;
|
||||
},
|
||||
useful:3,
|
||||
value:4
|
||||
}
|
||||
},
|
||||
},
|
||||
skill:{
|
||||
toulianghuanzhu2:{},
|
||||
_chenhuodajie:{
|
||||
trigger:{global:'damageEnd'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
if(event.player==player) return false;
|
||||
if(!event.player.num('he')) return false;
|
||||
if(player.num('h','chenhuodajie')) return true;
|
||||
var mn=player.get('e','5');
|
||||
if(mn&&mn.name=='muniu'&&mn.cards&&mn.cards.length){
|
||||
for(var i=0;i<mn.cards.length;i++){
|
||||
if(mn.cards[i].name=='chenhuodajie') return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
player.chooseToUse('是否对'+get.translation(trigger.player)+'使用趁火打劫?',function(card,player){
|
||||
if(card.name!='chenhuodajie') return false;
|
||||
var mod=game.checkMod(card,player,'unchanged','cardEnabled',player.get('s'));
|
||||
if(mod!='unchanged') return mod;
|
||||
return true;
|
||||
},trigger.player,-1).targetRequired=true;
|
||||
}
|
||||
},
|
||||
},
|
||||
translate:{
|
||||
geanguanhuo:'隔岸观火',
|
||||
geanguanhuo_info:'指定任意两名角色进行拚点,拚点输的一方掉1点血;若点数一样则使用该锦囊的角色掉1点血。拚点的牌不用丢弃。',
|
||||
toulianghuanzhu:'偷梁换柱',
|
||||
toulianghuanzhu_info:'令一名角色获得另一名角色的两张手牌,然后还回两张手牌',
|
||||
toulianghuanzhu_bg:'柱',
|
||||
yihuajiemu:'移花接木',
|
||||
yihuajiemu_info:'将一名角色的宝物牌转移至另一名角色',
|
||||
fudichouxin:'釜底抽薪',
|
||||
fudichouxin_info:'与一名角色进行拼点,若成功则获得双方拼点牌',
|
||||
shuiyanqijun:'水淹七军',
|
||||
shuiyanqijun_info:'令所有有装备的角色各弃置一张装备牌',
|
||||
shushangkaihua:'树上开花',
|
||||
shushangkaihua_info:'使用者与手牌数最少的所有角色各摸一张牌',
|
||||
huoshaolianying:'火烧连营',
|
||||
huoshaolianying_bg:'烧',
|
||||
huoshaolianying_info:'对离你最近的一名横置角色使用(若无横置角色则改为对距离你最近的所有角色使用),对目标造成一点火焰伤害',
|
||||
chenhuodajie:'趁火打劫',
|
||||
chenhuodajie_info:'任意一名其他角色受到伤害时对其使用,获得其一张牌',
|
||||
},
|
||||
list:[
|
||||
['heart',3,'yihuajiemu'],
|
||||
["diamond",3,'guohe'],
|
||||
|
||||
['diamond',4,'fudichouxin'],
|
||||
|
||||
['diamond',1,'yihuajiemu'],
|
||||
['club',6,'fudichouxin'],
|
||||
|
||||
['spade',1,'fudichouxin'],
|
||||
['club',7,'shuiyanqijun'],
|
||||
['diamond',7,'yihuajiemu'],
|
||||
|
||||
['club',8,'shuiyanqijun'],
|
||||
['club',8,'guohe'],
|
||||
|
||||
['spade',9,'shuiyanqijun'],
|
||||
['heart',9,'toulianghuanzhu'],
|
||||
|
||||
['club',10,'toulianghuanzhu'],
|
||||
|
||||
['spade',11,'toulianghuanzhu'],
|
||||
|
||||
['spade',13,'guohe'],
|
||||
|
||||
['heart',7,'huoshaolianying','fire'],
|
||||
['diamond',12,'huoshaolianying','fire'],
|
||||
|
||||
['heart',6,'shushangkaihua'],
|
||||
['club',1,'shushangkaihua'],
|
||||
|
||||
['diamond',6,'chenhuodajie'],
|
||||
['diamond',9,'chenhuodajie'],
|
||||
['club',3,'chenhuodajie'],
|
||||
],
|
||||
}
|
|
@ -1,95 +0,0 @@
|
|||
card.shenbing={
|
||||
card:{
|
||||
suolianjia:{
|
||||
fullskin:true,
|
||||
type:"equip",
|
||||
subtype:"equip2",
|
||||
skills:['suolianjia'],
|
||||
onEquip:function(){
|
||||
if(player.isLinked()==false) player.link();
|
||||
},
|
||||
onLose:function(){
|
||||
if(player.isLinked()) player.link();
|
||||
},
|
||||
ai:{
|
||||
basic:{
|
||||
equipValue:5
|
||||
},
|
||||
},
|
||||
},
|
||||
huxinjing:{
|
||||
fullskin:true,
|
||||
type:"equip",
|
||||
subtype:"equip2",
|
||||
skills:['huxinjing'],
|
||||
ai:{
|
||||
basic:{
|
||||
equipValue:6
|
||||
},
|
||||
},
|
||||
}
|
||||
},
|
||||
skill:{
|
||||
huxinjing:{
|
||||
trigger:{player:'damageBegin'},
|
||||
priority:10,
|
||||
forced:true,
|
||||
filter:function(event){
|
||||
return event.num>0;
|
||||
},
|
||||
content:function(){
|
||||
trigger.num--;
|
||||
player.addSkill('huxinjing2');
|
||||
// player.discard(player.get('e','2'));
|
||||
}
|
||||
},
|
||||
huxinjing2:{
|
||||
trigger:{player:'damageEnd'},
|
||||
priority:10,
|
||||
forced:true,
|
||||
popup:false,
|
||||
content:function(){
|
||||
var cards=player.get('e','huxinjing');
|
||||
if(cards.length){
|
||||
player.discard(cards);
|
||||
}
|
||||
}
|
||||
},
|
||||
suolianjia:{
|
||||
trigger:{player:'damageBefore'},
|
||||
filter:function(event){
|
||||
if(event.source&&event.source.num('s','unequip')) return;
|
||||
if(event.nature) return true;
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
trigger.untrigger();
|
||||
trigger.finish();
|
||||
},
|
||||
ai:{
|
||||
nofire:true,
|
||||
nothunder:true,
|
||||
effect:{
|
||||
target:function(card,player,target,current){
|
||||
if(get.tag(card,'natureDamage')) return 'zerotarget';
|
||||
if(card.name=='tiesuo'){
|
||||
return [0,0];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
translate:{
|
||||
suolianjia:'锁链甲',
|
||||
suolianjia_info:'锁定技,你防止即将受到的属性伤害,当装备时进入连环状态,当卸下时解除连环状态',
|
||||
suolianjia_bg:'链',
|
||||
huxinjing_bg:'镜',
|
||||
huxinjing:'护心镜',
|
||||
huxinjing_info:'抵消一点伤害',
|
||||
},
|
||||
list:[
|
||||
['club',13,'suolianjia'],
|
||||
['spade',9,'huxinjing'],
|
||||
],
|
||||
}
|
|
@ -1,5 +1,320 @@
|
|||
card.yibao={
|
||||
card.yunchou={
|
||||
card:{
|
||||
suolianjia:{
|
||||
fullskin:true,
|
||||
type:"equip",
|
||||
subtype:"equip2",
|
||||
skills:['suolianjia'],
|
||||
onEquip:function(){
|
||||
if(player.isLinked()==false) player.link();
|
||||
},
|
||||
onLose:function(){
|
||||
if(player.isLinked()) player.link();
|
||||
},
|
||||
ai:{
|
||||
basic:{
|
||||
equipValue:5
|
||||
},
|
||||
},
|
||||
},
|
||||
huxinjing:{
|
||||
fullskin:true,
|
||||
type:"equip",
|
||||
subtype:"equip2",
|
||||
skills:['huxinjing'],
|
||||
ai:{
|
||||
basic:{
|
||||
equipValue:6
|
||||
},
|
||||
},
|
||||
},
|
||||
chenhuodajie:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
content:function(){
|
||||
if(target.num('he')){
|
||||
player.gainPlayerCard('he',target,true);
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
useful:6,
|
||||
value:6,
|
||||
result:{
|
||||
target:-1
|
||||
},
|
||||
tag:{
|
||||
loseCard:1
|
||||
}
|
||||
}
|
||||
},
|
||||
shushangkaihua:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
enable:true,
|
||||
selectTarget:-1,
|
||||
multitarget:true,
|
||||
multiline:true,
|
||||
filterTarget:function(card,player,target){
|
||||
if(player==target) return true;
|
||||
var num=target.num('h');
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].num('h')<num) return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
content:function(){
|
||||
// target.draw();
|
||||
game.asyncDraw(targets);
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
value:5,
|
||||
result:{
|
||||
target:1
|
||||
}
|
||||
}
|
||||
},
|
||||
huoshaolianying:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
filterTarget:function(card,player,target){
|
||||
if(player==target) return false;
|
||||
var link=false;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].isLinked()&&game.players[i]!=player){
|
||||
link=true;break;
|
||||
}
|
||||
}
|
||||
if(link){
|
||||
if(!target.isLinked()) return false;
|
||||
var distance=get.distance(player,target,'absolute');
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(target!=game.players[i]&&
|
||||
game.players[i]!=player&&
|
||||
game.players[i].isLinked()){
|
||||
if(get.distance(player,game.players[i],'absolute')<distance){
|
||||
return false;
|
||||
}
|
||||
if(get.distance(player,game.players[i],'absolute')==distance&&
|
||||
parseInt(game.players[i].dataset.position)<parseInt(target.dataset.position)){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
var dist=get.distance(player,target);
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]!=player&&get.distance(player,game.players[i])<dist) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
},
|
||||
enable:true,
|
||||
selectTarget:-1,
|
||||
content:function(){
|
||||
target.damage('fire');
|
||||
},
|
||||
ai:{
|
||||
order:5,
|
||||
value:6,
|
||||
tag:{
|
||||
damage:1,
|
||||
natureDamage:1,
|
||||
fireDamage:1,
|
||||
},
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target.hasSkillTag('nofire')||target.hasSkillTag('nodamage')) return 0;
|
||||
if(target.skills.contains('xuying')&&target.num('h')==0) return 0;
|
||||
if(!target.isLinked()){
|
||||
return ai.get.damageEffect(target,player,target,'fire');
|
||||
}
|
||||
var num=0;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].isLinked()){
|
||||
var eff=ai.get.damageEffect(game.players[i],player,target,'fire');
|
||||
if(eff>0){
|
||||
num++;
|
||||
}
|
||||
else if(eff<0){
|
||||
num--;
|
||||
}
|
||||
}
|
||||
}
|
||||
return num;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
yihuajiemu:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
enable:true,
|
||||
filterTarget:function(card,player,target){
|
||||
if(target.isMin()) return false;
|
||||
if(ui.selected.targets.length){
|
||||
return target.get('e',{subtype:'equip5'}).length==0;
|
||||
}
|
||||
else{
|
||||
return target.get('e',{subtype:'equip5'}).length>0;
|
||||
}
|
||||
},
|
||||
selectTarget:2,
|
||||
multitarget:true,
|
||||
content:function(){
|
||||
if(targets[0].get('e','5')){
|
||||
targets[0].$give(targets[0].get('e','5'),targets[1]);
|
||||
targets[1].equip(targets[0].get('e','5'));
|
||||
game.delay();
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target.get('e',{subtype:'equip5'}).length){
|
||||
if(ai.get.attitude(target,player)>0){
|
||||
return -0.5;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
},
|
||||
tag:{
|
||||
loseCard:1
|
||||
}
|
||||
}
|
||||
},
|
||||
fudichouxin:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
enable:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return player!=target&&target.get('h').length;
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToCompare(target).clear=false;
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.gain([result.player,result.target]);
|
||||
result.player.clone.moveDelete(player);
|
||||
result.target.clone.moveDelete(player);
|
||||
game.addVideo('gain2',player,get.cardsInfo([result.player,result.target]));
|
||||
}
|
||||
else if(!result.cancelled){
|
||||
result.player.clone.delete();
|
||||
result.target.clone.delete();
|
||||
game.addVideo('deletenode',player,get.cardsInfo([result.player,result.target]));
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:4,
|
||||
result:{
|
||||
target:function(player){
|
||||
if(player.get('h').length<=1) return 0;
|
||||
return -1;
|
||||
},
|
||||
player:function(player){
|
||||
if(player.get('h').length<=1) return 0;
|
||||
return 0.5;
|
||||
}
|
||||
},
|
||||
tag:{
|
||||
loseCard:1
|
||||
}
|
||||
}
|
||||
},
|
||||
shuiyanqijun:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
enable:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return target.num('e');
|
||||
},
|
||||
selectTarget:-1,
|
||||
content:function(){
|
||||
if(target.num('e')) target.chooseToDiscard('e',true);
|
||||
},
|
||||
ai:{
|
||||
order:9,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target.num('e')) return -1;
|
||||
return 0;
|
||||
}
|
||||
},
|
||||
tag:{
|
||||
multitarget:1,
|
||||
multineg:1
|
||||
}
|
||||
}
|
||||
},
|
||||
toulianghuanzhu:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
enable:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return target.num('h')>0;
|
||||
},
|
||||
selectTarget:2,
|
||||
multitarget:true,
|
||||
targetprompt:['被拿牌','得牌'],
|
||||
content:function(){
|
||||
"step 0"
|
||||
targets[0].addTempSkill('toulianghuanzhu2','phaseAfter');
|
||||
var hs=targets[0].get('h');
|
||||
event.num=Math.min(2,hs.length);
|
||||
if(event.num){
|
||||
targets[1].gain(hs.randomGets(event.num));
|
||||
targets[0].$give(event.num,targets[1]);
|
||||
game.delay();
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
"step 1"
|
||||
if(targets[1].num('h')){
|
||||
if(_status.auto&&targets[1]==game.me){
|
||||
game.delay();
|
||||
}
|
||||
targets[1].chooseCard(true,event.num,'选择'+get.cnNumber(event.num)+'张手牌还给'+get.translation(targets[0])).ai=ai.get.disvalue;
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
"step 2"
|
||||
targets[0].gain(result.cards);
|
||||
targets[1].$give(event.num,targets[0]);
|
||||
},
|
||||
ai:{
|
||||
order:6.5,
|
||||
tag:{
|
||||
loseCard:1,
|
||||
multitarget:1,
|
||||
multineg:1
|
||||
},
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(ui.selected.targets.length){
|
||||
if(target==player&&target.num('h')<=1) return 0;
|
||||
return 0.5;
|
||||
}
|
||||
if(target.skills.contains('toulianghuanzhu2')) return 0;
|
||||
return -0.5;
|
||||
}
|
||||
},
|
||||
wuxie:function(){
|
||||
return 0;
|
||||
},
|
||||
useful:3,
|
||||
value:4
|
||||
}
|
||||
},
|
||||
hufu:{
|
||||
fullskin:true,
|
||||
type:'basic',
|
||||
|
@ -316,9 +631,9 @@ card.yibao={
|
|||
if(target.hasSkillTag('nofire')) return 0;
|
||||
var nh=target.num('he');
|
||||
if(target==player) nh--;
|
||||
if(nh==2) return -2.5;
|
||||
if(nh==1) return -3;
|
||||
return -2;
|
||||
if(nh==2) return -5;
|
||||
if(nh==1) return -6;
|
||||
return -3;
|
||||
}
|
||||
},
|
||||
tag:{
|
||||
|
@ -433,6 +748,80 @@ card.yibao={
|
|||
},
|
||||
},
|
||||
skill:{
|
||||
huxinjing:{
|
||||
trigger:{player:'damageBegin'},
|
||||
priority:10,
|
||||
forced:true,
|
||||
filter:function(event){
|
||||
return event.num>0;
|
||||
},
|
||||
content:function(){
|
||||
trigger.num--;
|
||||
player.addSkill('huxinjing2');
|
||||
// player.discard(player.get('e','2'));
|
||||
}
|
||||
},
|
||||
huxinjing2:{
|
||||
trigger:{player:'damageEnd'},
|
||||
priority:10,
|
||||
forced:true,
|
||||
popup:false,
|
||||
content:function(){
|
||||
var cards=player.get('e','huxinjing');
|
||||
if(cards.length){
|
||||
player.discard(cards);
|
||||
}
|
||||
}
|
||||
},
|
||||
suolianjia:{
|
||||
trigger:{player:'damageBefore'},
|
||||
filter:function(event){
|
||||
if(event.source&&event.source.num('s','unequip')) return;
|
||||
if(event.nature) return true;
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
trigger.untrigger();
|
||||
trigger.finish();
|
||||
},
|
||||
ai:{
|
||||
nofire:true,
|
||||
nothunder:true,
|
||||
effect:{
|
||||
target:function(card,player,target,current){
|
||||
if(get.tag(card,'natureDamage')) return 'zerotarget';
|
||||
if(card.name=='tiesuo'){
|
||||
return [0,0];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
toulianghuanzhu2:{},
|
||||
_chenhuodajie:{
|
||||
trigger:{global:'damageEnd'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
if(event.player==player) return false;
|
||||
if(!event.player.num('he')) return false;
|
||||
if(player.num('h','chenhuodajie')) return true;
|
||||
var mn=player.get('e','5');
|
||||
if(mn&&mn.name=='muniu'&&mn.cards&&mn.cards.length){
|
||||
for(var i=0;i<mn.cards.length;i++){
|
||||
if(mn.cards[i].name=='chenhuodajie') return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
player.chooseToUse('是否对'+get.translation(trigger.player)+'使用趁火打劫?',function(card,player){
|
||||
if(card.name!='chenhuodajie') return false;
|
||||
var mod=game.checkMod(card,player,'unchanged','cardEnabled',player.get('s'));
|
||||
if(mod!='unchanged') return mod;
|
||||
return true;
|
||||
},trigger.player,-1).targetRequired=true;
|
||||
}
|
||||
},
|
||||
dujian2:{},
|
||||
qiankundai:{
|
||||
mod:{
|
||||
|
@ -483,6 +872,30 @@ card.yibao={
|
|||
},
|
||||
},
|
||||
translate:{
|
||||
suolianjia:'锁链甲',
|
||||
suolianjia_info:'锁定技,你防止即将受到的属性伤害,当装备时进入连环状态,当卸下时解除连环状态',
|
||||
suolianjia_bg:'链',
|
||||
huxinjing_bg:'镜',
|
||||
huxinjing:'护心镜',
|
||||
huxinjing_info:'抵消一点伤害',
|
||||
geanguanhuo:'隔岸观火',
|
||||
geanguanhuo_info:'指定任意两名角色进行拚点,拚点输的一方掉1点血;若点数一样则使用该锦囊的角色掉1点血。拚点的牌不用丢弃。',
|
||||
toulianghuanzhu:'偷梁换柱',
|
||||
toulianghuanzhu_info:'令一名角色获得另一名角色的两张手牌,然后还回两张手牌',
|
||||
toulianghuanzhu_bg:'柱',
|
||||
yihuajiemu:'移花接木',
|
||||
yihuajiemu_info:'将一名角色的宝物牌转移至另一名角色',
|
||||
fudichouxin:'釜底抽薪',
|
||||
fudichouxin_info:'与一名角色进行拼点,若成功则获得双方拼点牌',
|
||||
shuiyanqijun:'水淹七军',
|
||||
shuiyanqijun_info:'令所有有装备的角色各弃置一张装备牌',
|
||||
shushangkaihua:'树上开花',
|
||||
shushangkaihua_info:'使用者与手牌数最少的所有角色各摸一张牌',
|
||||
huoshaolianying:'火烧连营',
|
||||
huoshaolianying_bg:'烧',
|
||||
huoshaolianying_info:'对离你最近的一名横置角色使用(若无横置角色则改为对距离你最近的所有角色使用),对目标造成一点火焰伤害',
|
||||
chenhuodajie:'趁火打劫',
|
||||
chenhuodajie_info:'任意一名其他角色受到伤害时对其使用,获得其一张牌',
|
||||
huoshan:'火山',
|
||||
huoshan_info:'出牌阶段,对自己使用。若判定结果为红桃2~9,则目标角色受到2点火焰伤害,距离目标1以内的其他角色受到1点火焰伤害。若判定不为红桃2~9,将之移动到下家的判定区里。',
|
||||
hongshui:'洪水',
|
||||
|
@ -509,22 +922,34 @@ card.yibao={
|
|||
['diamond',3,'liuxinghuoyu','fire'],
|
||||
['heart',6,'liuxinghuoyu','fire'],
|
||||
['heart',9,'liuxinghuoyu','fire'],
|
||||
//['heart',11,'liuxinghuoyu','fire'],
|
||||
//['heart',12,'liuxinghuoyu','fire'],
|
||||
['spade',3,'dujian'],
|
||||
//['club',6,'dujian','poison'],
|
||||
//['club',9,'dujian','poison'],
|
||||
['club',11,'dujian'],
|
||||
['club',12,'dujian'],
|
||||
//['club',3,'sha','poison'],
|
||||
//['club',4,'sha','poison'],
|
||||
//['club',5,'sha','poison'],
|
||||
//['spade',6,'sha','poison'],
|
||||
//['spade',7,'sha','poison'],
|
||||
//['club',3,'sha','poison'],
|
||||
//['club',4,'sha','poison'],
|
||||
//['club',5,'sha','poison'],
|
||||
//['spade',6,'sha','poison'],
|
||||
//['spade',7,'sha','poison'],
|
||||
['heart',3,'yihuajiemu'],
|
||||
["diamond",3,'guohe'],
|
||||
|
||||
['diamond',4,'fudichouxin'],
|
||||
['diamond',1,'yihuajiemu'],
|
||||
['club',6,'fudichouxin'],
|
||||
['spade',1,'fudichouxin'],
|
||||
['club',7,'shuiyanqijun'],
|
||||
['diamond',7,'yihuajiemu'],
|
||||
['club',8,'shuiyanqijun'],
|
||||
['club',8,'guohe'],
|
||||
['spade',9,'shuiyanqijun'],
|
||||
['heart',9,'toulianghuanzhu'],
|
||||
['club',10,'toulianghuanzhu'],
|
||||
['spade',11,'toulianghuanzhu'],
|
||||
['spade',13,'guohe'],
|
||||
['heart',7,'huoshaolianying','fire'],
|
||||
['diamond',12,'huoshaolianying','fire'],
|
||||
['heart',6,'shushangkaihua'],
|
||||
['club',1,'shushangkaihua'],
|
||||
['diamond',6,'chenhuodajie'],
|
||||
['diamond',9,'chenhuodajie'],
|
||||
['club',3,'chenhuodajie'],
|
||||
|
||||
['club',13,'suolianjia'],
|
||||
['spade',9,'huxinjing'],
|
||||
],
|
||||
}
|
|
@ -14,19 +14,20 @@ character.hearth={
|
|||
hs_medivh:['male','wei',3,['jingxiang','moying','mdzhoufu']],
|
||||
hs_alleria:['male','wu',3,['fengxing','qiaodong','liegong']],
|
||||
hs_magni:['male','shu',4,['zhongjia','dunji']],
|
||||
hs_liadrin:['female','shu',4,['xueren']],
|
||||
|
||||
hs_neptulon:['male','wu',4,['liechao','qingliu']],
|
||||
hs_wvelen:['male','qun',3,['shengyan','xianzhi']],
|
||||
hs_antonidas:['male','wei',3,['yanshu','bingshuang']],
|
||||
hs_alakir:['male','wei',3,['fengnu','shengdun']],
|
||||
hs_zhouzhuo:['male','qun',3,['jubao','qice']],
|
||||
hs_zhouzhuo:['male','qun',4,['yiwen']],
|
||||
hs_yngvar:['male','qun',3,['huanwu']],
|
||||
hs_bchillmaw:['male','wei',6,['hanshuang','bingshi']],
|
||||
hs_malorne:['male','wu',3,['enze','chongsheng']],
|
||||
hs_malygos:['male','wei',4,['malymowang']],
|
||||
hs_xuefashi:['male','wei',2,['liehun','xjumo']],
|
||||
hs_loatheb:['male','wu',5,['fengyin']],
|
||||
hs_trueheart:['female','qun',3,['qianghua']],
|
||||
hs_trueheart:['female','qun',3,['qianghuax']],
|
||||
hs_sainaliusi:['male','wu',4,['chongsheng','yulu']],
|
||||
hs_lrhonin:['male','wei',4,['bingyan','yufa']],
|
||||
hs_bolvar:['male','wei',4,['yuanzheng','byuhuo']],
|
||||
|
@ -37,6 +38,9 @@ character.hearth={
|
|||
hs_nozdormu:['male','qun',5,['shixu']],
|
||||
hs_sapphiron:['male','wei',4,['bingdong','stuxi']],
|
||||
hs_kchromaggus:['male','wei',4,['fenlie']],
|
||||
hs_lreno:['male','shu',4,['tanbao']],
|
||||
hs_brann:['male','shu',4,['qianghua']],
|
||||
hs_finley:['male','wu',3,['maoxian']],
|
||||
|
||||
hs_zhishigushu:['male','shu',4,['jiaohui']],
|
||||
hs_zhanzhenggushu:['male','wei',6,['biri']],
|
||||
|
@ -66,6 +70,257 @@ character.hearth={
|
|||
hs_malfurion:['hs_malorne'],
|
||||
},
|
||||
skill:{
|
||||
xueren:{
|
||||
trigger:{source:'damageEnd'},
|
||||
filter:function(event){
|
||||
return event.card&&event.card.name=='sha'&&event.player.isAlive();
|
||||
},
|
||||
check:function(event,player){
|
||||
if(ai.get.attitude(player,event.player)>=0) return false;
|
||||
if(player.hp>2) return true;
|
||||
if(player.hp<2) return false;
|
||||
return player.hp>=event.player.hp;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
trigger.player.loseHp();
|
||||
'step 1'
|
||||
player.loseHp();
|
||||
'step 2'
|
||||
player.draw(2);
|
||||
}
|
||||
},
|
||||
maoxian:{
|
||||
enable:'phaseUse',
|
||||
usable:2,
|
||||
direct:true,
|
||||
delay:false,
|
||||
unique:true,
|
||||
getSkills:function(player,current){
|
||||
var names=[];
|
||||
var list=[];
|
||||
var map={};
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]==player) continue;
|
||||
if(game.players[i].name&&lib.character[game.players[i].name]){
|
||||
names.add(game.players[i].name);
|
||||
}
|
||||
if(game.players[i].name1&&lib.character[game.players[i].name1]){
|
||||
names.add(game.players[i].name1);
|
||||
}
|
||||
if(game.players[i].name2&&lib.character[game.players[i].name2]){
|
||||
names.add(game.players[i].name2);
|
||||
}
|
||||
}
|
||||
for(var i=0;i<names.length;i++){
|
||||
var info=lib.character[names[i]];
|
||||
if(info){
|
||||
var skills=info[3];
|
||||
for(var j=0;j<skills.length;j++){
|
||||
if(skills[j]==current) continue;
|
||||
if(lib.translate[skills[j]+'_info']&&lib.skill[skills[j]]&&
|
||||
!lib.skill[skills[j]].unique){
|
||||
list.add(skills[j]);
|
||||
map[skills[j]]=names[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return [list,map];
|
||||
},
|
||||
onremove:function(player){
|
||||
delete player.additionalSkills.maoxian;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var lm=lib.skill.maoxian.getSkills(player,player.additionalSkills.maoxian);
|
||||
var list=lm[0];
|
||||
event.map=lm[1];
|
||||
if(list.length){
|
||||
player.chooseControl(list.randomGets(3)).prompt='选择一项作为你的技能';
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 1'
|
||||
if(result.control){
|
||||
var link=result.control;
|
||||
player.addSkill(link);
|
||||
player.skills.remove(link);
|
||||
player.additionalSkills.maoxian=link;
|
||||
player.popup(link);
|
||||
var name=event.map[link];
|
||||
var target;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]==player) continue;
|
||||
if(game.players[i].name==name||
|
||||
game.players[i].name1==name||
|
||||
game.players[i].name2==name){
|
||||
target=game.players[i];break;
|
||||
}
|
||||
}
|
||||
if(target){
|
||||
player.line(target,'green');
|
||||
player.markSkillCharacter(target,get.translation(link),lib.translate[link+'_info'],'maoxian');
|
||||
}
|
||||
player.checkMarks();
|
||||
game.delay();
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:11,
|
||||
result:{
|
||||
player:function(player){
|
||||
if(player.getStat().skill.maoxian) return 0;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
yiwen:{
|
||||
trigger:{target:'useCardToBegin'},
|
||||
filter:function(event,player){
|
||||
return event.targets&&event.targets.length==1&&
|
||||
event.target!=event.player&&_status.currentPhase==event.player&&
|
||||
!event.player.skills.contains('yiwen2');
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
player.gain(game.createCard(trigger.card),'gain2');
|
||||
trigger.player.addTempSkill('yiwen2','phaseAfter');
|
||||
},
|
||||
ai:{
|
||||
threaten:0.7
|
||||
}
|
||||
},
|
||||
yiwen2:{},
|
||||
tanbao:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
if(player.hp==player.maxHp) return false;
|
||||
var hs=player.get('h');
|
||||
if(hs.length==0) return false;
|
||||
var types=[];
|
||||
for(var i=0;i<hs.length;i++){
|
||||
var type=get.type(hs[i],'trick');
|
||||
if(types.contains(type)){
|
||||
return false;
|
||||
}
|
||||
else{
|
||||
types.push(type);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.showHandcards();
|
||||
'step 1'
|
||||
player.recover(player.num('h'));
|
||||
},
|
||||
ai:{
|
||||
order:10,
|
||||
result:{
|
||||
player:1
|
||||
}
|
||||
}
|
||||
},
|
||||
tanbao_old:{
|
||||
enable:'phaseUse',
|
||||
usable:10,
|
||||
filterCard:true,
|
||||
position:'he',
|
||||
check:function(card){
|
||||
if(_status.event.player.hp==1){
|
||||
return 7-ai.get.value(card);
|
||||
}
|
||||
return 6-ai.get.value(card);
|
||||
},
|
||||
selectCard:3,
|
||||
filter:function(event,player){
|
||||
return player.num('he')>=3;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
event.cards=get.cards(3);
|
||||
if(!event.isMine()) player.showCards(event.cards);
|
||||
'step 1'
|
||||
player.chooseCardButton('获得任意张类别不同的牌',[1,3],event.cards).filterButton=function(button){
|
||||
var type=get.type(button.link,'trick');
|
||||
for(var i=0;i<ui.selected.buttons.length;i++){
|
||||
if(get.type(ui.selected.buttons[i].link,'trick')==type){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
'step 2'
|
||||
if(result.bool) player.gain(result.links,'gain2');
|
||||
var types=[];
|
||||
for(var i=0;i<event.cards.length;i++){
|
||||
types.add(get.type(event.cards[i],'trick'));
|
||||
}
|
||||
if(types.length==3){
|
||||
player.recover(player.maxHp-player.hp);
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:5,
|
||||
result:{
|
||||
player:1
|
||||
}
|
||||
}
|
||||
},
|
||||
qianghuax:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterCard:function(card){
|
||||
var type=get.type(card,'trick');
|
||||
for(var i=0;i<ui.selected.cards.length;i++){
|
||||
if(type==get.type(ui.selected.cards[i],'trick')) return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
position:'he',
|
||||
check:function(card){
|
||||
return 8-ai.get.value(card);
|
||||
},
|
||||
selectCard:[1,Infinity],
|
||||
content:function(){
|
||||
var cards2=[];
|
||||
for(var i=0;i<cards.length;i++){
|
||||
var type=get.type(cards[i],'trick');
|
||||
var list=game.findCards(function(name){
|
||||
if(cards[i].name==name) return;
|
||||
if(get.type({name:name},'trick')==type){
|
||||
return ai.get.value({name:name})>ai.get.value(cards[i]);
|
||||
}
|
||||
});
|
||||
if(!list.length){
|
||||
list=game.findCards(function(name){
|
||||
if(cards[i].name==name) return;
|
||||
if(get.type({name:name},'trick')==type){
|
||||
return ai.get.value({name:name})==ai.get.value(cards[i]);
|
||||
}
|
||||
});
|
||||
}
|
||||
if(!list.length){
|
||||
list=[cards[i].name];
|
||||
}
|
||||
cards2.push(game.createCard(list.randomGet()));
|
||||
}
|
||||
player.gain(cards2);
|
||||
player.$draw(cards2);
|
||||
game.log(player,'获得了',cards2);
|
||||
},
|
||||
ai:{
|
||||
order:8,
|
||||
result:{
|
||||
player:1
|
||||
}
|
||||
}
|
||||
},
|
||||
zhuizong:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
|
@ -691,7 +946,7 @@ character.hearth={
|
|||
trigger:{player:'useCardAfter'},
|
||||
filter:function(event,player){
|
||||
if(event.parent.name=='qianghua') return false;
|
||||
if(player.storage.qianghua>=2) return false;
|
||||
if(player.storage.qianghua>=1) return false;
|
||||
if(_status.currentPhase!=player) return false;
|
||||
if(event.parent.parent.name!='phaseUse') return false;
|
||||
if(!event.targets||!event.card) return false;
|
||||
|
@ -722,7 +977,7 @@ character.hearth={
|
|||
group:'qianghua_clear',
|
||||
subSkill:{
|
||||
clear:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
trigger:{player:'phaseBefore'},
|
||||
forced:true,
|
||||
silent:true,
|
||||
popup:false,
|
||||
|
@ -3272,6 +3527,7 @@ character.hearth={
|
|||
hs_anduin:'安度因',
|
||||
hs_sthrall:'萨尔',
|
||||
hs_waleera:'瓦莉拉',
|
||||
hs_liadrin:'莉亚德琳',
|
||||
|
||||
hs_neptulon:'耐普图隆',
|
||||
hs_wvelen:'维纶',
|
||||
|
@ -3298,6 +3554,9 @@ character.hearth={
|
|||
hs_edwin:'艾德温',
|
||||
hs_lafamu:'拉法姆',
|
||||
hs_yelise:'伊莉斯',
|
||||
hs_lreno:'雷诺',
|
||||
hs_finley:'芬利',
|
||||
hs_brann:'布莱恩',
|
||||
|
||||
hs_ronghejuren:'熔核巨人',
|
||||
hs_shanlingjuren:'山岭巨人',
|
||||
|
@ -3317,6 +3576,19 @@ character.hearth={
|
|||
hs_nate:'纳特',
|
||||
hs_shifazhe:'嗜法者',
|
||||
|
||||
xueren:'血刃',
|
||||
xueren_info:'每当你使用杀造成伤害,你可以令受伤害角色与你各流失一点体力,然后你摸两张牌',
|
||||
maoxian:'冒险',
|
||||
maoxian2:'冒险',
|
||||
maoxian_info:'出牌阶段限两次,你可以从三个来自其他存活角色的技能中选择一个作为你的技能',
|
||||
tanbao:'探秘',
|
||||
tanbao_info:'出牌阶段限一次,若你的手牌类别均不相同,你可以展示手牌,然后回复等同于手牌数的体力',
|
||||
yiwen:'轶闻',
|
||||
yiwen_info:'锁定技,每当其他角色于回合内首次使用卡牌指定你为惟一目标,你获得一张此牌的复制',
|
||||
tanbao_old:'探宝',
|
||||
tanbao_old_info:'出牌阶段限一次,你可以弃置三张牌,然后展示牌堆顶的三张牌,然后获得其中任意张类别不同的牌;若三张牌类别均不相同,你回复全部体力值',
|
||||
qianghuax:'强化',
|
||||
qianghuax_info:'出牌阶段限一次,你可以弃置任意张不同类别的牌,然后展示并获得与弃置的牌类别相同且价值更高的牌',
|
||||
zhuizong:'追踪',
|
||||
zhuizong_info:'出牌阶段限一次,你可以弃置任意张牌,观看牌堆顶的等同于弃牌数四倍的牌,然后获得其中的一张牌',
|
||||
xunbao:'寻宝',
|
||||
|
@ -3367,8 +3639,8 @@ character.hearth={
|
|||
nianfu_info:'出牌阶段限一次,你可以指定一名其他角色,随机弃置其1~2张装备牌',
|
||||
shixu:'时序',
|
||||
shixu_info:'锁定技,所有角色于出牌阶段每消耗3秒,便须于回合结束阶段弃置一张牌',
|
||||
qianghua:'强化',
|
||||
qianghua_info:'出牌阶段限两次,你可以令一张你使用的基本牌或非延时锦囊牌额外结算一次',
|
||||
qianghua:'绝手',
|
||||
qianghua_info:'在你的回合内,你可以令一张你使用的基本牌或非延时锦囊牌额外结算一次,每回合限一次',
|
||||
jixuan:'疾旋',
|
||||
jixuan_info:'锁定技,回合结束后,你进行一个额外的回合',
|
||||
biri:'蔽日',
|
||||
|
|
|
@ -115,7 +115,6 @@ window.characterRank={
|
|||
'swd_fuyan',
|
||||
'pal_xuejian',
|
||||
'swd_maixing',
|
||||
'hs_zhouzhuo',
|
||||
'xunyou',
|
||||
're_daqiao',
|
||||
'swd_fengyu',
|
||||
|
@ -174,10 +173,12 @@ window.characterRank={
|
|||
'sunluyu',
|
||||
'swd_xiyan',
|
||||
'hs_jiaziruila',
|
||||
'hs_brann',
|
||||
],
|
||||
bp:[
|
||||
'hs_hudunren',
|
||||
'hs_nate',
|
||||
'hs_finley',
|
||||
'hs_shifazhe',
|
||||
'hs_kchromaggus',
|
||||
'hs_yelise',
|
||||
|
@ -281,6 +282,9 @@ window.characterRank={
|
|||
'wangji',
|
||||
'swd_weida',
|
||||
'swd_lilian',
|
||||
'hs_lreno',
|
||||
'hs_zhouzhuo',
|
||||
'hs_liadrin',
|
||||
],
|
||||
b:[
|
||||
'sp_xiahoudun',
|
||||
|
|
|
@ -901,6 +901,7 @@ character.shenhua={
|
|||
},
|
||||
duanchang:{
|
||||
audio:4,
|
||||
forbid:['boss'],
|
||||
trigger:{player:'dieBegin'},
|
||||
forced:true,
|
||||
filter:function(event){
|
||||
|
@ -1353,7 +1354,7 @@ character.shenhua={
|
|||
trigger:{global:'dieEnd'},
|
||||
priority:5,
|
||||
filter:function(event){
|
||||
return event.cards.length>0
|
||||
return event.playerCards&&event.playerCards.length>0
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
|
@ -2993,7 +2994,7 @@ character.shenhua={
|
|||
hunzi_info:'觉醒技,回合开始阶段,若你的体力为1,你须减1点体力上限,并永久获得技能“英姿”和“英魂”。',
|
||||
zhiba_info:'主公技,其他吴势力角色的出牌阶段,可与你进行一次拼点,若该角色没赢,你可以获得双方拼点的牌;你的觉醒技发动后,你可以拒绝此拼点。每回合限一次。',
|
||||
zhijian_info:'出牌阶段,你可以将你手牌中的一张装备牌置于一名其他角色装备区里(不得替换原装备),然后摸一张牌。',
|
||||
guzheng_info:'其他角色的弃牌阶段结束时,你可将此阶段中弃掉的一张牌从弃牌堆返回该角色手牌;若如此做,你可以获得弃牌堆里其余于此阶段中弃掉的牌。',
|
||||
guzheng_info:'其他角色的弃牌阶段结束时,你可将其弃置的一张牌返回其手牌,然后获得其弃置的其它牌',
|
||||
beige_info:'一名角色每受到【杀】造成的一次伤害,你可以弃一张牌,并令其进行一次判定,判定结果为:♥该角色回复1点体力;♦︎该角色摸两张牌;♣伤害来源弃两张牌;♠伤害来源将其武将牌翻面',
|
||||
duanchang_info:'锁定技,杀死你的角色失去当前的所有技能直到游戏结束。',
|
||||
// fushen_info:'回合开始前,你可以选择与任意一名角色交换控制权,该角色可选择在下一个回合开始前与你换回',
|
||||
|
|
|
@ -5225,7 +5225,7 @@ character.swd={
|
|||
content:lib.translate[link+'_info']
|
||||
});
|
||||
game.addVideo('markCharacter',player,{
|
||||
name:'get.translation(link)',
|
||||
name:get.translation(link),
|
||||
content:lib.translate[link+'_info'],
|
||||
id:'tianshu',
|
||||
target:target.name
|
||||
|
|
|
@ -3,18 +3,18 @@ character.xiake={
|
|||
character:{
|
||||
// xk_dongfangweiming:['male','shu',4,[]],
|
||||
xk_guyuexuan:['male','qun',4,['rouquan','gzhenji']],
|
||||
xk_jinji:['male','shu',4,['xueren','lianpo']],
|
||||
xk_jinji:['male','shu',4,['lingfeng','lianpo']],
|
||||
// xk_shenxiangyun:['female','wei',3,['zhenjiu']],
|
||||
xk_fujianhan:['male','qun',4,['zuijian','zitong']],
|
||||
},
|
||||
skill:{
|
||||
xueren:{
|
||||
lingfeng:{
|
||||
trigger:{source:'damageEnd'},
|
||||
filter:function(event,player){
|
||||
return event.parent.name!='xueren'&&event.player.isAlive();
|
||||
return event.parent.name!='lingfeng'&&event.player.isAlive();
|
||||
},
|
||||
prompt:function(event,player){
|
||||
return '是否对'+get.translation(event.player)+'发动【血刃】?';
|
||||
return '是否对'+get.translation(event.player)+'发动【凌锋】?';
|
||||
},
|
||||
check:function(event,player){
|
||||
if(ai.get.damageEffect(event.player,player,player)>0&&
|
||||
|
@ -140,8 +140,8 @@ character.xiake={
|
|||
xk_jinji:'荆棘',
|
||||
xk_shenxiangyun:'沈湘芸',
|
||||
xk_fujianhan:'傅剑寒',
|
||||
xueren:'血刃',
|
||||
xueren_info:'每当你造成一次伤害,你可流失一点体力并对目标再造成一点伤害',
|
||||
lingfeng:'凌锋',
|
||||
lingfeng_info:'每当你造成一次伤害,你可流失一点体力并对目标再造成一点伤害',
|
||||
gzhenji:'震击',
|
||||
gzhenji_info:'你使用杀造成伤害后,可以摸一张牌,并且本回合内可以额外使用一张杀',
|
||||
rouquan:'柔拳',
|
||||
|
|
|
@ -168,7 +168,7 @@ character.yxs={
|
|||
return 6-ai.get.value(card);
|
||||
},
|
||||
ai:{
|
||||
order:7.5,
|
||||
order:2,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target.isLinked()) return 1;
|
||||
|
|
63
game/game.js
|
@ -1629,7 +1629,7 @@
|
|||
if(this.innerHTML!='已隐藏'){
|
||||
this.innerHTML='已隐藏';
|
||||
game.saveConfig('hiddenModePack',['stone','chess','boss']);
|
||||
game.saveConfig('hiddenCardPack',['zhenfa','qimou','yibao','shenbing','swd','shenqi','hearth','compensate']);
|
||||
game.saveConfig('hiddenCardPack',['zhenfa','yunchou','swd','shenqi','hearth','compensate']);
|
||||
game.saveConfig('hiddenCharacterPack',['diy','yxs','hearth','swd','gujian','xianjian','xiake','boss']);
|
||||
var that=this;
|
||||
setTimeout(function(){
|
||||
|
@ -7283,6 +7283,43 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
markSkillCharacter:function(target,name,content,id){
|
||||
if(typeof target=='object'){
|
||||
target=target.name;
|
||||
}
|
||||
if(this.marks[id]){
|
||||
if(this.marks[id]._name==target){
|
||||
return this;
|
||||
}
|
||||
this.marks[id].name=name+'_charactermark';
|
||||
this.marks[id]._name=target;
|
||||
this.marks[id].info={
|
||||
name:name,
|
||||
content:content
|
||||
};
|
||||
this.marks[id].setBackground(target,'character');
|
||||
game.addVideo('changeMarkCharacter',this,{
|
||||
id:id,
|
||||
name:name,
|
||||
content:content,
|
||||
target:target
|
||||
});
|
||||
}
|
||||
else{
|
||||
this.marks[id]=this.markCharacter(target,{
|
||||
name:name,
|
||||
content:content
|
||||
});
|
||||
this.marks[id]._name=target;
|
||||
game.addVideo('markCharacter',this,{
|
||||
name:name,
|
||||
content:content,
|
||||
id:id,
|
||||
target:target
|
||||
});
|
||||
}
|
||||
return this;
|
||||
},
|
||||
markCharacter:function(name,info,learn,learn2){
|
||||
if(typeof name=='object'){
|
||||
name=name.name;
|
||||
|
@ -10867,6 +10904,15 @@
|
|||
console.log(player);
|
||||
}
|
||||
},
|
||||
changeMarkCharacter:function(player,content){
|
||||
if(player&&content&&player.marks[content.id]){
|
||||
player.marks[content.id].info={
|
||||
name:content.name,
|
||||
content:content.content
|
||||
};
|
||||
player.marks[content.id].setBackground(content.target,'character');
|
||||
}
|
||||
},
|
||||
mark:function(player,content){
|
||||
if(player&&content){
|
||||
var mark=player.mark(content.id,content);
|
||||
|
@ -13533,6 +13579,17 @@
|
|||
}
|
||||
return list;
|
||||
},
|
||||
findCards:function(func){
|
||||
var cards=[];
|
||||
for(var i in lib.card){
|
||||
if(!lib.translate[i+'_info']) continue;
|
||||
if(lib.card[i].mode&&lib.card[i].mode.contains(lib.config.mode)==false) continue;
|
||||
if(func(i,lib.card[i])){
|
||||
cards.push(i);
|
||||
}
|
||||
}
|
||||
return cards;
|
||||
},
|
||||
players:[],
|
||||
dead:[],
|
||||
imported:[],
|
||||
|
@ -19210,7 +19267,7 @@
|
|||
var clicklayer=function(e){
|
||||
uiintro.delete();
|
||||
this.remove();
|
||||
game.resume2();
|
||||
if(!ui.arena.classList.contains('menupaused')) game.resume2();
|
||||
e.stopPropagation();
|
||||
return false;
|
||||
}
|
||||
|
@ -19222,7 +19279,7 @@
|
|||
var clickintro=function(){
|
||||
layer.remove();
|
||||
this.delete();
|
||||
game.resume2();
|
||||
if(!ui.arena.classList.contains('menupaused')) game.resume2();
|
||||
};
|
||||
uiintro.addEventListener('mouseleave',clickintro);
|
||||
uiintro.addEventListener('click',clickintro);
|
||||
|
|
|
@ -23,9 +23,7 @@ card.pack={
|
|||
guozhan:'国战',
|
||||
mingzhong:'忠胆英杰',
|
||||
zhenfa:'阵法',
|
||||
qimou:'奇谋',
|
||||
yibao:'异宝',
|
||||
shenbing:'神兵',
|
||||
yunchou:'运筹帷幄',
|
||||
swd:'轩辕剑',
|
||||
shenqi:'上古神器',
|
||||
hearth:'炉石传说',
|
||||
|
|
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 38 KiB |
|
@ -1041,8 +1041,8 @@ mode.identity={
|
|||
case 'zhong':case 'mingzhong': return 6;
|
||||
case 'nei':
|
||||
if(game.players.length==2) return -10;
|
||||
if(zhongmode&&to.ai.sizhong) return 6;
|
||||
if(get.population('fan')==0) return -0.5;
|
||||
if(zhongmode&&to.ai.sizhong&&to.ai.shown<1) return 6;
|
||||
if(get.population('fan')==1&&get.population('nei')==1&&game.players.length==3){
|
||||
var fan;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
|
@ -1082,8 +1082,8 @@ mode.identity={
|
|||
case 'zhu': return 10;
|
||||
case 'zhong':case 'mingzhong': return 4;
|
||||
case 'nei':
|
||||
if(zhongmode&&to.ai.sizhong) return 6;
|
||||
if(get.population('fan')==0) return -2;
|
||||
if(zhongmode&&to.ai.sizhong&&to.ai.shown<1) return 6;
|
||||
return Math.min(3,-situation);
|
||||
case 'fan': return -8;
|
||||
}
|
||||
|
|