2017-04-14 23:35:56 +00:00
|
|
|
|
'use strict';
|
2017-04-17 05:18:46 +00:00
|
|
|
|
game.import('character',function(lib,game,ui,get,ai,_status){
|
2017-04-15 00:25:50 +00:00
|
|
|
|
return {
|
|
|
|
|
name:'gwent',
|
|
|
|
|
character:{
|
2018-01-11 12:51:54 +00:00
|
|
|
|
gw_huoge:['male','qun',3,['gwjinli']],
|
2017-04-15 00:25:50 +00:00
|
|
|
|
gw_aisinie:['female','wu',3,['huihun']],
|
|
|
|
|
gw_enxier:['male','wei',4,['gwbaquan']],
|
2017-03-02 04:10:18 +00:00
|
|
|
|
|
2017-04-15 00:25:50 +00:00
|
|
|
|
gw_kaerweite:['male','shu',4,['gwjiquan']],
|
|
|
|
|
gw_falanxisika:['female','wu',3,['shewu']],
|
|
|
|
|
gw_haluo:['male','qun',4,['nuhou']],
|
2017-03-11 16:19:35 +00:00
|
|
|
|
|
2017-04-15 00:25:50 +00:00
|
|
|
|
gw_airuiting:['male','wei',4,['kuanglie']],
|
|
|
|
|
gw_laduoweide:['male','wei',4,['gwxiaoshou']],
|
2017-11-05 15:22:35 +00:00
|
|
|
|
gw_dagong:['male','qun',4,['gwtianbian']],
|
2017-03-14 15:35:47 +00:00
|
|
|
|
|
2017-07-17 02:45:11 +00:00
|
|
|
|
gw_bulanwang:['male','qun',4,['bolang']],
|
2017-07-21 13:20:45 +00:00
|
|
|
|
gw_kuite:['male','qun',4,['gwxuezhan']],
|
2017-08-03 03:08:25 +00:00
|
|
|
|
gw_fuertaisite:['male','wei',3,['zhengjun']],
|
2017-07-21 12:03:04 +00:00
|
|
|
|
gw_hengsaite:['male','wei',3,['jielue']],
|
2017-05-13 08:07:06 +00:00
|
|
|
|
gw_fulisi:['male','qun',3,['lanquan']],
|
2017-06-07 07:36:48 +00:00
|
|
|
|
gw_gaier:['male','shu',3,['hunmo']],
|
2017-03-02 13:06:03 +00:00
|
|
|
|
|
2017-04-15 00:25:50 +00:00
|
|
|
|
gw_jieluote:['male','qun',6,['fayin']],
|
|
|
|
|
gw_yenaifa:['female','qun',3,['xuezhou']],
|
|
|
|
|
gw_telisi:['female','wei',3,['huandie']],
|
|
|
|
|
gw_xili:['female','wu',3,['fengjian']],
|
|
|
|
|
gw_luoqi:['male','wei',4,['gwzhanjiang']],
|
2019-06-07 03:46:13 +00:00
|
|
|
|
// gw_yioufeisi:['male','wu',4,['gwchuanxin']],
|
2017-05-12 15:13:26 +00:00
|
|
|
|
|
2017-05-17 07:11:21 +00:00
|
|
|
|
gw_aigeleisi:['female','wu',3,['gwshenyu']],
|
2017-05-13 08:07:06 +00:00
|
|
|
|
gw_aokeweisite:['male','qun',4,['yunhuo']],
|
2017-07-17 02:45:11 +00:00
|
|
|
|
gw_kaxier:['male','shu',4,['gwfengchi']],
|
2017-05-17 06:45:21 +00:00
|
|
|
|
gw_luobo:['male','qun',3,['junchi']],
|
2017-05-18 22:15:32 +00:00
|
|
|
|
gw_mieren:['male','shu',3,['lingji']],
|
2017-05-18 09:40:25 +00:00
|
|
|
|
gw_sanhanya:['male','shu',3,['gwjinyan']],
|
2017-05-13 08:56:28 +00:00
|
|
|
|
gw_shanhu:['female','qun',3,['shuijian']],
|
2017-07-17 02:45:11 +00:00
|
|
|
|
gw_zhangyujushou:['male','wu',4,['gwjushi']],
|
2017-05-16 16:52:28 +00:00
|
|
|
|
gw_zhuoertan:['male','wu',3,['hupeng']],
|
2017-07-23 03:19:32 +00:00
|
|
|
|
|
|
|
|
|
gw_meizi:['female','wei',3,['gwjieyin']],
|
2017-07-23 04:25:13 +00:00
|
|
|
|
gw_aimin:['female','wu',3,['huanshu']],
|
2017-07-23 07:32:56 +00:00
|
|
|
|
gw_puxila:['female','qun',3,['gwqinwu']],
|
2017-07-28 08:21:24 +00:00
|
|
|
|
|
|
|
|
|
gw_xigedelifa:['female','qun',3,['gwfusheng']],
|
2017-08-01 07:56:57 +00:00
|
|
|
|
gw_laomaotou:['male','qun',4,['gwchenshui']],
|
2017-07-28 09:19:16 +00:00
|
|
|
|
gw_qigaiwang:['male','qun',4,['julian']],
|
2017-08-03 16:51:09 +00:00
|
|
|
|
|
2018-01-10 10:21:50 +00:00
|
|
|
|
gw_bierna:['female','qun',3,['gwfengshi']],
|
2017-08-03 16:51:09 +00:00
|
|
|
|
gw_haizhiyezhu:['male','qun',4,['yangfan']],
|
2017-08-04 05:32:46 +00:00
|
|
|
|
gw_nitelila:['male','wei',4,['shuangxi']],
|
2017-08-05 02:13:01 +00:00
|
|
|
|
|
|
|
|
|
gw_linjing:['male','wu',4,['gwyewu']],
|
2017-08-27 04:44:18 +00:00
|
|
|
|
gw_kanbi:['male','qun',1,['gwfutian']],
|
2017-08-27 06:00:44 +00:00
|
|
|
|
gw_nvyemo:['female','shu',3,['gwgouhun']],
|
2017-09-14 15:19:44 +00:00
|
|
|
|
|
|
|
|
|
gw_kairuisi:['female','qun',3,['gwweitu']],
|
2017-09-14 17:14:07 +00:00
|
|
|
|
gw_oudimu:['male','shu',3,['gwjingshi']],
|
|
|
|
|
gw_shasixiwusi:['male','qun',4,['gwjingtian']],
|
2018-01-10 10:21:50 +00:00
|
|
|
|
|
|
|
|
|
gw_yioufeisisp:['male','wu',3,['gwminxiang']],
|
|
|
|
|
gw_lanbote:['male','qun',4,['gwlangshi']],
|
2018-01-11 12:51:54 +00:00
|
|
|
|
gw_fenghuang:['male','shu',4,['gwliaotian']],
|
2018-01-10 15:30:39 +00:00
|
|
|
|
gw_diandian:['male','wu',3,['gwhuanbi']],
|
2018-01-11 15:07:44 +00:00
|
|
|
|
gw_yisilinni:['female','wu',3,['gwhuanshuang']],
|
2018-01-11 12:51:54 +00:00
|
|
|
|
gw_feilafanruide:['male','wei',3,['yinzhang']],
|
2019-06-07 03:46:13 +00:00
|
|
|
|
|
|
|
|
|
gw_saqiya:['female','shu',4,['sqlongwu']]
|
2017-04-15 00:25:50 +00:00
|
|
|
|
},
|
|
|
|
|
characterIntro:{
|
|
|
|
|
gw_huoge:'那个老年痴呆?不知道他是活着还是已经被制成标本了!',
|
|
|
|
|
gw_aisinie:'树精皇后有着熔银做成的眼睛,冰冷铸钢的心脏。',
|
|
|
|
|
gw_gaier:'画作应该要传达情绪,而不是字句。',
|
|
|
|
|
gw_enxier:'我可没什么耐心,最好小心点,否则脑袋不保',
|
2017-03-02 04:10:18 +00:00
|
|
|
|
|
2017-04-15 00:25:50 +00:00
|
|
|
|
gw_yenaifa:'魔法是艺术、混沌与科学的结合。因为魔法的确是一门技艺也是一种诅咒。',
|
|
|
|
|
gw_telisi:'我可以照顾我自己,相信我。',
|
|
|
|
|
gw_jieluote:'如果要付出这种代价才能拯救世界,那最好还是让世界消逝吧。',
|
|
|
|
|
gw_xili:'我想去哪,就去哪。',
|
|
|
|
|
gw_luoqi:'是个爱国者…还是个货真价实的王八蛋。',
|
|
|
|
|
gw_yioufeisi:'国王还是乞丐,两者有何区别,人类少一个算一个',
|
|
|
|
|
},
|
|
|
|
|
skill:{
|
2019-06-07 03:46:13 +00:00
|
|
|
|
sqlongyin:{
|
|
|
|
|
trigger:{player:'phaseBeginStart'},
|
|
|
|
|
forced:true,
|
|
|
|
|
check:function(){
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
init:function(player){
|
|
|
|
|
player.storage.sqlongyin='sqlongwu';
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
var list=['sqlongnu','sqlonghuo','sqlongwu'];
|
|
|
|
|
var map={
|
|
|
|
|
sqlongwu:'gw_saqiya',
|
|
|
|
|
sqlongnu:'gw_saqiya1',
|
|
|
|
|
sqlonghuo:'gw_saqiya2'
|
|
|
|
|
}
|
|
|
|
|
list.remove(player.storage.sqlongyin);
|
|
|
|
|
if(list.length==2){
|
|
|
|
|
var name=list.randomGet();
|
|
|
|
|
player.removeSkill(player.storage.sqlongyin);
|
|
|
|
|
player.addSkill(name);
|
|
|
|
|
player.storage.sqlongyin=name;
|
|
|
|
|
player.setAvatar('gw_saqiya',map[name]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
sqlongnu:{
|
|
|
|
|
group:'sqlongyin',
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
|
|
|
|
frequent:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.discoverCard(ui.cardPile.childNodes,function(button){
|
|
|
|
|
var card=button.link;
|
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
var value=get.value(card,player);
|
|
|
|
|
if(player.countCards('h',card.name)){
|
|
|
|
|
value=Math.max(value,9);
|
|
|
|
|
}
|
|
|
|
|
return value;
|
|
|
|
|
},'nogain');
|
|
|
|
|
'step 1'
|
|
|
|
|
if(player.countCards('h',function(card){
|
|
|
|
|
return card!=result.card&&card.name==result.card.name;
|
|
|
|
|
})){
|
|
|
|
|
event.current=result.card;
|
|
|
|
|
player.chooseTarget('是否改为对一名角色造成一点火属性伤害?').set('ai',function(target){
|
|
|
|
|
return get.damageEffect(target,null,player,player,'fire');
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.gain(result.card,'draw');
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
var target=result.targets[0];
|
|
|
|
|
player.line(target,'fire');
|
|
|
|
|
target.damage('fire','nocard');
|
|
|
|
|
// player.discoverCard(ui.cardPile.childNodes);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.gain(event.current,'draw');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
sqlonghuo:{
|
|
|
|
|
group:'sqlongyin',
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('h');
|
|
|
|
|
},
|
|
|
|
|
delay:false,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var hs=player.getCards('h');
|
|
|
|
|
player.discard(hs).set('delay',false);
|
|
|
|
|
event.hs=hs;
|
|
|
|
|
'step 1'
|
|
|
|
|
player.draw(event.hs.length);
|
|
|
|
|
'step 2'
|
|
|
|
|
var enemies=player.getEnemies();
|
|
|
|
|
for(var i=0;i<enemies.length;i++){
|
|
|
|
|
var hs=enemies[i].getCards('h');
|
|
|
|
|
var same=[];
|
|
|
|
|
for(var j=0;j<hs.length;j++){
|
|
|
|
|
for(var k=0;k<event.hs.length;k++){
|
|
|
|
|
if(hs[j].name==event.hs[k].name){
|
|
|
|
|
same.push(hs[j]);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(same.length){
|
|
|
|
|
enemies[i].discard(same.randomGet()).set('delay',false);
|
|
|
|
|
event.discarded=true;
|
|
|
|
|
player.line(enemies[i],'green');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
'step 3'
|
|
|
|
|
if(event.discarded){
|
|
|
|
|
game.delay();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:5,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
sqlongwu:{
|
|
|
|
|
group:'sqlongyin',
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
frequent:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('h');
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var max=1;
|
|
|
|
|
var map={};
|
|
|
|
|
var hs=player.getCards('h');
|
|
|
|
|
for(var i=0;i<hs.length;i++){
|
|
|
|
|
var name=hs[i].name;
|
|
|
|
|
if(!map[name]){
|
|
|
|
|
map[name]=1;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
map[name]++;
|
|
|
|
|
if(map[name]>max){
|
|
|
|
|
max=map[name];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
player.draw(max);
|
|
|
|
|
'step 1'
|
|
|
|
|
player.chooseToUse();
|
|
|
|
|
}
|
|
|
|
|
},
|
2018-02-09 09:49:41 +00:00
|
|
|
|
jielue:{
|
|
|
|
|
trigger:{player:'phaseUseBegin'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
var list=player.getFriends();
|
|
|
|
|
for(var i=0;i<list.length;i++){
|
|
|
|
|
var hs=list[i].getCards('h');
|
|
|
|
|
for(var j=0;j<hs.length;j++){
|
|
|
|
|
if(player.hasUseTarget(hs[j])){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var list=player.getFriends();
|
|
|
|
|
var cards=[];
|
|
|
|
|
for(var i=0;i<list.length;i++){
|
|
|
|
|
var hs=list[i].getCards('h');
|
|
|
|
|
var usables=[];
|
|
|
|
|
for(var j=0;j<hs.length;j++){
|
|
|
|
|
if(player.hasUseTarget(hs[j])){
|
|
|
|
|
usables.push(hs[j]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(usables.length){
|
|
|
|
|
cards.push(usables);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var touse=[];
|
|
|
|
|
var owners=[];
|
|
|
|
|
for(var i=0;i<2;i++){
|
|
|
|
|
if(cards.length){
|
|
|
|
|
var card=cards.randomRemove().randomRemove();
|
|
|
|
|
var owner=get.owner(card);
|
|
|
|
|
owner.lose(card,ui.special);
|
|
|
|
|
owner.$give(card,player);
|
|
|
|
|
player.line(owner,'green');
|
|
|
|
|
touse.push(card);
|
|
|
|
|
owners.push(owner);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
event.touse=touse;
|
|
|
|
|
event.owners=owners;
|
|
|
|
|
'step 1'
|
|
|
|
|
game.delayx(1.5);
|
|
|
|
|
'step 2'
|
|
|
|
|
if(event.touse.length){
|
2019-11-26 05:15:06 +00:00
|
|
|
|
player.chooseUseTarget(true,event.touse.shift(),null,false);
|
2018-02-09 09:49:41 +00:00
|
|
|
|
event.redo();
|
|
|
|
|
}
|
|
|
|
|
'step 3'
|
|
|
|
|
game.asyncDraw(event.owners);
|
|
|
|
|
'step 4'
|
|
|
|
|
game.delay();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.5
|
|
|
|
|
}
|
|
|
|
|
},
|
2018-01-19 02:51:53 +00:00
|
|
|
|
gwmaoxian_hengsaite_sha:{
|
|
|
|
|
trigger:{global:'damageAfter'},
|
|
|
|
|
silent:true,
|
|
|
|
|
filter:function(event){
|
|
|
|
|
return event.getParent(3).name=='gwmaoxian_hengsaite';
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
var card=game.createCard('sha');
|
|
|
|
|
player.gain(card);
|
|
|
|
|
player.$draw(card);
|
|
|
|
|
}
|
|
|
|
|
},
|
2018-01-11 15:07:44 +00:00
|
|
|
|
gwhuanshuang:{
|
2019-06-28 11:27:38 +00:00
|
|
|
|
trigger:{player:['phaseBegin','phaseEnd']},
|
2018-01-11 15:07:44 +00:00
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !player.hasSkill('gwhuanshuang_disable');
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var list=[];
|
2018-04-17 07:32:43 +00:00
|
|
|
|
for(var i in lib.card){
|
2018-01-11 15:07:44 +00:00
|
|
|
|
if(lib.card[i].subtype=='spell_bronze') list.push(i);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
2018-01-11 15:07:44 +00:00
|
|
|
|
for(var i=0;i<list.length;i++){
|
|
|
|
|
if(!player.hasUseTarget(list[i])){
|
|
|
|
|
list.splice(i--,1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(!list.length){
|
|
|
|
|
event.finish();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var rand=get.rand();
|
|
|
|
|
var aozu=game.hasPlayer(function(current){
|
|
|
|
|
return player.canUse('gw_aozuzhilei',current)&¤t.hp<=3&&get.effect(current,{name:'gw_aozuzhilei'},player,player)>0;
|
|
|
|
|
});
|
|
|
|
|
var aozu2=game.hasPlayer(function(current){
|
|
|
|
|
return player.canUse('gw_aozuzhilei',current)&¤t.hp<=2&&get.effect(current,{name:'gw_aozuzhilei'},player,player)>0;
|
|
|
|
|
});
|
|
|
|
|
var aozu3=game.hasPlayer(function(current){
|
|
|
|
|
return player.canUse('gw_aozuzhilei',current)&&get.effect(current,{name:'gw_aozuzhilei'},player,player)>0;
|
|
|
|
|
});
|
|
|
|
|
var baoxue=game.hasPlayer(function(current){
|
|
|
|
|
return player.canUse('gw_baoxueyaoshui',current)&&get.attitude(player,current)<0&&[2,3].contains(current.countCards('h'))&&!current.hasSkillTag('noh');
|
|
|
|
|
});
|
|
|
|
|
var baoxue2=game.hasPlayer(function(current){
|
|
|
|
|
return player.canUse('gw_baoxueyaoshui',current)&&get.attitude(player,current)<0&&[2].contains(current.countCards('h'))&&!current.hasSkillTag('noh');
|
|
|
|
|
});
|
|
|
|
|
var baoxue3=game.hasPlayer(function(current){
|
|
|
|
|
return player.canUse('gw_baoxueyaoshui',current)&&get.attitude(player,current)<0&¤t.countCards('h')>=2&&!current.hasSkillTag('noh');
|
|
|
|
|
});
|
|
|
|
|
var nongwu=game.hasPlayer(function(current){
|
|
|
|
|
return get.attitude(player,current)<0&&(get.attitude(player,current.getNext())<0||get.attitude(player,current.getPrevious())<0);
|
|
|
|
|
});
|
|
|
|
|
var nongwu2=game.hasPlayer(function(current){
|
|
|
|
|
return get.attitude(player,current)<0&&get.attitude(player,current.getNext())<0&&get.attitude(player,current.getPrevious())<0;
|
|
|
|
|
});
|
|
|
|
|
var yanzi=game.hasPlayer(function(current){
|
|
|
|
|
return get.attitude(player,current)>0&¤t.isMinHandcard();
|
|
|
|
|
});
|
|
|
|
|
player.chooseVCardButton(get.prompt('gwhuanshuang'),list.randomGets(3),'notype').ai=function(button){
|
|
|
|
|
var name=button.link[2];
|
|
|
|
|
switch(name){
|
|
|
|
|
case 'gw_ciguhanshuang':
|
|
|
|
|
if(nongwu2) return 3;
|
|
|
|
|
if(nongwu) return 1;
|
|
|
|
|
return 0;
|
|
|
|
|
case 'gw_baoxueyaoshui':
|
|
|
|
|
if(baoxue2) return 2;
|
|
|
|
|
if(baoxue) return 1.5;
|
|
|
|
|
if(baoxue3) return 0.5;
|
|
|
|
|
return 0;
|
|
|
|
|
case 'gw_aozuzhilei':
|
|
|
|
|
if(aozu2) return 2.5;
|
|
|
|
|
if(aozu) return 1.2;
|
|
|
|
|
if(aozu3) return 0.2;
|
|
|
|
|
return 0;
|
|
|
|
|
case 'gw_yanziyaoshui':
|
|
|
|
|
if(yanzi) return 2;
|
|
|
|
|
return 0.6;
|
|
|
|
|
}
|
|
|
|
|
if(game.hasPlayer(function(current){
|
|
|
|
|
return player.canUse(name,current)&&get.effect(current,{name:name},player,player)>0;
|
|
|
|
|
})){
|
|
|
|
|
return Math.random();
|
|
|
|
|
}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return 0;
|
|
|
|
|
};
|
2018-01-11 15:07:44 +00:00
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('gwhuanshuang');
|
|
|
|
|
event.cardname=result.links[0][2];
|
2019-11-26 05:15:06 +00:00
|
|
|
|
player.chooseUseTarget(true,event.cardname);
|
2018-01-11 15:07:44 +00:00
|
|
|
|
player.addTempSkill('gwhuanshuang_disable');
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
if(event.cardname&&player.hasUseTarget(event.cardname)){
|
2019-11-26 05:15:06 +00:00
|
|
|
|
player.chooseUseTarget(true,event.cardname);
|
2018-01-11 15:07:44 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.6
|
|
|
|
|
},
|
|
|
|
|
subSkill:{
|
|
|
|
|
disable:{}
|
|
|
|
|
}
|
|
|
|
|
},
|
2018-01-11 12:51:54 +00:00
|
|
|
|
gw_xianzumaijiu:{
|
|
|
|
|
trigger:{source:'damageEnd'},
|
|
|
|
|
filter:function(event){
|
|
|
|
|
return (event.card&&(event.card.name=='sha'));
|
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
temp:true,
|
|
|
|
|
vanish:true,
|
|
|
|
|
onremove:function(player){
|
|
|
|
|
if(player.node.jiu){
|
|
|
|
|
player.node.jiu.delete();
|
|
|
|
|
player.node.jiu2.delete();
|
|
|
|
|
delete player.node.jiu;
|
|
|
|
|
delete player.node.jiu2;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
var list=player.getFriends();
|
|
|
|
|
list.add(player);
|
|
|
|
|
game.asyncDraw(list);
|
|
|
|
|
player.removeSkill('gw_xianzumaijiu');
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
damageBonus:true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwjinli:{
|
2018-01-11 15:07:44 +00:00
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filterCard:true,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return !target.hasSkill('gwjinli_jiu');
|
|
|
|
|
},
|
|
|
|
|
check:function(card){
|
|
|
|
|
return 8-get.value(card);
|
|
|
|
|
},
|
2018-01-11 12:51:54 +00:00
|
|
|
|
content:function(){
|
2018-01-11 15:07:44 +00:00
|
|
|
|
target.addSkill('gwjinli_jiu');
|
2018-01-11 12:51:54 +00:00
|
|
|
|
},
|
|
|
|
|
subSkill:{
|
|
|
|
|
jiu:{
|
|
|
|
|
init:function(player){
|
2018-01-11 15:07:44 +00:00
|
|
|
|
player.storage.gwjinli_jiu=2;
|
2018-01-11 12:51:54 +00:00
|
|
|
|
},
|
|
|
|
|
onremove:true,
|
|
|
|
|
mark:'image',
|
|
|
|
|
intro:{
|
2018-01-11 15:07:44 +00:00
|
|
|
|
content:'结束阶段,随机获得一个正面效果;&个回合后将先祖麦酒收入手牌'
|
2018-01-11 12:51:54 +00:00
|
|
|
|
},
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.getBuff();
|
|
|
|
|
'step 1'
|
2018-01-11 15:07:44 +00:00
|
|
|
|
player.storage.gwjinli_jiu--;
|
|
|
|
|
if(player.storage.gwjinli_jiu<=0){
|
2018-01-11 12:51:54 +00:00
|
|
|
|
player.removeSkill('gwjinli_jiu');
|
|
|
|
|
player.gain(game.createCard('gw_xianzumaijiu'),'gain2');
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.updateMark('gwjinli_jiu',true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2018-01-11 15:07:44 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.5,
|
|
|
|
|
order:2,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
return 1/(1+target.hp)/Math.sqrt(1+target.countCards('h'));
|
|
|
|
|
}
|
|
|
|
|
}
|
2018-01-11 12:51:54 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwliaotian:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
delay:0,
|
|
|
|
|
usable:2,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
var hs=player.getCards('h');
|
|
|
|
|
if(hs.length<2) return false;
|
|
|
|
|
var color=get.color(hs[0]);
|
|
|
|
|
for(var i=1;i<hs.length;i++){
|
|
|
|
|
if(get.color(hs[i])!=color) return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2023-08-19 16:40:34 +00:00
|
|
|
|
player.recast(player.getCards('h',lib.filter.cardRecastable));
|
2018-01-11 12:51:54 +00:00
|
|
|
|
'step 1'
|
|
|
|
|
var targets=player.getEnemies();
|
|
|
|
|
if(targets.length){
|
|
|
|
|
player.useCard({name:'sha'},targets.randomGet(),false);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:9,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2018-01-10 15:30:39 +00:00
|
|
|
|
gwhuanbi:{
|
2018-01-10 10:21:50 +00:00
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
2018-01-10 15:30:39 +00:00
|
|
|
|
filterCard:true,
|
|
|
|
|
position:'he',
|
|
|
|
|
check:function(card){
|
|
|
|
|
return 8-get.value(card);
|
|
|
|
|
},
|
2018-01-10 10:21:50 +00:00
|
|
|
|
content:function(){
|
2018-01-10 15:30:39 +00:00
|
|
|
|
'step 0'
|
|
|
|
|
player.chooseVCardButton(get.typeCard('gwmaoxian').randomGets(3),true,'选择一张冒险牌');
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
event.card=game.createCard(result.links[0][2]);
|
|
|
|
|
player.gain(event.card,'gain2');
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
var list=game.filterPlayer(function(current){
|
|
|
|
|
return current!=player&¤t.countCards('h');
|
|
|
|
|
});
|
|
|
|
|
if(list.length){
|
|
|
|
|
event.target=list.randomGet();
|
|
|
|
|
event.target.chooseCard('h','是否交给'+get.translation(event.player)+'一张手牌并获得冒险牌?').set('ai',function(card){
|
|
|
|
|
if(get.attitude(event.target,player)>0){
|
|
|
|
|
return 11-get.value(card);
|
|
|
|
|
}
|
|
|
|
|
return 7-get.value(card);
|
|
|
|
|
}).set('promptx',[event.card]);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 3'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
event.target.line(player,'green');
|
|
|
|
|
event.target.give(result.cards,player);
|
|
|
|
|
event.target.gain(game.createCard(event.card),'gain2');
|
|
|
|
|
}
|
2018-01-10 10:21:50 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
2018-01-10 15:30:39 +00:00
|
|
|
|
order:8,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
}
|
2018-01-10 10:21:50 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_old:{
|
|
|
|
|
trigger:{global:'gameStart',player:['enterGame','phaseBefore']},
|
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !player.storage.gwmaoxian;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.storage.gwmaoxian=10;
|
|
|
|
|
player.storage.gwmaoxian_skill=[];
|
|
|
|
|
event.insert(lib.skill.gwmaoxian.learn,{player:player});
|
|
|
|
|
},
|
|
|
|
|
learn:function(){
|
|
|
|
|
var list={
|
|
|
|
|
draw:{
|
|
|
|
|
bronze:[1,'准备阶段,你获得一张随机铜卡法术'],
|
|
|
|
|
basic:[1,'准备阶段,你从牌堆中获得一张杀'],
|
|
|
|
|
silver:[2,'结束阶段,你获得一张随机银卡法术'],
|
2019-06-07 03:46:13 +00:00
|
|
|
|
trick:[3,'结束阶段,你发现一张普通锦囊牌'],
|
2018-01-10 10:21:50 +00:00
|
|
|
|
gold:[3,'出牌阶段开始时,你获得一张随机金卡法术'],
|
|
|
|
|
equip:[3,'出牌阶段开始时,你在装备区内的空余位置装备一件随机装备'],
|
|
|
|
|
},
|
|
|
|
|
attack:{
|
|
|
|
|
sha:[1,'你可以将一张手牌当作杀使用'],
|
|
|
|
|
huogong:[1,'你可以将一张手牌当作火攻使用'],
|
|
|
|
|
aoe:[2,'出牌阶段限一次,你可以弃置两张牌,视为使用一张南蛮入侵'],
|
|
|
|
|
shas:[2,'每当你使用一张杀,你可以追加一名无视距离的目标'],
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
defend:{
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
assist:{
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
control:{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2018-08-06 17:01:36 +00:00
|
|
|
|
gwminxiang_old:{
|
|
|
|
|
group:['gwminxiang_count','gwminxiang_clear','gwminxiang_use'],
|
|
|
|
|
subSkill:{
|
|
|
|
|
count:{
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
|
|
|
|
silent:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
player.storage.gwminxiang=[];
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
clear:{
|
|
|
|
|
trigger:{player:'phaseAfter'},
|
|
|
|
|
silent:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
delete player.storage.gwminxiang;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
use:{
|
|
|
|
|
trigger:{player:'useCardAfter'},
|
|
|
|
|
silent:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(_status.currentPhase!=player) return false;
|
|
|
|
|
var type=get.type(event.card);
|
|
|
|
|
if(type!='trick'&&type!='basic') return false;
|
|
|
|
|
if(get.info(event.card).multitarget) return false;
|
|
|
|
|
if(!player.storage.gwminxiang) return false;
|
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.storage.gwminxiang.add(trigger.card);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(player.storage.gwminxiang){
|
|
|
|
|
for(var i=0;i<player.storage.gwminxiang.length;i++){
|
|
|
|
|
var card=player.storage.gwminxiang[i];
|
|
|
|
|
if(game.countPlayer(function(current){
|
|
|
|
|
return current!=player&&lib.filter.targetEnabled3(card,player,current);
|
|
|
|
|
})>1){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var list=[];
|
|
|
|
|
for(var i=0;i<player.storage.gwminxiang.length;i++){
|
|
|
|
|
var card=player.storage.gwminxiang[i];
|
|
|
|
|
if(game.countPlayer(function(current){
|
|
|
|
|
return current!=player&&lib.filter.targetEnabled3(card,player,current);
|
|
|
|
|
})>1){
|
|
|
|
|
list.push(card);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var skip=['shunshou','huogong','shandianjian','jiu'];
|
|
|
|
|
player.chooseCardButton(get.prompt('gwminxiang'),list).set('ai',function(button){
|
|
|
|
|
if(skip.contains(button.link.name)) return 0;
|
|
|
|
|
var val=get.value(button.link);
|
|
|
|
|
if(get.tag(button.link,'damage')){
|
|
|
|
|
val+=3;
|
|
|
|
|
}
|
|
|
|
|
return val;
|
|
|
|
|
});
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
var card=result.links[0];
|
|
|
|
|
event.card=card;
|
|
|
|
|
player.chooseTarget('选择两个目标互相使用'+get.translation(event.card),2,function(cardx,player,target){
|
|
|
|
|
return target!=player&&lib.filter.targetEnabled3(card,player,target);
|
|
|
|
|
}).set('ai',function(target){
|
|
|
|
|
if(ui.selected.targets.length){
|
|
|
|
|
return get.effect(target,card,ui.selected.targets[0],player);
|
|
|
|
|
}
|
|
|
|
|
return get.effect(target,card,target,player);
|
|
|
|
|
}).set('targetprompt',['先出牌','后出牌']);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.$throw(event.card);
|
|
|
|
|
player.logSkill('gwminxiang',result.targets);
|
|
|
|
|
event.target1=result.targets[0];
|
|
|
|
|
event.target2=result.targets[1];
|
|
|
|
|
game.delay();
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 3'
|
|
|
|
|
event.target1.useCard(event.card,event.target2,'noai');
|
|
|
|
|
'step 4'
|
|
|
|
|
if(event.target1.isIn()&&event.target2.isIn()){
|
|
|
|
|
event.target2.useCard(event.card,event.target1,'noai');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
expose:0.4,
|
|
|
|
|
threaten:1.6
|
|
|
|
|
}
|
|
|
|
|
},
|
2018-01-10 10:21:50 +00:00
|
|
|
|
gwminxiang:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
var hs=player.getCards('h');
|
|
|
|
|
var names=[];
|
|
|
|
|
for(var i=0;i<hs.length;i++){
|
|
|
|
|
if(['basic','trick'].contains(get.type(hs[i]))&&!get.info(hs[i]).multitarget){
|
|
|
|
|
names.add(hs[i].name);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for(var i=0;i<names.length;i++){
|
|
|
|
|
if(game.countPlayer(function(current){
|
2018-01-15 02:38:05 +00:00
|
|
|
|
return current!=player&&lib.filter.targetEnabled3({name:names[i]},player,current);
|
2018-01-10 10:21:50 +00:00
|
|
|
|
})>1){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
check:function(card){
|
2018-08-06 17:01:36 +00:00
|
|
|
|
if(['shunshou','huogong','shandianjian','jiu','tianxianjiu'].contains(card.name)) return 0;
|
2018-01-10 10:21:50 +00:00
|
|
|
|
if(get.tag(card,'damage')){
|
2018-08-06 17:01:36 +00:00
|
|
|
|
return get.value(card)+2;
|
2018-01-10 10:21:50 +00:00
|
|
|
|
}
|
|
|
|
|
return get.value(card);
|
|
|
|
|
},
|
|
|
|
|
filterCard:function(card,player){
|
|
|
|
|
if(!['basic','trick'].contains(get.type(card))) return false;
|
|
|
|
|
return game.countPlayer(function(current){
|
2018-01-15 02:38:05 +00:00
|
|
|
|
return current!=player&&lib.filter.targetEnabled3({name:card.name},player,current);
|
2018-01-10 10:21:50 +00:00
|
|
|
|
})>1;
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
if(player==target||!ui.selected.cards.length) return false;
|
2018-01-15 02:38:05 +00:00
|
|
|
|
return lib.filter.targetEnabled3({name:ui.selected.cards[0].name},player,target);
|
2018-01-10 10:21:50 +00:00
|
|
|
|
},
|
|
|
|
|
targetprompt:['先出牌','后出牌'],
|
|
|
|
|
selectTarget:2,
|
|
|
|
|
multitarget:true,
|
2018-08-06 17:01:36 +00:00
|
|
|
|
delay:0,
|
2018-01-10 10:21:50 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2018-08-06 17:01:36 +00:00
|
|
|
|
player.draw();
|
2018-01-10 10:21:50 +00:00
|
|
|
|
'step 1'
|
2018-08-06 17:01:36 +00:00
|
|
|
|
targets[0].useCard({name:cards[0].name},targets[1],'noai');
|
|
|
|
|
'step 2'
|
2018-01-10 10:21:50 +00:00
|
|
|
|
if(targets[0].isIn()&&targets[1].isIn()){
|
|
|
|
|
targets[1].useCard({name:cards[0].name},targets[0],'noai');
|
|
|
|
|
}
|
|
|
|
|
},
|
2018-08-06 17:01:36 +00:00
|
|
|
|
// group:'gwminxiang_draw',
|
2018-01-10 10:21:50 +00:00
|
|
|
|
multiline:true,
|
2018-08-06 17:01:36 +00:00
|
|
|
|
// subSkill:{
|
|
|
|
|
// draw:{
|
|
|
|
|
// trigger:{global:'damageAfter'},
|
|
|
|
|
// silent:true,
|
|
|
|
|
// filter:function(event,player){
|
|
|
|
|
// var evt=event.getParent(3);
|
|
|
|
|
// return evt.name=='gwminxiang'&&evt.player==player;
|
|
|
|
|
// },
|
|
|
|
|
// content:function(){
|
|
|
|
|
// trigger.getParent(3).draw+=trigger.num;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// },
|
2018-01-10 10:21:50 +00:00
|
|
|
|
ai:{
|
|
|
|
|
order:8,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
if(!ui.selected.cards.length) return 0;
|
|
|
|
|
return get.effect(target,{name:ui.selected.cards[0].name},target,target);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
expose:0.4,
|
|
|
|
|
threaten:1.6,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwlangshi:{
|
|
|
|
|
trigger:{source:'damageEnd'},
|
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(event.parent.name=='gwlangshi') return false;
|
|
|
|
|
return game.hasPlayer(function(current){
|
|
|
|
|
return current!=event.player&¤t!=player&¤t.hp>=event.player.hp;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.chooseTarget(get.prompt2('gwlangshi'),function(card,player,target){
|
|
|
|
|
return target!=trigger.player&&target!=player&&target.hp>=trigger.player.hp;
|
2018-01-11 12:51:54 +00:00
|
|
|
|
}).set('ai',function(target){
|
2018-01-10 10:21:50 +00:00
|
|
|
|
return get.damageEffect(target,player,player);
|
|
|
|
|
});
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('gwlangshi',result.targets);
|
|
|
|
|
result.targets[0].damage(player);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.5
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-09-15 07:45:38 +00:00
|
|
|
|
gwjingtian:{
|
|
|
|
|
clickable:function(player){
|
|
|
|
|
player.addTempSkill('gwjingtian2');
|
|
|
|
|
player.directgain(get.cards());
|
|
|
|
|
player.$draw();
|
|
|
|
|
player.storage.gwjingtian--;
|
|
|
|
|
player.updateMark('gwjingtian',true);
|
|
|
|
|
player.logSkill('gwjingtian');
|
|
|
|
|
if(_status.imchoosing){
|
|
|
|
|
delete _status.event._cardChoice;
|
|
|
|
|
delete _status.event._targetChoice;
|
|
|
|
|
game.check();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
clickableFilter:function(player){
|
|
|
|
|
return player.storage.gwjingtian>0&&!player.hasSkill('gwjingtian2');
|
|
|
|
|
},
|
|
|
|
|
init:function(player){
|
|
|
|
|
player.storage.gwjingtian=0;
|
|
|
|
|
},
|
|
|
|
|
trigger:{player:'phaseDrawBefore'},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.cancel();
|
|
|
|
|
player.storage.gwjingtian+=3;
|
|
|
|
|
player.updateMark('gwjingtian',true);
|
|
|
|
|
},
|
|
|
|
|
group:'gwjingtian_ai',
|
|
|
|
|
mark:true,
|
|
|
|
|
intro:{
|
|
|
|
|
mark:function(dialog,content,player){
|
|
|
|
|
if(player.isUnderControl(true)){
|
|
|
|
|
if(_status.gameStarted&&player.storage.gwjingtian>0&&!player.hasSkill('gwjingtian2')){
|
|
|
|
|
dialog.add(ui.create.div('.menubutton.pointerdiv','点击发动',function(){
|
2017-09-17 14:38:27 +00:00
|
|
|
|
if(!this.disabled){
|
|
|
|
|
this.disabled=true;
|
|
|
|
|
this.classList.add('disabled');
|
|
|
|
|
this.style.opacity=0.5;
|
|
|
|
|
lib.skill.gwjingtian.clickable(player);
|
|
|
|
|
}
|
2017-09-15 07:45:38 +00:00
|
|
|
|
}));
|
|
|
|
|
}
|
|
|
|
|
var list=[];
|
|
|
|
|
var num=Math.min(9,ui.cardPile.childElementCount);
|
|
|
|
|
for(var i=0;i<num;i++){
|
|
|
|
|
list.push(ui.cardPile.childNodes[i]);
|
|
|
|
|
}
|
|
|
|
|
dialog.addSmall(list);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
dialog.addText('剩余'+content+'次');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
content:function(content,player){
|
|
|
|
|
if(player.isUnderControl(true)){
|
|
|
|
|
var list=[];
|
|
|
|
|
var num=Math.min(9,ui.cardPile.childElementCount);
|
|
|
|
|
for(var i=0;i<num;i++){
|
|
|
|
|
list.push(ui.cardPile.childNodes[i]);
|
|
|
|
|
}
|
|
|
|
|
return get.translation(list);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return '剩余'+content+'次';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
subSkill:{
|
|
|
|
|
ai:{
|
|
|
|
|
trigger:{global:'drawAfter'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return (_status.auto||!player.isUnderControl(true))&&player.storage.gwjingtian>0&&!player.hasSkill('gwjingtian2');
|
|
|
|
|
},
|
|
|
|
|
popup:false,
|
|
|
|
|
check:function(event,player){
|
|
|
|
|
var value=0,card=ui.cardPile.firstChild;
|
|
|
|
|
if(card){
|
|
|
|
|
value=get.value(card);
|
|
|
|
|
}
|
|
|
|
|
if(value>=6) return true;
|
|
|
|
|
if(value>=5&&get.type(card)!='equip'&&player.storage.gwjingtian>=3) return true;
|
|
|
|
|
if(player.storage.gwjingtian>3&&value>3) return true;
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
lib.skill.gwjingtian.clickable(player);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwjingtian2:{},
|
|
|
|
|
gwjingshi:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
2021-03-20 13:29:25 +00:00
|
|
|
|
//direct:true,
|
|
|
|
|
//delay:0,
|
2017-09-15 07:45:38 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return game.hasPlayer(function(current){
|
|
|
|
|
return current.countCards('h');
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var targets=game.filterPlayer(function(current){
|
|
|
|
|
return current.countCards('h');
|
|
|
|
|
});
|
|
|
|
|
var num=targets.length;
|
|
|
|
|
for(var i=0;i<targets.length;i++){
|
|
|
|
|
targets[i]=[targets[i],targets[i].countCards('h',{color:'black'})];
|
|
|
|
|
}
|
|
|
|
|
targets.sort(function(a,b){
|
|
|
|
|
return b[1]-a[1];
|
|
|
|
|
});
|
|
|
|
|
for(var i=1;i<targets.length;i++){
|
|
|
|
|
if(targets[i][1]<targets[0][1]){
|
|
|
|
|
targets.splice(i);break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for(var i=0;i<targets.length;i++){
|
|
|
|
|
targets[i]=targets[i][0];
|
|
|
|
|
}
|
|
|
|
|
event.targets=targets;
|
|
|
|
|
var rand=Math.random();
|
|
|
|
|
var choice=targets.randomGet();
|
|
|
|
|
player.chooseTarget('猜测手牌中黑色牌最多的角色',true,function(card,player,target){
|
|
|
|
|
return target.countCards('h');
|
|
|
|
|
}).set('ai',function(target){
|
|
|
|
|
if(rand<0.6||player==game.me){
|
|
|
|
|
return target.isMaxHandcard()?1:0;
|
|
|
|
|
}
|
|
|
|
|
else if(rand<0.8){
|
|
|
|
|
return target==choice?1:0;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return Math.random();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
'step 1'
|
|
|
|
|
if(event.targets.contains(result.targets[0])){
|
|
|
|
|
player.popup('成功');
|
2021-03-20 13:29:25 +00:00
|
|
|
|
game.log(player,'发动','【血契】','成功');
|
2017-09-15 07:45:38 +00:00
|
|
|
|
var dialog=ui.create.dialog('hidden');
|
|
|
|
|
dialog.add('获得任意一名角色的一张手牌');
|
|
|
|
|
var list=game.filterPlayer(function(current){
|
|
|
|
|
return current!=player&¤t.countCards('h');
|
|
|
|
|
}).sortBySeat();
|
|
|
|
|
for(var i=0;i<list.length;i++){
|
|
|
|
|
dialog.addText(get.translation(list[i]));
|
|
|
|
|
dialog.add(list[i].getCards('h'));
|
|
|
|
|
}
|
|
|
|
|
player.chooseButton(dialog,true).set('ai',function(button){
|
2019-06-07 03:46:13 +00:00
|
|
|
|
if(get.attitude(player,get.owner(button.link))>0) return -1;
|
2017-09-15 07:45:38 +00:00
|
|
|
|
return get.value(button.link);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.popup('失败');
|
2021-03-20 13:29:25 +00:00
|
|
|
|
game.log(player,'发动','【血契】','失败');
|
2017-09-15 07:45:38 +00:00
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
if(result.bool&&result.links&&result.links.length){
|
|
|
|
|
var owner=get.owner(result.links[0]);
|
|
|
|
|
if(owner){
|
|
|
|
|
owner.give(result.links,player);
|
|
|
|
|
player.line(owner);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.gain(result.links,'gain2');
|
|
|
|
|
}
|
|
|
|
|
}
|
2018-03-11 15:17:57 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:10,
|
|
|
|
|
result:{
|
|
|
|
|
player:10
|
|
|
|
|
}
|
2017-09-15 07:45:38 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
2017-09-14 15:19:44 +00:00
|
|
|
|
gwweitu:{
|
|
|
|
|
trigger:{player:'discardAfter'},
|
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.hujia<3;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2019-06-07 03:46:13 +00:00
|
|
|
|
player.changeHujia();
|
|
|
|
|
// var num=Math.min(trigger.cards.length,3-player.hujia);
|
|
|
|
|
// if(num>0){
|
|
|
|
|
// player.changeHujia();
|
|
|
|
|
// }
|
2017-09-14 15:19:44 +00:00
|
|
|
|
},
|
|
|
|
|
init:function(player){
|
|
|
|
|
player.storage.gwweitu=0;
|
|
|
|
|
},
|
|
|
|
|
intro:{
|
|
|
|
|
content:'护甲自上次计算起已抵挡#点伤害'
|
|
|
|
|
},
|
|
|
|
|
group:'gwweitu_gain',
|
|
|
|
|
subSkill:{
|
|
|
|
|
gain:{
|
|
|
|
|
trigger:{player:'damageZero'},
|
|
|
|
|
filter:function(event){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return event.hujia;
|
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
player.storage.gwweitu++;
|
2017-09-14 15:19:44 +00:00
|
|
|
|
if(player.storage.gwweitu>=3){
|
|
|
|
|
player.storage.gwweitu-=3;
|
|
|
|
|
player.unmarkSkill('gwweitu');
|
|
|
|
|
var list=get.typeCard('spell_silver');
|
|
|
|
|
if(list.length){
|
|
|
|
|
player.gain(game.createCard(list.randomGet()),'draw');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.markSkill('gwweitu',true);
|
|
|
|
|
}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
2017-09-14 15:19:44 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:0.7,
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target,current){
|
|
|
|
|
if(get.tag(card,'discard')&&target.hujia<3&&
|
|
|
|
|
target.countCards('he')&¤t<0){
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
player:function(card,player){
|
|
|
|
|
if(player.hujia>=3) return;
|
|
|
|
|
if(_status.event.name!='chooseToUse'||_status.event.player!=player) return;
|
|
|
|
|
if(get.type(card)=='basic') return;
|
|
|
|
|
if(get.tag(card,'gain')) return;
|
|
|
|
|
if(get.value(card,player,'raw')>=7) return;
|
|
|
|
|
if(player.needsToDiscard()>1) return;
|
|
|
|
|
return 'zeroplayertarget';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-08-27 06:00:44 +00:00
|
|
|
|
gwgouhun:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filterCard:true,
|
|
|
|
|
discard:false,
|
|
|
|
|
prepare:'give',
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target!=player&&target.countCards('h');
|
|
|
|
|
},
|
|
|
|
|
check:function(card){
|
|
|
|
|
return 7-get.value(card);
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
target.gain(cards,player);
|
|
|
|
|
event.card=cards[0];
|
|
|
|
|
event.suit=get.suit(cards[0]);
|
|
|
|
|
'step 1'
|
|
|
|
|
var hs=target.getCards('h');
|
|
|
|
|
var num1=0;
|
|
|
|
|
var num2=0;
|
|
|
|
|
for(var i=0;i<hs.length;i++){
|
|
|
|
|
if(get.suit(hs[i])==event.suit){
|
|
|
|
|
num1++;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
num2++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
event.num1=num1;
|
|
|
|
|
event.num2=num2;
|
|
|
|
|
var list=[
|
|
|
|
|
'将手牌中的'+get.translation(event.suit)+'牌交给'+get.translation(player),
|
|
|
|
|
'弃置手牌中的非'+get.translation(event.suit)+'牌',
|
|
|
|
|
'进入混乱状态直到下一回合结束'
|
|
|
|
|
];
|
|
|
|
|
if(num1&&num2){
|
|
|
|
|
target.chooseControlList(list,true,function(){
|
|
|
|
|
if(num1>2&&num2>3){
|
|
|
|
|
return 2;
|
|
|
|
|
}
|
|
|
|
|
if(num1>num2/2){
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
else if(num1<num2/2){
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
return get.rand(2);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
else if(num1){
|
|
|
|
|
list.splice(1,1);
|
|
|
|
|
target.chooseControlList(list,true,function(){
|
|
|
|
|
if(num1>2) return 1;
|
|
|
|
|
return 0;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
else if(num2){
|
|
|
|
|
list.splice(0,1);
|
|
|
|
|
target.chooseControlList(list,true,function(){
|
|
|
|
|
if(num2>3) return 1;
|
|
|
|
|
return 0;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
target.goMad({player:'phaseAfter'});
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
var index=result.index;
|
|
|
|
|
var cards1=target.getCards('h',function(card){
|
|
|
|
|
return get.suit(card)==event.suit;
|
|
|
|
|
});
|
|
|
|
|
var cards2=target.getCards('h',function(card){
|
|
|
|
|
return get.suit(card)!=event.suit;
|
|
|
|
|
});
|
|
|
|
|
if(typeof index=='number'){
|
|
|
|
|
if(event.num1&&event.num2){
|
|
|
|
|
if(index==0){
|
|
|
|
|
target.give(cards1,player);
|
|
|
|
|
}
|
|
|
|
|
else if(index==1){
|
|
|
|
|
target.discard(cards2);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
target.goMad({player:'phaseAfter'});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
if(index==1){
|
|
|
|
|
target.goMad({player:'phaseAfter'});
|
|
|
|
|
}
|
|
|
|
|
else if(event.num1){
|
|
|
|
|
target.give(cards1,player);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
target.discard(cards2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.5,
|
|
|
|
|
order:9,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
return -Math.sqrt(target.countCards('h'));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-08-27 04:44:18 +00:00
|
|
|
|
gwfutian:{
|
|
|
|
|
trigger:{player:'damageBefore'},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
2017-09-15 07:54:36 +00:00
|
|
|
|
trigger.cancel();
|
2017-08-27 04:44:18 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
nofire:true,
|
|
|
|
|
nothunder:true,
|
|
|
|
|
nodamage:true,
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target,current){
|
|
|
|
|
if(get.tag(card,'damage')) return [0,0];
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
init:function(player){
|
|
|
|
|
player.storage.gwfutian=0;
|
|
|
|
|
},
|
|
|
|
|
intro:{
|
|
|
|
|
content:'弃置的牌总点数:#'
|
|
|
|
|
},
|
|
|
|
|
unique:true,
|
|
|
|
|
onremove:true,
|
|
|
|
|
group:'gwfutian_discard',
|
|
|
|
|
subSkill:{
|
|
|
|
|
discard:{
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return game.hasPlayer(function(current){
|
|
|
|
|
return current!=player&¤t.countCards('h');
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.chooseTarget('覆天:弃置一名角色的一张手牌',function(card,player,target){
|
|
|
|
|
return target!=player&&target.countCards('h');
|
|
|
|
|
}).set('ai',function(target){
|
|
|
|
|
if(target.hasSkillTag('noh')) return 0;
|
|
|
|
|
return -get.attitude(player,target)/Math.sqrt(target.countCards('h'));
|
|
|
|
|
});
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
var target=result.targets[0];
|
|
|
|
|
player.discardPlayerCard(target,'h',true);
|
|
|
|
|
player.line(target,'green');
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
if(result.bool&&result.cards&&result.cards.length){
|
|
|
|
|
player.storage.gwfutian+=get.number(result.cards[0]);
|
|
|
|
|
player.markSkill('gwfutian',true);
|
|
|
|
|
}
|
|
|
|
|
'step 3'
|
|
|
|
|
if(player.storage.gwfutian>=24){
|
|
|
|
|
player.$skill('覆天','legend','metal');
|
|
|
|
|
player.removeSkill('gwfutian');
|
|
|
|
|
player.addSkill('gwzhongmo');
|
|
|
|
|
player.setAvatar('gw_kanbi','gw_hanmuduoer');
|
|
|
|
|
player.maxHp+=4;
|
|
|
|
|
player.hp=player.maxHp;
|
|
|
|
|
player.update();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwzhongmo:{
|
|
|
|
|
trigger:{player:'phaseDrawBefore'},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
2017-09-15 07:54:36 +00:00
|
|
|
|
trigger.cancel();
|
2017-08-27 04:44:18 +00:00
|
|
|
|
var list=['bronze','silver','gold'];
|
|
|
|
|
list.randomRemove();
|
|
|
|
|
var cards=[];
|
|
|
|
|
for(var i=0;i<list.length;i++){
|
|
|
|
|
var list2=get.typeCard('spell_'+list[i]);
|
|
|
|
|
if(list2.length){
|
|
|
|
|
cards.push(game.createCard(list2.randomGet()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(cards.length){
|
|
|
|
|
player.gain(cards,'draw2');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-08-05 02:13:01 +00:00
|
|
|
|
gwyewu:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(!player.countCards('he')) return false;
|
|
|
|
|
var targets=player.getEnemies();
|
|
|
|
|
for(var i=0;i<targets.length;i++){
|
|
|
|
|
if(targets[i].countCards('he')) return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
filterCard:true,
|
2019-06-07 03:46:13 +00:00
|
|
|
|
position:'h',
|
2017-08-05 02:13:01 +00:00
|
|
|
|
check:function(card){
|
|
|
|
|
return 8-get.value(card);
|
|
|
|
|
},
|
2019-06-07 03:46:13 +00:00
|
|
|
|
global:'g_gw_yewu',
|
2017-08-05 02:13:01 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
event.targets=player.getEnemies();
|
|
|
|
|
event.color=get.color(cards[0]);
|
2019-06-07 03:46:13 +00:00
|
|
|
|
event.nh=0;
|
|
|
|
|
event.ne=0;
|
2017-08-05 02:13:01 +00:00
|
|
|
|
'step 1'
|
|
|
|
|
event.repeat=false;
|
|
|
|
|
var list=game.filterPlayer(function(current){
|
|
|
|
|
return event.targets.contains(current)&¤t.countCards('he');
|
|
|
|
|
});
|
|
|
|
|
if(list.length){
|
|
|
|
|
var target=list.randomGet();
|
|
|
|
|
var card=target.randomDiscard()[0];
|
|
|
|
|
player.line(target,'green');
|
2019-06-07 03:46:13 +00:00
|
|
|
|
if(get.position(card)=='e'){
|
|
|
|
|
event.ne++;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.nh++;
|
|
|
|
|
}
|
2017-08-05 02:13:01 +00:00
|
|
|
|
if(card&&get.color(card)==event.color){
|
|
|
|
|
event.redo();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
var togain=[];
|
2019-06-07 03:46:13 +00:00
|
|
|
|
for(var i=0;i<event.nh;i++){
|
2017-08-05 02:13:01 +00:00
|
|
|
|
togain.push(game.createCard('gw_wuyao'));
|
|
|
|
|
}
|
2019-06-07 03:46:13 +00:00
|
|
|
|
for(var i=0;i<event.ne;i++){
|
|
|
|
|
togain.push(game.createCard('gw_lang'));
|
|
|
|
|
}
|
2017-08-05 02:13:01 +00:00
|
|
|
|
player.gain(togain,'gain2');
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:8,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2019-06-07 03:46:13 +00:00
|
|
|
|
g_gw_yewu:{
|
2017-08-05 02:13:01 +00:00
|
|
|
|
trigger:{player:'phaseAfter'},
|
|
|
|
|
silent:true,
|
|
|
|
|
content:function(){
|
2019-06-07 03:46:13 +00:00
|
|
|
|
var cards=player.getCards('h','gw_wuyao').concat(player.getCards('h','gw_lang'));
|
2017-08-05 02:13:01 +00:00
|
|
|
|
if(cards.length){
|
|
|
|
|
player.lose(cards).position=null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-08-04 05:32:46 +00:00
|
|
|
|
shuangxi:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
round:2,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
if(player.getStat('damage')){
|
|
|
|
|
return player.canUse('gw_baishuang',target);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return player.canUse('gw_ciguhanshuang',target);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
// changeTarget:function(player,targets){
|
|
|
|
|
// if(!player.getStat('damage')){
|
|
|
|
|
// game.filterPlayer(function(current){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
// return get.distance(targets[0],current,'pure')==1;
|
|
|
|
|
// },targets);
|
2017-08-04 05:32:46 +00:00
|
|
|
|
// }
|
|
|
|
|
// },
|
|
|
|
|
selectTarget:function(){
|
|
|
|
|
if(_status.event.player.getStat('damage')){
|
|
|
|
|
return [1,3];
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
delay:0,
|
|
|
|
|
multitarget:true,
|
|
|
|
|
multiline:true,
|
|
|
|
|
prompt:function(){
|
|
|
|
|
if(_status.event.player.getStat('damage')){
|
|
|
|
|
return '视为使用一张【白霜】';
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return '视为使用一张【刺骨寒霜】';
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
if(player.getStat('damage')){
|
|
|
|
|
player.useCard({name:'gw_baishuang'},targets);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.useCard({name:'gw_ciguhanshuang'},targets);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player,target){
|
|
|
|
|
if(player.getStat('damage')){
|
|
|
|
|
return get.effect(target,{name:'gw_baishuang'},player,player);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return get.effect(target,{name:'gw_ciguhanshuang'},player,player);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-08-03 16:51:09 +00:00
|
|
|
|
yangfan:{
|
|
|
|
|
trigger:{player:'useCard'},
|
|
|
|
|
forced:true,
|
2023-08-19 16:40:34 +00:00
|
|
|
|
filter:(event,player)=>get.type(event.card)!='equip'&&player.hasCard(card=>get.color(card)==get.color(trigger.card)&&player.canRecast(card),'h'),
|
2017-08-03 16:51:09 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2023-09-07 04:26:50 +00:00
|
|
|
|
var cards=player.getCards('h',card=>get.suit(card)==get.suit(trigger.card)&&player.canRecast(card));
|
2023-08-19 16:40:34 +00:00
|
|
|
|
if(!cards.length) cards=player.getCards('h',card=>get.color(card)==get.color(trigger.card)&&player.canRecast(card));
|
2017-08-03 23:34:11 +00:00
|
|
|
|
if(!cards.length){
|
|
|
|
|
event.finish();
|
|
|
|
|
return;
|
|
|
|
|
}
|
2023-08-19 16:40:34 +00:00
|
|
|
|
player.recast(cards.randomGet());
|
2017-08-03 16:51:09 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
pretao:true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwfengshi:{
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2017-08-04 15:08:57 +00:00
|
|
|
|
player.chooseControlList(get.prompt('gwfengshi'),['为自己施加一个随机负面效果,并对两名随机敌人施加一个随机负面效果','为自己施加两个随机正面效果,并对一名随机敌人施加一个随机正面效果'],function(){
|
2017-08-03 16:51:09 +00:00
|
|
|
|
if(player.getEnemies().length<2) return 1;
|
|
|
|
|
if(player.hp<=1) return 1;
|
|
|
|
|
if(player.hp==2&&Math.random()<0.5) return 1;
|
|
|
|
|
return 0;
|
|
|
|
|
});
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.index!=2){
|
|
|
|
|
player.logSkill('gwfengshi');
|
|
|
|
|
if(result.index==0){
|
|
|
|
|
event.debuff=[player].addArray(player.getEnemies().randomGets(2));
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.buff=[player,player,player.getEnemies().randomGet()];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
if(event.debuff&&event.debuff.length){
|
|
|
|
|
player.line(event.debuff.shift().getDebuff(false).addExpose(0.1),'green');
|
|
|
|
|
event.redo();
|
|
|
|
|
}
|
|
|
|
|
'step 3'
|
|
|
|
|
if(event.buff&&event.buff.length){
|
|
|
|
|
player.line(event.buff.shift().getBuff(false).addExpose(0.1),'green');
|
|
|
|
|
event.redo();
|
|
|
|
|
}
|
|
|
|
|
'step 4'
|
|
|
|
|
game.delay();
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-07-29 03:25:40 +00:00
|
|
|
|
gwchenshui:{
|
|
|
|
|
trigger:{player:'damageBefore',source:'damageBefore'},
|
|
|
|
|
forced:true,
|
|
|
|
|
init:function(player){
|
|
|
|
|
player.storage.gwchenshui=0;
|
|
|
|
|
},
|
|
|
|
|
mark:true,
|
|
|
|
|
intro:{
|
|
|
|
|
content:function(storage){
|
|
|
|
|
if(!storage){
|
|
|
|
|
return '未发动过沉睡效果';
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return '累计发动过'+storage+'次沉睡效果';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
logTarget:function(event,player){
|
|
|
|
|
if(player==event.source) return event.player;
|
|
|
|
|
return event.source;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2017-09-15 07:54:36 +00:00
|
|
|
|
trigger.cancel();
|
2017-07-29 03:25:40 +00:00
|
|
|
|
player.storage.gwchenshui++;
|
|
|
|
|
player.updateMarks();
|
|
|
|
|
if(trigger.source!=trigger.player&&trigger.source.isIn()&&trigger.player.isIn()){
|
|
|
|
|
var cards=trigger.player.getCards('he');
|
|
|
|
|
if(cards.length){
|
|
|
|
|
trigger.player.give(cards.randomGet(),trigger.source);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
onremove:true,
|
|
|
|
|
group:'gwchenshui_juexing',
|
|
|
|
|
subSkill:{
|
|
|
|
|
juexing:{
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.storage.gwchenshui>=3;
|
|
|
|
|
},
|
|
|
|
|
skillAnimation:true,
|
|
|
|
|
animationStr:'觉醒',
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.removeSkill('gwchenshui');
|
2017-08-01 07:56:57 +00:00
|
|
|
|
player.setAvatar('gw_laomaotou','gw_laomaotou2');
|
2017-07-29 03:25:40 +00:00
|
|
|
|
event.list=player.getEnemies().sortBySeat();
|
|
|
|
|
'step 1'
|
|
|
|
|
if(event.list.length){
|
|
|
|
|
var target=event.list.shift();
|
|
|
|
|
player.line(target,'green');
|
|
|
|
|
target.damage();
|
|
|
|
|
event.redo();
|
|
|
|
|
}
|
2017-08-01 07:56:57 +00:00
|
|
|
|
'step 2'
|
|
|
|
|
player.addSkill('gwliedi');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:0.6,
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
|
|
|
|
if(get.tag(card,'damage')){
|
|
|
|
|
if(player.hasSkillTag('jueqing',false,target)) return;
|
|
|
|
|
if(!target.countCards('he')) return 'zeroplayertarget';
|
|
|
|
|
}
|
2017-07-29 03:25:40 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwliedi:{
|
2017-08-01 07:56:57 +00:00
|
|
|
|
trigger:{source:'damageBegin'},
|
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.player!=player&&player.distanceTo(event.player)>=2;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.num+=Math.floor(Math.max(1,player.distanceTo(trigger.player))/2);
|
|
|
|
|
},
|
|
|
|
|
group:['gwliedi_sleep','gwliedi_damage'],
|
|
|
|
|
onremove:true,
|
|
|
|
|
subSkill:{
|
|
|
|
|
damage:{
|
|
|
|
|
trigger:{source:'damageEnd'},
|
|
|
|
|
silent:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.player!=player;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.storage.gwliedi=-1;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
sleep:{
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
silent:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
if(player.storage.gwliedi!=1){
|
|
|
|
|
if(player.storage.gwliedi==-1){
|
|
|
|
|
player.storage.gwliedi=0;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.storage.gwliedi=1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.logSkill('gwliedi');
|
|
|
|
|
player.addSkill('gwchenshui');
|
|
|
|
|
player.removeSkill('gwliedi');
|
|
|
|
|
player.setAvatar('gw_laomaotou','gw_laomaotou');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2017-07-29 03:25:40 +00:00
|
|
|
|
},
|
2017-07-28 09:19:16 +00:00
|
|
|
|
julian:{
|
|
|
|
|
trigger:{player:'phaseUseBegin'},
|
|
|
|
|
frequent:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !player.isMaxHandcard();
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
var num=0;
|
|
|
|
|
for(var i=0;i<game.players.length;i++){
|
|
|
|
|
if(game.players[i]!=player){
|
|
|
|
|
num=Math.max(num,game.players[i].countCards('h'));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var dh=num-player.countCards('h');
|
|
|
|
|
if(dh>0){
|
|
|
|
|
player.draw(dh);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-07-28 08:21:24 +00:00
|
|
|
|
gwfusheng:{
|
2018-04-17 07:32:43 +00:00
|
|
|
|
enable:'chooseToUse',
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.type=='dying'&&event.dying&&!event.dying.isTurnedOver();
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target==_status.event.dying;
|
|
|
|
|
},
|
|
|
|
|
selectTarget:-1,
|
|
|
|
|
content:function(){
|
2017-07-28 08:21:24 +00:00
|
|
|
|
target.turnOver();
|
2018-04-17 07:32:43 +00:00
|
|
|
|
target.recover();
|
2017-07-28 09:19:16 +00:00
|
|
|
|
if(player!=target){
|
|
|
|
|
game.asyncDraw([player,target]);
|
|
|
|
|
}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
else{
|
2017-08-27 16:16:57 +00:00
|
|
|
|
player.draw(2);
|
2017-07-28 09:19:16 +00:00
|
|
|
|
}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:0.1,
|
|
|
|
|
skillTagFilter:function(player){
|
|
|
|
|
if(!_status.event.dying||_status.event.dying.isTurnedOver()) return false;
|
|
|
|
|
},
|
|
|
|
|
save:true,
|
|
|
|
|
result:{
|
|
|
|
|
target:3
|
|
|
|
|
},
|
|
|
|
|
threaten:1.6
|
|
|
|
|
},
|
|
|
|
|
},
|
2017-07-23 07:32:56 +00:00
|
|
|
|
gwqinwu:{
|
|
|
|
|
trigger:{player:'useCard'},
|
2019-06-07 03:46:13 +00:00
|
|
|
|
usable:1,
|
2017-07-23 07:32:56 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return get.type(event.card)=='basic';
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.chooseTarget(get.prompt2('gwqinwu')).ai=function(target){
|
|
|
|
|
var att=get.attitude(player,target);
|
|
|
|
|
if(att<=0) return 0;
|
2017-11-09 15:32:54 +00:00
|
|
|
|
if(att<3) return att;
|
|
|
|
|
att=10-get.distance(player,target,'absolute')/game.players.length;
|
2017-07-23 07:32:56 +00:00
|
|
|
|
if(target.hasSkill('gwqinwu')){
|
|
|
|
|
att/=1.5;
|
|
|
|
|
}
|
|
|
|
|
if(target.hasJudge('lebu')||target.skipList.contains('phaseUse')){
|
|
|
|
|
att/=2;
|
|
|
|
|
}
|
|
|
|
|
return att;
|
|
|
|
|
}
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
var target=result.targets[0];
|
|
|
|
|
player.logSkill('gwqinwu',target);
|
|
|
|
|
target.draw();
|
|
|
|
|
if(!target.hasSkill('gwqinwu')){
|
|
|
|
|
target.addTempSkill('gwqinwu',{player:'phaseAfter'});
|
|
|
|
|
target.addTempSkill('gwqinwu2',{player:'phaseAfter'});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.5
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwqinwu2:{
|
|
|
|
|
mark:true,
|
|
|
|
|
intro:{
|
|
|
|
|
content:'获得【琴舞】直到下一回合结束'
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-07-23 05:10:52 +00:00
|
|
|
|
huanshu:{
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('h')>0&&!player.hasSkill('huangshu2');
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.chooseCard(get.prompt2('huanshu')).ai=function(card){
|
|
|
|
|
return 6-get.value(card);
|
|
|
|
|
};
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.$give(result.cards,player);
|
|
|
|
|
player.logSkill('huanshu');
|
|
|
|
|
player.storage.huanshu2=result.cards[0];
|
|
|
|
|
player.lose(result.cards,ui.special);
|
|
|
|
|
player.addSkill('huanshu2');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.4
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
huanshu2:{
|
|
|
|
|
intro:{
|
|
|
|
|
content:function(storage,player){
|
|
|
|
|
if(player.isUnderControl(true)){
|
|
|
|
|
return '当一名敌方角色使用'+get.translation(get.color(storage))+'锦囊牌时,移去'+get.translation(storage)+',取消锦囊的效果,并摸两张牌';
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return '当一名敌方角色使用与“幻术”牌颜色相同的锦囊牌时,移去“幻术”牌,取消锦囊的效果,并摸两张牌';
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
onunmark:function(storage,player){
|
|
|
|
|
if(storage){
|
|
|
|
|
storage.discard();
|
|
|
|
|
delete player.storage.huanshu2;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger:{global:'useCard'},
|
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.getEnemies().contains(event.player)&&
|
|
|
|
|
get.type(event.card,'trick')=='trick'&&get.color(event.card)==get.color(player.storage.huanshu2);
|
|
|
|
|
},
|
|
|
|
|
mark:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2017-11-07 10:41:45 +00:00
|
|
|
|
game.delayx();
|
2017-07-23 05:10:52 +00:00
|
|
|
|
player.addExpose(0.1);
|
|
|
|
|
trigger.player.addExpose(0.1);
|
|
|
|
|
'step 1'
|
|
|
|
|
player.showCards(player.storage.huanshu2,get.translation(player)+'发动了【幻术】');
|
|
|
|
|
'step 2'
|
|
|
|
|
player.removeSkill('huanshu2');
|
2017-09-15 07:54:36 +00:00
|
|
|
|
trigger.cancel();
|
2017-07-23 05:10:52 +00:00
|
|
|
|
player.draw(2);
|
|
|
|
|
},
|
|
|
|
|
group:'huanshu3'
|
|
|
|
|
},
|
|
|
|
|
huanshu3:{
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
player.$throw(player.storage.huanshu2);
|
|
|
|
|
game.log(player,'弃置了',player.storage.huanshu2);
|
|
|
|
|
player.removeSkill('huanshu2');
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-07-23 03:19:32 +00:00
|
|
|
|
gwjieyin:{
|
|
|
|
|
group:'gwjieyin_reset',
|
|
|
|
|
init:function(player){
|
|
|
|
|
player.storage.gwjieyin=[];
|
|
|
|
|
},
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.storage.gwjieyin.length<3;
|
|
|
|
|
},
|
|
|
|
|
chooseButton:{
|
2018-04-17 07:32:43 +00:00
|
|
|
|
dialog:function(event,player){
|
|
|
|
|
return ui.create.dialog('结印',[[['','','gw_wenyi'],['','','gw_yanziyaoshui'],['','','gw_kunenfayin']],'vcard'],'hidden');
|
|
|
|
|
},
|
2017-07-23 03:19:32 +00:00
|
|
|
|
filter:function(button,player){
|
|
|
|
|
if(player.storage.gwjieyin.contains(button.link[2])){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
check:function(button){
|
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
if(button.link[2]=='gw_yanziyaoshui'){
|
|
|
|
|
if(game.hasPlayer(function(current){
|
|
|
|
|
return get.attitude(player,current)>1&¤t.isMinHandcard();
|
|
|
|
|
})){
|
|
|
|
|
return 3;
|
|
|
|
|
}
|
|
|
|
|
else if((game.roundNumber-player.storage.gwjieyin_round)%2==0){
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return 0.5;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(button.link[2]=='gw_wenyi'){
|
|
|
|
|
if(game.countPlayer(function(current){
|
2017-11-26 05:21:55 +00:00
|
|
|
|
if(current.isMinHp()){
|
|
|
|
|
if(!current.countCards('h')){
|
|
|
|
|
return -2*get.sgn(get.attitude(player,current));
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return -get.sgn(get.attitude(player,current));
|
|
|
|
|
}
|
2017-07-23 03:19:32 +00:00
|
|
|
|
}
|
|
|
|
|
})>0){
|
|
|
|
|
return 2;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
backup:function(links,player){
|
|
|
|
|
return {
|
|
|
|
|
filterCard:function(){return false},
|
|
|
|
|
selectCard:-1,
|
|
|
|
|
viewAs:{name:links[0][2]},
|
|
|
|
|
popname:true,
|
|
|
|
|
onuse:function(result,player){
|
2017-07-23 03:19:32 +00:00
|
|
|
|
player.logSkill('gwjieyin');
|
|
|
|
|
player.storage.gwjieyin.add(result.card.name);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
prompt:function(links,player){
|
|
|
|
|
return '选择'+get.translation(links[0][2])+'的目标';
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-07-23 03:19:32 +00:00
|
|
|
|
subSkill:{
|
|
|
|
|
reset:{
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
|
|
|
|
silent:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
if(typeof player.storage.gwjieyin_round=='number'){
|
2017-07-23 08:42:56 +00:00
|
|
|
|
var num=game.roundNumber-player.storage.gwjieyin_round;
|
|
|
|
|
if(num&&num%2==0){
|
2017-07-23 03:19:32 +00:00
|
|
|
|
player.storage.gwjieyin.length=0;
|
2017-07-23 08:42:56 +00:00
|
|
|
|
player.storage.gwjieyin_round=game.roundNumber;
|
2017-07-23 03:19:32 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.storage.gwjieyin_round=game.roundNumber;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:6,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-07-21 13:20:45 +00:00
|
|
|
|
zhengjun:{
|
|
|
|
|
init:function(player){
|
|
|
|
|
player.storage.zhengjun=[];
|
|
|
|
|
player.storage.zhengjun_one=[];
|
|
|
|
|
},
|
|
|
|
|
trigger:{player:'zhengjun'},
|
|
|
|
|
forced:true,
|
|
|
|
|
intro:{
|
|
|
|
|
content:'已经使用或打出过至少两张同名牌的牌有:$'
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.markSkill('zhengjun');
|
|
|
|
|
player.gainMaxHp();
|
|
|
|
|
'step 1'
|
|
|
|
|
player.recover();
|
|
|
|
|
},
|
|
|
|
|
group:['zhengjun_one','zhengjun_draw'],
|
|
|
|
|
subSkill:{
|
|
|
|
|
one:{
|
|
|
|
|
trigger:{player:['useCard','respondAfter']},
|
|
|
|
|
silent:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
if(player.storage.zhengjun_one.contains(trigger.card.name)){
|
|
|
|
|
if(!player.storage.zhengjun.contains(trigger.card.name)){
|
|
|
|
|
player.storage.zhengjun.add(trigger.card.name);
|
|
|
|
|
event.trigger('zhengjun');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.storage.zhengjun_one.add(trigger.card.name);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
draw:{
|
2017-07-21 13:55:32 +00:00
|
|
|
|
trigger:{player:'phaseEnd'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
frequent:true,
|
2017-07-21 13:20:45 +00:00
|
|
|
|
filter:function(event,player){
|
2017-07-21 14:44:03 +00:00
|
|
|
|
return player.storage.zhengjun.length>=1;
|
2017-07-21 13:20:45 +00:00
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
2017-07-21 13:55:32 +00:00
|
|
|
|
'step 0'
|
2017-07-21 14:44:03 +00:00
|
|
|
|
if(player.storage.zhengjun.length==1){
|
|
|
|
|
player.draw();
|
|
|
|
|
event.finish();
|
|
|
|
|
return;
|
|
|
|
|
}
|
2017-07-21 13:55:32 +00:00
|
|
|
|
event.cards=get.cards(player.storage.zhengjun.length);
|
2017-07-21 14:44:03 +00:00
|
|
|
|
player.chooseCardButton('整军:获得其中一张牌',true,event.cards).set('ai',function(button){
|
2017-07-21 13:55:32 +00:00
|
|
|
|
return get.useful(button.link);
|
|
|
|
|
});
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
2017-07-21 14:44:03 +00:00
|
|
|
|
var card=result.links[0];
|
|
|
|
|
card.fix();
|
2017-07-21 13:55:32 +00:00
|
|
|
|
player.gain(card,'draw');
|
|
|
|
|
event.cards.remove(card);
|
|
|
|
|
}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
'step 2'
|
2017-07-21 13:55:32 +00:00
|
|
|
|
while(event.cards.length){
|
|
|
|
|
ui.cardPile.insertBefore(event.cards.pop(),ui.cardPile.firstChild);
|
|
|
|
|
}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
2017-07-21 13:20:45 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwxuezhan:{
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.isMinHandcard();
|
|
|
|
|
},
|
|
|
|
|
frequent:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
player.gain(game.createCard('gw_shizizhaohuan'),'gain2');
|
|
|
|
|
}
|
|
|
|
|
},
|
2018-02-09 09:49:41 +00:00
|
|
|
|
jielue_old:{
|
2017-07-21 12:03:04 +00:00
|
|
|
|
trigger:{player:'useCard'},
|
|
|
|
|
frequent:true,
|
|
|
|
|
oncancel:function(event,player){
|
|
|
|
|
player.addTempSkill('jielue2');
|
|
|
|
|
},
|
|
|
|
|
usable:1,
|
|
|
|
|
filter:function(event,player){
|
2020-03-07 14:00:26 +00:00
|
|
|
|
if(event.card.isCard){
|
2018-02-09 09:49:41 +00:00
|
|
|
|
return !player.hasSkill('jielue2')&&get.type(event.card)=='basic'&&!event.card.storage.jielue;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
2017-07-21 12:03:04 +00:00
|
|
|
|
},
|
|
|
|
|
check:function(event,player){
|
|
|
|
|
return get.value(event.card)>3;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2018-02-09 09:49:41 +00:00
|
|
|
|
var card1=game.createCard(trigger.card);
|
|
|
|
|
var card2=game.createCard(trigger.card);
|
|
|
|
|
card1.storage.jielue=true;
|
|
|
|
|
card2.storage.jielue=true;
|
|
|
|
|
player.gain([card1,card2],'gain2');
|
2017-07-21 12:03:04 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
pretao:true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
jielue2:{},
|
2017-07-17 02:45:11 +00:00
|
|
|
|
bolang:{
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
|
|
|
|
frequent:true,
|
|
|
|
|
init:function(player){
|
|
|
|
|
player.storage.bolang=[];
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var cards=[];
|
|
|
|
|
for(var i=0;i<ui.cardPile.childElementCount;i++){
|
|
|
|
|
cards.push(ui.cardPile.childNodes[i]);
|
|
|
|
|
}
|
|
|
|
|
player.chooseCardButton('搏浪:将至多3张牌移至弃牌堆',[1,3],cards.slice(0,6)).ai=function(button){
|
|
|
|
|
if(button.link==cards[0]||button.link==cards[1]){
|
|
|
|
|
return get.value(button.link)-5;
|
|
|
|
|
}
|
|
|
|
|
else if(button.link==cards[4]||button.link==cards[5]){
|
|
|
|
|
return get.value(button.link)/5;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
for(var i=0;i<player.storage.bolang.length;i++){
|
|
|
|
|
if(!player.storage.bolang[i].vanishtag.contains('bolang')){
|
|
|
|
|
player.storage.bolang.splice(i--,1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
player.storage.bolang.addArray(result.links);
|
|
|
|
|
for(var i=0;i<result.links.length;i++){
|
|
|
|
|
result.links[i].vanishtag.add('bolang');
|
|
|
|
|
result.links[i].discard();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
group:'bolang_gain',
|
|
|
|
|
subSkill:{
|
|
|
|
|
gain:{
|
|
|
|
|
trigger:{source:'damageEnd'},
|
|
|
|
|
direct:true,
|
2017-07-17 03:38:07 +00:00
|
|
|
|
usable:1,
|
2017-07-17 02:45:11 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
for(var i=0;i<player.storage.bolang.length;i++){
|
|
|
|
|
if(player.storage.bolang[i].vanishtag.contains('bolang')){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var list=[];
|
|
|
|
|
for(var i=0;i<player.storage.bolang.length;i++){
|
|
|
|
|
if(player.storage.bolang[i].vanishtag.contains('bolang')){
|
|
|
|
|
list.push(player.storage.bolang[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
player.chooseCardButton(true,list,get.prompt('bolang'));
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('bolang');
|
|
|
|
|
player.gain(result.links,'gain2');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwjushi:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !player.hasSkill('gwjushi2');
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target!=player&&get.distance(player,target)<=1&&target.countCards('he');
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
var hs=target.getCards('he');
|
|
|
|
|
if(hs.length){
|
|
|
|
|
var card=hs.randomGet();
|
|
|
|
|
target.$give(card,player);
|
|
|
|
|
player.storage.gwjushi2=card;
|
|
|
|
|
player.storage.gwjushi3=target;
|
|
|
|
|
player.storage.gwjushi4=get.position(card);
|
|
|
|
|
target.lose(card,ui.special);
|
|
|
|
|
player.addSkill('gwjushi2');
|
|
|
|
|
}
|
2017-11-09 15:32:54 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:8,
|
|
|
|
|
result:{
|
|
|
|
|
target:-1
|
|
|
|
|
}
|
2017-07-17 02:45:11 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwjushi2:{
|
|
|
|
|
mark:'card',
|
|
|
|
|
intro:{
|
|
|
|
|
content:'受到伤害时,令此牌回归原位;准备阶段,你获得此牌'
|
|
|
|
|
},
|
|
|
|
|
trigger:{player:['phaseBegin','damageEnd']},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
var card=player.storage.gwjushi2;
|
|
|
|
|
var target=player.storage.gwjushi3;
|
|
|
|
|
if(trigger.name=='damage'){
|
|
|
|
|
if(target.isIn()){
|
|
|
|
|
if(player.storage.gwjushi4=='e'&&get.type(card)=='equip'){
|
|
|
|
|
target.equip(card);
|
|
|
|
|
player.$give(card,target);
|
|
|
|
|
game.delay();
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.give(card,target);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
card.discard();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.gain(card,'gain2');
|
|
|
|
|
}
|
|
|
|
|
player.removeSkill('gwjushi2');
|
|
|
|
|
},
|
|
|
|
|
onremove:['gwjushi2','gwjushi3','gwjushi4'],
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.5
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-07-16 15:34:51 +00:00
|
|
|
|
gwfengchi:{
|
|
|
|
|
trigger:{player:'phaseUseBegin'},
|
2017-07-17 02:45:11 +00:00
|
|
|
|
forced:true,
|
2017-07-16 15:34:51 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2018-04-17 07:32:43 +00:00
|
|
|
|
var list=get.gainableSkills(function(info){
|
2017-07-16 15:34:51 +00:00
|
|
|
|
if(typeof info.enable=='string') return info.enable=='phaseUse';
|
|
|
|
|
if(Array.isArray(info.enable)) return info.enable.contains('phaseUse');
|
2017-11-11 06:21:40 +00:00
|
|
|
|
},player);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
list.remove(player.getSkills());
|
|
|
|
|
list=list.randomGets(3);
|
|
|
|
|
event.skillai=function(){
|
|
|
|
|
return get.max(list,get.skillRank,'item');
|
|
|
|
|
};
|
|
|
|
|
if(event.isMine()){
|
|
|
|
|
var dialog=ui.create.dialog('forcebutton');
|
|
|
|
|
dialog.add('风驰:选择获得一项技能');
|
|
|
|
|
var clickItem=function(){
|
|
|
|
|
_status.event._result=this.link;
|
|
|
|
|
dialog.close();
|
|
|
|
|
game.resume();
|
|
|
|
|
};
|
|
|
|
|
for(var i=0;i<list.length;i++){
|
|
|
|
|
if(lib.translate[list[i]+'_info']){
|
|
|
|
|
var translation=get.translation(list[i]);
|
|
|
|
|
if(translation[0]=='新'&&translation.length==3){
|
|
|
|
|
translation=translation.slice(1,3);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
translation=translation.slice(0,2);
|
|
|
|
|
}
|
|
|
|
|
var item=dialog.add('<div class="popup pointerdiv" style="width:80%;display:inline-block"><div class="skill">【'+
|
|
|
|
|
translation+'】</div><div>'+lib.translate[list[i]+'_info']+'</div></div>');
|
|
|
|
|
item.firstChild.addEventListener('click',clickItem);
|
|
|
|
|
item.firstChild.link=list[i];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
dialog.add(ui.create.div('.placeholder'));
|
|
|
|
|
event.switchToAuto=function(){
|
|
|
|
|
event._result=event.skillai();
|
|
|
|
|
dialog.close();
|
|
|
|
|
game.resume();
|
|
|
|
|
};
|
|
|
|
|
_status.imchoosing=true;
|
|
|
|
|
game.pause();
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event._result=event.skillai();
|
|
|
|
|
}
|
|
|
|
|
'step 1'
|
|
|
|
|
_status.imchoosing=false;
|
|
|
|
|
var link=result;
|
|
|
|
|
player.addTempSkill(link,'phaseUseAfter');
|
|
|
|
|
player.popup(link);
|
2017-11-30 08:32:57 +00:00
|
|
|
|
player.flashAvatar('gwfengchi',link);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
game.log(player,'获得了技能','【'+get.translation(link)+'】');
|
|
|
|
|
game.delay();
|
2017-07-16 15:34:51 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
2017-05-18 22:15:32 +00:00
|
|
|
|
lingji:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.draw(2);
|
|
|
|
|
'step 1'
|
|
|
|
|
player.chooseToDiscard('he',2,true).ai=function(card){
|
2018-01-05 04:46:56 +00:00
|
|
|
|
var val=-get.value(card);
|
2017-05-18 22:15:32 +00:00
|
|
|
|
if(ui.selected.cards.length){
|
|
|
|
|
if(get.suit(card)==get.suit(ui.selected.cards[0])) val++;
|
|
|
|
|
if(get.number(card)==get.number(ui.selected.cards[0])) val+=3;
|
|
|
|
|
}
|
|
|
|
|
return val;
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
if(result.cards.length==2){
|
|
|
|
|
var list=[];
|
|
|
|
|
if(get.suit(result.cards[0])==get.suit(result.cards[1])){
|
|
|
|
|
var list1=get.typeCard('spell_bronze');
|
|
|
|
|
if(list1.length){
|
|
|
|
|
list.push(game.createCard(list1.randomGet()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(get.number(result.cards[0])==get.number(result.cards[1])){
|
|
|
|
|
var list2=get.typeCard('spell_silver');
|
|
|
|
|
if(list2.length){
|
|
|
|
|
list.push(game.createCard(list2.randomGet()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(list.length){
|
|
|
|
|
player.gain(list,'gain2');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:8,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-05-18 09:40:25 +00:00
|
|
|
|
gwjinyan:{
|
2017-08-03 04:15:31 +00:00
|
|
|
|
trigger:{player:['damageBefore']},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
forced:true,
|
|
|
|
|
mark:true,
|
|
|
|
|
filter:function(event,player){
|
2017-08-03 04:15:31 +00:00
|
|
|
|
return game.roundNumber%3!=0;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2017-09-15 07:54:36 +00:00
|
|
|
|
trigger.cancel();
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
2017-08-03 04:15:31 +00:00
|
|
|
|
group:['gwjinyan_gain'],
|
2017-05-18 09:40:25 +00:00
|
|
|
|
subSkill:{
|
|
|
|
|
gain:{
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
|
|
|
|
frequent:true,
|
|
|
|
|
filter:function(){
|
|
|
|
|
return game.roundNumber%3==0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
var list=get.typeCard('spell_gold');
|
|
|
|
|
if(list.length){
|
|
|
|
|
player.gain(game.createCard(list.randomGet()),'gain2');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
ai:{
|
2017-05-18 09:40:25 +00:00
|
|
|
|
threaten:function(){
|
|
|
|
|
if(game.roundNumber%3==0) return 1.6;
|
|
|
|
|
return 0.8;
|
|
|
|
|
},
|
2017-08-03 04:15:31 +00:00
|
|
|
|
nofire:true,
|
|
|
|
|
nothunder:true,
|
|
|
|
|
nodamage:true,
|
|
|
|
|
skillTagFilter:function(){
|
|
|
|
|
if(game.roundNumber%3==0) return false;
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
|
|
|
|
if(game.roundNumber%3!=0&&get.tag(card,'damage')){
|
2017-08-03 04:15:31 +00:00
|
|
|
|
return [0,0];
|
|
|
|
|
}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2017-05-18 09:40:25 +00:00
|
|
|
|
},
|
2017-05-17 07:11:21 +00:00
|
|
|
|
gwshenyu:{
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
2017-05-17 08:53:56 +00:00
|
|
|
|
if(game.hasPlayer(function(current){
|
2017-05-17 07:11:21 +00:00
|
|
|
|
return current.isDamaged();
|
2017-05-17 08:53:56 +00:00
|
|
|
|
})){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
for(var i=0;i<ui.discardPile.childElementCount;i++){
|
|
|
|
|
var card=ui.discardPile.childNodes[i];
|
2017-08-24 15:50:36 +00:00
|
|
|
|
if(card.vanishtag.contains('_gwshenyu')) continue;
|
2017-05-17 08:53:56 +00:00
|
|
|
|
if(get.type(card)=='spell'&&get.subtype(card)!='spell_gold'){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
2017-05-17 07:11:21 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2017-05-17 08:53:56 +00:00
|
|
|
|
var list=[];
|
|
|
|
|
for(var i=0;i<ui.discardPile.childElementCount;i++){
|
|
|
|
|
var card=ui.discardPile.childNodes[i];
|
2017-08-24 15:50:36 +00:00
|
|
|
|
if(card.vanishtag.contains('_gwshenyu')) continue;
|
2017-05-17 08:53:56 +00:00
|
|
|
|
if(get.type(card)=='spell'&&get.subtype(card)!='spell_gold'){
|
|
|
|
|
list.push(card);
|
2017-05-17 07:11:21 +00:00
|
|
|
|
}
|
2017-05-17 08:53:56 +00:00
|
|
|
|
}
|
|
|
|
|
event.list=list;
|
|
|
|
|
player.chooseTarget(get.prompt('gwshenyu'),function(card,player,target){
|
|
|
|
|
return list.length||target.isDamaged();
|
|
|
|
|
}).ai=function(target){
|
|
|
|
|
var att=get.attitude(player,target);
|
|
|
|
|
if(att<=0) return 0;
|
|
|
|
|
var num=1;
|
|
|
|
|
if(player==target){
|
|
|
|
|
num+=1;
|
|
|
|
|
}
|
|
|
|
|
if(target.hp==1){
|
|
|
|
|
num+=2;
|
|
|
|
|
}
|
|
|
|
|
return num*att;
|
|
|
|
|
};
|
2017-05-17 07:11:21 +00:00
|
|
|
|
'step 1'
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('gwshenyu',result.targets);
|
2017-05-17 07:11:21 +00:00
|
|
|
|
event.target=result.targets[0];
|
2017-05-17 08:53:56 +00:00
|
|
|
|
if(!event.list.length){
|
|
|
|
|
event.target.recover();
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
else if(event.target.isHealthy()){
|
|
|
|
|
event.directbool=true;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.target.chooseControl(function(event,player){
|
2017-05-17 09:00:02 +00:00
|
|
|
|
if(player.hp>=3&&!player.needsToDiscard()) return 1;
|
2017-05-17 09:10:35 +00:00
|
|
|
|
if(player.hp==2&&player.hasShan()&&player.countCards('h')<=1) return 1;
|
2017-05-17 08:53:56 +00:00
|
|
|
|
return 0;
|
|
|
|
|
}).set('choiceList',[
|
|
|
|
|
'回复一点体力','从弃牌堆中获得一张非金法术'
|
|
|
|
|
]);
|
|
|
|
|
}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
2017-05-17 07:11:21 +00:00
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
2017-05-17 08:53:56 +00:00
|
|
|
|
if(!event.directbool&&result.index==0){
|
|
|
|
|
event.target.recover();
|
|
|
|
|
event.finish();
|
2017-05-17 07:11:21 +00:00
|
|
|
|
}
|
2017-05-17 08:53:56 +00:00
|
|
|
|
'step 3'
|
|
|
|
|
var list=event.list;
|
2017-05-17 07:11:21 +00:00
|
|
|
|
if(list.length){
|
2017-05-23 02:53:13 +00:00
|
|
|
|
event.target.chooseCardButton('选择一张法术牌',list,true).ai=function(button){
|
2017-05-17 07:11:21 +00:00
|
|
|
|
return get.value(button.link);
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
2017-05-17 08:53:56 +00:00
|
|
|
|
'step 4'
|
2017-05-17 07:11:21 +00:00
|
|
|
|
if(result.bool){
|
2017-08-24 15:50:36 +00:00
|
|
|
|
result.links[0].vanishtag.add('_gwshenyu');
|
2017-05-17 08:53:56 +00:00
|
|
|
|
event.target.gain(result.links,'gain2','log');
|
2017-05-17 07:11:21 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
2017-05-21 03:16:54 +00:00
|
|
|
|
threaten:2,
|
|
|
|
|
expose:0.2
|
2017-05-17 07:11:21 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
2017-05-17 06:45:21 +00:00
|
|
|
|
junchi:{
|
|
|
|
|
trigger:{global:'shaAfter'},
|
|
|
|
|
direct:true,
|
2019-06-07 03:46:13 +00:00
|
|
|
|
usable:1,
|
2017-05-17 06:45:21 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.player!=player&&event.target!=player&&event.target.isIn()&&player.hasCard(function(card){
|
2017-05-17 14:16:14 +00:00
|
|
|
|
return player.canUse(card,event.target,false)&&!get.info(card).multitarget;
|
2017-05-17 06:45:21 +00:00
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
var next=player.chooseToUse(get.prompt('junchi'),trigger.target,-1).set('targetRequired',true);
|
|
|
|
|
next.prompt2='对'+get.translation(trigger.target)+'使用一张牌,并摸一张牌';
|
|
|
|
|
next.filterCard=function(card){
|
|
|
|
|
return player.canUse(card,trigger.target,false)&&!get.info(card).multitarget;
|
|
|
|
|
};
|
|
|
|
|
next.oncard=function(){
|
|
|
|
|
player.draw();
|
|
|
|
|
};
|
|
|
|
|
next.logSkill='junchi';
|
|
|
|
|
},
|
|
|
|
|
subSkill:{
|
|
|
|
|
gold:{
|
|
|
|
|
trigger:{global:'useCardAfter'},
|
|
|
|
|
frequent:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.player!=player&get.subtype(event.card)=='spell_gold';
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.insertPhase();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-07-12 14:56:02 +00:00
|
|
|
|
// group:'junchi_gold'
|
2017-05-17 06:45:21 +00:00
|
|
|
|
},
|
|
|
|
|
junchi_old:{
|
|
|
|
|
trigger:{global:'shaAfter'},
|
|
|
|
|
forced:true,
|
|
|
|
|
popup:false,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.player!=player&&event.target!=player&&event.player.isIn()&&event.player.countCards('he');
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var att=get.attitude(trigger.player,player);
|
|
|
|
|
trigger.player.chooseCard('he','是否交给'+get.translation(player)+'一张牌?').ai=function(card){
|
|
|
|
|
if(att>1){
|
|
|
|
|
if(trigger.target.isIn()){
|
|
|
|
|
return 9-get.value(card);
|
|
|
|
|
}
|
|
|
|
|
return 4-get.value(card);
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('junchi');
|
|
|
|
|
player.gain(result.cards,trigger.player);
|
|
|
|
|
if(get.position(result.cards[0])=='h'){
|
|
|
|
|
trigger.player.$giveAuto(result.cards,player);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
trigger.player.$give(result.cards,player);
|
|
|
|
|
}
|
|
|
|
|
trigger.player.addExpose(0.2);
|
|
|
|
|
trigger.player.line(player,'green');
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
if(trigger.target.isIn()){
|
|
|
|
|
var next=player.chooseToUse('是否对'+get.translation(trigger.target)+'使用一张牌?',trigger.target,-1).set('targetRequired',true);
|
|
|
|
|
next.filterCard=function(card){
|
|
|
|
|
return player.canUse(card,trigger.target,false)&&!get.info(card).multitarget;
|
|
|
|
|
};
|
|
|
|
|
next.oncard=function(){
|
|
|
|
|
player.recover();
|
|
|
|
|
trigger.player.draw();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-05-16 16:52:28 +00:00
|
|
|
|
hupeng:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('he')>0;
|
|
|
|
|
},
|
|
|
|
|
filterCard:true,
|
|
|
|
|
check:function(card){
|
2017-05-18 22:15:32 +00:00
|
|
|
|
return 7-get.value(card);
|
2017-05-16 16:52:28 +00:00
|
|
|
|
},
|
|
|
|
|
filterTarget:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var att=get.attitude(player,target);
|
|
|
|
|
player.chooseVCardButton('选择令'+get.translation(target)+'获得的牌',['gw_dudayuanshuai1','gw_dudayuanshuai2'],true).ai=function(button){
|
|
|
|
|
if(att>0){
|
|
|
|
|
return button.link[2]=='gw_dudayuanshuai1'?1:-1;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return button.link[2]=='gw_dudayuanshuai2'?1:-1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
target.gain(game.createCard(result.links[0][2]),'gain2');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.5,
|
|
|
|
|
order:6,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
var nh=target.countCards('h');
|
|
|
|
|
if(get.attitude(player,target)>0){
|
|
|
|
|
if(!nh) return 3;
|
|
|
|
|
if(!target.needsToDiscard(1)){
|
|
|
|
|
if(nh==1) return 2.5;
|
|
|
|
|
return 2;
|
|
|
|
|
}
|
|
|
|
|
if(!target.needsToDiscard()) return 1;
|
|
|
|
|
return 0.1;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
if(!nh) return -0.05;
|
|
|
|
|
if(target.hp==1) return -1;
|
|
|
|
|
if(target.hp==2) return -2.5;
|
|
|
|
|
if(target.hp==3) return -2;
|
|
|
|
|
return -0.5;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
global:['hupeng2','hupeng3','hupeng4']
|
|
|
|
|
},
|
|
|
|
|
hupeng2:{
|
|
|
|
|
mod:{
|
|
|
|
|
cardDiscardable:function(card,player){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(card.name=='gw_dudayuanshuai2') return false;
|
|
|
|
|
},
|
|
|
|
|
cardEnabled:function(card,player){
|
|
|
|
|
if(card.name=='gw_dudayuanshuai2') return false;
|
|
|
|
|
},
|
|
|
|
|
cardUsable:function(card,player){
|
|
|
|
|
if(card.name=='gw_dudayuanshuai2') return false;
|
|
|
|
|
},
|
|
|
|
|
cardRespondable:function(card,player){
|
|
|
|
|
if(card.name=='gw_dudayuanshuai2') return false;
|
|
|
|
|
},
|
|
|
|
|
cardSavable:function(card,player){
|
|
|
|
|
if(card.name=='gw_dudayuanshuai2') return false;
|
|
|
|
|
},
|
2017-05-16 16:52:28 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
|
|
|
|
if(target.countCards('h','gw_dudayuanshuai1')&&get.attitude(player,target)<0){
|
|
|
|
|
return 0.4;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
hupeng3:{
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
silent:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('h','gw_dudayuanshuai2');
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
var hs=player.getCards('h');
|
|
|
|
|
var hs2=player.getCards('h','gw_dudayuanshuai2');
|
|
|
|
|
hs.remove(hs2);
|
|
|
|
|
if(hs.length){
|
|
|
|
|
hs2.addArray(hs.randomGets(hs2.length));
|
|
|
|
|
}
|
|
|
|
|
player.discard(hs2);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
hupeng4:{
|
|
|
|
|
trigger:{target:'useCardToBefore'},
|
|
|
|
|
forced:true,
|
|
|
|
|
popup:false,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(event.player==player) return false;
|
|
|
|
|
var num=player.countCards('h','gw_dudayuanshuai1');
|
|
|
|
|
return num>0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.chooseToUse({name:'gw_dudayuanshuai1'},'是否对'+get.translation(trigger.card)+'使用【杜达元帅】?').set('ai1',function(card){
|
|
|
|
|
return _status.event.bool;
|
|
|
|
|
}).set('bool',-get.effect(player,trigger.card,trigger.player,player));
|
|
|
|
|
trigger.gw_dudayuanshuai1=true;
|
|
|
|
|
'step 1'
|
|
|
|
|
delete trigger.gw_dudayuanshuai1;
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-05-15 17:44:43 +00:00
|
|
|
|
hunmo:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return game.hasPlayer(function(current){
|
|
|
|
|
return lib.skill.hunmo.filterTarget(null,player,current);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
2017-06-07 07:36:48 +00:00
|
|
|
|
if(target==player) return false;
|
2017-06-07 08:10:45 +00:00
|
|
|
|
if(target.hasSkill('hunmo2')) return false;
|
2017-06-29 05:22:36 +00:00
|
|
|
|
var nh=player.countCards('h');
|
|
|
|
|
var nh2=target.countCards('h');
|
|
|
|
|
if(nh<2) return nh2<2;
|
2019-06-07 03:46:13 +00:00
|
|
|
|
return nh2>=2&&target.countDiscardableCards(player,'h');
|
|
|
|
|
},
|
|
|
|
|
prompt:function(event){
|
|
|
|
|
var nh=event.player.countCards('h');
|
|
|
|
|
if(nh<2) return '选择一名手牌数小于2的其他角色,观看牌堆顶的两张牌,你获得一张并交给其另一张';
|
|
|
|
|
return '选择一名手牌数大于2的其他角色,你弃置一张手牌,然后观看并弃置其一张手牌';
|
2017-05-15 17:44:43 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2017-06-29 05:22:36 +00:00
|
|
|
|
'step 0'
|
|
|
|
|
target.addTempSkill('hunmo2');
|
2019-06-07 03:46:13 +00:00
|
|
|
|
var nh=player.countCards('h');
|
|
|
|
|
if(nh<2){
|
|
|
|
|
event.cards=get.cards(2);
|
|
|
|
|
player.chooseCardButton(event.cards,'获得一张牌并交给'+get.translation(target)+'另一张牌',true);
|
2017-05-15 17:44:43 +00:00
|
|
|
|
}
|
2017-06-29 05:22:36 +00:00
|
|
|
|
else{
|
|
|
|
|
player.chooseToDiscard('h',true).delay=false;
|
2019-06-07 03:46:13 +00:00
|
|
|
|
event.discard=true;
|
2017-05-15 17:44:43 +00:00
|
|
|
|
}
|
2017-06-29 05:22:36 +00:00
|
|
|
|
'step 1'
|
2019-06-07 03:46:13 +00:00
|
|
|
|
if(event.discard){
|
|
|
|
|
player.discardPlayerCard(target,'h',true,'visible');
|
|
|
|
|
|
2017-06-29 05:22:36 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
2019-06-07 03:46:13 +00:00
|
|
|
|
if(result.links&&result.links.length){
|
|
|
|
|
player.gain(result.links,false);
|
|
|
|
|
event.cards.remove(result.links[0]);
|
|
|
|
|
target.gain(event.cards,false);
|
|
|
|
|
player.$drawAuto(result.links);
|
|
|
|
|
target.$drawAuto(event.cards);
|
|
|
|
|
}
|
2017-05-15 17:44:43 +00:00
|
|
|
|
}
|
2019-06-07 03:46:13 +00:00
|
|
|
|
'step 2'
|
|
|
|
|
game.delay();
|
2017-05-15 17:44:43 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
2017-06-07 07:36:48 +00:00
|
|
|
|
order:function(){
|
|
|
|
|
var player=_status.event.player;
|
2017-06-29 05:22:36 +00:00
|
|
|
|
if(player.countCards('h')<2) return 11;
|
|
|
|
|
return 6;
|
2017-06-07 07:36:48 +00:00
|
|
|
|
},
|
2017-05-15 17:44:43 +00:00
|
|
|
|
threaten:1.2,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
2017-06-29 05:22:36 +00:00
|
|
|
|
if(player.countCards('h')<2) return 1;
|
|
|
|
|
if(player.hasCard(function(card){
|
|
|
|
|
return get.value(card)<=5
|
|
|
|
|
})){
|
2017-05-15 17:44:43 +00:00
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2017-06-29 05:22:36 +00:00
|
|
|
|
},
|
2019-06-07 03:46:13 +00:00
|
|
|
|
// group:'hunmo_draw',
|
2017-06-29 05:22:36 +00:00
|
|
|
|
subSkill:{
|
|
|
|
|
draw:{
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
filter:function(event,player){
|
2018-02-27 06:23:23 +00:00
|
|
|
|
return player.getStat('skill').hunmo>=3;
|
2017-06-29 05:22:36 +00:00
|
|
|
|
},
|
|
|
|
|
frequent:true,
|
|
|
|
|
content:function(){
|
2018-02-27 06:23:23 +00:00
|
|
|
|
'step 0'
|
|
|
|
|
player.chooseTarget(get.prompt('魂墨:造成一点伤害')).ai=function(target){
|
|
|
|
|
return get.damageEffect(target,player,player);
|
|
|
|
|
}
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('hunmo_draw',result.targets);
|
|
|
|
|
result.targets[0].damage();
|
|
|
|
|
}
|
2017-06-29 05:22:36 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
2017-05-15 17:44:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
2017-06-07 08:10:45 +00:00
|
|
|
|
hunmo2:{},
|
2017-06-29 05:22:36 +00:00
|
|
|
|
hunmo3:{},
|
2017-05-13 08:56:28 +00:00
|
|
|
|
shuijian:{
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('h')>0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var targets=player.getEnemies();
|
|
|
|
|
var num=0;
|
|
|
|
|
for(var i=0;i<targets.length;i++){
|
|
|
|
|
num+=get.sgn(get.effect(targets[i],{name:'wanjian'},player,player));
|
|
|
|
|
}
|
|
|
|
|
event.targets=targets;
|
|
|
|
|
player.chooseToDiscard(get.prompt('shuijian')).set('ai',function(card){
|
|
|
|
|
if(num>=3) return 10-get.value(card);
|
|
|
|
|
if(num>=2) return 9-get.value(card);
|
|
|
|
|
if(num>=1) return 7-get.value(card);
|
|
|
|
|
return 0;
|
|
|
|
|
}).logSkill='shuijian';
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
for(var i=0;i<event.targets.length;i++){
|
|
|
|
|
event.targets[i].addExpose(0.1);
|
|
|
|
|
}
|
|
|
|
|
player.useCard({name:'wanjian'},event.targets);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.6
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-05-13 08:07:06 +00:00
|
|
|
|
yunhuo:{
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
|
|
|
|
filter:function(event,player){
|
2017-06-15 16:31:00 +00:00
|
|
|
|
return game.roundNumber%4==0&&event.skill!='yunhuo';
|
2017-05-13 08:07:06 +00:00
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2017-05-17 06:45:21 +00:00
|
|
|
|
player.insertPhase();
|
2017-05-13 08:07:06 +00:00
|
|
|
|
event.list=player.getEnemies().sortBySeat();
|
|
|
|
|
'step 1'
|
|
|
|
|
if(event.list.length){
|
|
|
|
|
var target=event.list.shift();
|
|
|
|
|
player.line(target,'fire');
|
|
|
|
|
if(target.countCards('h')){
|
|
|
|
|
target.randomDiscard('h',false);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
target.damage('fire');
|
|
|
|
|
}
|
|
|
|
|
event.redo();
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
game.delayx();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
yinzhang:{
|
2018-04-17 07:32:43 +00:00
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filterCard:true,
|
|
|
|
|
position:'he',
|
|
|
|
|
check:function(card){
|
|
|
|
|
return 8-get.value(card)
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2017-05-13 08:07:06 +00:00
|
|
|
|
var list=get.typeCard('spell_silver').randomGets(3);
|
|
|
|
|
if(!list.length){
|
|
|
|
|
event.finish();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var dialog=ui.create.dialog('选择一张加入你的手牌',[list,'vcard'],'hidden');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.chooseButton(dialog,true);
|
|
|
|
|
'step 1'
|
|
|
|
|
player.gain(game.createCard(result.links[0][2]),'draw');
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:8,
|
2017-05-15 13:35:30 +00:00
|
|
|
|
threaten:1.3,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-11-05 15:22:35 +00:00
|
|
|
|
gwtianbian:{
|
2017-04-15 00:25:50 +00:00
|
|
|
|
trigger:{player:'phaseUseBegin'},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var num1=0,num2=0;
|
|
|
|
|
var choice;
|
|
|
|
|
if(player.hasUnknown(2)){
|
|
|
|
|
if(game.dead.length==0){
|
|
|
|
|
choice='选项二';
|
2017-03-21 09:24:19 +00:00
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
else{
|
|
|
|
|
choice='cancel2';
|
2017-03-21 09:24:19 +00:00
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
game.countPlayer(function(current){
|
|
|
|
|
var att=get.attitude(player,current);
|
|
|
|
|
if(att>0){
|
|
|
|
|
num1++;
|
2017-03-21 09:24:19 +00:00
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
else if(att<0){
|
|
|
|
|
num2++;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
choice=(num1>num2)?'选项一':'选项二';
|
|
|
|
|
}
|
|
|
|
|
player.chooseControl('选项一','选项二','cancel2',function(){
|
|
|
|
|
return choice;
|
2017-11-05 15:22:35 +00:00
|
|
|
|
}).set('prompt',get.prompt('gwtianbian')).set('choiceList',['随机使用一张对全场有正面效果的牌','随机使用一张对全场有负面效果的牌']);
|
2017-04-15 00:25:50 +00:00
|
|
|
|
'step 1'
|
|
|
|
|
if(result.control!='cancel2'){
|
2017-11-05 15:22:35 +00:00
|
|
|
|
player.logSkill('gwtianbian');
|
2017-04-15 00:25:50 +00:00
|
|
|
|
var list=[];
|
|
|
|
|
for(var i in lib.card){
|
|
|
|
|
if(lib.inpile.contains(i)&&
|
|
|
|
|
lib.card[i].selectTarget==-1&&
|
|
|
|
|
lib.card[i].type!='equip'&&
|
|
|
|
|
lib.card[i].ai&&lib.card[i].ai.tag&&
|
|
|
|
|
lib.card[i].ai.tag.multitarget){
|
|
|
|
|
if(lib.card[i].ai.tag.multineg){
|
|
|
|
|
if(result.control=='选项二'){
|
|
|
|
|
list.push(i);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
if(result.control=='选项一'){
|
|
|
|
|
list.push(i);
|
|
|
|
|
}
|
2017-03-21 09:24:19 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
var name=null;
|
|
|
|
|
while(list.length){
|
|
|
|
|
name=list.randomRemove();
|
|
|
|
|
if(game.hasPlayer(function(current){
|
|
|
|
|
return player.canUse(name,current)
|
|
|
|
|
})){
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
name=null;
|
|
|
|
|
}
|
2017-03-21 09:24:19 +00:00
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
if(name){
|
|
|
|
|
var targets=game.filterPlayer(function(current){
|
|
|
|
|
return player.canUse(name,current);
|
|
|
|
|
});
|
|
|
|
|
targets.sortBySeat();
|
|
|
|
|
player.useCard({name:name},targets);
|
2017-03-21 09:24:19 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
gwxiaoshou:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:2,
|
|
|
|
|
filterTarget:function(card,player,target){
|
2017-05-12 08:05:59 +00:00
|
|
|
|
return target.isMaxHp();
|
2017-03-21 09:24:19 +00:00
|
|
|
|
},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
check:function(card){return 7-get.value(card);},
|
|
|
|
|
position:'he',
|
|
|
|
|
filterCard:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
target.damage();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
return get.damageEffect(target,player);
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
order:7
|
2017-03-14 15:35:47 +00:00
|
|
|
|
}
|
2017-03-11 16:19:35 +00:00
|
|
|
|
},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
kuanglie:{
|
|
|
|
|
trigger:{player:'useCardToBegin'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.target&&event.target!=player&&event.target.countCards('he')&&get.color(event.card)=='black';
|
|
|
|
|
},
|
|
|
|
|
init:function(player){
|
|
|
|
|
player.storage.kuanglie=0;
|
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.target.randomDiscard();
|
|
|
|
|
player.storage.kuanglie++;
|
|
|
|
|
if(player.storage.kuanglie%2==0){
|
|
|
|
|
player.draw();
|
2017-03-11 16:19:35 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
kuanglie2:{},
|
|
|
|
|
gwjiquan:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target!=player&&target.countCards('he');
|
|
|
|
|
},
|
|
|
|
|
selectTarget:[1,Infinity],
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.gainPlayerCard(target,'he',true);
|
|
|
|
|
'step 1'
|
|
|
|
|
target.useCard({name:'sha'},player);
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.4,
|
|
|
|
|
order:7,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
if(player.getEquip('tengjia')||player.getEquip('bagua')) return -1;
|
|
|
|
|
if(get.effect(player,{name:'sha'},target,player)>=0) return -1;
|
|
|
|
|
if(!player.hasShan()){
|
|
|
|
|
if(ui.selected.targets.length) return 0;
|
|
|
|
|
if(player.hp>=4) return -1;
|
|
|
|
|
if(player.hp>=3&&target.hp==1) return -1;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
var num=player.countCards('h','shan');
|
|
|
|
|
if(num<1){
|
|
|
|
|
num=1;
|
|
|
|
|
}
|
|
|
|
|
if(ui.selected.targets.length>=num){
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
}
|
2017-03-11 16:19:35 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
2017-07-21 12:03:04 +00:00
|
|
|
|
nuhou_old:{
|
2017-04-15 00:25:50 +00:00
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
position:'he',
|
|
|
|
|
filterCard:true,
|
|
|
|
|
check:function(card){
|
|
|
|
|
return 7-get.value(card)
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var list=player.getEnemies();
|
|
|
|
|
list.sortBySeat();
|
|
|
|
|
event.list=list;
|
|
|
|
|
'step 1'
|
|
|
|
|
if(event.list.length){
|
|
|
|
|
var current=event.list.shift();
|
|
|
|
|
var he=current.getCards('he');
|
|
|
|
|
player.line(current,'green');
|
|
|
|
|
if(he.length){
|
|
|
|
|
current.discard(he.randomGet());
|
|
|
|
|
current.addExpose(0.2);
|
|
|
|
|
}
|
|
|
|
|
event.redo();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:8.5,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
},
|
2017-03-11 16:19:35 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2017-07-21 12:03:04 +00:00
|
|
|
|
nuhou:{
|
|
|
|
|
trigger:{player:'damageEnd'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('he')>0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.chooseToDiscard(get.prompt2('nuhou'),'he').set('ai',function(card){
|
|
|
|
|
return 8-get.useful(card);
|
|
|
|
|
}).set('logSkill','nuhou');
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
2017-07-21 12:03:04 +00:00
|
|
|
|
var targets=player.getEnemies();
|
|
|
|
|
if(targets.length){
|
|
|
|
|
var target=targets.randomGet();
|
|
|
|
|
player.line(target,'green');
|
|
|
|
|
target.damage();
|
|
|
|
|
target.randomDiscard();
|
|
|
|
|
}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:0.8,
|
2017-07-21 12:03:04 +00:00
|
|
|
|
maixie:true,
|
|
|
|
|
maixie_hp:true,
|
2017-11-12 10:59:31 +00:00
|
|
|
|
maixie_defend:true,
|
2017-07-21 12:03:04 +00:00
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
|
|
|
|
if(get.tag(card,'damage')){
|
|
|
|
|
var nh=target.countCards('he');
|
|
|
|
|
if(player.hasSkillTag('jueqing',false,target)||nh==0) return [1,-2];
|
|
|
|
|
if(!target.hasFriend()||nh<=1) return;
|
|
|
|
|
if(target.hp>=2) return [1,get.tag(card,'damage')*0.5];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
2017-07-21 12:03:04 +00:00
|
|
|
|
},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
shewu:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
position:'he',
|
|
|
|
|
filterCard:true,
|
|
|
|
|
selectCard:[1,3],
|
|
|
|
|
check:function(card){
|
|
|
|
|
if(!ui.selected.cards.length){
|
2017-04-23 06:06:23 +00:00
|
|
|
|
return 8-get.value(card)
|
2017-04-15 00:25:50 +00:00
|
|
|
|
}
|
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
if(player.isDamaged()){
|
|
|
|
|
var hs=player.getCards('h');
|
|
|
|
|
var num=0;
|
|
|
|
|
for(var i=0;i<hs.length;i++){
|
|
|
|
|
if(get.value(hs[i])<6){
|
|
|
|
|
num++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(num>=3){
|
|
|
|
|
return 6-get.value(card);
|
2017-03-11 16:19:35 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
return 0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.draw(3);
|
|
|
|
|
if(cards.length>=2){
|
2017-05-18 22:15:32 +00:00
|
|
|
|
player.addTempSkill('shewu_dist');
|
2017-04-15 00:25:50 +00:00
|
|
|
|
}
|
|
|
|
|
if(cards.length==3){
|
|
|
|
|
player.recover();
|
2017-03-11 16:19:35 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
ai:{
|
2017-04-23 06:06:23 +00:00
|
|
|
|
order:4,
|
2017-04-15 00:25:50 +00:00
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
},
|
|
|
|
|
threaten:1.6
|
|
|
|
|
},
|
|
|
|
|
subSkill:{
|
|
|
|
|
dist:{
|
|
|
|
|
mod:{
|
|
|
|
|
targetInRange:function(){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2017-03-11 16:19:35 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2017-03-02 16:46:02 +00:00
|
|
|
|
},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
gwzhanjiang:{
|
|
|
|
|
trigger:{global:'phaseBegin'},
|
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !player.hasSkill('gwzhanjiang2')&&event.player!=player;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var bool=(get.effect(trigger.player,{name:'sha'},player,player)>0&&
|
|
|
|
|
Math.abs(get.attitude(player,trigger.player))>1&&
|
|
|
|
|
game.hasPlayer(function(current){
|
|
|
|
|
return get.attitude(current,player)>0&¤t.hasSha();
|
|
|
|
|
}));
|
|
|
|
|
var next=player.chooseToDiscard(get.prompt('gwzhanjiang',trigger.player),'he');
|
|
|
|
|
next.ai=function(card){
|
|
|
|
|
if(bool) return 7-get.value(card);
|
|
|
|
|
return 0;
|
|
|
|
|
};
|
|
|
|
|
next.logSkill=['gwzhanjiang',trigger.player];
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.addTempSkill('gwzhanjiang2',{player:'phaseBegin'});
|
|
|
|
|
event.targets=game.filterPlayer(function(current){
|
|
|
|
|
return current!=trigger.player;
|
|
|
|
|
});
|
|
|
|
|
event.targets.sortBySeat(trigger.player);
|
|
|
|
|
event.num=0;
|
2017-03-02 16:46:02 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
2017-04-15 00:25:50 +00:00
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
if(event.targets.length){
|
|
|
|
|
event.current=event.targets.shift();
|
|
|
|
|
if(event.current.hasSha()){
|
2017-05-17 06:45:21 +00:00
|
|
|
|
event.current.chooseToUse({name:'sha'},'是否对'+get.translation(trigger.player)+'使用一张杀?',trigger.player,-1).oncard=function(card,player){
|
|
|
|
|
player.draw();
|
|
|
|
|
};
|
2017-04-15 00:25:50 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.redo();
|
|
|
|
|
}
|
2017-03-02 16:46:02 +00:00
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
else{
|
2017-05-05 09:45:46 +00:00
|
|
|
|
event.finish();
|
2017-03-22 07:59:16 +00:00
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
'step 3'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
event.num++;
|
|
|
|
|
if(event.num>=2){
|
|
|
|
|
return;
|
2017-04-06 01:54:08 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
event.goto(2);
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
expose:0.2,
|
|
|
|
|
threaten:1.4
|
|
|
|
|
},
|
2017-03-02 16:46:02 +00:00
|
|
|
|
},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
gwzhanjiang2:{},
|
|
|
|
|
gwzhanjiang3:{
|
|
|
|
|
trigger:{player:'useCard'},
|
|
|
|
|
filter:function(event){
|
|
|
|
|
return event.card.name=='sha'&&event.getParent(2).name=='gwzhanjiang';
|
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
popup:false,
|
|
|
|
|
content:function(){
|
|
|
|
|
player.draw();
|
2017-03-02 16:46:02 +00:00
|
|
|
|
}
|
2017-04-06 01:54:08 +00:00
|
|
|
|
},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
gwchuanxin_old:{
|
|
|
|
|
trigger:{player:'shaAfter'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(player.storage.gwchuanxin&&player.storage.gwchuanxin.length>=4) return false;
|
|
|
|
|
return event.target.isAlive();
|
|
|
|
|
},
|
|
|
|
|
check:function(event,player){
|
|
|
|
|
return get.effect(event.target,{name:'sha'},player,player)>0
|
|
|
|
|
},
|
|
|
|
|
logTarget:'target',
|
|
|
|
|
logLine:false,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
event.card=get.cards()[0];
|
|
|
|
|
player.showCards(event.card,get.translation(player)+'对'+get.translation(trigger.player)+'发动了【穿心】');
|
|
|
|
|
'step 1'
|
|
|
|
|
if(player.storage.gwchuanxin&&!player.storage.gwchuanxin.contains(get.suit(event.card))){
|
|
|
|
|
player.useCard({name:'sha'},[event.card],trigger.target,false);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
group:['gwchuanxin_count1','gwchuanxin_count2'],
|
|
|
|
|
subSkill:{
|
|
|
|
|
count1:{
|
|
|
|
|
trigger:{global:'phaseBegin'},
|
|
|
|
|
silent:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
player.storage.gwchuanxin=[];
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
count2:{
|
|
|
|
|
trigger:{player:'useCard'},
|
|
|
|
|
silent:true,
|
|
|
|
|
// filter:function(event){
|
|
|
|
|
// return event.card&&event.card.name=='sha';
|
|
|
|
|
// },
|
|
|
|
|
content:function(){
|
|
|
|
|
for(var i=0;i<trigger.cards.length;i++){
|
|
|
|
|
player.storage.gwchuanxin.add(get.suit(trigger.cards[i]));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
presha:true,
|
2017-04-06 01:54:08 +00:00
|
|
|
|
}
|
2017-03-02 13:06:03 +00:00
|
|
|
|
},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
gwchuanxin:{
|
|
|
|
|
trigger:{player:'shaAfter'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.target.isAlive();
|
|
|
|
|
},
|
|
|
|
|
check:function(event,player){
|
|
|
|
|
return get.effect(event.target,{name:'sha'},player,player)>0
|
|
|
|
|
},
|
|
|
|
|
logTarget:'target',
|
|
|
|
|
// logLine:false,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var cards=get.cards();
|
|
|
|
|
player.showCards(cards,get.translation(player)+'发动了【穿心】');
|
|
|
|
|
event.bool=(get.color(cards[0])=='black');
|
|
|
|
|
'step 1'
|
|
|
|
|
if(event.bool){
|
|
|
|
|
player.useCard({name:'sha'},trigger.target,false).animate=false;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mod:{
|
|
|
|
|
attackFrom:function(from,to,distance){
|
2017-07-16 15:00:03 +00:00
|
|
|
|
return distance-from.hp+1;
|
2017-04-15 00:25:50 +00:00
|
|
|
|
}
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
fengjian:{
|
|
|
|
|
trigger:{player:'useCard'},
|
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
var type=get.type(event.card,'trick');
|
|
|
|
|
return type=='trick'&&game.hasPlayer(function(current){
|
|
|
|
|
return player.canUse('sha',current,false)&&!event.targets.contains(current);
|
2017-03-02 13:06:03 +00:00
|
|
|
|
});
|
2017-04-15 00:25:50 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.chooseTarget(get.prompt('fengjian'),function(card,player,target){
|
|
|
|
|
return player.canUse('sha',target,false)&&!trigger.targets.contains(target);
|
|
|
|
|
}).ai=function(target){
|
|
|
|
|
return get.effect(target,{name:'sha',nature:'thunder'},player,player);
|
|
|
|
|
}
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('fengjian');
|
2017-05-15 17:44:43 +00:00
|
|
|
|
if(!event.isMine()){
|
|
|
|
|
game.delay();
|
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
player.useCard({name:'sha',nature:'thunder'},result.targets,false);
|
2019-06-07 03:46:13 +00:00
|
|
|
|
player.tempHide();
|
2017-04-15 00:25:50 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
expose:0.2,
|
|
|
|
|
threaten:1.5,
|
|
|
|
|
noautowuxie:true,
|
|
|
|
|
},
|
|
|
|
|
// group:'fengjian_hide',
|
|
|
|
|
// subSkill:{
|
|
|
|
|
// hide:{
|
|
|
|
|
// trigger:{source:'damageEnd'},
|
|
|
|
|
// forced:true,
|
|
|
|
|
// popup:false,
|
|
|
|
|
// filter:function(event,player){
|
|
|
|
|
// return event.getParent(3).name=='fengjian';
|
|
|
|
|
// },
|
|
|
|
|
// content:function(){
|
2019-06-07 03:46:13 +00:00
|
|
|
|
// player.tempHide();
|
2017-04-15 00:25:50 +00:00
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
},
|
|
|
|
|
huandie:{
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.chooseTarget(get.prompt('huandie'),[0,game.countPlayer()],function(card,player,target){
|
|
|
|
|
return target!=player;
|
|
|
|
|
}).ai=function(target){
|
|
|
|
|
return get.attitude(player,target);
|
|
|
|
|
}
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
result.targets.sortBySeat();
|
|
|
|
|
result.targets.unshift(player);
|
|
|
|
|
player.logSkill('huandie',result.targets);
|
|
|
|
|
game.asyncDrawAuto(result.targets,function(current){
|
|
|
|
|
return current==player?1:2;
|
2017-03-02 13:06:03 +00:00
|
|
|
|
});
|
2017-05-18 22:15:32 +00:00
|
|
|
|
player.addTempSkill('huandie_discard');
|
2017-04-15 00:25:50 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.5
|
|
|
|
|
},
|
|
|
|
|
subSkill:{
|
|
|
|
|
discard:{
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return game.hasPlayer(function(current){
|
|
|
|
|
return current.countCards('h')>current.hp;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
logTarget:function(){
|
|
|
|
|
return game.filterPlayer(function(current){
|
|
|
|
|
return current.countCards('h')>current.hp;
|
|
|
|
|
}).sortBySeat();
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var list=game.filterPlayer(function(current){
|
|
|
|
|
return current.countCards('h')>current.hp;
|
|
|
|
|
}).sortBySeat();
|
|
|
|
|
event.list=list;
|
|
|
|
|
'step 1'
|
|
|
|
|
if(event.list.length){
|
|
|
|
|
event.list.shift().chooseToDiscard('h',true,2);
|
|
|
|
|
event.redo();
|
|
|
|
|
}
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
},
|
|
|
|
|
xuezhou:{
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
|
|
|
|
direct:true,
|
|
|
|
|
unique:true,
|
|
|
|
|
forceunique:true,
|
|
|
|
|
intro:{
|
|
|
|
|
content:function(storage,player){
|
|
|
|
|
var name=get.translation(player);
|
|
|
|
|
if(storage==1){
|
|
|
|
|
return '每当一名角色('+name+'除外)受到一次伤害,该角色失去一点体力,'+name+'回复一点体力';
|
|
|
|
|
}
|
|
|
|
|
else if(storage==2){
|
|
|
|
|
return '每当一名角色('+name+'除外)造成一次伤害,该角色失去一点体力,'+name+'(若不是受伤害角色)回复一点体力';
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return '未发动';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var next=player.chooseControl('选项一','选项二','cancel2',function(){
|
|
|
|
|
if(Math.random()<0.65) return 0;
|
|
|
|
|
return 1;
|
|
|
|
|
});
|
|
|
|
|
next.prompt=get.prompt('xuezhou');
|
|
|
|
|
next.choiceList=[
|
2017-07-23 07:32:56 +00:00
|
|
|
|
'每当一名其他角色在一个回合中首次受到伤害,该角色失去一点体力,你回复一点体力',
|
|
|
|
|
'每当一名其他角色在一个回合中首次造成伤害,该角色失去一点体力,你(若不是受伤害角色)回复一点体力'
|
2017-04-15 00:25:50 +00:00
|
|
|
|
];
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.control=='cancel2'){
|
|
|
|
|
player.unmarkSkill('xuezhou');
|
|
|
|
|
delete _status.xuezhou;
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
2017-04-15 00:25:50 +00:00
|
|
|
|
player.logSkill('xuezhou');
|
|
|
|
|
player.storage.xuezhou=result.index+1;
|
|
|
|
|
player.syncStorage('xuezhou');
|
|
|
|
|
player.markSkill('xuezhou');
|
|
|
|
|
_status.xuezhou=player;
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:2.5
|
|
|
|
|
},
|
|
|
|
|
global:'xuezhou_hp'
|
|
|
|
|
},
|
|
|
|
|
xuezhou_hp:{
|
|
|
|
|
trigger:{source:'damageEnd',player:'damageEnd'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(!_status.xuezhou) return false;
|
|
|
|
|
if(player==_status.xuezhou) return false;
|
|
|
|
|
if(!player.isIn()||!_status.xuezhou.isIn()) return false;
|
2017-07-23 07:32:56 +00:00
|
|
|
|
if(_status.currentPhase.hasSkill('xuezhou_hp2')) return false;
|
2017-04-15 00:25:50 +00:00
|
|
|
|
switch(_status.xuezhou.storage.xuezhou){
|
|
|
|
|
case 1:return player==event.player;
|
|
|
|
|
case 2:return player==event.source;
|
|
|
|
|
default:return false;
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
},
|
|
|
|
|
silent:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
game.delayx();
|
2017-07-23 07:32:56 +00:00
|
|
|
|
_status.currentPhase.addTempSkill('xuezhou_hp2');
|
2017-04-15 00:25:50 +00:00
|
|
|
|
'step 1'
|
|
|
|
|
_status.xuezhou.logSkill('xuezhou',player);
|
|
|
|
|
player.loseHp();
|
|
|
|
|
if(_status.xuezhou!=trigger.player){
|
|
|
|
|
_status.xuezhou.recover();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-07-23 07:32:56 +00:00
|
|
|
|
xuezhou_hp2:{},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
fayin:{
|
|
|
|
|
trigger:{player:'shaBegin'},
|
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('he')>0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var target=trigger.target;
|
|
|
|
|
var bool=get.attitude(player,target)<0;
|
|
|
|
|
var next=player.chooseToDiscard('he',get.prompt('fayin',target));
|
|
|
|
|
next.ai=function(card){
|
|
|
|
|
if(bool) return 7-get.value(card);
|
|
|
|
|
return 0;
|
|
|
|
|
};
|
|
|
|
|
next.logSkill=['fayin',target];
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
var target=trigger.target;
|
|
|
|
|
var num=5;
|
|
|
|
|
if(target.isMad()){
|
|
|
|
|
num=4;
|
|
|
|
|
}
|
|
|
|
|
switch(Math.floor(Math.random()*num)){
|
|
|
|
|
case 0:target.randomDiscard(2);break;
|
|
|
|
|
case 1:target.damage('fire');break;
|
|
|
|
|
case 2:player.changeHujia();break;
|
|
|
|
|
case 3:target.turnOver();target.draw();break;
|
|
|
|
|
case 4:target.goMad({player:'phaseBegin'});break;
|
|
|
|
|
}
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
gwbaquan:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target!=player&&target.countCards('h')>0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var hs=target.getCards('h');
|
|
|
|
|
player.gain(hs,target);
|
|
|
|
|
target.$giveAuto(hs,player);
|
|
|
|
|
event.hs=hs;
|
|
|
|
|
'step 1'
|
|
|
|
|
var damage=(target.hp>=player.hp&&get.damageEffect(target,player,player)>0);
|
|
|
|
|
var hs=event.hs;
|
|
|
|
|
if(damage&&target.hp>1){
|
|
|
|
|
for(var i=0;i<hs.length;i++){
|
|
|
|
|
if(get.value(hs[i],player,'raw')>=8){
|
|
|
|
|
damage=false;break;
|
|
|
|
|
}
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
player.chooseCard(hs.length,true,'选择还给'+get.translation(target)+'的牌').ai=function(card){
|
|
|
|
|
if(damage){
|
|
|
|
|
return hs.contains(card)?1:0;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return -get.value(card,player,'raw');
|
|
|
|
|
}
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
if(!event.isMine()) game.delay();
|
|
|
|
|
'step 2'
|
|
|
|
|
target.gain(result.cards,player);
|
|
|
|
|
player.$giveAuto(result.cards,target);
|
|
|
|
|
event.hs2=result.cards;
|
|
|
|
|
if(player.hp>target.hp){
|
|
|
|
|
event.finish();
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
'step 3'
|
|
|
|
|
for(var i=0;i<event.hs2.length;i++){
|
|
|
|
|
if(!event.hs.contains(event.hs2[i])) return;
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
player.line(target);
|
|
|
|
|
target.damage();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:11,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
return -Math.sqrt(target.countCards('h'));
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
},
|
|
|
|
|
hunmo_old:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target.countCards('h')!=Math.min(3,player.hp);
|
|
|
|
|
},
|
|
|
|
|
selectTarget:[1,3],
|
|
|
|
|
content:function(){
|
|
|
|
|
var dh=Math.min(3,player.hp)-target.countCards('h');
|
2017-03-21 09:24:19 +00:00
|
|
|
|
if(dh>0){
|
|
|
|
|
target.draw(dh,false);
|
|
|
|
|
target.$draw(dh);
|
2017-04-15 00:25:50 +00:00
|
|
|
|
game.delay(0.5);
|
2017-03-21 09:24:19 +00:00
|
|
|
|
}
|
|
|
|
|
else if(dh<0){
|
2017-04-15 00:25:50 +00:00
|
|
|
|
target.chooseToDiscard(-dh,true);
|
|
|
|
|
if(player!=target) player.useCard({name:'sha'},target,false);
|
2017-03-21 09:24:19 +00:00
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:11,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
var dh=Math.min(3,player.hp)-target.countCards('h');
|
|
|
|
|
if(dh<0){
|
|
|
|
|
dh+=get.sgn(get.effect(target,{name:'sha'},player,target));
|
|
|
|
|
}
|
|
|
|
|
return dh;
|
|
|
|
|
}
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2017-03-02 16:46:02 +00:00
|
|
|
|
},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
hunmo_old2:{
|
|
|
|
|
trigger:{player:['phaseBegin','phaseEnd']},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.chooseTarget(get.prompt('hunmo'),[1,game.countPlayer()],function(card,player,target){
|
|
|
|
|
return target.countCards('h')!=Math.min(3,target.hp);
|
|
|
|
|
}).ai=function(target){
|
|
|
|
|
return get.attitude(player,target)*(Math.min(3,target.hp)-target.countCards('h'));
|
|
|
|
|
}
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('hunmo',result.targets);
|
|
|
|
|
event.targets=result.targets.slice(0);
|
|
|
|
|
event.targets.sortBySeat();
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
if(event.targets.length){
|
|
|
|
|
var target=event.targets.shift();
|
|
|
|
|
var dh=Math.min(3,target.hp)-target.countCards('h');
|
|
|
|
|
if(dh>0){
|
|
|
|
|
target.draw(dh,false);
|
|
|
|
|
target.$draw(dh);
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
else if(dh<0){
|
|
|
|
|
target.chooseToDiscard(-dh,true).delay=false;
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
game.delay(0.5);
|
|
|
|
|
event.redo();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
huihun:{
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(!player.storage.huihun) return false;
|
|
|
|
|
for(var i=0;i<player.storage.huihun.length;i++){
|
|
|
|
|
if(get.position(player.storage.huihun[i])=='d') return true;
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
return false;
|
2017-03-02 13:06:03 +00:00
|
|
|
|
},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
frequent:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
var list=[];
|
|
|
|
|
for(var i=0;i<player.storage.huihun.length;i++){
|
|
|
|
|
if(get.position(player.storage.huihun[i])=='d'){
|
|
|
|
|
list.push(player.storage.huihun[i]);
|
|
|
|
|
if(list.length>=2) break;
|
|
|
|
|
}
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
player.gain(list,'gain2','log');
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.8,
|
|
|
|
|
},
|
|
|
|
|
group:['huihun_count','huihun_count2'],
|
|
|
|
|
subSkill:{
|
|
|
|
|
count:{
|
|
|
|
|
trigger:{player:'useCard'},
|
|
|
|
|
silent:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return _status.currentPhase==player;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
if(!player.storage.huihun){
|
|
|
|
|
player.storage.huihun=[];
|
|
|
|
|
}
|
|
|
|
|
for(var i=0;i<trigger.cards.length;i++){
|
|
|
|
|
if(get.color(trigger.cards[i])=='red'){
|
|
|
|
|
player.storage.huihun.add(trigger.cards[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
count2:{
|
|
|
|
|
trigger:{player:'phaseAfter'},
|
|
|
|
|
silent:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
delete player.storage.huihun;
|
|
|
|
|
}
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-05-13 08:07:06 +00:00
|
|
|
|
lanquan:{
|
2017-04-15 00:25:50 +00:00
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
onChooseToUse:function(event){
|
|
|
|
|
var cards=[];
|
|
|
|
|
var num=6;
|
|
|
|
|
if(ui.cardPile.childNodes.length<num){
|
|
|
|
|
var discardcards=get.cards(num);
|
|
|
|
|
for(var i=0;i<discardcards.length;i++){
|
2017-11-23 09:25:15 +00:00
|
|
|
|
discardcards[i].discard();
|
2017-04-15 00:25:50 +00:00
|
|
|
|
}
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
2017-04-15 00:25:50 +00:00
|
|
|
|
for(var i=0;i<num;i++){
|
|
|
|
|
cards.push(ui.cardPile.childNodes[i]);
|
|
|
|
|
}
|
2017-05-13 08:07:06 +00:00
|
|
|
|
event.set('lanquancards',cards);
|
2017-03-02 13:06:03 +00:00
|
|
|
|
},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
chooseButton:{
|
|
|
|
|
dialog:function(event,player){
|
2017-06-02 02:58:40 +00:00
|
|
|
|
return ui.create.dialog('选择一张牌使用',event.lanquancards);
|
2017-04-15 00:25:50 +00:00
|
|
|
|
},
|
|
|
|
|
filter:function(button,player){
|
|
|
|
|
var evt=_status.event.getParent();
|
|
|
|
|
if(evt&&evt.filterCard){
|
|
|
|
|
var type=get.type(button.link,'trick');
|
2017-05-13 08:07:06 +00:00
|
|
|
|
return evt.filterCard(button.link,player,evt);
|
2017-04-15 00:25:50 +00:00
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
check:function(button){
|
|
|
|
|
return get.value(button.link);
|
|
|
|
|
},
|
|
|
|
|
backup:function(links,player){
|
|
|
|
|
return {
|
|
|
|
|
filterCard:function(){return false},
|
|
|
|
|
selectCard:-1,
|
|
|
|
|
viewAs:links[0],
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
prompt:function(links,player){
|
|
|
|
|
return '选择'+get.translation(links)+'的目标';
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
ai:{
|
|
|
|
|
order:12,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
},
|
|
|
|
|
threaten:1.5
|
2017-03-02 13:06:03 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
2017-05-16 16:52:28 +00:00
|
|
|
|
card:{
|
2018-01-11 12:51:54 +00:00
|
|
|
|
gwjinli_jiu:{
|
|
|
|
|
fullimage:true,
|
2019-06-07 03:46:13 +00:00
|
|
|
|
gainable:false,
|
2018-01-11 12:51:54 +00:00
|
|
|
|
image:'card/gw_xianzumaijiu'
|
|
|
|
|
},
|
|
|
|
|
gw_xianzumaijiu:{
|
|
|
|
|
type:'special',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_huoge',
|
|
|
|
|
toself:true,
|
|
|
|
|
enable:function(event,player){
|
|
|
|
|
return !player.hasSkill('gw_xianzumaijiu');
|
|
|
|
|
},
|
|
|
|
|
savable:function(card,player,dying){
|
|
|
|
|
return dying==player;
|
|
|
|
|
},
|
|
|
|
|
usable:1,
|
|
|
|
|
selectTarget:-1,
|
|
|
|
|
logv:false,
|
|
|
|
|
modTarget:true,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target==player;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
if(target.isDying()) target.recover();
|
|
|
|
|
else{
|
|
|
|
|
target.addTempSkill('gw_xianzumaijiu',['phaseAfter','shaAfter']);
|
|
|
|
|
if(cards&&cards.length){
|
|
|
|
|
card=cards[0];
|
|
|
|
|
}
|
|
|
|
|
if(target==targets[0]&&card.clone&&(card.clone.parentNode==player.parentNode||card.clone.parentNode==ui.arena)){
|
|
|
|
|
card.clone.moveDelete(target);
|
|
|
|
|
game.addVideo('gain2',target,get.cardsInfo([card]));
|
|
|
|
|
}
|
|
|
|
|
if(!target.node.jiu&&lib.config.jiu_effect){
|
|
|
|
|
target.node.jiu=ui.create.div('.playerjiu',target.node.avatar);
|
|
|
|
|
target.node.jiu2=ui.create.div('.playerjiu',target.node.avatar2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
basic:{
|
|
|
|
|
useful:function(card,i){
|
|
|
|
|
if(_status.event.player.hp>1){
|
|
|
|
|
if(i==0) return 5;
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
if(i==0) return 7.3;
|
2018-01-11 15:07:44 +00:00
|
|
|
|
return 4;
|
2018-01-11 12:51:54 +00:00
|
|
|
|
},
|
|
|
|
|
value:function(card,player,i){
|
|
|
|
|
if(player.hp>1){
|
|
|
|
|
if(i==0) return 5;
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
if(i==0) return 7.3;
|
2018-01-11 15:07:44 +00:00
|
|
|
|
return 4;
|
2018-01-11 12:51:54 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
order:function(){
|
|
|
|
|
return get.order({name:'sha'})+0.2;
|
|
|
|
|
},
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
if(target&&target.isDying()) return 2;
|
|
|
|
|
if(lib.config.mode=='stone'&&!player.isMin()){
|
|
|
|
|
if(player.getActCount()+1>=player.actcount) return false;
|
|
|
|
|
}
|
|
|
|
|
var shas=player.getCards('h','sha');
|
|
|
|
|
if(shas.length>1&&player.getCardUsable('sha')>1){
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
var card;
|
|
|
|
|
if(shas.length){
|
|
|
|
|
for(var i=0;i<shas.length;i++){
|
|
|
|
|
if(lib.filter.filterCard(shas[i],target)){
|
|
|
|
|
card=shas[i];break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(player.hasSha()){
|
|
|
|
|
card={name:'sha'};
|
|
|
|
|
}
|
|
|
|
|
if(card){
|
|
|
|
|
if(game.hasPlayer(function(current){
|
|
|
|
|
return (!current.hujia&&
|
|
|
|
|
get.attitude(target,current)<0&&
|
|
|
|
|
target.canUse(card,current,true,true)&&
|
|
|
|
|
get.effect(current,card,target)>0);
|
|
|
|
|
})){
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
2018-01-10 15:30:39 +00:00
|
|
|
|
gwmaoxian_yioufeisi:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_yioufeisisp',
|
2018-01-14 03:24:58 +00:00
|
|
|
|
enable:function(){
|
|
|
|
|
return game.countPlayer()>2;
|
|
|
|
|
},
|
2018-01-10 15:30:39 +00:00
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target!=player;
|
|
|
|
|
},
|
|
|
|
|
selectTarget:2,
|
|
|
|
|
multitarget:true,
|
|
|
|
|
multiline:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
targets[0].useCard({name:'sha'},targets[1],'noai');
|
|
|
|
|
'step 1'
|
|
|
|
|
if(targets[0].isIn()&&targets[1].isIn()){
|
|
|
|
|
targets[1].useCard({name:'sha'},targets[0],'noai');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
2018-01-11 12:51:54 +00:00
|
|
|
|
return get.effect(target,{name:'sha'},target,target);
|
2018-01-10 15:30:39 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_luoqi:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_luoqi',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return player.canUse('sha',target,false);
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.useCard({name:'sha'},target,false).animate=false;
|
|
|
|
|
'step 1'
|
|
|
|
|
event.targets=game.filterPlayer(function(current){
|
|
|
|
|
return current.canUse('sha',target,false)&¤t!=player;
|
|
|
|
|
});
|
|
|
|
|
event.targets.sortBySeat();
|
|
|
|
|
'step 2'
|
2018-02-08 12:36:27 +00:00
|
|
|
|
if(event.targets.length&&target.isIn()){
|
2018-01-10 15:30:39 +00:00
|
|
|
|
event.current=event.targets.shift();
|
|
|
|
|
if(event.current.hasSha()){
|
|
|
|
|
event.current.chooseToUse({name:'sha'},'是否对'+get.translation(target)+'使用一张杀?',target,-1);
|
|
|
|
|
}
|
|
|
|
|
event.redo();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
2018-01-14 03:24:58 +00:00
|
|
|
|
return get.effect(target,{name:'sha'},player,target);
|
2018-01-10 15:30:39 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_jieluote:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_jieluote',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
filterTarget:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
if(target.isMaxHp()&&target.hp>2){
|
|
|
|
|
target.damage(2);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
target.damage();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
tag:{
|
|
|
|
|
damage:1
|
|
|
|
|
},
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player,target){
|
|
|
|
|
var eff=get.damageEffect(target,player,player);
|
|
|
|
|
if(eff>0){
|
|
|
|
|
eff=Math.sqrt(eff);
|
|
|
|
|
if(target.isMaxHp()&&target.hp>2){
|
2018-01-14 03:24:58 +00:00
|
|
|
|
if(get.attitude(player,target)>0) return 0;
|
2018-01-10 15:30:39 +00:00
|
|
|
|
switch(target.hp){
|
|
|
|
|
case 3:return eff*2;
|
|
|
|
|
case 4:return eff*1.5;
|
|
|
|
|
default:return eff*1.1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
switch(target.hp){
|
|
|
|
|
case 1:return eff*1.6;
|
|
|
|
|
case 2:return eff*1.1;
|
|
|
|
|
default:return eff;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_yenaifa:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_yenaifa',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
notarget:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
event.targets=player.getEnemies().randomGets(3).sortBySeat();
|
|
|
|
|
'step 1'
|
|
|
|
|
if(event.targets.length){
|
|
|
|
|
player.line(event.targets.shift().getDebuff(false).addExpose(0.1));
|
|
|
|
|
event.redo();
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
game.delay();
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_telisi:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_telisi',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
notarget:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
event.targets=player.getFriends().randomGets(3);
|
|
|
|
|
event.targets.add(player);
|
|
|
|
|
event.targets.sortBySeat();
|
|
|
|
|
'step 1'
|
|
|
|
|
if(event.targets.length){
|
|
|
|
|
player.line(event.targets.shift().getBuff(false).addExpose(0.1));
|
|
|
|
|
event.redo();
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
game.delay();
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_hengsaite:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_hengsaite',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
2018-01-19 02:51:53 +00:00
|
|
|
|
notarget:true,
|
2018-01-10 15:30:39 +00:00
|
|
|
|
content:function(){
|
2018-01-19 02:51:53 +00:00
|
|
|
|
var targets=game.filterPlayer(function(current){
|
|
|
|
|
return player.canUse('wanjian',current);
|
|
|
|
|
}).sortBySeat();
|
|
|
|
|
if(targets.length){
|
|
|
|
|
player.addTempSkill('gwmaoxian_hengsaite_sha');
|
|
|
|
|
player.useCard({name:'wanjian'},targets);
|
2018-01-10 15:30:39 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
2018-01-19 02:51:53 +00:00
|
|
|
|
player:function(player,target){
|
|
|
|
|
var targets=game.filterPlayer(function(current){
|
2018-02-03 08:23:31 +00:00
|
|
|
|
return player.canUse('wanjian',current);
|
2018-01-19 02:51:53 +00:00
|
|
|
|
});
|
|
|
|
|
var eff=0;
|
|
|
|
|
for(var i=0;i<targets.length;i++){
|
|
|
|
|
eff+=get.sgn(get.effect(targets[i],{name:'wanjian'},player,player))/Math.sqrt(targets[i].hp+1);
|
|
|
|
|
}
|
|
|
|
|
return get.sgn(eff);
|
2018-01-10 15:30:39 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_fuertaisite:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_fuertaisite',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
filterTarget:true,
|
|
|
|
|
selectTarget:[1,2],
|
|
|
|
|
content:function(){
|
|
|
|
|
target.changeHujia();
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
var num=1/Math.sqrt(target.hp+1);
|
|
|
|
|
if(target.hasSkillTag('maixie_hp')){
|
|
|
|
|
num*=0.7;
|
|
|
|
|
}
|
|
|
|
|
if(target.hp==1){
|
|
|
|
|
num*=1.5;
|
|
|
|
|
}
|
|
|
|
|
return num;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_laduoweide:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_laduoweide',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
filterTarget:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
target.addTempSkill('fengyin',{player:'phaseAfter'});
|
|
|
|
|
target.damage();
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
var num=1/Math.sqrt(target.hp+1);
|
|
|
|
|
if(target.hasSkillTag('maixie_hp')){
|
|
|
|
|
num*=1.5;
|
|
|
|
|
}
|
|
|
|
|
return -num;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_enxier:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_enxier',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return Math.abs(target.countCards('h')-player.countCards('h'))<=1;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.swapHandcards(target);
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
var dh=target.countCards('h')-player.countCards('h');
|
|
|
|
|
if(dh>0) return -1;
|
|
|
|
|
if(dh==0&&player.needsToDiscard()) return -0.5;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_fulisi:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_fulisi',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target!=player&&target.countCards('h');
|
|
|
|
|
},
|
|
|
|
|
selectTarget:[1,3],
|
2018-01-14 03:24:58 +00:00
|
|
|
|
multitarget:true,
|
|
|
|
|
multiline:true,
|
2018-01-10 15:30:39 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2018-01-14 03:24:58 +00:00
|
|
|
|
var dialog=ui.create.dialog('弃置至多2张手牌','hidden');
|
|
|
|
|
for(var i=0;i<targets.length;i++){
|
|
|
|
|
var hs=targets[i].getCards('h');
|
|
|
|
|
if(hs.length){
|
|
|
|
|
dialog.addText(get.translation(targets[i]));
|
|
|
|
|
dialog.add(hs);
|
2018-01-10 15:30:39 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2018-01-14 03:24:58 +00:00
|
|
|
|
player.chooseButton(dialog,[1,2]).ai=function(button){
|
|
|
|
|
return get.value(button.link,get.owner(button.link));
|
|
|
|
|
};
|
2018-01-10 15:30:39 +00:00
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
2018-01-14 03:24:58 +00:00
|
|
|
|
var owner1=get.owner(result.links[0]);
|
|
|
|
|
var owner2=get.owner(result.links[1]);
|
|
|
|
|
if(owner1==owner2){
|
|
|
|
|
owner1.discard(result.links.slice(0));
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
owner1.discard(result.links[0]).delay=false;
|
|
|
|
|
owner2.discard(result.links[1]);
|
|
|
|
|
}
|
2018-01-10 15:30:39 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
target:-1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_kaerweite:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_kaerweite',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target!=player&&target.countCards('h');
|
|
|
|
|
},
|
|
|
|
|
selectTarget:[1,2],
|
|
|
|
|
multitarget:true,
|
|
|
|
|
multiline:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
player.gainMultiple(targets);
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
if(target.hasSkillTag('nolose')||target.hasSkillTag('noh')){
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
return -1/Math.sqrt(1+target.countCards('h'));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_bulanwang:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_bulanwang',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
notarget:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2018-01-18 12:36:47 +00:00
|
|
|
|
player.chooseToDiscard('he',[1,2],'弃置至多2张牌并摸弃牌数2倍的牌').set('ai',function(card){
|
2018-01-10 15:30:39 +00:00
|
|
|
|
return 9-get.value(card);
|
|
|
|
|
});
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.draw(2*result.cards.length);
|
|
|
|
|
}
|
|
|
|
|
player.skip('phaseDiscard');
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player,target){
|
|
|
|
|
if(player.hasCard('he',function(card){
|
|
|
|
|
return get.value(card)<9;
|
|
|
|
|
})){
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_kuite:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_kuite',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target.countCards('h')>=player.countCards('h')&&player.canUse('juedou',target);
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.useCard({name:'juedou'},target).animate=false;
|
|
|
|
|
'step 1'
|
|
|
|
|
if(player.isIn()&&target.isIn()){
|
|
|
|
|
player.useCard({name:'juedou'},target);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
return get.effect(target,{name:'juedou'},player,target);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_haluo:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_haluo',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target.isMinHp();
|
|
|
|
|
},
|
|
|
|
|
selectTarget:-1,
|
|
|
|
|
content:function(){
|
|
|
|
|
target.damage();
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
target:-1.5
|
|
|
|
|
},
|
|
|
|
|
tag:{
|
|
|
|
|
damage:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_dagong:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_dagong',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
target.addSkill('gw_ciguhanshuang');
|
|
|
|
|
target.addSkill('gw_birinongwu');
|
|
|
|
|
target.addSkill('gw_qinpendayu');
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return !target.hasSkill('gw_ciguhanshuang')||
|
|
|
|
|
!target.hasSkill('gw_qinpendayu')||
|
|
|
|
|
!target.hasSkill('gw_birinongwu');
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
changeTarget:function(player,targets){
|
|
|
|
|
game.filterPlayer(function(current){
|
|
|
|
|
return get.distance(targets[0],current,'pure')==1;
|
|
|
|
|
},targets);
|
2018-01-10 15:30:39 +00:00
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
return get.effect(target,{name:'gw_ciguhanshuang'},player,target);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_gaier:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_gaier',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
filterTarget:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var str1='令'+get.translation(target);
|
|
|
|
|
var str2='一点体力和体力上限'
|
|
|
|
|
player.chooseControlList([str1+'增加'+str2,str1+'减少'+str2],function(){
|
|
|
|
|
if(get.attitude(player,target)>0) return 0;
|
|
|
|
|
return 1;
|
|
|
|
|
});
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.index==0){
|
|
|
|
|
target.gainMaxHp(true);
|
|
|
|
|
target.recover();
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
target.loseHp();
|
|
|
|
|
target.loseMaxHp(true);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player,target){
|
|
|
|
|
var num=1;
|
|
|
|
|
if(target.hasSkillTag('maixie_hp')){
|
|
|
|
|
num=1.5;
|
|
|
|
|
}
|
|
|
|
|
return num/Math.sqrt(target.hp+1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_airuiting:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_airuiting',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target!=player;
|
|
|
|
|
},
|
|
|
|
|
selectTarget:-1,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
target.chooseToUse({name:'sha'},'使用一张杀,或失去一点体力');
|
|
|
|
|
'step 1'
|
|
|
|
|
if(!result.bool){
|
|
|
|
|
target.loseHp();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
if(target.hasSha()){
|
|
|
|
|
if(Math.random()<0.5) return 1;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
if(target.countCards('h')>=2){
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_aisinie:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_aisinie',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
notarget:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.recover();
|
|
|
|
|
'step 1'
|
|
|
|
|
var list=get.typeCard('spell_silver');
|
|
|
|
|
if(list.length){
|
|
|
|
|
player.chooseVCardButton('获得一张银卡法术',list,true);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.gain(game.createCard(result.links[0][2]),'gain2');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_falanxisika:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_falanxisika',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
notarget:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var list=get.typeCard('spell_gold');
|
|
|
|
|
list.remove('gw_huangjiashenpan');
|
|
|
|
|
if(list.length){
|
|
|
|
|
player.chooseVCardButton('使用一张金卡法术',list.randomGets(3),true).ai=function(button){
|
|
|
|
|
var info=get.info(button.link[2]);
|
|
|
|
|
if(info&&info.ai&&info.ai.result&&info.ai.result.player){
|
|
|
|
|
return info.ai.result.player(player,player);
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.useCard(game.createCard(result.links[0][2]));
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gwmaoxian_huoge:{
|
|
|
|
|
type:'gwmaoxian',
|
|
|
|
|
fullborder:'gold',
|
|
|
|
|
vanish:true,
|
|
|
|
|
derivation:'gw_diandian',
|
2018-08-13 02:34:59 +00:00
|
|
|
|
image:'character:gw_huoge',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
enable:true,
|
|
|
|
|
notarget:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
event.cards=get.cards(6);
|
|
|
|
|
player.chooseCardButton(event.cards,[1,2],'选择至多两牌依次使用之').set('filterButton',function(button){
|
|
|
|
|
return game.hasPlayer(function(current){
|
|
|
|
|
return player.canUse(button.link,current);
|
|
|
|
|
});
|
|
|
|
|
}).set('ai',function(button){
|
|
|
|
|
return get.value(button.link);
|
|
|
|
|
});
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
event.list=result.links.slice(0);
|
|
|
|
|
for(var i=0;i<event.cards.length;i++){
|
|
|
|
|
if(!event.list.contains(event.cards[i])){
|
|
|
|
|
event.cards[i].discard();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
if(event.list.length){
|
2019-11-26 05:15:06 +00:00
|
|
|
|
player.chooseUseTarget(true,event.list.shift());
|
2018-01-10 15:30:39 +00:00
|
|
|
|
event.redo();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
contentAfter:function(){
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'){
|
|
|
|
|
evt.skipped=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2017-08-05 02:13:01 +00:00
|
|
|
|
gw_wuyao:{
|
|
|
|
|
type:'special',
|
|
|
|
|
fullimage:true,
|
|
|
|
|
derivation:'gw_linjing',
|
|
|
|
|
vanish:true,
|
|
|
|
|
addinfo:'杀',
|
|
|
|
|
autoViewAs:'sha',
|
|
|
|
|
ai:{
|
|
|
|
|
order:function(){
|
2021-03-28 04:32:05 +00:00
|
|
|
|
return get.order({name:'sha'})+0.5;
|
2017-08-05 02:13:01 +00:00
|
|
|
|
}
|
2019-06-07 03:46:13 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gw_lang:{
|
|
|
|
|
type:'special',
|
|
|
|
|
fullimage:true,
|
|
|
|
|
derivation:'gw_linjing',
|
|
|
|
|
vanish:true,
|
|
|
|
|
addinfo:'酒',
|
|
|
|
|
autoViewAs:'jiu',
|
|
|
|
|
ai:{
|
|
|
|
|
order:function(){
|
2021-03-28 04:32:05 +00:00
|
|
|
|
return get.order({name:'jiu'})+0.5;
|
2019-06-07 03:46:13 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2017-08-05 02:13:01 +00:00
|
|
|
|
},
|
2017-05-16 16:52:28 +00:00
|
|
|
|
gw_dudayuanshuai1:{
|
|
|
|
|
type:'special',
|
|
|
|
|
fullimage:true,
|
|
|
|
|
derivation:'gw_zhuoertan',
|
|
|
|
|
vanish:true,
|
|
|
|
|
addinfo:'小伙伴',
|
|
|
|
|
notarget:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
var evt=event.getParent(3)._trigger;
|
|
|
|
|
if(evt.gw_dudayuanshuai1){
|
2017-11-05 06:56:08 +00:00
|
|
|
|
evt.cancel();
|
2017-05-16 16:52:28 +00:00
|
|
|
|
}
|
|
|
|
|
if(evt.cards){
|
|
|
|
|
player.gain(evt.cards,'gain2');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:10,
|
|
|
|
|
useful:9,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gw_dudayuanshuai2:{
|
|
|
|
|
type:'special',
|
|
|
|
|
fullimage:true,
|
|
|
|
|
derivation:'gw_zhuoertan',
|
|
|
|
|
vanish:true,
|
|
|
|
|
addinfo:'捣蛋鬼',
|
2017-08-09 12:24:23 +00:00
|
|
|
|
ai:{
|
|
|
|
|
value:-1
|
|
|
|
|
}
|
2017-05-16 16:52:28 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
cardType:{
|
|
|
|
|
gwmaoxian:0.5
|
|
|
|
|
},
|
2017-04-15 00:25:50 +00:00
|
|
|
|
translate:{
|
|
|
|
|
gw_huoge:'霍格',
|
|
|
|
|
gw_aisinie:'埃丝涅',
|
|
|
|
|
gw_gaier:'盖尔',
|
|
|
|
|
gw_enxier:'恩希尔',
|
|
|
|
|
gw_kuite:'奎特',
|
|
|
|
|
gw_dagong:'达贡',
|
|
|
|
|
gw_airuiting:'艾瑞汀',
|
2017-08-03 03:08:25 +00:00
|
|
|
|
gw_fuertaisite:'弗尔泰斯特',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
gw_falanxisika:'法兰茜斯卡',
|
2017-04-15 00:25:50 +00:00
|
|
|
|
gw_haluo:'哈洛',
|
|
|
|
|
gw_hengsaite:'亨赛特',
|
|
|
|
|
gw_kaerweite:'卡尔维特',
|
|
|
|
|
gw_bulanwang:'布兰王',
|
|
|
|
|
gw_fulisi:'符里斯',
|
|
|
|
|
gw_laduoweide:'拉多维德',
|
2017-03-02 13:06:03 +00:00
|
|
|
|
|
2017-04-15 00:25:50 +00:00
|
|
|
|
gw_jieluote:'杰洛特',
|
|
|
|
|
gw_yenaifa:'叶奈法',
|
|
|
|
|
gw_telisi:'特莉斯',
|
|
|
|
|
gw_xili:'希里',
|
|
|
|
|
gw_luoqi:'罗契',
|
|
|
|
|
gw_yioufeisi:'伊欧菲斯',
|
2017-03-02 04:10:18 +00:00
|
|
|
|
|
2017-05-12 15:13:26 +00:00
|
|
|
|
gw_aigeleisi:'艾格蕾斯',
|
|
|
|
|
gw_aokeweisite:'奥克维斯特',
|
|
|
|
|
gw_kaxier:'卡西尔',
|
|
|
|
|
gw_luobo:'萝卜',
|
2017-07-12 14:56:02 +00:00
|
|
|
|
gw_mieren:'尔米恩',
|
2017-05-12 15:13:26 +00:00
|
|
|
|
gw_sanhanya:'三寒鸦',
|
|
|
|
|
gw_shanhu:'珊瑚',
|
|
|
|
|
gw_zhangyujushou:'章鱼巨兽',
|
|
|
|
|
gw_zhuoertan:'卓尔坦',
|
2017-07-23 03:19:32 +00:00
|
|
|
|
gw_meizi:'梅兹',
|
2017-07-23 04:25:13 +00:00
|
|
|
|
gw_aimin:'艾敏',
|
2017-07-23 07:32:56 +00:00
|
|
|
|
gw_puxila:'普希拉',
|
2017-05-12 15:13:26 +00:00
|
|
|
|
|
2017-07-28 08:21:24 +00:00
|
|
|
|
gw_xigedelifa:'希格德莉法',
|
|
|
|
|
gw_laomaotou:'毛矛头',
|
|
|
|
|
gw_laomaotou2:'毛矛头',
|
|
|
|
|
gw_qigaiwang:'乞丐王',
|
|
|
|
|
|
2017-08-03 16:51:09 +00:00
|
|
|
|
gw_bierna:'碧尔娜',
|
|
|
|
|
gw_haizhiyezhu:'海之野猪',
|
|
|
|
|
gw_nitelila:'尼斯里拉',
|
|
|
|
|
|
2017-08-05 02:13:01 +00:00
|
|
|
|
gw_linjing:'林精',
|
|
|
|
|
gw_nvyemo:'女夜魔',
|
|
|
|
|
gw_mierjiata:'米尔加塔',
|
2017-08-10 15:24:38 +00:00
|
|
|
|
gw_kanbi:'坎毕',
|
|
|
|
|
gw_hanmuduoer:'汉姆多尔',
|
2017-09-14 15:19:44 +00:00
|
|
|
|
gw_kairuisi:'凯瑞斯',
|
2017-09-14 17:14:07 +00:00
|
|
|
|
gw_oudimu:'欧迪姆',
|
|
|
|
|
gw_shasixiwusi:'沙斯西乌斯',
|
2017-08-05 02:13:01 +00:00
|
|
|
|
|
2018-01-10 10:21:50 +00:00
|
|
|
|
gw_yioufeisisp:'伊欧菲斯',
|
|
|
|
|
gw_diandian:'店店',
|
|
|
|
|
gw_feilafanruide:'菲拉凡德苪',
|
|
|
|
|
gw_fenghuang:'凤凰',
|
|
|
|
|
gw_yisilinni:'伊斯琳妮',
|
|
|
|
|
gw_lanbote:'兰伯特',
|
|
|
|
|
|
2019-06-07 03:46:13 +00:00
|
|
|
|
gw_saqiya:'萨琪亚',
|
|
|
|
|
|
|
|
|
|
// sqlongyin:'龙影',
|
|
|
|
|
// sqlongyin_info:'',
|
|
|
|
|
sqlongnu:'龙怒',
|
|
|
|
|
sqlongnu_info:'准备阶段,你可以发现一张牌堆中的牌,若你手牌中有同名牌,你可以改为造成一点火属性伤害锁定技。准备阶段开始时,你随机切换至一种形态',
|
|
|
|
|
sqlonghuo:'龙火',
|
|
|
|
|
sqlonghuo_info:'出牌阶段限一次,你可以弃置所有手牌并摸等量的牌,若敌方角色手牌中与你弃置的牌同名的牌,则随机弃置其中一张。准备阶段开始时,你随机切换至一种形态',
|
|
|
|
|
sqlongwu:'龙舞',
|
|
|
|
|
sqlongwu_info:'结束阶段,你可以摸X张牌,然后可以使用一张牌,X为手牌中同名牌数最多的牌的数量。准备阶段开始时,你随机切换至一种形态',
|
2018-02-03 08:23:31 +00:00
|
|
|
|
kuanglie:'狂猎',
|
2018-04-22 17:59:02 +00:00
|
|
|
|
kuanglie_info:'锁定技,每当你使用黑色牌指定其他角色为目标后,目标随机弃置一张牌;每当你以此法累计弃置2张牌后,你摸一张牌',
|
|
|
|
|
// kuanglie_info:'锁定技,每当一名敌方角色成为你的黑色牌的目标,你视为对其使用【刺骨寒霜】;在一名角色受到【刺骨寒霜】的影响后,你随机获得一张【狂猎】牌',
|
2018-02-03 08:23:31 +00:00
|
|
|
|
lingshuang:'凛霜',
|
|
|
|
|
lingshuang_info:'每当你失去最后一张基本牌,你可以视为对距离2以内的所有敌方角色使用【刺骨寒霜】;在一名角色受到【刺骨寒霜】影响时,你可以弃置一张手牌将其效果改为“摸牌数-2”',
|
|
|
|
|
gwshuangwu:'霜舞',
|
|
|
|
|
gwshuangwu_info:'锁定技,每当你造成一次伤害,你视为对目标使用刺骨寒霜;你对处于刺骨寒霜的角色造成的伤害+1',
|
2018-01-11 15:07:44 +00:00
|
|
|
|
gwhuanshuang:'幻霜',
|
2019-06-28 11:31:20 +00:00
|
|
|
|
gwhuanshuang_info:'准备或结束阶段,你可以发现一张铜卡法术并使用之,此牌结算两次',
|
2018-01-11 12:51:54 +00:00
|
|
|
|
gwjinli:'金醴',
|
|
|
|
|
gwjinli_jiu:'先祖麦酒',
|
2018-01-11 15:07:44 +00:00
|
|
|
|
gwjinli_info:'出牌阶段限一次,你可以弃置一张手牌,并将一张先祖麦酒置于一名角色的武将牌上',
|
2018-01-11 12:51:54 +00:00
|
|
|
|
gw_xianzumaijiu:'先祖麦酒',
|
|
|
|
|
gw_xianzumaijiu_info:'出牌阶段对自己使用,你使用下一张杀造成伤害后,令所有友方角色摸一张牌;濒死阶段,对自己使用,回复1点体力',
|
|
|
|
|
gwliaotian:'燎天',
|
|
|
|
|
gwliaotian_info:'出牌阶段限2次,若你有至少两张手牌且颜色均相同,你可以重铸你的全部手牌,并视为对一名随机敌方角色使用一张不计入出杀次数的杀',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
gwmaoxian_yioufeisi:'伊欧菲斯',
|
|
|
|
|
gwmaoxian_yioufeisi_info:'选择两名角色,令目标依次视为对对方使用一张杀,然后结束出牌阶段',
|
|
|
|
|
gwmaoxian_luoqi:'罗契',
|
2018-01-19 02:51:53 +00:00
|
|
|
|
gwmaoxian_luoqi_info:'选择一名角色视为对其使用一张不计入出杀次数的杀,然后所有其他角色可以对目标使用一张杀,然后结束出牌阶段',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
gwmaoxian_jieluote:'杰洛特',
|
|
|
|
|
gwmaoxian_jieluote_info:'对一名角色造成一点伤害,若目标体力值大于2且为全场最多,改为造成2点伤害,然后结束出牌阶段',
|
|
|
|
|
gwmaoxian_yenaifa:'叶奈法',
|
|
|
|
|
gwmaoxian_yenaifa_info:'对至多3名随机敌方角色施加一个随机负面效果,然后结束出牌阶段',
|
|
|
|
|
gwmaoxian_telisi:'特丽斯',
|
|
|
|
|
gwmaoxian_telisi_info:'对至多3名随机友方角色施加一个随机正面效果,然后结束出牌阶段',
|
|
|
|
|
gwmaoxian_hengsaite:'亨赛特',
|
2018-01-19 02:51:53 +00:00
|
|
|
|
gwmaoxian_hengsaite_info:'视为使用一张万箭齐发,每当有一名角色因此受到伤害,你获得一张杀,然后结束出牌阶段',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
gwmaoxian_fuertaisite:'弗尔泰斯特',
|
|
|
|
|
gwmaoxian_fuertaisite_info:'令至多两名角色各获得一点护甲,然后结束出牌阶段',
|
|
|
|
|
gwmaoxian_laduoweide:'拉多维德',
|
|
|
|
|
gwmaoxian_laduoweide_info:'令一名角色的非锁定技失效直到其下一回合结束,并对其造成一点伤害,然后结束出牌阶段',
|
|
|
|
|
gwmaoxian_enxier:'恩希尔',
|
|
|
|
|
gwmaoxian_enxier_info:'与一名手牌并不超过1的其他角色交换手牌,然后结束出牌阶段',
|
|
|
|
|
gwmaoxian_fulisi:'符里斯',
|
2018-01-14 03:24:58 +00:00
|
|
|
|
gwmaoxian_fulisi_info:'选择至多三名角色,观看目标的手牌并可以弃置其中1~2张,然后结束出牌阶段',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
gwmaoxian_kaerweite:'卡尔维特',
|
|
|
|
|
gwmaoxian_kaerweite_info:'获得至多两名角色各一张手牌,然后结束出牌阶段',
|
|
|
|
|
gwmaoxian_bulanwang:'布兰王',
|
2018-01-18 12:36:47 +00:00
|
|
|
|
gwmaoxian_bulanwang_info:'弃置至多2张牌并摸数量等于弃牌数2倍的牌,跳过弃牌阶段,然后结束出牌阶段',
|
2018-01-10 15:30:39 +00:00
|
|
|
|
gwmaoxian_kuite:'奎特',
|
|
|
|
|
gwmaoxian_kuite_info:'视为对一名手牌数不小于你的角色连续使用2张决斗,然后结束出牌阶段',
|
|
|
|
|
gwmaoxian_haluo:'哈洛',
|
|
|
|
|
gwmaoxian_haluo_info:'对所有体力值全场最少的角色造成一点伤害,然后结束出牌阶段',
|
|
|
|
|
gwmaoxian_dagong:'达贡',
|
|
|
|
|
gwmaoxian_dagong_info:'视为同时使用刺骨寒霜、蔽日浓雾和倾盆大雨,然后结束出牌阶段',
|
|
|
|
|
gwmaoxian_gaier:'盖尔',
|
|
|
|
|
gwmaoxian_gaier_info:'令一名角色增加或减少一点体力和体力上限,然后结束出牌阶段',
|
|
|
|
|
gwmaoxian_airuiting:'艾瑞汀',
|
|
|
|
|
gwmaoxian_airuiting_info:'令所有其他角色选择一项:使用一张杀,或失去一点体力,然后结束出牌阶段',
|
|
|
|
|
gwmaoxian_aisinie:'埃丝涅',
|
|
|
|
|
gwmaoxian_aisinie_info:'回复一点体力并获得任意一张银卡法术,然后结束出牌阶段',
|
|
|
|
|
gwmaoxian_falanxisika:'法兰茜斯卡',
|
|
|
|
|
gwmaoxian_falanxisika_info:'随机观看3张金卡法术并使用其中一张,然后结束出牌阶段',
|
|
|
|
|
gwmaoxian_huoge:'霍格',
|
|
|
|
|
gwmaoxian_huoge_info:'观看牌堆顶的6张牌,使用至多2张,然后弃掉其余的牌,然后结束出牌阶段',
|
|
|
|
|
gwmaoxian:'冒险',
|
|
|
|
|
gwhuanbi:'幻笔',
|
|
|
|
|
gwhuanbi_info:'出牌阶段限一次,你可以弃置一张牌,并创造一张冒险牌,然后随机选择一名有手牌的角色,被选中的角色可以交给你一张手牌并获得一张该牌的复制',
|
2018-01-10 10:21:50 +00:00
|
|
|
|
gwminxiang:'冥想',
|
2018-08-06 17:01:36 +00:00
|
|
|
|
gwminxiang_old_info:'结束阶段,你可以选择一张本回合使用过的基本牌或普通锦囊牌并选择两名其他角色,令目标分别视为对对方使用一张此牌的复制',
|
|
|
|
|
gwminxiang_info:'出牌阶段限一次,你可以弃置一张基本牌或普通锦囊牌并摸一张牌,然后选择其他两名角色,令目标分别视为对对方使用一张你弃置的牌的同名牌',
|
2018-01-10 10:21:50 +00:00
|
|
|
|
gwlangshi:'狼噬',
|
|
|
|
|
gwlangshi_info:'每当你造成一次伤害,你可以对一名体力值不小于受伤害角色的其他角色造一点伤害',
|
2018-02-27 06:23:23 +00:00
|
|
|
|
gwjingshi:'血契',
|
2017-09-15 07:45:38 +00:00
|
|
|
|
gwjingshi_info:'出牌阶段限一次,你可以猜测手牌中黑色牌最多的角色是谁,若猜对,你可以观看所有其他角色的手牌并获得任意一张',
|
2017-09-14 17:14:07 +00:00
|
|
|
|
gwjingtian:'经天',
|
2017-09-15 07:45:38 +00:00
|
|
|
|
gwjingtian_info:'锁定技,牌堆顶的9张牌对你始终可见;你始终跳过摸牌阶段,改为获得3枚“经天”标记;每名角色的回合限一次,你可以在任意时间点移去一枚“经天”标记,然后获得牌堆顶的一张牌',
|
2017-09-14 15:19:44 +00:00
|
|
|
|
gwweitu:'卫土',
|
2019-06-07 03:46:13 +00:00
|
|
|
|
gwweitu_info:'锁定技,每当你弃置牌,若你的护甲数小于3,你获得一点护甲;每当你的护甲为你累计抵消3次伤害,你获得一张随机银卡法术',
|
2017-08-10 15:24:38 +00:00
|
|
|
|
gwzhongmo:'终末',
|
|
|
|
|
gwzhongmo_info:'锁定技,你跳过摸牌阶段,改为获得两张随机的稀有度不同的法术牌',
|
|
|
|
|
gwfutian:'覆天',
|
2017-08-27 04:44:18 +00:00
|
|
|
|
gwfutian_info:'锁定技,你防止一切伤害;准备阶段,你须弃置一名其他角色的一张手牌;若你以此法累计弃置弃置的总点数达到了24,你变身为汉姆多尔',
|
2017-08-27 06:00:44 +00:00
|
|
|
|
gwgouhun:'勾魂',
|
|
|
|
|
gwgouhun_info:'出牌阶段限一次,你可以交给一名有手牌的其他角色一张手牌,然后令其选择一项:1. 将手牌中与此牌花色相同的牌(至少一张)交给你;2. 弃置手牌中与此牌花色不同的牌(至少一张);3. 进入混乱状态直到下一回合结束',
|
2017-08-05 02:13:01 +00:00
|
|
|
|
gw_wuyao:'雾妖',
|
|
|
|
|
gw_wuyao_info:'在你行动时可当作杀使用;回合结束后,从手牌中消失',
|
2019-06-07 03:46:13 +00:00
|
|
|
|
gw_lang:'狼',
|
|
|
|
|
gw_lang_info:'在你行动时可当作酒使用;回合结束后,从手牌中消失',
|
2017-08-05 02:13:01 +00:00
|
|
|
|
gwyewu:'叶舞',
|
2019-06-07 03:46:13 +00:00
|
|
|
|
gwyewu_info:'出牌阶段限一次,你可以弃置一张手牌,并弃置一名随机敌人的一张随机牌;若目标弃置的牌与你弃置的牌颜色相同,则重复发动;每以此法弃置一张敌方角色的手牌,你获得一张【雾妖】;每以此法弃置一张敌方角色的手牌,你获得一张【狼】',
|
2017-08-03 23:34:11 +00:00
|
|
|
|
shuangxi:'霜袭',
|
2017-08-04 05:32:46 +00:00
|
|
|
|
shuangxi_info:'每两轮限一次,出牌阶段,你可以视为使用一张【刺骨寒霜】;若你在本回合造成过伤害,改为使用【白霜】',
|
2017-08-03 16:51:09 +00:00
|
|
|
|
gwfengshi:'风蚀',
|
|
|
|
|
gwfengshi_info:'结束阶段,你可以选择一项:1. 为自己施加一个随机负面效果,并对两名随机敌人施加一个随机负面效果;2. 为自己施加两个随机正面效果,并对一名随机敌人施加一个随机正面效果',
|
|
|
|
|
yangfan:'扬帆',
|
2017-08-04 15:08:57 +00:00
|
|
|
|
yangfan_info:'锁定技,每当你使用一张非装备牌,你随机重铸一张与其花色相同的手牌;若没有花色相同的手牌,改为随机重铸一张与其颜色相同的手牌',
|
2017-07-28 09:19:16 +00:00
|
|
|
|
gwchenshui:'沉睡',
|
2017-07-29 03:25:40 +00:00
|
|
|
|
gwchenshui_bg:'睡',
|
2017-07-28 09:19:16 +00:00
|
|
|
|
gwchenshui_info:'锁定技,你防止即将造成或受到的伤害,改为令伤害来随机源获得对方一张牌;结束阶段,若你自上次沉睡起累计发动了至少3次沉睡效果,你解除沉睡状态,对所有敌方角色造成一点伤害,然后切换至觉醒状态',
|
|
|
|
|
gwliedi:'裂地',
|
2017-08-01 07:56:57 +00:00
|
|
|
|
gwliedi_info:'锁定技,你造成的伤害+X,X为你到该角色距离的一半,向下取整;结束阶段,若你连续两轮未造成伤害,你切换至沉睡状态',
|
2017-07-28 09:19:16 +00:00
|
|
|
|
julian:'巨敛',
|
|
|
|
|
julian_info:'出牌阶段开始时,你可以摸若干张牌直到你的手牌数为全场最多或之一',
|
2017-07-28 08:21:24 +00:00
|
|
|
|
gwfusheng:'复生',
|
2017-08-27 16:16:57 +00:00
|
|
|
|
gwfusheng_info:'当一名未翻面的角色进入濒死状态时,你可以令其翻面并回复一点体力,然后你与其各摸一张牌',
|
2017-07-23 07:32:56 +00:00
|
|
|
|
gwqinwu:'琴舞',
|
|
|
|
|
gwqinwu2:'琴舞',
|
2019-06-07 03:46:13 +00:00
|
|
|
|
gwqinwu_info:'出牌阶段限一次,每当你使用一张基本牌,你可以令一名角色摸一张牌并获得技能【琴舞】直到其下一回合结束',
|
2017-07-23 04:25:13 +00:00
|
|
|
|
huanshu:'幻术',
|
2017-07-23 05:10:52 +00:00
|
|
|
|
huanshu2:'幻术',
|
|
|
|
|
huanshu3:'幻术',
|
|
|
|
|
huanshu_info:'结束阶段,你可以将一张手牌背面朝上置于你的武将牌上;当一名敌方角色使用一张与之颜色相同的锦囊牌时,你展示并移去此牌,取消锦囊的效果,然后摸两张牌;准备阶段,你移去武将牌上的“幻术”牌',
|
2017-07-23 03:19:32 +00:00
|
|
|
|
gwjieyin:'结印',
|
|
|
|
|
gwjieyin_info:'出牌阶段,你可以视为使用瘟疫、燕子药水或昆恩法印(不能重复使用同一法术),技能两轮重置一次',
|
2017-07-21 13:20:45 +00:00
|
|
|
|
zhengjun:'整军',
|
2017-08-03 03:08:25 +00:00
|
|
|
|
zhengjun_info:'锁定技,每当你使用或打出一张卡牌,若这是你在本局游戏中使用或打出的第二张与之同名的牌,你增加一点体力和体力上限;结束阶段,你可以观看牌堆顶的X张牌并获得其中一张,X为你以此法增加的体力上限数',
|
2017-07-21 13:20:45 +00:00
|
|
|
|
gwxuezhan:'血战',
|
|
|
|
|
gwxuezhan_info:'准备阶段,若你的手牌数为全场最少或之一,你可以获得一张十字召唤',
|
2017-07-21 12:03:04 +00:00
|
|
|
|
jielue:'劫掠',
|
2018-02-09 09:49:41 +00:00
|
|
|
|
jielue_info:'锁定技,出牌阶段开始时,你从两个随机队友处各获得一张可使用的牌并依次使用之,然后被拿牌的队友摸一张牌',
|
|
|
|
|
jielue_old_info:'当你于回合内首次使用基本牌时,你可以获得两张该牌的复制(使用复制的牌时不触发此技能)',
|
2017-07-16 15:34:51 +00:00
|
|
|
|
gwfengchi:'风驰',
|
2017-07-17 02:45:11 +00:00
|
|
|
|
gwfengchi_info:'锁定技,出牌阶段开始时,你随机观看3个可以在出牌阶段使用的技能,并获得其中一个技能直到此阶段结束',
|
2017-07-16 01:24:13 +00:00
|
|
|
|
gwjushi:'巨噬',
|
2017-07-17 02:45:11 +00:00
|
|
|
|
gwjushi2:'巨噬',
|
|
|
|
|
gwjushi_info:'出牌阶段限一次,你可以将一名距离1以内的其他角色的一张随机牌置于你的武将牌上;当你受到伤害后,令“巨噬”牌回到原来的位置;准备阶段,你获得武将牌上的“巨噬”牌',
|
2017-06-03 11:45:39 +00:00
|
|
|
|
bolang:'搏浪',
|
2017-07-17 03:38:07 +00:00
|
|
|
|
bolang_info:'准备阶段,你可以观看牌堆顶的6张牌,然后将其中至多3张移入弃牌堆;每当你造成一次伤害,你可以从弃牌堆中获得一张以此法移入弃牌堆的牌(每回合限发动一次)',
|
2017-05-18 22:15:32 +00:00
|
|
|
|
lingji:'灵计',
|
2017-09-14 17:14:07 +00:00
|
|
|
|
lingji_info:'出牌阶段限一次,你可以摸两张牌并弃置两张牌,若弃置的牌花色相同,你获得一张随机铜卡并展示;若弃置的牌点数相同,你获得一张随机银卡并展示',
|
2017-05-18 09:40:25 +00:00
|
|
|
|
gwjinyan:'金焰',
|
2017-08-03 04:15:31 +00:00
|
|
|
|
gwjinyan_info:'锁定技,准备阶段,若游戏轮数为3的倍数,你获得一张随机金卡;当游戏轮数不是3的倍数时,你防止所有伤害',
|
2017-05-17 07:11:21 +00:00
|
|
|
|
gwshenyu:'神愈',
|
2017-08-24 15:50:36 +00:00
|
|
|
|
gwshenyu_info:'准备阶段,你可以令一名角色选择一项:回复一点体力,或从弃牌堆中获得一张非金法术牌(直到洗牌入牌堆前该牌不能再以此法获得)',
|
2017-05-17 06:45:21 +00:00
|
|
|
|
junchi:'骏驰',
|
2019-06-07 03:46:13 +00:00
|
|
|
|
junchi_info:'每当一名其他角色使用一张杀,若目标不是你,你可以对杀的目标使用一张牌,并摸一张牌,每回合限一次',
|
2017-05-17 06:45:21 +00:00
|
|
|
|
junchi_old_info:'当一名其他角色使用杀对一个目标结算后,该角色可以交给你一张牌,然后你可以对杀的目标使用一张牌,若如此做,你回复一点体力,杀的使用者摸一张牌',
|
2017-05-16 16:52:28 +00:00
|
|
|
|
gw_dudayuanshuai1:'杜达元帅',
|
|
|
|
|
gw_dudayuanshuai1_info:'当你成为其他角色使用牌的目标时,你可以使用此牌取消之,然后获得对你使用的牌',
|
|
|
|
|
gw_dudayuanshuai2:'杜达元帅',
|
|
|
|
|
gw_dudayuanshuai2_info:'你不能使用、打出或弃置此牌;结束阶段,若此牌在你手牌中,你弃置之并随机弃置一张手牌',
|
|
|
|
|
hupeng:'呼朋',
|
|
|
|
|
hupeng_info:'出牌阶段限一次,你可以弃置一张牌并将一张杜达元帅置入一名角色的手牌',
|
2017-05-13 08:56:28 +00:00
|
|
|
|
shuijian:'水箭',
|
|
|
|
|
shuijian_info:'准备阶段,你可以弃置一张手牌视为对所有敌方角色使用一张万箭齐发',
|
2017-05-13 08:07:06 +00:00
|
|
|
|
yunhuo:'陨火',
|
|
|
|
|
yunhuo_info:'锁定技,准备阶段,若游戏轮数为4的倍数,你令所有敌方角色随机弃置一张手牌(若没有手牌改为受到一点火焰伤害),然后在此回合结束后获得一个额外回合',
|
|
|
|
|
yinzhang:'银杖',
|
2019-06-07 03:46:13 +00:00
|
|
|
|
yinzhang_info:'出牌阶段限一次,你可以弃置一张牌,然后发现一张银卡法术',
|
2017-11-05 15:22:35 +00:00
|
|
|
|
gwtianbian:'天变',
|
|
|
|
|
gwtianbian_info:'出牌阶段开始时,你可以选择一项:随机使用一张对全场有正面效果的牌;或随机使用一张对全场有负面效果的牌',
|
2017-04-15 00:25:50 +00:00
|
|
|
|
gwxiaoshou:'枭首',
|
|
|
|
|
gwxiaoshou_info:'出牌阶段限两次,你可以弃置一张牌对场上体力值最高(或之一)的一名角色造成一点伤害',
|
|
|
|
|
gwjiquan:'集权',
|
|
|
|
|
gwjiquan_info:'出牌阶段限一次,你可以从任意名角色处各获得一张牌,每拿一张牌,被拿牌的角色视为对你使用一张杀',
|
|
|
|
|
nuhou:'怒吼',
|
2017-07-21 12:03:04 +00:00
|
|
|
|
nuhou_info:'每当你受到一次伤害,你可以弃置一张牌,然后对一名随机敌人造成一点伤害并随机弃置其一张牌',
|
2017-04-15 00:25:50 +00:00
|
|
|
|
shewu:'蛇舞',
|
|
|
|
|
shewu_info:'出牌阶段限一次,你可以弃置1至3张牌然后摸3张牌;若你弃置了至少2张牌,你本回合使用卡牌无视距离;若你弃置了3张牌,你回复一点体力',
|
|
|
|
|
gwzhanjiang:'斩将',
|
2019-06-07 03:46:13 +00:00
|
|
|
|
gwzhanjiang_info:'每轮限一次,在一名角色的准备阶段,你可以弃置一张牌,然后所有角色可以对该角色使用一张杀,出杀的角色在响应时摸一张牌,当有至少两名角色响应后终止结算',
|
2017-04-15 00:25:50 +00:00
|
|
|
|
gwchuanxin:'穿心',
|
2017-07-16 15:00:03 +00:00
|
|
|
|
gwchuanxin_info:'你的攻击范围基数为你当前体力值;每当你对一名角色使用杀结算完毕后,你可以亮出牌堆顶的一张牌,若为黑色,视为对目标再使用一张杀',
|
2017-04-15 00:25:50 +00:00
|
|
|
|
fengjian:'风剑',
|
|
|
|
|
fengjian_info:'每当你使用一张锦囊牌,你可以视为对一名不是此牌目标的角色使用一张雷杀,若如此做,你获得潜行直到下一回合开始',
|
|
|
|
|
huandie:'幻蝶',
|
|
|
|
|
huandie_info:'准备阶段,你可以摸一张牌,并令任意名其他角色摸两张牌,若如此做,此回合结束时,所有手牌数大于体力值的角色需弃置两张手牌',
|
|
|
|
|
xuezhou:'血咒',
|
2017-07-23 07:32:56 +00:00
|
|
|
|
xuezhou_info:'准备阶段,你可以选择一项效果直到下一回合开始:1. 每当一名其他角色在一个回合中首次受到伤害,该角色失去一点体力,你回复一点体力;2. 每当一名其他角色在一个回合中首次造成伤害,该角色失去一点体力,你(若不是受伤害角色)回复一点体力',
|
2017-04-15 00:25:50 +00:00
|
|
|
|
fayin:'法印',
|
|
|
|
|
fayin_info:'每当你使用一张杀,你可以弃置一张牌并获得一个随机法印效果:1. 目标随机弃置两张牌;2. 目标进入混乱状态直到下一回合开始;3. 对目标造成一点火属性伤害;4. 获得一点护甲;5. 令目标翻面并摸一张牌',
|
|
|
|
|
gwbaquan:'霸权',
|
2023-09-12 17:28:01 +00:00
|
|
|
|
gwbaquan_info:'出牌阶段限一次,你可以获得一名其他角色的所有牌,然后还给其等量的牌,若你归还的牌均为你得到的牌且该角色体力值不小于你,你对其造成一点伤害',
|
2017-04-15 00:25:50 +00:00
|
|
|
|
hunmo:'魂墨',
|
2019-06-07 03:46:13 +00:00
|
|
|
|
hunmo_info:'出牌阶段,若你手牌数少于2,你可以选择一名手牌数小于2的其他角色,观看牌堆顶的两张牌,你获得一张并交给其另一张;若你手牌数不少2,你可以选择一名手牌数不少于2的其他角色,你弃置一张手牌,然后观看并弃置其一张手牌。每回合对同一名角色最多发动一次',
|
2017-04-15 00:25:50 +00:00
|
|
|
|
huihun:'回魂',
|
|
|
|
|
huihun_info:'结束阶段,你可以从弃牌堆中获得本回合使用的前两张红色牌',
|
2017-06-02 02:58:40 +00:00
|
|
|
|
lanquan:'远略',
|
2017-06-03 13:29:09 +00:00
|
|
|
|
lanquan_backup:'远略',
|
2017-05-13 08:07:06 +00:00
|
|
|
|
lanquan_info:'出牌阶段限一次,你可以观看牌堆顶的6张牌,并选择一张使用',
|
2017-05-11 09:37:48 +00:00
|
|
|
|
|
|
|
|
|
chaoyong:'潮涌',
|
|
|
|
|
chaoyong_info:'准备阶段,你可以弃置一张牌,视为对所有敌方角色使用一张南蛮入侵或万箭齐发',
|
2017-04-15 00:25:50 +00:00
|
|
|
|
}
|
|
|
|
|
};
|
2017-04-14 23:35:56 +00:00
|
|
|
|
});
|