This commit is contained in:
parent
6e38aa258d
commit
fbe7a8c422
|
@ -633,7 +633,8 @@ card.standard={
|
||||||
},
|
},
|
||||||
basic:{
|
basic:{
|
||||||
order:9,
|
order:9,
|
||||||
useful:[5,1]
|
useful:[5,1],
|
||||||
|
value:5
|
||||||
},
|
},
|
||||||
result:{
|
result:{
|
||||||
target:function(player,target){
|
target:function(player,target){
|
||||||
|
@ -693,7 +694,8 @@ card.standard={
|
||||||
},
|
},
|
||||||
basic:{
|
basic:{
|
||||||
order:9,
|
order:9,
|
||||||
useful:1
|
useful:1,
|
||||||
|
value:5
|
||||||
},
|
},
|
||||||
result:{
|
result:{
|
||||||
target:function(player,target){
|
target:function(player,target){
|
||||||
|
|
23
card/swd.js
23
card/swd.js
|
@ -1548,7 +1548,8 @@ card.swd={
|
||||||
},
|
},
|
||||||
basic:{
|
basic:{
|
||||||
order:9,
|
order:9,
|
||||||
useful:[5,1]
|
useful:[5,1],
|
||||||
|
value:5
|
||||||
},
|
},
|
||||||
result:{
|
result:{
|
||||||
target:function(player,target){
|
target:function(player,target){
|
||||||
|
@ -1609,7 +1610,8 @@ card.swd={
|
||||||
},
|
},
|
||||||
basic:{
|
basic:{
|
||||||
order:9,
|
order:9,
|
||||||
useful:1
|
useful:1,
|
||||||
|
value:5
|
||||||
},
|
},
|
||||||
result:{
|
result:{
|
||||||
target:function(player,target){
|
target:function(player,target){
|
||||||
|
@ -1861,6 +1863,7 @@ card.swd={
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.addSkill('shuchui2');
|
player.addSkill('shuchui2');
|
||||||
|
player.storage.shuchui2=0;
|
||||||
event.num=0;
|
event.num=0;
|
||||||
'step 1'
|
'step 1'
|
||||||
var card=player.get('h','sha')[0];
|
var card=player.get('h','sha')[0];
|
||||||
|
@ -1868,15 +1871,20 @@ card.swd={
|
||||||
player.useCard(card,target);
|
player.useCard(card,target);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
if(player.storage.shuchui2){
|
||||||
|
player.draw(player.storage.shuchui2);
|
||||||
|
}
|
||||||
player.removeSkill('shuchui2');
|
player.removeSkill('shuchui2');
|
||||||
event.finish();
|
event.finish();
|
||||||
}
|
}
|
||||||
'step 2'
|
'step 2'
|
||||||
event.num++;
|
if(event.num++<2&&target.isAlive()){
|
||||||
if(event.num<3&&target.isAlive()){
|
|
||||||
event.goto(1);
|
event.goto(1);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
if(player.storage.shuchui2){
|
||||||
|
player.draw(player.storage.shuchui2);
|
||||||
|
}
|
||||||
player.removeSkill('shuchui2');
|
player.removeSkill('shuchui2');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -1893,11 +1901,14 @@ card.swd={
|
||||||
trigger:{source:'damageEnd'},
|
trigger:{source:'damageEnd'},
|
||||||
forced:true,
|
forced:true,
|
||||||
popup:false,
|
popup:false,
|
||||||
|
onremove:function(player){
|
||||||
|
delete player.storage.shuchui2;
|
||||||
|
},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return event.card&&event.card.name=='sha';
|
return event.card&&event.card.name=='sha';
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
player.draw();
|
player.storage.shuchui2++;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
xuejibingbao:{
|
xuejibingbao:{
|
||||||
|
@ -4281,7 +4292,7 @@ card.swd={
|
||||||
fengyinzhidan:'封印之蛋',
|
fengyinzhidan:'封印之蛋',
|
||||||
fengyinzhidan_info:'随机使用三张非延时锦囊牌(随机指定目标)',
|
fengyinzhidan_info:'随机使用三张非延时锦囊牌(随机指定目标)',
|
||||||
shuchui:'鼠槌',
|
shuchui:'鼠槌',
|
||||||
shuchui_info:'出牌阶段限一次,你可以指定一名攻击范围内的角色,依次将手牌中的所有杀对该角色使用,杀每造成一次伤害你摸一张牌(最多使用3张杀)',
|
shuchui_info:'出牌阶段限一次,你可以指定一名攻击范围内的角色,依次将手牌中的至多3张杀对该角色使用,杀每造成一次伤害你摸一张牌',
|
||||||
zhiluxiaohu:'指路小狐',
|
zhiluxiaohu:'指路小狐',
|
||||||
zhiluxiaohu_info:'出牌阶段对自己使用,视为对一名随机敌方角色使用一张杀,然后摸一张牌',
|
zhiluxiaohu_info:'出牌阶段对自己使用,视为对一名随机敌方角色使用一张杀,然后摸一张牌',
|
||||||
xuejibingbao:'雪肌冰鲍',
|
xuejibingbao:'雪肌冰鲍',
|
||||||
|
|
|
@ -170,7 +170,7 @@ character.ow={
|
||||||
forced:true,
|
forced:true,
|
||||||
popup:false,
|
popup:false,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return event.card&&event.card.name=='sha'&&player.storage.paotai>0;
|
return player.storage.paotai>0;
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
player.storage.paotai--;
|
player.storage.paotai--;
|
||||||
|
@ -1785,7 +1785,7 @@ character.ow={
|
||||||
luan2:{
|
luan2:{
|
||||||
mark:true,
|
mark:true,
|
||||||
intro:{
|
intro:{
|
||||||
content:'受到的伤害+1,直到首次进入濒死状态'
|
content:'受到的伤害后流失一点体力,直到首次进入濒死状态'
|
||||||
},
|
},
|
||||||
trigger:{player:'damageEnd'},
|
trigger:{player:'damageEnd'},
|
||||||
forced:true,
|
forced:true,
|
||||||
|
@ -2604,7 +2604,7 @@ character.ow={
|
||||||
zhongdun_info:'游戏开始时,你获得等同于游戏人数护甲;出牌阶段限一次,你可以弃置一张牌并将一点护甲分给一名没有护甲的其他角色',
|
zhongdun_info:'游戏开始时,你获得等同于游戏人数护甲;出牌阶段限一次,你可以弃置一张牌并将一点护甲分给一名没有护甲的其他角色',
|
||||||
paotai:'炮台',
|
paotai:'炮台',
|
||||||
paotai2:'炮台',
|
paotai2:'炮台',
|
||||||
paotai_info:'出牌阶段,你可以弃置一张杀布置或升级一个炮台(最高3级);回合结束阶段,炮台有一定机率对一名随机敌人造成一点火焰伤害;每当你受到杀造成的伤害,炮台降低一级',
|
paotai_info:'出牌阶段,你可以弃置一张杀布置或升级一个炮台(最高3级);回合结束阶段,炮台有一定机率对一名随机敌人造成一点火焰伤害;每当你受到一次伤害,炮台降低一级',
|
||||||
maoding:'铆钉',
|
maoding:'铆钉',
|
||||||
maoding2:'铆钉',
|
maoding2:'铆钉',
|
||||||
maoding_info:'每当你造成或受到一次伤害,你可以获得一个零件;出牌限阶段限一次,你可以弃置两张零件牌令一名没有护甲的角色获得一点护甲',
|
maoding_info:'每当你造成或受到一次伤害,你可以获得一个零件;出牌限阶段限一次,你可以弃置两张零件牌令一名没有护甲的角色获得一点护甲',
|
||||||
|
|
|
@ -18,6 +18,7 @@ window.characterRank={
|
||||||
'pal_liumengli',
|
'pal_liumengli',
|
||||||
],
|
],
|
||||||
ap:[
|
ap:[
|
||||||
|
'pal_xiahoujinxuan',
|
||||||
'swd_huiyan',
|
'swd_huiyan',
|
||||||
'hs_medivh',
|
'hs_medivh',
|
||||||
'ow_dva',
|
'ow_dva',
|
||||||
|
@ -134,6 +135,7 @@ window.characterRank={
|
||||||
'pal_wangpengxu',
|
'pal_wangpengxu',
|
||||||
'yxs_luobinhan',
|
'yxs_luobinhan',
|
||||||
'hs_alleria',
|
'hs_alleria',
|
||||||
|
'pal_wenhui',
|
||||||
],
|
],
|
||||||
am:[
|
am:[
|
||||||
'swd_duanmeng',
|
'swd_duanmeng',
|
||||||
|
|
|
@ -426,7 +426,6 @@ character.sp={
|
||||||
skillAnimation:true,
|
skillAnimation:true,
|
||||||
unique:true,
|
unique:true,
|
||||||
enable:'phaseUse',
|
enable:'phaseUse',
|
||||||
mark:true,
|
|
||||||
zhuSkill:true,
|
zhuSkill:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(!player.hasZhuSkill('shichou'))return false;
|
if(!player.hasZhuSkill('shichou'))return false;
|
||||||
|
@ -435,7 +434,10 @@ character.sp={
|
||||||
},
|
},
|
||||||
selectCard:2,
|
selectCard:2,
|
||||||
init:function(player){
|
init:function(player){
|
||||||
player.storage.shichou=false;
|
if(player.hasZhuSkill('shichou')){
|
||||||
|
player.markSkill('shichou');
|
||||||
|
player.storage.shichou=false;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
filterTarget:function(card,player,target){
|
filterTarget:function(card,player,target){
|
||||||
return target.group=='shu'&&target!=player;
|
return target.group=='shu'&&target!=player;
|
||||||
|
@ -2735,6 +2737,7 @@ character.sp={
|
||||||
trigger:{player:'phaseDiscardBegin'},
|
trigger:{player:'phaseDiscardBegin'},
|
||||||
direct:true,
|
direct:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
|
if(!player.storage.xingwu_color) return false;
|
||||||
var length=player.storage.xingwu_color.length;
|
var length=player.storage.xingwu_color.length;
|
||||||
if(length==0) return false;
|
if(length==0) return false;
|
||||||
var hs=player.get('h');
|
var hs=player.get('h');
|
||||||
|
|
|
@ -16,7 +16,7 @@ character.xianjian={
|
||||||
pal_changqing:['male','wei',4,['luanjian','tianfu']],
|
pal_changqing:['male','wei',4,['luanjian','tianfu']],
|
||||||
|
|
||||||
pal_nangonghuang:['male','wei',3,['zhaoyao','sheling','zhangmu']],
|
pal_nangonghuang:['male','wei',3,['zhaoyao','sheling','zhangmu']],
|
||||||
// pal_wenhui:['female','shu',4,[]],
|
pal_wenhui:['female','shu',4,['huxi','longxiang']],
|
||||||
pal_wangpengxu:['female','shu',3,['duxinshu','feixu']],
|
pal_wangpengxu:['female','shu',3,['duxinshu','feixu']],
|
||||||
pal_xingxuan:['male','wei',3,['feizhua','leiyu','lingxue']],
|
pal_xingxuan:['male','wei',3,['feizhua','leiyu','lingxue']],
|
||||||
// pal_leiyuange:['male','wei',3,[]],
|
// pal_leiyuange:['male','wei',3,[]],
|
||||||
|
@ -32,82 +32,313 @@ character.xianjian={
|
||||||
// pal_longyou:['male','wei',4,[]],
|
// pal_longyou:['male','wei',4,[]],
|
||||||
// pal_xiaoman:['male','wei',4,[]],
|
// pal_xiaoman:['male','wei',4,[]],
|
||||||
|
|
||||||
// pal_xiahoujinxuan:['male','shu',3,['lingyan','danqing']],
|
pal_xiahoujinxuan:['male','shu',3,['xuanmo','lingyan','danqing']],
|
||||||
// pal_muchanglan:['male','wei',4,[]],
|
// pal_muchanglan:['male','wei',4,[]],
|
||||||
// pal_xia:['male','wei',4,[]],
|
// pal_xia:['male','wei',4,[]],
|
||||||
// pal_jiangcheng:['male','wei',4,[]],
|
// pal_jiangcheng:['male','wei',4,[]],
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
lingyan:{
|
longxiang:{
|
||||||
trigger:{player:'useCard'},
|
trigger:{player:'shaBegin'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
console.log(event.card.name);
|
return event.target.num('h')>player.num('h');
|
||||||
return lib.skill.lingyan.filterx(event.card)&&event.target==player;
|
},
|
||||||
|
check:function(event,player){
|
||||||
|
return ai.get.attitude(player,event.target)<0;
|
||||||
|
},
|
||||||
|
logTarget:'target',
|
||||||
|
content:function(){
|
||||||
|
var hs=trigger.target.get('h');
|
||||||
|
trigger.target.discard(hs.randomGets(hs.length-player.num('h')));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
huxi:{
|
||||||
|
enable:'chooseToUse',
|
||||||
|
viewAs:{name:'sha'},
|
||||||
|
precontent:function(){
|
||||||
|
'step 0'
|
||||||
|
player.loseHp();
|
||||||
|
'step 1'
|
||||||
|
player.changeHujia();
|
||||||
|
},
|
||||||
|
filterCard:function(){return false},
|
||||||
|
selectCard:-1,
|
||||||
|
prompt:'失去一点体力并获得一点护甲,视为使用一张杀',
|
||||||
|
ai:{
|
||||||
|
order:function(){
|
||||||
|
var player=_status.event.player;
|
||||||
|
if(player.hp<=2) return 0;
|
||||||
|
return 2;
|
||||||
|
},
|
||||||
|
skillTagFilter:function(player,tag,arg){
|
||||||
|
if(arg!='use') return false;
|
||||||
|
},
|
||||||
|
respondSha:true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
xuanmo:{
|
||||||
|
enable:'phaseUse',
|
||||||
|
usable:1,
|
||||||
|
filterCard:function(card){
|
||||||
|
var type=get.type(card,'trick');
|
||||||
|
return type=='basic'||type=='equip'||type=='trick';
|
||||||
|
},
|
||||||
|
check:function(card){
|
||||||
|
return 8-ai.get.value(card);
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.num('h')>0;
|
||||||
|
},
|
||||||
|
discard:false,
|
||||||
|
prepare:'throw',
|
||||||
|
content:function(){
|
||||||
|
game.log(player,'将',cards,'置于牌堆顶');
|
||||||
|
ui.cardPile.insertBefore(cards[0],ui.cardPile.firstChild);
|
||||||
|
var list=get.inpile(get.type(cards[0],'trick'),'trick').randomGets(2);
|
||||||
|
for(var i=0;i<list.length;i++){
|
||||||
|
list[i]=game.createCard(list[i]);
|
||||||
|
}
|
||||||
|
player.gain(list,'draw');
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
order:5,
|
||||||
|
result:{
|
||||||
|
player:1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
danqing:{
|
||||||
|
trigger:{player:'useCardAfter'},
|
||||||
|
init:function(player){
|
||||||
|
player.storage.danqing=[];
|
||||||
|
},
|
||||||
|
mark:true,
|
||||||
|
direct:true,
|
||||||
|
intro:{
|
||||||
|
content:function(storage){
|
||||||
|
if(!storage.length){
|
||||||
|
return '未使用或打出过有花色的牌';
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
var str='已使用过'+get.translation(storage[0]+'2');
|
||||||
|
for(var i=1;i<storage.length;i++){
|
||||||
|
str+='、'+get.translation(storage[i]+'2');
|
||||||
|
}
|
||||||
|
str+='牌';
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// filter:function(event,player){
|
||||||
|
// return player.storage.danqing.length==4;
|
||||||
|
// },
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.storage.danqing.length=0;
|
||||||
|
player.updateMarks();
|
||||||
|
player.chooseTarget(get.prompt('danqing'),[1,4]).ai=function(target){
|
||||||
|
return ai.get.attitude(player,target);
|
||||||
|
}
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
player.logSkill('danqing',result.targets);
|
||||||
|
var effs=['draw','hujia','equip'];
|
||||||
|
if(lib.skill.hslingjian_yinshen){
|
||||||
|
effs.add('stealth');
|
||||||
|
}
|
||||||
|
for(var i=0;i<result.targets.length;i++){
|
||||||
|
var eff=effs.randomRemove();
|
||||||
|
var current=result.targets[i];
|
||||||
|
switch(eff){
|
||||||
|
case 'draw':current.draw();break;
|
||||||
|
case 'hujia':current.changeHujia();break;
|
||||||
|
case 'equip':
|
||||||
|
var card=game.createCard(get.inpile('equip').randomGet());
|
||||||
|
current.equip(card);
|
||||||
|
current.$draw(card);
|
||||||
|
break;
|
||||||
|
case 'stealth':current.addTempSkill('hslingjian_yinshen',{player:'phaseBegin'});break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(effs.contains('draw')){
|
||||||
|
game.delay();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
group:'danqing_count'
|
||||||
|
},
|
||||||
|
danqing_count:{
|
||||||
|
trigger:{player:'useCard'},
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
silent:true,
|
||||||
|
content:function(){
|
||||||
|
var suit=get.suit(trigger.card);
|
||||||
|
if(suit){
|
||||||
|
player.storage.danqing.add(suit);
|
||||||
|
player.updateMarks();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
danqing_old:{
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.storage.danqing.length=0;
|
||||||
|
player.updateMarks();
|
||||||
|
event.targets=[];
|
||||||
|
'step 1'
|
||||||
|
player.chooseTarget('令一名角色摸一张牌',function(card,player,target){
|
||||||
|
return !event.targets.contains(target);
|
||||||
|
}).ai=function(target){
|
||||||
|
var att=ai.get.attitude(player,target);
|
||||||
|
if(att>0){
|
||||||
|
return att+1/Math.sqrt(1+target.num('h'));
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
'step 2'
|
||||||
|
if(result.bool){
|
||||||
|
player.line(result.targets[0],'green');
|
||||||
|
result.targets[0].draw();
|
||||||
|
event.targets.push(result.targets[0]);
|
||||||
|
if(event.targets.length==game.players.length){
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
player.chooseTarget('令一名角色获得一点护甲',function(card,player,target){
|
||||||
|
return !event.targets.contains(target);
|
||||||
|
}).ai=function(target){
|
||||||
|
var att=ai.get.attitude(player,target);
|
||||||
|
if(att>0){
|
||||||
|
return att+1/Math.sqrt(1+target.hp);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
'step 3'
|
||||||
|
if(result.bool){
|
||||||
|
player.line(result.targets[0],'green');
|
||||||
|
result.targets[0].changeHujia();
|
||||||
|
game.delay();
|
||||||
|
event.targets.push(result.targets[0]);
|
||||||
|
if(event.targets.length==game.players.length){
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
player.chooseTarget('令一名角色装备一件随机装备',function(card,player,target){
|
||||||
|
return !event.targets.contains(target);
|
||||||
|
}).ai=function(target){
|
||||||
|
var att=ai.get.attitude(player,target);
|
||||||
|
if(att>0&&!target.get('e','5')){
|
||||||
|
return att;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
'step 4'
|
||||||
|
if(result.bool){
|
||||||
|
player.line(result.targets[0],'green');
|
||||||
|
game.delay();
|
||||||
|
var list=[];
|
||||||
|
for(var i=0;i<lib.inpile.length;i++){
|
||||||
|
if(lib.card[lib.inpile[i]].type=='equip'){
|
||||||
|
list.push(lib.inpile[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var card=game.createCard(list.randomGet());
|
||||||
|
result.targets[0].equip(card);
|
||||||
|
result.targets[0].$draw(card);
|
||||||
|
event.targets.push(result.targets[0]);
|
||||||
|
if(event.targets.length==game.players.length||!lib.skill.hslingjian_yinshen){
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
player.chooseTarget('令一名角色获得潜行',function(card,player,target){
|
||||||
|
return !event.targets.contains(target);
|
||||||
|
}).ai=function(target){
|
||||||
|
var att=ai.get.attitude(player,target);
|
||||||
|
if(att>0){
|
||||||
|
return att+1/Math.sqrt(1+target.hp);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
'step 5'
|
||||||
|
if(result.bool){
|
||||||
|
player.line(result.targets[0],'green');
|
||||||
|
game.delay();
|
||||||
|
result.targets[0].addTempSkill('hslingjian_yinshen',{player:'phaseBegin'});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
lingyan:{
|
||||||
|
trigger:{player:'useCardToBegin'},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(player.num('e')==5) return false;
|
||||||
|
return lib.skill.lingyan.filterx(event.card,player)&&event.target==player;
|
||||||
},
|
},
|
||||||
direct:true,
|
direct:true,
|
||||||
filterx:function(card){
|
filterx:function(card,player){
|
||||||
if(!lib.inpile.contains(card.name)) return false;
|
if(!lib.inpile.contains(card.name)) return false;
|
||||||
var info=get.info(card);
|
var info=get.info(card);
|
||||||
if(info.type!='equip') return false;
|
if(info.type!='equip') return false;
|
||||||
if(info.nomod) return false;
|
if(info.nomod) return false;
|
||||||
|
if(!info.subtype) return false;
|
||||||
|
if(!player.get('e',info.subtype[5])) return false;
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
group:'lingyan_lose',
|
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
var list=['equip1','equip2','equip3','equip4','equip5','cancelx'];
|
var list=['equip1','equip2','equip3','equip4','equip5'];
|
||||||
var list2=[];
|
for(var i=0;i<list.length;i++){
|
||||||
var subtype=get.subtype(trigger.card);
|
if(player.get('e',list[i][5])){
|
||||||
list.remove(subtype);
|
list.splice(i--,1);
|
||||||
for(var i=0;i<4;i++){
|
|
||||||
if(!player.get('e',subtype[5])){
|
|
||||||
list2.push(list[i]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
list.push('cancel2');
|
||||||
player.chooseControl(list,function(){
|
player.chooseControl(list,function(){
|
||||||
if(!player.get('e',subtype[5])) return 'cancelx';
|
return list.randomGet();
|
||||||
return list2.randomGet();
|
}).prompt='灵砚:是否改变'+get.translation(trigger.card.name)+'的装备类型?';
|
||||||
}).prompt=get.prompt('灵砚:是否改变装备牌的位置?');
|
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.control!='cancelx'){
|
if(result.control&&result.control!='cancel2'){
|
||||||
player.logSkill('lingyan');
|
player.logSkill('lingyan');
|
||||||
var name=trigger.card.name+'_lingyan_'+result.control;
|
var name=trigger.card.name+'_lingyan_'+result.control;
|
||||||
if(!lib.card[name]){
|
if(!lib.card[name]){
|
||||||
lib.card[name]=get.copy(get.info(trigger.card));
|
lib.card[name]=get.copy(get.info(trigger.card));
|
||||||
lib.card[name].subtype=result.control;
|
lib.card[name].subtype=result.control;
|
||||||
lib.card[name].vanish=true;
|
|
||||||
lib.card[name].epic=true;
|
lib.card[name].epic=true;
|
||||||
|
lib.card[name].cardimage=trigger.card.name;
|
||||||
lib.translate[name]=lib.translate[trigger.card.name];
|
lib.translate[name]=lib.translate[trigger.card.name];
|
||||||
lib.translate[name+'_info']=lib.translate[trigger.card.name+'_info'];
|
lib.translate[name+'_info']=lib.translate[trigger.card.name+'_info'];
|
||||||
}
|
}
|
||||||
trigger.card.storage.lingyan=trigger.card.name;
|
|
||||||
trigger.card.init([trigger.card.suit,trigger.card.number,name,trigger.card.nature]);
|
trigger.card.init([trigger.card.suit,trigger.card.number,name,trigger.card.nature]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
effect:{
|
effect:{
|
||||||
target:function(card,player,target,current){
|
target:function(card,player,target,current){
|
||||||
if(lib.skill.lingyan.filterx(card)&&target.num('e')<5){
|
if(target==player&&lib.skill.lingyan.filterx(card,target)&&target.num('e')<5){
|
||||||
return [1,3];
|
return [1,3];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
lingyan_lose:{
|
|
||||||
trigger:{player:'loseEnd'},
|
|
||||||
forced:true,
|
|
||||||
popup:false,
|
|
||||||
silent:true,
|
|
||||||
content:function(){
|
|
||||||
for(var i=0;i<trigger.cards.length;i++){
|
|
||||||
var card=trigger.cards[i];
|
|
||||||
if(card.storage.lingyan){
|
|
||||||
card.init([card.suit,card.number,card.storage.lingyan,card.nature]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
sheling:{
|
sheling:{
|
||||||
trigger:{global:['useCardAfter','respondAfter','discardAfter']},
|
trigger:{global:['useCardAfter','respondAfter','discardAfter']},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
|
@ -247,9 +478,23 @@ character.xianjian={
|
||||||
},
|
},
|
||||||
leiyu:{
|
leiyu:{
|
||||||
trigger:{player:'phaseEnd'},
|
trigger:{player:'phaseEnd'},
|
||||||
check:function(event,player){
|
direct:true,
|
||||||
if(player.hp==1) return 0;
|
filter:function(event,player){
|
||||||
var num=0;
|
if(player.storage.leiyu){
|
||||||
|
for(var i=0;i<player.storage.leiyu.length;i++){
|
||||||
|
if(player.storage.leiyu[i].isAlive()) return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
for(var i=0;i<player.storage.leiyu.length;i++){
|
||||||
|
if(player.storage.leiyu[i].isDead()){
|
||||||
|
player.storage.leiyu.splice(i--,1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var num=0;
|
||||||
var num2=0;
|
var num2=0;
|
||||||
for(var i=0;i<player.storage.leiyu.length;i++){
|
for(var i=0;i<player.storage.leiyu.length;i++){
|
||||||
if(player.storage.leiyu[i].isDead()) continue;
|
if(player.storage.leiyu[i].isDead()) continue;
|
||||||
|
@ -262,40 +507,21 @@ character.xianjian={
|
||||||
num2--;
|
num2--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return num>0&&num2>=2;
|
var next=player.chooseToDiscard(get.prompt('leiyu',player.storage.leiyu),{color:'black'});
|
||||||
},
|
next.ai=function(){
|
||||||
prompt:function(event,player){
|
if(num>0&&num2>=2){
|
||||||
for(var i=0;i<player.storage.leiyu.length;i++){
|
return 7-ai.get.value(card);
|
||||||
if(player.storage.leiyu[i].isDead()){
|
|
||||||
player.storage.leiyu.splice(i--,1);
|
|
||||||
}
|
}
|
||||||
}
|
return 0;
|
||||||
return get.prompt('leiyu',player.storage.leiyu);
|
};
|
||||||
},
|
next.logSkill=['leiyu',player.storage.leiyu];
|
||||||
filter:function(event,player){
|
|
||||||
if(player.storage.leiyu){
|
|
||||||
for(var i=0;i<player.storage.leiyu.length;i++){
|
|
||||||
if(player.storage.leiyu[i].isAlive()) return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
'step 0'
|
|
||||||
player.loseHp();
|
|
||||||
'step 1'
|
'step 1'
|
||||||
for(var i=0;i<player.storage.leiyu.length;i++){
|
if(result.bool){
|
||||||
if(player.storage.leiyu[i].isDead()){
|
player.storage.leiyu.sort(lib.sort.seat);
|
||||||
player.storage.leiyu.splice(i--,1);
|
player.useCard({name:'jingleishan',nature:'thunder'},player.storage.leiyu).animate=false;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
player.storage.leiyu2=true;
|
|
||||||
player.storage.leiyu.sort(lib.sort.seat);
|
|
||||||
player.useCard({name:'jingleishan',nature:'thunder'},player.storage.leiyu);
|
|
||||||
'step 1'
|
|
||||||
delete player.storage.leiyu2;
|
|
||||||
},
|
},
|
||||||
group:['leiyu2','leiyu3','leiyu4'],
|
group:['leiyu2','leiyu4'],
|
||||||
ai:{
|
ai:{
|
||||||
threaten:1.3
|
threaten:1.3
|
||||||
}
|
}
|
||||||
|
@ -1995,16 +2221,22 @@ character.xianjian={
|
||||||
pal_changqing:'长卿',
|
pal_changqing:'长卿',
|
||||||
pal_xuanxiao:'玄霄',
|
pal_xuanxiao:'玄霄',
|
||||||
|
|
||||||
|
longxiang:'龙翔',
|
||||||
|
longxiang_info:'当你使用杀指定目标后,你可以弃置目标若干张手牌直到其手牌数与你相同',
|
||||||
|
huxi:'虎袭',
|
||||||
|
huxi_info:'你可以失去一点体力并获得一点护甲,视为使用一张杀',
|
||||||
|
xuanmo:'玄墨',
|
||||||
|
xuanmo_info:'出牌阶段限一次,你可以将一张手牌置于牌堆顶并随机获得两张与之类别相同的牌',
|
||||||
lingyan:'灵砚',
|
lingyan:'灵砚',
|
||||||
lingyan_info:'你可以将装备牌装备至装备区的任意位置',
|
lingyan_info:'在你使用一张装备牌时,若你的装备区的对应位置已有装备,你可以选择装备区内的一个空余位置,将此牌的装备类型永久改变至与此位置对应',
|
||||||
danqing:'丹青',
|
danqing:'丹青',
|
||||||
danqing_info:'当你累计使用或打出了4张花色不同的牌后,你可以依次将以下4种效果分配给4名不同的角色:1. 摸两张牌;2. 获得一点护甲;3. 装备一件宝物;4. 获得潜行直到下一回合开始',
|
danqing_info:'当你累计使用了4张花色不同的牌后,你可以依次将以下4种效果分配给至多4名不同的角色:1、摸一张牌;2、获得一点护甲;3、装备一件随机装备;4、获得潜行直到下一回合开始',
|
||||||
zhangmu:'障目',
|
zhangmu:'障目',
|
||||||
zhangmu_info:'每回合限一次,当你需要使用或打出一张闪时,你可以展示一张闪,视为使用或打出了此闪',
|
zhangmu_info:'每回合限一次,当你需要使用或打出一张闪时,你可以展示一张闪,视为使用或打出了此闪',
|
||||||
feizhua:'飞爪',
|
feizhua:'飞爪',
|
||||||
feizhua_info:'当你使用一张杀时,你可以将目标两侧的角色追加为额外目标',
|
feizhua_info:'当你使用一张杀时,你可以将目标两侧的角色追加为额外目标',
|
||||||
leiyu:'雷狱',
|
leiyu:'雷狱',
|
||||||
leiyu_info:'回合结束阶段,你可以失去一点体力,视为对本回合内所有成为过你的卡牌目标的角色使用一张惊雷闪,若你杀死任意一名角色,你回复一点体力',
|
leiyu_info:'回合结束阶段,你可以弃置一张黑色牌,视为对本回合内所有成为过你的卡牌目标的角色使用一张惊雷闪',
|
||||||
lingxue:'灵血',
|
lingxue:'灵血',
|
||||||
lingxue_info:'锁定技,每当你回复一点体力,你获得一点护甲',
|
lingxue_info:'锁定技,每当你回复一点体力,你获得一点护甲',
|
||||||
zhaoyao:'招摇',
|
zhaoyao:'招摇',
|
||||||
|
|
|
@ -6872,6 +6872,7 @@ character.yijiang={
|
||||||
filter:function(event){
|
filter:function(event){
|
||||||
return event.card&&event.card.name=='sha'&&event.player.isAlive();
|
return event.card&&event.card.name=='sha'&&event.player.isAlive();
|
||||||
},
|
},
|
||||||
|
logTarget:'player',
|
||||||
content:function(){
|
content:function(){
|
||||||
"step 0"
|
"step 0"
|
||||||
trigger.player.draw(Math.min(5,trigger.player.hp));
|
trigger.player.draw(Math.min(5,trigger.player.hp));
|
||||||
|
@ -7866,6 +7867,6 @@ character.yijiang={
|
||||||
mingce_info:'出牌阶段,你可以交给任一其他角色一张装备牌或【杀】,该角色进行二选一:1. 视为对其攻击范围内的另一名由你指定的角色使用一张【杀】。2. 摸一张牌。每回合限一次。',
|
mingce_info:'出牌阶段,你可以交给任一其他角色一张装备牌或【杀】,该角色进行二选一:1. 视为对其攻击范围内的另一名由你指定的角色使用一张【杀】。2. 摸一张牌。每回合限一次。',
|
||||||
zhichi_info:'锁定技,你的回合外,你每受到一次伤害,任何【杀】或非延时类锦囊均对你无效,直到该回合结束。',
|
zhichi_info:'锁定技,你的回合外,你每受到一次伤害,任何【杀】或非延时类锦囊均对你无效,直到该回合结束。',
|
||||||
zhichi2_info:'智迟已发动',
|
zhichi2_info:'智迟已发动',
|
||||||
pojun_info:'你每使用【杀】造成一次伤害,可令受到该伤害的角色多摸X张牌,X为改角色当前的体力值(X最多为5),然后该角色将其武将牌翻面。',
|
pojun_info:'你每使用【杀】造成一次伤害,可令受到该伤害的角色多摸X张牌,X为该角色当前的体力值(X最多为5),然后该角色将其武将牌翻面。',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
96
game/game.js
96
game/game.js
|
@ -8713,6 +8713,9 @@
|
||||||
}
|
}
|
||||||
},get.subtype(card));
|
},get.subtype(card));
|
||||||
player.$equip(card);
|
player.$equip(card);
|
||||||
|
if(event.draw){
|
||||||
|
player.$draw(card);
|
||||||
|
}
|
||||||
game.addVideo('equip',player,get.cardInfo(card));
|
game.addVideo('equip',player,get.cardInfo(card));
|
||||||
game.log(player,'装备了',card);
|
game.log(player,'装备了',card);
|
||||||
"step 2"
|
"step 2"
|
||||||
|
@ -8735,6 +8738,10 @@
|
||||||
game.delayx();
|
game.delayx();
|
||||||
}
|
}
|
||||||
delete player.equiping;
|
delete player.equiping;
|
||||||
|
"step 3"
|
||||||
|
if(event.draw){
|
||||||
|
game.delay();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
addJudge:function(){
|
addJudge:function(){
|
||||||
"step 0"
|
"step 0"
|
||||||
|
@ -10931,6 +10938,7 @@
|
||||||
next.card=card;
|
next.card=card;
|
||||||
next.player=this;
|
next.player=this;
|
||||||
next.setContent(lib.element.content.equip);
|
next.setContent(lib.element.content.equip);
|
||||||
|
return next;
|
||||||
},
|
},
|
||||||
addJudge:function(card,cards){
|
addJudge:function(card,cards){
|
||||||
var next=game.createEvent('addJudge');
|
var next=game.createEvent('addJudge');
|
||||||
|
@ -13377,15 +13385,24 @@
|
||||||
if(!lib.card[card[2]]){
|
if(!lib.card[card[2]]){
|
||||||
lib.card[card[2]]={};
|
lib.card[card[2]]={};
|
||||||
}
|
}
|
||||||
if(lib.card[card[2]].epic){
|
var info=lib.card[card[2]];
|
||||||
|
if(this.name){
|
||||||
|
this.classList.remove('epic');
|
||||||
|
this.classList.remove('legend');
|
||||||
|
var subtype=get.subtype(this);
|
||||||
|
if(subtype){
|
||||||
|
this.classList.remove(subtype);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(info.epic){
|
||||||
this.classList.add('epic');
|
this.classList.add('epic');
|
||||||
}
|
}
|
||||||
else if(lib.card[card[2]].legend){
|
else if(info.legend){
|
||||||
this.classList.add('legend');
|
this.classList.add('legend');
|
||||||
}
|
}
|
||||||
var bg=card[2];
|
var bg=card[2];
|
||||||
if(lib.card[card[2]].cardimage){
|
if(info.cardimage){
|
||||||
bg=lib.card[card[2]].cardimage;
|
bg=info.cardimage;
|
||||||
}
|
}
|
||||||
var img=lib.card[bg].image;
|
var img=lib.card[bg].image;
|
||||||
if(img){
|
if(img){
|
||||||
|
@ -13466,38 +13483,38 @@
|
||||||
if(this.node.background.innerHTML.length>1) this.node.background.classList.add('tight');
|
if(this.node.background.innerHTML.length>1) this.node.background.classList.add('tight');
|
||||||
else this.node.background.classList.remove('tight');
|
else this.node.background.classList.remove('tight');
|
||||||
}
|
}
|
||||||
if(lib.card[card[2]].noname&&!this.classList.contains('button')){
|
if(info.noname&&!this.classList.contains('button')){
|
||||||
this.node.name.style.display='none';
|
this.node.name.style.display='none';
|
||||||
}
|
}
|
||||||
if(lib.card[card[2]].color){
|
if(info.color){
|
||||||
this.style.color=lib.card[card[2]].color;
|
this.style.color=info.color;
|
||||||
}
|
}
|
||||||
else if(lib.card[card[2]].fullimage){
|
else if(info.fullimage){
|
||||||
this.style.color='white';
|
this.style.color='white';
|
||||||
}
|
}
|
||||||
if(lib.card[card[2]].textShadow){
|
if(info.textShadow){
|
||||||
this.style.textShadow=lib.card[card[2]].textShadow;
|
this.style.textShadow=info.textShadow;
|
||||||
}
|
}
|
||||||
else if(lib.card[card[2]].fullimage){
|
else if(info.fullimage){
|
||||||
this.style.textShadow='black 0 0 2px';
|
this.style.textShadow='black 0 0 2px';
|
||||||
}
|
}
|
||||||
if(lib.card[card[2]].opacity){
|
if(info.opacity){
|
||||||
this.node.info.style.opacity=lib.card[card[2]].opacity;
|
this.node.info.style.opacity=info.opacity;
|
||||||
this.node.name.style.opacity=lib.card[card[2]].opacity;
|
this.node.name.style.opacity=info.opacity;
|
||||||
}
|
}
|
||||||
else if(lib.card[card[2]].fullimage){
|
else if(info.fullimage){
|
||||||
this.node.info.style.opacity=1;
|
this.node.info.style.opacity=1;
|
||||||
this.node.name.style.opacity=1;
|
this.node.name.style.opacity=1;
|
||||||
}
|
}
|
||||||
if(lib.card[card[2]].modinfo){
|
if(info.modinfo){
|
||||||
this.node.info.innerHTML=lib.card[card[2]].modinfo;
|
this.node.info.innerHTML=info.modinfo;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
this.node.info.innerHTML=get.translation(card[0])+'<span> </span>'+card[1];
|
this.node.info.innerHTML=get.translation(card[0])+'<span> </span>'+card[1];
|
||||||
}
|
}
|
||||||
if(lib.card[card[2]].addinfo){
|
if(info.addinfo){
|
||||||
this.node.addinfo=ui.create.div('.range',this);
|
this.node.addinfo=ui.create.div('.range',this);
|
||||||
this.node.addinfo.innerHTML=lib.card[card[2]].addinfo;
|
this.node.addinfo.innerHTML=info.addinfo;
|
||||||
}
|
}
|
||||||
if(card[0]=='heart'||card[0]=='diamond'){
|
if(card[0]=='heart'||card[0]=='diamond'){
|
||||||
this.node.info.classList.add('red');
|
this.node.info.classList.add('red');
|
||||||
|
@ -13537,13 +13554,13 @@
|
||||||
this.classList.remove(this.nature);
|
this.classList.remove(this.nature);
|
||||||
delete this.nature;
|
delete this.nature;
|
||||||
}
|
}
|
||||||
if(lib.card[card[2]].subtype) this.classList.add(lib.card[card[2]].subtype);
|
if(info.subtype) this.classList.add(info.subtype);
|
||||||
if(this.inits){
|
if(this.inits){
|
||||||
for(var i=0;i<lib.element.card.inits.length;i++){
|
for(var i=0;i<lib.element.card.inits.length;i++){
|
||||||
lib.element.card.inits[i](this);
|
lib.element.card.inits[i](this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(typeof lib.card[card[2]].init=='function') lib.card[card[2]].init();
|
if(typeof info.init=='function') info.init();
|
||||||
|
|
||||||
switch(get.subtype(this)){
|
switch(get.subtype(this)){
|
||||||
case 'equip1':
|
case 'equip1':
|
||||||
|
@ -13559,15 +13576,24 @@
|
||||||
this.node.range.innerHTML='范围: 1';
|
this.node.range.innerHTML='范围: 1';
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'equip3':this.node.range.innerHTML='防御: '+lib.card[card[2]].distance.globalTo;this.node.name2.innerHTML+='+';break;
|
case 'equip3':
|
||||||
case 'equip4':this.node.range.innerHTML='进攻: '+(-lib.card[card[2]].distance.globalFrom);this.node.name2.innerHTML+='-';break;
|
if(info.distance&&info.distance.globalTo){
|
||||||
|
this.node.range.innerHTML='防御: '+info.distance.globalTo;
|
||||||
|
this.node.name2.innerHTML+='+';
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'equip4':
|
||||||
|
if(info.distance&&info.distance.globalFrom){
|
||||||
|
this.node.range.innerHTML='进攻: '+(-info.distance.globalFrom);
|
||||||
|
this.node.name2.innerHTML+='-';
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if(_status.connectMode&&!game.online&&lib.cardOL&&!this.cardid){
|
if(_status.connectMode&&!game.online&&lib.cardOL&&!this.cardid){
|
||||||
this.cardid=get.id();
|
this.cardid=get.id();
|
||||||
lib.cardOL[this.cardid]=this;
|
lib.cardOL[this.cardid]=this;
|
||||||
}
|
}
|
||||||
if(lib.config.game=='hs'){
|
if(lib.config.game=='hs'){
|
||||||
var info=lib.card[card[2]];
|
|
||||||
if(info.class!='neutral'){
|
if(info.class!='neutral'){
|
||||||
this.node.name.dataset.careercolor=info.class;
|
this.node.name.dataset.careercolor=info.class;
|
||||||
}
|
}
|
||||||
|
@ -31681,16 +31707,20 @@
|
||||||
},
|
},
|
||||||
inpile:function(type,filter){
|
inpile:function(type,filter){
|
||||||
var list=[];
|
var list=[];
|
||||||
for(var i=0;i<lib.inpile.length;i++){
|
if(filter=='trick'){
|
||||||
if(typeof filter=='function'&&!filter(lib.inpile[i])) continue;
|
for(var i=0;i<lib.inpile.length;i++){
|
||||||
if(type.indexOf('equip')==0&&type.length==6){
|
if(get.type(lib.inpile[i],'trick')==type) list.push(lib.inpile[i]);
|
||||||
if(get.subtype(lib.inpile[i])==type) list.push(lib.inpile[i]);
|
|
||||||
}
|
}
|
||||||
else if(type.indexOf('hslingjian')==0&&type.length==11){
|
}
|
||||||
if(get.subtype(lib.inpile[i])==type) list.push(lib.inpile[i]);
|
else{
|
||||||
}
|
for(var i=0;i<lib.inpile.length;i++){
|
||||||
else{
|
if(typeof filter=='function'&&!filter(lib.inpile[i])) continue;
|
||||||
if(get.type(lib.inpile[i])==type) list.push(lib.inpile[i]);
|
if(type.indexOf('equip')==0&&type.length==6){
|
||||||
|
if(get.subtype(lib.inpile[i])==type) list.push(lib.inpile[i]);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(get.type(lib.inpile[i])==type) list.push(lib.inpile[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
|
|
Loading…
Reference in New Issue