This commit is contained in:
libccy 2017-02-24 14:25:16 +08:00
parent 30bfce20df
commit 372d9f4cc1
5 changed files with 584 additions and 37 deletions

View File

@ -3746,6 +3746,115 @@ character.shenhua={
}
}
},
gzbuqu:{
audio:'buqu',
trigger:{player:'changeHp'},
filter:function(event,player){
return player.hp<=0&&event.num<0;
},
init:function(player){
player.storage.gzbuqu=[];
},
priority:-15,
intro:{
content:'cards'
},
group:'gzbuqu_recover',
locked:true,
frequent:true,
ondisable:true,
onremove:function(player){
if(player.storage.gzbuqu.length){
delete player.nodying;
player.hp=1-player.storage.gzbuqu.length;
game.log(player,'移去了不屈牌',player.storage.gzbuqu);
while(player.storage.gzbuqu.length){
ui.discardPile.appendChild(player.storage.gzbuqu.shift());
}
player.unmarkSkill('gzbuqu');
player.dying({});
}
},
process:function(player){
delete player.nodying;
player.markSkill('gzbuqu');
player.syncStorage('gzbuqu');
var nums=[];
var cards=player.storage.gzbuqu;
for(var i=0;i<cards.length;i++){
if(nums.contains(cards[i].number)){
return;
}
else{
nums.push(cards[i].number);
}
}
player.nodying=true;
if(player.hp<0){
player.hp=0;
player.update();
}
},
subSkill:{
recover:{
trigger:{player:'changeHp'},
filter:function(event,player){
return player.storage.gzbuqu.length>0&&event.num>0;
},
forced:true,
popup:false,
content:function(){
'step 0'
if(player.hp>=player.storage.gzbuqu.length){
player.hp-=player.storage.gzbuqu.length-1;
player.update();
while(player.storage.gzbuqu.length){
ui.discardPile.appendChild(player.storage.gzbuqu.shift());
}
player.unmarkSkill('gzbuqu');
delete player.nodying;
event.finish();
}
else{
player.chooseCardButton('移去'+get.cnNumber(player.hp)+'张不屈牌',true,player.hp,player.storage.gzbuqu).set('ai',function(button){
var buttons=get.selectableButtons();
for(var i=0;i<buttons.length;i++){
if(buttons[i]!=button&&
buttons[i].link.number==button.link.number&&
!ui.selected.buttons.contains(buttons[i])){
return 1;
}
}
return 0;
});
player.hp=0;
player.update();
}
'step 1'
for(var i=0;i<result.links.length;i++){
ui.discardPile.appendChild(result.links[i]);
player.storage.gzbuqu.remove(result.links[i]);
}
player.$throw(result.links);
game.log(player,'移去了不屈牌',result.links);
lib.skill.gzbuqu.process(player);
}
}
},
content:function(){
'step 0'
var num=-player.hp;
if(!player.storage.gzbuqu.length){
num++;
}
player.storage.gzbuqu.addArray(get.cards(num));
player.showCards(get.translation(player)+'的不屈牌',player.storage.gzbuqu);
player.hp=0;
player.update();
'step 1'
lib.skill.gzbuqu.process(player);
}
},
buqu:{
audio:2,
trigger:{player:'dieBefore'},
@ -4231,6 +4340,8 @@ character.shenhua={
tiangong2:'天公',
xinliegong:'烈弓',
xinkuanggu:'狂骨',
gzbuqu:'不屈',
gzbuqu_info:'当你扣减1点体力时若你的体力值为0你可以将牌堆顶的一张牌置于你的武将牌上若此牌的点数与你武将牌上的其他牌均不同你不会死亡若你的武将牌上有点数相同的牌你进入濒死状态',
xinkuanggu_info:'当你对距离1以内的一名角色造成1点伤害后你可以回复1点体力或摸一张牌',
xinliegong_info:'你使用【杀】可以选择你距离不大于此【杀】点数的角色为目标当你使用【杀】指定一个目标后你可以根据下列条件执行相应的效果1.其手牌数小于等于你的手牌数,此【杀】不可被【闪】响应 2.其体力值大于等于你的体力值,此【杀】伤害+1',
jiewei_info:'每当你翻面,你可以使用一张锦囊牌或装备牌,若如此做,此牌结算后,你可以弃置场上一张同类型的牌',

View File

@ -6050,7 +6050,12 @@ character.sp={
return player.storage.qiluan?true:false;
},
content:function(){
player.draw(3*player.storage.qiluan);
if(get.mode()=='guozhan'){
player.draw(3);
}
else{
player.draw(3*player.storage.qiluan);
}
player.storage.qiluan=0;
}
},
@ -8214,6 +8219,7 @@ character.sp={
qiangwu_info:'出牌阶段,你可以进行一次判定。若如此做,则直到回合结束,你使用点数小于判定牌的 【杀】时不受距离限制,且你使用点数大于判定牌的【杀】时不计入出牌阶段的使用次数。',
shenxian_info:'每名角色的回合限一次,你的回合外,每当有其他角色因弃置而失去牌时,若其中有基本牌,你可以摸一张牌。',
qiluan_info:'每当你杀死一名角色后,可以在此回合结束时摸三张牌。',
qiluan_info_guozhan:'当你杀死一名角色后,你可于此回合结束后摸三张牌',
zhendu_info:'其他角色的出牌阶段开始时,你可以弃置一张手牌,视为该角色使用一张【酒】,然后你对其造成一点伤害。',
shangyi_info:'出牌阶段限一次,你可以观看一名其他角色的手牌,然后弃置其中的一张黑色牌',
shoucheng_info:'每当一名其他角色在其回合外失去最后的手牌时,你可令该角色摸一张牌。',

View File

@ -5695,7 +5695,6 @@ character.yijiang={
return (get.type(event.card)=='trick');
},
content:function(){
game.log(player,'发动了无言,',trigger.card,'对',trigger.target,'失效');
trigger.untrigger();
trigger.finish();
},

View File

@ -2681,15 +2681,22 @@
connect_zhulian:{
name:'珠联璧合',
init:true,
frequent:true,
// frequent:true,
intro:'主将和副将都明置后,若为特定组合,可摸两张牌或回复一点体力'
},
connect_onlyguozhan:{
name:'只开启国战武将',
connect_guozhanpile:{
name:'使用国战牌堆',
init:true,
frequent:true,
restart:true,
},
connect_onlyguozhan:{
name:'使用国战武将',
init:true,
frequent:true,
restart:true,
intro:'开启后将禁用非国战专属武将'
},
connect_ban_weak:{
name:'屏蔽弱将',
init:false,
@ -2740,15 +2747,22 @@
zhulian:{
name:'珠联璧合',
init:true,
frequent:true,
// frequent:true,
intro:'主将和副将都明置后,若为特定组合,可摸两张牌或回复一点体力'
},
onlyguozhan:{
name:'只开启国战武将',
guozhanpile:{
name:'使用国战牌堆',
init:true,
frequent:true,
restart:true,
},
onlyguozhan:{
name:'使用国战武将',
init:true,
frequent:true,
restart:true,
intro:'开启后将禁用非国战专属武将'
},
double_hp:{
name:'双将体力上限',
init:'pingjun',
@ -6605,7 +6619,10 @@
var hidden=player.hiddenSkills.slice(0);
game.expandSkills(hidden);
if(hidden.contains(event.skill)){
if(!info.direct){
if(!info.silent&&player.hasSkillTag('nomingzhi',false,null,true)){
event.finish();
}
else if(!info.direct){
event.trigger('triggerHidden');
}
else{
@ -9667,7 +9684,7 @@
game.log(player,'濒死')
"step 1"
if(_status.dying==player) delete _status.dying;
if(player.hp<=0) player.die(event.reason);
if(player.hp<=0&&!player.nodying) player.die(event.reason);
},
die:function(){
game.logv(player,'die',source);
@ -12074,6 +12091,7 @@
return next;
},
dying:function(reason){
if(this.nodying) return;
var next=game.createEvent('dying');
next.player=this;
next.reason=reason;
@ -13529,8 +13547,12 @@
}
return false;
},
hasSkillTag:function(tag,hidden,arg){
var skills=game.expandSkills(this.get('s',hidden));
hasSkillTag:function(tag,hidden,arg,globalskill){
var skills=this.get('s',hidden);
if(globalskill){
skills.addArray(lib.skill.global);
}
game.expandSkills(skills);
for(var i=0;i<skills.length;i++){
var info=lib.skill[skills[i]];
if(info&&info.ai){
@ -16531,7 +16553,7 @@
}
"step 2"
if(result.bool){
if(trigger.player.hp<=0&&trigger.player.isAlive()&&!trigger.player.isOut()&&!trigger.player.removed) event.goto(0);
if(trigger.player.hp<=0&&!trigger.player.nodying&&trigger.player.isAlive()&&!trigger.player.isOut()&&!trigger.player.removed) event.goto(0);
else trigger.untrigger();
}
else{
@ -21299,7 +21321,14 @@
}
}
else{
var skills2=game.filterSkills(player.get('s',true,true,false).concat(lib.skill.global),player);
var skills2;
if(get.mode()=='guozhan'&&player.hasSkillTag('nomingzhi',false,null,true)){
skills2=player.get('s',false,true,false);
}
else{
skills2=player.get('s',true,true,false);
}
skills2=game.filterSkills(skills2.concat(lib.skill.global),player);
event._skillChoice=[];
game.expandSkills(skills2);
for(i=0;i<skills2.length;i++){
@ -22414,7 +22443,14 @@
if(info.inherit){
var skill=lib.skill[info.inherit];
for(j in skill){
if(info[j]==undefined) info[j]=skill[j];
if(info[j]==undefined){
if(j=='audio'){
info[j]=info.inherit;
}
else{
info[j]=skill[j];
}
}
}
if(lib.translate[i+'_info']==undefined){
lib.translate[i+'_info']=lib.translate[info.inherit+'_info'];

View File

@ -25,6 +25,9 @@ mode.guozhan={
game.waitForPlayer();
}
else{
if(get.config('guozhanpile')){
lib.card.list=lib.guozhanPile.slice(0);
}
game.prepareArena();
game.delay();
game.showChangeLog();
@ -49,6 +52,9 @@ mode.guozhan={
}
"step 1"
if(_status.connectMode){
if(lib.configOL.guozhanpile){
lib.card.list=lib.guozhanPile.slice(0);
}
game.randomMapOL();
game.broadcastAll(function(pack){
for(var i=0;i<game.players.length;i++){
@ -153,10 +159,10 @@ mode.guozhan={
gz_caopi:['male','wei',3,['xingshang','fangzhu']],
gz_yuejin:['male','wei',4,['gzxiaoguo']],
gz_liubei:['male','shu',4,['rende']],
gz_liubei:['male','shu',4,['gzrende']],
gz_guanyu:['male','shu',5,['wusheng']],
gz_zhangfei:['male','shu',4,['paoxiao']],
gz_zhugeliang:['male','shu',3,['guanxing','kongcheng']],
gz_zhugeliang:['male','shu',3,['guanxing','gzkongcheng']],
gz_zhaoyun:['male','shu',4,['longdan']],
gz_machao:['male','shu',4,['mashu','tieji']],
gz_huangyueying:['female','shu',3,['jizhi','qicai']],
@ -169,18 +175,18 @@ mode.guozhan={
gz_zhurong:['female','shu',4,['juxiang','lieren']],
gz_ganfuren:['female','shu',3,['shushen','shenzhi']],
gz_sunquan:['male','wu',4,['zhiheng']],
gz_sunquan:['male','wu',4,['gzzhiheng']],
gz_ganning:['male','wu',4,['qixi']],
gz_lvmeng:['male','wu',4,['keji']],
gz_huanggai:['male','wu',4,['kurou']],
gz_zhouyu:['male','wu',3,['yingzi','fanjian']],
gz_daqiao:['female','wu',3,['guose','liuli']],
gz_luxun:['male','wu',3,['qianxun','duoshi']],
gz_sunshangxiang:['female','wu',3,['jieyin','xiaoji']],
gz_sunshangxiang:['female','wu',3,['jieyin','gzxiaoji']],
gz_sunjian:['male','wu',4,['yinghun']],
gz_xiaoqiao:['female','wu',3,['tianxiang','hongyan']],
gz_taishici:['male','wu',4,['tianyi']],
gz_zhoutai:['male','wu',4,['buqu']],
gz_zhoutai:['male','wu',4,['gzbuqu']],
gz_re_lusu:['male','wu',3,['haoshi','dimeng']],
gz_zhangzhang:['male','wu',3,['zhijian','guzheng']],
gz_dingfeng:['male','wu',4,['fenxun','duanbing']],
@ -189,10 +195,10 @@ mode.guozhan={
gz_lvbu:['male','qun',5,['wushuang']],
gz_diaochan:['female','qun',3,['lijian','biyue']],
gz_re_yuanshao:['male','qun',4,['luanji']],
gz_jiaxu:['male','qun',3,['wansha','luanwu','weimu']],
gz_jiaxu:['male','qun',3,['wansha','luanwu','gzweimu']],
gz_pangde:['male','qun',4,['mashu','mengjin']],
gz_zhangjiao:['male','qun',3,['leiji','guidao']],
gz_caiwenji:['female','qun',3,[]],
gz_caiwenji:['female','qun',3,['beige','gzduanchang']],
gz_mateng:['male','qun',4,['mashu','xiongyi']],
gz_kongrong:['male','qun',3,['mingshi','lirang']],
gz_jiling:['male','qun',4,[]],
@ -300,6 +306,7 @@ mode.guozhan={
uiintro.add('<div class="text chat">首亮摸牌:'+num);
uiintro.add('<div class="text chat">珠联璧合:'+(lib.configOL.zhulian?'开启':'关闭'));
uiintro.add('<div class="text chat">出牌时限:'+lib.configOL.choose_timeout+'秒');
uiintro.add('<div class="text chat">国战牌堆:'+(lib.configOL.guozhanpile?'开启':'关闭'));
last=uiintro.add('<div class="text chat">国战武将:'+(lib.configOL.onlyguozhan?'开启':'关闭'));
if(!lib.configOL.onlyguozhan){
uiintro.add('<div class="text chat">屏蔽弱将:'+(lib.configOL.ban_weak?'开启':'关闭'));
@ -940,6 +947,18 @@ mode.guozhan={
tongshimingzhi:'同时明置',
mode_guozhan_character_config:'国战武将',
gzduanchang:'断肠',
gzduanchang_info:'锁定技,当你死亡时,你令杀死你的角色失去一张武将牌的所有技能',
gzweimu:'帷幕',
gzweimu_info:'锁定技,当你成为黑色锦囊牌的目标时,则取消之',
gzkongcheng:'空城',
gzkongcheng_info:'锁定技,当你成为【杀】或【决斗】的目标时,若你没有手牌,则取消之',
gzxiaoji:'枭姬',
gzxiaoji_info:'当你失去装备区里的牌后,你可以摸两张牌',
gzrende:'仁德',
gzrende_info:'出牌阶段你可以将任意张手牌交给其他角色然后若你于此阶段内给出第三张“仁德”牌时你回复1点体力',
gzzhiheng:'制衡',
gzzhiheng_info:'出牌阶段限一次你可以弃置至多X张牌X为你的体力上限然后摸等量的牌',
huoshui:'祸水',
huoshui_info:'出牌阶段,你可以明置此武将牌;你的回合内,若此武将牌处于明置状态,其他角色不能明置其武将牌',
qingcheng:'倾城',
@ -949,6 +968,146 @@ mode.guozhan={
gzxiaoguo:'骁果',
gzxiaoguo_info:'其他角色的结束阶段开始时你可以弃置一张基本牌令该角色选择一项1.弃置一张装备牌2.受到你对其造成的1点伤害。',
},
guozhanPile:[
["spade",7,"sha"],
["spade",8,"sha"],
["spade",8,"sha"],
["spade",9,"sha"],
["spade",9,"sha"],
["spade",10,"sha"],
["spade",10,"sha"],
["club",2,"sha"],
["club",3,"sha"],
["club",4,"sha"],
["club",5,"sha"],
["club",6,"sha"],
["club",7,"sha"],
["club",8,"sha"],
["club",8,"sha"],
["club",9,"sha"],
["club",9,"sha"],
["club",10,"sha"],
["club",10,"sha"],
["club",11,"sha"],
["club",11,"sha"],
["heart",10,"sha"],
["heart",10,"sha"],
["heart",11,"sha"],
["diamond",6,"sha"],
["diamond",7,"sha"],
["diamond",8,"sha"],
["diamond",9,"sha"],
["diamond",10,"sha"],
["diamond",13,"sha"],
["heart",2,"shan"],
["heart",2,"shan"],
["heart",13,"shan"],
["diamond",2,"shan"],
["diamond",2,"shan"],
["diamond",3,"shan"],
["diamond",4,"shan"],
["diamond",5,"shan"],
["diamond",6,"shan"],
["diamond",7,"shan"],
["diamond",8,"shan"],
["diamond",9,"shan"],
["diamond",10,"shan"],
["diamond",11,"shan"],
["diamond",11,"shan"],
["heart",3,"tao"],
["heart",4,"tao"],
["heart",6,"tao"],
["heart",7,"tao"],
["heart",8,"tao"],
["heart",9,"tao"],
["heart",12,"tao"],
["diamond",12,"tao"],
["spade",2,"bagua"],
["club",2,"bagua"],
["spade",5,"jueying"],
["club",5,"dilu"],
["heart",13,"zhuahuang"],
["heart",5,"chitu"],
["spade",13,"dawan"],
["diamond",13,"zixin"],
["club",1,"zhuge"],
["diamond",1,"zhuge"],
["spade",2,"cixiong"],
["spade",6,"qinggang"],
["spade",5,"qinglong"],
["spade",12,"zhangba"],
["diamond",5,"guanshi"],
["diamond",12,"fangtian"],
["heart",5,"qilin"],
["heart",3,"wugu"],
["heart",4,"wugu"],
["heart",1,"taoyuan"],
["spade",7,"nanman"],
["spade",13,"nanman"],
["club",7,"nanman"],
["heart",1,"wanjian"],
["spade",1,"juedou"],
["club",1,"juedou"],
["diamond",1,"juedou"],
["heart",7,"wuzhong"],
["heart",8,"wuzhong"],
["heart",9,"wuzhong"],
["heart",11,"wuzhong"],
["spade",3,'shunshou'],
["spade",4,'shunshou'],
["spade",11,'shunshou'],
["diamond",3,'shunshou'],
["diamond",4,'shunshou'],
["spade",3,'guohe'],
["spade",4,'guohe'],
["spade",12,'guohe'],
["club",3,'guohe'],
["club",4,'guohe'],
["heart",12,'guohe'],
["club",12,'jiedao'],
["club",13,'jiedao'],
["spade",11,'wuxie'],
["club",12,'wuxie'],
["club",13,'wuxie'],
["spade",6,'lebu'],
["club",6,'lebu'],
["heart",6,'lebu'],
["spade",1,'shandian','thunder'],
["spade",2,'hanbing'],
["club",2,'renwang'],
["heart",12,'shandian','thunder'],
["diamond",12,'wuxie'],
['heart',9,'yuanjiao'],
['club',3,'zhibi'],
['club',4,'zhibi'],
['diamond',4,'yiyi'],
['heart',11,'yiyi'],
['diamond',6,'wuliu'],
['diamond',12,'sanjian'],
['heart',3,'jingfanma'],
["spade",4,'shunshou'],
["spade",12,'guohe'],
["spade",11,'wuxie'],
['spade',3,'huoshaolianying','fire'],
['club',11,'huoshaolianying','fire'],
['heart',12,'huoshaolianying','fire'],
['club',2,'huxinjing'],
['heart',2,'diaohulishan'],
['diamond',10,'diaohulishan'],
['heart',1,'lianjunshengyan'],
['club',3,'chiling'],
['spade',12,'lulitongxin'],
['club',10,'lulitongxin'],
['club',12,'shuiyanqijunx'],
['heart',13,'shuiyanqijunx'],
['spade',1,'xietianzi'],
['diamond',1,'xietianzi'],
['diamond',4,'xietianzi'],
['club',1,'yuxi'],
],
element:{
content:{
zhulian:function(){
@ -1074,6 +1233,10 @@ mode.guozhan={
},this,this.name,this.sex,num,skills);
for(var i=0;i<skills.length;i++){
this.hiddenSkills.add(skills[i]);
var info=get.info(skills[i]);
if(info.ondisable&&info.onremove){
info.onremove(this);
}
this.skills.remove(skills[i]);
}
this.checkConflict();
@ -1298,11 +1461,255 @@ mode.guozhan={
}
},
skill:{
huoshui:{
gzduanchang:{
},
gzweimu:{
audio:'weimu',
trigger:{target:'useCardToBefore'},
forced:true,
priority:15,
check:function(event,player){
return ai.get.effect(event.target,event.card,event.player,player)<0;
},
filter:function(event,player){
return get.type(event.card,'trick')=='trick'&&get.color(event.card)=='black';
},
content:function(){
trigger.untrigger();
trigger.finish();
},
ai:{
effect:{
target:function(card,player,target,current){
if(get.type(card,'trick')=='trick'&&get.color(card)=='black') return 'zeroplayertarget';
},
}
}
},
gzkongcheng:{
audio:'kongcheng',
trigger:{target:'useCardToBefore'},
forced:true,
priority:15,
check:function(event,player){
return ai.get.effect(event.target,event.card,event.player,player)<0;
},
filter:function(event,player){
return player.num('h')==0&&(event.card.name=='sha'||event.card.name=='juedou');
},
content:function(){
trigger.untrigger();
trigger.finish();
},
ai:{
effect:{
target:function(card,player,target,current){
if(target.num('h')==0&&(card.name=='sha'||card.name=='juedou')) return 'zeroplayertarget';
},
}
}
},
gzxiaoji:{
inherit:'xiaoji',
content:function(){
player.draw(2);
}
},
gzrende:{
audio:'rende',
group:['gzrende1'],
enable:'phaseUse',
filterCard:true,
selectCard:[1,Infinity],
discard:false,
prepare:'give',
filterTarget:function(card,player,target){
return player!=target;
},
check:function(card){
if(ui.selected.cards.length>1) return 0;
if(ui.selected.cards.length&&ui.selected.cards[0].name=='du') return 0;
if(!ui.selected.cards.length&&card.name=='du') return 20;
var player=get.owner(card);
if(player.hp==player.maxHp||player.storage.gzrende<0||player.num('h')+player.storage.gzrende<=2){
if(ui.selected.cards.length){
return -1;
}
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].get('s').contains('haoshi')&&
!players[i].isTurnedOver()&&
!players[i].num('j','lebu')&&
ai.get.attitude(player,players[i])>=3&&
ai.get.attitude(players[i],player)>=3){
return 11-ai.get.value(card);
}
}
if(player.num('h')>player.hp) return 10-ai.get.value(card);
if(player.num('h')>2) return 6-ai.get.value(card);
return -1;
}
return 10-ai.get.value(card);
},
content:function(){
target.gain(cards,player);
if(typeof player.storage.gzrende!='number'){
player.storage.gzrende=0;
}
if(player.storage.gzrende>=0){
player.storage.gzrende+=cards.length;
if(player.storage.gzrende>=3){
player.recover();
player.storage.gzrende=-1;
}
}
},
ai:{
order:function(skill,player){
if(player.hp==player.maxHp||player.storage.gzrende<0||player.num('h')+player.storage.gzrende<=2){
return 1;
}
return 10;
},
result:{
target:function(player,target){
if(ui.selected.cards.length&&ui.selected.cards[0].name=='du'){
return -10;
}
if(target.num('j','lebu')) return 0;
var nh=target.num('h');
var np=player.num('h');
if(player.hp==player.maxHp||player.storage.gzrende<0||player.num('h')+player.storage.gzrende<=2){
if(nh>=np-1&&np<=player.hp&&!target.get('s').contains('haoshi')) return 0;
}
return Math.max(1,5-nh);
}
},
effect:{
target:function(card,player,target){
if(player==target&&get.type(card)=='equip'){
if(player.num('e',{subtype:get.subtype(card)})){
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i]!=player&&ai.get.attitude(player,players[i])>0){
return 0;
}
}
}
}
}
},
threaten:0.8
}
},
gzrende1:{
trigger:{player:'phaseUseBegin'},
forced:true,
popup:false,
silent:true,
content:function(){
player.storage.gzrende=0;
}
},
gzzhiheng:{
inherit:'zhiheng',
selectCard:function(){
return [1,_status.event.player.maxHp];
},
prompt:'出牌阶段限一次你可以弃置至多X张牌X为你的体力上限然后摸等量的牌'
},
huoshui:{
enable:'phaseUse',
unique:true,
forceunique:true,
filter:function(event,player){
if(player.name1=='gz_zoushi') return player.classList.contains('unseen');
return player.classList.contains('unseen2');
},
content:function(){
if(player.name1=='gz_zoushi') player.showCharacter(0);
else player.showCharacter(1);
}
},
_huoshui:{
ai:{
nomingzhi:true,
skillTagFilter:function(player){
return _status.currentPhase&&_status.currentPhase!=player&&_status.currentPhase.hasSkill('huoshui');
}
}
},
qingcheng:{
enable:'phaseUse',
filter:function(event,player){
return player.num('he',{type:'equip'})&&game.hasPlayer(function(current){
return current!=player&&!current.classList.contains('unseen')&&!current.classList.contains('unseen2');
});
},
filterCard:{type:'equip'},
position:'he',
filterTarget:function(card,player,target){
return !target.classList.contains('unseen')&&!target.classList.contains('unseen2');
},
check:function(card){
return 6-ai.get.value(card,_status.event.player);
},
content:function(){
'step 0'
var choice='主将';
var skills=lib.character[target.name2][3];
for(var i=0;i<skills.length;i++){
var info=get.info(skills[i]);
if(info&&info.ai&&info.ai.maixie){
choice='副将';break;
}
}
if(target.name=='gz_zhoutai'){
choice='主将';
}
else if(target.name2=='gz_zhoutai'){
choice='副将';
}
player.chooseControl('主将','副将',function(){
return _status.event.choice;
}).set('prompt','暗置'+get.translation(target)+'的一张武将牌').set('choice',choice);
'step 1'
if(result.control=='主将'){
target.hideCharacter(0);
}
else{
target.hideCharacter(1);
}
target.addTempSkill('qingcheng_ai','phaseAfter');
},
ai:{
order:8,
result:{
target:function(player,target){
if(target.hp<=0) return -5;
if(player.getStat().skill.qingcheng) return 0;
if(!target.hasSkillTag('maixie')) return 0;
if(ai.get.attitude(player,target)>=0) return 0;
if(player.hasCard(function(card){
return get.tag(card,'damage')&&player.canUse(card,target,true,true);
})){
if(target.maxHp>3) return -0.5;
return -1;
}
return 0;
}
}
}
},
qingcheng_ai:{
ai:{
effect:{
target:function(card){
if(get.tag(card,'damage')) return 2;
}
}
}
},
duoshi:{
enable:'chooseToUse',
@ -1317,15 +1724,7 @@ mode.guozhan={
}
},
gzxiaoguo:{
audio:'xiaoguo',
trigger:{global:'phaseEnd'},
check:function(event,player){
return ai.get.damageEffect(event.player,player,player)>0;
},
filter:function(event,player){
return event.player.isAlive()&&event.player!=player&&player.num('h',{type:'basic'});
},
direct:true,
inherit:'xiaoguo',
content:function(){
"step 0"
var nono=(Math.abs(ai.get.attitude(player,trigger.player))<3);
@ -1358,10 +1757,6 @@ mode.guozhan={
trigger.player.damage();
}
},
ai:{
expose:0.3,
threaten:1.3
}
},
_mingzhi1:{
trigger:{player:'phaseBegin'},