This commit is contained in:
Spmario233 2022-01-15 14:12:01 +08:00
parent 37e8712d98
commit 4c9c5be4dd
72 changed files with 1939 additions and 208 deletions

BIN
audio/die/fengfangnv.mp3 Normal file

Binary file not shown.

BIN
audio/die/hanmeng.mp3 Normal file

Binary file not shown.

BIN
audio/die/sp_cuiyan.mp3 Normal file

Binary file not shown.

BIN
audio/die/sp_jiangqing.mp3 Normal file

Binary file not shown.

BIN
audio/die/sp_jiangwan.mp3 Normal file

Binary file not shown.

Binary file not shown.

BIN
audio/die/sunhanhua.mp3 Normal file

Binary file not shown.

BIN
audio/die/xinping.mp3 Normal file

Binary file not shown.

Binary file not shown.

BIN
audio/skill/chongxu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/chongxu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/chuiti1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/chuiti2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/fuyuan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/fuyuan2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jieliang1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jieliang2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/miaojian1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/miaojian2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/quanjiu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/quanjiu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shhlianhua1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shhlianhua2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spdifei1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spdifei2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spjianyi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spjianyi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spjincui1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spjincui2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spshangyi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spshangyi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spyajun1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spyajun2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spyanjiao1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spyanjiao2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spzhenting1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spzhenting2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spzundi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spzundi2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/zhongjie1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zhongjie2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zhuangshu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zhuangshu2.mp3 Normal file

Binary file not shown.

View File

@ -690,6 +690,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
trigger:{player:'useCard2'},
forced:true,
popup:false,
charlotte:true,
filter:function(event,player){
if(event.yingbian_removeTarget&&event.targets&&event.targets.length>1) return true;
if(!event.yingbian_addTarget) return false;

View File

@ -309,7 +309,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
locked:false,
global:'yingba_mark',
mod:{
cardUsableTarget:function(card,player,target){
targetInRange:function(card,player,target){
if(target.hasMark('yingba_mark')) return true;
},
},
@ -354,7 +354,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
trigger.directHit.add(trigger.target);
},
group:['scfuhai_die','scfuhai_usea'],
group:['scfuhai_die'],
ai:{
directHit_ai:true,
skillTagFilter:function(player,tag,arg){
@ -405,18 +405,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return player.getDamagedHp();
},
},
locked:false,
trigger:{player:'damageBegin2'},
direct:true,
forced:true,
filter:function(event,player){
return event.source&&event.source!=player&&player.maxHp>1&&player.countCards('h')>0;
},
content:function(){
'step 0'
player.chooseCardTarget({
prompt:get.prompt('pinghe'),
prompt:'请选择【冯河】的牌和目标',
prompt2:'将一张手牌交给一名其他角色并防止伤害'+(player.hasSkill('yingba')?',然后令伤害来源获得一个“平定”标记':''),
filterCard:true,
forced:true,
filterTarget:lib.filter.notMe,
ai1:function(card){
if(get.tag(card,'recover')&&!game.hasPlayer(function(current){
@ -433,7 +433,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('pinghe',target);
//player.logSkill('pinghe',target);
player.line(target,'green');
target.gain(result.cards,player,'giveAuto');
trigger.cancel();
player.loseMaxHp();
@ -4861,11 +4862,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dinghan_info:'①当你成为未记录过的锦囊牌的目标时,你记录此牌名并取消之。②准备阶段,你可在〖定汉①〗的记录中添加或减少一种锦囊牌的牌名。',
shen_sunce:'神孙策',
yingba:'英霸',
yingba_info:'①出牌阶段限一次你可令一名体力上限大于1的其他角色减少1点体力上限并获得“平定”标记然后你减少1点体力上限。②你对拥有“平定”标记的角色使用牌没有次数限制。③拥有“平定”标记的角色的手牌上限+XX为其“平定”数。',
yingba_info:'①出牌阶段限一次你可令一名体力上限大于1的其他角色减少1点体力上限并获得“平定”标记然后你减少1点体力上限。②你对拥有“平定”标记的角色使用牌没有距离限制。③拥有“平定”标记的角色的手牌上限+XX为其“平定”数。',
scfuhai:'覆海',
scfuhai_info:'锁定技。①当你使用牌指定目标后,若目标角色有“平定”标记,则其不可响应此牌。②当你使用牌结算结束后,你移除所有目标角色的“平定”标记并增加等量的体力上限。③拥有“平定”标记的角色死亡时你增加X点体力上限并摸X张牌。X为其拥有的“平定”标记数。',
scfuhai_info:'锁定技。①当你使用牌指定目标后,若目标角色有“平定”标记,则其不可响应此牌。②拥有“平定”标记的角色死亡时你增加X点体力上限并摸X张牌。X为其拥有的“平定”标记数。',
pinghe:'冯河',
pinghe_info:'①你的手牌上限基数等于你已损失的体力值。②当你受到其他角色造成的伤害时若你有牌且你的体力上限大于1则你可以防止此伤害,减一点体力上限并将一张手牌交给一名其他角色。然后若你拥有〖英霸〗,则伤害来源获得一个“平定”标记。',
pinghe_info:'锁定技。①你的手牌上限基数等于你已损失的体力值。②当你受到其他角色造成的伤害时若你有牌且你的体力上限大于1则你防止此伤害减一点体力上限并将一张手牌交给一名其他角色。然后若你拥有〖英霸〗则伤害来源获得一个“平定”标记。',
key_kagari:'篝',
kagari_zongsi:'纵丝',

File diff suppressed because it is too large Load Diff

View File

@ -8,11 +8,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
offline_star:["sp_xiahoushi","jsp_zhaoyun","huangjinleishi","sp_pangtong","sp_daqiao","sp_ganning","sp_xiahoudun","sp_lvmeng","sp_zhangfei","sp_liubei"],
offline_sticker:['sp_gongsunzan','sp_simazhao','sp_wangyuanji','sp_xinxianying','sp_liuxie'],
offline_luanwu:["ns_lijue","ns_zhangji","ns_fanchou"],
offline_yongjian:["ns_chendao","yj_caoang"],
offline_yongjian:["ns_chendao","yj_caoang","yj_caocao"],
offline_others:["ns_jiaxu","ns_caoanmin","jsp_liubei","longyufei"],
},
},
character:{
yj_caocao:['male','qun',4,['yjxiandao','yjsancai','yjyibing']],
longyufei:['female','shu',3,['longyi','zhenjue']],
sp_liubei:['male','shu',4,['zhaolie','shichou'],['zhu']],
sp_zhangfei:['male','shu',4,['jie','dahe']],
@ -63,6 +64,107 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//群曹操
yjxiandao:{
trigger:{player:'_yongjian_zengyuEnd'},
usable:1,
forced:true,
locked:false,
filter:function(event,player){
return !event._zengyu_denied&&event.target.isIn();
},
logTarget:'target',
content:function(){
'step 0'
event.target=trigger.target;
event.card=trigger.cards[0];
event.target.markAuto('yjxiandao',[get.suit(event.card,false)])
event.target.addTempSkill('yjxiandao_block');
'step 1'
var type=get.type(card,false);
if(type=='trick') player.draw(2);
if(type=='equip'){
if(target.countGainableCards(player,'he',function(cardx){
return cardx!=card;
})>0) player.gainPlayerCard(target,'he',true).set('card',card).set('filterButton',function(button){
return button.link!=_status.event.card;
});
if(get.subtype(card,false)=='equip1') target.damage();
}
},
subSkill:{
block:{
charlotte:true,
onremove:true,
mod:{
cardEnabled:function(card,player){
if(player.getStorage('yjxiandao_block').contains(get.suit(card))) return false;
},
cardRespondable:function(card,player){
if(player.getStorage('yjxiandao_block').contains(get.suit(card))) return false;
},
cardSavable:function(card,player){
if(player.getStorage('yjxiandao_block').contains(get.suit(card))) return false;
},
},
mark:true,
intro:{content:'不能使用或打出$牌'},
},
},
},
yjsancai:{
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.countCards('h')>0;
},
content:function(){
'step 0'
player.showHandcards();
var hs=player.getCards('h');
if(hs.length>1){
var type=get.type2(hs[0],player);
for(var i=1;i<hs.length;i++){
if(get.type(hs[i])!=type){
event.finish();
return;
}
}
}
'step 1'
player.chooseCardTarget({
prompt:'是否赠予一张手牌?',
filterCard:true,
filterTarget:lib.filter.notMe,
});
'step 2'
if(result.bool){
player.line(result.targets[0],'green');
var next=game.createEvent('_yongjian_zengyu');
next.player=player;
next.target=result.targets[0];
next.cards=result.cards;
next.setContent(lib.skill._yongjian_zengyu.content);
}
},
},
yjyibing:{
trigger:{player:'gainAfter'},
direct:true,
filter:function(event,player){
if(event.getParent().name=='_yongjian_zengyu') return false;
var evt=event.getParent('phaseDraw'),hs=player.getCards('h');
return (!evt||evt.player!=player)&&event.cards.filter(function(card){
return hs.contains(card)&&game.checkMod(card,player,'unchanged','cardEnabled2',player)!==false;
}).length==event.cards.length&&player.hasUseTarget({
name:'sha',
cards:event.cards,
},false);
},
content:function(){
player.chooseUseTarget(get.prompt('yjyibing'),'将'+get.translation(trigger.cards)+'当做【杀】使用','sha',trigger.cards,false,'nodistance').logSkill='yjyibing';
},
},
//龙羽飞
longyi:{
enable:['chooseToUse','chooseToRespond'],
@ -111,6 +213,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
position:'h',
}
},
prompt:function(links,player){
return '将所有手牌当做'+(get.translation(links[0][3])||'')+get.translation(links[0][2])+'使用或打出';
}
},
hiddenCard:function(player,name){
return name!='du'&&get.type(name)=='basic'&&player.countCards('h')>0;
@ -149,7 +254,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.skill!='longyi_backup') return false;
for(var i of event.cards){
var type=get.type2(i,player);
if(type=='basic'||type=='trick') return true;
if(type=='equip'||type=='trick') return true;
}
return false;
},
@ -2573,6 +2678,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
longyi_info:'你可将所有手牌当做任意基本牌使用或打出。若此牌对应的实体牌中:有锦囊牌,你摸一张牌;有装备牌,此牌不可被响应。',
zhenjue:'阵绝',
zhenjue_info:'一名角色的结束阶段开始时,若你没有手牌,则你可以令其选择一项:①弃置一张牌。②令你摸一张牌。',
yj_caocao:'SP曹操',
yjxiandao:'献刀',
yjxiandao_info:'每回合限一次。当你对其他角色发动〖赠予〗后你令其不能使用或打出与本次赠予移动的牌A花色相同的牌直到回合结束。然后若牌A为锦囊牌你摸两张牌。为装备牌你获得其一张不为A的牌。为武器牌你对其造成1点伤害。',
yjsancai:'散财',
yjsancai_info:'出牌阶段限一次,你可以展示所有手牌。若这些牌的类别均相同,则你可以发动一次〖赠予〗(可以选择任意手牌)。',
yjyibing:'义兵',
yjyibing_info:'当你不因〖赠予〗而于摸牌阶段外获得牌时,你可以将此次获得的所有牌当做【杀】使用(无距离限制且不计入使用次数)。',
offline_star:'桌游志·SP',
offline_sticker:'桌游志·贴纸',

View File

@ -259,6 +259,7 @@ window.noname_character_rank={
're_nanhualaoxian',
'fuqian',
'liuyong',
'sunhanhua',
'key_misuzu',
'key_sunohara',
'key_umi',
@ -487,6 +488,7 @@ window.noname_character_rank={
'ol_huaxin',
'qiaozhou',
're_xunchen',
'sp_cuiyan',
],
bp:[
'chess_diaochan',
@ -718,6 +720,10 @@ window.noname_character_rank={
'sp_gaolan',
'simafu',
'mayuanyi',
'fengfangnv',
'ol_yangyi',
'sp_zhangchangpu',
'sp_jiangwan',
],
b:[
'diy_feishi',
@ -923,6 +929,7 @@ window.noname_character_rank={
'sp_huaman',
'sp_wangshuang',
'yanpu',
'sp_jiangqing',
],
bm:[
'diy_xizhenxihong',
@ -1074,6 +1081,7 @@ window.noname_character_rank={
're_zoushi',
'yuejiu',
'xin_sunluban',
'ol_bianfuren',
],
c:[
'xiahoudun',
@ -1225,6 +1233,7 @@ window.noname_character_rank={
'panshu',
're_nanhualaoxian',
'shen_sunce',
'sunhanhua',
'key_yuri',
'key_yuzuru',
'sp_key_kanade',
@ -1251,6 +1260,7 @@ window.noname_character_rank={
'shen_taishici',
'shen_xunyu',
'tw_gexuan',
'fengfangnv',
'key_tomoya',
'key_masato',
'key_shiorimiyuki',
@ -1785,6 +1795,9 @@ window.noname_character_rank={
'simafu',
'mayuanyi',
'sp_huaman',
'ol_yangyi',
'sp_cuiyan',
'sp_zhangchangpu',
],
junk:[
'sunshao',

View File

@ -36,7 +36,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xin_lingtong:['male','wu',4,['decadexuanfeng','yongjin']],
xin_liubiao:['male','qun',3,['decadezishou','decadezongshi']],
re_caoxiu:['male','wei',4,['qianju','reqingxi']],
re_sunxiu:['male','wu',3,['reyanzhu','rexingxue','zhaofu'],['zhu']],
re_sunxiu:['male','wu',3,['reyanzhu','rexingxue','xinzhaofu'],['zhu']],
ol_dengai:['male','wei',4,['oltuntian','olzaoxian']],
re_gongsunzan:['male','qun',4,['reqiaomeng','reyicong']],
re_manchong:['male','wei',3,['rejunxing','yuce']],
@ -86,7 +86,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_huanggai:['male','wu',4,['rekurou','zhaxiang']],
re_lvbu:['male','qun',5,['wushuang','new_liyu']],
re_huatuo:['male','qun',3,['jijiu','new_reqingnang']],
re_liubei:['male','shu',4,['rerende','jijiang'],['zhu']],
re_liubei:['male','shu',4,['rerende','rejijiang'],['zhu']],
re_diaochan:['female','qun',3,['lijian','rebiyue']],
re_huangyueying:['female','shu',3,['rejizhi','reqicai']],
re_sunquan:['male','wu',4,['rezhiheng','rejiuyuan'],['zhu']],
@ -95,7 +95,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_zhugeliang:['male','shu',3,['reguanxing','kongcheng']],
re_huaxiong:["male","qun",6,["reyaowu"]],
re_zhangjiao:['male','qun',3,['xinleiji','xinguidao','huangtian'],['zhu']],
re_zhangjiao:['male','qun',3,['xinleiji','xinguidao','xinhuangtian'],['zhu']],
xin_yuji:['male','qun',3,['reguhuo']],
re_zuoci:['male','qun',3,['rehuashen','rexinsheng']],
@ -139,6 +139,172 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_xushu:['zhaoyun','sp_zhugeliang'],
},
skill:{
//新主公技
xinhuangtian:{
unique:true,
audio:'xinhuangtian2',
audioname:['zhangjiao','re_zhangjiao'],
global:'xinhuangtian2',
zhuSkill:true,
},
xinhuangtian2:{
audio:2,
enable:'phaseUse',
discard:false,
lose:false,
delay:false,
line:true,
direct:true,
clearTime:true,
prepare:function(cards,player,targets){
targets[0].logSkill('xinhuangtian');
},
prompt:function(){
var player=_status.event.player;
var list=game.filterPlayer(function(target){
return target!=player&&target.hasZhuSkill('xinhuangtian',player);
});
var str='将一张【闪】或【闪电】交给'+get.translation(list);
if(list.length>1) str+='中的一人';
return str;
},
filter:function(event,player){
if(player.group!='qun') return false;
if(!game.hasPlayer(function(target){
return target!=player&&target.hasZhuSkill('xinhuangtian',player)&&!target.hasSkill('xinhuangtian3');
})) return false;
return player.hasCard(function(card){
return lib.skill.xinhuangtian2.filterCard(card,player);
},'h');
},
filterCard:function(card,player){
return get.name(card,player)=='shan'||get.suit(card,player)=='spade';
},
log:false,
visible:true,
filterTarget:function(card,player,target){
return target!=player&&target.hasZhuSkill('xinhuangtian',player)&&!target.hasSkill('xinhuangtian3');
},
//usable:1,
//forceaudio:true,
content:function(){
target.gain(cards,player,'giveAuto');
target.addTempSkill('xinhuangtian3','phaseUseEnd');
},
ai:{
expose:0.3,
order:10,
result:{
target:5
}
}
},
xinhuangtian3:{},
rejijiang:{
audio:'jijiang1',
audioname:['liushan','re_liubei','re_liushan','ol_liushan'],
unique:true,
group:['rejijiang1','rejijiang3'],
zhuSkill:true,
filter:function(event,player){
if(!player.hasZhuSkill('rejijiang')||!game.hasPlayer(function(current){
return current!=player&&current.group=='shu';
})) return false;
return !event.jijiang&&(event.type!='phase'||!player.hasSkill('jijiang3'));
},
enable:['chooseToUse','chooseToRespond'],
viewAs:{name:'sha'},
filterCard:function(){return false},
selectCard:-1,
ai:{
order:function(){
return get.order({name:'sha'})+0.3;
},
respondSha:true,
skillTagFilter:function(player){
if(!player.hasZhuSkill('rejijiang')||!game.hasPlayer(function(current){
return current!=player&&current.group=='shu';
})) return false;
},
},
},
rejijiang1:{
audio:'jijiang1',
audioname:['liushan','re_liubei','re_liushan','ol_liushan'],
trigger:{player:['useCardBegin','respondBegin']},
logTarget:'targets',
filter:function(event,player){
return event.skill=='rejijiang';
},
forced:true,
content:function(){
"step 0"
delete trigger.skill;
trigger.getParent().set('jijiang',true);
"step 1"
if(event.current==undefined) event.current=player.next;
if(event.current==player){
player.addTempSkill('jijiang3');
event.finish();
trigger.cancel();
trigger.getParent().goto(0);
}
else if(event.current.group=='shu'){
var next=event.current.chooseToRespond('是否替'+get.translation(player)+'打出一张杀?',{name:'sha'});
next.set('ai',function(){
var event=_status.event;
return (get.attitude(event.player,event.source)-2);
});
next.set('source',player);
next.set('jijiang',true);
next.set('skillwarn','替'+get.translation(player)+'打出一张杀');
next.noOrdering=true;
next.autochoose=lib.filter.autoRespondSha;
}
else{
event.current=event.current.next;
event.redo();
}
"step 2"
if(result.bool){
event.finish();
trigger.card=result.card;
trigger.cards=result.cards;
trigger.throw=false;
if(typeof event.current.ai.shown=='number'&&event.current.ai.shown<0.95){
event.current.ai.shown+=0.3;
if(event.current.ai.shown>0.95) event.current.ai.shown=0.95;
}
}
else{
event.current=event.current.next;
event.goto(1);
}
}
},
rejijiang3:{
trigger:{global:['useCard','respond']},
usable:1,
direct:true,
filter:function(event,player){
return event.card.name=='sha'&&event.player!=player&&event.player.group=='shu'&&event.player.isIn()&&
event.player!=_status.currentPhase&&player.hasZhuSkill('rejijiang');
},
content:function(){
'step 0'
trigger.player.chooseBool('激将:是否令'+get.translation(player)+'摸一张牌?').set('ai',function(){
var evt=_status.event;
return get.attitude(evt.player,evt.getParent().player)>0;
});
'step 1'
if(result.bool){
player.logSkill('rejijiang');
trigger.player.line(player,'fire');
player.draw();
}
else player.storage.counttrigger.rejijiang3--;
},
},
//鲁肃
olhaoshi:{
trigger:{player:'phaseDrawBegin2'},
@ -3742,6 +3908,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
locked:false,
audio:'longdan_sha',
audioname:['re_zhaoyun'],
audioname2:{tongyuan:'longdan_tongyuan'},
hiddenCard:function(player,name){
if(name=='tao') return player.countCards('hs','jiu')>0;
if(name=='jiu') return player.countCards('hs','tao')>0;
@ -5214,7 +5381,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
juexingji:true,
zhuSkill:true,
keepSkill:true,
derivation:['jijiang','sishu'],
derivation:['rejijiang','sishu'],
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
filter:function(event,player){
@ -5231,13 +5398,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.log(player,'获得了技能','#g【思蜀】','和','#g【激将】');
player.addSkill('sishu');
if(player.hasSkill('olruoyu')){
player.addSkill('jijiang');
player.addSkill('rejijiang');
}
else{
player.addAdditionalSkill('olruoyu','jijiang');
player.addAdditionalSkill('olruoyu','rejijiang');
}
if(!player.isZhu){
player.storage.zhuSkill_olruoyu=['jijiang'];
player.storage.zhuSkill_olruoyu=['rejijiang'];
}
else{
event.trigger('zhuUpdate');
@ -5366,7 +5533,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var num=game.countPlayer(function(current){
return current.group=='qun';
})
if(num) player.addMark('olxueyi',num)
if(num) player.addMark('olxueyi',num*2);
},
marktext:'裔',
intro:{
@ -5375,17 +5542,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
mod:{
maxHandcard:function(player,num){
if(player.hasZhuSkill('olxueyi')) return num+2*player.countMark('olxueyi');
if(player.hasZhuSkill('olxueyi')) return num+player.countMark('olxueyi');
},
},
group:'olxueyi_draw',
},
olxueyi_draw:{
audio:'olxueyi',
trigger:{player:'phaseBegin'},
trigger:{player:'phaseUseBegin'},
prompt2:'弃置一枚「裔」标记,然后摸一张牌',
check:function(event,player){
return !player.hasJudge('lebu')&&player.getUseValue('wanjian')>0;
return player.getUseValue('wanjian')>0||!player.needsToDiscard();
},
filter:function(event,player){
return player.hasZhuSkill('olxueyi')&&player.hasMark('olxueyi');
@ -7596,40 +7763,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
rejiuyuan:{
global:'rejiuyuan2',
audio:2,
zhuSkill:true,
},
rejiuyuan2:{
audio:'jiuyuan',
forceaudio:true,
trigger:{player:'useCardToPlayer'},
filter:function(event,player){
if(event.card.name!='tao') return false;
if(player.group!='wu') return false;
if(event.target!=player) return false;
return game.hasPlayer(function(target){
return player!=target&&!event.targets.contains(target)&&target.isDamaged()&&target.hp<player.hp&&target.hasZhuSkill('rejiuyuan',player);
});
},
trigger:{global:'recoverBefore'},
direct:true,
filter:function(event,player){
return player!=event.player&&event.player.group=='wu'&&player.hp<=event.player.hp&&
event.getParent().name!='rejiuyuan'&&player.hasZhuSkill('rejiuyuan',event.player)
},
content:function(){
'step 0'
player.chooseTarget(get.prompt2('rejiuyuan'),function(card,player,target){
return player!=target&&!_status.event.targets.contains(target)&&target.isDamaged()&&target.hp<player.hp&&target.hasZhuSkill('rejiuyuan',player);
}).set('ai',function(target){
return get.attitude(_status.event.player,target);
}).set('targets',trigger.targets);
trigger.player.chooseBool('是否对'+get.translation(player)+'发动【救援】?','改为令其回复1点体力然后你摸一张牌').set('ai',function(){
var evt=_status.event;
return get.attitude(evt.player,evt.getParent().player)>0;
});
'step 1'
if(result.bool){
var target=result.targets[0];
target.logSkill('rejiuyuan');
player.line('rejiuyuan2',target,'green');
trigger.getParent().targets.remove(player);
trigger.getParent().targets.push(target);
player.draw();
player.logSkill('rejiuyuan');
trigger.player.line(player,'green');
trigger.cancel();
player.recover();
trigger.player.draw();
}
}
},
},
rezhiheng:{
audio:2,
@ -9918,7 +10074,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
olluanji_info:'你可以将两张花色相同的手牌当做【万箭齐发】使用。当你使用【万箭齐发】选择目标后,你可以为此牌减少一个目标。',
olluanji_remove:'乱击',
olxueyi:'血裔',
olxueyi_info:'主公技,锁定技游戏开始时你获得X个“裔”标记。回合开始时你可以移去一个“裔”标记然后摸一张牌。你每有一个“裔”标记手牌上限便+2。X为场上群势力角色的数目',
olxueyi_info:'主公技,锁定技。①游戏开始时你获得2X个“裔”标记X为场上群势力角色的数目。②出牌阶段开始时你可以移去一个“裔”标记然后摸一张牌。③你的手牌上限+YY为“裔”标记数',
olxueyi_draw:'血裔',
olhunzi:'魂姿',
olhunzi_info:'觉醒技准备阶段若你的体力值为1你减1点体力上限并回复1点体力然后获得技能〖英姿〗和〖英魂〗。',
@ -9933,6 +10089,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinleiji_faq:'不能触发〖雷击〗的判定',
xinleiji_faq_info:'<br>董卓/界董卓〖暴虐〗<br>黄巾雷使〖助祭〗<br>羊徽瑜〖弘仪〗<br>鸣濑白羽〖孤影〗',
xinguidao_info:'一名角色的判定牌生效前你可以打出一张黑色牌作为判定牌并获得原判定牌。若你以此法打出的牌为黑桃2-9则你摸一张牌。',
xinhuangtian:'黄天',
xinhuangtian2:'黄天',
xinhuangtian_info:'主公技。其他群势力角色的出牌阶段限一次,该角色可以交给一张【闪】或黑桃手牌。',
reqiangxi:"强袭",
"reqiangxi_info":"出牌阶段对每名其他角色限一次你可以选择一项1. 失去一点体力并对你攻击范围内的一名其他角色造成一点伤害2. 弃置一张武器牌并对你攻击范围内的一名其他角色造成一点伤害。",
rehuoji:"火计",
@ -9967,7 +10126,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"new_yajiao":"涯角",
"new_yajiao_info":"每当你于回合外使用或打出牌时,你可以亮出牌堆顶的一张牌,并将其交给一名角色。若此牌与你此次使用或打出的牌类别不同,则你弃置一张牌。",
"new_liyu":"利驭",
"new_liyu_info":"当你使用【杀】对一名其他角色造成伤害后,你可以获得其一张牌。若此牌不为装备牌,则其摸一张牌。若此牌为装备牌,则视为你对其选择的另一名角色使用一张【决斗】。",
"new_liyu_info":"当你使用【杀】对一名其他角色造成伤害后,你可以获得其区域内的一张牌。若此牌不为装备牌,则其摸一张牌。若此牌为装备牌,则视为你对其选择的另一名角色使用一张【决斗】。",
"new_retuxi":"突袭",
"new_retuxi_info":"摸牌阶段摸牌时,你可以少摸任意张牌,然后获得等量的角色的各一张手牌。",
"new_retuxi_info_guozhan":"摸牌阶段摸牌时,你可以少摸至多两张牌,然后获得等量的角色的各一张手牌。",
@ -10378,6 +10537,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
oldimeng:'缔盟',
oldimeng_info:'出牌阶段限一次你可令两名满足X≤Y的其他角色交换手牌并获得如下效果出牌阶段结束时你弃置X张牌X为这两名角色手牌数之差的绝对值Y为你的手牌数。',
rejijiang:'激将',
rejijiang1:'激将',
rejijiang2:'激将',
rejijiang_info:'主公技。①当你需要使用或打出【杀】时,你可以令其他蜀势力角色依次选择是否打出一张【杀】。若有角色响应,则你视为使用或打出了此【杀】。②每回合限一次。当有蜀势力角色于回合外使用或打出【杀】时,其可以令你摸一张牌。',
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',
refresh_huo:'界限突破·火',

View File

@ -205,7 +205,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.awakenSkill('hongju');
var cards=player.getStorage('zhengrong');
if(!cards.length||!player.countCards('h')){
event.finish();
event.goto(2);
return;
}
var next=player.chooseToMove('征荣:是否交换“荣”和手牌?');
@ -1011,6 +1011,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"drlt_congjian":{
audio:2,
audioname2:{tongyuan:'ocongjian_tongyuan'},
trigger:{
target:"useCardToTargeted",
},
@ -2309,7 +2310,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
preHidden:true,
check:function(event,player){
return get.attitude(player,target.player)<=0;
return get.attitude(player,event.target)<=0;
},
logTarget:'target',
content:function(){
@ -3086,7 +3087,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
juexingji:true,
zhuSkill:true,
keepSkill:true,
derivation:'jijiang',
derivation:'rejijiang',
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
filter:function(event,player){
@ -3101,13 +3102,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1'
player.recover();
if(player.hasSkill('ruoyu')){
player.addSkill('jijiang');
player.addSkill('rejijiang');
}
else{
player.addAdditionalSkill('ruoyu','jijiang');
player.addAdditionalSkill('ruoyu','rejijiang');
}
if(!player.isZhu){
player.storage.zhuSkill_ruoyu=['jijiang'];
player.storage.zhuSkill_ruoyu=['rejijiang'];
}
else{
event.trigger('zhuUpdate');

View File

@ -5,29 +5,31 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true,
characterSort:{
sp:{
sp_tianji:["sunhao","liuxie","caoang","hetaihou","sunluyu",'ol_wangrong',"zuofen","ganfuren","bianfuren"],
sp_sibi:["yangxiu","chenlin","chengyu","shixie","fuwan","wangyun","zhugejin","simalang","maliang","buzhi","dongyun","kanze","sunqian","xizhicai","sunshao",'duxi',"jianggan",'ol_dengzhi'],
sp_tianji:["sunhao","liuxie","caoang","hetaihou","sunluyu",'ol_wangrong',"zuofen","ganfuren","ol_bianfuren"],
sp_sibi:["yangxiu","chenlin","chengyu","shixie","fuwan","wangyun","zhugejin","simalang","maliang","buzhi","dongyun","kanze","sunqian","xizhicai","sunshao",'duxi',"jianggan",'ol_dengzhi','ol_yangyi'],
sp_tianzhu:["wutugu","yanbaihu","shamoke","panfeng","zhugedan",'huangzu','gaogan',"tadun"],
sp_nvshi:["lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu','ol_xinxianying',"daxiaoqiao"],
sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan'],
sp_huben:["caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng"],
sp_liesi:['mizhu'],
sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao'],
sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang'],
sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv'],
sp_wanglang:['wanglang'],
sp_tongque:["sp_fuwan","sp_fuhuanghou","sp_jiben"],
sp_zhongdan:["cuiyan","huangfusong"],
sp_guozhan2:["mateng","tianfeng","sp_dongzhuo","jiangfei","jiangqing","liqueguosi","lvfan","cuimao","jiling","zhangren","zongyu"],
sp_guozhan2:["mateng","tianfeng","sp_dongzhuo","jiangfei","liqueguosi","lvfan","cuimao","jiling","zhangren","zongyu"],
//sp_single:["niujin"],
sp_others:["hanba","caiyang"],
},
},
characterFilter:{},
character:{
fengfangnv:['female','qun',3,['zhuangshu','chuiti']],
ol_yangyi:['male','shu',3,['oljuanxia','oldingcuo']],
zuofen:['female','jin',3,['zhaosong','lisi']],
ol_wangrong:['female','qun',3,['olfengzi','oljizhan','olfusong']],
ol_dengzhi:['male','shu',3,['olxiuhao','olsujian']],
bianfuren:['female','wei',3,['fuwei','yuejian']],
ol_bianfuren:['female','wei',3,['fuwei','yuejian']],
duxi:['male','wei',3,['quxi','bixiong']],
gaogan:['male','qun',4,['juguan']],
huangchengyan:['male','qun',3,['guanxu','yashi']],
@ -129,7 +131,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yuejin:['male','wei',4,['xiaoguo']],
sp_dongzhuo:['male','qun',5,['hengzheng']],
jiangfei:['male','shu',3,['reshengxi','shoucheng']],
jiangqing:['male','wu',4,['shangyi','zniaoxiang']],
//jiangqing:['male','wu',4,['shangyi','zniaoxiang']],
hetaihou:['female','qun',3,['zhendu','qiluan']],
//kongrong:['male','qun',3,['lirang','mingshi']],
dingfeng:['male','wu',4,['reduanbing','refenxun']],
@ -152,6 +154,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//kaisa:["male","western",4,["zhengfu"]],
},
characterIntro:{
fengfangnv:'冯方之女,司隶人,袁术妻妾。在史书中被记载为天姿国色的美人。钱大昭在《三国志辨疑》中认为冯方当为冯芳误字,冯方女实为是西园八校尉之一的冯芳的女儿。然而,在曹丕《典论》、《九州春秋》等书籍都有提及她,皆作冯方女字样,并无一书写作冯芳女或是明提是冯芳之女。最关键的一点是,冯芳是荆州西陵县人,她女儿不可能是司隶籍,冯芳也没担任过任何与司隶有关的官职。同时期名字为“○女”的并不少见,如施绩女儿施淑女,曹植女儿曹行女,夏侯令女等。',
zuofen:'左芬约253年300年4月23日出土墓志作左棻字兰芝齐国临淄今山东临淄西晋诗人。少好学善属文。为晋武帝贵人。今存诗、赋、颂、赞、诔等20余篇大都为应诏而作《离思赋》最著名。原有集已失传。',
duxi:'杜袭(生卒年不详),字子绪,颍川郡定陵县(今河南省襄城县)人。三国时期魏国重臣,东汉末年颍川“四大名士”之一,济阴太守杜根的孙子。建安初年,投奔司空曹操,历任西鄂县令、议郎、丞相军咨祭酒、魏王侍中、丞相长史、驸马都尉。魏文帝时期,出任督军粮御史、尚书,累封武平亭侯。魏明帝时期,担任大将军曹真和司马懿的军师,抵御蜀国进攻,拜太中大夫,受封平阳乡侯。卒于任上,获赠少府,谥号为定。',
gaogan:'高干(?~206年字元才陈留郡圉县今河南杞县圉镇人。东汉末年并州割据将领蜀郡太守高躬之子、大将军袁绍外甥。出身陈留高氏才志弘邈文武秀出。早年联合荀谌游说韩馥让出冀州牧。袁绍平定河北后以为并州牧。官渡之战时在西线配合作战。因曹操早有准备没有实质进展。袁绍死后袁谭、袁尚与曹操大战于黎阳郡时联合郭援攻打平阳郡为马腾为首关中将领所败郭援为庞德所斩。袁尚败走中山郡后出降于曹操仍为并州刺史。建安十年兴兵反曹固守壶关成功抵挡乐进进攻。得知曹操亲征后留下别将守城亲往匈奴呼厨泉求救没有成功。引兵攻略河东郡屡为钟繇、张既所败。建安十一年投奔荆州刘表。途经上洛时为上洛都尉捕斩之。',
@ -209,7 +212,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jiling:'东汉末年袁术帐下将领,勇猛非常,曾奉命率军攻打小沛的刘备,在吕布辕门射戟的调停下撤兵。',
zoushi:'军阀张济之妻,张绣之婶。张绣降曹后,邹氏遂被曹操霸占。贾诩献计趁机诛杀曹操,险些得手。曹操在损失爱将典韦、侄子曹安民和长子曹昂后方才逃出生天。',
ganfuren:'刘备起兵后,于沛城娶甘氏为妾。后来,甘夫人随刘备到荆州,生了阿斗(也就是后主刘禅)。223年四月刘备病死于白帝城追谥甘夫人为“昭烈皇后”。',
jiangfei:'蒋琬,蜀四英之一。初随刘备入蜀,诸葛亮卒后封大将军,辅佐刘禅,主持朝政,统兵御魏。采取闭关息民政策,国力大增。官至大司马,安阳亭侯,谥号恭侯。费祎,蜀国著名政治家和武将,官至大将军。在一次回途的筵会中,被降将郭修刺杀而亡,谥号敬侯。',
jiangfei:'请分别查阅【蒋琬】和【费袆】各自的介绍。',
mifuren:'刘备夫人。徐州别驾糜竺之妹。长坂兵败,她怀抱年仅两岁的刘禅在乱军中走散,被赵云发现;但麋夫人因为赵云只有一匹马,不肯上马,在将阿斗托付给赵云后投井而亡。',
chendong:'陈武,东吴将领,孙策攻打刘繇,陈武前来相助,孙策非常喜爱陈武,拜为校尉,使作先锋。陈武以十数骑兵力杀敌五十余人。后于赤壁等战役屡立功勋。董袭献上严白虎的人头来降孙策。赤壁之战,董袭受周瑜命,分兵去汉阳,合肥会战时接应太史慈,逍遥津支援孙权。濡须口之战时,董袭在船上督战,船覆董袭坚守殉职。',
jiangqing:'擅长弓术。与周泰原为活跃于长江一带的江贼,孙策脱离袁术下江东自立门户时,和周泰一起率众投靠。 孙策攻刘繇,并引出城中麾下的陈横、薛礼、张英三名将领,陈横后被蒋钦一箭射杀,后与韩当等将乘舟过江,乱箭射杀敌军。曾在赤壁之战与周泰,还有擅使长枪的韩当率领水军在三江口踏江破敌。',
@ -399,8 +402,349 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
},
zhuangshu_basic:{
//fullskin:true,
vanish:true,
derivation:'fengfangnv',
type:'equip',
suit:'spade',
subtype:'equip5',
skills:['zhuangshu_basic'],
forceDie:true,
onLose:function(){
if((!event.getParent(2)||event.getParent(2).name!='swapEquip')&&(event.getParent().type!='equip'||event.getParent().swapEquip)){
card.remove();
card.destroyed=true;
game.log(card,'被销毁了');
}
},
equipDelay:false,
loseDelay:false,
},
zhuangshu_trick:{
//fullskin:true,
vanish:true,
derivation:'fengfangnv',
type:'equip',
suit:'club',
subtype:'equip5',
forceDie:true,
skills:['zhuangshu_trick'],
onLose:function(){
if((!event.getParent(2)||event.getParent(2).name!='swapEquip')&&(event.getParent().type!='equip'||event.getParent().swapEquip)){
card.remove();
card.destroyed=true;
game.log(card,'被销毁了');
}
},
equipDelay:false,
loseDelay:false,
},
zhuangshu_equip:{
//fullskin:true,
vanish:true,
derivation:'fengfangnv',
type:'equip',
suit:'heart',
subtype:'equip5',
skills:['zhuangshu_equip'],
forceDie:true,
inherit:'zhuangshu_basic',
onLose:function(){
if((!event.getParent(2)||event.getParent(2).name!='swapEquip')&&(event.getParent().type!='equip'||event.getParent().swapEquip)){
card.remove();
card.destroyed=true;
game.log(card,'被销毁了');
}
},
equipDelay:false,
loseDelay:false,
},
},
skill:{
//冯方女
zhuangshu:{
audio:2,
trigger:{global:'phaseBegin'},
direct:true,
filter:function(event,player){
return event.player.isIn()&&event.player.isEmpty(5)&&player.hasCard(lib.skill.zhuangshu.filterCard,'he');
},
filterCard:function(card){
if(_status.connectMode) return true;
var type=get.type2(card);
return type=='basic'||type=='trick'||type=='equip';
},
content:function(){
'step 0'
player.chooseToDiscard('he',get.prompt2('zhuangshu',trigger.player),function(card){
var type=get.type2(card);
return type=='basic'||type=='trick'||type=='equip';
}).set('ai',function(card){
var player=_status.event.player;
if(get.attitude(player,_status.event.getTrigger().player)<4) return 0;
var name='zhuangshu_'+get.type2(card,player);
if(game.hasPlayer(function(current){
return current.getEquip(name)&&get.attitude(player,current)>0;
})) return 0;
return 7-get.value(card);
}).logSkill=['zhuangshu',trigger.player];
'step 1'
if(result.bool){
var name='zhuangshu_'+get.type2(result.cards[0],result.cards[0].original=='h'?player:false);
if(lib.card[name]&&trigger.player.isIn&&trigger.player.isEmpty(5)){
var target=game.findPlayer(function(current){
var equip=current.getEquip(5);
return equip&&equip.name==name;
});
if(target){
var card=target.getEquip(5);
target.$give(card,trigger.player,false);
}
else{
var card=game.createCard(name,lib.card[name].suit,12);
trigger.player.$gain2(card,false);
}
game.delayx();
trigger.player.equip(card);
}
}
},
},
chuiti:{
audio:2,
usable:1,
trigger:{global:'loseAfter'},
direct:true,
filter:function(event,player){
if(event.type!='discard') return false;
if(player!=event.player){
var card=event.player.getEquip(5);
if(!card||card.name.indexOf('zhuangshu_')!=0) return false;
}
for(var i of event.cards2){
if(get.position(i,true)=='d'&&player.hasUseTarget(i)) return true;
}
return false;
},
content:function(){
'step 0'
player.chooseButton(['垂涕:是否使用其中的一张牌?',trigger.cards2.filter(function(i){
return (get.position(i,true)=='d'&&player.hasUseTarget(i));
})]).set('ai',function(button){
return _status.event.player.getUseValue(button.link);
});
'step 1'
if(result.bool){
player.$gain2(result.links[0],false);
game.delayx();
player.chooseUseTarget(true,result.links[0],false).logSkill='chuiti';
}
else player.storage.counttrigger.chuiti--;
},
},
zhuangshu_basic:{
equipSkill:true,
usable:1,
trigger:{player:'useCard2'},
direct:true,
filter:function(event,player){
if(event.targets.length!=1) return false;
if(event.card.name!='sha'&&get.type(event.card)!='trick') return false;
var info=get.info(event.card);
if(info.allowMultiple==false) return false;
if(event.targets&&!info.multitarget){
var target=event.targets[0],hp=target.hp,hs=target.countCards('h'),card=event.card;
return game.hasPlayer(function(current){
return current!=target&&current!=player&&(current.hp==hp||current.countCards('h')==hs)&&lib.filter.targetEnabled2(card,player,current);
});
}
return false;
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('zhuangshu_basic'),'为'+get.translation(trigger.card)+'增加一个满足条件的额外目标',function(card,player,current){
var card=_status.event.getTrigger().card,target=_status.event.target,hp=target.hp,hs=target.countCards('h');
return current!=target&&current!=player&&(current.hp==hp||current.countCards('h')==hs)&&lib.filter.targetEnabled2(card,player,current);
}).set('target',trigger.targets[0]).set('ai',function(target){
var card=_status.event.getTrigger().card,player=_status.event.player;
return get.effect(target,card,player,player);
});
'step 1'
if(result.bool){
if(player!=event.player&&!player.isOnline()) game.delayx();
}
else{
player.storage.counttrigger.zhuangshu_basic--;
event.finish();
}
'step 2'
var targets=result.targets;
player.logSkill('zhuangshu_basic',targets);
trigger.targets.addArray(targets);
trigger.directHit.addArray(targets);
},
},
zhuangshu_trick:{
trigger:{player:['phaseJudgeBefore']},
equipSkill:true,
direct:true,
content:function(){
'step 0'
player.chooseControl('判定阶段','弃牌阶段','cancel2').set('prompt',get.prompt('zhuangshu_trick')).set('prompt2','跳过本回合的判定阶段或弃牌阶段').set('ai',function(){
var player=_status.event.player;
if(player.hasCard(function(card){
return get.effect(player,{
name:card.viewAs||card.name,
cards:[card],
},player,player)<0;
},'j')) return '判定阶段';
return '弃牌阶段';
});
'step 1'
if(result.control!='cancel2'){
player.logSkill('zhuangshu_trick');
if(result.control=='判定阶段'){
trigger.cancel();
game.log(player,'跳过了','#y判定阶段');
}
else{
player.skip('phaseDiscard');
game.log(player,'跳过了','#g弃牌阶段');
}
}
},
},
zhuangshu_equip:{
trigger:{player:'phaseUseEnd'},
forced:true,
equipSkill:true,
filter:function(event,player){
return player.countCards('h')<Math.min(5,player.getHandcardLimit());
},
content:function(){
player.drawTo(Math.min(5,player.getHandcardLimit()));
},
},
//杨仪
oljuanxia:{
trigger:{player:'phaseJieshuBegin'},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt2('oljuanxia'),lib.filter.notMe).set('ai',function(target){
var player=_status.event.player,list=[];
for(var name of lib.inpile){
var info=lib.card[name];
if(!info||info.type!='trick'||info.notarget||(info.selectTarget&&info.selectTarget!=1)) continue;
if(!player.canUse(name,target)) continue;
var eff=get.effect(target,{name:name},player,player)
if(eff>0) list.push(eff);
}
list.sort().reverse();
if(!list.length) return 0;
return list[0]+(list[1]||0);
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('oljuanxia',target);
}
else event.finish();
'step 2'
var list=[];
for(var name of lib.inpile){
var info=lib.card[name];
if(!info||info.type!='trick'||info.notarget||(info.selectTarget&&info.selectTarget!=1)) continue;
if(!player.canUse(name,target)) continue;
list.push(name);
}
if(!list.length) event.finish();
else player.chooseButton(['视为对'+get.translation(target)+'使用至多两种牌',[list,'vcard']],[1,2],true).set('ai',function(button){
var evt=_status.event.getParent();
return get.effect(evt.target,{name:button.link[2]},evt.player,evt.player);
});
'step 3'
if(result.bool){
target.addTempSkill('oljuanxia_counter',{player:'phaseAfter'});
if(!target.storage.oljuanxia_counter) target.storage.oljuanxia_counter={};
if(!target.storage.oljuanxia_counter[player.playerid]) target.storage.oljuanxia_counter[player.playerid]=0;
target.storage.oljuanxia_counter[player.playerid]+=result.links.length;
for(var i of result.links) player.useCard({name:i[2]},target,false);
}
},
subSkill:{
counter:{
trigger:{player:'phaseEnd'},
forced:true,
charlotte:true,
onremove:true,
filter:function(event,player){
var map1=(_status.connectMode?lib.playerOL:game.playerMap),map2=player.storage.oljuanxia_counter;
if(!map2) return false;
for(var i in map2){
if(map1[i]&&map1[i].isIn()&&player.canUse('sha',map1[i],false)) return true;
}
return false;
},
logTarget:function(event,player){
var list=[];
var map1=(_status.connectMode?lib.playerOL:game.playerMap),map2=player.storage.oljuanxia_counter;
if(!map2) return false;
for(var i in map2){
if(map1[i]&&map1[i].isIn()) list.push(map1[i]);
}
return list;
},
content:function(){
'step 0'
var list=[];
var map1=(_status.connectMode?lib.playerOL:game.playerMap),map2=player.storage.oljuanxia_counter;
if(!map2) return false;
for(var i in map2){
if(map1[i]&&map1[i].isIn()) list.push(map1[i]);
}
list.sortBySeat();
event.num=0;
event.targets=list;
'step 1'
var target=targets[num];
event.target=target;
if(target.isIn()&&player.canUse('sha',target,false)) player.chooseBool('狷狭:是否视为对'+get.translation(target)+'依次使用'+get.cnNumber(player.storage.oljuanxia_counter[target.playerid])+'张【杀】?').set('goon',get.effect(target,{name:'sha'},player,player)>0).set('ai',()=>_status.event.goon);
'step 2'
if(result.bool){
for(var i=0;i<player.storage.oljuanxia_counter[target.playerid];i++){
player.useCard({name:'sha',isCard:true},target,false);
}
}
event.num++;
if(event.num<targets.length) event.goto(1);
},
},
},
},
oldingcuo:{
trigger:{
player:'damageEnd',
source:'damageSource',
},
usable:1,
content:function(){
'step 0'
player.draw(2);
'step 1'
if(Array.isArray(result)&&result.length>1){
var color=get.color(result[0],player);
for(var i=1;i<result.length;i++){
if(get.color(result[i],player)!=color){
if(player.countCards('h')) player.chooseToDiscard('h',true);
break;
}
}
}
},
},
//左棻
zhaosong:{
trigger:{global:'phaseDrawAfter'},
@ -7852,6 +8196,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
yongdi:{
audio:2,
audioname:['xinping'],
unique:true,
limited:true,
trigger:{player:'phaseZhunbeiBegin'},
@ -8145,7 +8490,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return player.countCards('h','sha')>0;
},
filterTarget:function(card,player,target){
return target!=player&&target.countCards('he')>0;
return target!=player&&target.countCards('he')>0&&player.inRange(target);
},
filterCard:{name:'sha'},
content:function(){
@ -15300,6 +15645,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
beimihu:'卑弥呼',
luzhi:'鲁芝',
bianfuren:'卞夫人',
ol_bianfuren:'卞夫人',
shamoke:'沙摩柯',
lvfan:'吕范',
liqueguosi:'李傕郭汜',
@ -15988,6 +16334,25 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhaosong_info:'一名其他角色的摸牌阶段结束时,若其没有因〖诏颂〗而获得的标记,则你可令其正面向上交给你一张手牌。根据此牌的类型,该角色获得对应的标记和效果:<br>锦囊牌“诔”标记。当拥有者进入濒死状态时其可弃置所有“诔”减1点体力上限将体力回复至1点并摸1张牌。<br>装备牌:“赋”标记。拥有者的出牌阶段开始时,其可弃置所有“赋”,弃置一名角色区域内的一张牌,然后可令其摸一张牌。<br>基本牌“颂”标记。当使用者使用仅指定一个目标的【杀】时其可弃置“颂”为此【杀】增加至多两个目标。然后若此【杀】造成的伤害小于2其失去1点体力。',
lisi:'离思',
lisi_info:'每当你于回合外使用牌的置入弃牌堆时,你可将其交给一名手牌数不大于你的其他角色。',
ol_yangyi:'杨仪',
oljuanxia:'狷狭',
oljuanxia_info:'结束阶段,你可选择一名其他角色,并依次视为对其使用至多两种单目标普通锦囊牌。然后其下回合结束时,可视为对你使用等量的【杀】。',
oldingcuo:'定措',
oldingcuo_info:'每回合限一次。当你受到或造成伤害后,你可摸两张牌。若这两张牌颜色不同,则你弃置一张手牌。',
fengfangnv:'冯方女',
zhuangshu:'妆梳',
zhuangshu_info:'一名角色的回合开始时,若其宝物区为空,则你可以弃置一张牌,并根据此牌的类型,按如下关系将一张宝物牌置入该角色的装备区:{<基本牌,【琼梳】><锦囊牌,【犀梳】><装备牌,【金梳】>}。',
chuiti:'垂涕',
chuiti_info:'每回合限一次。当你或拥有〖妆梳〗牌角色的牌因弃置而进入弃牌堆后,你可使用其中的一张牌。',
zhuangshu_basic:'琼梳',
zhuangshu_basic_bg:'琼',
zhuangshu_basic_info:'每回合限一次。当你使用【杀】或普通锦囊牌选择唯一目标后,你可为此牌增加一名体力值/手牌数相同的额外目标(无距离限制),且该目标不可响应此牌。当此牌不因交换装备或移动至其他装备区而离开你的装备区后,销毁之。',
zhuangshu_trick:'犀梳',
zhuangshu_trick_bg:'犀',
zhuangshu_trick_info:'判定阶段开始前,你可选择:①跳过此阶段。②跳过本回合的弃牌阶段。当此牌不因交换装备或移动至其他装备区而离开你的装备区后,销毁之。',
zhuangshu_equip:'金梳',
zhuangshu_equip_bg:'金',
zhuangshu_equip_info:'锁定技。出牌阶段结束时,你将手牌摸至手牌上限(至多摸五张)。当此牌不因交换装备或移动至其他装备区而离开你的装备区后,销毁之。',
sp_tianji:'天极·皇室宗亲',
sp_sibi:'四弼·辅国文曲',

View File

@ -4,6 +4,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
hanmeng:['male','qun',4,['jieliang','quanjiu']],
xinping:['male','qun',3,['fuyuan','zhongjie','yongdi']],
wanniangongzhu:['female','qun',3,['zhenge','xinghan']],
re_xunchen:['male','qun',3,['refenglve','anyong']],
zhangning:['female','qun',3,['tianze','difa']],
@ -106,7 +108,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_sbfm:["lisu","xinpi","zhangwen"],
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_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou","xinping","hanmeng"],
sp_caizijiaren:['re_dongbai','re_sunluyu','huaxin','luyusheng'],
sp_huangjin:['liuhong','zhujun','re_hejin','re_hansui'],
sp_qihuan:['liubian','zhaozhong'],
@ -118,6 +120,129 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
skill:{
//韩猛
jieliang:{
trigger:{global:'phaseDrawBegin2'},
direct:true,
filter:function(event,player){
return event.player!=player&&!event.numFixed&&event.num>1&&player.countCards('he')>0;
},
content:function(){
'step 0'
event.target=trigger.player;
player.chooseToDiscard(get.prompt2('jieliang',event.target),'he').set('goon',get.attitude(player,trigger.player)<-2).set('ai',function(card){
if(!_status.event.goon) return 0;
return 7-get.value(card);
}).logSkill=['jieliang',event.target];
'step 1'
if(result.bool){
trigger.num--;
target.addMark('jieliang_less',1,false);
target.addTempSkill('jieliang_less');
player.addTempSkill('jieliang_gain');
}
},
subSkill:{
less:{
charlotte:true,
mod:{
maxHandcard:function(player,num){
return num-player.countMark('jieliang_less');
},
},
onremove:true,
intro:{content:'手牌上限-#'},
},
gain:{
trigger:{global:'loseAfter'},
charlotte:true,
direct:true,
filter:function(event,player){
return event.type=='discard'&&event.player==_status.currentPhase&&
event.getParent(3).name=='phaseDiscard'&&event.cards2.filterInD('d').length>0;
},
content:function(){
'step 0'
player.chooseButton(['截粮:是否获得一张牌?',trigger.cards2.filterInD('d')]).set('ai',function(button){
return get.value(button.link,_status.event.player);
});
'step 1'
if(result.bool){
player.logSkill('jieliang',trigger.player);
player.gain(result.links,'gain2');
}
},
},
},
},
quanjiu:{
audio:2,
mod:{
aiOrder:function(player,card,num){
if((card.name=='jiu'||card.name=='xujiu')&&get.name(card)=='sha') return num+0.5;
},
cardname:function(card,player,name){
if(card.name=='jiu'||card.name=='xujiu') return 'sha';
},
},
trigger:{player:'useCard1'},
forced:true,
filter:function(event,player){
return event.addCount!==false&&event.card.isCard&&event.card.name=='sha'&&
event.cards.length==1&&(event.cards[0].name=='jiu'||event.cards[0].name=='xujiu');
},
content:function(){
trigger.addCount=false;
player.getStat().card.sha--;
},
},
//辛评
fuyuan:{
audio:2,
trigger:{player:['useCard','respond']},
filter:function(event,player){
var target=_status.currentPhase;
return target&&target!=player&&target.isIn();
},
logTarget:function(event,player){
var target=_status.currentPhase;
return target.countCards('h')<player.countCards('h')?target:player;
},
check:function(event,player){
var target=lib.skill.fuyuan.logTarget(event,player);
return get.attitude(player,target)>0;
},
prompt:'是否发动【辅袁】?',
prompt2:function(event,player){
var target=lib.skill.fuyuan.logTarget(event,player);
return '令'+get.translation(target)+(target==player?'(你)':'')+'摸一张牌';
},
content:function(){
lib.skill.fuyuan.logTarget(trigger,player).draw();
},
},
zhongjie:{
trigger:{player:'die'},
direct:true,
forceDie:true,
skillAnimation:true,
animationColor:'gray',
content:function(){
'step 0'
player.chooseTarget(get.prompt2('zhongjie'),lib.filter.notMe).set('ai',function(target){
return get.attitude(_status.event.player,target);
});
'step 1'
if(result.bool){
player.awakenSkill('zhongjie');
var target=result.targets[0];
player.logSkill('zhongjie',target);
target.gainMaxHp();
target.recover();
target.draw();
}
},
},
//万年公主
zhenge:{
audio:2,
@ -255,12 +380,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.finish();
}
else{
if(!player.countCards('he')) event.finish();
if(get.position(result.player,true)=='d') target.gain(result.player,'gain2');
event.finish();
/*if(!player.countCards('he')) event.finish();
else{
event.giver=player;
event.gainner=target;
player.chooseCard(true,'he','交给'+get.translation(target)+'一张牌');
}
}*/
}
'step 2'
if(result.bool) event.gainner.gain(result.cards,event.giver,'giveAuto');
@ -368,7 +495,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
'step 0'
var hs=player.getCards('h'),cards=trigger.cards.filter(function(i){
return (hs.contains(i)&&get.color(i,player)=='redt'&&lib.filter.cardDiscardable(i,player,'difa'));
return (hs.contains(i)&&get.color(i,player)=='red'&&lib.filter.cardDiscardable(i,player,'difa'));
});
if(!cards.length) event.finish();
else{
@ -398,6 +525,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return (!player.getStat('skill').zhuning||player.hasSkill('zhuning_double'));
},
filterCard:true,
position:'he',
filterTarget:lib.filter.notMe,
selectCard:[1,Infinity],
delay:false,
@ -543,7 +671,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(trigger.card){
type=get.type2(trigger.card,false);
color=get.color(trigger.card,false);
if(color!='nocolor') str+=';若弃置'+get.translation(color)+'牌则改为摸两张牌';
if(color!='none') str+=';若弃置'+get.translation(color)+'牌则改为摸两张牌';
if(type) str+=';若弃置类型为'+get.translation(type)+'的牌则伤害+1';
}
var next=player.chooseToDiscard('he',get.prompt('chaofeng',trigger.player),str);
@ -555,7 +683,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return val;
});
next.logSkill=['chaofeng',trigger.player];
if(color!='nocolor'){
if(color!='none'){
event.color=color;
next.set('color',color);
}
@ -603,8 +731,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
derivation:['ollongdan','drlt_congjian','chuanyun'],
},
longdan_tongyuan:{audio:true},
ocongjian_tongyuan:{audio:true},
chuanyun:{
audio:2,
audio:true,
trigger:{player:'useCardToPlayered'},
shaRelated:true,
filter:function(event,player){
@ -683,10 +813,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var player=_status.event.player;
if(game.countPlayer(function(current){
return get.attitude(player,current)>0;
})>ui.selected.cards.length) return get.position(card)=='e'?2:1;
})>ui.selected.cards.length) return 1;
return 0;
},
position:'he',
position:'h',
complexCard:true,
discard:false,
lose:false,
@ -1781,7 +1911,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.cardType=cardType;
var num=player.countDisabled();
if(num<5) player.draw(5-num);
player.chooseTarget(true,lib.filter.notMe,'令一名其他角色从牌堆中使用一张'+get.translation(cardType)+'牌').set('ai',function(target){
player.chooseTarget(lib.filter.notMe,'是否令一名其他角色从牌堆中使用一张'+get.translation(cardType)+'牌').set('ai',function(target){
var player=_status.event.player,type=_status.event.cardType;
var card=get.cardPile2(function(card){
return get.subtype(card)==type&&target.canUse(card,target);
@ -4315,7 +4445,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
ai2:function(target){
if(!target) return 1;
return Math.sqrt(5-Math.max(4,target.countCards('h')))*get.attitude(_status.event.player,target);
return Math.sqrt(5-Math.min(4,target.countCards('h')))*get.attitude(_status.event.player,target);
},
forced:true,
});
@ -11195,6 +11325,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liuyong:'刘永字公寿涿郡涿县今河北涿州三国时期蜀汉昭烈帝刘备之子蜀汉后主刘禅之弟。章武元年221年六月封鲁王。建兴八年230年改封甘陵王。咸熙元年264年蜀汉灭亡刘永被迁往洛阳被任命为奉车都尉封乡侯。',
zhangning:'张宁,东汉末年大贤良师张角的女儿。自幼学习太平道法,掌握天地法则。',
wanniangongzhu:'刘氏(生卒年不详),河南郡雒阳县(今河南省洛阳市)人,汉灵帝刘宏之女,汉少帝刘辩与汉献帝刘协的姐妹,封万年公主。',
xinping:'辛评204年字仲治颍川阳翟人东汉末年人物。曹魏卫尉辛毗之兄。原是韩馥部下韩馥逃亡后转而辅佐袁绍。袁绍死后辛评、郭图欲立袁谭为主与审配等不和。后来曹操破邺其弟辛毗在城下劝降。审配怒遣手下将辛评全家杀害。',
hanmeng:'韩猛,又名韩若、韩荀、韩泣(上荀下大) 东汉末年袁绍帐下名将或与《曹瞒传》所言韩莒子为同一人。公元200年官渡之战爆发。袁绍派遣韩猛劫掠曹操军的西道被曹军部将曹仁击破于鸡洛山。袁绍又派韩猛前去运送粮车因为轻敌被曹军部将徐晃、史涣击退。',
},
characterTitle:{
wulan:'#b对决限定武将',
@ -11257,7 +11389,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
lijue:['lijue','ns_lijue'],
fanchou:['fanchou','ns_fanchou'],
zhangji:['zhangji','ns_zhangji'],
zhangchangpu:['ol_zhangchangpu','zhangchangpu'],
zhangchangpu:['zhangchangpu','sp_zhangchangpu','ol_zhangchangpu'],
huangfusong:['huangfusong','old_huangfusong'],
wenyang:['wenyang','db_wenyang','diy_wenyang'],
dingyuan:['ol_dingyuan','dingyuan'],
@ -11786,12 +11918,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yaner_info:'每回合限一次。当有其他角色于其出牌阶段内失去手牌后若其没有手牌则你可以与其各摸两张牌。若其以此法摸得的两张牌类型相同则其回复1点体力。若你以此法摸得的两张牌类型相同则你将〖织纴〗中的“你的回合内”改为“一回合内”直至你下回合开始。',
caoanmin:'曹安民',
xianwei:'险卫',
xianwei_info:'锁定技准备阶段你废除一个装备栏并摸X张牌X为你未废除的装备栏数然后令一名其他角色对其自己使用一张牌堆中的一张与此装备栏副类别相同的装备牌没有可使用的牌则改为摸一张牌。当你废除所有装备栏后你加2点体力上限然后你与所有其他角色视为在彼此的攻击范围内。',
xianwei_info:'锁定技准备阶段你废除一个装备栏并摸X张牌X为你未废除的装备栏数然后你可以令一名其他角色对其自己使用一张牌堆中的一张与此装备栏副类别相同的装备牌没有可使用的牌则改为摸一张牌。当你废除所有装备栏后你加2点体力上限然后你与所有其他角色视为在彼此的攻击范围内。',
zhanghu:'张虎',
cuijian:'摧坚',
cuijian_info:'出牌阶段限一次,你可以选择一名有手牌的其他角色。若其手牌中有【闪】,则其将所有【闪】和防具牌交给你,然后你交给其等量的牌。',
zhtongyuan:'同援',
zhtongyuan_info:'锁定技。①当你使用红色锦囊牌后,你于〖摧坚〗增加“若其手牌中没有【闪】,则你摸两张牌”;②当你于回合外使用或打出红色基本牌后,你删除〖摧坚〗中的“,然后你交给其等量的牌”。③当你使用红色的普通锦囊牌/基本牌时,若你已发动过〖摧坚①〗和〖摧坚②〗,则此牌不可被响应/可额外增加一个目标。',
zhtongyuan_info:'锁定技。①当你使用红色锦囊牌后,你于〖摧坚〗增加“若其手牌中没有【闪】,则你摸两张牌”;②当你使用或打出红色基本牌后,你删除〖摧坚〗中的“,然后你交给其等量的牌”。③当你使用红色的普通锦囊牌/基本牌时,若你已发动过〖摧坚①〗和〖摧坚②〗,则此牌不可被响应/可额外增加一个目标。',
dufuren:'杜夫人',
yise:'异色',
yise_info:'其他角色获得你的牌后若这些牌中有红色牌你可令其回复1点体力有黑色牌其下次受到【杀】造成的伤害时此伤害+1。',
@ -11868,6 +12000,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhenge_info:'准备阶段,你可以选择一名角色。该角色本局游戏的攻击范围+1至多+5。然后若所有其他角色都在该角色的攻击范围内则你可以令其视为对另一名角色使用一张【杀】。',
xinghan:'兴汉',
xinghan_info:'锁定技每回合的第一张【杀】造成伤害后若此【杀】的使用者成为过〖枕戈〗的目标则你摸一张牌。若你的手牌数不是全场唯一最多的则改为摸X张牌X为该角色的攻击范围且最多为5。',
xinping:'辛评',
fuyuan:'辅袁',
fuyuan_info:'当你于回合外使用或打出牌时,若当前回合角色的手牌数:不小于你,你可摸一张牌;小于你,你可令其摸一张牌。',
zhongjie:'忠节',
zhongjie_info:'当你死亡时你可令一名其他角色加1点体力上限并回复1点体力然后摸一张牌。',
hanmeng:'韩猛',
jieliang:'截粮',
jieliang_info:'其他角色的摸牌阶段开始时,你可弃置一张牌,令其本阶段的摸牌数和本回合的手牌上限-1。然后当其于本回合的弃牌阶段内因弃置而失去牌后你可获得其中的一张。',
quanjiu:'劝酒',
quanjiu_info:'锁定技。①你手牌区中的【酒】的牌名视为【杀】。②你使用对应的实体牌为一张【酒】的非转化【杀】不计入次数限制。',
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",

View File

@ -81,7 +81,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liubei:['guanyu','zhangfei','ganfuren'],
zhaoyun:['liushan'],
daqiao:['xiaoqiao'],
zhouyu:['huanggai','xiaoqiao'],
zhouyu:['huanggai','xiaoqiao','zhouyi'],
sunquan:['zhoutai'],
lvbu:['diaochan'],
machao:['madai','mayunlu'],

View File

@ -567,7 +567,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return evt.name=='equan_lose'&&evt.player==player;
},
content:function(){
trigger.player.addTempSkill('fengyin');
trigger.player.addTempSkill('baiban');
},
},
},
@ -577,7 +577,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{global:'loseHpAfter'},
forced:true,
filter:function(event,player){
return player.hp>=event.player.hp||player.isDamaged();
return player!=event.player&&player.hp>=event.player.hp||player.isDamaged();
},
logTarget:'player',
content:function(){
@ -613,7 +613,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
list[0].draw(2);
'step 2'
var list=event.list;
if(list[1].isIn()&&list[0].isIn()&&list[1].canUse('sha',list[0],false)) list[1].useCard({name:'sha',isCard:true},list[0],false);
if(list[1].isIn()&&list[0].isIn()&&list[1].canUse('sha',list[0],false)) list[1].useCard({name:'sha',isCard:true},list[0],false,'noai');
},
ai:{
order:5,
@ -1709,7 +1709,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dingfa_info:'弃牌阶段结束时若本回合你失去的牌数不小于你的体力值你可以选择一项1、回复1点体力2、对一名其他角色造成1点伤害。 ',
duosidawang:'朵思大王',
equan:'恶泉',
equan_info:'锁定技。①当有角色于你的回合内受到伤害后其获得X枚“毒”X为伤害值。②准备阶段你令所有拥有“毒”标记的角色移去所有“毒”标记并失去等量的体力。③当有角色因〖恶泉②〗进入濒死状态时你令其所有非锁定技失效直到回合结束。',
equan_info:'锁定技。①当有角色于你的回合内受到伤害后其获得X枚“毒”X为伤害值。②准备阶段你令所有拥有“毒”标记的角色移去所有“毒”标记并失去等量的体力。③当有角色因〖恶泉②〗进入濒死状态时你令其所有失效直到回合结束。',
manji:'蛮汲',
manji_info:'锁定技。其他角色失去体力后若你的体力值不大于该角色你回复1点体力不小于该角色你摸一张牌。',
wuban:'吴班',

View File

@ -66,7 +66,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhongyao:['male','wei',3,['huomo','zuoding']],
liuchen:['male','shu',4,['zhanjue','qinwang'],['zhu']],
zhangyi:['male','shu',4,['wurong','shizhi']],
sunxiu:['male','wu',3,['yanzhu','xingxue','zhaofu'],['zhu']],
sunxiu:['male','wu',3,['yanzhu','xingxue','xinzhaofu'],['zhu']],
zhuzhi:['male','wu',4,['xinanguo']],
quancong:['male','wu',4,['yaoming']],
gongsunyuan:['male','qun',4,['huaiyi']],
@ -194,6 +194,43 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhonghui:['jiangwei'],
},
skill:{
//孙体
xinzhaofu:{
audio:'zhaofu',
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.hasZhuSkill('xinzhaofu');
},
limited:true,
skillAnimation:true,
animationColor:'wood',
selectTarget:[1,2],
filterTarget:lib.filter.notMe,
contentBefore:function(){
player.awakenSkill('xinzhaofu');
},
content:function(){
target.addSkill('xinzhaofu_effect');
target.markAuto('xinzhaofu_effect',[player]);
},
subSkill:{
effect:{
charlotte:true,
mark:true,
intro:{content:'已视为在其他吴势力角色的攻击范围内'},
mod:{
inRangeOf:function(from,to){
if(from.group!='wu') return;
var list=to.getStorage('xinzhaofu_effect');
for(var i of list){
if(i!=from) return true;
}
},
},
},
},
},
xinkuangbi:{
audio:'kuangbi',
enable:'phaseUse',
@ -1445,7 +1482,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
player.showCards(cards);
'step 1'
player.choosePlayerCard(target,'h',[1,player.hasSkill('xincaishi_1')?4:3],'请选择要展示的牌').ai=function(){return Math.random()};
player.choosePlayerCard(target,'h',[1,player.hasSkill('xincaishi_1')?4:3],'请选择要展示的牌',true).ai=function(){return Math.random()};
'step 2'
event.cards2=result.cards.slice(0);
target.showCards(event.cards2);
@ -12449,7 +12486,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jigong:'急攻',
jigong_info:'出牌阶段开始时你可以摸两张牌。若如此做你本回合的手牌上限改为XX为你此阶段造成的伤害点数之和。',
shifei:'饰非',
shifei_info:'当你需要使用或打出【闪】时,你可以令当前回合角色摸一张牌。然后若其手牌数不为全场最多,则你弃置全场手牌数最多(或之一)角色的一张牌,视为你使用或打出了一张【闪】。',
shifei_info:'当你需要使用或打出【闪】时,你可以令当前回合角色摸一张牌。然后若其手牌数不为全场唯一最多,则你弃置全场手牌数最多(或之一)角色的一张牌,视为你使用或打出了一张【闪】。',
huaiyi:'怀异',
huaiyi_info:'出牌阶段限一次你可以展示所有手牌若这些牌的颜色不全部相同则你选择一种颜色并弃置该颜色的所有手牌然后你可以获得至多X名角色的各一张牌X为你以此法弃置的手牌数。若你以此法获得的牌不少于两张则你失去1点体力。',
yaoming:'邀名',
@ -12484,7 +12521,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qinwang:'勤王',
qinwang1:'勤王',
qinwang2:'勤王',
qinwang_info:'主公技,当你需要使用或打出一张【杀】时,你可以弃置一张牌,然后视为你发动了〖激将〗。若有角色响应,则该角色打出【杀】时摸一张牌。',
qinwang_info:'主公技,当你需要使用或打出一张【杀】时,你可以弃置一张牌,然后视为你发动了〖激将〗。若有角色响应,则该角色打出【杀】时摸一张牌。',
huomo:'活墨',
huomo_use:'活墨',
//huomo_use_backup:'活墨',
@ -12757,6 +12794,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rejingce_info:'当你于一回合内首次使用某种花色的手牌时,你的手牌上限+1。出牌阶段结束时你可以摸X张牌X为你本阶段内使用过的牌的类型数。',
xinkuangbi:'匡弼',
xinkuangbi_info:'出牌阶段限一次。你可以令一名其他角色交给你至多三张牌(不计入你本回合的手牌上限)。然后其于其的下回合开始时摸等量的牌。',
xinzhaofu:'诏缚',
xinzhaofu_info:'主公技,限定技。出牌阶段,你可选择至多两名其他角色。这两名角色视为在所有其他吴势力角色的攻击范围内。',
yijiang_2011:'一将成名2011',
yijiang_2012:'一将成名2012',

View File

@ -10369,6 +10369,247 @@
emptyEvent:function(){
event.trigger(event.name);
},
chooseToPlayBeatmap:function(){
'step 0'
if(game.online) return;
if(_status.connectMode) event.time=lib.configOL.choose_timeout;
event.videoId=lib.status.videoId++;
//给其他角色看的演奏框
game.broadcastAll(function(player,id,beatmap){
if(_status.connectMode) lib.configOL.choose_timeout=(Math.ceil((beatmap.timeleap[beatmap.timeleap.length-1]+beatmap.speed*100+(beatmap.current||0))/1000)+5).toString();
if(player==game.me) return;
var str=get.translation(player)+'正在演奏《'+beatmap.name+'》...<br>';
ui.create.dialog(str).videoId=id;
if(ui.backgroundMusic) ui.backgroundMusic.pause();
if(lib.config.background_audio){
if(beatmap.filename.indexOf('ext:')==0) game.playAudio('..','extension',beatmap.filename.slice(4),beatmap.name);
else game.playAudio('effect',beatmap.filename);
}
},player,event.videoId,event.beatmap);
'step 1'
var beatmap=event.beatmap;
if(event.isMine()){
var timeleap=beatmap.timeleap.slice(0);
var current=beatmap.current;
//获取两个音符的时间间隔
var getTimeout=function(){
var time=timeleap.shift();
var out=time-current;
current=time;
return out;
};
//初始化一堆变量
var score=0;
var added=timeleap.length;
var abs=1;
var node_pos=0;
var combo=0;
var max_combo=0;
var nodes=[];
var roundmenu=false;
//隐藏菜单按钮
if(ui.roundmenu&&ui.roundmenu.display!='none'){
roundmenu=true;
ui.roundmenu.style.display='none';
}
if(ui.backgroundMusic) ui.backgroundMusic.pause();
var event=_status.event;
event.settleed=false;
//建个框框
var dialog=ui.create.dialog('forcebutton','hidden');
event.dialog=dialog;
event.dialog.textPrompt=event.dialog.add('<div class="text center">'+(beatmap.prompt||'在音符滑条和底部判定区重合时点击屏幕!')+'</div>');
event.switchToAuto=function(){};
event.dialog.classList.add('fixed');
event.dialog.classList.add('scroll1');
event.dialog.classList.add('scroll2');
event.dialog.classList.add('fullwidth');
event.dialog.classList.add('fullheight');
event.dialog.classList.add('noupdate');
event.dialog.style.overflow='hidden';
//结束后操作
event.settle=function(){
if(event.settleed) return;
event.settleed=true;
//评分
var acc=Math.floor(score/(added*5)*100);
var rank;
if(acc==100) rank=['SS','metal'];
else if(acc>=94) rank=['S','orange'];
else if(acc>=87) rank=['A','wood'];
else if(acc>=80) rank=['B','water'];
else if(acc>=65) rank=['C','thunder'];
else rank=['D','fire'];
event.dialog.textPrompt.innerHTML='<div class="text center">演奏结束!<br>最大连击数:'+max_combo+' 精准度:'+acc+'%</div>';
game.me.$fullscreenpop('<span style="font-family:xinwei">演奏评级:<span data-nature="'+rank[1]+'">'+rank[0]+'</span></span>',null,null,false);
//返回结果并继续游戏
setTimeout(function(){
event._result={
bool:true,
accuracy:acc,
rank:rank,
};
event.dialog.close();
game.resume();
_status.imchoosing=false;
if(roundmenu) ui.roundmenu.style.display='';
if(ui.backgroundMusic) ui.backgroundMusic.play();
},1000);
};
event.dialog.open();
//操作容差
var height=event.dialog.offsetHeight;
var width=event.dialog.offsetWidth;
var range1=(beatmap.range1||[90,110]);
var range2=(beatmap.range2||[93,107]);
var range3=(beatmap.range3||[96,104]);
var speed=(beatmap.speed||25);
//初始化底部的条子
var judger=ui.create.div('');
judger.style["background-image"]=(beatmap.judgebar_color||'linear-gradient(rgba(240, 235, 3, 1), rgba(230, 225, 5, 1))');
judger.style["border-radius"]='3px';
judger.style.position='absolute';
judger.style.opacity='0.3';
var heightj=Math.ceil(height*(beatmap.judgebar_height||0.1));
judger.style.height=heightj+'px';
judger.style.width=width+'px';
judger.style.left='0px';
judger.style.top=(height-heightj)+'px';
event.dialog.appendChild(judger);
//生成每个音符
var addNode=function(){
var node=ui.create.div('');
nodes.push(node);
node.style["background-image"]=(beatmap.node_color||'linear-gradient(rgba(120, 120, 240, 1), rgba(100, 100, 230, 1))');
node.style["border-radius"]='3px';
node.style.position='absolute';
node.style.height=Math.ceil(height/10)+'px';
node.style.width=Math.ceil(width/6)-10+'px';
node._position=get.utc();
event.dialog.appendChild(node);
node.style.left=Math.ceil(width*node_pos/6+5)+'px';
node.style.top='-'+(Math.ceil(height/10))+'px';
ui.refresh(node);
node.style.transition='all '+speed*110+'ms linear';
node.style.transform='translateY('+Math.ceil(height*1.1)+'px)';
node.timeout=setTimeout(function(){
if(nodes.contains(node)){
nodes.remove(node);
player.popup('Miss','fire',false);
if(player.damagepopups.length) player.$damagepop();
combo=0;
}
},speed*110);
node_pos+=abs;
if(node_pos>5){
abs=-1;
node_pos=4;
}
else if(node_pos<0){
abs=1;
node_pos=1;
}
if(timeleap.length){
setTimeout(function(){
addNode();
},getTimeout());
}
else{
setTimeout(function(){
event.settle();
},speed*110+100)
}
}
//点击时的判断操作
var click=function(){
if(!nodes.length) return;
for(var node of nodes){
//用生成到点击的时间差来判断距离
var time=get.utc();
var top=(time-node._position)/speed;
if(top>range1[1]) continue;
else if(top<range1[0]) return;
nodes.remove(node);
clearTimeout(node.timeout);
node.style.transform='';
node.style.transition='all 0s';
node.style.top=(height*((top-10)/100))+'px';
ui.refresh(node);
node.style.transition='all 0.5s';
node.style.transform='scale(1.2)';
node.delete();
if(top>=range3[0]&&top<range3[1]){
score+=5;
player.popup('Perfect','orange',false);
}
else if(top>=range2[0]&&top<range2[1]){
score+=3;
player.popup('Great','wood',false);
}
else{
score+=1;
player.popup('Good','soil',false);
}
if(player.damagepopups.length) player.$damagepop();
combo++;
max_combo=Math.max(combo,max_combo);
break;
}
};
document.addEventListener(lib.config.touchscreen?'touchend':'click',click);
game.pause();
game.countChoose();
setTimeout(function(){
if(lib.config.background_audio){
if(beatmap.filename.indexOf('ext:')==0) game.playAudio('..','extension',beatmap.filename.slice(4),beatmap.name);
else game.playAudio('effect',beatmap.filename);
}
},Math.floor(speed*100*(0.9+beatmap.judgebar_height))+beatmap.current);
setTimeout(function(){
addNode();
},getTimeout());
}
else if(event.isOnline()){
event.send();
}
else{
game.pause();
game.countChoose();
setTimeout(function(){
_status.imchoosing=false;
var acc=get.rand.apply(get,beatmap.aiAcc||[70,100]);
var rank;
if(acc==100) rank=['SS','metal'];
else if(acc>=94) rank=['S','orange'];
else if(acc>=87) rank=['A','green'];
else if(acc>=80) rank=['B','water'];
else if(acc>=65) rank=['C','thunder'];
else rank=['D','fire'];
event._result={
bool:true,
accuracy:acc,
rank:rank,
};
if(event.dialog) event.dialog.close();
if(event.control) event.control.close();
game.resume();
},beatmap.timeleap[beatmap.timeleap.length-1]+beatmap.speed*100+1000+(beatmap.current||0));
}
'step 2'
game.broadcastAll(function(id,time){
if(_status.connectMode) lib.configOL.choose_timeout=time;
var dialog=get.idDialog(id);
if(dialog){
dialog.close();
}
if(ui.backgroundMusic) ui.backgroundMusic.play();
},event.videoId,event.time);
var result=event.result||result;
event.result=result;
},
chooseToMove:function(){
'step 0'
if(event.chooseTime&&_status.connectMode&&!game.online){
@ -12167,8 +12408,6 @@
delete player._noVibrate;
game.vibrate();
}
}
if(!ok){
if(typeof event.prompt=='string'){
if(event.openskilldialog){
event.skillDialog=ui.create.dialog(event.openskilldialog);
@ -12378,7 +12617,7 @@
return;
}
var ok=game.check();
if(!ok){
if(!ok||!lib.config.auto_confirm){
game.pause();
if(event.openskilldialog){
event.skillDialog=ui.create.dialog(event.openskilldialog);
@ -14522,7 +14761,7 @@
var sex=player.sex=='female'?'female':'male';
var audioinfo=lib.card[card.name].audio;
// if(audioinfo||true){
if(card.name=='sha'&&(card.nature=='fire'||card.nature=='thunder'||card.nature=='ice')){
if(card.name=='sha'&&(card.nature=='fire'||card.nature=='thunder'||card.nature=='ice'||card.nature=='stab')){
game.playAudio('card',sex,card.name+'_'+card.nature);
}
else{
@ -15192,7 +15431,8 @@
discard:function(){
"step 0"
game.log(player,'弃置了',cards);
event.done=player.lose(cards,event.position,'visible').type='discard';
event.done=player.lose(cards,event.position,'visible');
event.done.type='discard';
"step 1"
event.trigger('discard');
},
@ -15553,6 +15793,7 @@
}
if(!hej.contains(cards[i])){
cards.splice(i--,1);
continue;
}
else if(cards[i].parentNode){
if(cards[i].parentNode.classList.contains('equips')){
@ -16700,6 +16941,14 @@
}
this.checkConflict();
},
chooseToPlayBeatmap:function(beatmap){
var next=game.createEvent('chooseToPlayBeatmap');
next.player=this;
next.beatmap=beatmap;
next._args=Array.from(arguments);
next.setContent('chooseToPlayBeatmap');
return next;
},
chooseToMove:function(){
var next=game.createEvent('chooseToMove');
next.player=this;
@ -26439,7 +26688,7 @@
firstDo:true,
trigger:{player:['playercontrol','chooseToUseBegin','chooseToRespondBegin','chooseToDiscardBegin','chooseToCompareBegin',
'chooseButtonBegin','chooseCardBegin','chooseTargetBegin','chooseCardTargetBegin','chooseControlBegin',
'chooseBoolBegin','choosePlayerCardBegin','discardPlayerCardBegin','gainPlayerCardBegin','chooseToMoveBegin']},
'chooseBoolBegin','choosePlayerCardBegin','discardPlayerCardBegin','gainPlayerCardBegin','chooseToMoveBegin','chooseToPlayBeatmapBegin']},
forced:true,
priority:100,
forceDie:true,
@ -32739,7 +32988,7 @@
var firstCheck=false;
range=get.select(event.selectCard);
if(!event._cardChoice&&typeof event.selectCard!='function'&&
!event.complexCard&&range[1]!=-1&&!lib.config.compatiblemode){
!event.complexCard&&range[1]>-1&&!lib.config.compatiblemode){
event._cardChoice=[];
firstCheck=true;
}

View File

@ -1,3 +1,3 @@
window.bannedKeyWords=[
'ghs','直肠','性交','做爱','http','吃奶','骚逼','哈巴狗','美眉','癌','屁眼','艹','傻逼','操你','做鸡','奸','姦','华为','屄','狗子','屎','同性恋','肖战','鸡巴','精液','粪水','挂月亮中','贱骨头','吃屁','傻','奥利给','丁真','蛆','鼠鼠','鼠人','神友',
'ghs','直肠','性交','做爱','http','吃奶','骚逼','哈巴狗','美眉','癌','屁眼','艹','傻逼','操你','做鸡','奸','姦','华为','屄','狗子','屎','同性恋','肖战','鸡巴','精液','粪水','挂月亮中','贱骨头','吃屁','傻','奥利给','丁真','蛆','鼠鼠','鼠人','神友','</a>',
];

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

BIN
image/character/hanmeng.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

BIN
image/character/xinping.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

View File

@ -773,6 +773,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
//南华老仙
gzgongxiu:{
audio:'gongxiu',
trigger:{player:'phaseDrawBegin2'},
preHidden:true,
filter:function(event,player){
@ -780,7 +781,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
content:function(){
trigger.num--;
player.addTempSkill('gzgongxiu2','phaseUseAfter');
player.addTempSkill('gzgongxiu2','phaseDrawAfter');
},
},
gzgongxiu2:{
@ -821,6 +822,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
gzjinghe:{
audio:'jinghe',
enable:'phaseUse',
filter:function(event,player){
return player.maxHp>0&&player.countCards('h')>0&&!player.hasSkill('gzjinghe_clear');
@ -1189,7 +1191,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
return target.countGainableCards(player,'h')>0;
return target!=player&&target.countGainableCards(player,'h')>0;
},
content:function(){
'step 0'
@ -2113,13 +2115,15 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
usable:1,
delay:false,
filter:function(event,player){
return player.countCards('h',{color:'red'})&&player.countCards('h',{color:'black'});
return player.countCards('h')>0;
},
content:function(){
'step 0'
player.showHandcards();
'step 1'
player.chooseControl('红色','黑色').set('ai',function(){
if(!player.countCards('h',{color:'red'})) event._result={control:'黑色'};
else if(!player.countCards('h',{color:'black'})) event._result={control:'红色'};
else player.chooseControl('红色','黑色').set('ai',function(){
var player=_status.event.player,num=player.maxHp-player.getStorage('gzhuaiyi').length;
if(player.countCards('h',{color:'red'})<=num&&
player.countCards('h',{color:'black'})>num) return '红色';
@ -2656,11 +2660,15 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}).set('sourcex',trigger.player).setHiddenSkill(event.name);
player.addTempSkill('gzzhuhai2');
next.oncard=function(card,player){
if(trigger.player.getHistory('sourceDamage',function(evt){
return evt.player.isFriendOf(player);
}).length){
player.addTempSkill('gzzhuhai2');
card.gzzhuhai_tag=true;
try{
if(trigger.player.getHistory('sourceDamage',function(evt){
return evt.player.isFriendOf(player);
}).length){
player.addTempSkill('gzzhuhai2');
card.gzzhuhai_tag=true;
}
}catch(e){
alert('发生了一个导致【诛害】无法正常触发无视防具效果的错误。请关闭十周年UI/手杀UI等扩展以解决');
}
}
},
@ -3958,6 +3966,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
yigui:{
audio:2,
hiddenCard:function(player,name){
var storage=player.storage.yigui;
if(name=='shan'||name=='wuxie'||!storage||!storage.character.length||storage.used.contains(name)||!lib.inpile.contains(name)) return false;
@ -4107,7 +4116,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
complexCard:true,
check:function(){return 1},
popname:true,
audio:"huashen1",
audio:"yigui",
viewAs:{
name:name,
nature:nature,
@ -4191,7 +4200,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
"yigui_init":{
audio:"huashen",
audio:"yigui",
trigger:{
player:'showCharacterAfter',
},
@ -4251,7 +4260,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
complexCard:true,
check:function(){return 1},
popname:true,
audio:"huashen1",
audio:"yigui",
viewAs:{
name:'shan',
isCard:true,
@ -4313,7 +4322,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
complexCard:true,
check:function(){return 1},
popname:true,
audio:"huashen1",
audio:"yigui",
viewAs:{
name:'wuxie',
isCard:true,
@ -4345,7 +4354,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
player:'damageEnd',
global:'dyingAfter',
},
audio:"xinsheng",
audio:2,
frequent:true,
preHidden:true,
filter:function(event,player){

View File

@ -2635,12 +2635,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
_status.firstAct=game.falseZhu;
game.delay(0,5000);
"step 1"
event.falseList=['xunyu','xunyou','re_guojia','re_zhangliao','re_xuhuang','yujin_yujin','caohong','jsp_guanyu','liuye','litong','zangba','re_manchong','re_hanhaoshihuan','chengyu','caoren'].filter(function(name){
event.falseList=['xunyu','xunyou','re_guojia','re_zhangliao','re_xuhuang','yujin_yujin','caohong','jsp_guanyu','liuye','litong','zangba','re_manchong','re_hanhaoshihuan','chengyu','caoren','zhangxiu','sp_jiaxu'].filter(function(name){
if(!Array.isArray(lib.character[name])) return false;
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','re_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','hanmeng','xinping'].filter(function(name){
if(!Array.isArray(lib.character[name])) return false;
lib.character[name][1]='qun';
return true;
@ -2657,7 +2657,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var list=[];
game.countPlayer(function(current){
if(current.identity=='zhong'){
var choice=event[current.side+'List'].randomRemove(3);
var choice=event[current.side+'List'].randomRemove(4);
event.map[current.playerid]=choice;
list.push([current,['请选择武将',[choice,'character']],true]);
}
@ -2711,12 +2711,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},evt);
game.me.chooseControl('ok').set('prompt','###本局特殊事件:'+get.translation(evt)+'###'+get.translation(evt+'_info'));
'step 1'
event.falseList=['xunyu','xunyou','re_guojia','re_zhangliao','re_xuhuang','yujin_yujin','caohong','jsp_guanyu','liuye','litong','zangba','re_manchong','re_hanhaoshihuan','chengyu','caoren'].filter(function(name){
event.falseList=['xunyu','xunyou','re_guojia','re_zhangliao','re_xuhuang','yujin_yujin','caohong','jsp_guanyu','liuye','litong','zangba','re_manchong','re_hanhaoshihuan','chengyu','caoren','zhangxiu','sp_jiaxu'].filter(function(name){
if(!Array.isArray(lib.character[name])) return false;
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','re_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','hanmeng','xinping'].filter(function(name){
if(!Array.isArray(lib.character[name])) return false;
lib.character[name][1]='qun';
return true;
@ -2724,7 +2724,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
'step 2'
if(game.me.identity!='zhu'){
event.choose_me=true;
game.me.chooseButton(['请选择你的武将牌',[event[game.me.side+'List'].randomRemove(3),'character']],true);
game.me.chooseButton(['请选择你的武将牌',[event[game.me.side+'List'].randomRemove(4),'character']],true);
}
'step 3'
if(event.choose_me) game.me.init(result.links[0]);