This commit is contained in:
libccy 2016-07-05 22:11:33 +08:00
parent 0aee8cf4d4
commit 4960cdb2d1
9 changed files with 1250 additions and 1020 deletions

View File

@ -1,112 +0,0 @@
'use strict';
card.ex={
connect:true,
card:{
hanbing:{
fullskin:true,
type:"equip",
subtype:"equip1",
distance:{attackFrom:-1},
skills:['hanbing_skill'],
ai:{
basic:{
equipValue:2
}
},
},
renwang:{
fullskin:true,
type:"equip",
subtype:"equip2",
skills:['renwang_skill'],
ai:{
basic:{
equipValue:8
},
},
},
},
skill:{
hanbing_skill:{
trigger:{player:'shaHit'},
direct:true,
audio:true,
filter:function(event){
return event.target.get('he').length>0;
},
content:function(){
"step 0"
player.choosePlayerCard('是否发动【寒冰剑】?','he',trigger.target,Math.min(2,trigger.target.num('he')),function(button){
var trigger=_status.event.getTrigger();
var player=_status.event.player;
var eff=ai.get.damageEffect(trigger.target,player,player);
if(ai.get.attitude(player,trigger.target)>0){
if(eff>=0) return false;
return 10-ai.get.buttonValue(button);
}
if(eff<=0) return ai.get.buttonValue(button);
if(trigger.target.hp==1) return false;
if(player.skills.contains('jiu')||player.skills.contains('tianxianjiu')||
player.skills.contains('luoyi2')||player.skills.contains('reluoyi2')) return false;
if(_status.event.dialog.buttons.length<2) return -1;
var num=0;
for(var i=0;i<_status.event.dialog.buttons.length;i++){
if(ai.get.buttonValue(_status.event.dialog.buttons[i])>1.5) num++;
}
if(num>=2) return ai.get.buttonValue(button)-1.5;
});
"step 1"
if(result.bool){
trigger.untrigger();
var cards=[];
for(var i=0;i<result.links.length;i++) cards.push(result.links[i]);
player.logSkill('hanbing_skill');
trigger.unhurt=true;
trigger.target.discard(cards);
}
}
},
renwang_skill:{
trigger:{target:'shaBefore'},
forced:true,
priority:6,
audio:true,
filter:function(event){
if(event.player.num('s','unequip')) return false;
return (event.card.name=='sha'&&get.color(event.card)=='black')
},
content:function(){
trigger.untrigger();
trigger.finish();
},
ai:{
effect:{
target:function(card,player){
var equip1=player.get('e','1');
if(equip1&&equip1.name=='qinggang') return 1;
if(player.num('s','unequip')) return;
if(card.name=='sha'&&get.color(card)=='black') return 'zerotarget';
}
}
}
}
},
translate:{
hanbing:'寒冰剑',
renwang:'仁王盾',
hanbing_bg:'冰',
renwang_bg:'盾',
hanbing_skill:'寒冰剑',
renwang_skill:'仁王盾',
hanbing_info:'每当你使用杀命中目标后,你可以防止伤害,改为弃置目标两张牌',
hanbing_skill_info:'每当你使用杀命中目标后,你可以防止伤害,改为弃置目标两张牌',
renwang_info:'黑色的杀对你无效',
renwang_skill_info:'黑色的杀对你无效',
},
list:[
["spade",2,'hanbing'],
["club",2,'renwang'],
["heart",12,'shandian','thunder'],
["diamond",12,'wuxie'],
],
}

View File

@ -1208,8 +1208,94 @@ card.standard={
} }
} }
}, },
hanbing:{
fullskin:true,
type:"equip",
subtype:"equip1",
distance:{attackFrom:-1},
skills:['hanbing_skill'],
ai:{
basic:{
equipValue:2
}
},
},
renwang:{
fullskin:true,
type:"equip",
subtype:"equip2",
skills:['renwang_skill'],
ai:{
basic:{
equipValue:8
},
},
},
}, },
skill:{ skill:{
hanbing_skill:{
trigger:{player:'shaHit'},
direct:true,
audio:true,
filter:function(event){
return event.target.get('he').length>0;
},
content:function(){
"step 0"
player.choosePlayerCard('是否发动【寒冰剑】?','he',trigger.target,Math.min(2,trigger.target.num('he')),function(button){
var trigger=_status.event.getTrigger();
var player=_status.event.player;
var eff=ai.get.damageEffect(trigger.target,player,player);
if(ai.get.attitude(player,trigger.target)>0){
if(eff>=0) return false;
return 10-ai.get.buttonValue(button);
}
if(eff<=0) return ai.get.buttonValue(button);
if(trigger.target.hp==1) return false;
if(player.skills.contains('jiu')||player.skills.contains('tianxianjiu')||
player.skills.contains('luoyi2')||player.skills.contains('reluoyi2')) return false;
if(_status.event.dialog.buttons.length<2) return -1;
var num=0;
for(var i=0;i<_status.event.dialog.buttons.length;i++){
if(ai.get.buttonValue(_status.event.dialog.buttons[i])>1.5) num++;
}
if(num>=2) return ai.get.buttonValue(button)-1.5;
});
"step 1"
if(result.bool){
trigger.untrigger();
var cards=[];
for(var i=0;i<result.links.length;i++) cards.push(result.links[i]);
player.logSkill('hanbing_skill');
trigger.unhurt=true;
trigger.target.discard(cards);
}
}
},
renwang_skill:{
trigger:{target:'shaBefore'},
forced:true,
priority:6,
audio:true,
filter:function(event){
if(event.player.num('s','unequip')) return false;
return (event.card.name=='sha'&&get.color(event.card)=='black')
},
content:function(){
trigger.untrigger();
trigger.finish();
},
ai:{
effect:{
target:function(card,player){
var equip1=player.get('e','1');
if(equip1&&equip1.name=='qinggang') return 1;
if(player.num('s','unequip')) return;
if(card.name=='sha'&&get.color(card)=='black') return 'zerotarget';
}
}
}
},
zhuge_skill:{ zhuge_skill:{
mod:{ mod:{
cardUsable:function(card,player,num){ cardUsable:function(card,player,num){
@ -1731,6 +1817,16 @@ card.standard={
lebu:'乐不思蜀', lebu:'乐不思蜀',
shandian:'闪电', shandian:'闪电',
shandian_bg:'电', shandian_bg:'电',
hanbing:'寒冰剑',
renwang:'仁王盾',
hanbing_bg:'冰',
renwang_bg:'盾',
hanbing_skill:'寒冰剑',
renwang_skill:'仁王盾',
hanbing_info:'每当你使用杀命中目标后,你可以防止伤害,改为弃置目标两张牌',
hanbing_skill_info:'每当你使用杀命中目标后,你可以防止伤害,改为弃置目标两张牌',
renwang_info:'黑色的杀对你无效',
renwang_skill_info:'黑色的杀对你无效',
sha_info:'出牌阶段,对攻击范围内的一名角色使用,令其打出一张【闪】或受到一点伤害。', sha_info:'出牌阶段,对攻击范围内的一名角色使用,令其打出一张【闪】或受到一点伤害。',
shan_info:'闪避一张杀', shan_info:'闪避一张杀',
tao_info:'出牌阶段,对自己使用,回复一点体力。', tao_info:'出牌阶段,对自己使用,回复一点体力。',
@ -1878,6 +1974,9 @@ card.standard={
["club",6,'lebu'], ["club",6,'lebu'],
["heart",6,'lebu'], ["heart",6,'lebu'],
["spade",1,'shandian','thunder'], ["spade",1,'shandian','thunder'],
["spade",2,'hanbing'],
["club",2,'renwang'],
["heart",12,'shandian','thunder'],
["diamond",12,'wuxie'],
], ],
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,102 +1,5 @@
card.yunchou={ card.yunchou={
card:{ card:{
lingjiandai:{
fullskin:true,
enable:true,
type:'basic',
range:{global:1},
filterTarget:true,
content:function(){
var list=get.typeCard('hslingjian');
if(list.length){
list=list.randomGets(3);
for(var i=0;i<list.length;i++){
list[i]=game.createCard(list[i]);
}
}
target.gain(list,'gain2');
},
ai:{
order:10,
result:{
target:function(player,target){
if(target==player&&target.num('h',{type:'equip'})) return 2.5;
if(target.hasSkill('mujiaren_skill')) return 2;
return 1;
}
}
}
},
jiguanshu:{
fullskin:true,
enable:true,
type:'basic',
range:{global:1},
filterTarget:function(card,player,target){
var es=target.get('e');
for(var i=0;i<es.length;i++){
if(lib.inpile.contains(es[i].name)) return true;
}
return false;
},
content:function(){
var es=target.get('e');
var list=get.typeCard('hslingjian');
var cards=[];
var time=0;
for(var i=0;i<es.length;i++){
if(lib.inpile.contains(es[i].name)){
var card=game.createCard(list.randomGet());
cards.push(card);
time+=200;
setTimeout((function(card,name){
return function(){
card.init([card.suit,card.number,name,card.nature]);
card.style.transform='scale(1.1)';
card.classList.add('glow');
setTimeout(function(){
card.style.transform='';
card.classList.remove('glow');
},500);
}
}(es[i],lib.skill._lingjianduanzao.process([card,es[i]]))),i*200);
}
}
target.$gain2(cards);
game.delay(0,time)
},
ai:{
order:7.5,
result:{
target:function(player,target){
var es=target.get('e');
var num=0;
for(var i=0;i<es.length;i++){
if(lib.inpile.contains(es[i].name)) num++;
}
return num;
}
}
}
},
mujiaren:{
fullskin:true,
enable:true,
type:'basic',
range:{global:1},
filterTarget:function(card,player,target){
return !target.hasSkill('mujiaren_skill');
},
content:function(){
target.addSkill('mujiaren_skill');
},
ai:{
order:10.1,
result:{
target:1
}
}
},
suolianjia:{ suolianjia:{
fullskin:true, fullskin:true,
type:"equip", type:"equip",
@ -774,718 +677,8 @@ card.yunchou={
} }
} }
}, },
hslingjian_xuanfengzhiren:{
type:'hslingjian',
fullimage:true,
vanish:true,
enable:true,
derivation:true,
filterTarget:function(card,player,target){
return target.num('he')>0;
},
content:function(){
target.discard(target.get('he').randomGet());
},
ai:{
order:6.5,
result:{
target:-1,
},
useful:[2,0.5],
value:[2,0.5],
}
},
hslingjian_zhongxinghujia:{
type:'hslingjian',
fullimage:true,
vanish:true,
enable:true,
derivation:true,
filterTarget:true,
content:function(){
'step 0'
var list=[];
for(var i=0;i<lib.inpile.length;i++){
if(lib.card[lib.inpile[i]].subtype=='equip2'){
list.push(lib.inpile[i]);
}
}
if(list.length){
var card=game.createCard(list.randomGet());
target.$draw(card);
game.delay();
target.equip(card);
}
'step 1'
var hs=target.get('h');
if(hs.length){
target.discard(hs.randomGet());
}
},
ai:{
order:1,
result:{
target:function(player,target){
if(target.get('e','2')){
if(target.num('h')) return -0.6;
return 0;
}
else{
if(target.num('h')) return 0.5;
return 1;
}
}
},
useful:[2,0.5],
value:[2,0.5],
}
},
hslingjian_xingtigaizao:{
type:'hslingjian',
fullimage:true,
vanish:true,
enable:true,
derivation:true,
filterTarget:function(card,player,target){
return target==player;
},
selectTarget:-1,
content:function(){
target.draw();
target.addSkill('hslingjian_xingtigaizao');
if(typeof target.storage.hslingjian_xingtigaizao=='number'){
target.storage.hslingjian_xingtigaizao++;
}
else{
target.storage.hslingjian_xingtigaizao=1;
}
},
ai:{
order:1,
result:{
target:function(player,target){
if(target.num('h')<target.hp) return 1;
return 0;
}
},
useful:[2,0.5],
value:[2,0.5],
}
},
hslingjian_shijianhuisu:{
type:'hslingjian',
fullimage:true,
vanish:true,
enable:true,
derivation:true,
filterTarget:function(card,player,target){
return target!=player&&target.num('e')>0;
},
content:function(){
var es=target.get('e');
target.gain(es);
target.$gain2(es);
},
ai:{
order:5,
result:{
target:function(player,target){
if(target.hasSkillTag('noe')) return target.num('e')*2;
return -target.num('e');
}
},
useful:[2,0.5],
value:[2,0.5],
tag:{
loseCard:1,
}
}
},
hslingjian_jinjilengdong:{
type:'hslingjian',
fullimage:true,
vanish:true,
enable:true,
derivation:true,
filterTarget:function(card,player,target){
return !target.isTurnedOver()&&target!=player;
},
content:function(){
target.draw(2);
target.turnOver();
},
ai:{
order:2,
result:{
target:-1,
},
useful:[2,0.5],
value:[2,0.5],
}
},
hslingjian_shengxiuhaojiao:{
type:'hslingjian',
fullimage:true,
vanish:true,
enable:true,
derivation:true,
filterTarget:function(card,player,target){
return !target.hasSkill('hslingjian_chaofeng');
},
content:function(){
target.addTempSkill('hslingjian_chaofeng',{player:'phaseBegin'});
},
ai:{
order:2,
result:{
target:function(player,target){
if(get.distance(player,target,'absolute')<=1) return 0;
if(target.num('h')<=target.hp) return -0.1;
return -1;
}
},
useful:[2,0.5],
value:[2,0.5],
}
},
hslingjian_yinmilichang:{
type:'hslingjian',
fullimage:true,
vanish:true,
enable:true,
derivation:true,
filterTarget:function(card,player,target){
return player!=target&&!target.hasSkill('hslingjian_yinshen');
},
content:function(){
target.addTempSkill('hslingjian_yinshen',{player:'phaseBegin'});
},
ai:{
order:2,
result:{
target:function(player,target){
if(get.distance(player,target,'absolute')<=1) return 0;
if(target.hp==1) return 2;
if(target.hp==2&&target.num('h')<=2) return 1.2;
return 1;
}
},
useful:[2,0.5],
value:[2,0.5],
}
},
}, },
skill:{ skill:{
hslingjian_xuanfengzhiren_equip1:{
trigger:{source:'damageEnd'},
forced:true,
filter:function(event){
return event.card&&event.card.name=='sha'&&event.player.num('he');
},
content:function(){
trigger.player.discard(trigger.player.get('he').randomGet());
}
},
hslingjian_xuanfengzhiren_equip2:{
trigger:{player:'damageEnd'},
forced:true,
filter:function(event){
return event.card&&event.card.name=='sha'&&event.source&&event.source.num('he');
},
content:function(){
trigger.source.discard(trigger.source.get('he').randomGet());
}
},
hslingjian_xuanfengzhiren_equip3:{
trigger:{player:'loseAfter'},
forced:true,
filter:function(event,player){
return _status.currentPhase!=player&&!player.hasSkill('hslingjian_xuanfengzhiren_equip3_dist');
},
content:function(){
player.addTempSkill('hslingjian_xuanfengzhiren_equip3_dist','phaseAfter');
}
},
hslingjian_xuanfengzhiren_equip3_dist:{
mod:{
globalTo:function(from,to,distance){
return distance+1;
}
}
},
hslingjian_xuanfengzhiren_equip4:{
trigger:{player:'loseAfter'},
forced:true,
filter:function(event,player){
return _status.currentPhase==player&&!player.hasSkill('hslingjian_xuanfengzhiren_equip4_dist');
},
content:function(){
player.addTempSkill('hslingjian_xuanfengzhiren_equip4_dist','phaseAfter');
}
},
hslingjian_xuanfengzhiren_equip4_dist:{
mod:{
globalFrom:function(from,to,distance){
return distance-1;
}
}
},
hslingjian_xuanfengzhiren_equip5:{
enable:'phaseUse',
usable:1,
filterCard:true,
position:'he',
filter:function(event,player){
return player.num('he')>0;
},
filterTarget:function(card,player,target){
return target.num('he')>0;
},
check:function(card){
return 5-ai.get.value(card);
},
content:function(){
target.discard(target.get('he').randomGet());
},
ai:{
order:5,
result:{
target:function(player,target){
var dh=player.num('he')-target.num('he');
if(dh>0){
return -Math.sqrt(dh);
}
return 0;
}
}
}
},
hslingjian_zhongxinghujia_equip1:{
trigger:{source:'damageEnd'},
check:function(event,player){
return !player.get('e','2');
},
filter:function(event){
return event.card&&event.card.name=='sha';
},
content:function(){
var card=game.createCard(get.inpile('equip2').randomGet());
player.equip(card);
player.$draw(card);
game.delay();
}
},
hslingjian_zhongxinghujia_equip2:{
trigger:{player:'damageEnd'},
check:function(event,player){
return ai.get.attitude(player,event.source)<0;
},
filter:function(event){
return event.card&&event.card.name=='sha'&&event.source&&event.source.get('e','2');
},
content:function(){
player.line(trigger.source,'green');
trigger.source.discard(trigger.source.get('e','2'));
}
},
hslingjian_zhongxinghujia_equip3:{
mod:{
globalTo:function(from,to,distance){
if(to.get('e','2')) return distance+1;
}
}
},
hslingjian_zhongxinghujia_equip4:{
mod:{
globalFrom:function(from,to,distance){
if(from.get('e','2')) return distance-1;
}
}
},
hslingjian_zhongxinghujia_equip5:{
enable:'phaseUse',
usable:1,
filterCard:true,
position:'he',
filterTarget:true,
selectCard:2,
filter:function(event,player){
return player.num('he')>=2;
},
check:function(card){
return 5-ai.get.value(card);
},
content:function(){
var card=game.createCard(get.inpile('equip2').randomGet());
target.equip(card);
target.$draw(card);
game.delay();
},
ai:{
order:1,
result:{
target:function(player,target){
if(target.get('e','2')) return 0;
return 1;
}
}
}
},
hslingjian_jinjilengdong_equip1:{
trigger:{source:'damageEnd'},
check:function(event,player){
if(event.player.isTurnedOver()){
return ai.get.attitude(player,event.player)>0;
}
return ai.get.attitude(player,event.player)<=0;
},
filter:function(event){
return event.card&&event.card.name=='sha'&&event.player&&event.player.isAlive();
},
logTarget:function(event){
return event.player;
},
content:function(){
trigger.player.draw(2);
trigger.player.turnOver();
}
},
hslingjian_jinjilengdong_equip2:{
trigger:{player:'damageEnd'},
check:function(event,player){
if(event.player.isTurnedOver()){
return ai.get.attitude(player,event.source)>0;
}
return ai.get.attitude(player,event.source)<=0;
},
filter:function(event){
return event.card&&event.card.name=='sha'&&event.source&&event.source.isAlive();
},
logTarget:function(event){
return event.source;
},
content:function(){
player.line(trigger.source,'green');
trigger.source.draw(2);
trigger.source.turnOver();
}
},
hslingjian_jinjilengdong_equip3:{
mod:{
globalTo:function(from,to,distance){
if(to.isTurnedOver()) return distance+2;
}
}
},
hslingjian_jinjilengdong_equip4:{
mod:{
globalFrom:function(from,to,distance){
if(from.isTurnedOver()) return distance-2;
}
}
},
hslingjian_jinjilengdong_equip5:{
trigger:{player:'phaseAfter'},
direct:true,
filter:function(event,player){
return !player.isTurnedOver();
},
content:function(){
"step 0"
player.chooseTarget('是否发动【冰冻】?',function(card,player,target){
return player!=target&&!target.isTurnedOver();
}).ai=function(target){
return Math.max(0,-ai.get.attitude(player,target)-2);
};
"step 1"
if(result.bool){
player.logSkill('hslingjian_jinjilengdong_equip5',result.targets);
player.turnOver();
result.targets[0].turnOver();
game.asyncDraw([player,result.targets[0]],2);
}
},
},
hslingjian_yinmilichang_equip1:{},
hslingjian_yinmilichang_equip2:{},
hslingjian_yinmilichang_equip3:{},
hslingjian_yinmilichang_equip4:{},
hslingjian_yinmilichang_equip5:{},
hslingjian_xingtigaizao_equip1:{},
hslingjian_xingtigaizao_equip2:{},
hslingjian_xingtigaizao_equip3:{},
hslingjian_xingtigaizao_equip4:{},
hslingjian_xingtigaizao_equip5:{},
hslingjian_shengxiuhaojiao_equip1:{},
hslingjian_shengxiuhaojiao_equip2:{},
hslingjian_shengxiuhaojiao_equip3:{},
hslingjian_shengxiuhaojiao_equip4:{},
hslingjian_shengxiuhaojiao_equip5:{},
hslingjian_shijianhuisu_equip1:{},
hslingjian_shijianhuisu_equip2:{},
hslingjian_shijianhuisu_equip3:{},
hslingjian_shijianhuisu_equip4:{},
hslingjian_shijianhuisu_equip5:{},
mujiaren_skill:{
enable:'phaseUse',
filter:function(event,player){
return player.num('h',{type:'hslingjian'})>=2;
},
filterCard:{type:'hslingjian'},
selectCard:2,
content:function(){
player.gain(game.createCard('jiguanshu'));
},
ai:{
order:7,
result:{
player:function(player){
for(var i=0;i<game.players.length;i++){
if(player.canUse('jiguanshu',game.players[i])&&
ai.get.effect(game.players[i],{name:'jiguanshu'},player,player>0)){
return 1;
}
return 0;
}
}
}
}
},
_lingjianduanzao:{
enable:'phaseUse',
position:'he',
prompt:function(event){
var lingjians=[],types=[];
var hs=event.player.get('h');
for(var i=0;i<hs.length;i++){
switch(get.type(hs[i])){
case 'equip':types.add(get.subtype(hs[i]));break;
case 'hslingjian':lingjians.add(hs[i].name);break;
}
}
var str='';
for(var i=0;i<lingjians.length;i++){
for(var j=0;j<types.length;j++){
if(j==0){
str+='<p class="shadowed" style="text-align:left;line-height:18px;padding:5px;border-radius:4px;margin-top:0px;margin-bottom:12px;">';
}
else{
str+='<p class="shadowed" style="text-align:left;line-height:18px;padding:5px;border-radius:4px;margin-top:12px;margin-bottom:12px;">';
}
str+=''+lib.translate[lingjians[i]]+'+'+lib.translate[types[j]]+
''+lib.translate[lingjians[i]+'_'+types[j]+'_info']+'</p>';
}
}
return str;
},
check:function(card){
return 1+ai.get.value(card);
},
filterCard:function(card){
var type=get.type(card);
if(!ui.selected.cards.length){
return type=='equip'&&lib.inpile.contains(card.name);
}
return type=='hslingjian';
},
process:function(cards){
if(cards.length==3){
cards.sort(function(a,b){
if(a.name<b.name) return 1;
return -1;
});
}
var equip;
for(var i=0;i<cards.length;i++){
if(get.type(cards[i])=='equip'){
equip=cards[i];
cards.splice(i--,1);
break;
}
}
var name=equip.name;
var equipname=equip.name;
for(var i=0;i<cards.length;i++){
name+=cards[i].name.slice(10);
}
if(lib.card[name]) return name;
lib.card[name]={};
for(var i in lib.card[equip.name]){
if(i=='ai'){
lib.card[name][i]={};
for(var j in lib.card[equip.name][i]){
if(j=='basic'){
lib.card[name][i][j]={};
for(var k in lib.card[equip.name][i][j]){
lib.card[name][i][j][k]=lib.card[equip.name][i][j][k];
}
}
else{
lib.card[name][i][j]=lib.card[equip.name][i][j];
}
}
}
else{
lib.card[name][i]=lib.card[equip.name][i];
}
}
lib.card[name].cardimage=equip.name;
if(cards.length==2){
lib.card[name].legend=true;
if(typeof lib.card[name].ai.equipValue=='number'){
lib.card[name].ai.equipValue=Math.min(10,lib.card[name].ai.equipValue+3);
}
else if(typeof lib.card[name].ai.equipValue=='function'){
lib.card[name].ai.equipValue=function(){
return lib.card[equipname].ai.equipValue.apply(this,arguments)+2;
}
}
else if(lib.card[name].ai.basic&&typeof lib.card[name].ai.basic.equipValue=='number'){
lib.card[name].ai.basic.equipValue=Math.min(10,lib.card[name].ai.basic.equipValue+3);
}
else if(lib.card[name].ai.basic&&typeof lib.card[name].ai.basic.equipValue=='function'){
lib.card[name].ai.basic.equipValue=function(){
return lib.card[equipname].ai.basic.equipValue.apply(this,arguments)+2;
}
}
}
else{
lib.card[name].epic=true;
if(typeof lib.card[name].ai.equipValue=='number'){
lib.card[name].ai.equipValue=Math.min(10,lib.card[name].ai.equipValue+1);
}
else if(typeof lib.card[name].ai.equipValue=='function'){
lib.card[name].ai.equipValue=function(){
return lib.card[equipname].ai.equipValue.apply(this,arguments)+1;
}
}
else if(lib.card[name].ai.basic&&typeof lib.card[name].ai.basic.equipValue=='number'){
lib.card[name].ai.basic.equipValue=Math.min(10,lib.card[name].ai.basic.equipValue+1);
}
else if(lib.card[name].ai.basic&&typeof lib.card[name].ai.basic.equipValue=='function'){
lib.card[name].ai.basic.equipValue=function(){
return lib.card[equipname].ai.basic.equipValue.apply(this,arguments)+1;
}
}
}
if(Array.isArray(lib.card[name].skills)){
lib.card[name].skills=lib.card[name].skills.slice(0);
}
else{
lib.card[name].skills=[];
}
lib.card[name].filterTarget=true;
lib.card[name].selectTarget=1;
lib.card[name].range={global:1};
var str;
if(cards.length==2){
str=lib.translate[cards[0].name+'_duanzao2']+lib.translate[cards[1].name+'_duanzao2'];
}
else{
str=lib.translate[cards[0].name+'_duanzao'];
}
var str2=lib.translate[equip.name];
if(str2.length>2){
str2=str2.slice(0,2);
}
lib.translate[name]=str+str2;
str2=lib.translate[equip.name+'_info']||'';
if(str2[str2.length-1]=='.'||str2[str2.length-1]=='。'){
str2=str2.slice(0,str2.length-1);
}
for(var i=0;i<cards.length;i++){
var name2=cards[i].name+'_'+get.subtype(equip);
lib.card[name].skills.add(name2);
lib.translate[name2]=lib.translate[cards[i].name+'_duanzao'];
str2+=''+lib.translate[name2+'_info'];
}
lib.translate[name+'_info']=str2;
return name;
},
selectCard:function(){
if(_status.event.player.hasSkill('mujiaren_skill')) return [2,3];
return 2;
},
filter:function(event,player){
return player.num('h',{type:'equip'})&&player.num('h',{type:'hslingjian'});
},
content:function(){
var name=lib.skill._lingjianduanzao.process(cards);
game.me.gain(game.createCard(name),'gain2');
},
ai:{
order:10,
result:{
player:1,
}
}
},
hslingjian_yinshen:{
mark:true,
nopop:true,
intro:{
content:'锁定技,你不能成为其他角色的卡牌的目标'
},
mod:{
targetEnabled:function(card,player,target){
if(player!=target) return false;
}
}
},
hslingjian_chaofeng:{
global:'hslingjian_chaofeng_disable',
nopop:true,
unique:true,
gainnable:true,
mark:true,
intro:{
content:'锁定技,若你的手牌数大于你的体力值,则只要你在任一其他角色的攻击范围内,该角色使用【杀】时便不能指定你以外的角色为目标',
},
subSkill:{
disable:{
mod:{
targetEnabled:function(card,player,target){
if(player.skills.contains('hslingjian_chaofeng')) return;
if(card.name=='sha'){
if(target.skills.contains('hslingjian_chaofeng')) return;
for(var i=0;i<game.players.length;i++){
if(game.players[i].skills.contains('hslingjian_chaofeng')){
if(game.players[i].hp<game.players[i].num('h')&&
get.distance(player,game.players[i],'attack')<=1){
return false;
}
}
}
}
}
}
}
}
},
hslingjian_xingtigaizao:{
nopop:true,
mod:{
maxHandcard:function(player,num){
if(typeof player.storage.hslingjian_xingtigaizao=='number'){
return num-player.storage.hslingjian_xingtigaizao;
}
},
},
mark:true,
intro:{
content:function(storage){
return '手牌上限-'+storage;
}
},
trigger:{player:'phaseEnd'},
forced:true,
popup:false,
silent:true,
content:function(){
player.removeSkill('hslingjian_xingtigaizao');
player.storage.hslingjian_xingtigaizao=0;
}
},
suolianjia:{ suolianjia:{
trigger:{player:'damageBefore'}, trigger:{player:'damageBefore'},
filter:function(event){ filter:function(event){
@ -1584,88 +777,7 @@ card.yunchou={
check:function(){return 1}, check:function(){return 1},
}, },
}, },
cardType:{
hslingjian:0.5,
},
translate:{ translate:{
hslingjian_xuanfengzhiren_duanzao:'风刃',
hslingjian_xuanfengzhiren_duanzao2:'风',
hslingjian_xuanfengzhiren_equip1_info:'每当你用杀造成一次伤害,受伤害角色随机弃置一张牌',
hslingjian_xuanfengzhiren_equip2_info:'每当你受到杀造成的伤害,伤害来源随机弃置一张牌',
hslingjian_xuanfengzhiren_equip3_info:'当你于回合外失去牌后,你本回合的防御距离+1',
hslingjian_xuanfengzhiren_equip4_info:'当你于回合内失去牌后,你本回合的进攻距离+1',
hslingjian_xuanfengzhiren_equip5_info:'出牌阶段限一次,你可以弃置一张牌,然后随机弃置一名其他角色的一张牌',
hslingjian_zhongxinghujia_duanzao:'重甲',
hslingjian_zhongxinghujia_duanzao2:'护',
hslingjian_zhongxinghujia_equip1_info:'每当你用杀造成一次伤害,你可以随机装备一件防具牌',
hslingjian_zhongxinghujia_equip2_info:'每当你受到杀造成的伤害,你可以弃置伤害来源的防具牌',
hslingjian_zhongxinghujia_equip3_info:'当你的装备区内有防具牌时,你的防御距离+1',
hslingjian_zhongxinghujia_equip4_info:'当你的装备区内有防具牌时,你的进攻距离+1',
hslingjian_zhongxinghujia_equip5_info:'出牌阶段限一次,你可以弃置两张牌,然后令一名角色随机装备一件防具',
hslingjian_jinjilengdong_duanzao:'冰冻',
hslingjian_jinjilengdong_duanzao2:'冰',
hslingjian_jinjilengdong_equip1_info:'每当你用杀造成一次伤害,你可以令目标摸两张牌并翻面',
hslingjian_jinjilengdong_equip2_info:'每当你受到杀造成的伤害,你可以令伤害来源摸两张牌并翻面',
hslingjian_jinjilengdong_equip3_info:'你的武将牌背面朝上时防御距离+2',
hslingjian_jinjilengdong_equip4_info:'你的武将牌背面朝上时进攻距离+2',
hslingjian_jinjilengdong_equip5_info:'回合结束后,若你的武将牌正面朝上,你可以与一名武将牌正面朝上的其他角色同时翻面,然后各摸两张牌',
hslingjian_yinmilichang_duanzao:'隐力',
hslingjian_yinmilichang_duanzao2:'隐',
hslingjian_yinmilichang_equip1_info:'每当你用杀造成一次伤害,你获得潜行直到下一回合开始',
hslingjian_yinmilichang_equip2_info:'每当你受到杀造成的伤害,你本回合内获得潜行',
hslingjian_yinmilichang_equip3_info:'当你的体力值为1时你的防御距离+1',
hslingjian_yinmilichang_equip4_info:'当你的体力值为1时你的进攻距离+1',
hslingjian_yinmilichang_equip5_info:'当你没有手牌时,你不能成为杀或决斗的目标',
hslingjian_xingtigaizao_duanzao:'移形',
hslingjian_xingtigaizao_duanzao2:'形',
hslingjian_xingtigaizao_equip1_info:'每当你用杀造成一次伤害,你摸一张牌',
hslingjian_xingtigaizao_equip2_info:'每当你受到杀造成的伤害,你摸一张牌',
hslingjian_xingtigaizao_equip3_info:'你的防御距离+1进攻距离-1',
hslingjian_xingtigaizao_equip4_info:'你的防御距离-1进攻距离+1',
hslingjian_xingtigaizao_equip5_info:'你于摸牌阶段额外摸一张牌;你的手牌上限-1',
hslingjian_shengxiuhaojiao_duanzao:'号角',
hslingjian_shengxiuhaojiao_duanzao2:'角',
hslingjian_shengxiuhaojiao_equip1_info:'有嘲讽的角色不能闪避你的杀',
hslingjian_shengxiuhaojiao_equip2_info:'有嘲讽的角色不能对你使用杀',
hslingjian_shengxiuhaojiao_equip3_info:'若你的手牌数大于你的体力值,你的防御距离+1',
hslingjian_shengxiuhaojiao_equip4_info:'若你的手牌数大于你的体力值,你的进攻距离+1',
hslingjian_shengxiuhaojiao_equip5_info:'出牌阶段限一次,你可以弃置一张牌,然后令一名角色获得或解除嘲讽',
hslingjian_shijianhuisu_duanzao:'回溯',
hslingjian_shijianhuisu_duanzao2:'溯',
hslingjian_shijianhuisu_equip1_info:'每当你使用杀指定目标后,你可以选择目标装备区内的一张牌,令其将此装备收回手牌',
hslingjian_shijianhuisu_equip2_info:'每当你成为杀的目标后,你可以选择使用者装备区内的一张牌,令其将此装备收回手牌,且本回合内不能再次装备',
hslingjian_shijianhuisu_equip3_info:'当你的装备区内没有其他牌时,你的防御距离+1',
hslingjian_shijianhuisu_equip4_info:'当你的装备区内没有其他牌时,你的进攻距离+1',
hslingjian_shijianhuisu_equip5_info:'出牌阶段限一次,你可以弃置一张牌,然后令一名其他角色将其装备区内的牌收回手牌',
_lingjianduanzao:'煅造',
_lingjianduanzao_info:'出牌阶段你可以弃置一张装备牌和一张零件牌并获得一件强化装备强化装备可以装备给距离1以内的角色',
jiguanshu:'机关鼠',
jiguanshu_info:'出牌阶段对距离1以内的一名角色使用用随机零件强化目标装备区内的装备',
lingjiandai:'零件袋',
lingjiandai_info:'出牌阶段对距离1以内的一名角色使用目标获得3张随机零件',
mujiaren:'木甲人',
mujiaren_skill:'木甲人',
mujiaren_skill_info:'你在煅造装备时可以额外加入一个零件;你可以弃置两个零件并获得一个机关鼠',
mujiaren_info:'出牌阶段对距离1以内的一名角色使用目标获得技能木甲人你在煅造装备时可以额外加入一个零件你可以弃置两个零件并获得一个机关鼠',
hslingjian:'零件',
hslingjian_xuanfengzhiren:'旋风之刃',
hslingjian_xuanfengzhiren_info:'随机弃置一名角色的一张牌',
hslingjian_zhongxinghujia:'重型护甲',
hslingjian_zhongxinghujia_info:'令一名角色装备一件随机防具,然后随机弃置其一张手牌',
hslingjian_jinjilengdong:'紧急冷冻',
hslingjian_jinjilengdong_info:'令一名武将牌正面朝上的其他角色摸两张牌并翻面',
hslingjian_yinmilichang:'隐秘力场',
hslingjian_yinmilichang_info:'令一名其他角色获得技能潜行,直到其下一回合开始',
hslingjian_xingtigaizao:'型体改造',
hslingjian_xingtigaizao_info:'摸一张牌,本回合手牌上限-1',
hslingjian_shengxiuhaojiao:'生锈号角',
hslingjian_shengxiuhaojiao_info:'令一名角色获得技能嘲讽,直到其下一回合开始',
hslingjian_shijianhuisu:'时间回溯',
hslingjian_shijianhuisu_info:'令一名其他角色将其装备牌收回手牌',
hslingjian_chaofeng:'嘲讽',
hslingjian_chaofeng_info:'锁定技,若你的手牌数大于你的体力值,则只要你在任一其他角色的攻击范围内,该角色使用【杀】时便不能指定你以外的角色为目标',
hslingjian_yinshen:'潜行',
hslingjian_yinshen_info:'锁定技,你不能成为其他角色的卡牌的目标',
suolianjia:'锁链甲', suolianjia:'锁链甲',
suolianjia_info:'锁定技,你防止即将受到的属性伤害,当装备时进入连环状态,当卸下时解除连环状态', suolianjia_info:'锁定技,你防止即将受到的属性伤害,当装备时进入连环状态,当卸下时解除连环状态',
suolianjia_bg:'链', suolianjia_bg:'链',

View File

@ -4591,7 +4591,7 @@ character.swd={
target.discard(result.buttons[0].link); target.discard(result.buttons[0].link);
target.draw(); target.draw();
if(player.num('he')) player.chooseToDiscard(true,'he'); if(player.num('he')) player.chooseToDiscard(true,'he');
player.logSkill('shengong'); player.logSkill('shengong',target);
} }
}, },
ai:{ ai:{
@ -6283,24 +6283,14 @@ character.swd={
}, },
lanzhi:{ lanzhi:{
trigger:{source:'damageBefore'}, trigger:{source:'damageBefore'},
filter:function(event,player){
return event.player!=player;
},
prompt:function(event){ prompt:function(event){
return '是否对'+get.translation(event.player)+'发动【兰芷】?'; return '是否对'+get.translation(event.player)+'发动【兰芷】?';
}, },
check:function(event,player){ check:function(event,player){
if(event.source==player){ if(player.hp==1&&event.player.hp>1) return true;
if(player.hp==1&&event.player.hp>1) return true; var eff=ai.get.damageEffect(event.player,player,player);
var att=ai.get.attitude(player,event.player); if(player.hp==player.maxHp) return eff<0;
if(player.hp==player.maxHp) return att>0; return eff<=0;
return att>=0;
}
else{
if(player.hp==1||event.num>1) return true;
if(player.hp==2) return ai.get.attitude(player,event.player)>=-2;
return ai.get.attitude(player,event.player)>=0;
}
}, },
content:function(){ content:function(){
trigger.untrigger(); trigger.untrigger();
@ -8065,7 +8055,7 @@ character.swd={
guxing_info:'出牌阶段你可以将最后至多X张手牌当杀使用此杀无视距离且可以指定至多3个目标每造成一次伤害你摸一张牌为你已损失的体力值且至少为。', guxing_info:'出牌阶段你可以将最后至多X张手牌当杀使用此杀无视距离且可以指定至多3个目标每造成一次伤害你摸一张牌为你已损失的体力值且至少为。',
tianlun_info:'任意一名角色的判定生效前,你可以弃置一张场上角色的判定牌代替之', tianlun_info:'任意一名角色的判定生效前,你可以弃置一张场上角色的判定牌代替之',
hlongyin_info:'出牌阶段,你可以弃置任意张颜色相同且点数不同的牌,并获得逆时针座位距离与卡牌点数相同的角色区域内的一张牌。每阶段限一次', hlongyin_info:'出牌阶段,你可以弃置任意张颜色相同且点数不同的牌,并获得逆时针座位距离与卡牌点数相同的角色区域内的一张牌。每阶段限一次',
lanzhi_info:'你对一名其他角色造成伤害时,你可以防止此伤害,然后回复一点体力', lanzhi_info:'每当你即将造成伤害,你可以防止此伤害,然后回复一点体力',
lanzhi_old_info:'每当你即将造成伤害,可以防止此伤害,然后摸两张牌。每回合限发动一次。', lanzhi_old_info:'每当你即将造成伤害,可以防止此伤害,然后摸两张牌。每回合限发动一次。',
tianhuo_info:'出牌阶段,你可以令所有角色弃置其判定区域内的牌,并受到没有来源的等量火焰伤害,每阶段限一次', tianhuo_info:'出牌阶段,你可以令所有角色弃置其判定区域内的牌,并受到没有来源的等量火焰伤害,每阶段限一次',
huanyin_info:'锁定技,每当你成为其他角色的卡牌的目标时,你进行一次判定,若为黑桃则取消之,若为红桃你摸一张牌', huanyin_info:'锁定技,每当你成为其他角色的卡牌的目标时,你进行一次判定,若为黑桃则取消之,若为红桃你摸一张牌',

View File

@ -9708,6 +9708,7 @@
this.unmarkSkill(skill); this.unmarkSkill(skill);
this.skills.remove(skill); this.skills.remove(skill);
this.checkConflict(); this.checkConflict();
delete this.tempSkills[skill];
if(lib.skill[skill]&&lib.skill[skill].onremove){ if(lib.skill[skill]&&lib.skill[skill].onremove){
lib.skill[skill].onremove(this); lib.skill[skill].onremove(this);
} }
@ -14592,6 +14593,23 @@
ui.updatehl(); ui.updatehl();
} }
}, },
newcard:function(content){
if(content){
lib.translate[content.name]=content.translate;
lib.translate[content.name+'_info']=content.info;
lib.card[content.name]={};
lib.card[content.name].cardimage=content.card
for(var i in lib.card[content.card]){
lib.card[content.name][i]=lib.card[content.card][i];
}
if(content.legend){
lib.card[content.name].legend=true;
}
else if(content.epic){
lib.card[content.name].epic=true;
}
}
},
playAudio:function(str){ playAudio:function(str){
game.playAudio(str,'video'); game.playAudio(str,'video');
}, },
@ -20818,6 +20836,7 @@
node.mode=mode; node.mode=mode;
var list=[]; var list=[];
for(var i=0;i<info.length;i++){ for(var i=0;i<info.length;i++){
if(lib.card[info[i]].derivation&&mode!='mode_derivation') continue;
list.push(['',get.translation(get.type(info[i],'trick')),info[i]]); list.push(['',get.translation(get.type(info[i],'trick')),info[i]]);
} }
var cfgnode=createConfig({ var cfgnode=createConfig({

View File

@ -18,11 +18,10 @@ character.pack={
}; };
card.pack={ card.pack={
standard:'标准', standard:'标准',
ex:'EX',
extra:'军争', extra:'军争',
refresh:'界限突破', refresh:'界限突破',
guozhan:'国战', guozhan:'国战',
mingzhong:'忠胆英杰', mingzhong:'SP',
zhenfa:'阵法', zhenfa:'阵法',
yunchou:'运筹帷幄', yunchou:'运筹帷幄',
swd:'轩辕剑', swd:'轩辕剑',

View File

@ -1,6 +1,5 @@
window.noname_source_list=[ window.noname_source_list=[
'card/compensate.js', 'card/compensate.js',
'card/ex.js',
'card/extra.js', 'card/extra.js',
'card/guozhan.js', 'card/guozhan.js',
'card/hearth.js', 'card/hearth.js',

View File

@ -2,17 +2,21 @@ window.noname_update={
version:'1.8.17', version:'1.8.17',
changeLog:[ changeLog:[
'修bug', '修bug',
'新卡'
], ],
files:{ files:{
global:[ global:[
'game/game.js', 'game/game.js',
'game/asset.js', 'game/asset.js',
'game/package.js',
'game/source.js',
'character/hearth.js', 'character/hearth.js',
'character/swd.js', 'character/swd.js',
'character/sp.js', 'character/sp.js',
'card/swd.js', 'card/swd.js',
'card/hearth.js', 'card/hearth.js',
'card/yunchou.js', 'card/yunchou.js',
'card/standard.js',
'layout/default/layout.css', 'layout/default/layout.css',
'theme/woodden/style.css', 'theme/woodden/style.css',
], ],