This commit is contained in:
Spmario233 2021-09-11 17:09:08 +08:00
parent 6581338d04
commit 24bf898c8c
52 changed files with 1413 additions and 996 deletions

BIN
audio/die/fengxi.mp3 Normal file

Binary file not shown.

BIN
audio/die/heyan.mp3 Normal file

Binary file not shown.

BIN
audio/die/qiuliju.mp3 Normal file

Binary file not shown.

BIN
audio/die/re_caifuren.mp3 Normal file

Binary file not shown.

BIN
audio/die/tw_dongzhao.mp3 Normal file

Binary file not shown.

BIN
audio/die/tw_gexuan.mp3 Normal file

Binary file not shown.

BIN
audio/skill/boyan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/boyan2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/koulve1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/koulve2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/qingtan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/qingtan2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/qljsuiren1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/qljsuiren2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reqieting1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reqieting2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rexianzhou1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rexianzhou2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/twdanfa1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/twdanfa2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/twlingbao1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/twlingbao2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/twmiaolve1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/twmiaolve2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/twsidao1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/twsidao2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/twyingjia1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/twyingjia2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/yachai1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/yachai2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/yusui1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/yusui2.mp3 Normal file

Binary file not shown.

View File

@ -17,7 +17,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
extra_mobilezhi:['shen_guojia'],
extra_mobilexin:['shen_taishici'],
extra_offline:['shen_diaochan','boss_zhaoyun'],
extra_mini:['mini_zhugeliang','mini_lvbu','mini_lvmeng'],
},
},
character:{
@ -45,10 +44,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shen_caopi:['male','shen',5,['chuyuan','dengji'],['wei']],
shen_zhenji:['female','shen',4,['shenfu','qixian'],['wei']],
boss_zhaoyun:['male','shen',1,['boss_juejing','xinlonghun','zhanjiang'],['shu']],
mini_zhugeliang:['male','shen',3,['qixing','minikuangfeng','minidawu'],['shu']],
mini_lvbu:['male','shen',6,['miniwuqian','minishenfen']],
mini_lvmeng:['male','shen',3,['shelie','minigongxin'],['wu']],
},
characterIntro:{
shen_guanyu:'关羽,字云长。曾水淹七军、擒于禁、斩庞德、威震华夏,吓得曹操差点迁都躲避,但是东吴偷袭荆州,关羽兵败被害。后传说吕蒙因关羽之魂索命而死。',
@ -61,9 +56,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
characterReplace:{
shen_zhangliao:['shen_zhangliao','ol_zhangliao'],
shen_zhugeliang:['shen_zhugeliang','mini_zhugeliang'],
shen_lvbu:['shen_lvbu','mini_lvbu'],
shen_lvmeng:['shen_lvmeng','mini_lvmeng'],
shen_zhaoyun:['shen_zhaoyun','boss_zhaoyun'],
},
characterFilter:{
@ -770,179 +762,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else player.chooseToDiscard('h',true,-num);
},
},
miniwuqian:{
audio:'wuqian',
trigger:{
player:'useCardToPlayered',
},
filter:function(event,player){
return (event.card.name=='sha'||event.card.name=='juedou')&&player==_status.currentPhase&&
player.getHistory('useCard',function(evt){
return (evt.card.name=='sha'||evt.card.name=='juedou');
}).indexOf(event.getParent())==0;
},
forced:true,
logTarget:'target',
content:function(){
trigger.target.addTempSkill('qinggang2');
trigger.target.storage.qinggang2.add(trigger.card);
if(trigger.card.name=='sha'){
var id=trigger.target.playerid;
var map=trigger.getParent().customArgs;
if(!map[id]) map[id]={};
if(typeof map[id].shanRequired=='number'){
map[id].shanRequired++;
}
else{
map[id].shanRequired=2;
}
}
else{
var id=trigger.target.playerid;
var idt=trigger.target.playerid;
var map=trigger.getParent().customArgs;
if(!map[idt]) map[idt]={};
if(!map[idt].shaReq) map[idt].shaReq={};
if(!map[idt].shaReq[id]) map[idt].shaReq[id]=1;
map[idt].shaReq[id]++;
}
},
ai:{
unequip_ai:true,
skillTagFilter:function(player,tag,arg){
if(arg&&arg.name=='sha'&&!player.countUsed('sha')) return true;
return false;
}
}
},
minishenfen:{
audio:'ol_shenfen',
enable:'phaseUse',
skillAnimation:true,
animationColor:'metal',
limited:true,
content:function(){
"step 0"
player.awakenSkill('minishenfen');
player.loseHp(3);
event.delay=false;
event.targets=game.filterPlayer();
event.targets.remove(player);
event.targets.sort(lib.sort.seat);
player.line(event.targets,'green');
event.targets2=event.targets.slice(0);
event.targets3=event.targets.slice(0);
"step 1"
if(event.targets2.length){
event.targets2.shift().damage('nocard');
event.redo();
}
"step 2"
if(event.targets.length){
event.current=event.targets.shift()
if(event.current.countCards('e')) event.delay=true;
event.current.discard(event.current.getCards('e')).delay=false;
}
"step 3"
if(event.delay) game.delay(0.5);
event.delay=false;
if(event.targets.length) event.goto(2);
"step 4"
if(event.targets3.length){
var target=event.targets3.shift();
target.chooseToDiscard(4,'h',true).delay=false;
if(target.countCards('h')) event.delay=true;
}
"step 5"
if(event.delay) game.delay(0.5);
event.delay=false;
if(event.targets3.length) event.goto(4);
},
ai:{
order:10,
result:{
player:function(player){
if(player.hp<5||player.hasUnknown()) return 0;
return game.countPlayer(function(current){
if(current!=player){
return get.sgn(get.damageEffect(current,player,player));
}
});
}
}
}
},
minikuangfeng:{
audio:'kuangfeng',
trigger:{player:'phaseUseEnd'},
direct:true,
filter:function(event,player){
return player.getStorage('qixing').length>0;
},
content:function(){
'step 0'
player.chooseTarget([1,Math.min(game.players.length,player.getStorage('qixing').length)],get.prompt2('minikuangfeng')).set('ai',function(target){
var player=_status.event.player;
var eff=get.damageEffect(target,player,player);
if(target.hp==1||!ui.selected.targets.length) return eff;
return 0;
});
'step 1'
if(result.bool){
event.targets=result.targets;
player.chooseButton(['请选择要移去的“星”',player.getStorage('qixing')],true,result.targets.length).set('ai',function(button){
return -get.value(button.link);
});
}
else event.finish();
'step 2'
var cards=result.links;
player.logSkill('minikuangfeng',targets);
player.$throw(cards,2000);
player.unmarkAuto('qixing',cards);
game.cardsDiscard(cards);
for(var i of targets) i.damage();
},
},
minidawu:{
audio:'dawu',
trigger:{player:'phaseJieshuBegin'},
direct:true,
filter:function(event,player){
return player.getStorage('qixing').length>0;
},
content:function(){
'step 0'
player.chooseButton([get.prompt('minidawu'),player.getStorage('qixing')]).set('ai',function(button){
return 1/Math.max(0.01,get.value(button.link));
});
'step 1'
if(result.bool){
var cards=result.links;
player.logSkill('minidawu');
player.$throw(cards,2000);
player.unmarkAuto('qixing',cards);
game.cardsDiscard(cards);
player.addTempSkill('minidawu2',{player:'phaseBegin'});
}
},
},
minidawu2:{
audio:'dawu',
trigger:{player:'damageBegin3'},
forced:true,
charlotte:true,
content:function(){
trigger.num--;
},
ai:{
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')&&(card.name!='sha'||!player.hasSkill('jiu'))) return 'zerotarget';
},
},
},
},
meihun:{
audio:2,
trigger:{
@ -3674,96 +3493,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
expose:0.4,
}
},
minigongxin:{
audio:'gongxin',
audioname:['re_lvmeng','gexuan'],
trigger:{
player:'useCardToPlayered',
target:'useCardToTargeted',
},
usable:1,
filter:function(event,player){
if(event.player==event.target||event.targets.length!=1) return false;
return (player==event.player?event.target:event.player).countCards('h')>0;
},
logTarget:function(event,player){
return player==event.player?event.target:event.player;
},
check:function(event,player){
return get.attitude(player,player==event.player?event.target:event.player)<=0;
},
content:function(){
"step 0"
var target=(player==trigger.player?trigger.target:trigger.player);
event.target=target;
event.videoId=lib.status.videoId++;
var cards=target.getCards('h');
if(player.isOnline2()){
player.send(function(cards,id){
ui.create.dialog('攻心',cards).videoId=id;
},cards,event.videoId);
}
event.dialog=ui.create.dialog('攻心',cards);
event.dialog.videoId=event.videoId;
if(!event.isMine()){
event.dialog.style.display='none';
}
player.chooseButton().set('filterButton',function(button){
return get.color(button.link)=='red';
}).set('dialog',event.videoId).set('ai',function(button){
return get.value(button.link);
});
"step 1"
if(result.bool){
event.card=result.links[0];
var func=function(card,id){
var dialog=get.idDialog(id);
if(dialog){
for(var i=0;i<dialog.buttons.length;i++){
if(dialog.buttons[i].link==card){
dialog.buttons[i].classList.add('selectedx');
}
else{
dialog.buttons[i].classList.add('unselectable');
}
}
}
}
if(player.isOnline2()){
player.send(func,event.card,event.videoId);
}
else if(event.isMine()){
func(event.card,event.videoId);
}
player.chooseControl('获得此牌','gongxin_top');
}
else{
if(player.isOnline2()){
player.send('closeDialog',event.videoId);
}
event.dialog.close();
event.finish();
}
"step 2"
if(player.isOnline2()){
player.send('closeDialog',event.videoId);
}
event.dialog.close();
var card=event.card;
if(result.control=='gongxin_top'){
player.showCards(card,'置于牌堆顶');
target.lose(card,ui.cardPile,'insert','visible');
game.log(player,'将',event.card,'置于牌堆顶');
}
else{
player.gain(card,target,'give');
}
},
ai:{
threaten:1.7,
expose:0.4,
}
},
"nzry_longnu":{
mark:true,
locked:true,
@ -4610,20 +4339,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
huoxin_control:'惑心',
huoxin:'惑心',
huoxin_info:'出牌阶段限一次你可以展示两张花色相同的手牌并分别交给两名其他角色然后令这两名角色拼点没赢的角色获得1个“魅惑”标记。拥有2个或更多“魅惑”的角色回合即将开始时该角色移去其所有“魅惑”此回合改为由你操控。',
mini_zhugeliang:'SP神诸葛亮',
minikuangfeng:'狂风',
minikuangfeng_info:'出牌阶段结束时你可选择任意名角色并将等量的“星”置入弃牌堆然后对这些角色各造成1点伤害。',
minidawu:'大雾',
minidawu2:'大雾',
minidawu_info:'结束阶段,你可以将一张“星”置入弃牌堆。当你于下回合开始前受到伤害时,此伤害-1。',
mini_lvbu:'SP神吕布',
miniwuqian:'无前',
miniwuqian_info:'锁定技,当你于回合内使用【杀】或【决斗】指定目标后,若此牌是你本回合内使用的第一张【杀】或【决斗】,则你令其每次响应此牌需要使用的【闪】或打出的【杀】的数量+1且令其防具无效直到此牌对其结束。',
minishenfen:'神愤',
minishenfen_info:'限定技出牌阶段你可以失去3点体力对所有其他角色各造成1点伤害。这些角色弃置装备区内的所有牌然后弃置四张手牌。',
mini_lvmeng:'SP神吕蒙',
minigongxin:'攻心',
minigongxin_info:'每回合限一次,当你使用牌指定其他角色为唯一目标后,或成为其他角色使用牌的唯一目标后,你可观看对方的手牌。然后你可以展示其中的一张红色牌并选择一项:①获得此牌。②将此牌置于牌堆顶。',
boss_zhaoyun:'高达一号',
boss_zhaoyun_ab:'神赵云',
boss_juejing:'绝境',
@ -4688,7 +4403,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
extra_mobilezhi:'始计篇·智',
extra_mobilexin:'始计篇·信',
extra_offline:'神话再临·线下',
extra_mini:'欢乐三国杀',
},
};
});

View File

@ -1484,7 +1484,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){
if(event.type!='discard'){
var evt=event.getParent();
if(evt.name!='useCard'&&event.type!='respond') return false;
if(evt.name!='useCard'&&evt.name!='respond') return false;
}
var target=_status.currentPhase;
if(!event.cards2||event.cards2.length!=1||!target||target==player||!target.isIn()) return false;

View File

@ -270,8 +270,6 @@ window.noname_character_rank={
'key_nao',
'key_kotarou',
'key_kyou',
'mini_zhugeliang',
'mini_lvmeng',
],
am:[
'diy_caiwenji',
@ -459,7 +457,6 @@ window.noname_character_rank={
'ns_caoshuang',
'key_shizuku',
'wangrong',
'mini_lvbu',
're_fazheng',
'huaxin',
're_chunyuqiong',
@ -579,7 +576,6 @@ window.noname_character_rank={
'sunquan',
'daqiao',
'diaochan',
'mini_diaochan',
'liubei',
'xf_yiji',
'zhoufei',
@ -668,9 +664,6 @@ window.noname_character_rank={
'nashime',
'ns_huangchengyan',
'ns_yuanxi',
'mini_sunquan',
'mini_zuoci',
'mini_jiangwei',
're_fuhuanghou',
're_gongsunyuan',
're_caozhen',
@ -1018,7 +1011,6 @@ window.noname_character_rank={
'ns_lijue',
'ns_zhangji',
'ol_dingyuan',
'mini_zhangchunhua',
'hucheer',
'jin_xiahouhui',
'xin_zhangfei',
@ -1180,7 +1172,6 @@ window.noname_character_rank={
'ns_zhangwei',
'ol_yuanshao',
'guozhao',
'mini_lvmeng',
'boss_zhaoyun',
'yanghuiyu',
'nanhualaoxian',
@ -1209,6 +1200,7 @@ window.noname_character_rank={
'yangwan',
'shen_guojia',
'shen_taishici',
'tw_gexuan',
'key_tomoya',
'key_masato',
'key_shiorimiyuki',
@ -1362,9 +1354,6 @@ window.noname_character_rank={
'ns_jiaxu',
'liubian',
'simashi',
'mini_zuoci',
'mini_lvbu',
'mini_zhugeliang',
'jin_simayi',
'jin_zhangchunhua',
'liuhong',
@ -1663,10 +1652,6 @@ window.noname_character_rank={
'ns_zhangji',
'ns_fanchou',
'xin_zhuran',
'mini_sunquan',
'mini_jiangwei',
'mini_zhangchunhua',
'mini_diaochan',
'xin_lingtong',
'xin_liubiao',
're_xinxianying',
@ -1717,6 +1702,7 @@ window.noname_character_rank={
'heyan',
're_caifuren',
're_dongbai',
'tw_dongzhao',
],
junk:[
'sunshao',

View File

@ -230,9 +230,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
if(list.length){
var max=Math.min(list.length,cards.length);
player.chooseTarget(true,[1,max],'对至多'+get.cnNumber(max)+'名范围内的角色各造成1点伤害',function(card,player,target){
target.chooseTarget(true,[1,max],'对至多'+get.cnNumber(max)+'名范围内的角色各造成1点伤害',function(card,player,target){
return _status.event.list.contains(target);
}).set('list',list);
}).set('list',list).set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
});
}
else event.finish();
'step 2'

View File

@ -7353,11 +7353,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dongzhuo:['ol_dongzhuo','sp_dongzhuo','re_dongzhuo','dongzhuo'],
dengai:['re_dengai','ol_dengai','dengai'],
sp_zhanghe:['sp_zhanghe','yj_zhanghe'],
jiangwei:['ol_jiangwei','re_jiangwei','mini_jiangwei','jiangwei'],
jiangwei:['ol_jiangwei','re_jiangwei','jiangwei'],
liushan:['ol_liushan','re_liushan','liushan'],
sunce:['re_sunben','re_sunce','sunce'],
zhangzhang:['re_zhangzhang','zhangzhang'],
zuoci:['re_zuoci','mini_zuoci','zuoci'],
zuoci:['re_zuoci','zuoci'],
caiwenji:['re_caiwenji','caiwenji'],
xuyou:['sp_xuyou','xuyou'],
guanqiujian:['guanqiujian','re_guanqiujian','old_guanqiujian'],
@ -7406,7 +7406,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"nzry_kuizhu_info":"弃牌阶段结束后你可以选择一项①令至多X名角色各摸一张牌。②对任意名体力值之和为X的角色造成一点伤害。X为你此阶段弃置的牌数",
"nzry_zhizheng":"掣政",
rechezheng:'掣政',
"nzry_zhizheng_info":"锁定技,你的出牌阶段内,攻击范围内不包含你的其他角色不能成为你使用牌的目标。出牌阶段结束时,若你本阶段内使用的牌数小于这些角色的数量,则你弃置其中一名角色的一张牌。",
"nzry_zhizheng_info":"锁定技,你的出牌阶段内,当你对攻击范围内不包含你的其他角色造成伤害时,防止此伤害。出牌阶段结束时,若你本阶段内使用的牌数小于这些角色的数量,则你弃置其中一名角色的一张牌。",
"nzry_lijun1":"立军",
"nzry_lijun":"立军",
"nzry_lijun_info":"主公技,其他吴势力角色的出牌阶段限一次,其使用【杀】结算后,可以将此【杀】对应的实体牌交给你,然后你可以令其摸一张牌且本阶段内使用【杀】的次数上限+1。",

View File

@ -8,7 +8,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_default:["caoying","simahui","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","xujing","yuantanyuanshang","sunshao","zhangling",'guansuo','baosanniang','ol_zhangchangpu','caoshuang','sp_zhangliao','wolongfengchu','ol_xinxianying','panshu','huangzu','huangchengyan','gaogan','duxi'],
sp_tongque:["liuxie","lingju","fuwan","sp_fuwan","sp_fuhuanghou","sp_jiben"],
sp_zhongdan:["cuiyan","huangfusong"],
sp_guozhan:["zangba","shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan","luyusheng","sp_mifangfushiren","huaxin"],
sp_guozhan:["zangba","shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan","sp_mifangfushiren"],
sp_guozhan2:["mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","liqueguosi","lvfan","cuimao","jiling","zhangren","zoushi","zongyu"],
//sp_single:["niujin"],
sp_others:["hanba","caiyang"],
@ -26,9 +26,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_fuhuanghou:['female','qun',3,['spcangni','spmixin']],
sp_fuwan:['male','qun',3,['spfengyin','spchizhong']],
zongyu:['male','shu',3,['zyqiao','chengshang']],
luyusheng:['female','wu',3,['zhente','zhiwei']],
ol_xinxianying:['female','wei',3,['xincaishi','xinzhongjian']],
huaxin:['male','wei',3,['spwanggui','xibing']],
wolongfengchu:['male','shu',4,['youlong','luanfeng']],
sp_zhangliao:['male','qun',4,['mubing','ziqu','diaoling']],
caoshuang:['male','wei',4,['retuogu','shanzhuan']],
@ -154,9 +152,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zongyu:'宗预264年字德艳 荆州南阳郡安众县今河南省南阳市人。三国时期蜀汉官员、将领。曾随张飞入蜀助平益州又受辟为丞相诸葛亮手下主簿升任参军、右中郎将。诸葛亮逝世后宗预受命出使孙吴得到孙权的赞赏。迁后将军出督永安又升任征西大将军并受封关内侯。公元258年景耀元年因病回成都受任镇军大将军。蜀汉灭亡后宗预随后主刘禅徙往洛阳在中途病逝。宗预为人坦率耿直多次出使孙吴并深得孙权的敬重为吴、汉两国同盟的巩固作出了一定的贡献。',
mifangfushiren:'麋芳(生卒年不详),字子方,东海郡朐县(今江苏省连云港市)人。汉末三国时期蜀国将领,刘备糜夫人的兄弟。麋芳本为徐州牧陶谦部下,曾被曹操表为彭城相。后来辞官,随刘备从徐州辗转至邺城、汝南、新野、长坂坡、江夏等地,奔波多年。傅士仁(生卒年不详),字君义,幽州广阳郡(今北京市)人,刘备手下将领。受到刘备的重用,但被关羽轻慢。<br>刘备称汉中王时,糜芳为南郡太守,但受到关羽的轻慢。后来,因未完成供给军资的任务而被关羽责骂,心中不安。吕蒙袭取荆州时,将已经投降的傅士仁展示给糜芳,麋芳于是选择投降,导致关羽兵败被杀。此后,在吴国担任将军,并且为吴征伐。',
mengda:'孟达(?228字子度本字子敬因刘备的叔父名叫刘子敬为避讳而改字。扶风郡郿人三国时期人物。本为刘璋属下后降刘备。关羽围樊城、襄阳时因不发兵救关羽而触怒刘备于是投奔曹魏。此后劝降刘封未果。在魏官至散骑常侍、建武将军封平阳亭侯。此后又欲反曹魏而归蜀汉事败而死。',
luyusheng:'陆郁生(?年-三国时期吴国官员陆绩之女。陆郁生的父亲陆绩是吴郡公认的才子又是当时吴郡陆氏的领袖。陆绩赴任担任郁林太守遂取此名。陆郁生年少的时候就定下坚贞的志向。建安二十四年219年)陆绩早亡她与两个兄弟陆宏、陆睿当时都只有几岁一起返回吴县被他们的从兄陆瑁接回抚养。13周岁的陆郁生嫁给同郡出身的张白为妻。出嫁3个月后张白因为其兄张温一族的案件遭到连坐被处以流刑后死于流放地陆郁生成为了寡妇其后公开宣言不再改嫁困难于生计但拒绝了所有提亲在艰苦中从未停止服侍、照顾张白的姐妹。事情传到朝廷皇帝褒奖陆郁生号其为“义姑”。她的表侄姚信在文集中称赞她的义举。',
wolongfengchu:'沙比武将,懒得复制粘贴,自己去看诸葛亮和庞统的介绍吧。',
huaxin:'华歆157年232年1月30日字子鱼汉族。平原郡高唐县人今山东省高唐县。汉末至三国曹魏初年名士、重臣。华歆早年拜太尉陈球为师与卢植、郑玄、管宁等为同门又与管宁、邴原共称一龙华歆为龙头。汉灵帝时华歆被举为孝廉任郎中因病去官。又被大将军何进征召为尚书郎。后任豫章太守甚得民心。孙策率军南下华歆举郡投降被奉为上宾。官渡之战时被征为议郎、参司空军事。入为尚书、侍中又代荀彧为尚书令。丞相曹操讨孙权时授华歆为军师。后为魏王国的御史大夫。曹丕即王位拜华歆为相国封安乐乡侯。曹魏建立后其相国职名改称司徒。魏明帝即位升任太尉晋封博平侯。太和五年十二月232年1月华歆去世年七十五谥号“敬”。有文集三十卷今佚失其余见《全三国文》。',
caoshuang:'曹爽249年2月9日字昭伯沛国谯县今安徽亳州市人。三国时期魏国权臣大司马曹真长子。曹爽体态肥胖凭借宗室身份出入宫廷交好太子曹叡。魏明帝即位起家员外散骑侍郎累迁城门校尉、散骑常侍转武卫将军。太和五年231年袭封邵陵侯。景初三年239年魏明帝曹叡病危拜大将军、假黄钺与司马懿并为托孤大臣。少帝曹芳即位加侍中改封武安侯。势倾四海声震天下。任用私人专权乱政侵吞公产。伐蜀失败虚耗国力。起居逾制软禁郭太后。正始十年太傅司马懿发动高平陵政变掌握魏国大权。曹爽失去大将军职务以谋反之罪处死夷灭三族。',
zhangling:'张道陵34年2月22日—156年字辅汉原名陵道教正一道实际创立者汉朝东汉时期丰邑今江苏徐州丰县人。太上老君降临蜀地“授以三天正法命为天师”张道陵整合当时的黄老派、方仙道、文始派等先秦修道团体创立道教称正一盟威之道。后世尊称为“老祖天师”、“正一真人”、“三天扶教大法师”、高明上帝、张天师。著作《老子想尔注》弟子有3000多人设立24治奠基天师道。张道陵、葛玄、许逊、萨守坚合称四大天师。张道陵创建道教的背景当时在巴蜀一带原有巴人信奉原始巫教大规模的淫祀而害民。而这些祀奉鬼妖学名为妖邪的法教巫师聚众敛财无恶不作。张天师携王长、赵升二位弟子和黄帝九鼎丹经来到北邙山修行平定了那些祸害百姓的巫妖之教。川渝一带流传的张天师以太上老君剑印符箓大破鬼兵的故事就是以此为原型的。',
caiyang:'蔡阳201年又作蔡扬东汉丞相曹操部下武将汝南太守。于建安六年201奉曹操之命攻击与刘备联合的汝南贼龚都等人兵败被刘备所杀。明代小说《三国演义》改编为“云长擂鼓斩蔡阳”。',
@ -1637,164 +1633,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
//陆郁生
zhente:{
audio:2,
trigger:{target:'useCardToTargeted'},
logTarget:'player',
usable:1,
filter:function(event,player){
var color=get.color(event.card);
if(player==event.player||event.player.isDead()||(get.mode()=='guozhan'&&color!='black')) return false;
var type=get.type(event.card);
return type=='basic'||type=='trick';
},
check:function(event,player){
return !event.excluded.contains(player)&&get.effect(player,event.card,event.player,player)<0;
},
content:function(){
'step 0'
trigger.player.chooseControl().set('choiceList',[
'本回合内不能再使用'+get.translation(get.color(trigger.card))+'牌',
'令'+get.translation(trigger.card)+'对'+get.translation(player)+'无效',
]).set('prompt',get.translation(player)+'发动了【贞特】,请选择一项').set('ai',function(){
var player=_status.event.player;
var target=_status.event.getParent().player;
var card=_status.event.getTrigger().card,color=get.color(card);
if(get.effect(target,card,player,player)<=0) return 1;
var hs=player.countCards('h',function(card){
return get.color(card,player)==color&&player.hasValueTarget(card,null,true);
});
if(!hs.length) return 0;
if(hs>1) return 1;
return Math.random()>0.5?0:1;
});
'step 1'
if(result.index==0){
trigger.player.addTempSkill('zhente2');
trigger.player.storage.zhente2.add(get.color(trigger.card));
trigger.player.markSkill('zhente2');
}
else trigger.excluded.add(player);
},
},
zhente2:{
mod:{
cardEnabled:function(card,player){
if(player.getStorage('zhente2').contains(get.color(card))) return false;
},
cardSavable:function(card,player){
if(player.getStorage('zhente2').contains(get.color(card))) return false;
},
},
charlotte:true,
onremove:true,
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=[];
},
intro:{content:'本回合内不能使用$牌'},
},
zhiwei:{
audio:2,
trigger:{
player:['enterGame','showCharacterAfter','phaseBegin'],
global:['gameDrawAfter'],
},
direct:true,
filter:function(event,player){
if(player.hasSkill('zhiwei2')) return false;
if(get.mode()=='guozhan') return event.name=='showCharacter'&&(event.toShow.contains('gz_luyusheng')||event.toShow.contains('luyusheng'));
return event.name!='showCharacter';
},
content:function(){
'step 0'
player.chooseTarget('请选择【至微】的目标','选择一名其他角色。该角色造成伤害后,你摸一张牌,该角色受到伤害后,你随机弃置一张手牌。你弃牌阶段弃置的牌均被该角色获得。',true,lib.filter.notMe).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(att>0) return 1+att;
return Math.random();
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('zhiwei',target);
player.storage.zhiwei2=target;
player.addSkill('zhiwei2');
}
},
},
zhiwei2:{
group:['zhiwei2_draw','zhiwei2_discard','zhiwei2_gain','zhiwei2_clear'],
charlotte:true,
onremove:true,
mark:'character',
intro:{content:'$造成伤害后你摸一张牌;$受到伤害后你弃置一张牌;你于弃牌阶段弃置牌后交给$'},
subSkill:{
draw:{
audio:'zhiwei',
trigger:{global:'damageSource'},
forced:true,
filter:function(event,player){
return event.source==player.storage.zhiwei2;
},
logTarget:'source',
content:function(){
player.draw();
},
},
discard:{
audio:'zhiwei',
trigger:{global:'damageEnd'},
forced:true,
filter:function(event,player){
return event.player==player.storage.zhiwei2&&player.countCards('h',function(card){
return lib.filter.cardDiscardable(card,player,'zhiwei2_discard');
});
},
logTarget:'player',
content:function(){
player.discard(player.getCards('h',function(card){
return lib.filter.cardDiscardable(card,player,'zhiwei2_discard');
}).randomGet());
},
},
gain:{
audio:'zhiwei',
trigger:{player:'loseAfter'},
forced:true,
filter:function(event,player){
return event.type=='discard'&&event.getParent('phaseDiscard').player==player&&player.storage.zhiwei2&&player.storage.zhiwei2.isIn()&&event.cards2.filterInD('d').length>0;
},
logTarget:function(event,player){
return player.storage.zhiwei2;
},
content:function(){
if(trigger.delay===false) game.delay();
player.storage.zhiwei2.gain(trigger.cards2.filterInD('d'),'gain2');
},
},
clear:{
audio:'zhiwei',
trigger:{
global:'die',
player:['hideCharacterEnd','removeCharacterEnd'],
},
forced:true,
filter:function(event,player){
if(event.name=='die') return event.player==player.storage.zhiwei2;
if(event.name=='removeCharacter') return event.toRemove=='luyusheng'||event.toRemove=='gz_luyusheng';
return event.toHide=='luyusheng'||event.toHide=='gz_luyusheng';
},
content:function(){
'step 0'
player.removeSkill('zhiwei2');
if(trigger.name!='die'||get.mode()!='guozhan') event.finish();
'step 1'
if(player.name1=='gz_luyusheng'||player.name1=='luyusheng') player.hideCharacter(0);
if(player.name2=='gz_luyusheng'||player.name2=='luyusheng') player.hideCharacter(1);
},
},
},
},
//新塌顿
reluanzhan:{
audio:'luanzhan',
@ -1868,182 +1706,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.removeMark('reluanzhan',Math.ceil(player.countMark('reluanzhan')/2));
},
},
//华歆
spwanggui:{
audio:'wanggui',
trigger:{source:'damageSource'},
direct:true,
usable:1,
filter:function(event,player){
return game.hasPlayer(function(current){
return current.group!=player.group;
});
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('spwanggui'),'对一名势力不同的其他角色造成1点伤害',function(card,player,target){
return target.group!=player.group;
}).set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('spwanggui',target);
target.damage();
}
else player.storage.counttrigger.spwanggui--;
},
group:'spwanggui_draw',
subSkill:{
draw:{
trigger:{player:'damageEnd'},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt('spwanggui'),'令自己摸一张牌,或和一名势力相同的其他角色各摸一张牌',function(card,player,target){
return target.group==player.group;
}).set('ai',function(target){
var player=_status.event.player,att=get.attitude(player,target);
if(target!=player) att*=2;
if(target.hasSkillTag('nogain')) att/=1.7;
return att;
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('spwanggui',target);
if(player==target){
player.draw();
event.finish();
}
else{
var list=[player,target].sortBySeat();
game.asyncDraw(list);
}
}
else event.finish();
'step 2'
game.delayx();
},
},
},
},
wanggui:{
audio:2,
trigger:{
player:'damageEnd',
source:'damageSource',
},
direct:true,
filter:function(event,player){
return player.hasSkill('wanggui')&&!player.hasSkill('wanggui2');
},
content:function(){
'step 0'
player.addTempSkill('wanggui2');
var bool=player.isUnseen(2);
if(bool){
player.chooseTarget('望归是否对一名势力不同的角色造成1点伤害',function(card,player,target){
return target.isEnemyOf(player);
}).set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
});
}
else event.goto(2);
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('wanggui',target);
target.damage();
}
event.finish();
'step 2'
player.chooseBool('望归:是否令所有与自己势力相同的角色各摸一张牌?');
'step 3'
if(result.bool){
var targets=game.filterPlayer(function(current){
return current.isFriendOf(player);
});
targets.sortBySeat();
player.logSkill('wanggui',targets);
game.asyncDraw(targets);
}
else event.finish();
'step 4'
game.delayx();
},
},
wanggui2:{},
xibing:{
audio:2,
trigger:{global:'useCardToPlayered'},
filter:function(event,player){
if(player==event.player||event.targets.length!=1||event.player.countCards('h')>=event.player.hp) return false;
var bool=function(card){
return (card.name=='sha'||get.type(card,false)=='trick')&&get.color(card,false)=='black';
};
if(!bool(event.card)) return false;
var evt=event.getParent('phaseUse');
if(evt.player!=event.player) return false;
return get.mode()!='guozhan'||event.player.getHistory('useCard',function(evtx){
return bool(evtx.card)&&evtx.getParent('phaseUse')==evt;
})[0]==event.getParent();
},
logTarget:'player',
check:function(event,player){
var target=event.player;
var att=get.attitude(player,target);
var num2=Math.min(5,target.hp-target.countCards('h'));
if(num2<=0) return att<=0;
var num=target.countCards('h',function(card){
return target.hasValueTarget(card,null,true);
});
if(!num) return att>0;
return num>num2;
},
content:function(){
'step 0'
var num=Math.min(5,trigger.player.hp-trigger.player.countCards('h'));
if(num>0) trigger.player.draw(num);
trigger.player.addTempSkill('xibing2');
player._xibing=true;
if(get.mode()!='guozhan'||player.isUnseen(2)||trigger.player.isUnseen(2)) event.finish();
'step 1'
var target=trigger.player;
var players1=[player.name1,player.name2];
var players2=[target.name1,target.name2];
player.chooseButton(2,[
'是否暗置自己和'+get.translation(target)+'的各一张武将牌?',
'<div class="text center">你的武将牌</div>',
[players1,'character'],
'<div class="text center">'+get.translation(target)+'的武将牌</div>',
[players2,'character'],
]).set('players',players1).set('complexSelect',true).set('filterButton',function(button){
return !get.is.jun(button.link)&&(ui.selected.buttons.length==0)==(_status.event.players.contains(button.link));
});
'step 2'
if(result.bool){
var target=trigger.player;
player.hideCharacter(player.name1==result.links[0]?0:1);
target.hideCharacter(target.name1==result.links[1]?0:1);
player.addTempSkill('xibing3');
target.addTempSkill('xibing3');
}
},
},
xibing2:{
mod:{
cardEnabled2:function(card){
if(get.position(card)=='h') return false;
},
},
},
xibing3:{
ai:{nomingzhi:true},
},
//卧龙凤雏双头祈福
youlong:{
enable:'chooseToUse',
@ -15870,28 +15532,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
luanfeng:'鸾凤',
//luanfeng_info_fullinfo:'限定技一名角色进入濒死状态时若其体力上限不小于你你可令其回复至3点体力恢复其被废除的装备栏令其手牌补至6-X张X为以此法恢复的装备栏数量重置其因“改写”使用过的牌名。若该角色是你重置你因“游龙”使用过的牌名。',
luanfeng_info:'限定技一名角色进入濒死状态时若其体力上限不小于你你可令其回复至3点体力恢复其被废除的装备栏令其手牌补至6-X张X为以此法恢复的装备栏数量。若该角色是你重置你因“游龙”使用过的牌名。',
huaxin:'华歆',
wanggui:'望归',
wanggui_info:'每回合限触发一次当你造成或受到伤害后若你仅明置了此武将牌则你可对与你势力不同的一名角色造成1点伤害武将牌均明置则你可令与你势力相同的角色各摸一张牌。',
spwanggui:'望归',
spwanggui_info:'①当你受到伤害后你可以摸一张牌或和一名势力相同的其他角色各摸一张牌②每回合限一次当你造成伤害后你可以对一名与你势力不同的角色造成1点伤害。',
xibing:'息兵',
xibing_info:'当一名其他角色在其出牌阶段内使用黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力值(至多摸五张)且本回合不能再使用手牌。',
xibing_info_guozhan:'当一名其他角色在其出牌阶段内使用第一张黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力(至多摸五张)值且本回合不能再使用手牌。若你与其均明置了所有武将牌,则你可以暗置你与其各一张武将牌且本回合不能再明置此武将牌。',
ol_xinxianying:'辛宪英',
reluanzhan:'乱战',
reluanzhan_add:'乱战',
reluanzhan_remove:'乱战',
reluanzhan_info:'当你受到或造成伤害后你获得一个“乱”。当你使用【杀】或黑色普通锦囊牌选择目标后你可为此牌增加至多X个目标。当你使用这些牌指定第一个目标后若此牌目标数小于X则你移去X/2向上取整个“乱”。X为“乱”数',
luyusheng:'陆郁生',
zhente:'贞特',
zhente2:'贞特',
zhente_info:'每回合限一次当你成为其他角色使用基本牌或普通锦囊牌的目标后你可令使用者选择一项1.本回合不能再使用与此牌颜色相同的牌2.此牌对你无效。 ',
zhente_info_guozhan:'每回合限一次当你成为其他角色使用黑色基本牌或黑色普通锦囊牌的目标后你可令使用者选择一项1.本回合不能再使用黑色牌2.此牌对你无效。 ',
zhiwei:'至微',
zhiwei2:'至微',
zhiwei_info:'游戏开始时/你的回合开始时,若场上没有因此法被选择过的角色存活,则你选择一名其他角色。该角色造成伤害后,你摸一张牌,该角色受到伤害后,你随机弃置一张手牌。你弃牌阶段弃置的牌均被该角色获得。',
zhiwei_info_guozhan:'你明置此武将牌时,选择一名其他角色。该角色造成伤害后,你摸一张牌,该角色受到伤害后,你随机弃置一张手牌。你弃牌阶段弃置的牌均被该角色获得。该角色死亡时,若你的两个武将牌均明置,你暗置此武将牌。 ',
zhuixi:'追袭',
zhuixi_info:'锁定技,你使用【杀】的次数上限+1。',
reduanbing:'短兵',

View File

@ -4,6 +4,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
luyusheng:['female','wu',3,['zhente','zhiwei']],
huaxin:['male','wei',3,['spwanggui','xibing']],
re_dongbai:['female','qun',3,['relianzhu','rexiahui']],
qiuliju:['male','qun',6,['koulve','qljsuiren']],
heyan:['male','wei',3,['yachai','qingtan']],
@ -79,15 +81,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
lvkuanglvxiang:['male','qun',4,['liehou','qigong']],
leitong:['male','shu',4,['kuiji']],
wulan:['male','shu',4,['wlcuorui']],
mini_sunquan:['male','wu',4,['minizhiheng','jiuyuan'],['zhu']],
mini_zuoci:['male','qun',3,['minishendao','minixinsheng']],
mini_jiangwei:['male','shu',4,['minitiaoxin','zhiji']],
mini_diaochan:['female','qun',3,['minilijian','rebiyue']],
mini_zhangchunhua:['female','wei',3,['jueqing','minishangshi']],
},
characterSort:{
sp2:{
sp_whlw:["xurong","lijue","zhangji","fanchou","guosi","duanwei","liangxing","zhangheng"],
sp_whlw:["xurong","lijue","zhangji","fanchou","guosi","duanwei","liangxing","zhangheng",'tangji'],
sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"],
sp_longzhou:["xf_tangzi","xf_huangquan","xf_sufei","sp_liuqi"],
sp_zizouqi:["mangyachang","xugong","zhangchangpu"],
@ -95,14 +92,349 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_shengun:["puyuan","guanlu","gexuan","xushao"],
sp_baigei:['re_panfeng','xingdaorong','caoxing','re_chunyuqiong','xiahoujie'],
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"],
sp_huangjin:['liuhong','zhujun','re_hejin','re_hansui','liubian'],
sp_caizijiaren:['re_dongbai','re_sunluyu','huaxin','luyusheng'],
sp_huangjin:['liuhong','zhujun','re_hejin','re_hansui'],
sp_qihuan:['liubian','zhaozhong'],
sp_fadong:['ol_dingyuan','wangrong','re_quyi','hanfu'],
sp_xuzhou:['re_taoqian','caosong','zhangmiao'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','zhaozhong','ruanyu','liangxing','re_niujin','tangji','re_dongzhao','re_hucheer','re_dongcheng','yangwan','qiuliju','heyan','re_dongbai'],
sp_mini:["mini_sunquan","mini_zuoci","mini_jiangwei","mini_diaochan","mini_zhangchunhua"],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','liangxing','re_niujin','re_dongzhao','re_hucheer','re_dongcheng','yangwan','qiuliju','heyan'],
}
},
skill:{
//陆郁生
zhente:{
audio:2,
trigger:{target:'useCardToTargeted'},
logTarget:'player',
usable:1,
filter:function(event,player){
var color=get.color(event.card);
if(player==event.player||event.player.isDead()||(get.mode()=='guozhan'&&color!='black')) return false;
var type=get.type(event.card);
return type=='basic'||type=='trick';
},
check:function(event,player){
return !event.excluded.contains(player)&&get.effect(player,event.card,event.player,player)<0;
},
content:function(){
'step 0'
trigger.player.chooseControl().set('choiceList',[
'本回合内不能再使用'+get.translation(get.color(trigger.card))+'牌',
'令'+get.translation(trigger.card)+'对'+get.translation(player)+'无效',
]).set('prompt',get.translation(player)+'发动了【贞特】,请选择一项').set('ai',function(){
var player=_status.event.player;
var target=_status.event.getParent().player;
var card=_status.event.getTrigger().card,color=get.color(card);
if(get.effect(target,card,player,player)<=0) return 1;
var hs=player.countCards('h',function(card){
return get.color(card,player)==color&&player.hasValueTarget(card,null,true);
});
if(!hs.length) return 0;
if(hs>1) return 1;
return Math.random()>0.5?0:1;
});
'step 1'
if(result.index==0){
trigger.player.addTempSkill('zhente2');
trigger.player.storage.zhente2.add(get.color(trigger.card));
trigger.player.markSkill('zhente2');
}
else trigger.excluded.add(player);
},
},
zhente2:{
mod:{
cardEnabled:function(card,player){
if(player.getStorage('zhente2').contains(get.color(card))) return false;
},
cardSavable:function(card,player){
if(player.getStorage('zhente2').contains(get.color(card))) return false;
},
},
charlotte:true,
onremove:true,
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=[];
},
intro:{content:'本回合内不能使用$牌'},
},
zhiwei:{
audio:2,
trigger:{
player:['enterGame','showCharacterAfter','phaseBegin'],
global:['gameDrawAfter'],
},
direct:true,
filter:function(event,player){
if(player.hasSkill('zhiwei2')) return false;
if(get.mode()=='guozhan') return event.name=='showCharacter'&&(event.toShow.contains('gz_luyusheng')||event.toShow.contains('luyusheng'));
return event.name!='showCharacter';
},
content:function(){
'step 0'
player.chooseTarget('请选择【至微】的目标','选择一名其他角色。该角色造成伤害后,你摸一张牌,该角色受到伤害后,你随机弃置一张手牌。你弃牌阶段弃置的牌均被该角色获得。',true,lib.filter.notMe).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(att>0) return 1+att;
return Math.random();
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('zhiwei',target);
player.storage.zhiwei2=target;
player.addSkill('zhiwei2');
}
},
},
zhiwei2:{
group:['zhiwei2_draw','zhiwei2_discard','zhiwei2_gain','zhiwei2_clear'],
charlotte:true,
onremove:true,
mark:'character',
intro:{content:'$造成伤害后你摸一张牌;$受到伤害后你弃置一张牌;你于弃牌阶段弃置牌后交给$'},
subSkill:{
draw:{
audio:'zhiwei',
trigger:{global:'damageSource'},
forced:true,
filter:function(event,player){
return event.source==player.storage.zhiwei2;
},
logTarget:'source',
content:function(){
player.draw();
},
},
discard:{
audio:'zhiwei',
trigger:{global:'damageEnd'},
forced:true,
filter:function(event,player){
return event.player==player.storage.zhiwei2&&player.countCards('h',function(card){
return lib.filter.cardDiscardable(card,player,'zhiwei2_discard');
});
},
logTarget:'player',
content:function(){
player.discard(player.getCards('h',function(card){
return lib.filter.cardDiscardable(card,player,'zhiwei2_discard');
}).randomGet());
},
},
gain:{
audio:'zhiwei',
trigger:{player:'loseAfter'},
forced:true,
filter:function(event,player){
return event.type=='discard'&&event.getParent('phaseDiscard').player==player&&player.storage.zhiwei2&&player.storage.zhiwei2.isIn()&&event.cards2.filterInD('d').length>0;
},
logTarget:function(event,player){
return player.storage.zhiwei2;
},
content:function(){
if(trigger.delay===false) game.delay();
player.storage.zhiwei2.gain(trigger.cards2.filterInD('d'),'gain2');
},
},
clear:{
audio:'zhiwei',
trigger:{
global:'die',
player:['hideCharacterEnd','removeCharacterEnd'],
},
forced:true,
filter:function(event,player){
if(event.name=='die') return event.player==player.storage.zhiwei2;
if(event.name=='removeCharacter') return event.toRemove=='luyusheng'||event.toRemove=='gz_luyusheng';
return event.toHide=='luyusheng'||event.toHide=='gz_luyusheng';
},
content:function(){
'step 0'
player.removeSkill('zhiwei2');
if(trigger.name!='die'||get.mode()!='guozhan') event.finish();
'step 1'
if(player.name1=='gz_luyusheng'||player.name1=='luyusheng') player.hideCharacter(0);
if(player.name2=='gz_luyusheng'||player.name2=='luyusheng') player.hideCharacter(1);
},
},
},
},
//华歆
spwanggui:{
audio:'wanggui',
trigger:{source:'damageSource'},
direct:true,
usable:1,
filter:function(event,player){
return game.hasPlayer(function(current){
return current.group!=player.group;
});
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('spwanggui'),'对一名势力不同的其他角色造成1点伤害',function(card,player,target){
return target.group!=player.group;
}).set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('spwanggui',target);
target.damage();
}
else player.storage.counttrigger.spwanggui--;
},
group:'spwanggui_draw',
subSkill:{
draw:{
trigger:{player:'damageEnd'},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt('spwanggui'),'令自己摸一张牌,或和一名势力相同的其他角色各摸一张牌',function(card,player,target){
return target.group==player.group;
}).set('ai',function(target){
var player=_status.event.player,att=get.attitude(player,target);
if(target!=player) att*=2;
if(target.hasSkillTag('nogain')) att/=1.7;
return att;
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('spwanggui',target);
if(player==target){
player.draw();
event.finish();
}
else{
var list=[player,target].sortBySeat();
game.asyncDraw(list);
}
}
else event.finish();
'step 2'
game.delayx();
},
},
},
},
wanggui:{
audio:2,
trigger:{
player:'damageEnd',
source:'damageSource',
},
direct:true,
filter:function(event,player){
return player.hasSkill('wanggui')&&!player.hasSkill('wanggui2');
},
content:function(){
'step 0'
player.addTempSkill('wanggui2');
var bool=player.isUnseen(2);
if(bool){
player.chooseTarget('望归是否对一名势力不同的角色造成1点伤害',function(card,player,target){
return target.isEnemyOf(player);
}).set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
});
}
else event.goto(2);
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('wanggui',target);
target.damage();
}
event.finish();
'step 2'
player.chooseBool('望归:是否令所有与自己势力相同的角色各摸一张牌?');
'step 3'
if(result.bool){
var targets=game.filterPlayer(function(current){
return current.isFriendOf(player);
});
targets.sortBySeat();
player.logSkill('wanggui',targets);
game.asyncDraw(targets);
}
else event.finish();
'step 4'
game.delayx();
},
},
wanggui2:{},
xibing:{
audio:2,
trigger:{global:'useCardToPlayered'},
filter:function(event,player){
if(player==event.player||event.targets.length!=1||event.player.countCards('h')>=event.player.hp) return false;
var bool=function(card){
return (card.name=='sha'||get.type(card,false)=='trick')&&get.color(card,false)=='black';
};
if(!bool(event.card)) return false;
var evt=event.getParent('phaseUse');
if(evt.player!=event.player) return false;
return get.mode()!='guozhan'||event.player.getHistory('useCard',function(evtx){
return bool(evtx.card)&&evtx.getParent('phaseUse')==evt;
})[0]==event.getParent();
},
logTarget:'player',
check:function(event,player){
var target=event.player;
var att=get.attitude(player,target);
var num2=Math.min(5,target.hp-target.countCards('h'));
if(num2<=0) return att<=0;
var num=target.countCards('h',function(card){
return target.hasValueTarget(card,null,true);
});
if(!num) return att>0;
return num>num2;
},
content:function(){
'step 0'
var num=Math.min(5,trigger.player.hp-trigger.player.countCards('h'));
if(num>0) trigger.player.draw(num);
trigger.player.addTempSkill('xibing2');
player._xibing=true;
if(get.mode()!='guozhan'||player.isUnseen(2)||trigger.player.isUnseen(2)) event.finish();
'step 1'
var target=trigger.player;
var players1=[player.name1,player.name2];
var players2=[target.name1,target.name2];
player.chooseButton(2,[
'是否暗置自己和'+get.translation(target)+'的各一张武将牌?',
'<div class="text center">你的武将牌</div>',
[players1,'character'],
'<div class="text center">'+get.translation(target)+'的武将牌</div>',
[players2,'character'],
]).set('players',players1).set('complexSelect',true).set('filterButton',function(button){
return !get.is.jun(button.link)&&(ui.selected.buttons.length==0)==(_status.event.players.contains(button.link));
});
'step 2'
if(result.bool){
var target=trigger.player;
player.hideCharacter(player.name1==result.links[0]?0:1);
target.hideCharacter(target.name1==result.links[1]?0:1);
player.addTempSkill('xibing3');
target.addTempSkill('xibing3');
}
},
},
xibing2:{
mod:{
cardEnabled2:function(card){
if(get.position(card)=='h') return false;
},
},
},
xibing3:{
ai:{nomingzhi:true},
},
//董白
relianzhu:{
enable:'phaseUse',
@ -367,6 +699,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
qingtan:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
@ -972,7 +1305,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
player.loseHp();
player.draw();
player.draw(2);
},
},
//狼灭
@ -1756,7 +2089,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
lose:false,
selectCard:function(){
if(_status.event.player.storage.bazhan) return 0;
return 2;
return [1,2];
},
filterTarget:function(card,player,target){
if(player==target) return false;
@ -1764,8 +2097,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return true;
},
prompt:function(){
if(_status.event.player.storage.bazhan) return '获得一名其他角色的两张手牌';
return '将两张手牌交给一名其他角色';
if(_status.event.player.storage.bazhan) return '获得一名其他角色的至多两张手牌';
return '将至多两张手牌交给一名其他角色';
},
delay:false,
check:function(card){
@ -1789,7 +2122,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.storage.bazhan){
player.storage.bazhan=false;
event.recover=player;
player.gainPlayerCard(target,'h',true,'visibleMove',2);
player.gainPlayerCard(target,'h',true,'visibleMove',[1,2]);
}
else{
player.storage.bazhan=true;
@ -2749,254 +3082,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mark:true,
intro:{content:'本回合内不能对自己使用牌'},
},
minishangshi:{
audio:'shangshi',
trigger:{player:['loseAfter','changeHp']},
frequent:true,
filter:function(event,player){
return player.countCards('h')<Math.max(1,player.getDamagedHp());
},
content:function(){
player.drawTo(Math.max(player.getDamagedHp(),1));
},
ai:{
noh:true,
skillTagFilter:function(player,tag){
if(tag=='noh'&&Math.max(1,player.getDamagedHp())<player.countCards('h')){
return false;
}
}
}
},
minilijian:{
trigger:{player:'useCard2'},
direct:true,
audio:'lijian',
usable:1,
filter:function(event,player){
if(!['sha','juedou'].contains(event.card.name)) return false;
var info=get.info(event.card);
if(info.allowMultiple==false) return false;
if(event.targets&&!info.multitarget){
if(game.hasPlayer(function(current){
return current.sex=='male'&&!event.targets.contains(current)&&lib.filter.targetEnabled2(event.card,player,current)&&lib.filter.targetInRange(event.card,player,current);
})){
return true;
}
}
return false;
},
content:function(){
'step 0'
var prompt2='为'+get.translation(trigger.card)+'增加一个目标'
player.chooseTarget(get.prompt('minilijian'),function(card,player,target){
var player=_status.event.player;
return target.sex=='male'&&!_status.event.targets.contains(target)&&lib.filter.targetEnabled2(_status.event.card,player,target)&&lib.filter.targetInRange(_status.event.card,player,target);
}).set('prompt2',prompt2).set('ai',function(target){
var trigger=_status.event.getTrigger();
var player=_status.event.player;
return get.effect(target,trigger.card,player,player);
}).set('card',trigger.card).set('targets',trigger.targets);
'step 1'
if(result.bool){
if(!event.isMine()&&!event.isOnline()) game.delayx();
event.targets=result.targets;
}
else{
event.finish();
}
'step 2'
if(event.targets){
player.logSkill('minilijian',event.targets);
trigger.targets.addArray(event.targets);
}
},
ai:{
effect:{
player:function(card,player,target,current,isLink){
if(!isLink&&(card.name=='sha'||card.name=='juedou')&&(!player.storage.counttrigger||!player.storage.counttrigger.minilijian)){
if(player._minilijiantemp) return;
player._minilijiantemp=true;
if(get.effect(target,card,player,player)<=0){
delete player._minilijiantemp;
return;
}
if(game.hasPlayer(function(current){
return current!=target&&current.sex=='male'&&
player.canUse(card,current)&&get.effect(current,card,player,player)>0;
})){
delete player._minilijiantemp;
return [1,1];
}
delete player._minilijiantemp;
}
}
}
},
},
minitiaoxin:{
trigger:{player:'phaseUseBegin'},
direct:true,
audio:'tiaoxin',
filter:function(event,player){
return game.hasPlayer(function(current){
return current!=player&&current.countDiscardableCards(player,'h')>0;
});
},
content:function(){
'step 0'
player.chooseTarget(get.prompt2('minitiaoxin'),function(card,player,target){
return target!=player&&target.countDiscardableCards(player,'h')>0;
}).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(target.countCards('h')==1) att=get.sgn(att);
return -att;
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('minitiaoxin',target);
player.discardPlayerCard(target,true,[1,2],'h');
}
else event.finish();
'step 2'
if(result.cards&&result.cards.length&&player.countCards('h')>0){
for(var i of result.cards){
if(get.name(i,target)=='sha'){
player.chooseToDiscard('h',true);
break;
}
}
}
},
},
minishendao:{
audio:'rehuashen',
trigger:{
player:"judge",
},
direct:true,
content:function(){
"step 0"
var str='你的'+(trigger.judgestr||'')+'判定为'+
get.translation(trigger.player.judging[0])+',是否修改判定结果?';
player.chooseControl('spade','heart','diamond','club','cancel2').set('prompt',str).set('ai',function(){
//return '取消';
var judging=_status.event.judging;
var trigger=_status.event.getTrigger();
var res1=trigger.judge(judging);
var list=lib.suit.slice(0);
var attitude=get.attitude(player,trigger.player);
if(attitude==0) return 0;
var getj=function(suit){
return trigger.judge({
name:get.name(judging),
nature:get.nature(judging),
suit:suit,
number:get.number(judging),
})
};
list.sort(function(a,b){
return (getj(b)-getj(a))*get.sgn(attitude);
});
if((getj(list[0])-res1)*attitude>0) return list[0];
return 'cancel2';
}).set('judging',trigger.player.judging[0]);
"step 1"
if(result.control!='cancel2'){
player.logSkill('minishendao');
//player.line(trigger.player);
player.popup(result.control+2);
game.log(player,'将判定结果改为了','#y'+get.translation(result.control+2));
trigger.fixedResult={
suit:result.control,
color:get.color({suit:result.control}),
};
}
},
ai:{
rejudge:true,
tag:{
rejudge:0.3,
},
},
},
minixinsheng:{
audio:'rexinsheng',
trigger:{player:'damageEnd'},
frequent:true,
content:function(){
"step 0"
event.cards=get.cards(3);
game.cardsGotoOrdering(event.cards);
event.videoId=lib.status.videoId++;
game.broadcastAll(function(player,id,cards){
var str;
if(player==game.me&&!_status.auto){
str='新生:获取花色各不相同的牌';
}
else{
str='新生';
}
var dialog=ui.create.dialog(str,cards);
dialog.videoId=id;
},player,event.videoId,event.cards);
event.time=get.utc();
game.addVideo('showCards',player,['新生',get.cardsInfo(event.cards)]);
game.addVideo('delay',null,2);
"step 1"
var next=player.chooseButton([0,3],true);
next.set('dialog',event.videoId);
next.set('filterButton',function(button){
for(var i=0;i<ui.selected.buttons.length;i++){
if(get.suit(ui.selected.buttons[i].link)==get.suit(button.link)) return false;
}
return true;
});
next.set('ai',function(button){
return get.value(button.link,_status.event.player);
});
"step 2"
if(result.bool&&result.links){
event.cards2=result.links;
}
else{
event.finish();
}
var time=1000-(get.utc()-event.time);
if(time>0){
game.delay(0,time);
}
"step 3"
game.broadcastAll('closeDialog',event.videoId);
var cards2=event.cards2;
player.gain(cards2,'log','gain2');
},
},
minizhiheng:{
audio:'zhiheng',
trigger:{player:'phaseUseEnd'},
direct:true,
filter:function(event){
return event.player.countCards('h')>0;
},
content:function(){
'step 0'
player.chooseToDiscard('h',get.prompt('minizhiheng'),'弃置任意张手牌,若如此做,将手牌摸至四张',[1,player.countCards('h')]).set('ai',function(card){
var num=4-player.countCards('h');
var val=6.1+Math.max(0,num);
var cs=player.countCards('h',function(card){
return get.value(card)>=val;
});
if(cs>=4) return 0;
return val-get.value(card)
}).logSkill='minizhiheng';
'step 1'
if(result.bool) player.drawTo(4);
},
},
minsi:{
audio:2,
enable:'phaseUse',
@ -5502,7 +5587,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){
return player.getHistory('sourceDamage',function(evt){
return evt.isPhaseUsing(player);
})
}).length>0;
},
content:function(){
var card=get.cardPile2(function(card){
@ -6181,26 +6266,45 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true,
audio:2,
filter:function(event,player){
return player.canUse('sha',event.target,false)&&(player.hasSha()||_status.connectMode&&player.countCards('h'));
return event.target.isIn()&&game.hasPlayer(function(current){
return current!=event.target&&current.canUse('sha',event.target,false);
})
},
content:function(){
"step 0"
player.chooseToUse(get.prompt('qigong'),function(card,player,event){
'step 0'
player.chooseTarget(get.prompt('qigong'),'令一名角色可再对'+get.translation(trigger.target)+'使用一张【杀】',function(card,player,target){
var source=_status.event.getTrigger().target;
return target!=source&&target.canUse('sha',source,false);
}).set('ai',function(target){
var player=_status.event.player,card={name:'sha'},source=_status.event.getTrigger().target;
if(target.hasSha()){
var eff1=get.effect(source,card,target,target);
if(eff1>0) return get.effect(source,card,target,player);
}
return (target!=player)?(Math.random()*get.attitude(player,target)):0;
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('qigong',target);
target.addTempSkill('qigong_ai','chooseToUseEnd');
target.chooseToUse('是否再对'+get.translation(trigger.target)+'使用一张【杀】?',function(card,player,event){
if(get.name(card)!='sha') return false;
return lib.filter.filterCard.apply(this,arguments);
},trigger.target,-1).set('addCount',false).logSkill='qigong';
},trigger.target,-1).set('addCount',false).set('oncard',function(){
_status.event.directHit.addArray(game.players);
});
}
},
subSkill:{
ai:{
ai:{
directHit_ai:true,
skillTagFilter:function(player,tag,arg){
return arg.card&&arg.card.name=='sha';
},
group:'qigong_hit',
},
qigong_hit:{
trigger:{player:'useCard1'},
firstDo:true,
silent:true,
filter:function(event,player){
return event.getParent(2).name=='qigong';
},
content:function(){
trigger.directHit.addArray(game.players);
},
},
//和沙摩柯一起上线的新服三将
@ -7436,11 +7540,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return event[event.name=='damage'?'player':'target'];
},
content:function(){
'step 0'
if(trigger.name=='damage'){
trigger.cancel();
trigger.player.recover(trigger.num);
event.finish();
}
else player.draw();
else{
game.asyncDraw([player,trigger.target]);
}
'step 1'
game.delayx();
},
},
//管辂和葛玄
@ -7853,16 +7963,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1'
if(result.bool){
if(!event.isMine()&&!event.isOnline()) game.delayx();
event.targets=result.targets.slice(0);
for(var i=0;i<event.targets.length;i++){
event.targets[i].removeMark('zongkui_mark',1);
}
event.targets=result.targets.sortBySeat();
}
else{
event.finish();
}
'step 2'
player.logSkill('bmcanshi',event.targets);
for(var i=0;i<event.targets.length;i++){
event.targets[i].removeMark('zongkui_mark',1);
}
trigger.targets.addArray(event.targets);
}
},
@ -9059,6 +9169,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qiuliju:'丘力居,东汉末年的辽西乌丸大人。拉拢中山太守张纯反叛东汉,寇略青、徐、幽、冀四州,杀略吏民。死时认为儿子楼班年幼,于是让从子蹋顿总摄三王部。',
fengxi:'冯熙(?—223年字子柔颍川郡父城县今河南省平顶山市宝丰县人。汉末三国时期吴国官员东汉初年名将冯异的后人。孙权担任车骑将军时冯熙担任其幕府东曹掾后迁立信都尉。刘备去世时奉命进入蜀汉吊丧返回后任中大夫。后奉命出使魏国受到魏文帝曹丕和尚书令陈群招揽宁死不从自尽未果。孙权闻之流泪称其“东吴苏武”。最终在曹魏死去。',
liuba:'刘巴222年字子初荆州零陵郡烝阳县今湖南省衡阳县、邵东县一带东汉末年至三国时期蜀汉时期官员、名士。刘巴少知名荆州牧刘表多次征用推举刘巴均不应就。曹操征伐荆州荆州士人多归刘备刘巴却北上投靠曹操。后受曹操命令招降荆南三郡不料先为刘备所得刘巴不能复命曹操遂远至交趾又辗转进入益州。刘备平定益州后刘巴归附刘备为左将军西曹掾法正死后接任尚书令。章武二年222年去世。刘巴博学多才为刘备解决入蜀后的财政困难问题又与诸葛亮等共制蜀汉的法律文件《蜀科》。为人简朴清高退无私交曹魏大臣陈群甚敬重之。所著录于《刘令君集》。',
pengyang:'彭羕184年220年字永年广汉今四川广汉北人。东汉末年官吏。彭羕起初在益州任书佐但后来其他人向益州牧刘璋诽谤他刘璋于是以“髡钳”剃去头发和胡须并戴上刑具处罚他并且贬奴隶。此时刘备入蜀彭羕想投靠刘备于是去见庞统。庞统和他会面后很欣赏他而法正亦很清楚彭羕于是二人共同向刘备推荐彭羕。刘备多次命令彭羕传递军情和指示给诸将表现都十分满意日渐被赏识。刘备入主益州领益州牧后就任命他为治州从事。彭羕见此又变得嚣张自矜诸葛亮对他礼待但心中并不喜欢他多次密告刘备说彭羕“心大志广难可保安”。刘备见诸葛亮这样说决定疏远彭羕又观察他行事于是贬他为江阳太守。彭羕见将被派往外地心感不悦与马超见面时又曾对他说“老革荒悖可复道邪”“卿为其外我为其内天下不足定也。”马超听后大惊彭羕走后以他的说话告发彭羕彭羕于是被收监下狱。最后彭羕被处死死时三十七岁。',
huaxin:'华歆157年232年1月30日字子鱼汉族。平原郡高唐县人今山东省高唐县。汉末至三国曹魏初年名士、重臣。华歆早年拜太尉陈球为师与卢植、郑玄、管宁等为同门又与管宁、邴原共称一龙华歆为龙头。汉灵帝时华歆被举为孝廉任郎中因病去官。又被大将军何进征召为尚书郎。后任豫章太守甚得民心。孙策率军南下华歆举郡投降被奉为上宾。官渡之战时被征为议郎、参司空军事。入为尚书、侍中又代荀彧为尚书令。丞相曹操讨孙权时授华歆为军师。后为魏王国的御史大夫。曹丕即王位拜华歆为相国封安乐乡侯。曹魏建立后其相国职名改称司徒。魏明帝即位升任太尉晋封博平侯。太和五年十二月232年1月华歆去世年七十五谥号“敬”。有文集三十卷今佚失其余见《全三国文》。',
luyusheng:'陆郁生(?年-三国时期吴国官员陆绩之女。陆郁生的父亲陆绩是吴郡公认的才子又是当时吴郡陆氏的领袖。陆绩赴任担任郁林太守遂取此名。陆郁生年少的时候就定下坚贞的志向。建安二十四年219年)陆绩早亡她与两个兄弟陆宏、陆睿当时都只有几岁一起返回吴县被他们的从兄陆瑁接回抚养。13周岁的陆郁生嫁给同郡出身的张白为妻。出嫁3个月后张白因为其兄张温一族的案件遭到连坐被处以流刑后死于流放地陆郁生成为了寡妇其后公开宣言不再改嫁困难于生计但拒绝了所有提亲在艰苦中从未停止服侍、照顾张白的姐妹。事情传到朝廷皇帝褒奖陆郁生号其为“义姑”。她的表侄姚信在文集中称赞她的义举。',
},
characterTitle:{
wulan:'#b对决限定武将',
@ -9105,8 +9218,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return '出牌阶段限'+(player.hasSkill('recaishi2')?'两':'一')+'次,你可以选择一名本回合内未选择过的角色。你令其获得一项效果直至你的下回合开始:①其下次造成伤害后弃置两张牌,然后你摸一张牌。②其下次受到伤害后摸两张牌,然后你摸一张牌。'
},
bazhan:function(player){
if(player.storage.bazhan) return '转换技,出牌阶段限一次,阴:你可以将两张手牌交给一名其他角色。<span class="bluetext">阳:你可以获得一名其他角色的两张手牌。</span>若以此法移动的牌包含【酒】或♥牌则你可令得到此牌的角色执行一项①回复1点体力。②复原武将牌。';
return '转换技,出牌阶段限一次,<span class="bluetext">阴:你可以将两张手牌交给一名其他角色。</span>阳你可以获得一名其他角色的两张手牌。若以此法移动的牌包含【酒】或♥牌则你可令得到此牌的角色执行一项①回复1点体力。②复原武将牌。';
if(player.storage.bazhan) return '转换技,出牌阶段限一次,阴:你可以将至多两张手牌交给一名其他角色。<span class="bluetext">阳:你可以获得一名其他角色的至多两张手牌。</span>若以此法移动的牌包含【酒】或♥牌则你可令得到此牌的角色执行一项①回复1点体力。②复原武将牌。';
return '转换技,出牌阶段限一次,<span class="bluetext">阴:你可以将至多两张手牌交给一名其他角色。</span>阳:你可以获得一名其他角色的至多两张手牌。若以此法移动的牌包含【酒】或♥牌则你可令得到此牌的角色执行一项①回复1点体力。②复原武将牌。';
},
},
perfectPair:{
@ -9129,6 +9242,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dongcheng:['re_dongcheng','dongcheng'],
hucheer:['re_hucheer','hucheer'],
dongbai:['re_dongbai','dongbai'],
gexuan:['gexuan','tw_gexuan'],
},
translate:{
lijue:"李傕",
@ -9266,7 +9380,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xpchijie_info:'每回合限一次。①当你受到其他角色使用的牌造成的伤害时,你可以令此牌对所有目标无效。②其他角色使用的牌结算完成时,若你是此牌的目标之一且此牌未造成过伤害,则你可以获得此牌对应的所有实体牌。',
xpchijie2:'持节',
yinju:'引裾',
yinju_info:'限定技,出牌阶段,你可以选择一名其他角色。若如此做,当你于此阶段内使用牌指定其为目标后,你摸一张牌;当你即将对其造成伤害时,防止此伤害,然后其回复等量的体力。',
yinju_info:'限定技,出牌阶段,你可以选择一名其他角色。若如此做,当你于此阶段内使用牌指定其为目标后,你与其各摸一张牌;当你即将对其造成伤害时,防止此伤害,然后其回复等量的体力。',
yinju2:'引裾',
spjiedao:"截刀",
@ -9312,7 +9426,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liehou:'列侯',
liehou_info:'出牌阶段限一次,你可以令一名攻击范围内的角色交给你一张手牌,然后你将一张手牌交给攻击范围内的另一名角色。',
qigong:'齐攻',
qigong_info:'当你使用的【杀】被【闪】抵消之后,你可以再对目标角色使用一张【杀】(不可被响应)。',
qigong_info:'当你使用的【杀】被【闪】抵消之后,你可以令一名角色再对目标角色使用一张【杀】(不可被响应)。',
chunyuqiong:'淳于琼',
sushou:'宿守',
sushou_info:'弃牌阶段开始时你可以摸X+1张牌X为“粮”数然后可以交给任意名友方角色各一张牌。',
@ -9455,23 +9569,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jijing_info:'当你受到伤害后你可以进行一次判定然后若你弃置任意张点数之和与判定结果点数相同的牌你回复1点体力。',
zhuide:'追德',
zhuide_info:'当你死亡时,你可令一名其他角色从牌堆中获得四张名称各不相同的基本牌。',
mini_sunquan:'SP孙权',
minizhiheng:'制衡',
minizhiheng_info:'出牌阶段结束时,你可以弃置任意张手牌。若如此做,你将手牌摸至四张。',
mini_zuoci:'SP左慈',
minishendao:'神道',
minishendao_info:'你的判定牌生效前,你可以将判定结果改为任意花色。',
minixinsheng:'新生',
minixinsheng_info:'当你受到伤害后,你可以展示牌堆顶的三张牌,然后获得其中每种花色的牌各一张。',
mini_jiangwei:'SP姜维',
minitiaoxin:'挑衅',
minitiaoxin_info:'出牌阶段开始时,你可以弃置一名其他角色的两张手牌。若你以此法弃置的牌中有【杀】,则你弃置一张手牌。',
mini_diaochan:'SP貂蝉',
minilijian:'离间',
minilijian_info:'每回合限触发一次,当你使用【杀】或【决斗】指定目标后,你可以为此牌增加一个目标。',
mini_zhangchunhua:'SP张春华',
minishangshi:'伤逝',
minishangshi_info:'当你的手牌数小于X时你可以将手牌摸至X张X为你已损失的体力值且至少为1',
re_xinxianying:'辛宪英',
rezhongjian:'忠鉴',
rezhongjian2:'忠鉴',
@ -9530,7 +9627,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xianzhu_info:'锁定技出牌阶段开始时你令一名角色A获得“珠”。若A不为你自己则你选择A攻击范围内的一名角色B视为A对B使用一张【杀】。',
fanyufeng:'樊玉凤',
bazhan:'把盏',
bazhan_info:'转换技,出牌阶段限一次,阴:你可以将两张手牌交给一名其他角色。阳你可以获得一名其他角色的两张手牌。若以此法移动的牌包含【酒】或♥牌则你可令得到牌的角色执行一项①回复1点体力。②复原武将牌。',
bazhan_info:'转换技,出牌阶段限一次,阴:你可以将至多两张手牌交给一名其他角色。阳:你可以获得一名其他角色的至多两张手牌。若以此法移动的牌包含【酒】或♥牌则你可令得到牌的角色执行一项①回复1点体力。②复原武将牌。',
jiaoying:'醮影',
jiaoying2:'醮影',
jiaoying3:'醮影',
@ -9589,7 +9686,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dangzai:'挡灾',
dangzai_info:'出牌阶段开始时,你可将一名其他角色判定区内的一张牌移动至你的判定区内。',
liangjue:'粮绝',
liangjue_info:'锁定技当有黑色牌进入或者离开你的判定区或装备区后若你的体力值大于1你失去1点体力然后摸张牌。',
liangjue_info:'锁定技当有黑色牌进入或者离开你的判定区或装备区后若你的体力值大于1你失去1点体力然后摸张牌。',
tangji:'唐姬',
jielie:'节烈',
jielie_info:'你的第一个回合开始时选择一名其他角色该角色每次于其回合外摸牌时你摸等量的牌每回合限一次且至多摸三张其进入濒死状态时你可令其回复体力至1点每轮限一次。该角色死亡时你弃置所有牌并失去1点体力。',
@ -9625,7 +9722,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
relianzhu:'连诛',
relianzhu_info:'出牌阶段限一次,你可将一张牌正面朝上交给一名其他角色。若此牌为:红色,你摸一张牌;黑色,对方弃置两张牌或令你摸两张牌。’',
rexiahui:'黠慧',
rexiahui_info:'锁定技①当有其他角色获得你的黑色牌后其于下次扣减体力前不能使用打出弃置这些牌。②一名其他角色的回合结束时若其本回合失去过其所有“黠慧”牌则其失去1点体力。',
rexiahui_info:'锁定技①你的黑色牌不计入手牌上限。②当有其他角色获得你的黑色牌后其于下次扣减体力前不能使用打出弃置这些牌。③一名其他角色的回合结束时若其本回合失去过其所有“黠慧”牌则其失去1点体力。',
huaxin:'华歆',
wanggui:'望归',
wanggui_info:'每回合限触发一次当你造成或受到伤害后若你仅明置了此武将牌则你可对与你势力不同的一名角色造成1点伤害武将牌均明置则你可令与你势力相同的角色各摸一张牌。',
spwanggui:'望归',
spwanggui_info:'①当你受到伤害后你可以摸一张牌或和一名势力相同的其他角色各摸一张牌②每回合限一次当你造成伤害后你可以对一名与你势力不同的角色造成1点伤害。',
xibing:'息兵',
xibing_info:'当一名其他角色在其出牌阶段内使用黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力值(至多摸五张)且本回合不能再使用手牌。',
xibing_info_guozhan:'当一名其他角色在其出牌阶段内使用第一张黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力(至多摸五张)值且本回合不能再使用手牌。若你与其均明置了所有武将牌,则你可以暗置你与其各一张武将牌且本回合不能再明置此武将牌。',
luyusheng:'陆郁生',
zhente:'贞特',
zhente2:'贞特',
zhente_info:'每回合限一次当你成为其他角色使用基本牌或普通锦囊牌的目标后你可令使用者选择一项1.本回合不能再使用与此牌颜色相同的牌2.此牌对你无效。 ',
zhente_info_guozhan:'每回合限一次当你成为其他角色使用黑色基本牌或黑色普通锦囊牌的目标后你可令使用者选择一项1.本回合不能再使用黑色牌2.此牌对你无效。 ',
zhiwei:'至微',
zhiwei2:'至微',
zhiwei_info:'游戏开始时/你的回合开始时,若场上没有因此法被选择过的角色存活,则你选择一名其他角色。该角色造成伤害后,你摸一张牌,该角色受到伤害后,你随机弃置一张手牌。你弃牌阶段弃置的牌均被该角色获得。',
zhiwei_info_guozhan:'你明置此武将牌时,选择一名其他角色。该角色造成伤害后,你摸一张牌,该角色受到伤害后,你随机弃置一张手牌。你弃牌阶段弃置的牌均被该角色获得。该角色死亡时,若你的两个武将牌均明置,你暗置此武将牌。 ',
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",
@ -9638,8 +9752,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_huangjin:'黄巾之乱',
sp_fadong:'诸侯伐董',
sp_xuzhou:'徐州风云',
sp_caizijiaren:'才子佳人',
sp_qihuan:'戚宦之争',
sp_decade:'其他新服武将',
sp_mini:'欢乐三国杀',
},
};
});

View File

@ -2706,7 +2706,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_machao:['sp_machao','old_machao'],
zhugeliang:['re_zhugeliang','zhugeliang'],
huangyueying:['re_huangyueying','huangyueying'],
sunquan:['re_sunquan','mini_sunquan','sunquan'],
sunquan:['re_sunquan','sunquan'],
zhouyu:['re_zhouyu','zhouyu'],
luxun:['re_luxun','luxun'],
lvmeng:['re_lvmeng','lvmeng'],
@ -2716,7 +2716,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ganning:['re_ganning','ganning'],
yj_ganning:['yj_ganning','sp_ganning'],
lvbu:['re_lvbu','lvbu'],
diaochan:['re_diaochan','mini_diaochan','diaochan'],
diaochan:['re_diaochan','diaochan'],
huatuo:['re_huatuo','old_huatuo','huatuo'],
huaxiong:['re_huaxiong','old_huaxiong','huaxiong','ol_huaxiong'],
yuanshu:['yl_yuanshu','yuanshu','re_yuanshu','old_yuanshu','ol_yuanshu'],

View File

@ -5,12 +5,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true,
characterSort:{
tw:{
tw_mobile:['tw_beimihu','nashime'],
tw_mobile:['tw_beimihu','nashime','tw_gexuan','tw_dongzhao'],
tw_yijiang:['tw_caoang','tw_caohong','tw_zumao','tw_dingfeng','tw_maliang','tw_xiahouba'],
tw_english:['kaisa'],
},
},
character:{
tw_dongzhao:['male','wei',3,['twmiaolve','twyingjia']],
tw_gexuan:['male','qun',3,['twdanfa','twlingbao','twsidao']],
tw_beimihu:['female','qun',3,['zongkui','guju','baijia','bingzhao'],['zhu']],
nashime:['male','qun',3,['chijie','waishi','renshe']],
tw_xiahouba:['male','shu',4,['twyanqin','twbaobian']],
@ -25,6 +27,92 @@ game.import('character',function(lib,game,ui,get,ai,_status){
nashime:'难升米(なしめ,或なんしょうまい)是倭国大夫。景初二年六月,受女王卑弥呼之命,与都市牛利出使魏国,被魏国拜为率善中郎将。',
},
card:{
dz_mantianguohai:{
fullskin:true,
type:'trick',
enable:true,
derivation:'tw_dongzhao',
global:['dz_mantianguohai'],
selectTarget:[1,2],
filterTarget:function(card,player,target){
return target!=player&&target.countCards('hej')>0;
},
content:function(){
player.gainPlayerCard(target,'hej',true);
},
contentAfter:function(){
'step 0'
var evtx=event.getParent();
event.targets=targets.filter(function(target){
return target.getHistory('lose',function(evt){
return evt.getParent(3).name==''&&evt.getParent(4)==evtx;
})
});
if(!event.targets.length||!player.countCards('he')) event.finish();
'step 1'
var target=targets.shift();
event.target=target;
var next=player.chooseCard('he',true,'交给'+get.translation(target)+'一张牌');
if(player.hasSkill('twyingjia')&&player.countUsed('dz_mantianguohai')==1) next.set('ai',function(card){
if(card.name=='dz_mantianguohai') return -10;
return -get.value(card,_status.event.getParent().target);
});
'step 2'
if(result.bool){
target.gain(result.cards,player,'giveAuto');
}
'step 3'
if(targets.length&&player.countCards('h')>0) event.goto(1);
},
ai:{
order:6,
tag:{
lose:1,
loseCard:1,
},
result:{
target:-0.1,
},
},
},
gx_lingbaoxianhu:{
fullskin:true,
type:'equip',
subtype:'equip1',
derivation:'tw_gexuan',
distance:{attackFrom:-2},
ai:{
basic:{
equipValue:4.5,
}
},
skills:['gx_lingbaoxianhu']
},
gx_taijifuchen:{
fullskin:true,
type:'equip',
subtype:'equip1',
derivation:'tw_gexuan',
distance:{attackFrom:-4},
ai:{
basic:{
equipValue:4.5,
}
},
skills:['gx_taijifuchen']
},
gx_chongyingshenfu:{
fullskin:true,
type:'equip',
subtype:'equip2',
derivation:'tw_gexuan',
ai:{
basic:{
equipValue:7,
}
},
skills:['gx_chongyingshenfu']
},
},
characterFilter:{
nashime:function(mode){
@ -35,6 +123,470 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
dz_mantianguohai:{
mod:{
ignoredHandcard:function(card,player){
if(get.name(card)=='dz_mantianguohai') return true;
},
cardDiscardable:function(card,player,name){
if(name=='cardsDiscard'&&get.name(card)=='dz_mantianguohai') return false;
},
},
},
twmiaolve:{
audio:2,
trigger:{
global:'gameDrawAfter',
player:'enterGame',
},
forced:true,
locked:false,
content:function(){
if(!lib.inpile.contains('dz_mantianguohai')) lib.inpile.add('dz_mantianguohai');
if(!_status.dz_mantianguohai_suits) _status.dz_mantianguohai_suits=lib.suit.slice(0);
var list=_status.dz_mantianguohai_suits.randomRemove(2).map(function(i){
return game.createCard2('dz_mantianguohai',i,get.rand(1,13));
});
if(list.length) player.gain(list,'gain2','log');
},
group:'twmiaolve_damage',
subSkill:{
damage:{
trigger:{player:'damageEnd'},
direct:true,
content:function(){
'step 0'
event.count=trigger.num;
'step 1'
event.count--;
var list=['dz_mantianguohai'];
list.addArray(get.zhinangs());
player.chooseButton([get.prompt('twmiaolve'),[list,'vcard']]).set('ai',function(button){
if(button.link[2]=='dz_mantianguohai'&&player.countCards('hs','dz_mantianguohai')<2) return 10;
return get.value({name:button.link[2]});
});
'step 2'
if(result.bool){
player.logSkill('twmiaolve');
var name=result.links[0][2];
if(name=='dz_mantianguohai'){
if(!lib.inpile.contains('dz_mantianguohai')) lib.inpile.add('dz_mantianguohai');
if(!_status.dz_mantianguohai_suits) _status.dz_mantianguohai_suits=lib.suit.slice(0);
if(_status.dz_mantianguohai_suits.length) player.gain(game.createCard2('dz_mantianguohai',_status.dz_mantianguohai_suits.randomRemove(),get.rand(1,13)),'gain2');
else{
var card=get.cardPile(function(card){
return card.name==name;
});
if(card) player.gain(card,'gain2');
}
player.draw();
}
else{
var card=get.cardPile(function(card){
return card.name==name;
});
if(card) player.gain(card,'gain2');
}
if(event.count>0) event.goto(1);
}
},
},
},
},
twyingjia:{
audio:2,
trigger:{global:'phaseEnd'},
direct:true,
filter:function(event,player){
if(!player.countCards('he')) return false;
var history=player.getHistory('useCard'),map={};
for(var i of history){
if(get.type2(i.card)=='trick'){
if(!map[i.card.name]) map[i.card.name]=true;
else return true;
}
}
return false;
},
content:function(){
'step 0'
player.chooseCardTarget({
prompt:get.prompt('twyingjia'),
prompt2:'弃置一张牌并令一名角色进行一个额外回合',
filterCard:lib.filter.cardDiscardable,
filterTarget:true,
ai1:function(card){
return 8-get.value(card);
},
ai2:function(target){
if(target.hasJudge('lebu')) return -1;
var player=_status.event.player;
if(get.attitude(player,target)>4){
return get.threaten(target)/Math.sqrt(target.hp+1)/Math.sqrt(target.countCards('h')+1);
}
return -1;
},
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('twyingjia',target);
player.discard(result.cards);
target.insertPhase();
}
},
},
gx_lingbaoxianhu:{
trigger:{
source:'damageSource',
global:'dieAfter',
},
forced:true,
equipSkill:true,
filter:function(event,player){
if(event.name=='damage') return event.num>1;
return true;
},
content:function(){
player.gainMaxHp();
player.recover();
},
},
gx_taijifuchen:{
trigger:{player:'useCardToPlayered'},
forced:true,
equipSkill:true,
filter:function(event,player){
return event.card&&event.card.name=='sha';
},
logTarget:'target',
content:function(){
'step 0'
var suit=get.suit(trigger.card);
var num=trigger.target.countCards('h','shan');
var next=trigger.target.chooseToDiscard('弃置一张牌,或不能响应'+get.translation(trigger.card)).set('ai',function(card){
var num=_status.event.num;
if(num==0) return 0;
if(card.name=='shan') return num>1?2:0;
return (get.suit(card)!=_status.event.suit?9:6)-get.value(card);
}).set('num',num);
if(lib.suit.contains(suit)){
next.set('prompt2','若弃置的是'+get.suit(suit)+'牌,则改为'+get.translation(player)+'获得之');
next.set('suit',suit);
}
'step 1'
if(result.bool){
var card=result.cards[0];
if(get.suit(card,trigger.target)==get.suit(trigger.card,false)&&get.position(card)=='d') player.gain(card,'gain2');
}
else trigger.directHit.add(trigger.target);
},
},
gx_chongyingshenfu:{
trigger:{player:'damageEnd'},
forced:true,
equipSkill:true,
filter:function(event,player){
if(!event.card||!event.card.name||player.getStorage('gx_chongyingshenfu_effect').contains(event.card.name)) return false;
if(player.hasSkillTag('unequip2')) return false;
if(event.source.hasSkillTag('unequip',false,{
name:event.card.name,
target:player,
card:event.card,
})) return false;
return true;
},
content:function(){
player.addSkill('gx_chongyingshenfu_effect');
player.markAuto('gx_chongyingshenfu_effect',[trigger.card.name]);
},
subSkill:{
effect:{
trigger:{player:'damageBegin4'},
forced:true,
equipSkill:true,
charlotte:true,
filter:function(event,player){
if(!event.card||!event.card.name||!player.getStorage('gx_chongyingshenfu_effect').contains(event.card.name)) return false;
if(player.hasSkillTag('unequip2')) return false;
if(event.source.hasSkillTag('unequip',false,{
name:event.card.name,
target:player,
card:event.card,
})) return false;
return true;
},
content:function(){
trigger.num--;
},
onremove:true,
intro:{
content:'受到$造成的伤害-1',
},
},
},
},
twdanfa:{
audio:2,
trigger:{player:['phaseZhunbeiBegin','phaseJieshuBegin']},
filter:function(event,player){
return player.countCards('he')>0;
},
direct:true,
content:function(){
'step 0'
player.chooseCard('he',get.prompt('twdanfa'),'将一张牌作为“丹”置于武将牌上').set('ai',function(card){
if(player.storage.twdanfa){
var suit=get.suit(card);
for(var i of player.storage.twdanfa){
if(get.suit(i,false)==suit) return 4-get.value(card);
}
}
return 5.5-get.value(card);
});
'step 1'
if(result.bool){
var card=result.cards[0];
player.logSkill('twdanfa');
game.log(player,'将',card,'放在了武将牌上');
player.$give(card,player,false);
player.lose(card,ui.special,'toStorage');
player.markAuto('twdanfa',result.cards);
}
else event.finish();
'step 2'
game.delayx();
},
mark:true,
intro:{
content:'cards',
onunmark:'throw',
},
group:'twdanfa_draw',
subSkill:{
draw:{
audio:'twdanfa',
trigger:{player:'useCard'},
forced:true,
locked:false,
filter:function(event,player){
if(!player.storage.twdanfa||!player.storage.twdanfa.length) return false;
var suit=get.suit(event.card,false);
if(suit=='none'||player.storage.twdanfa_count&&player.storage.twdanfa_count.contains(suit)) return false;
for(var i of player.storage.twdanfa){
if(get.suit(i,false)==suit) return true;
}
return false;
},
content:function(){
player.draw();
player.addTempSkill('twdanfa_count');
if(!player.storage.twdanfa_count) player.storage.twdanfa_count=[];
player.storage.twdanfa_count.push(get.suit(trigger.card,false));
},
},
count:{onremove:true},
},
},
twlingbao:{
enable:'phaseUse',
usable:1,
filter:function(event,player){
var list=player.getStorage('twdanfa');
if(list.length<2) return false;
var suit=get.suit(list[0],false);
for(var i=1;i<list.length;i++){
if(get.suit(list[i],false)!=suit) return true;
}
return false;
},
chooseButton:{
dialog:function(event,player){
return ui.create.dialog('灵宝',player.storage.twdanfa);
},
filter:function(button,player){
if(!ui.selected.buttons.length) return true;
return get.suit(button.link)!=get.suit(ui.selected.buttons[0].link);
},
select:2,
backup:function(links){
var obj=get.copy(lib.skill['twlingbao_'+get.color(links)]);
obj.cards=links;
obj.audio='twlingbao';
obj.filterCard=()=>false;
obj.selectCard=-1;
return obj;
},
prompt:function(links){
return lib.skill['twlingbao_'+get.color(links)].prompt;
},
check:function(button){
var storage=_status.event.player.storage.twdanfa.slice(0);
storage.remove(button.link);
if(storage.filter(function(card){
return card.suit==button.link.suit;
}).length) return 1+Math.random();
return 0;
},
},
subSkill:{
red:{
filterTarget:function(card,player,target){
return target.isDamaged();
},
delay:false,
prompt:'令一名角色回复1点体力',
content:function(){
'step 0'
var cards=lib.skill.twlingbao_backup.cards;
player.$throw(cards,1000);
player.unmarkAuto('twdanfa',cards);
game.log(player,'将',cards,'置入了弃牌堆');
game.delayx();
game.cardsDiscard(cards);
'step 1'
target.recover();
},
ai:{
tag:{
recover:1,
},
result:{
target:1.5,
},
},
},
black:{
filterTarget:function(card,player,target){
return target.countDiscardableCards(player,'hej')>0;
},
delay:false,
prompt:'弃置一名角色区域内至多两张区域不同的牌',
content:function(){
'step 0'
var cards=lib.skill.twlingbao_backup.cards;
player.$throw(cards,1000);
player.unmarkAuto('twdanfa',cards);
game.log(player,'将',cards,'置入了弃牌堆');
game.delayx();
game.cardsDiscard(cards);
'step 1'
var num=0;
if(target.countDiscardableCards(player,'h')) num++;
if(target.countDiscardableCards(player,'e')) num++;
if(target.countDiscardableCards(player,'j')) num++;
if(num){
player.discardPlayerCard(target,[1,Math.max(2,num)],'hej',true).set('filterButton',function(button){
for(var i=0;i<ui.selected.buttons.length;i++){
if(get.position(button.link)==get.position(ui.selected.buttons[i].link)) return false;
}
return true;
});
}
},
ai:{
tag:{
lose:1.5,
loseCard:1.5,
discard:1.5,
},
result:{
target:function(player,target){
if(get.attitude(player,target)>0&&target.countCards('e',function(card){
return get.value(card,target)<=0;
})>0&&target.countCards('j',function(card){
return get.effect(target,card,target,target)<0;
})>8) return 3;
if(target.countCards('h')>0&&target.countCards('e',function(card){
return get.value(card,target)>0;
})>0) return -2;
return 0;
},
},
},
},
none:{
selectTarget:2,
filterTarget:function(card,player,target){
return target.countCards('he')>0;
},
complexSelect:true,
targetprompt:['摸牌','弃牌'],
delay:false,
prompt:'令一名角色摸一张牌并令另一名角色弃置一张牌',
multitarget:true,
multiline:true,
content:function(){
'step 0'
var cards=lib.skill.twlingbao_backup.cards;
player.$throw(cards,1000);
player.unmarkAuto('twdanfa',cards);
game.log(player,'将',cards,'置入了弃牌堆');
game.delayx();
game.cardsDiscard(cards);
'step 1'
targets[0].draw();
targets[1].chooseToDiscard('he',true);
},
ai:{
result:{
target:function(player,target){
if(!ui.selected.targets.length) return 1;
if(target.countCards('e',function(card){
return get.value(card,target)<=0;
})>0) return 1;
return -1;
},
},
},
},
backup:{audio:'twlingbao'},
},
ai:{
order:1,
result:{player:1},
},
},
twsidao:{
audio:2,
trigger:{
global:'gameDrawAfter',
player:'enterGame',
},
forced:true,
locked:false,
filter:function(event,player){
return !player.storage.twsidao;
},
content:function(){
'step 0'
player.chooseButton(['请选择你的初始法宝',[['gx_lingbaoxianhu','gx_taijifuchen','gx_chongyingshenfu'],'vcard']],true).set('ai',function(button){
return button.link[2]=='gx_chongyingshenfu'?2:1;
});
'step 1'
if(result.bool){
var card=game.createCard2(result.links[0][2]);
lib.inpile.add(result.links[0][2]);
player.storage.twsidao=card;
player.chooseUseTarget(card,'nopopup',true);
}
},
group:'twsidao_equip',
subSkill:{
equip:{
audio:'twsidao',
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
filter:function(event,player){
var card=player.storage.twsidao;
return card&&card.isInPile()&&player.hasUseTarget(card);
},
content:function(){
player.chooseUseTarget(player.storage.twsidao,'nopopup',true);
},
},
},
},
twrangyi:{
audio:2,
enable:'phaseUse',
@ -595,6 +1147,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
waishi_info:' 出牌阶段限一次你可以用至多X张牌交换一名其他角色等量的手牌X为现存势力数然后若其与你势力相同或手牌多于你你摸一张牌。',
renshe:'忍涉',
renshe_info:'当你受到伤害后,你可以选择一项:将势力改为现存的另一个势力;或可以额外发动一次“外使”直到你的下个出牌阶段结束;或与另一名其他角色各摸一张牌。',
tw_gexuan:'TW葛玄',
twdanfa:'丹法',
twdanfa_info:'准备阶段或结束阶段开始时,你可将一张牌置于武将牌上,称为“丹”。每回合每种花色限一次,当你使用牌时,若“丹”中有与此牌花色相同的牌,则你摸一张牌。',
twlingbao:'灵宝',
twlingbao_info:'出牌阶段限一次你可以将两张花色不同的“丹”置入弃牌堆。若这两张牌均为红色你令一名其他角色回复1点体力均为黑色你弃置一名其他角色区域内至多两张区域不同牌颜色不同则你令一名角色摸一张牌并令另一名角色弃置一张牌。',
twsidao:'司道',
twsidao_info:'游戏开始时,你选择一张“法宝”置入装备区。准备阶段,若你以此法选择的法宝在牌堆/弃牌堆中,则你使用之。',
gx_lingbaoxianhu:'灵宝仙壶',
gx_lingbaoxianhu_info:'锁定技当你造成点数大于1的伤害后或有角色死亡后你加1点体力上限并回复1点体力。',
gx_taijifuchen:'太极拂尘',
gx_taijifuchen_info:'锁定技,当你使用【杀】指定目标后,你令目标角色选择一项:①弃置一张牌,若此牌和【杀】花色相同,则你获得之。②其不可响应此【杀】。',
gx_chongyingshenfu:'冲应神符',
gx_chongyingshenfu_info:'锁定技,当你受到牌造成的伤害后,你令所有同名牌对你造成的伤害-1直到游戏结束。',
tw_dongzhao:'TW董昭',
twmiaolve:'妙略',
twmiaolve_info:'游戏开始时你获得两张【瞒天过海】。当你受到1点伤害后你可选择①获得一张【瞒天过海】并摸一张牌。②获得一张智囊。',
twyingjia:'迎驾',
twyingjia_info:'一名角色的回合结束时,若你本回合内使用过两张或更多的同名锦囊牌,则你可弃置一张手牌并令一名角色进行一个额外回合。',
dz_mantianguohai:'瞒天过海',
dz_mantianguohai_info:'此牌不计入拥有者的手牌上限。出牌阶段,对一至两名区域内有牌的其他角色使用。你获得目标角色一张牌,然后依次交给每名目标角色各一张牌。',
tw_mobile:'移动版',
tw_yijiang:'一将成名TW',
tw_english:'英文版',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.110.8.5',
'v1.9.110.8.5.1',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -758,6 +758,12 @@ window.noname_asset_list=[
'audio/die/sp_xujing.mp3',
'audio/die/xiangchong.mp3',
'audio/die/xinzhongyong.mp3',
'audio/die/fengxi.mp3',
'audio/die/heyan.mp3',
'audio/die/qiuliju.mp3',
'audio/die/re_caifuren.mp3',
'audio/die/tw_dongzhao.mp3',
'audio/die/tw_gexuan.mp3',
'audio/skill/decadezishou1.mp3',
'audio/skill/decadezishou2.mp3',
@ -3376,6 +3382,32 @@ window.noname_asset_list=[
'audio/skill/tspowei2.mp3',
'audio/skill/yigui1.mp3',
'audio/skill/yigui2.mp3',
'audio/skill/boyan1.mp3',
'audio/skill/boyan2.mp3',
'audio/skill/koulve1.mp3',
'audio/skill/koulve2.mp3',
'audio/skill/qingtan1.mp3',
'audio/skill/qingtan2.mp3',
'audio/skill/qljsuiren1.mp3',
'audio/skill/qljsuiren2.mp3',
'audio/skill/reqieting1.mp3',
'audio/skill/reqieting2.mp3',
'audio/skill/rexianzhou1.mp3',
'audio/skill/rexianzhou2.mp3',
'audio/skill/twdanfa1.mp3',
'audio/skill/twdanfa2.mp3',
'audio/skill/twlingbao1.mp3',
'audio/skill/twlingbao2.mp3',
'audio/skill/twmiaolve1.mp3',
'audio/skill/twmiaolve2.mp3',
'audio/skill/twsidao1.mp3',
'audio/skill/twsidao2.mp3',
'audio/skill/twyingjia1.mp3',
'audio/skill/twyingjia2.mp3',
'audio/skill/yachai1.mp3',
'audio/skill/yachai2.mp3',
'audio/skill/yusui1.mp3',
'audio/skill/yusui2.mp3',
'audio/voice/male/0.mp3',
'audio/voice/male/1.mp3',
@ -3493,6 +3525,10 @@ window.noname_asset_list=[
'image/card/zhaoshu.png',
'image/card/tiaojiyanmei.png',
'image/card/binglinchengxiax.png',
'image/card/dz_mantianguohai.png',
'image/card/gx_chongyingshenfu.png',
'image/card/gx_lingbaoxianhu.png',
'image/card/gx_taijifuchen.png',
'image/card/bagua.png',
'image/card/baihupifeng.png',
@ -4276,6 +4312,9 @@ window.noname_asset_list=[
'image/character/re_caifuren.jpg',
'image/character/re_dongbai.jpg',
'image/character/wenqin.jpg',
'image/character/pengyang.jpg',
'image/character/tw_dongzhao.jpg',
'image/character/tw_gexuan.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -1,11 +1,11 @@
window.noname_update={
version:'1.9.110.8.5',
update:'1.9.110.8.4.1',
version:'1.9.110.8.5.1',
update:'1.9.110.8.5',
changeLog:[
'藤川米娅',
'何晏、丘力居、董白、界蔡夫人、龙羽飞',
'国战文钦、刘巴、冯熙、苏飞',
'孙亮、高览、管辂、樊玉凤技能调整',
'TW董昭、TW葛玄',
'国战文聘、彭羕',
'张横、吕旷吕翔、辛毗技能调整',
'移除欢乐武将',
'bug修复',
],
files:[
@ -22,15 +22,15 @@ window.noname_update={
//'card/yingbian.js',
//'card/zhenfa.js',
//'card/zhulu.js',
'character/diy.js',
//'character/extra.js',
//'character/diy.js',
'character/extra.js',
//'character/hearth.js',
//'character/gujian.js',
//'character/gwent.js',
//'character/hearth.js',
//'character/mobile.js',
'character/mobile.js',
//'character/mtg.js',
'character/offline.js',
//'character/offline.js',
//'character/old.js',
//'character/ow.js',
'character/rank.js',
@ -38,13 +38,13 @@ window.noname_update={
'character/shenhua.js',
'character/sp.js',
'character/sp2.js',
//'character/tw.js',
'character/tw.js',
'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
//'character/yingbian.js',
'character/yijiang.js',
//'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
//'layout/default/layout.css',
@ -54,13 +54,13 @@ window.noname_update={
//'mode/boss.js',
//'mode/brawl.js',
//'mode/chess.js',
'mode/doudizhu.js',
//'mode/doudizhu.js',
'mode/guozhan.js',
//'mode/identity.js',
//'mode/single.js',
//'mode/stone.js',
//'mode/tafang.js',
//'mode/versus.js',
'mode/versus.js',
'game/game.js',
//'game/keyWords.js',
//'game/NoSleep.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

View File

@ -356,8 +356,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
guozhan_quan:["gz_cuimao","gz_yujin","gz_wangping","gz_fazheng","gz_wuguotai","gz_lukang","gz_yuanshu","gz_zhangxiu"],
guozhan_jun:["gz_jun_caocao","gz_jun_sunquan","gz_jun_liubei","gz_jun_zhangjiao"],
guozhan_jin:['gz_jin_simayi','gz_jin_simazhao','gz_jin_simashi','gz_jin_zhangchunhua','gz_jin_wangyuanji','gz_jin_xiahouhui','gz_duyu','gz_zhanghuyuechen','gz_jin_yanghuiyu','gz_simazhou','gz_shibao','gz_weiguan','gz_zhongyan'],
guozhan_single:['gz_re_xushu','gz_yanbaihu','gz_wujing','gz_dongzhao','gz_huangzu','gz_zhugeke','gz_liuba'],
guozhan_double:['gz_tangzi','gz_liuqi','gz_mengda','gz_mifangfushiren','gz_zhanglu','gz_shixie','gz_xuyou','gz_xiahouba','gz_panjun','gz_xf_sufei','gz_wenqin'],
guozhan_single:['gz_re_xushu','gz_yanbaihu','gz_wujing','gz_dongzhao','gz_huangzu','gz_zhugeke','gz_liuba','gz_wenpin'],
guozhan_double:['gz_tangzi','gz_liuqi','gz_mengda','gz_mifangfushiren','gz_zhanglu','gz_shixie','gz_xuyou','gz_xiahouba','gz_panjun','gz_xf_sufei','gz_wenqin','gz_pengyang'],
guozhan_yexinjia:['gz_zhonghui','gz_simazhao','gz_gongsunyuan'],
guozhan_zongheng:['gz_huaxin','gz_luyusheng','gz_zongyu','gz_miheng','gz_fengxi'],
guozhan_others:["gz_lingcao","gz_lifeng","gz_beimihu","gz_jianggan","gz_key_ushio","gz_sp_duyu"],
@ -401,6 +401,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gz_wenqin:['male','wei',4,['gzyaoqi'],['doublegroup:wei:wu']],
gz_xf_sufei:['male','wu',4,['gzlianpian'],['doublegroup:wu:qun']],
gz_liuba:['male','shu',3,['chouduo','guiyin']],
gz_pengyang:['male','shu',3,['jianni','xiaoba'],['doublegroup:shu:qun']],
gz_wenpin:['male','wei',4,['gzzhenwei','gzyulin']],
gz_caocao:['male','wei',4,['jianxiong']],
gz_simayi:['male','wei',3,['fankui','guicai']],
@ -536,6 +538,337 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},
skill:{
//文聘
gzzhenwei:{
trigger:{player:'phaseDiscardBegin'},
check:function(event,player){
return player.hp>2&&player.needsToDiscard()>0&&game.countPlayer(function(current){
return get.attitude(current,player)<=0;
})>game.countPlayer()/2;
},
content:function(){
player.addTempSkill('gzzhenwei_effect');
player.loseHp();
},
subSkill:{
effect:{
trigger:{player:'phaseDiscardAfter'},
forced:true,
charlotte:true,
popup:false,
filter:function(event,player){
return player.getHistory('lose',function(evt){
return evt.type=='discard'&&evt.cards2&&evt.cards2.length>0&&evt.getParent('phaseDiscard')==event;
}).length>0;
},
content:function(){
'step 0'
var num=0;
player.getHistory('lose',function(evt){
if(evt.type=='discard'&&evt.getParent('phaseDiscard')==trigger) num+=evt.cards2.length;
});
event.num=num;
event.targets=game.filterPlayer(function(current){
return current!=player;
}).sortBySeat();
'step 1'
var target=targets.shift();
event.target=target;
if(target.isIn()){
player.line(target,'green');
target.chooseCard('h',num,'将'+get.cnNumber(num)+'张牌置入弃牌堆或受到1点伤害').set('ai',function(card){
var evt=_status.event.getParent();
if(get.damageEffect(evt.target,evt.player,evt.target)>=0) return 0;
return (8/Math.sqrt(evt.num)+evt.target.getDamagedHp())-get.value(card);
});
}
else if(targets.length) event.redo();
else event.finish();
'step 2'
if(result.bool){
target.lose(result.cards,ui.discardPile,'visible');
target.$throw(result.cards,1000);
game.log(target,'将',result.cards,'置入了弃牌堆');
}
else target.damage();
'step 3'
game.delayx();
if(targets.length) event.goto(1);
},
},
},
ai:{
noDieAfter2:true,
skillTagFilter:function(player,tag,target){
return target.isFriendOf(player);
},
},
},
gzyulin:{
trigger:{player:'phaseJieshuBegin'},
zhenfa:'siege',
direct:true,
locked:true,
filter:function(event,player){
return game.countPlayer()>4&&game.hasPlayer(function(current){
return player.sieged(current)&&player.canUse('sha',current,false);
});
},
content:function(){
'step 0'
var list=game.filterPlayer(function(current){
return player.sieged(current)&&player.canUse('sha',current,false);
});
if(player.hasSkill('gzyulin')){
if(list.length==1) event._result={bool:true,targets:list};
else player.chooseTarget('鱼鳞:视为对一名围攻你的角色使用【杀】',function(card,player,target){
return _status.event.list.contains(target);
},true).set('list',list).set('ai',function(target){
var player=_status.event.player;
return get.effect(target,{name:'sha',isCard:true},player,player);
});
}
else{
player.chooseTarget(get.prompt('gzyulin'),'视为对一名围攻你的角色使用【杀】',function(card,player,target){
return _status.event.list.contains(target);
}).set('list',list).set('ai',function(target){
var player=_status.event.player;
return get.effect(target,{name:'sha',isCard:true},player,player);
});
}
'step 1'
if(result.bool){
player.useCard({name:'sha',isCard:true},result.targets[0],'gzyulin',false);
}
},
global:'gzyulin_siege',
subSkill:{
siege:{
mod:{
maxHandcard:function(player,num){
if(game.countPlayer()<4) return;
var next=player.getNext(),prev=player.getPrevious(),siege=[];
if(player.siege(next)) siege.push(next.getNext());
if(player.siege(prev)) siege.push(prev.getPrevious());
if(siege.length){
siege.push(player);
num+=siege.filter(function(source){
return source.hasSkill('gzyulin');
}).length;
}
if(player.sieged()){
if(next.hasSkill('gzyulin')) num--;
if(prev.hasSkill('gzyulin')) num--;
}
return num;
},
},
},
},
},
//彭羕
jianni:{
trigger:{global:'phaseUseBegin'},
direct:true,
filter:function(event,player){
if(!player.isFriendOf(event.player)||!game.hasPlayer(function(current){
return !current.isLinked();
})) return false;
if(_status.connectMode&&player.hasSkill('jianni')) return player.countCards('h')>0;
return player.countCards('h',function(card){
return get.type2(card,player)=='trick';
});
},
content:function(){
'step 0'
player.chooseCardTarget({
prompt:get.prompt('jianni'),
prompt2:'弃置一张锦囊牌并选择要横置的角色',
filterCard:function(card,player){
return get.type2(card,player)=='trick'&&lib.filter.cardDiscardable(card,player,'jianni');
},
filterTarget:function(card,player,target){
return !target.isLinked();
},
goon:function(){
var target=trigger.player;
if(player.canUse('tao',target)&&get.effect(target,{name:'tao',isCard:true},player,player)>0) return true;
var card={name:'sha',nature:'thunder',isCard:true};
if(game.hasPlayer(function(current){
return current!=player&&current!=target&&target.canUse(card,current,false)&&get.effect(current,card,target,player)>0;
})) return true;
return false;
}(),
ai1:function(card){
if(_status.event.goon) return 7-get.value(card);
return 0;
},
ai2:function(target){
var player=_status.event.player;
return ((target.identity!='unknown'&&!game.hasPlayer(function(current){
return current!=target&&current.isFriendOf(target)&&current.isLinked();
}))?3:1)*(-get.attitude(target,player,player)+1);
},
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('jianni',target);
player.discard(result.cards);
}
else event.finish();
'step 2'
if(!target.isLinked()) target.link();
'step 3'
var map={},sides=[],pmap=_status.connectMode?lib.playerOL:game.playerMap,player;
for(var i of game.players){
if(i.identity=='unknown') continue;
var added=false;
for(var j of sides){
if(i.isFriendOf(pmap[j])){
added=true;
map[j].push(i);
if(i==this) player=j;
break;
}
}
if(!added){
map[i.playerid]=[i];
sides.push(i.playerid);
if(i==this) player=i.playerid;
}
}
var num=0;
for(var i in map){
if(map[i].filter(function(i){
return i.isLinked();
}).length) num++;
}
if(num>0) player.draw(num);
'step 4'
if(trigger.player.isIn()){
var target=trigger.player,tao=player.canUse('tao',target),sha=game.filterPlayer(function(current){
return current!=target&&current!=player&&target.canUse({name:'sha',nature:'thunder',isCard:true},current,false);
});
if(sha.length){
var next=player.chooseTarget('请选择'+get.translation(target)+'使用雷【杀】的目标',function(card,player,target){
return _status.event.list.contains(target);
});
if(tao){
next.set('prompt2','或点「取消」并视为对其使用【桃】');
next.set('goon',get.effect(target,{name:'tao',isCard:true},player,player));
}
else{
next.set('forced',true);
next.set('goon',0);
}
next.set('list',sha);
next.set('ai',function(target){
var player=_status.event.player;
return get.effect(target,{name:'sha',nature:'thunder',isCard:true},_status.event.getTrigger().player,player)-_status.event.goon;
});
}
else if(tao) event._result={bool:false};
else event.finish();
}
else event.finish();
'step 5'
if(result.bool){
var target=result.targets[0];
if(player==trigger.player) player.line(target);
else{
player.line2([trigger.player,target]);
game.delay(0.5);
}
trigger.player.useCard({name:'sha',nature:'thunder',isCard:true},target,false).animate=false;
}
else player.useCard({name:'tao',isCard:true},trigger.player);
},
},
xiaoba:{
trigger:{global:'useCard'},
forced:true,
filter:function(event,player){
if(player!=event.player&&!event.targets.contains(player)) return false;
var type=get.type2(event.card);
if(type!='basic'&&type!='trick') return false;
var list=game.filterPlayer(function(current){
return current!=player&&current.isFriendOf(player);
});
if(!list.length) return false;
var hs=player.countCards('h');
for(var i of list){
if(i.countCards('h')>hs) return false;
}
return true;
},
check:()=>false,
content:function(){
trigger.directHit.addArray(game.players);
},
global:'xiaoba_ai',
ai:{
halfneg:true,
directHit_ai:true,
skillTagFilter:function(player,tag,arg){
if(!arg.card) return false;
var type=get.type2(arg.card);
if(type!='basic'&&type!='trick') return false;
var list=game.filterPlayer(function(current){
return current!=player&&current.isFriendOf(player);
});
if(!list.length) return false;
var cards=[arg.card];
if(arg.card.cards) cards.addArray(arg.card.cards);
cards.addArray(ui.selected.cards);
var hhs=function(card){
return !cards.contains(card);
};
var hs=player.countCards('h',hhs);
for(var i of list){
if(i.countCards('h',hhs)>hs) return false;
}
return true;
},
},
subSkill:{
ai:{
ai:{
directHit_ai:true,
skillTagFilter:function(playerx,tag,arg){
if(!arg.card) return false;
var type=get.type2(arg.card);
if(type!='basic'&&type!='trick') return false;
var player;
if(arg.target&&arg.target.hasSkill('xiaoba')) player=arg.target;
else{
var list=ui.selected.targets.filter(function(target){
return target.hasSkill('xiaoba');
});
if(list.length) player=list[0];
else return false;
}
var list=game.filterPlayer(function(current){
return current!=player&&current.isFriendOf(player);
});
if(!list.length) return false;
var cards=[arg.card];
if(arg.card.cards) cards.addArray(arg.card.cards);
cards.addArray(ui.selected.cards);
var hhs=function(card){
return !cards.contains(card);
};
var hs=player.countCards('h',hhs);
for(var i of list){
if(i.countCards('h',hhs)>hs) return false;
}
return true;
},
},
},
},
},
//刘巴
chouduo:{
trigger:{global:'phaseJieshuBegin'},
@ -9946,6 +10279,15 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
wenqin:'文钦',
fengxi:'冯熙',
liuba:'刘巴',
pengyang:'彭羕',
gzzhenwei:'镇卫',
gzzhenwei_info:'①弃牌阶段开始时你可失去1点体力。然后若你于此阶段内弃置过你的牌则你令其他角色各选择一项1.将X张手牌置入弃牌堆X为你于此阶段内弃置过的牌数2.受到你造成的1点伤害。②你杀死与你势力相同的角色不执行奖惩。 ',
gzyulin:'鱼鳞',
gzyulin_info:'阵法技,若你在一个围攻关系中:①是围攻角色,则所有围攻角色的手牌上限+1且被围攻角色手牌上限-1②是被围攻角色则结束阶段开始时你视为对一名围攻角色使用【杀】。',
jianni:'谏逆',
jianni_info:'一名己方角色A的出牌阶段开始时你可弃置一张锦囊牌横置一名结算并摸X张牌X为拥有横置角色的势力数。然后你选择一项①视为对A使用一张【桃】②令A视为对由你选择的另一名角色使用一张雷【杀】。',
xiaoba:'嚣跋',
xiaoba_info:'锁定技,当你使用或被使用基本牌或普通锦囊牌时,若有其他与你势力相同的角色且这些角色的手牌数均不大于你,则此牌不可被响应。',
chouduo:'筹度',
chouduo_info:'己方角色的结束阶段开始时其可以摸X张牌X为其本回合弃牌阶段弃置的牌数且至多为3。 ',
guiyin:'归隐',
@ -11026,6 +11368,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
dieAfter2:function(source){
var that=this;
if(source&&source.hasSkillTag('noDieAfter2',null,this)) return;
if(source&&source.shijun){
source.discard(source.getCards('he'));
delete source.shijun;

View File

@ -2640,7 +2640,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
lib.character[name][1]='wei';
return true;
});
event.trueList=['xunchen','gaolan','sp_zhanghe','sp_xuyou','chenlin','jsp_liubei','yj_jushou','sp_shenpei','tianfeng','yuantanyuanshang','lvkuanglvxiang','xinpi','guotufengji','chunyuqiong'].filter(function(name){
event.trueList=['xunchen','gaolan','sp_zhanghe','sp_xuyou','chenlin','jsp_liubei','yj_jushou','sp_shenpei','tianfeng','yuantanyuanshang','lvkuanglvxiang','xinpi','re_guotufengji','chunyuqiong'].filter(function(name){
if(!Array.isArray(lib.character[name])) return false;
lib.character[name][1]='qun';
return true;
@ -2716,7 +2716,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
lib.character[name][1]='wei';
return true;
});
event.trueList=['xunchen','gaolan','sp_zhanghe','sp_xuyou','chenlin','jsp_liubei','yj_jushou','sp_shenpei','tianfeng','yuantanyuanshang','lvkuanglvxiang','xinpi','guotufengji','chunyuqiong'].filter(function(name){
event.trueList=['xunchen','gaolan','sp_zhanghe','sp_xuyou','chenlin','jsp_liubei','yj_jushou','sp_shenpei','tianfeng','yuantanyuanshang','lvkuanglvxiang','xinpi','re_guotufengji','chunyuqiong'].filter(function(name){
if(!Array.isArray(lib.character[name])) return false;
lib.character[name][1]='qun';
return true;