v1.9.94.1

This commit is contained in:
Spmario233 2019-10-24 12:55:01 +08:00 committed by GitHub
parent 11d6791428
commit 6fcec20b41
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 633 additions and 251 deletions

View File

@ -807,7 +807,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(card.name=='nanman'||card.name=='wanjian') return 'zerotarget';
if(card.name=='sha'){
var equip1=player.getEquip(1);
if(equip1&&equip1.name=='zhuque') return 2;
if(equip1&&equip1.name=='zhuque') return 1.9;
if(equip1&&equip1.name=='qinggang') return 1;
if(!card.nature) return 'zerotarget';
}
@ -835,7 +835,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
effect:{
target:function(card,player,target,current){
if(card.name=='sha'){
if(card.nature=='fire'||player.hasSkill('zhuque_skill')) return 2;
if(card.nature=='fire') return 2;
if(player.hasSkill('zhuque_skill')) return 1.9;
}
if(get.tag(card,'fireDamage')&&current<0) return 2;
}
@ -878,16 +879,22 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
zhuque_skill:{
trigger:{player:'useCardToBefore'},
trigger:{player:'useCard1'},
priority:7,
filter:function(event,player){
if(event.card.name=='sha'&&!event.card.nature) return true;
},
audio:true,
check:function(event,player){
var eff1=get.effect(event.target,event.card,player,player);
var eff2=get.effect(event.target,{name:'sha',nature:'fire',suit:get.suit(event.card),number:get.number(event.card)},player,player);
return eff2>eff1;
var eff=0;
for(var i=0;i<event.targets.length;i++){
var target=event.targets[i];
var eff1=get.effect(target,event.card,player,player);
var eff2=get.effect(target,{name:'sha',nature:'fire',suit:get.suit(event.card),number:get.number(event.card)},player,player);
eff+=eff2;
eff-=eff1;
}
return eff>0;
},
content:function(){
trigger.card.nature='fire';

View File

@ -156,8 +156,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(player.hasSkill('xietianzi')) return false;
if(_status.currentPhase!=player) return false;
var evt=event||_status.event;
var evt2=evt.getParent('chooseToUse');
return evt.type=='phase'||evt2.type=='phase';
if(evt.name!='chooseToUse') evt=evt.getParent('chooseToUse');
return evt.type=='phase';
},
filterTarget:function(card,player,target){
return player==target;
@ -376,7 +376,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
fullskin:true,
audio:true,
type:'trick',
enable:true,
enable:function(){
return game.hasPlayer(function(current){
return current.isUnseen();
});
},
mode:['guozhan'],
global:['g_chiling1','g_chiling2','g_chiling3'],
filterTarget:function(card,player,target){
@ -760,9 +764,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
},
minguangkai_cancel:{
trigger:{target:'useCardToBefore'},
trigger:{target:'useCardToTarget'},
forced:true,
priority:15,
check:function(event,player){
return get.effect(event.target,event.card,event.player,player)<0;
},
@ -861,14 +864,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
feilongduofeng:{
trigger:{player:'shaBegin'},
priority:7,
trigger:{player:'useCardToPlayered'},
logTarget:'target',
check:function(event,player){
return get.attitude(player,event.target)<=0;
},
filter:function(event,player){
return event.target.countCards('he');
return event.card.name=='sha'&&event.target.countCards('he');
},
content:function(){
trigger.target.chooseToDiscard('he',true);

View File

@ -481,10 +481,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
},
zhungangshuo:{
trigger:{player:'shaBegin'},
trigger:{player:'useCardToPlayered'},
logTarget:'target',
filter:function(event,player){
return event.player.countCards('h')||player.countCards('h');
return event.card.name=='sha'&&(event.player.countCards('h')||player.countCards('h'));
},
check:function(event,player){
var target=event.target;

View File

@ -1489,11 +1489,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
},
cixiong_skill:{
trigger:{player:'shaBegin'},
priority:7,
trigger:{player:'useCardToPlayered'},
audio:true,
logTarget:'target',
filter:function(event,player){
if(event.card.name!='sha') return false;
if(player.sex=='male'&&event.target.sex=='female') return true;
if(player.sex=='female'&&event.target.sex=='male') return true;
return false;

View File

@ -143,7 +143,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.range={
手牌区:['h','e','j'],
装备区:['e','h','j'],
判定区:['j','e','h'],
判定区:['j','h','e'],
}[result.control||'手牌区'];
"step 3"
if(num<event.targets.length){

View File

@ -645,7 +645,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true,
silent:true,
popup:false,
onremove:true,
content:function(){
trigger.xinzhanyi=true;
player.storage.xinzhanyi_basic1=true;
@ -665,6 +664,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
xinzhanyi_basic:{
group:['xinzhanyi_basic1','xinzhanyi_basic2'],
onremove:function(p,s){
delete p.storage[s+1];
},
enable:"chooseToUse",
filter:function (event,player){
if(event.filterCard({name:'sha'},player,event)||
@ -759,10 +761,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
xinzhanyi_equip:{
audio:'zhanyi',
trigger:{player:'shaBegin'},
trigger:{player:'useCardToPlayered'},
forced:true,
filter:function(event,player){
return event.target.countCards('he')>0;
return event.card.name=='sha'&&event.target.countCards('he')>0;
},
check:function(event,player){
return get.attitude(player,event.target)<0;

View File

@ -4,18 +4,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'old',
characterSort:{
old:{
old_shenhua:["yuji","zhangjiao","old_zhugezhan","old_zhoutai","old_caoren"],
old_shenhua:["yuji","zhangjiao","old_zhugezhan","old_zhoutai","old_caoren","xiahouyuan","xiaoqiao","huangzhong","weiyan","xuhuang","pangde"],
old_refresh:["old_zhangfei","old_huatuo"],
old_yijiang1:["masu","xushu","fazheng","yujin","xin_yujin","old_xusheng","old_lingtong","ol_yujin"],
old_yijiang2:["old_madai","old_zhonghui","old_wangyi","old_guanzhang","ol_liaohua"],
old_yijiang3:["liru","old_zhuran","ol_zhuran","ol_manchong","ol_guohuai"],
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan"],
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan","ol_wuyi"],
old_yijiang5:["old_caoxiu","old_quancong","old_zhuzhi"],
old_yijiang67:["ol_xinxianying","ol_zhangrang"],
old_yijiang67:["ol_xinxianying","ol_zhangrang","ol_liuyu"],
old_sp:["old_caochun","old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo"],
},
},
character:{
xuhuang:['male','wei',4,['gzduanliang']],
pangde:['male','qun',4,['mashu','mengjin']],
xiahouyuan:['male','wei',4,['shensu']],
huangzhong:['male','shu',4,['liegong']],
weiyan:['male','shu',4,['kuanggu']],
xiaoqiao:['female','wu',3,['tianxiang','hongyan']],
yuji:['male','qun',3,['old_guhuo'],['forbidai']],
zhangjiao:['male','qun',3,['leiji','guidao','huangtian'],['zhu']],
old_zhoutai:['male','wu',4,['gzbuqu']],
@ -59,6 +65,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_guansuo:['male','shu',4,['zhengnan','xiefang']],
ol_manchong:['male','wei',3,['yuce','junxing']],
ol_guohuai:['male','wei',4,['jingce']],
ol_wuyi:['male','shu',4,['benxi']],
ol_liuyu:['male','qun',2,['zongzuo','zhige']],
},
characterFilter:{
old_lingju:function(mode){
@ -865,6 +873,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_guansuo:'OL关索',
ol_manchong:'OL满宠',
ol_guohuai:'OL郭淮',
ol_wuyi:'OL吴懿',
ol_liuyu:'OL刘虞',
old_fuhun:'父魂',
old_fuhun_info:'摸牌阶段开始时,你可以放弃摸牌,改为从牌堆顶亮出两张牌并获得之,若亮出的牌颜色不同,你获得技能“武圣”、“咆哮”,直到回合结束。',

View File

@ -1436,39 +1436,31 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rejiuyuan2:{
audio:'jiuyuan',
forceaudio:true,
trigger:{player:'taoBegin'},
trigger:{player:'useCardToPlayer'},
filter:function(event,player){
if(event.card.name!='tao') return false;
if(player.group!='wu') return false;
if(event.target!=player) return false;
return game.hasPlayer(function(target){
return player!=target&&target.isDamaged()&&target.hp<player.hp&&target.hasZhuSkill('rejiuyuan',player);
return player!=target&&!event.targets.contains(target)&&target.isDamaged()&&target.hp<player.hp&&target.hasZhuSkill('rejiuyuan',player);
});
},
direct:true,
content:function(){
'step 0'
var list=game.filterPlayer(function(target){
return player!=target&&target.isDamaged()&&target.hp<player.hp&&target.hasZhuSkill('rejiuyuan',player);
});
list.sortBySeat();
event.list=list;
player.chooseTarget(get.prompt2('rejiuyuan'),function(card,player,target){
return player!=target&&!_status.event.targets.contains(target)&&target.isDamaged()&&target.hp<player.hp&&target.hasZhuSkill('rejiuyuan',player);
}).set('ai',function(target){
return get.attitude(_status.event.player,target);
}).set('targets',trigger.targets);
'step 1'
if(event.list.length){
var current=event.list.shift();
event.current=current;
player.chooseBool(get.prompt2('rejiuyuan',current)).set('choice',get.attitude(player,current)>0);
}
else{
event.finish();
}
'step 2'
if(result.bool){
trigger.cancel();
player.logSkill('rejiuyuan',event.current);
event.current.recover();
var target=result.targets[0];
player.logSkill('rejiuyuan2',target);
trigger.getParent().targets.remove(player);
trigger.getParent().targets.push(target);
player.draw();
}
event.goto(1);
}
},
rezhiheng:{
@ -2653,10 +2645,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
retieji:{
audio:2,
audioname:['boss_lvbu3'],
trigger:{player:'shaBegin'},
trigger:{player:'useCardToPlayered'},
check:function(event,player){
return get.attitude(player,event.target)<0;
},
filter:function(event,player){
return event.card.name=='sha';
},
logTarget:'target',
content:function(){
"step 0"
@ -2678,7 +2673,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}).set('num',num).set('suit',suit);
"step 2"
if(!result.bool){
trigger.directHit=true;
trigger.getParent().directHit.add(trigger.target);
}
}
},
@ -2935,9 +2930,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
unique:true,
mark:true,
limited:true,
trigger:{global:'useCard'},
trigger:{global:'useCardToPlayered'},
priority:5,
filter:function(event,player){
if(event.getParent().triggeredTargets3.length>1) return false;
if(get.type(event.card)!='trick') return false;
if(get.info(event.card).multitarget) return false;
if(event.targets.length<2) return false;
@ -2952,7 +2948,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 0"
player.chooseTarget(get.prompt('fenwei'),
[1,trigger.targets.length],function(card,player,target){
var evt=_status.event.getTrigger();
var evt=_status.event.getTrigger().getParent();
return evt.targets.contains(target)&&!evt.excluded.contains(target);
}).set('ai',function(target){
var trigger=_status.event.getTrigger();
@ -2966,7 +2962,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.awakenSkill('fenwei');
player.logSkill('fenwei',result.targets);
player.storage.fenwei=true;
trigger.excluded.addArray(result.targets);
trigger.getParent.excluded.addArray(result.targets);
game.delay();
}
},

View File

@ -6,20 +6,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connectBanned:['zuoci'],
characterSort:{
shenhua:{
shenhua_feng:['caoren','xiahouyuan','huangzhong','weiyan','xiaoqiao','zhoutai','sp_zhangjiao','re_yuji'],
shenhua_huo:['dianwei','xunyu','pangtong','sp_zhugeliang','taishici','yanwen','re_yuanshao','pangde'],
shenhua_lin:['caopi','xuhuang','menghuo','zhurong','re_lusu','sunjian','dongzhuo','jiaxu'],
shenhua_feng:['caoren','re_xiahouyuan','re_huangzhong','re_weiyan','re_xiaoqiao','zhoutai','sp_zhangjiao','re_yuji'],
shenhua_huo:['dianwei','xunyu','pangtong','sp_zhugeliang','taishici','yanwen','re_yuanshao','re_pangde'],
shenhua_lin:['caopi','re_xuhuang','menghuo','zhurong','re_lusu','sunjian','dongzhuo','jiaxu'],
shenhua_shan:['dengai','zhanghe','liushan','jiangwei','zhangzhang','sunce','caiwenji','zuoci'],
shenhua_yin:['wangji','kuailiangkuaiyue','yanyan','wangping','sunliang','luji','xuyou','yl_luzhi'],
shenhua_lei:['haozhao','guanqiujian','chendao','zhugezhan','lukang','zhoufei','zhangxiu','yl_yuanshu'],
},
},
character:{
xiahouyuan:['male','wei',4,['xinshensu']],
re_xiahouyuan:['male','wei',4,['xinshensu']],
caoren:['male','wei',4,['xinjushou','xinjiewei']],
huangzhong:['male','shu',4,['xinliegong']],
weiyan:['male','shu',4,['xinkuanggu','qimou']],
xiaoqiao:['female','wu',3,['retianxiang','hongyan']],
re_huangzhong:['male','shu',4,['xinliegong']],
re_weiyan:['male','shu',4,['xinkuanggu','qimou']],
re_xiaoqiao:['female','wu',3,['retianxiang','hongyan']],
zhoutai:['male','wu',4,['buqu','fenji']],
sp_zhangjiao:['male','qun',3,['releiji','guidao','huangtian'],['zhu']],
re_yuji:["male","qun",3,["xinfu_guhuo"],["forbidai"]],
@ -33,12 +33,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
taishici:['male','wu',4,['tianyi']],
yanwen:['male','qun',4,['shuangxiong']],
re_yuanshao:['male','qun',4,['luanji','xueyi'],['zhu']],
pangde:['male','qun',4,['mashu','jianchu']],
re_pangde:['male','qun',4,['mashu','jianchu']],
menghuo:['male','shu',4,['huoshou','zaiqi']],
zhurong:['female','shu',4,['juxiang','lieren']],
caopi:['male','wei',3,['xingshang','fangzhu','songwei'],['zhu']],
xuhuang:['male','wei',4,['duanliang','jiezi']],
re_xuhuang:['male','wei',4,['duanliang','jiezi']],
re_lusu:['male','wu',3,['haoshi','dimeng']],
sunjian:['male','wu',4,['gzyinghun']],
dongzhuo:['male','qun',8,['jiuchi','roulin','benghuai','baonue'],['zhu']],
@ -422,17 +422,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_fuyin":{
usable:1,
trigger:{
target:"useCardToBefore",
target:"useCardToTargeted",
},
forced:true,
priority:6,
audio:2,
filter:function (event,player){
if(event.player.countCards('h')<player.countCards('h')) return false;
if(event.card.name=='sha'||event.card.name=='juedou') return true;
},
content:function (){
trigger.cancel();
trigger.getParent().excluded.add(player);
},
},
@ -771,11 +770,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"drlt_congjian":{
audio:2,
trigger:{
global:"useCard",
target:"useCardToTargeted",
},
direct:true,
filter:function (event,player){
return event.targets&&get.type(event.card)=='trick'&&event.targets.contains(player)&&event.targets.length>1&&player.countCards('he')>0;
return get.type(event.card)=='trick'&&event.targets.length>1&&player.countCards('he')>0;
},
content:function(){
'step 0'
@ -1030,37 +1029,43 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'1':{
audio:2,
trigger:{
global:'shaBegin'
target:'useCardToTargeted'
},
prompt2:'当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。',
filter:function (event,player){
return event.targets&&event.targets.contains(player)&&(player.storage.nzry_juzhan1==false||player.storage.nzry_juzhan1==undefined);
return event.card.name=='sha'&&(player.storage.nzry_juzhan1==false||player.storage.nzry_juzhan1==undefined);
},
logTarget:'player',
content:function(){
game.asyncDraw([player,trigger.player]);
trigger.player.storage.nzry_juzhan=true;
player.storage.nzry_juzhan1=true;
player.addTempSkill('nzry_juzhanx');
},
},
'2':{
audio:2,
trigger:{
player:'shaBegin'
player:'useCardToPlayered'
},
prompt2:'当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌',
filter:function (event,player){
return player.storage.nzry_juzhan1==true;
return event.card.name=='sha'&&event.player.countGainableCards(player,'he')>0&&player.storage.nzry_juzhan1==true;
},
check:function (event,player){
return event.player.countCards('he')>0&&event.targets&&event.targets.length==1;
},
logTarget:'target',
content:function(){
player.gainPlayerCard(trigger.targets[0],'he',true);
player.storage.nzry_juzhan1=false;
trigger.target.addTempSkill('nzry_juzhanx');
trigger.target.storage.nzry_juzhan2=true;
},
},
},
},
"_nzry_juzhan":{
"nzry_juzhanx":{
mod:{
targetEnabled:function(card,player,target){
if(target.storage.nzry_juzhan2==true) return false;
@ -1772,10 +1777,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'nzry_jianxiang':{
audio:2,
trigger:{
global:'useCard',
target:'useCardToTargeted',
},
filter:function (event,player){
return event.player!=player&&event.targets&&event.targets.contains(player);
return event.player!=player;
},
direct:true,
content:function(){
@ -1787,12 +1792,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
};
"step 1"
if(result.bool){
player.line(result.targets);
player.logSkill('nzry_jianxiang');
player.logSkill('nzry_jianxiang',result.targets);
result.targets[0].draw();
}else{
event.finish();
};
}
},
},
"nzry_shenshi":{
@ -1988,12 +1990,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
jianchu:{
audio:2,
trigger:{player:'shaBegin'},
filter:function(event){
return event.target.countCards('he')>0;
trigger:{player:'useCardToPlayered'},
filter:function(event,player){
return event.card.name=='sha'&&event.target.countDiscardableCards(player,'he')>0;
},
direct:true,
priority:8,
content:function(){
'step 0'
player.discardPlayerCard(trigger.target,get.prompt('jianchu',trigger.target)).set('ai',function(button){
@ -2004,7 +2005,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1'
if(result.bool&&result.links&&result.links.length){
if(get.type(result.links[0])=='equip'){
trigger.directHit=true;
trigger.getParent().directHit.add(trigger.target);
}
else if(trigger.cards){
trigger.target.gain(trigger.cards,'gain2','log');
@ -2544,7 +2545,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
xiangle:{
audio:2,
trigger:{target:'useCardToBefore'},
trigger:{target:'useCardToTargeted'},
forced:true,
filter:function(event,player){
return event.card.name=='sha';
@ -2562,7 +2563,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}).set('eff',eff);
"step 1"
if(result.bool==false){
trigger.cancel();
trigger.getParent().excluded.add(player);
}
},
ai:{
@ -4693,7 +4694,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return 5-get.useful(card);
},
content:function(){
'step 0'
player.draw();
'step 1'
game.cardsDiscard(cards);
},
discard:false,
prompt:'将一张梅花牌置入弃牌堆并摸一张牌',
@ -6587,7 +6591,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhurong:'祝融',
menghuo:'孟获',
caopi:'曹丕',
xuhuang:'徐晃',
re_xuhuang:'徐晃',
lusu:'旧鲁肃',
sunjian:'孙坚',
dongzhuo:'董卓',
@ -6646,7 +6650,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
taishici:'太史慈',
yanwen:'颜良文丑',
yuanshao:'旧袁绍',
pangde:'庞德',
re_pangde:'庞德',
huoji:'火计',
bazhen:'八阵',
kanpo:'看破',
@ -6682,12 +6686,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xueyi_info:'主公技,锁定技,场上每有一名其他群雄角色存活,你的手牌上限便+2。',
mengjin_info:'当你使用的【杀】被【闪】抵消时,你可以弃置目标角色的一张牌。',
xiahouyuan:'夏侯渊',
re_xiahouyuan:'夏侯渊',
re_huangzhong:'黄忠',
re_weiyan:'魏延',
re_xiaoqiao:'小乔',
gz_xiahouyuan:'夏侯渊',
gz_huangzhong:'黄忠',
gz_weiyan:'魏延',
gz_xiaoqiao:'小乔',
gz_xuhuang:'徐晃',
gz_pangde:'庞德',
xuhuang:'旧徐晃',
pangde:'旧庞德',
xiahouyuan:'旧夏侯渊',
caoren:'曹仁',
huangzhong:'黄忠',
huangzhong:'黄忠',
sp_zhangjiao:'张角',
weiyan:'魏延',
xiaoqiao:'小乔',
weiyan:'魏延',
xiaoqiao:'小乔',
zhoutai:'周泰',
zhangjiao:'旧张角',
yuji:'于吉',
@ -6737,6 +6755,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
guhuo_info:'每名角色的回合限一次你可以扣置一张手牌当一张基本牌或普通锦囊牌使用或打出。其他角色依次选择是否质疑。一旦有其他角色质疑则翻开此牌若为假则此牌作废若为真则质疑角色获得技能“缠怨”锁定技你不能质疑于吉只要你的体力值为1你失去你的武将技能',
fenji_info:'每当一名角色的手牌于回合外被其他角色弃置或获得时你可以失去1点体力然后令该角色摸两张牌。',
gzduanliang:'断粮',
gzduanliang_info:'你可以将一张黑色基本牌或黑色装备牌当【兵粮寸断】使用你可以对距离为2的角色使用【兵粮寸断】',
shenhua_feng:'神话再临•风',
shenhua_huo:'神话再临•火',
shenhua_lin:'神话再临•林',

View File

@ -5,7 +5,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true,
characterSort:{
sp:{
sp_default:["caoying","simahui","baosanniang","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","liuxie","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","fuwan","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","lingju","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","guansuo","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","wenyang"],
sp_default:["caoying","simahui","baosanniang","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","liuxie","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","fuwan","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","lingju","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","guansuo","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","wenyang","guanlu","gexuan"],
sp_whlw:["xurong","lijue","zhangji","fanchou","guosi"],
sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"],
sp_longzhou:["xf_tangzi","xf_huangquan","xf_sufei","sp_liuqi"],
@ -18,6 +18,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
character:{
guanlu:['male','wei',3,['tuiyan','busuan','mingjie']],
gexuan:['male','wu',3,['lianhua','zhafu']],
wenyang:['male','wei',5,['xinlvli','choujue']],
mangyachang:["male","qun",4,["spjiedao"],[]],
xugong:["male","wu",3,["biaozhao","yechou"],[]],
@ -155,6 +157,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//kaisa:["male","western",4,["zhengfu"]],
},
characterIntro:{
guanlu:"管辂209年256年字公明平原今山东德州平原县人。三国时期曹魏术士。年八九岁便喜仰观星辰。成人后精通《周易》善于卜筮、相术习鸟语相传每言辄中出神入化。体性宽大常以德报怨。正元初为少府丞。北宋时被追封为平原子。管辂是历史上著名的术士被后世奉为卜卦观相的祖师。",
gexuan:"葛玄164年-244年汉族吴丹阳郡句容县都乡吉阳里人今句容市祖籍山东琅琊三国著名高道道教灵宝派祖师。字孝先号仙翁被尊称为“葛天师”。道教尊为葛仙翁又称太极仙翁与张道陵、许逊、萨守坚共为四大天师。为汉下邳僮侯葛艾后裔祖葛矩安平太守黄门郎从祖葛弥豫章第五郡太守。父葛焉字德儒州主簿山阴令散骑常侍大尚书。随左慈学道得《太清丹经》、《黄帝九鼎神丹经》、《金液丹经》等道经。曾采药海山吴嘉禾二年233年在閤皂山修道建庵筑坛立炉修炼九转金丹。喜好遨游山川去过括苍山、南岳山、罗浮山。编撰《灵宝经诰》精研上清、灵宝等道家真经并嘱弟子世世箓传。",
wenyang:"文俶238年—291年一作文淑字次骞小名阿鸯世称文鸯谯郡今安徽亳州市人。魏末晋初名将曹魏扬州刺史文钦之子。骁勇善战依附大将军曹爽效忠于王室。司马师废黜皇帝曹芳后随父联合毌丘俭于淮南起兵勤王。兵败之后向南投奔吴国。诸葛诞发动淮南叛乱奉命率军驰援。双方发生内讧父亲为诸葛诞所害遂降于司马昭封关内侯。西晋建立后任平虏护军。咸宁三年277年拜平西将军、都督凉秦雍州三州军事大破鲜卑首领秃发树机能名震天下迁使持节、护东夷校尉、监辽东军事。八王之乱中为诸葛诞外孙、东安王司马繇所诬杀惨遭灭族时年五十四岁。",
jianggan:"蒋干,字子翼,汉末三国时期的人物,九江(治今安徽寿县)人。历史上的蒋干是当时的名士、辩论家。而罗贯中在历史小说《三国演义》中则将蒋干刻画成了被周瑜所愚弄的小丑形象。",
zhangchangpu:"钟会的母亲。《母夫人张氏传》:夫人张氏,字昌蒲,太原兹氏人,太傅定陵成侯之命妇也。",
@ -556,6 +560,207 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//管辂和葛玄
lianhua:{
audio:2,
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]={
red:0,black:0,
}
},
marktext:'丹',
intro:{
name:'丹血',
markcount:function(storage){
return storage.red+storage.black;
},
content:function(storage){
return '共有'+(storage.red+storage.black)+'个标记';
},
},
trigger:{global:'damage'},
forced:true,
filter:function(event,player){
return event.player!=player&&_status.currentPhase!=player;
},
content:function(){
player.storage.lianhua[player.getFriends().contains(trigger.player)?'red':'black']++;
player.markSkill('lianhua');
},
group:'lianhua_harmonia',
subSkill:{
harmonia:{
forced:true,
audio:'lianhua',
sub:true,
trigger:{player:'phaseBegin'},
forced:true,
content:function(){
var cards=[];
var cards2=[];
var skill='';
var red=player.storage.lianhua.red;
var black=player.storage.lianhua.black;
player.storage.lianhua={red:0,black:0};
player.unmarkSkill('lianhua');
if(red+black<4){
cards=['tao'];
skill='reyingzi';
}
else if(red>black){
cards=['wuzhong'];
skill='reguanxing';
}
else if(red<black){
cards=['shunshou'];
skill='zhiyan';
}
else{
cards=['sha','juedou'];
skill='gongxin';
}
for(var i=0;i<cards.length;i++){
var card=get.cardPile2(function(shiona){
return shiona.name==cards[i];
});
if(card) cards2.push(card);
}
player.addTempSkill(skill);
if(cards2.length) player.gain(cards2,'gain2','log');
},
},
},
},
zhafu:{
enable:'phaseUse',
limited:true,
skillAnimation:true,
animationColor:'wood',
filterTarget:lib.filter.notMe,
content:function(){
player.awakenSkill('zhafu');
target.addSkill('zhafu_hf');
target.storage.zhafu_hf=player;
},
subSkill:{
hf:{
trigger:{
player:'phaseDiscardBegin'
},
forced:true,
popup:false,
charlotte:true,
onremove:true,
content:function(){
'step 0'
if(player.countCards('h')<=1||player.storage.zhafu_hf.isDead()) event.goto(3);
'step 1'
player.storage.zhafu_hf.logSkill('zhafu_hf',player);
player.chooseCard('h',true,'选择保留一张手牌,将其余的手牌交给'+get.translation(player.storage.zhafu_hf)).ai=get.value;
'step 2'
var cards=player.getCards('h');
cards.remove(result.cards[0]);
player.storage.zhafu_hf.gain(cards,player,'giveAuto');
'step 3'
player.removeSkill('zhafu_hf');
},
},
},
},
tuiyan:{
trigger:{player:'phaseUseBegin'},
frequent:true,
content:function(){
'step 0'
var cards=get.cards(2);
event.cards=cards;
player.chooseControl('ok').set('dialog',['卜卦',cards]);
'step 1'
while(cards.length){
ui.cardPile.insertBefore(cards.pop(),ui.cardPile.firstChild);
}
game.updateRoundNumber();
},
},
busuan:{
enable:'phaseUse',
usable:1,
filterTarget:lib.filter.notMe,
content:function(){
'step 0'
var list=[];
for(var i=0;i<lib.inpile.length;i++){
var name=lib.inpile[i];
var type=get.type(name,'trick');
if(['basic','trick'].contains(type)) list.push([type,'',name]);
}
player.chooseButton(['选择至多两种牌',[list,'vcard']],true,[1,2]).set('ai',function(button){
var target=_status.event.getParent('busuan').target;
return get.attitude(_status.event.player,target)*get.useful({name:button.link[2]});
});
'step 1'
target.storage.busuan_angelbeats=result.links.slice(0);
target.addSkill('busuan_angelbeats');
},
ai:{
order:1,
result:{
target:function(player,target){
var att=get.attitude(player,target);
if(att>0) return 1
return -5/(target.countCards('h')+1);
},
},
},
},
busuan_angelbeats:{
trigger:{player:'drawBefore'},
forced:true,
filter:function(event,player){
return event.getParent().name=='phaseDraw';
},
onremove:true,
content:function(){
trigger.cancel();
'step 0'
var list=player.storage['busuan_angelbeats'];
var cards=[];
for(var i=0;i<list.length;i++){
var card=get.cardPile(function(cardx){
return !cards.contains(cardx)&&cardx.name==list[Math.min(i,list.length-1)][2];
});
if(card) cards.push(card);
}
if(cards.length) player.gain(cards,'draw');
'step 1'
player.removeSkill('busuan_angelbeats');
},
},
mingjie:{
trigger:{player:'phaseEnd'},
check:function(){
return ui.cardPile.hasChildNodes()&&get.color(ui.cardPile.firstChild)!='black';
},
content:function(){
'step 0'
event.count=0;
'step 1'
player.draw('visible');
event.count++;
'step 2'
if(Array.isArray(result)){
if(get.color(result[0])=='black'){
player.loseHp();
event.finish();
}
else if(event.count<3) player.chooseBool('是否继续发动【命戒】?').ai=lib.skill.mingjie.check;
}
else event.finish();
'step 3'
if(result.bool) event.goto(1);
},
},
//文鸯
xinlvli:{
audio:'lvli',
@ -1457,11 +1662,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//英文版特典武将凯撒
zhengfu:{
trigger:{
player:"shaBegin",
player:"useCardToPlayered",
},
check:function (event,player){
return get.attitude(player,event.target)<0;
},
filter:function(event,player){
return event.card.name=='sha';
},
logTarget:"target",
line:false,
content:function (){
@ -1485,7 +1693,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var cards=result.cards;
player.gain(cards,trigger.target,'giveAuto');
}
else trigger.directHit=true;
else trigger.getParent().directHit.add(trigger.target);
game.delay();
},
},
@ -1967,7 +2175,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_shichou:{
audio:2,
trigger:{
player:'useCard',
player:'useCard2',
},
direct:true,
filter:function(event,player){
@ -2589,7 +2797,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
subSkill:{
add:{
audio:'bmcanshi',
trigger:{player:'useCard'},
trigger:{player:'useCard2'},
filter:function(event,player){
if(!event.targets||event.targets.length!=1) return false;
var info=get.info(event.card);
@ -2631,7 +2839,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
remove:{
audio:'bmcanshi',
trigger:{target:'useCardToBefore'},
trigger:{
target:'useCardToTarget',
},
check:function(event,player){
return get.attitude(event.player,player)<0&&get.effect(player,event.card,event.player,player)<0;
},
@ -2641,7 +2851,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return event.player.hasSkill('zongkui_mark');
},
content:function(){
trigger.cancel();
trigger.getParent().excluded.add(player);
game.delay();
trigger.player.removeSkill('zongkui_mark');
}
@ -3010,7 +3220,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
qianya:{
audio:2,
trigger:{target:'useCardToBegin'},
trigger:{target:'useCardToTargeted'},
direct:true,
filter:function(event,player){
return get.type(event.card,'trick')=='trick'&&player.countCards('h');
@ -4004,7 +4214,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
zfengshi:{
audio:'fengshi',
trigger:{player:'shaBegin'},
trigger:{player:'useCardToPlayered'},
filter:function(event,player){
return event.target.countCards('e');
},
@ -4396,7 +4606,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
sheyan:{
audio:2,
trigger:{global:'useCard'},
trigger:{target:'useCardToTarget'},
filter:function(event,player){
if(!event.targets||!event.targets.contains(player)) return false;
var info=get.info(event.card);
@ -4472,7 +4682,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.targets.push(event.target);
}
else{
trigger.targets.remove(event.target);
trigger.getParent().excluded.add(event.target);
}
},
ai:{
@ -4768,7 +4978,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
duanbing:{
audio:2,
audioname:['heqi'],
trigger:{player:'useCard'},
trigger:{player:'useCard2'},
filter:function(event,player){
if(event.card.name!='sha') return false;
return game.hasPlayer(function(current){
@ -6430,7 +6640,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
jili:{
audio:2,
trigger:{global:'useCard'},
trigger:{
global:'useCardToTarget'
},
forced:true,
check:function(event,player){
return get.effect(player,event.card,event.player,player)>0;
@ -6452,7 +6664,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
autodelay:true,
content:function(){
trigger.targets.add(player);
trigger.getParent().targets.add(player);
trigger.player.line(player,'green');
}
},
@ -6642,10 +6854,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
qizhi:{
audio:2,
trigger:{player:'useCard'},
trigger:{
player:'useCardToPlayered'
},
direct:true,
filter:function(event,player){
if(!event.targets) return false;
if(event.getParent().triggeredTargets3.length>1) return false;
if(_status.currentPhase!=player) return false;
var type=get.type(event.card,'trick');
if(type!='basic'&&type!='trick') return false;
@ -6995,9 +7210,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
zhenwei:{
audio:2,
trigger:{global:'useCardToBefore'},
trigger:{
global:'useCardToTarget'
},
direct:true,
priority:5,
filter:function(event,player){
if(player==event.target||player==event.player) return false;
if(!player.countCards('he')) return false;
@ -7060,12 +7276,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 2"
if(result.control=='转移'){
player.draw();
trigger.target=player;
trigger.targets.length=0;
trigger.targets.push(player);
trigger.getParent().targets.push(player);
trigger.untrigger();
trigger.trigger('useCardToBefore');
trigger.trigger(trigger.card.name+'Before');
trigger.player.line(player);
}
else{
@ -7081,7 +7293,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.player.markSkill('zhenwei2');
event.trigger("addCardToStorage");
}
trigger.cancel();
trigger.getParent().excluded.add(trigger.target);
trigger.player.addSkill('zhenwei2');
}
game.delay();
@ -8927,8 +9139,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
fengpo:{
audio:2,
trigger:{player:['shaBegin','juedouBegin']},
trigger:{
player:'useCardToPlayered',
},
filter:function(event,player){
if(!['sha','juedou'].contains(event.card.name)) return false;
if(player.hasSkill('fengpo3')) return false;
return player.isPhaseUsing()&&event.target&&event.targets&&event.targets.length==1;
},
@ -8945,10 +9160,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.draw(nd);
}
else{
if(typeof trigger.extraDamage!='number'){
trigger.extraDamage=0;
var trigger2=trigger.getParent();
if(typeof trigger2.extraDamage!='number'){
trigger2.extraDamage=0;
}
trigger.extraDamage+=nd;
trigger2.extraDamage+=nd;
}
}
}
@ -9320,17 +9536,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
danlao:{
priority:9,
audio:2,
filter:function(event,player){
return event.player!=player&&!event.excluded.contains(player)&&get.type(event.card)=='trick'&&event.targets&&event.targets.length>1&&event.targets.contains(player);
return event.player!=player&&get.type(event.card)=='trick'&&event.targets&&event.targets.length>1;
},
check:function(event,player){
return get.tag(event.card,'multineg')||get.effect(player,event.card,event.player,player)<=0;
},
trigger:{global:'useCard'},
trigger:{target:'useCardToTargeted'},
content:function(){
trigger.excluded.add(player);
trigger.getParent().excluded.add(player);
player.draw();
},
ai:{
@ -9934,14 +10149,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
kaikang:{
audio:2,
trigger:{global:'shaBegin'},
trigger:{global:'useCardToTargeted'},
filter:function(event,player){
return get.distance(player,event.target)<=1;
return event.card.name=='sha'&&get.distance(player,event.target)<=1;
},
check:function(event,player){
return get.attitude(player,event.target)>=0;
},
priority:7,
content:function(){
"step 0"
player.draw();
@ -10182,7 +10396,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
moukui:{
trigger:{player:'shaBegin'},
trigger:{player:'useCardToPlayered'},
direct:true,
audio:2,
content:function(){
@ -11852,7 +12066,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
logTarget:'source',
prompt2:'每当你发动“龙胆”使用或打出一张手牌时,你可以立即获得对方的一张手牌。',
content:function(){
player.gainPlayerCard(trigger.target,'h',true);
player.gainPlayerCard(trigger.source,'h',true);
}
},
lihun:{
@ -11987,7 +12201,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
tianming:{
audio:2,
trigger:{target:'shaBegin'},
trigger:{target:'useCardToTargeted'},
check:function(event,player){
var cards=player.getCards('h');
if(cards.length<=2){
@ -11997,6 +12211,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
return true;
},
filter:function(event,player){
return event.card.name=='sha';
},
content:function(){
"step 0"
player.chooseToDiscard(2,true,'he');
@ -12432,7 +12649,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jianggan:"蒋干",
wenyang:'文鸯',
diy_wenyang:'文鸯',
guanlu:'管辂',
gexuan:'葛玄',
tuiyan:'推演',
tuiyan_info:'出牌阶段开始时,你可以观看牌堆顶的两张牌。',
busuan:'卜算',
busuan_info:'出牌阶段限一次,你可以选择一名其他角色,然后选择至多两张不同的卡牌名称(限基本牌或锦囊牌)。该角色下次摸牌阶段摸牌时,改为从牌堆或弃牌堆中获得你选择的牌。',
busuan_angelbeats:'卜算',
mingjie:'命戒',
mingjie_info:'结束阶段你可以摸一张牌若此牌为红色你可以重复此流程直到摸到黑色牌或摸到第三张牌。当你以此法摸到黑色牌时你失去1点体力。',
lianhua:'炼化',
lianhua_info:'你的回合外,每当有其他角色受到伤害后,你获得一个“丹血”标记 该角色与你阵营一致为红色不一致为黑色此颜色对玩家不可见直到你的准备阶段开始。准备阶段根据你获得的“丹血”标记的数量和颜色你获得相应的游戏牌以及获得相应技能直到回合结束。3枚或以下“英姿”和【桃】超过3枚且红色“丹血”较多“观星”和【无中生有】超过3枚且黑色“丹血”较多“直言”和【顺手牵羊】超过3枚且红色和黑色一样多【杀】、【决斗】和“攻心”。',
zhafu:'札符',
zhafu_info:' 限定技,出牌阶段,你可以选择一名其他角色。该角色的下一个弃牌阶段开始时,其选择保留一张手牌,然后将其余的手牌交给你。',
xinlvli:'膂力',
xinlvli_info:'每回合限一次当你造成伤害后你可选择1若你的体力值大于你的手牌数你摸张牌2若你的手牌数大于你的体力值且你已受伤你回复点体力为你的手牌数与体力值之差。',
lvli:'膂力',
@ -12633,7 +12863,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
bingzheng:'秉正',
bingzheng_info:'出牌阶段结束时,你可以令手牌数不等于体力值的一名角色弃置一张手牌或摸一张牌。然后若其手牌数等于体力值,你摸一张牌,且可以交给该角色一张牌',
sheyan:'舍宴',
sheyan_info:'当你成为一张普通锦囊牌的目标时(借刀杀人等带有指向目标的锦囊除外),你可以为此牌增加一个目标或减少一个目标(目标数至少为一)',
sheyan_info:'当你成为一张普通锦囊牌的目标时(借刀杀人等带有指向目标的锦囊除外),你可以为此牌增加一个目标或令其对其中一个目标无效。(有效目标数至少为一)',
fuman:'抚蛮',
fuman2:'抚蛮',
fuman_info:'出牌阶段,你可以将一张【杀】交给一名本回合未获得过“抚蛮”牌的其他角色,然后其于下个回合结束之前使用“抚蛮”牌时,你摸一张牌',

View File

@ -1426,10 +1426,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
tieji:{
audio:2,
trigger:{player:'shaBegin'},
trigger:{player:'useCardToPlayered'},
check:function(event,player){
return get.attitude(player,event.target)<=0;
},
filter:function(event,player){
return event.card.name=='sha';
},
logTarget:'target',
content:function(){
"step 0"
@ -1444,7 +1447,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
"step 1"
if(result.bool){
trigger.directHit=true;
trigger.getParent().directHit.add(trigger.target);
}
}
},
@ -1829,10 +1832,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liuli:{
audio:2,
audioname:['re_daqiao','daxiaoqiao'],
trigger:{target:'shaBefore'},
trigger:{target:'useCardToTarget'},
direct:true,
priority:5,
filter:function(event,player){
if(event.card.name!='sha') return false;
if(player.countCards('he')==0) return false;
return game.hasPlayer(function(current){
return get.distance(player,current,'attack')<=1&&current!=event.player&&
@ -1846,6 +1849,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filterCard:lib.filter.cardDiscardable,
filterTarget:function(card,player,target){
var trigger=_status.event.getTrigger();
if(trigger.targets.contains(target)) return false;
if(get.distance(player,target,'attack')<=1&&
target!=trigger.player){
if(player.canUse(trigger.card,target)) return true;
@ -1875,24 +1879,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
"step 1"
if(result.bool){
player.discard(result.cards);
var target=result.targets[0];
player.logSkill(event.name,target);
trigger.target=target;
player.discard(result.cards);
var evt=trigger.getParent();
if(evt&&evt.targets&&evt.num){
trigger.targets[evt.num]=target;
evt.targets[evt.num]=target;
evt.targets.remove(player);
evt.targets.push(target);
}
}
else{
event.finish();
}
"step 2"
trigger.untrigger();
trigger.trigger('useCardToBefore');
trigger.trigger('shaBefore');
game.delay();
},
ai:{
effect:{

View File

@ -1036,10 +1036,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
usable:1,
audio:2,
trigger:{
player:"useCard",
player:"useCardToPlayered",
},
direct:true,
filter:function (event,player){
if(event.getParent().triggeredTargets3.length>1) return false;
if(!player.isPhaseUsing()) return false;
if(!['basic','trick'].contains(get.type(event.card))) return false;
if(get.tag(event.card,'damage')) return true;
@ -2253,11 +2254,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_zhennan":{
audio:2,
trigger:{
global:"useCard",
target:"useCardToTargeted",
},
filter:function (event,player){
if(event.card.name!='nanman') return false;
return event.targets.contains(player);
return event.card.name=='nanman';
},
direct:true,
content:function (){
@ -2861,11 +2861,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
audio:2,
trigger:{
player:"useCard",
player:"useCardToPlayered",
},
frequent:true,
filter:function (event,player){
if(player!=_status.currentPhase) return false;
if(event.getParent().triggeredTargets>1) return false;
if(get.type(event.card)=='equip'&&get.subtype(event.card)!='equip1') return false;
if(event.targets.contains(player)) return true;
return false;
@ -3778,11 +3779,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_tushe":{
audio:2,
trigger:{
player:"useCard",
player:"useCardToPlayered",
},
frequent:true,
filter:function (event,player){
if(get.type(event.card)=='equip') return false;
if(event.getParent().triggeredTargets>1) return false;
return event.targets.length>0&&!player.countCards('h',{type:'basic',});
},
content:function (){

View File

@ -195,7 +195,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xindanshou:{
audio:'danshou',
trigger:{
global:['useCard','phaseEnd','phaseBefore']
global:['phaseEnd','phaseBefore'],
player:'useCardToTargeted',
},
forced:true,
popup:false,
@ -251,7 +252,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:['xinbenxi_summer','xinbenxi_damage'],
audio:'benxi',
trigger:{
player:'useCard',
player:'useCard2',
},
forced:true,
mod:{
@ -463,7 +464,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var pe=player.countCards('h');
var te=target.countCards('h');
if(s.contains('大于')&&pe>te) return false;
if((s.contains('等于')||te==0)&&pe==te) return false;
if((s.contains('等于')||target.countCards('he')==0)&&pe==te) return false;
if(s.contains('小于')&&pe<te) return false;
return true;
}).ai=function(target){
@ -654,16 +655,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audioname:['guansuo'],
content:function(){
'step 0'
player.loseHp();
player.phaseUse().xindangxian=true;
'step 1'
var card=get.cardPile(function(card){
return card.name=='sha';
});
if(card) player.gain(card,'gain2');
'step 2'
game.updateRoundNumber();
player.phaseUse();
'step 3'
var stat=player.getStat();
stat.card={};
for(var i in stat.skill){
@ -675,7 +668,40 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
if(bool) stat.skill[i]=0;
}
},
group:'xindangxian_rewrite',
subSkill:{
rewrite:{
trigger:{player:'phaseUseBegin'},
forced:true,
popup:false,
filter:function(kagari){
return kagari.xindangxian==true;
},
content:function(){
'step 0'
if(player.storage.xinfuli){
player.chooseBool('是否失去1点体力并获得一张【杀】').ai=function(){
return player.hp>2&&!player.hasSha();
};
}
else event._result={bool:true};
'step 1'
if(!result.bool){
event.finish();
return;
}
player.loseHp();
'step 2'
var card=get.cardPile(function(card){
return card.name=='sha';
});
if(card) player.gain(card,'gain2');
'step 3'
game.updateRoundNumber();
},
},
},
},
xinjunxing:{
inherit:'junxing',
@ -1109,6 +1135,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return _status.event.player.hasSkill('xincaishi_0')?[1,2]:[1,1];
},
check:function(){return 1},
discard:false,
lose:false,
content:function(){
'step 0'
event.suits=[];
@ -1773,12 +1801,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
subSkill:{
use:{
audio:"zhuandui",
trigger:{player:'shaBegin'},
trigger:{player:'useCardToPlayered'},
check:function(event,player){
return get.attitude(player,event.target)<0;
},
filter:function(event,player){
return player.canCompare(event.target);
return event.card.name=='sha'&&player.canCompare(event.target);
},
logTarget:'target',
content:function(){
@ -1786,18 +1814,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.chooseToCompare(trigger.target);
'step 1'
if(result.bool){
trigger.directHit=true;
trigger.getParent().directHit.add(trigger.target);
}
}
},
respond:{
audio:"zhuandui",
trigger:{target:'shaBegin'},
trigger:{target:'useCardToTargeted'},
check:function(event,player){
return get.effect(player,event.card,event.player,player)<0;
},
filter:function(event,player){
return player.canCompare(event.player);
return event.card.name=='sha'&&player.canCompare(event.player);
},
logTarget:'player',
content:function(){
@ -1805,7 +1833,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.chooseToCompare(trigger.player);
'step 1'
if(result.bool){
trigger.cancel();
trigger.getParent().excluded.add(player);
}
}
}
@ -1862,7 +1890,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
jianzheng:{
audio:2,
trigger:{global:'useCard'},
trigger:{global:'useCardToPlayer'},
filter:function(event,player){
if(!player.countCards('h')) return false;
return event.player!=player&&event.card.name=='sha'&&!event.targets.contains(player)&&
@ -1905,8 +1933,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 1"
if(result.bool&&result.cards){
event.card=result.cards[0];
trigger.targets.length=0;
trigger.untrigger();
trigger.getParent().targets=[];
}
else{
event.finish();
@ -1928,13 +1955,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.card){
event.card.fix();
ui.cardPile.insertBefore(event.card,ui.cardPile.firstChild);
game.updateRoundNumber();
}
"step 5"
if(get.color(trigger.card)!='black'){
trigger.targets.push(player);
trigger.getParent().targets.push(player);
trigger.player.line(player);
game.delay();
trigger.trigger('useCard');
}
}
},
@ -2230,7 +2257,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
bizhuan:{
audio:2,
trigger:{player:'useCardAfter',target:'useCardToBegin'},
trigger:{player:'useCardAfter',target:'useCardToTargeted'},
filter:function(event,player){
if(event.name!='useCard'&&event.player==event.target) return false;
if(player.storage.bizhuan.length>=4) return false;
@ -2934,7 +2961,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
red2:{},
red:{
trigger:{player:'useCard'},
trigger:{player:'useCard2'},
direct:true,
mark:true,
onremove:true,
@ -5108,7 +5135,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
benxi:{
audio:2,
trigger:{player:'useCard'},
trigger:{player:'useCard2'},
forced:true,
filter:function(event,player){
return player.isPhaseUsing();
@ -6262,8 +6289,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
zuoding:{
trigger:{global:'useCard'},
trigger:{global:'useCardToPlayered'},
filter:function(event,player){
if(event.getParent().triggeredTargets.length>1) return false;
return !player.hasSkill('zuoding2')&&get.suit(event.card)=='spade'&&
_status.currentPhase==event.player&&event.targets&&event.targets.length&&
event.player!=player;
@ -6836,20 +6864,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
xinpojun:{
trigger:{player:'shaBegin'},
trigger:{player:'useCardToPlayered'},
direct:true,
filter:function(event,player){
return player.isPhaseUsing()&&event.target.hp>0&&event.target.countCards('he')>0;
return event.card.name=='sha'&&player.isPhaseUsing()&&event.target.hp>0&&event.target.countCards('he')>0;
},
audio:2,
logTarget:'target',
content:function(){
'step 0'
player.choosePlayerCard(trigger.target,'he',
[1,Math.min(trigger.target.countCards('he'),trigger.target.hp)],get.prompt('pojun',trigger.target));
[1,Math.min(trigger.target.countCards('he'),trigger.target.hp)],get.prompt('xinpojun',trigger.target));
'step 1'
if(result.bool&&result.links.length){
player.logSkill('xinpojun');
player.logSkill('xinpojun',trigger.target);
if(trigger.target.storage.xinpojun2){
trigger.target.storage.xinpojun2=trigger.target.storage.xinpojun2.concat(result.links);
}
@ -7472,7 +7499,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
qiaoshui3:{
trigger:{player:'useCard'},
trigger:{player:'useCard2'},
direct:true,
filter:function(event,player){
var type=get.type(event.card);
@ -7831,7 +7858,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
chanhui:{
audio:2,
trigger:{player:'useCard'},
trigger:{player:'useCardToPlayer'},
filter:function(event,player){
if(_status.currentPhase!=player) return false;
if(player.hasSkill('chanhui2')) return false;
@ -7873,13 +7900,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result.bool){
player.gain(result.cards,event.target,'giveAuto');
trigger.untrigger();
trigger.player=event.target;
trigger.trigger('useCard');
trigger.getParent().player=event.target;
game.log(event.target,'成为了',trigger.card,'的使用者');
}
else{
game.log(event.target,'成为了',trigger.card,'的额外目标');
trigger.targets.push(event.target);
trigger.getParent().targets.push(event.target);
}
}
},
@ -8207,13 +8233,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
qiuyuan:{
audio:2,
trigger:{target:'shaBefore'},
trigger:{target:'useCardToTarget'},
direct:true,
priority:11,
filter:function(event,player){
return event.card.name=='sha';
},
content:function(){
"step 0"
player.chooseTarget(get.prompt2('qiuyuan'),function(card,player,target){
return target!=player&&_status.event.getTrigger().player.canUse('sha',target,false);
return target!=player&&!_status.event.getTrigger().targets.contains(target)&&_status.event.getTrigger().player.canUse('sha',target,false);
}).set('ai',function(target){
var trigger=_status.event.getTrigger();
var player=_status.event.player;
@ -8239,7 +8267,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.delay();
}
else{
trigger.targets.push(event.target);
trigger.getParent().targets.push(event.target);
game.log(event.target,'成为了额外目标');
}
},
@ -8762,7 +8790,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhenlie:{
audio:2,
filter:function(event,player){
return event.player!=player&&event.targets&&event.targets.contains(player)&&(!event.excluded||!event.excluded.contains(player))&&event.card&&(event.card.name=='sha'||get.type(event.card)=='trick');
return event.player!=player&&event.card&&(event.card.name=='sha'||get.type(event.card)=='trick');
},
logTarget:'player',
check:function(event,player){
@ -8787,13 +8815,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
return false;
},
priority:10,
trigger:{global:'useCard'},
trigger:{target:'useCardToTargeted'},
content:function(){
"step 0"
player.loseHp();
"step 1"
trigger.excluded.add(player);
trigger.getParent().excluded.add(player);
"step 2"
if(trigger.player.countCards('he')){
player.discardPlayerCard(trigger.player,'he',true);
@ -9017,13 +9044,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
check:function(){return false;},
content:function(){
trigger.cancel();
var ex=0;
if(trigger.card&&trigger.card.name=='sha'){
if(player.hasSkill('jiu')) ex++;
if(player.hasSkill('luoyi2')) ex++;
if(player.hasSkill('reluoyi2')) ex++;
}
trigger.player.loseHp(trigger.num+ex);
trigger.player.loseHp(trigger.num);
},
ai:{
jueqing:true
@ -10804,7 +10825,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
kuangbi:'匡弼',
kuangbi_info:'出牌阶段限一次,你可以选择一名有牌的其他角色,该角色将其一至三张牌置于你的武将牌上。若如此做,你的下准备阶段,你获得武将牌上的所有牌,然后其摸等量的牌',
xinzhige:'止戈',
xinzhige_info:'出牌阶段限一次,你可以令一名其他角色交给你一张【杀】或武器牌,否则其视为对你指定的另一名其攻击范围内的角色使用了一张【杀】。',
xinzhige_info:'出牌阶段限一次,你可以令一名攻击范围内含有你的其他角色交给你一张【杀】或武器牌,否则其视为对你指定的另一名其攻击范围内的角色使用了一张【杀】。',
zhige:'止戈',
zhige_info:'出牌阶段限一次,若你的手牌数大于你的体力值,你可以选择攻击范围内含有你的一名其他角色,除非该角色使用一张【杀】,否则其将其装备区里的一张牌交给你',
xinzongzuo:'宗祚',
@ -10854,7 +10875,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dangxian:'当先',
dangxian_info:'锁定技,准备阶段,你执行一个额外的出牌阶段',
xindangxian:'当先',
xindangxian_info:'锁定技,准备阶段,你失去1点体力并从牌堆/弃牌堆中获得一张【杀】,然后执行一个额外的出牌阶段',
xindangxian_info:'锁定技,准备阶段,你执行一个额外的出牌阶段。此阶段开始时,你失去1点体力并从牌堆/弃牌堆中获得一张【杀】(若你已发动过【伏枥】,则可以不发动此效果)。',
longyin:'龙吟',
longyin_info:'每当一名角色在其出牌阶段使用【杀】时,你可弃置一张牌令此【杀】不计入出牌阶段使用次数,若此【杀】为红色,你摸一张牌',
zhongyong:'忠勇',

View File

@ -2279,6 +2279,16 @@ window.noname_asset_list=[
'image/character/ol_yujin.jpg',
'image/character/ol_zhangrang.jpg',
'image/character/ol_zhuran.jpg',
'image/character/ol_liuyu.jpg','
'image/character/ol_wuyi.jpg',
'image/character/guanlu.jpg',
'image/character/gexuan.jpg',
'image/character/re_huangzhong.jpg',
'image/character/re_pangde.jpg',
'image/character/re_weiyan.jpg',
'image/character/re_xiahouyuan.jpg',
'image/character/re_xiaoqiao.jpg',
'image/character/re_xuhuang.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -9497,6 +9497,9 @@
},
element:{
content:{
emptyEvent:function(){
event.trigger(event.name);
},
chooseUseTarget:function(){
'step 0'
if(cards&&get.itemtype(card)!='card'){
@ -13243,6 +13246,11 @@
event.oncard(event.card,event.player);
}
event.excluded=[];
event.directHit=[];
event.trigger('useCard1');
"step 1"
event.trigger('useCard2');
"step 2"
event.trigger('useCard');
event._oncancel=function(){
game.broadcastAll(function(id){
@ -13310,7 +13318,7 @@
}
}
}
"step 1"
"step 3"
var info=get.info(card);
if(info.contentBefore){
var next=game.createEvent(card.name+'ContentBefore');
@ -13332,23 +13340,97 @@
next.type='precard';
if(event.forceDie) next.forceDie=true;
}
"step 2"
"step 4"
event.sortTarget=function(animate){
var info=get.info(card);
if(num==0&&targets.length>1){
if(!info.multitarget){
if(!event.fixedSeat){
targets.sortBySeat(player);
}
for(var i=0;i<targets.length;i++){
if(animate) for(var i=0;i<targets.length;i++){
targets[i].animate('target');
}
}
else{
else if(animate){
for(var i=0;i<targets.length;i++){
targets[i].animate('target');
}
}
}
}
event.sortTarget();
event.getTriggerTarget=function(list1,list2){
for(var i=0;i<list1.length;i++){
if(!list2.contains(list1[i])) return list1[i];
}
return null;
}
"step 5"
if(!event.triggeredTargets1) event.triggeredTargets1=[];
var target=event.getTriggerTarget(targets,event.triggeredTargets1);
if(target){
event.triggeredTargets1.push(target);
var next=game.createEvent('useCardToPlayer',false);
next.setContent('emptyEvent');
next.targets=targets;
next.target=target;
next.card=card;
next.cards=cards;
next.player=player;
if(event.forceDie) next.forceDie=true;
event.redo();
}
"step 6"
if(!event.triggeredTargets2) event.triggeredTargets2=[];
var target=event.getTriggerTarget(targets,event.triggeredTargets2);
if(target){
event.triggeredTargets2.push(target);
var next=game.createEvent('useCardToTarget',false);
next.setContent('emptyEvent');
next.targets=targets;
next.target=target;
next.card=card;
next.cards=cards;
next.player=player;
if(event.forceDie) next.forceDie=true;
event.redo();
}
"step 7"
if(!event.triggeredTargets3) event.triggeredTargets3=[];
var target=event.getTriggerTarget(targets,event.triggeredTargets3);
if(target){
event.triggeredTargets3.push(target);
var next=game.createEvent('useCardToPlayered',false);
next.setContent('emptyEvent');
next.targets=targets;
next.target=target;
next.card=card;
next.cards=cards;
next.player=player;
if(event.forceDie) next.forceDie=true;
event.redo();
}
"step 8"
if(!event.triggeredTargets4) event.triggeredTargets4=[];
var target=event.getTriggerTarget(targets,event.triggeredTargets4);
if(target){
event.triggeredTargets4.push(target);
var next=game.createEvent('useCardToTargeted',false);
next.setContent('emptyEvent');
next.targets=targets;
next.target=target;
next.card=card;
next.cards=cards;
next.player=player;
if(event.forceDie) next.forceDie=true;
event.redo();
}
"step 9"
if(num==0&&targets.length>1){
event.sortTarget(true);
}
var info=get.info(card);
if(targets[num]&&targets[num].isDead()) return;
if(targets[num]&&targets[num].isOut()) return;
if(targets[num]&&targets[num].removed) return;
@ -13376,6 +13458,7 @@
event.targetDelay=false;
}
next.target=targets[num];
if(next.target&&event.directHit.contains(next.target)) next.directHit=true;
if(next.target&&!info.multitarget){
if(num==0&&targets.length>1){
// var ttt=next.target;
@ -13401,12 +13484,12 @@
game.delayx(0.5);
}
}
"step 3"
"step 10"
if(!get.info(event.card).multitarget&&num<targets.length-1&&!event.cancelled){
event.num++;
event.goto(2);
event.goto(9);
}
"step 4"
"step 11"
if(get.info(card).contentAfter){
var next=game.createEvent(card.name+'ContentAfter');
next.setContent(get.info(card).contentAfter);
@ -13418,7 +13501,7 @@
next.type='postcard';
if(event.forceDie) next.forceDie=true;
}
"step 5"
"step 12"
if(event.postAi){
event.player.logAi(event.targets,event.card);
}
@ -13432,7 +13515,7 @@
else{
event.finish();
}
"step 6"
"step 13"
event._oncancel();
},
useSkill:function(){
@ -15554,7 +15637,8 @@
setTimeout(function(){
dialog.delete();
},2000);
var info=[get.translation(this.name)||this.nickname,str];
var name=get.translation(this.name);
var info=[name?(name+'['+this.nickname+']'):this.nickname,str];
lib.chatHistory.push(info);
if(_status.addChatEntry){
if(_status.addChatEntry._origin.parentNode){
@ -22468,7 +22552,7 @@
if(!lib.hookmap[name]&&!lib.config.compatiblemode) return;
if(!game.players||!game.players.length) return;
var event=this;
var start=event.player||game.me||game.players[0];
var start=event.source||event.player||game.me||game.players[0];
if(!game.players.contains(start)){
start=game.findNext(start);
}

View File

@ -1,7 +1,8 @@
window.noname_update={
version:'1.9.94',
update:'1.9.93.3.2',
version:'1.9.94.1',
update:'1.9.94',
changeLog:[
'管辂,葛玄',
'BUG修复',
],
files:[
@ -10,7 +11,7 @@ window.noname_update={
'card/standard.js',
//'card/swd.js',
'card/guozhan.js',
'character/diy.js',
//'character/diy.js',
'character/extra.js',
'character/mobile.js',
'character/old.js',
@ -18,7 +19,7 @@ window.noname_update={
'character/shenhua.js',
'character/sp.js',
//'character/tw.js',
//'character/standard.js',
'character/standard.js',
'character/xinghuoliaoyuan.js',
'character/yijiang.js',
//'mode/doudizhu.js',

BIN
image/character/gexuan.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
image/character/guanlu.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
image/character/ol_wuyi.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View File

@ -2057,10 +2057,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
audio:"kongcheng",
trigger:{
target:"useCardToBefore",
target:"useCardToTarget",
},
forced:true,
priority:15,
check:function (event,player){
return get.effect(event.target,event.card,event.player,player)<0;
},
@ -2068,7 +2067,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return player.countCards('h')==0&&(event.card.name=='sha'||event.card.name=='juedou');
},
content:function (){
trigger.cancel();
trigger.getParent().targets.remove(player);
},
ai:{
effect:{
@ -2788,11 +2787,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
"new_tieji":{
audio:"retieji",
trigger:{
player:"shaBegin",
player:"useCardToPlayered",
},
check:function (event,player){
return get.attitude(player,event.target)<0;
},
filter:function(event){
return event.card.name=='sha';
},
logTarget:"target",
content:function (){
"step 0"
@ -2845,7 +2847,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}).set('num',num).set('suit',suit);
"step 4"
if(!result.bool){
trigger.directHit=true;
trigger.getParent().directHit.add(trigger.target);
}
},
},
@ -3414,7 +3416,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},
use:{
trigger:{global:'useCardToBefore'},
trigger:{global:'useCardToTarget'},
filter:function(event,player){
if(!['basic','trick'].contains(get.type(event.card,'trick'))) return false;
return event.target&&player.sameIdentityAs(event.target)&&event.targets.length==1&&player.storage.qianhuan.length;
@ -3464,7 +3466,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
game.cardsDiscard(card);
player.$throw(card);
player.logSkill('qianhuan',trigger.player);
trigger.cancel();
trigger.getParent().targets.remove(trigger.target);
}
}
}
@ -5130,9 +5132,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
yicheng:{
trigger:{global:'shaBegin'},
trigger:{global:'useCardToTargeted'},
filter:function(event,player){
return event.target.isFriendOf(player);
return event.card.name=='sha'&&event.target.isFriendOf(player);
},
logTarget:'target',
content:function(){
@ -5356,9 +5358,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
fengshi_sha:{
audio:'fengshi',
trigger:{player:'shaBegin'},
trigger:{player:'useCardToPlayered'},
filter:function(event,player){
if(game.countPlayer()<4) return false;
if(event.card.name!='sha'&&game.countPlayer()<4) return false;
return player.siege(event.target)&&game.hasPlayer(function(current){
return current.hasSkill('fengshi')&&current.siege(event.target);
})&&event.target.countCards('e');
@ -5685,7 +5687,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
gzweimu:{
audio:'weimu',
trigger:{target:'useCardToBefore',player:'addJudgeBefore'},
trigger:{target:'useCardToTarget',player:'addJudgeBefore'},
forced:true,
priority:15,
check:function(event,player){
@ -5695,12 +5697,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return get.type(event.card,'trick')=='trick'&&get.color(event.card)=='black';
},
content:function(){
trigger.cancel();
if(trigger.name=='addJudge'){
trigger.cancel();
for(var i=0;i<trigger.cards.length;i++){
trigger.cards[i].discard();
}
}
else trigger.getParent().targets.remove(player);
},
ai:{
effect:{
@ -5712,7 +5715,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
gzqianxun:{
audio:'reqianxun',
trigger:{target:'useCardToBefore',player:'addJudgeBefore'},
trigger:{target:'useCardToTarget',player:'addJudgeBefore'},
forced:true,
priority:15,
check:function(event,player){
@ -5722,12 +5725,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return event.card.name=='shunshou'||event.card.name=='lebu';
},
content:function(){
trigger.cancel();
if(trigger.name=='addJudge'){
trigger.cancel();
for(var i=0;i<trigger.cards.length;i++){
trigger.cards[i].discard();
}
}
else trigger.getParent().targets.remove(player);
},
ai:{
effect:{
@ -5739,7 +5743,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
gzkongcheng:{
audio:'kongcheng',
trigger:{target:'useCardToBefore'},
trigger:{target:'useCardToTarget'},
forced:true,
priority:15,
check:function(event,player){
@ -5749,7 +5753,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return player.countCards('h')==0&&(event.card.name=='sha'||event.card.name=='juedou');
},
content:function(){
trigger.cancel();
trigger.getParent().targets.remove(player);
},
ai:{
effect:{
@ -7344,8 +7348,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
duoshi_info:'出牌阶段限四次,你可以将一张红色手牌当【以逸待劳】使用。',
gzxiaoguo:'骁果',
gzxiaoguo_info:'其他角色的结束阶段开始时你可以弃置一张基本牌令该角色选择一项1.弃置一张装备牌2.受到你对其造成的1点伤害。',
gzduanliang:'断粮',
gzduanliang_info:'你可以将一张黑色基本牌或黑色装备牌当【兵粮寸断】使用你可以对距离为2的角色使用【兵粮寸断】',
guozhan_default:"国战标准",
guozhan_zhen:"君临天下•阵",
@ -7445,6 +7447,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
['heart',1,'wanjian'],
['heart',2,'shan'],
['heart',2,'huogong','fire'],
['heart',3,'wugu'],
['heart',3,'taipingyaoshu'],
['heart',3,'huogong','fire'],
['heart',4,'tao'],