noname/character/gwent.js

4705 lines
133 KiB
JavaScript
Raw Normal View History

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;
2023-10-26 10:44:24 +00:00
player.chooseTarget('是否改为对一名角色造成1点火属性伤害').set('ai',function(target){
2019-06-07 03:46:13 +00:00
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)&&current.hp<=3&&get.effect(current,{name:'gw_aozuzhilei'},player,player)>0;
});
var aozu2=game.hasPlayer(function(current){
return player.canUse('gw_aozuzhilei',current)&&current.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].includes(current.countCards('h'))&&!current.hasSkillTag('noh');
2018-01-11 15:07:44 +00:00
});
var baoxue2=game.hasPlayer(function(current){
return player.canUse('gw_baoxueyaoshui',current)&&get.attitude(player,current)<0&&[2].includes(current.countCards('h'))&&!current.hasSkillTag('noh');
2018-01-11 15:07:44 +00:00
});
var baoxue3=game.hasPlayer(function(current){
return player.canUse('gw_baoxueyaoshui',current)&&get.attitude(player,current)<0&&current.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&&current.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&&current.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.includes(button.link.name)) return 0;
2018-08-06 17:01:36 +00:00
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'].includes(get.type(hs[i]))&&!get.info(hs[i]).multitarget){
2018-01-10 10:21:50 +00:00
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){
if(['shunshou','huogong','shandianjian','jiu','tianxianjiu'].includes(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'].includes(get.type(card))) return false;
2018-01-10 10:21:50 +00:00
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&&current!=player&&current.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.includes(result.targets[0])){
2017-09-15 07:45:38 +00:00
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&&current.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: 'changeHujiaAfter'},
filter: (event) => event.num < 0,
2018-04-17 07:32:43 +00:00
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')&&current<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&&current.countCards('h');
});
},
content:function(){
'step 0'
player.chooseTarget('覆天:弃置一名角色的一张手牌',function(card,player,target){
return target!=player&&target.countCards('h');
2023-10-05 05:47:48 +00:00
},true).set('ai',function(target){
2017-08-27 04:44:18 +00:00
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.includes(current)&&current.countCards('he');
2017-08-05 02:13:01 +00:00
});
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.includes('phaseUse')){
2017-07-23 07:32:56 +00:00
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().includes(event.player)&&
2017-07-23 05:10:52 +00:00
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.includes(button.link[2])){
2017-07-23 03:19:32 +00:00
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&&current.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.includes(trigger.card.name)){
if(!player.storage.zhengjun.includes(trigger.card.name)){
2017-07-21 13:20:45 +00:00
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]);
}
2023-10-26 10:44:24 +00:00
player.chooseCardButton('搏浪:将至多三张牌移至弃牌堆',[1,3],cards.slice(0,6)).ai=function(button){
2017-07-17 02:45:11 +00:00
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.includes('bolang')){
2017-07-17 02:45:11 +00:00
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.includes('bolang')){
2017-07-17 02:45:11 +00:00
return true;
}
}
},
content:function(){
'step 0'
var list=[];
for(var i=0;i<player.storage.bolang.length;i++){
if(player.storage.bolang[i].vanishtag.includes('bolang')){
2017-07-17 02:45:11 +00:00
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.includes('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];
if(card.vanishtag.includes('_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];
if(card.vanishtag.includes('_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',[
2023-10-26 10:44:24 +00:00
'回复1点体力','从弃牌堆中获得一张非金法术'
2017-05-17 08:53:56 +00:00
]);
}
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'
2023-10-26 10:44:24 +00:00
player.chooseTarget(get.prompt('魂墨造成1点伤害')).ai=function(target){
2018-02-27 06:23:23 +00:00
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.includes(i)&&
2017-04-15 00:25:50 +00:00
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&&current.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.includes(get.suit(event.card))){
2017-04-15 00:25:50 +00:00
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.includes(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.includes(target);
2017-04-15 00:25:50 +00:00
}).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){
2023-10-26 10:44:24 +00:00
return '每当一名角色('+name+'除外受到一次伤害该角色失去1点体力'+name+'回复1点体力';
2017-04-15 00:25:50 +00:00
}
else if(storage==2){
2023-10-26 10:44:24 +00:00
return '每当一名角色('+name+'除外造成一次伤害该角色失去1点体力'+name+'若不是受伤害角色回复1点体力';
2017-04-15 00:25:50 +00:00
}
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=[
2023-10-26 10:44:24 +00:00
'每当一名其他角色在一个回合中首次受到伤害该角色失去1点体力你回复1点体力',
'每当一名其他角色在一个回合中首次造成伤害该角色失去1点体力若不是受伤害角色回复1点体力'
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.includes(card)?1:0;
2017-04-15 00:25:50 +00:00
}
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.includes(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)&&current!=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'
2023-10-26 10:44:24 +00:00
player.chooseToDiscard('he',[1,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);
2023-10-26 10:44:24 +00:00
var str2='1点体力和体力上限'
2018-01-10 15:30:39 +00:00
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'
2023-10-26 10:44:24 +00:00
target.chooseToUse({name:'sha'},'使用一张杀或失去1点体力');
2018-01-10 15:30:39 +00:00
'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.includes(event.cards[i])){
2018-01-10 15:30:39 +00:00
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:'龙怒',
2023-12-05 12:21:05 +00:00
sqlongnu_info:'准备阶段你可以发现一张牌堆中的牌若你手牌中有同名牌你可以改为造成1点火属性伤害锁定技。准备阶段开始时你随机切换至一种形态。',
2019-06-07 03:46:13 +00:00
sqlonghuo:'龙火',
2023-12-05 12:21:05 +00:00
sqlonghuo_info:'出牌阶段限一次,你可以弃置所有手牌并摸等量的牌,若敌方角色手牌中与你弃置的牌同名的牌,则随机弃置其中一张。准备阶段开始时,你随机切换至一种形态。',
2019-06-07 03:46:13 +00:00
sqlongwu:'龙舞',
2023-12-05 12:21:05 +00:00
sqlongwu_info:'结束阶段你可以摸X张牌然后可以使用一张牌X为手牌中同名牌数最多的牌的数量。准备阶段开始时你随机切换至一种形态。',
2018-02-03 08:23:31 +00:00
kuanglie:'狂猎',
2023-12-05 12:21:05 +00:00
kuanglie_info:'锁定技,每当你使用黑色牌指定其他角色为目标后,目标随机弃置一张牌;每当你以此法累计弃置两张牌后,你摸一张牌。',
// kuanglie_info:'锁定技,每当一名敌方角色成为你的黑色牌的目标,你视为对其使用【刺骨寒霜】;在一名角色受到【刺骨寒霜】的影响后,你随机获得一张【狂猎】牌。',
2018-02-03 08:23:31 +00:00
lingshuang:'凛霜',
2023-12-05 12:21:05 +00:00
lingshuang_info:'每当你失去最后一张基本牌你可以视为对距离2以内的所有敌方角色使用【刺骨寒霜】在一名角色受到【刺骨寒霜】影响时你可以弃置一张手牌将其效果改为“摸牌数-2”。',
2018-02-03 08:23:31 +00:00
gwshuangwu:'霜舞',
2023-12-05 12:21:05 +00:00
gwshuangwu_info:'锁定技,每当你造成一次伤害,你视为对目标使用刺骨寒霜;你对处于刺骨寒霜的角色造成的伤害+1。',
2018-01-11 15:07:44 +00:00
gwhuanshuang:'幻霜',
2023-12-05 12:21:05 +00:00
gwhuanshuang_info:'准备或结束阶段,你可以发现一张铜卡法术并使用之,此牌结算两次。',
2018-01-11 12:51:54 +00:00
gwjinli:'金醴',
gwjinli_jiu:'先祖麦酒',
2023-12-05 12:21:05 +00:00
gwjinli_info:'出牌阶段限一次,你可以弃置一张手牌,并将一张先祖麦酒置于一名角色的武将牌上。',
2018-01-11 12:51:54 +00:00
gw_xianzumaijiu:'先祖麦酒',
2023-12-05 12:21:05 +00:00
gw_xianzumaijiu_info:'出牌阶段对自己使用你使用下一张杀造成伤害后令所有友方角色摸一张牌濒死阶段对自己使用回复1点体力。',
2018-01-11 12:51:54 +00:00
gwliaotian:'燎天',
2023-12-05 12:21:05 +00:00
gwliaotian_info:'出牌阶段限2次若你有至少两张手牌且颜色均相同你可以重铸你的全部手牌并视为对一名随机敌方角色使用一张不计入出杀次数的杀。',
2018-01-10 15:30:39 +00:00
gwmaoxian_yioufeisi:'伊欧菲斯',
2023-12-05 12:21:05 +00:00
gwmaoxian_yioufeisi_info:'选择两名角色,令目标依次视为对对方使用一张杀,然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_luoqi:'罗契',
2023-12-05 12:21:05 +00:00
gwmaoxian_luoqi_info:'选择一名角色视为对其使用一张不计入出杀次数的杀,然后所有其他角色可以对目标使用一张杀,然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_jieluote:'杰洛特',
2023-12-05 12:21:05 +00:00
gwmaoxian_jieluote_info:'对一名角色造成1点伤害若目标体力值大于2且为全场最多改为造成2点伤害然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_yenaifa:'叶奈法',
2023-12-05 12:21:05 +00:00
gwmaoxian_yenaifa_info:'对至多3名随机敌方角色施加一个随机负面效果然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_telisi:'特丽斯',
2023-12-05 12:21:05 +00:00
gwmaoxian_telisi_info:'对至多3名随机友方角色施加一个随机正面效果然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_hengsaite:'亨赛特',
2023-12-05 12:21:05 +00:00
gwmaoxian_hengsaite_info:'视为使用一张万箭齐发,每当有一名角色因此受到伤害,你获得一张杀,然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_fuertaisite:'弗尔泰斯特',
2023-12-05 12:21:05 +00:00
gwmaoxian_fuertaisite_info:'令至多两名角色各获得1点护甲然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_laduoweide:'拉多维德',
2023-12-05 12:21:05 +00:00
gwmaoxian_laduoweide_info:'令一名角色的非锁定技失效直到其下一回合结束并对其造成1点伤害然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_enxier:'恩希尔',
2023-12-05 12:21:05 +00:00
gwmaoxian_enxier_info:'与一名手牌并不超过1的其他角色交换手牌然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_fulisi:'符里斯',
2023-12-05 12:21:05 +00:00
gwmaoxian_fulisi_info:'选择至多三名角色观看目标的手牌并可以弃置其中1~2张然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_kaerweite:'卡尔维特',
2023-12-05 12:21:05 +00:00
gwmaoxian_kaerweite_info:'获得至多两名角色各一张手牌,然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_bulanwang:'布兰王',
2023-12-05 12:21:05 +00:00
gwmaoxian_bulanwang_info:'弃置至多两张牌并摸数量等于弃牌数2倍的牌跳过弃牌阶段然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_kuite:'奎特',
2023-12-05 12:21:05 +00:00
gwmaoxian_kuite_info:'视为对一名手牌数不小于你的角色连续使用2张决斗然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_haluo:'哈洛',
2023-12-05 12:21:05 +00:00
gwmaoxian_haluo_info:'对所有体力值全场最少的角色造成1点伤害然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_dagong:'达贡',
2023-12-05 12:21:05 +00:00
gwmaoxian_dagong_info:'视为同时使用刺骨寒霜、蔽日浓雾和倾盆大雨,然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_gaier:'盖尔',
2023-12-05 12:21:05 +00:00
gwmaoxian_gaier_info:'令一名角色增加或减少1点体力和体力上限然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_airuiting:'艾瑞汀',
2023-12-05 12:21:05 +00:00
gwmaoxian_airuiting_info:'令所有其他角色选择一项使用一张杀或失去1点体力然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_aisinie:'埃丝涅',
2023-12-05 12:21:05 +00:00
gwmaoxian_aisinie_info:'回复1点体力并获得任意一张银卡法术然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_falanxisika:'法兰茜斯卡',
2023-12-05 12:21:05 +00:00
gwmaoxian_falanxisika_info:'随机观看3张金卡法术并使用其中一张然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian_huoge:'霍格',
2023-12-05 12:21:05 +00:00
gwmaoxian_huoge_info:'观看牌堆顶的六张牌,使用至多两张,然后弃掉其余的牌,然后结束出牌阶段。',
2018-01-10 15:30:39 +00:00
gwmaoxian:'冒险',
gwhuanbi:'幻笔',
2023-12-05 12:21:05 +00:00
gwhuanbi_info:'出牌阶段限一次,你可以弃置一张牌,并创造一张冒险牌,然后随机选择一名有手牌的角色,被选中的角色可以交给你一张手牌并获得一张该牌的复制。',
2018-01-10 10:21:50 +00:00
gwminxiang:'冥想',
2023-12-05 12:21:05 +00:00
gwminxiang_old_info:'结束阶段,你可以选择一张本回合使用过的基本牌或普通锦囊牌并选择两名其他角色,令目标分别视为对对方使用一张此牌的复制。',
gwminxiang_info:'出牌阶段限一次,你可以弃置一张基本牌或普通锦囊牌并摸一张牌,然后选择其他两名角色,令目标分别视为对对方使用一张你弃置的牌的同名牌。',
2018-01-10 10:21:50 +00:00
gwlangshi:'狼噬',
2023-12-05 12:21:05 +00:00
gwlangshi_info:'每当你造成一次伤害你可以对一名体力值不小于受伤害角色的其他角色造1点伤害。',
2018-02-27 06:23:23 +00:00
gwjingshi:'血契',
2023-12-05 12:21:05 +00:00
gwjingshi_info:'出牌阶段限一次,你可以猜测手牌中黑色牌最多的角色是谁,若猜对,你可以观看所有其他角色的手牌并获得任意一张。',
2017-09-14 17:14:07 +00:00
gwjingtian:'经天',
2023-12-05 12:21:05 +00:00
gwjingtian_info:'锁定技牌堆顶的九张牌对你始终可见你始终跳过摸牌阶段改为获得3枚“经天”标记每名角色的回合限一次你可以在任意时间点移去一枚“经天”标记然后获得牌堆顶的一张牌。',
2017-09-14 15:19:44 +00:00
gwweitu:'卫土',
2023-12-05 12:21:05 +00:00
gwweitu_info:'锁定技每当你弃置牌若你的护甲数小于3你获得1点护甲每当你的护甲为你累计抵消3次伤害你获得一张随机银卡法术。',
2017-08-10 15:24:38 +00:00
gwzhongmo:'终末',
2023-12-05 12:21:05 +00:00
gwzhongmo_info:'锁定技,你跳过摸牌阶段,改为获得两张随机的稀有度不同的法术牌。',
2017-08-10 15:24:38 +00:00
gwfutian:'覆天',
2023-12-05 12:21:05 +00:00
gwfutian_info:'锁定技你防止一切伤害准备阶段你须弃置一名其他角色的一张手牌若你以此法累计弃置弃置的总点数达到了24你变身为汉姆多尔。',
2017-08-27 06:00:44 +00:00
gwgouhun:'勾魂',
2023-12-05 12:21:05 +00:00
gwgouhun_info:'出牌阶段限一次你可以交给一名有手牌的其他角色一张手牌然后令其选择一项1. 将手牌中与此牌花色相同的牌至少一张交给你2. 弃置手牌中与此牌花色不同的牌至少一张3. 进入混乱状态直到下一回合结束。',
2017-08-05 02:13:01 +00:00
gw_wuyao:'雾妖',
2023-12-05 12:21:05 +00:00
gw_wuyao_info:'在你行动时可当作杀使用;回合结束后,从手牌中消失。',
2019-06-07 03:46:13 +00:00
gw_lang:'狼',
2023-12-05 12:21:05 +00:00
gw_lang_info:'在你行动时可当作酒使用;回合结束后,从手牌中消失。',
2017-08-05 02:13:01 +00:00
gwyewu:'叶舞',
2023-12-05 12:21:05 +00:00
gwyewu_info:'出牌阶段限一次,你可以弃置一张手牌,并弃置一名随机敌人的一张随机牌;若目标弃置的牌与你弃置的牌颜色相同,则重复发动;每以此法弃置一张敌方角色的手牌,你获得一张【雾妖】;每以此法弃置一张敌方角色的手牌,你获得一张【狼】。',
2017-08-03 23:34:11 +00:00
shuangxi:'霜袭',
2023-12-05 12:21:05 +00:00
shuangxi_info:'每两轮限一次,出牌阶段,你可以视为使用一张【刺骨寒霜】;若你在本回合造成过伤害,改为使用【白霜】。',
2017-08-03 16:51:09 +00:00
gwfengshi:'风蚀',
2023-12-05 12:21:05 +00:00
gwfengshi_info:'结束阶段你可以选择一项1. 为自己施加一个随机负面效果并对两名随机敌人施加一个随机负面效果2. 为自己施加两个随机正面效果,并对一名随机敌人施加一个随机正面效果。',
2017-08-03 16:51:09 +00:00
yangfan:'扬帆',
2023-12-05 12:21:05 +00:00
yangfan_info:'锁定技,每当你使用一张非装备牌,你随机重铸一张与其花色相同的手牌;若没有花色相同的手牌,改为随机重铸一张与其颜色相同的手牌。',
2017-07-28 09:19:16 +00:00
gwchenshui:'沉睡',
2017-07-29 03:25:40 +00:00
gwchenshui_bg:'睡',
2023-12-05 12:21:05 +00:00
gwchenshui_info:'锁定技你防止即将造成或受到的伤害改为令伤害来随机源获得对方一张牌结束阶段若你自上次沉睡起累计发动了至少3次沉睡效果你解除沉睡状态对所有敌方角色造成1点伤害然后切换至觉醒状态。',
2017-07-28 09:19:16 +00:00
gwliedi:'裂地',
2023-12-05 12:21:05 +00:00
gwliedi_info:'锁定技,你造成的伤害+XX为你到该角色距离的一半向下取整结束阶段若你连续两轮未造成伤害你切换至沉睡状态。',
2017-07-28 09:19:16 +00:00
julian:'巨敛',
2023-12-05 12:21:05 +00:00
julian_info:'出牌阶段开始时,你可以摸若干张牌直到你的手牌数为全场最多或之一。',
2017-07-28 08:21:24 +00:00
gwfusheng:'复生',
2023-12-05 12:21:05 +00:00
gwfusheng_info:'当一名未翻面的角色进入濒死状态时你可以令其翻面并回复1点体力然后你与其各摸一张牌。',
2017-07-23 07:32:56 +00:00
gwqinwu:'琴舞',
gwqinwu2:'琴舞',
2023-12-05 12:21:05 +00:00
gwqinwu_info:'出牌阶段限一次,每当你使用一张基本牌,你可以令一名角色摸一张牌并获得技能〖琴舞〗直到其下一回合结束。',
2017-07-23 04:25:13 +00:00
huanshu:'幻术',
2017-07-23 05:10:52 +00:00
huanshu2:'幻术',
huanshu3:'幻术',
2023-12-05 12:21:05 +00:00
huanshu_info:'结束阶段,你可以将一张手牌背面朝上置于你的武将牌上;当一名敌方角色使用一张与之颜色相同的锦囊牌时,你展示并移去此牌,取消锦囊的效果,然后摸两张牌;准备阶段,你移去武将牌上的“幻术”牌。',
2017-07-23 03:19:32 +00:00
gwjieyin:'结印',
2023-12-05 12:21:05 +00:00
gwjieyin_info:'出牌阶段,你可以视为使用瘟疫、燕子药水或昆恩法印(不能重复使用同一法术),技能两轮重置一次。',
2017-07-21 13:20:45 +00:00
zhengjun:'整军',
2023-12-05 12:21:05 +00:00
zhengjun_info:'锁定技每当你使用或打出一张卡牌若这是你在本局游戏中使用或打出的第二张与之同名的牌你增加1点体力和体力上限结束阶段你可以观看牌堆顶的X张牌并获得其中一张X为你以此法增加的体力上限数。',
2017-07-21 13:20:45 +00:00
gwxuezhan:'血战',
2023-12-05 12:21:05 +00:00
gwxuezhan_info:'准备阶段,若你的手牌数为全场最少或之一,你可以获得一张十字召唤。',
2017-07-21 12:03:04 +00:00
jielue:'劫掠',
2023-12-05 12:21:05 +00:00
jielue_info:'锁定技,出牌阶段开始时,你从两个随机队友处各获得一张可使用的牌并依次使用之,然后被拿牌的队友摸一张牌。',
jielue_old_info:'当你于回合内首次使用基本牌时,你可以获得两张该牌的复制(使用复制的牌时不触发此技能)。',
2017-07-16 15:34:51 +00:00
gwfengchi:'风驰',
2023-12-05 12:21:05 +00:00
gwfengchi_info:'锁定技出牌阶段开始时你随机观看3个可以在出牌阶段使用的技能并获得其中一个技能直到此阶段结束。',
2017-07-16 01:24:13 +00:00
gwjushi:'巨噬',
2017-07-17 02:45:11 +00:00
gwjushi2:'巨噬',
2023-12-05 12:21:05 +00:00
gwjushi_info:'出牌阶段限一次你可以将一名距离1以内的其他角色的一张随机牌置于你的武将牌上当你受到伤害后令“巨噬”牌回到原来的位置准备阶段你获得武将牌上的“巨噬”牌。',
2017-06-03 11:45:39 +00:00
bolang:'搏浪',
2023-12-05 12:21:05 +00:00
bolang_info:'准备阶段你可以观看牌堆顶的六张牌然后将其中至多3张移入弃牌堆每当你造成一次伤害你可以从弃牌堆中获得一张以此法移入弃牌堆的牌每回合限发动一次。',
2017-05-18 22:15:32 +00:00
lingji:'灵计',
2023-12-05 12:21:05 +00:00
lingji_info:'出牌阶段限一次,你可以摸两张牌并弃置两张牌,若弃置的牌花色相同,你获得一张随机铜卡并展示;若弃置的牌点数相同,你获得一张随机银卡并展示。',
2017-05-18 09:40:25 +00:00
gwjinyan:'金焰',
2023-12-05 12:21:05 +00:00
gwjinyan_info:'锁定技准备阶段若游戏轮数为3的倍数你获得一张随机金卡当游戏轮数不是3的倍数时你防止所有伤害。',
2017-05-17 07:11:21 +00:00
gwshenyu:'神愈',
2023-12-05 12:21:05 +00:00
gwshenyu_info:'准备阶段你可以令一名角色选择一项回复1点体力或从弃牌堆中获得一张非金法术牌直到洗牌入牌堆前该牌不能再以此法获得。',
2017-05-17 06:45:21 +00:00
junchi:'骏驰',
2023-12-05 12:21:05 +00:00
junchi_info:'每当一名其他角色使用一张杀,若目标不是你,你可以对杀的目标使用一张牌,并摸一张牌,每回合限一次。',
junchi_old_info:'当一名其他角色使用杀对一个目标结算后该角色可以交给你一张牌然后你可以对杀的目标使用一张牌若如此做你回复1点体力杀的使用者摸一张牌。',
2017-05-16 16:52:28 +00:00
gw_dudayuanshuai1:'杜达元帅',
2023-12-05 12:21:05 +00:00
gw_dudayuanshuai1_info:'当你成为其他角色使用牌的目标时,你可以使用此牌取消之,然后获得对你使用的牌。',
2017-05-16 16:52:28 +00:00
gw_dudayuanshuai2:'杜达元帅',
2023-12-05 12:21:05 +00:00
gw_dudayuanshuai2_info:'你不能使用、打出或弃置此牌;结束阶段,若此牌在你手牌中,你弃置之并随机弃置一张手牌。',
2017-05-16 16:52:28 +00:00
hupeng:'呼朋',
2023-12-05 12:21:05 +00:00
hupeng_info:'出牌阶段限一次,你可以弃置一张牌并将一张杜达元帅置入一名角色的手牌。',
2017-05-13 08:56:28 +00:00
shuijian:'水箭',
2023-12-05 12:21:05 +00:00
shuijian_info:'准备阶段,你可以弃置一张手牌视为对所有敌方角色使用一张万箭齐发。',
2017-05-13 08:07:06 +00:00
yunhuo:'陨火',
2023-12-05 12:21:05 +00:00
yunhuo_info:'锁定技准备阶段若游戏轮数为4的倍数你令所有敌方角色随机弃置一张手牌若没有手牌改为受到1点火焰伤害然后在此回合结束后获得一个额外回合。',
2017-05-13 08:07:06 +00:00
yinzhang:'银杖',
2023-12-05 12:21:05 +00:00
yinzhang_info:'出牌阶段限一次,你可以弃置一张牌,然后发现一张银卡法术。',
2017-11-05 15:22:35 +00:00
gwtianbian:'天变',
2023-12-05 12:21:05 +00:00
gwtianbian_info:'出牌阶段开始时,你可以选择一项:随机使用一张对全场有正面效果的牌;或随机使用一张对全场有负面效果的牌。',
2017-04-15 00:25:50 +00:00
gwxiaoshou:'枭首',
2023-12-05 12:21:05 +00:00
gwxiaoshou_info:'出牌阶段限两次你可以弃置一张牌对场上体力值最高或之一的一名角色造成1点伤害。',
2017-04-15 00:25:50 +00:00
gwjiquan:'集权',
2023-12-05 12:21:05 +00:00
gwjiquan_info:'出牌阶段限一次,你可以从任意名角色处各获得一张牌,每拿一张牌,被拿牌的角色视为对你使用一张杀。',
2017-04-15 00:25:50 +00:00
nuhou:'怒吼',
2023-12-05 12:21:05 +00:00
nuhou_info:'每当你受到一次伤害你可以弃置一张牌然后对一名随机敌人造成1点伤害并随机弃置其一张牌。',
2017-04-15 00:25:50 +00:00
shewu:'蛇舞',
2023-12-05 12:21:05 +00:00
shewu_info:'出牌阶段限一次你可以弃置至多三张牌然后摸三张牌若你弃置了至少两张牌你本回合使用牌无视距离若你弃置了三张牌你回复1点体力。',
2017-04-15 00:25:50 +00:00
gwzhanjiang:'斩将',
2023-12-05 12:21:05 +00:00
gwzhanjiang_info:'每轮限一次,在一名角色的准备阶段,你可以弃置一张牌,然后所有角色可以对该角色使用一张杀,出杀的角色在响应时摸一张牌,当有至少两名角色响应后终止结算。',
2017-04-15 00:25:50 +00:00
gwchuanxin:'穿心',
2023-12-05 12:21:05 +00:00
gwchuanxin_info:'你的攻击范围基数为你当前体力值;每当你对一名角色使用杀结算完毕后,你可以亮出牌堆顶的一张牌,若为黑色,视为对目标再使用一张杀。',
2017-04-15 00:25:50 +00:00
fengjian:'风剑',
2023-12-05 12:21:05 +00:00
fengjian_info:'每当你使用一张锦囊牌,你可以视为对一名不是此牌目标的角色使用一张雷杀,若如此做,你获得潜行直到下一回合开始。',
2017-04-15 00:25:50 +00:00
huandie:'幻蝶',
2023-12-05 12:21:05 +00:00
huandie_info:'准备阶段,你可以摸一张牌,并令任意名其他角色摸两张牌,若如此做,此回合结束时,所有手牌数大于体力值的角色需弃置两张手牌。',
2017-04-15 00:25:50 +00:00
xuezhou:'血咒',
2023-12-05 12:21:05 +00:00
xuezhou_info:'准备阶段你可以选择一项效果直到下一回合开始1. 每当一名其他角色在一个回合中首次受到伤害该角色失去1点体力你回复1点体力2. 每当一名其他角色在一个回合中首次造成伤害该角色失去1点体力若不是受伤害角色回复1点体力。',
2017-04-15 00:25:50 +00:00
fayin:'法印',
2023-12-05 12:21:05 +00:00
fayin_info:'每当你使用一张杀你可以弃置一张牌并获得一个随机法印效果1. 目标随机弃置两张牌2. 目标进入混乱状态直到下一回合开始3. 对目标造成1点火属性伤害4. 获得1点护甲5. 令目标翻面并摸一张牌。',
2017-04-15 00:25:50 +00:00
gwbaquan:'霸权',
2023-12-05 12:21:05 +00:00
gwbaquan_info:'出牌阶段限一次你可以获得一名其他角色的所有牌然后还给其等量的牌若你归还的牌均为你得到的牌且该角色体力值不小于你你对其造成1点伤害。',
2017-04-15 00:25:50 +00:00
hunmo:'魂墨',
2023-12-05 12:21:05 +00:00
hunmo_info:'出牌阶段若你手牌数少于2你可以选择一名手牌数小于2的其他角色观看牌堆顶的两张牌你获得一张并交给其另一张若你手牌数不少2你可以选择一名手牌数不少于2的其他角色你弃置一张手牌然后观看并弃置其一张手牌。每回合对同一名角色最多发动一次。',
2017-04-15 00:25:50 +00:00
huihun:'回魂',
2023-12-05 12:21:05 +00:00
huihun_info:'结束阶段,你可以从弃牌堆中获得本回合使用的前两张红色牌。',
2017-06-02 02:58:40 +00:00
lanquan:'远略',
2017-06-03 13:29:09 +00:00
lanquan_backup:'远略',
2023-12-05 12:21:05 +00:00
lanquan_info:'出牌阶段限一次,你可以观看牌堆顶的六张牌,并选择一张使用。',
2017-05-11 09:37:48 +00:00
chaoyong:'潮涌',
2023-12-05 12:21:05 +00:00
chaoyong_info:'准备阶段,你可以弃置一张牌,视为对所有敌方角色使用一张南蛮入侵或万箭齐发。',
2017-04-15 00:25:50 +00:00
}
};
2017-04-14 23:35:56 +00:00
});