神孙策

This commit is contained in:
Spmario233 2021-11-16 18:42:00 +08:00
parent b7cd766440
commit f9517af0c6
79 changed files with 2046 additions and 126 deletions

Binary file not shown.

BIN
audio/die/gz_huangzu.mp3 Normal file

Binary file not shown.

BIN
audio/die/gz_liuba.mp3 Normal file

Binary file not shown.

BIN
audio/die/gz_simazhao.mp3 Normal file

Binary file not shown.

BIN
audio/die/gz_sunchen.mp3 Normal file

Binary file not shown.

BIN
audio/die/gz_zhugeke.mp3 Normal file

Binary file not shown.

Binary file not shown.

BIN
audio/die/shen_sunce.mp3 Normal file

Binary file not shown.

BIN
audio/die/yuanhuan.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/fengjie1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/fengjie2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gongxiu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gongxiu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzduwu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzduwu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzfankui1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzfankui2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzhuaiyi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzhuaiyi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzshilu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzshilu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzsuzhi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzsuzhi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzxiongnve1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzxiongnve2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzxishe1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzxishe2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzzhaoxin1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzzhaoxin2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzzisui1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/gzzisui2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jinghe1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jinghe2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jueyong1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jueyong2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/pinghe1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/pinghe2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/poxiang1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/poxiang2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/qingjue1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/qingjue2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/qingyin1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/qingyin2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/scfuhai1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/scfuhai2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/tongduo1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/tongduo2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/yingba1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/yingba2.mp3 Normal file

Binary file not shown.

View File

@ -631,7 +631,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}, },
mode:['guozhan','boss'], mode:['guozhan','boss'],
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
if(get.mode()=='guozhan') return target!=player&&target.identity!='unknown'&&(target.identity!=player.identity||target.identity=='ye'); if(get.mode()=='guozhan') return target!=player&&target.identity!='unknown'&&!target.isFriendOf(player);
return true; return true;
}, },
selectTarget:function(){ selectTarget:function(){

View File

@ -3670,11 +3670,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.draw(event.count); player.draw(event.count);
'step 1' 'step 1'
event.count--; event.count--;
if(game.hasPlayer(function(target){
return lib.skill.ryoichi_baoyi.filterTarget(null,player,target);
})){
player.chooseTarget(true,lib.skill.ryoichi_baoyi.filterTarget,'请选择【爆衣】的目标').set('ai',function(target){ player.chooseTarget(true,lib.skill.ryoichi_baoyi.filterTarget,'请选择【爆衣】的目标').set('ai',function(target){
return -get.attitude(_status.event.player,target); return -get.attitude(_status.event.player,target);
}); });
}
else event.finish();
'step 2' 'step 2'
if(result.bool){ if(result.bool&&result.targets&&result.targets.length){
var target=result.targets[0]; var target=result.targets[0];
player.line(target,'green'); player.line(target,'green');
if(target.sex=='female') target.loseHp(); if(target.sex=='female') target.loseHp();

View File

@ -15,7 +15,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
extra_key:['key_kagari','key_shiki','db_key_hina'], extra_key:['key_kagari','key_shiki','db_key_hina'],
extra_ol:['ol_zhangliao','shen_caopi','shen_zhenji'], extra_ol:['ol_zhangliao','shen_caopi','shen_zhenji'],
extra_mobilezhi:['shen_guojia','shen_xunyu'], extra_mobilezhi:['shen_guojia','shen_xunyu'],
extra_mobilexin:['shen_taishici'], extra_mobilexin:['shen_taishici','shen_sunce'],
extra_offline:['shen_diaochan','boss_zhaoyun'], extra_offline:['shen_diaochan','boss_zhaoyun'],
}, },
}, },
@ -24,6 +24,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_shiki:['female','shen','3/5',['shiki_omusubi'],['key']], key_shiki:['female','shen','3/5',['shiki_omusubi'],['key']],
db_key_hina:['female','key',3,['hina_shenshi','hina_xingzhi'],['doublegroup:key:shen']], db_key_hina:['female','key',3,['hina_shenshi','hina_xingzhi'],['doublegroup:key:shen']],
shen_sunce:['male','shen','1/6',['yingba','scfuhai','pinghe'],['wu']],
shen_xunyu:['male','shen',3,['tianzuo','lingce','dinghan'],['wei']], shen_xunyu:['male','shen',3,['tianzuo','lingce','dinghan'],['wei']],
shen_taishici:['male','shen',4,['dulie','tspowei','dangmo'],['wu']], shen_taishici:['male','shen',4,['dulie','tspowei','dangmo'],['wu']],
shen_guojia:['male','shen',3,['reshuishi','stianyi','resghuishi'],['wei']], shen_guojia:['male','shen',3,['reshuishi','stianyi','resghuishi'],['wei']],
@ -292,6 +293,148 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
}, },
yingba:{
audio:2,
enable:'phaseUse',
usable:1,
filter:(event,player)=>(game.hasPlayer((current)=>(current!=player&&current.maxHp>1))),
filterTarget:(card,player,target)=>(target!=player&&target.maxHp>1),
content:function(){
'step 0'
target.loseMaxHp();
'step 1'
if(target.isIn()) target.addMark('yingba_mark',1);
player.loseMaxHp();
},
locked:false,
mod:{
cardUsableTarget:function(card,player,target){
if(target.hasMark('yingba_mark')) return true;
},
},
ai:{
combo:'scfuhai',
threaten:3,
order:2,
result:{
target:function(player,target){
if(target.isHealthy()) return -2;
return -1;
},
},
},
subSkill:{
mark:{
marktext:'定',
intro:{
name:'平定',
content:'mark',
onunmark:true,
},
},
},
},
scfuhai:{
audio:2,
trigger:{player:'useCardToPlayered'},
forced:true,
filter:function(event,player){
return event.target&&event.target.hasMark('yingba_mark');
},
logTarget:'target',
content:function(){
trigger.directHit.add(trigger.target);
},
group:['scfuhai_die','scfuhai_usea'],
ai:{
directHit_ai:true,
skillTagFilter:function(player,tag,arg){
return arg&&arg.target&&arg.target.hasMark('yingba_mark')
},
},
subSkill:{
usea:{
trigger:{player:'useCardAfter'},
forced:true,
filter:function(event,player){
return lib.skill.scfuhai_usea.logTarget(event,player).length>0;
},
logTarget:function(event,player){
return event.targets.filter(function(i){
return i.hasMark('yingba_mark');
});
},
content:function(){
var num=0;
for(var i of trigger.targets){
var numx=i.countMark('yingba_mark');
if(numx){
num+=numx;
i.removeMark('yingba_mark',numx);
}
}
if(num) player.gainMaxHp(num);
},
},
die:{
trigger:{global:'die'},
forced:true,
filter:function(event,player){
return event.player.countMark('yingba_mark')>0;
},
content:function(){
player.gainMaxHp(trigger.player.countMark('yingba_mark'));
player.draw(trigger.player.countMark('yingba_mark'));
},
},
},
},
pinghe:{
audio:2,
mod:{
maxHandcardBase:function(player){
return player.getDamagedHp();
},
},
locked:false,
trigger:{player:'damageBegin2'},
direct:true,
filter:function(event,player){
return event.source&&event.source!=player&&event.num<player.countCards('h');
},
content:function(){
'step 0'
player.chooseCardTarget({
prompt:get.prompt('pinghe'),
prompt2:'将'+get.cnNumber(trigger.num)+'张手牌交给一名其他角色并防止伤害'+(player.hasSkill('yingba')?',然后令伤害来源获得等量“平定”标记':''),
selectCard:trigger.num,
filterCard:true,
filterTarget:lib.filter.notMe,
ai1:function(card){
if(get.tag(card,'recover')&&!game.hasPlayer(function(current){
return get.attitude(current,player)>0&&!current.hasSkillTag('nogain');
})) return 0;
return 1/Math.max(0.1,get.value(card));
},
ai2:function(target){
var player=_status.event.player,att=get.attitude(player,target);
if(target.hasSkillTag('nogain')) att/=9;
return 4+att;
},
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('pinghe',target);
target.gain(result.cards,player,'giveAuto');
trigger.cancel();
player.loseMaxHp(trigger.num);
if(player.hasSkill('yingba')){
trigger.source.addMark('yingba_mark',trigger.num);
}
}
},
},
tianzuo:{ tianzuo:{
audio:2, audio:2,
trigger:{ trigger:{
@ -382,7 +525,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var rand=Math.random(); var rand=Math.random();
if(e1<e2) return rand<0.1?'奇兵':'正兵'; if(e1<e2) return rand<0.1?'奇兵':'正兵';
return rand<0.1?'正兵':'奇兵'; return rand<0.1?'正兵':'奇兵';
}()); }()).set('ai',()=>(_status.event.choice));
'step 1' 'step 1'
var map=trigger.getParent().customArgs,id=target.playerid; var map=trigger.getParent().customArgs,id=target.playerid;
if(!map[id]) map[id]={}; if(!map[id]) map[id]={};
@ -397,7 +540,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{global:'useCard'}, trigger:{global:'useCard'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return event.card.name=='qizhengxiangsheng'||get.zhinangs().contains(event.card.name); return event.card.name=='qizhengxiangsheng'||get.zhinangs().contains(event.card.name)||player.getStorage('dinghan').contains(event.card.name);
}, },
content:function(){player.draw()}, content:function(){player.draw()},
}, },
@ -406,18 +549,60 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{target:'useCardToTarget'}, trigger:{target:'useCardToTarget'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return get.tag(event.card,'damage')>0&&!player.getStorage('dinghan_clear').contains(event.card.name); return get.type2(event.card)=='trick'&&!player.getStorage('dinghan').contains(event.card.name);
}, },
content:function(){ content:function(){
player.markAuto('dinghan_clear',[trigger.card.name]); player.markAuto('dinghan',[trigger.card.name]);
player.addTempSkill('dinghan_clear','roundStart');
trigger.targets.remove(player); trigger.targets.remove(player);
trigger.getParent().triggeredTargets2.remove(player); trigger.getParent().triggeredTargets2.remove(player);
trigger.untrigger(); trigger.untrigger();
}, },
onremove:true,
intro:{content:'已记录牌名:$'},
group:'dinghan_add',
subSkill:{ subSkill:{
clear:{onremove:true}, add:{
trigger:{player:'phaseBegin'},
direct:true,
content:function(){
'step 0'
var dialog=[get.prompt('dinghan')];list1=player.getStorage('dinghan'),list2=lib.inpile.filter(function(i){
return get.type2(i,false)=='trick'&&!list1.contains(i);
});
if(list1.length){
dialog.push('<div class="text center">已记录</div>');
dialog.push([list1,'vcard']);
} }
if(list2.length){
dialog.push('<div class="text center">未记录</div>');
dialog.push([list2,'vcard']);
}
player.chooseButton(dialog).set('ai',function(button){
var player=_status.event.player,name=button.link[2];
if(player.getStorage('dinghan').contains(name)){
return -get.effect(player,{name:name},player,player);
}
else{
return get.effect(player,{name:name},player,player)*(1+player.countCards('hs',name));
}
});
'step 1'
if(result.bool){
player.logSkill('dinghan');
var name=result.links[0][2];
if(player.getStorage('dinghan').contains(name)){
player.unmarkAuto('dinghan',[name]);
game.log(player,'从定汉记录中移除了','#y'+get.translation(name));
}
else{
player.markAuto('dinghan',[name]);
game.log(player,'向定汉记录中添加了','#y'+get.translation(name));
}
game.delayx();
}
},
},
},
}, },
dulie:{ dulie:{
audio:2, audio:2,
@ -468,7 +653,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
'step 0' 'step 0'
player.judge(function(result){ player.judge(function(result){
if(get.color(result)=='red') return 2; if(get.suit(result)=='heart') return 2;
return -1; return -1;
}).judge2=function(result){ }).judge2=function(result){
return result.bool; return result.bool;
@ -2929,18 +3114,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
content:function(){ content:function(){
"step 0" "step 0"
player.chooseTarget('选择角色获得大雾标记', player.chooseTarget(get.prompt('dawu'),'选择角色获得大雾标记',
[1,Math.min(game.countPlayer(),player.storage.qixing.length)]).ai=function(target){ [1,Math.min(game.countPlayer(),player.storage.qixing.length)]).set('ai',function(target){
if(target.isMin()) return 0; if(target.isMin()) return 0;
if(target.hasSkill('biantian2')) return 0; if(target.hasSkill('biantian2')) return 0;
var att=get.attitude(player,target); var att=get.attitude(player,target);
if(att>=4){ if(att>=4){
if(target.hp==1&&target.maxHp>2) return att; if(_status.event.allUse) return att;
if(target.hp==2&&target.maxHp>3&&target.countCards('he')==0) return att*0.7; if(target.hp==1) return att;
if(target.hp==2&&target.countCards('he')<=2) return att*0.7;
return 0; return 0;
} }
return -1; return -1;
} }).set('allUse',player.storage.qixing.length>=game.countPlayer(function(current){
return get.attitude(player,current)>4;
})*2);
"step 1" "step 1"
if(result.bool){ if(result.bool){
var length=result.targets.length; var length=result.targets.length;
@ -2949,6 +3137,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
player.logSkill('dawu',result.targets,'thunder'); player.logSkill('dawu',result.targets,'thunder');
player.chooseCardButton('弃置'+get.cnNumber(length)+'枚星',length,player.storage.qixing,true); player.chooseCardButton('弃置'+get.cnNumber(length)+'枚星',length,player.storage.qixing,true);
player.addSkill('dawu3');
} }
else{ else{
event.finish(); event.finish();
@ -2960,10 +3149,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.storage.qixing.length==0){ if(player.storage.qixing.length==0){
player.unmarkSkill('qixing'); player.unmarkSkill('qixing');
} }
player.$throw(result.links,1000);
game.delayx();
game.addVideo('storage',player,['qixing',get.cardsInfo(player.storage.qixing),'cards']); game.addVideo('storage',player,['qixing',get.cardsInfo(player.storage.qixing),'cards']);
game.cardsDiscard(result.links); game.cardsDiscard(result.links);
}, },
group:'dawu3'
}, },
dawu2:{ dawu2:{
trigger:{player:'damageBegin4'}, trigger:{player:'damageBegin4'},
@ -2987,23 +3177,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
intro:{ intro:{
content:'已获得大雾标记' markcount:()=>1,
content:'共有1个标记'
} }
}, },
dawu3:{ dawu3:{
trigger:{player:['phaseZhunbeiBegin','dieBegin']}, trigger:{player:['phaseBegin','dieBegin']},
silent:true, silent:true,
charlotte:true,
content:function(){ content:function(){
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
if(game.players[i].hasSkill('dawu2')){ if(game.players[i].hasSkill('dawu2')){
game.players[i].removeSkill('dawu2'); game.players[i].removeSkill('dawu2');
//game.players[i].popup('dawu2');
} }
if(game.players[i].hasSkill('kuangfeng2')){ if(game.players[i].hasSkill('kuangfeng2')){
game.players[i].removeSkill('kuangfeng2'); game.players[i].removeSkill('kuangfeng2');
//game.players[i].popup('kuangfeng2');
} }
} }
player.removeSkill('dawu3');
} }
}, },
kuangfeng:{ kuangfeng:{
@ -3016,7 +3207,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
"step 0" "step 0"
player.chooseTarget('选择一名角色获得狂风标记').ai=function(target){ player.chooseTarget(get.prompt('kuangfeng'),'选择一名角色获得狂风标记').ai=function(target){
return -1; return -1;
} }
"step 1" "step 1"
@ -3027,6 +3218,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
player.logSkill('kuangfeng',result.targets,'fire'); player.logSkill('kuangfeng',result.targets,'fire');
player.chooseCardButton('弃置'+get.cnNumber(length)+'枚星',length,player.storage.qixing,true); player.chooseCardButton('弃置'+get.cnNumber(length)+'枚星',length,player.storage.qixing,true);
player.addSkill('dawu3');
} }
else{ else{
event.finish(); event.finish();
@ -3038,6 +3230,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.storage.qixing.length==0){ if(player.storage.qixing.length==0){
player.unmarkSkill('qixing'); player.unmarkSkill('qixing');
} }
player.$throw(result.links,1000);
game.delayx();
game.addVideo('storage',player,['qixing',get.cardsInfo(player.storage.qixing),'cards']); game.addVideo('storage',player,['qixing',get.cardsInfo(player.storage.qixing),'cards']);
game.cardsDiscard(result.links); game.cardsDiscard(result.links);
game.log(player,'将',result.links,'置入了弃牌堆') game.log(player,'将',result.links,'置入了弃牌堆')
@ -3051,7 +3245,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
mark:true, mark:true,
intro:{ intro:{
content:'已获得狂风标记' markcount:()=>1,
content:'共有1个标记'
}, },
forced:true, forced:true,
content:function(){ content:function(){
@ -4652,7 +4847,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sghuishi_info:'限定技出牌阶段你可以选择一名其他角色若其有未发动过的觉醒技则你令其发动这些觉醒技时无视原有条件否则其摸四张牌。然后你减2点体力上限。', sghuishi_info:'限定技出牌阶段你可以选择一名其他角色若其有未发动过的觉醒技则你令其发动这些觉醒技时无视原有条件否则其摸四张牌。然后你减2点体力上限。',
shen_taishici:'神太史慈', shen_taishici:'神太史慈',
dulie:'笃烈', dulie:'笃烈',
dulie_info:'锁定技。①游戏开始时,你令所有其他角色获得“围”。②你对没有“围”的角色使用【杀】无距离限制。③当你成为【杀】的目标时,若使用者没有“围”,则你进行判定。若结果为红,则取消此目标。', dulie_info:'锁定技。①游戏开始时,你令所有其他角色获得“围”。②你对没有“围”的角色使用【杀】无距离限制。③当你成为【杀】的目标时,若使用者没有“围”,则你进行判定。若结果为红,则取消此目标。',
tspowei:'破围', tspowei:'破围',
tspowei_info:'使命技。①当你因使用【杀】而对有“围”的角色造成伤害时你防止此伤害并移去该角色的“围”。②使命当你使用【杀】结算完成后若场上没有“围”则你获得技能〖神著〗。③失败当你进入濒死状态时你将体力值回复至1点然后弃置装备区的所有牌。', tspowei_info:'使命技。①当你因使用【杀】而对有“围”的角色造成伤害时你防止此伤害并移去该角色的“围”。②使命当你使用【杀】结算完成后若场上没有“围”则你获得技能〖神著〗。③失败当你进入濒死状态时你将体力值回复至1点然后弃置装备区的所有牌。',
shenzhu:'神著', shenzhu:'神著',
@ -4669,9 +4864,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tianzuo:'天佐', tianzuo:'天佐',
tianzuo_info:'①游戏开始时你将8张【奇正相生】加入牌堆。②当一名角色成为【奇正相生】的目标后你可观看其手牌然后可以更改其标记。', tianzuo_info:'①游戏开始时你将8张【奇正相生】加入牌堆。②当一名角色成为【奇正相生】的目标后你可观看其手牌然后可以更改其标记。',
lingce:'灵策', lingce:'灵策',
lingce_info:'锁定技。当有【奇正相生】或智囊被使用时,你摸一张牌。', lingce_info:'锁定技。当有【奇正相生】或智囊或〖定汉①〗记录过的锦囊牌被使用时,你摸一张牌。',
dinghan:'定汉', dinghan:'定汉',
dinghan_info:'锁定技,每种牌名每轮限一次。当你成为伤害类卡牌的目标时,取消之。', dinghan_info:'①当你成为未记录过的锦囊牌的目标时,你记录此牌名并取消之。②准备阶段,你可在〖定汉①〗的记录中添加或减少一种锦囊牌的牌名。',
shen_sunce:'神孙策',
yingba:'英霸',
yingba_info:'①出牌阶段限一次你可令一名体力上限大于1的其他角色减少1点体力上限并获得“平定”标记然后你减少1点体力上限。②你对拥有“平定”标记的角色使用牌没有次数限制。',
scfuhai:'覆海',
scfuhai_info:'锁定技。①当你使用牌指定目标后若目标角色有“平定”标记则其不可响应此牌。②当你使用牌结算结束后你移除所有目标角色的“平定”标记并增加等量的体力上限。③拥有“平定”标记的角色死亡时你增加X点体力上限并摸X张牌。X为其拥有的“平定”标记数。',
pinghe:'冯河',
pinghe_info:'①你的手牌上限基数等于你已损失的体力值。②当你受到其他角色造成的伤害时若你的手牌数大于X则你可以防止此伤害减少X点体力值上限并将X张手牌交给一名其他角色X为伤害值。然后若你拥有〖英霸〗则伤害来源获得X个“平定”标记。',
key_kagari:'篝', key_kagari:'篝',
kagari_zongsi:'纵丝', kagari_zongsi:'纵丝',

View File

@ -6,12 +6,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true, connect:true,
characterSort:{ characterSort:{
mobile:{ mobile:{
mobile_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan","sp_sufei","furong","dingyuan","simashi","yanghuiyu","hucheer","gongsunkang","nanhualaoxian","zhouqun","qiaozhou"], mobile_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan","sp_sufei","furong","dingyuan","simashi","yanghuiyu","hucheer","gongsunkang","nanhualaoxian","zhouqun","qiaozhou","fuqian"],
mobile_yijiang:["yj_zhanghe","yj_zhangliao","yj_xuhuang","yj_ganning"], mobile_yijiang:["yj_zhanghe","yj_zhangliao","yj_xuhuang","yj_ganning"],
mobile_shijizhi:["sp_wangcan","sp_chenzhen","sp_sunshao","sp_xunchen","luotong","sp_duyu","sp_bianfuren","feiyi"], mobile_shijizhi:["sp_wangcan","sp_chenzhen","sp_sunshao","sp_xunchen","luotong","sp_duyu","sp_bianfuren","feiyi"],
mobile_shijixin:['wujing','sp_mifuren','sp_xinpi','wangling','wangfuzhaolei','zhouchu','sp_kongrong','sp_yanghu'], mobile_shijixin:['wujing','sp_mifuren','sp_xinpi','wangling','wangfuzhaolei','zhouchu','sp_kongrong','sp_yanghu'],
mobile_shijiren:['caizhenji','xiangchong','sp_huaxin','sp_xujing','zhangzhongjing','sp_zhangwen','liuzhang','qiaogong'], mobile_shijiren:['caizhenji','xiangchong','sp_huaxin','sp_xujing','zhangzhongjing','sp_zhangwen','liuzhang','qiaogong'],
mobile_shijiyong:['db_wenyang'], mobile_shijiyong:['db_wenyang','sp_chendong','yuanhuan','sp_zongyu'],
mobile_sunben:["re_sunben"], mobile_sunben:["re_sunben"],
mobile_standard:["xin_xiahoudun","xin_zhangfei"], mobile_standard:["xin_xiahoudun","xin_zhangfei"],
mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian","re_dengai","re_jiangwei","re_zhurong"], mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian","re_dengai","re_jiangwei","re_zhurong"],
@ -24,16 +24,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
character:{ character:{
fuqian:['male','shu',4,['jueyong','poxiang']],
sp_zongyu:['male','shu',3,['zhibian','yuyan']],
yuanhuan:['male','wei',3,['qingjue','fengjie']],
sp_chendong:['male','wu',4,['spyilie','spfenming']],
xin_caozhen:['male','wei',4,['disordersidi']], xin_caozhen:['male','wei',4,['disordersidi']],
xin_sunluban:['female','wu',3,['xinzenhui','xinjiaojin']], xin_sunluban:['female','wu',3,['xinzenhui','xinjiaojin']],
qiaozhou:['male','shu',3,['zhiming','xingbu']], qiaozhou:['male','shu',3,['zhiming','xingbu']],
db_wenyang:['male','wei',4,['dbquedi','dbzhuifeng','dbchongjian','dbchoujue'],['doublegroup:wei:wu']], db_wenyang:['male','wei',4,['dbquedi','dbxinzhuifeng','dbchongjian','dbchoujue'],['doublegroup:wei:wu']],
xin_guyong:['male','wu',3,['xinshenxing','xinbingyi']], xin_guyong:['male','wu',3,['xinshenxing','xinbingyi']],
re_zhonghui:['male','wei',4,['requanji','zili']], re_zhonghui:['male','wei',4,['requanji','zili']],
xin_caifuren:['female','qun',3,['xinqieting','xianzhou']], xin_caifuren:['female','qun',3,['xinqieting','xianzhou']],
sp_yanghu:['male','qun',3,['mingfa','rongbei']], sp_yanghu:['male','qun',3,['mingfa','rongbei']],
qiaogong:['male','wu',3,['yizhu','luanchou']], qiaogong:['male','wu',3,['yizhu','luanchou']],
liuzhang:['male','qun',3,['xiusheng','yinlang','huaibi'],['zhu']], liuzhang:['male','qun',3,['jutu','yaohu','rehuaibi'],['zhu']],
sp_zhangwen:['male','wu',3,['gebo','spsongshu']], sp_zhangwen:['male','wu',3,['gebo','spsongshu']],
zhangzhongjing:['male','qun',3,['jishi','liaoyi','binglun']], zhangzhongjing:['male','qun',3,['jishi','liaoyi','binglun']],
xin_zhoucang:['male','shu',4,['mobilezhongyong']], xin_zhoucang:['male','shu',4,['mobilezhongyong']],
@ -136,6 +140,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_sunben:['male','wu',4,['jiang','rehunzi','zhiba'],['zhu']], re_sunben:['male','wu',4,['jiang','rehunzi','zhiba'],['zhu']],
}, },
characterIntro:{ characterIntro:{
yuanhuan:'袁涣字曜卿陈郡扶乐今河南省周口市太康县人。东汉末年官员出身陈郡袁氏为东汉司徒袁滂之子。袁涣早年曾任郡功曹后被公府征辟相继被举为高第、秀才。汉末战乱时袁涣流寓江淮一带初为袁术所用后投吕布。建安三年198年曹操率兵剿灭了吕布袁涣又转投曹操拜沛南部都尉后又任谏议大夫、郎中令等职在任上尽心尽责以敢谏直言称名。袁涣恕思而后行外表温柔而内心能断处危难则勇气极大。汉末三国时期唯有程昱、曹仁、袁涣三人被评价为勇冠贲育。',
sunchen:'孙綝chēn231年259年1月18日字子通吴郡富春今浙江杭州市富阳区人。三国时期吴国宗室、权臣昭义中郎将孙静曾孙、定武中郎将孙暠之孙、安民都尉孙绰的儿子。门荫入仕初任偏将军。太平元年256年升任侍中、武卫将军、都督中外诸军事。掌权以后诛杀大司马滕胤、骠骑将军吕据等重臣升任大将军册封永宁县侯。嗜好杀戮与皇帝孙亮的矛盾激化最终废黜孙亮拥立琅琊王孙休即位累迁丞相、荆州牧。永安元年十二月259年1月在左将军张布的协助下遭到皇帝孙休捕杀时年二十八岁削除宗籍改姓故氏。',
qiaozhou:'谯周201年270年字允南巴西郡西充国县今四川西充县槐树镇人。三国时期蜀汉大臣、学者、儒学家、史学家。幼年丧父少读典籍精研六经颇晓天文成为蜀地大儒之一门下有陈寿、罗宪等学生。诸葛亮担任益州牧时授劝学从事。诸葛亮死后不顾朝令前往奔丧。后主刘禅册立太子时授太子仆迁太子家令、光禄大夫。反对姜维北伐著《仇国论》力陈北伐之失。炎兴元年263年邓艾攻打成都时期力劝刘禅投降“有全国之功”投降魏国后受封阳城亭侯迁骑都尉。泰始六年270年授散骑常侍同年去世时年七十岁。', qiaozhou:'谯周201年270年字允南巴西郡西充国县今四川西充县槐树镇人。三国时期蜀汉大臣、学者、儒学家、史学家。幼年丧父少读典籍精研六经颇晓天文成为蜀地大儒之一门下有陈寿、罗宪等学生。诸葛亮担任益州牧时授劝学从事。诸葛亮死后不顾朝令前往奔丧。后主刘禅册立太子时授太子仆迁太子家令、光禄大夫。反对姜维北伐著《仇国论》力陈北伐之失。炎兴元年263年邓艾攻打成都时期力劝刘禅投降“有全国之功”投降魏国后受封阳城亭侯迁骑都尉。泰始六年270年授散骑常侍同年去世时年七十岁。',
gongsunkang:'公孙康生卒年不详辽东襄平今辽宁辽阳人。东汉末年辽东地区割据军阀辽东太守公孙度长子一作庶子、车骑将军公孙恭之兄。公孙康在其父死后继任辽东太守。建安十二年207年擒斩图谋不轨的袁尚、袁熙兄弟将其首级献予曹操被拜为左将军封襄平侯。建安十四年209年公孙康大破高句丽陷其国都并讨伐韩濊设置带方郡。死后因二子年幼由公孙恭继任。曹丕称帝后被追赠为大司马。', gongsunkang:'公孙康生卒年不详辽东襄平今辽宁辽阳人。东汉末年辽东地区割据军阀辽东太守公孙度长子一作庶子、车骑将军公孙恭之兄。公孙康在其父死后继任辽东太守。建安十二年207年擒斩图谋不轨的袁尚、袁熙兄弟将其首级献予曹操被拜为左将军封襄平侯。建安十四年209年公孙康大破高句丽陷其国都并讨伐韩濊设置带方郡。死后因二子年幼由公孙恭继任。曹丕称帝后被追赠为大司马。',
qiaogong:'桥公,亦作“乔公”,名字不详,是中国汉末三国时期的长者,江东二乔的父亲,三国时期庐江郡皖县(今安徽潜山)人,中国长篇古典名著《三国演义》中称之为“乔国老”。', qiaogong:'桥公,亦作“乔公”,名字不详,是中国汉末三国时期的长者,江东二乔的父亲,三国时期庐江郡皖县(今安徽潜山)人,中国长篇古典名著《三国演义》中称之为“乔国老”。',
@ -570,6 +576,631 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
skill:{ skill:{
//新刘璋
jutu:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
filter:function(event,player){
return player.storage.yaohu&&game.hasPlayer(function(current){
return current.group==player.storage.yaohu;
});
},
content:function(){
'step 0'
if(player.storage.jutu&&player.storage.jutu.length>0){
player.gain(player.storage.jutu,'gain2');
delete player.storage.jutu;
player.unmarkSkill('jutu');
}
'step 1'
event.num=game.countPlayer(function(current){
return current.group==player.storage.yaohu;
});
player.draw(event.num+1);
if(!event.num) event.finish();
'step 2'
var he=player.getCards('he');
if(!he.length) event.finish();
else if(he.length<num) event._result={bool:true,cards:he};
else player.chooseCard('he',true,num,'选择'+get.cnNumber(num)+'张牌作为生');
'step 3'
if(result.bool){
var cards=result.cards;
player.markAuto('jutu',cards);
game.log(player,'将',cards,'放在了武将牌上');
player.lose(cards,ui.special,'toStorage');
}
'step 4'
game.delayx();
},
intro:{
content:'cards',
onunmark:'throw',
},
ai:{combo:'jutu'},
},
yaohu:{
audio:2,
trigger:{player:'phaseBegin'},
direct:true,
filter:function(event,player){
return !player.hasSkill('yaohu_round')&&game.hasPlayer(function(current){
return current.group&&current.group!='unknown';
});
},
content:function(){
'step 0'
var list=[];
game.countPlayer(function(current){
if(current.group&&current.group!='unknown') list.add(current.group);
});
list.sort(function(a,b){
return lib.group.indexOf(a)-lib.group.indexOf(b);
});
if(!player.hasSkill('yaohu')) list.push('cancel2');
player.chooseControl(list).set('prompt','邀虎:请选择一个势力').set('ai',function(){
return _status.event.choice;
}).set('choice',function(){
var getn=function(group){
return game.countPlayer(function(current){
if(current.group!=group) return false;
if(get.attitude(current,player)>0) return 1.5;
if(current.inRange(player)) return 0.5;
return -0.3;
});
}
list.sort(function(a,b){
return getn(b)-getn(a);
});
return list[0];
}());
'step 1'
if(result.control!='cancel2'){
player.logSkill('yaohu',game.filterPlayer(function(current){
return current.group==result.control;
}));
game.log(player,'选择了','#y'+get.translation(result.control+2))
player.storage.yaohu=result.control;
player.markSkill('yaohu');
}
},
ai:{combo:'jutu'},
intro:{content:'已选择了$势力'},
group:'yaohu_gain',
subSkill:{
round:{},
gain:{
audio:'yaohu',
trigger:{global:'phaseUseBegin'},
direct:true,
filter:function(event,player){
return event.player.group==player.storage.yaohu&&event.player.isIn()&&player.getStorage('jutu').length>0;
},
logTarget:'player',
content:function(){
'step 0'
var target=trigger.player;
event.target=target;
target.chooseBool('是否响应'+get.translation(player)+'的【邀虎】?','获得其武将牌上的一张“生”').set('goon',function(){
if(get.attitude(target,player)>0) return true;
if(player.hasSha()&&!game.hasPlayer(function(current){
return player.inRange(current)&&get.effect(current,{name:'sha'},player,player)<=0;
})) return true;
if(!player.hasCard(function(card){
if(!get.tag(card,'damage')) return false;
var eff1=player.getUseValue(card);
_status._yaohu_ai_judging=true;
var eff2=player.getUseValue(card);
delete _status._yaohu_ai_judging;
if(eff1>0&&eff2<=0) return true;
return false;
}),'h') return true;
return false;
}()).set('ai',function(){return _status.event.goon});
'step 1'
if(result.bool){
player.logSkill('yaohu',target);
target.chooseButton(['选择获得一张“生”',player.storage.jutu],true).set('ai',function(button){
return get.value(button.link,player);
});
}
else event.finish();
'step 2'
if(result.bool){
player.unmarkAuto('jutu',result.links);
target.gain(result.links,'gain2');
}
'step 3'
if(game.hasPlayer(function(current){
return current.inRangeOf(target);
})){
player.chooseTarget(true,'选择'+get.translation(target)+'使用【杀】的目标',function(card,player,target){
return _status.event.source.inRange(target);
}).set('source',target).set('ai',function(target){
var evt=_status.event;
return get.effect(target,{name:'sha'},evt.source,evt.player);
});
}
else event.finish();
'step 4'
var target2=result.targets[0];
player.line(target2,'green');
target.chooseToUse(function(card,player,event){
if(get.name(card)!='sha') return false;
return lib.filter.filterCard.apply(this,arguments);
},'对'+get.translation(target2)+'使用一张杀,否则本回合对'+get.translation(player)+'使用伤害牌时,需交给其两张牌才能生效').set('targetRequired',true).set('complexSelect',true).set('filterTarget',function(card,player,target){
if(target!=_status.event.sourcex&&!ui.selected.targets.contains(_status.event.sourcex)) return false;
return lib.filter.filterTarget.apply(this,arguments);
}).set('sourcex',target2).set('addCount',false);
'step 5'
if(!result.bool){
target.markAuto('yaohu_give',[player]);
target.addTempSkill('yaohu_give','phaseUseEnd');
}
},
ai:{
effect:{
target:function(card,player,target){
if(_status._yaohu_ai_judging&&typeof card=='object'&&card.name.indexOf('damage')==-1&&get.tag(card,'damage')) return 'zerotarget';
},
},
},
},
give:{
trigger:{player:'useCardToPlayer'},
forced:true,
onremove:true,
charlotte:true,
filter:function(event,player){
return player.getStorage('yaohu_give').contains(event.target)&&get.tag(event.card,'damage')>0;
},
logTarget:'target',
content:function(){
'step 0'
if(player.countCards('he')<2) event._result={bool:false};
else player.chooseCard('he',2,'交给'+get.translation(trigger.target)+'两张牌,否则令'+get.translation(trigger.card)+'对其无效');
'step 1'
if(result.bool){
trigger.target.gain(result.cards,player,'giveAuto');
}
else{
trigger.targets.remove(trigger.target);
trigger.getParent().triggeredTargets1.remove(trigger.target);
trigger.untrigger();
}
},
ai:{
effect:{
player:function(card,player,target){
if(typeof card=='object'&&card.name.indexOf('damage')==-1&&get.tag(card,'damage')&&player.getStorage('yaohu_give').contains(target)) return 'zerotarget';
},
},
},
},
},
},
rehuaibi:{
audio:'huaibi',
zhuSkill:true,
mod:{
maxHandcard:function(player,num){
if(player.storage.yaohu&&player.hasZhuSkill('rehuaibi')) return num+game.countPlayer(function(current){
return current.group==player.storage.yaohu;
});
},
},
ai:{combo:'yaohu'},
},
//傅佥
jueyong:{
audio:2,
trigger:{target:'useCardToTarget'},
forced:true,
filter:function(event,player){
return event.card.name!='jiu'&&event.card.name!='tao'&&
event.targets.length==1&&event.card.isCard&&event.cards.length==1&&event.getParent(2).name!='jueyong_timeout'&&
get.position(event.cards[0],true)=='o'&&event.card.name==event.cards[0].name;
},
content:function(){
trigger.targets.remove(player);
trigger.getParent().triggeredTargets2.remove(player);
trigger.untrigger();
var card=trigger.cards[0];
game.cardsGotoSpecial(card);
player.$gain2(card,false);
game.log(player,'将',card,'作为“绝”置于了武将牌上');
if(!player.storage.jueyong) player.storage.jueyong=[[],[]];
player.storage.jueyong[0].push(card);
player.storage.jueyong[1].push(trigger.player);
player.markSkill('jueyong');
game.delayx();
},
intro:{
markcount:function(storage){
return storage[0].length;
},
mark:function(dialog,storage,player){
dialog.addAuto(storage[0]);
dialog.addText(get.translation(storage[1]));
},
onunmark:function(storage,player){
if(storage[0]&&storage[0].length){
player.$throw(storage[0],1000);
game.cardsDiscard(storage[0]);
game.log(storage[0],'进入了弃牌堆');
}
delete player.storage.jueyong;
},
},
ai:{
reverseEquip:true,
effect:{
target:function(card,player,target,current){
if(get.type(card)=='equip'&&!get.tag(card,'gifts')&&target.storage.jueyong&&target.storage.jueyong[1].length){
var result1=get.equipResult(player,target,card.name),subtype=get.subtype(card);
for(var i of target.storage.jueyong[0]){
if(get.subtype(i,false)==subtype&&get.equipResult(target,target,i.name)>=result1) return 'zerotarget';
}
}
},
},
},
group:'jueyong_timeout',
subSkill:{
timeout:{
audio:'jueyong',
trigger:{player:'phaseJieshuBegin'},
forced:true,
filter:function(event,player){
return player.storage.jueyong&&player.storage.jueyong[0].length>=Math.max(1,player.getDamagedHp());
},
content:function(){
var list=player.storage.jueyong,card=list[0].shift(),source=list[1].shift();
if(source&&source.isIn()&&source.canUse(card,player,false)) source.useCard(card,player,false);
else game.cardsDiscard(card);
if(list[0].length) event.redo();
else player.unmarkSkill('jueyong');
},
},
},
},
poxiang:{
audio:2,
enable:'phaseUse',
usable:1,
filter:(event,player)=>player.countCards('he')>0,
filterCard:true,
filterTarget:lib.filter.notMe,
position:'he',
discard:false,
lose:false,
delay:false,
check:function(card){
var player=_status.event.player;
if(!player.storage.jueyong||player.storage.jueyong[0].length<Math.max(1,player.getDamagedHp())||!player.storage.jueyong[0].filter(function(card){
return get.effect(player,card,player.storage.jueyong[1][player.storage.jueyong[0].indexOf(card)],player)<0;
}).length||(player.hp<=1&&!player.storage.jueyong[0].filter(function(card){
return get.tag(card,'damage')>0;
}).length)) return -1;
return 20-get.value(card);
},
content:function(){
'step 0'
target.gain(cards,player,'giveAuto');
player.draw(3);
'step 1'
player.unmarkSkill('jueyong');
player.loseHp();
'step 2'
player.skip('phaseDiscard');
game.delayx();
},
ai:{
order:12,
result:{
player:4,
target:1,
},
},
},
//宗预
zhibian:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
direct:true,
filter:function(event,player){
return game.hasPlayer((current)=>(current!=player&&player.canCompare(current)));
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('zhibian'),'与一名其他角色进行拼点',function(card,player,target){
return target!=player&&player.canCompare(target);
}).set('ai',function(target){
if(!_status.event.goon) return false;
var att=get.attitude(player,target);
if(att<0&&target.countCards('e',function(card){
return player.canEquip(card)&&get.effect(player,card,target,player)>0;
})) return -att/Math.sqrt(target.countCards('h'));
if(!player.isDamaged()) return false;
if(att<=0) return (1-att)/Math.sqrt(target.countCards('h'));
return Math.sqrt(2/att*Math.sqrt(target.countCards('h')));
}).set('goon',function(){
if(!player.hasCard(function(card){
return (card.number>=14-player.hp&&get.value(card)<=5);
})) return false;
return true;
}());
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('zhibian',target);
player.chooseToCompare(target);
}
else event.finish();
'step 2'
if(result.bool){
var list=[],list2=[
'将'+get.translation(target)+'装备区/判定区中的一张牌移动到你的区域内',
'回复1点体力',
'背水!跳过摸牌阶段,并依次执行上述所有选项',
];
if(target.hasCard(function(card){
return player.canEquip(card);
},'e')||target.hasCard(function(card){
return player.canAddJudge(card);
},'j')){
list.push('选项一');
}
if(player.isDamaged()){
list.push('选项二');
}
if(list.contains('选项一')) list.push('背水!')
list.push('cancel2');
player.chooseControl(list).set('choiceList',list2).set('ai',function(target){
if(player.isDamaged()&&(player.hp<=2||!target.countCards('e',function(card){
return player.canEquip(card)&&get.value(card,target)>=4+player.getDamagedHp();
}))) return 1;
return 0;
});
}
else{
player.loseHp();
event.finish();
}
'step 3'
if(result.control!='cancel2'){
event.control=result.control;
if(result.control=='选项一'||result.control=='背水!'){
player.choosePlayerCard(target,'ej',true).set('ai',get.buttonValue);
}
else event.goto(5);
}
else event.finish();
'step 4'
if(result.bool){
var card=result.cards[0];
target.$give(card,player,false);
game.delayx();
if(get.position(card)=='e') player.equip(card);
else player.addJudge(card);
}
'step 5'
if(event.control=='选项二'||event.control=='背水!'){
player.recover();
}
if(event.control=='背水!') player.skip('phaseDraw');
},
},
yuyan:{
audio:2,
trigger:{target:'useCardToTarget'},
forced:true,
logTarget:'player',
filter:function(event,player){
return event.card.name=='sha'&&event.card.isCard&&typeof get.number(event.card)=='number'&&player.hp<event.player.hp;
},
content:function(){
'step 0'
var num=get.number(trigger.card);
if(num>=13||!trigger.player.hasCard(function(card){
if(_status.connectMode&&get.position(card)=='h') return true;
return get.number(card)>num;
},'he')) event._result={bool:false};
else trigger.player.chooseCard('h',function(card){
return get.number(card)>_status.event.number;
},'交给'+get.translation(player)+'一张点数大于'+get.cnNumber(num)+'的牌,或令'+get.translation(trigger.card)+'对其无效').set('number',num).set('',function(card){
if(card.name=='shan'||card.name=='tao'||card.name=='jiu') return false;
return 6-get.value(card);
});
'step 1'
if(result.bool){
player.gain(result.cards,trigger.player,'giveAuto');
}
else{
trigger.targets.remove(player);
trigger.getParent().triggeredTargets2.remove(player);
trigger.untrigger();
}
},
ai:{
effect:{
target:function(card,player,target,current){
if(card.name=='sha'&&player.hp>target.hp&&get.attitude(player,target)<0){
var num=get.number(card);
if(typeof num!='number') return false;
var bs=player.getCards('h',function(cardx){
return (get.number(cardx)>num&&!['','',''].contains(cardx.name));
});
if(bs.length<2) return 0;
if(player.hasSkill('jiu')||player.hasSkill('tianxianjiu')) return;
if(bs.length<=2){
for(var i=0;i<bs.length;i++){
if(get.value(bs[i])<6){
return [1,0,1,-0.5];
}
}
return 0;
}
return [1,0,1,-0.5];
}
}
}
}
},
//袁涣
qingjue:{
audio:2,
trigger:{global:'useCardToPlayer'},
logTarget:'player',
round:1,
filter:function(event,player){
return (event.player!=player&&event.target!=player&&event.player!=event.target&&
event.player.hp>event.target.hp&&event.targets.length==1&&event.player.countCards('h')>0&&!event.target.isDying()&&
!event.player.hasSkillTag('noCompareTarget')&&!player.hasSkillTag('noCompareSource'));
},
check:function(event,player){
var target=event.target,source=event.source;
var eff1=get.effect(target,event.card,source,player);
if(eff1>=0) return false;
var eff2=get.effect(player,event.card,source,player);
if(eff2>=0) return true;
if(eff2>eff1/3) return player.hasCard(function(card){
return (card.number>=9&&get.value(card)<=5)||get.value(card)<=3;
});
if(eff2>eff1/2) return player.hasCard(function(card){
return card.number>10&&get.value(card)<=5;
});
return player.hasCard(function(card){
return card.number>11&&get.value(card)<=5;
});
},
content:function(){
'step 0'
player.draw();
'step 1'
if(player.canCompare(trigger.player)) player.chooseToCompare(trigger.player);
else event.finish();
'step 2'
trigger.targets.remove(trigger.target);
trigger.getParent().triggeredTargets1.remove(trigger.target);
trigger.untrigger();
if(!result.bool) trigger.targets.push(player);
},
},
fengjie:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
filter:function(event,player){
return game.hasPlayer((current)=>(current!=player));
},
content:function(){
'step 0'
player.chooseTarget('请选择【奉节】的目标','选择一名其他角色并获得如下效果直到你下回合开始:一名角色的结束阶段开始时,你将手牌摸至(至多摸至四张)或弃置至与其体力值相等。',lib.filter.notMe,true).set('ai',function(target){
return (target.hp-player.countCards('h'))/get.threaten(target);
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.line(target,'green');
game.log(player,'选择了',target);
player.storage.fengjie2=target;
player.addTempSkill('fengjie2',{player:'phaseBegin'});
game.delayx();
}
},
},
fengjie2:{
audio:'fengjie',
trigger:{global:'phaseJieshuBegin'},
forced:true,
charlotte:true,
onremove:true,
filter:function(event,player){
if(!player.storage.fengjie2||!player.storage.fengjie2.isIn()) return false;
var num1=player.countCards('h'),num2=player.storage.fengjie2.hp;
return num1>num2||num1<Math.min(4,num2);
},
logTarget:(event,player)=>player.storage.fengjie2,
content:function(){
var num1=player.countCards('h'),num2=player.storage.fengjie2.hp;
if(num1>num2) player.chooseToDiscard('h',true,num1-num2);
else player.drawTo(Math.min(4,num2));
},
},
//陈武董袭
spyilie:{
audio:2,
trigger:{player:'phaseUseBegin'},
direct:true,
content:function(){
'step 0'
player.chooseControl('选项一','选项二','背水!','cancel2').set('choiceList',[
'本阶段内使用【杀】的次数上限+1',
'本回合内使用【杀】被【闪】抵消时摸一张牌',
'背水失去1点体力并依次执行上述所有选项',
]).set('ai',function(){
if(player.countCards('hs',function(card){
return get.name(card)=='sha'&&player.hasValueTarget(card);
})>player.getCardUsable({name:'sha '})) return 0;
return 1;
});
'step 1'
if(result.control!='cancel2'){
player.logSkill('spyilie');
game.log(player,'选择了【毅烈】的','#g'+result.control);
if(result.index%2==0) player.addTempSkill('spyilie_add','phaseUseEnd');
if(result.index>0) player.addTempSkill('spyilie_miss');
if(result.index==2) player.loseHp();
}
},
subSkill:{
add:{
charlotte:true,
mod:{
cardUsable:function(card,player,num){
if(card.name=='sha') return num+1;
},
},
},
miss:{
charlotte:true,
audio:'spyilie',
trigger:{player:'shaMiss'},
forced:true,
content:function(){
player.draw();
},
},
},
},
spfenming:{
audio:2,
enable:'phaseUse',
usable:1,
filter:(event,player)=>game.hasPlayer((current)=>lib.skill.spfenming.filterTarget(null,player,current)),
filterTarget:function(card,player,target){
if(target.hp>player.hp) return false;
return !target.isLinked()||target.hasCard(function(card){
return lib.filter.canBeGained(card,player,target);
},target==player?'e':'he');
},
content:function(){
if(!target.isLinked()) target.link();
else player.gainPlayerCard(target,target==player?'e':'he',true);
},
ai:{
order:7,
result:{
player:function(player,target){
if(!target.isLinked()) return get.effect(target,{name:'tiesuo'},player,player);
return get.effect(target,{name:'shunshou_copy2'},player,player);
},
},
},
},
//曹真 //曹真
disordersidi:{ disordersidi:{
trigger:{player:'useCardAfter'}, trigger:{player:'useCardAfter'},
@ -823,26 +1454,64 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
zhangming:{ zhangming:{
audio:2, audio:2,
mod:{
ignoredHandcard:function(card,player){
if(get.suit(card)=='club'){
return true;
}
},
cardDiscardable:function(card,player,name){
if(name=='phaseDiscard'&&get.suit(card)=='club') return false;
}
},
trigger:{player:'useCard'}, trigger:{player:'useCard'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return get.suit(event.card)=='club'&&get.type(event.card)=='trick'; return get.suit(event.card)=='club';
}, },
content:function(){ content:function(){
trigger.directHit.addArray(game.filterPlayer(function(current){ trigger.directHit.addArray(game.filterPlayer(function(current){
return current!=player; return current!=player;
})); }));
}, },
group:'zhangming_damage',
subSkill:{
damage:{
audio:'zhangming',
trigger:{source:'damageEnd'},
forced:true,
usable:1,
filter:function(event,player){
return player!=event.player;
},
logTarget:'player',
content:function(){
var list=[],cards=[],target=trigger.player,hs=target.getCards('h');
if(hs.length>0){
var card=hs.randomGet();
list.push(get.type2(card,target));
player.showCards(card,get.translation(player)+'对'+get.translation(target)+'发动了【彰名】');
}
for(var i=0;i<ui.cardPile.childNodes.length;i++){
var type=get.type2(ui.cardPile.childNodes[i],false);
if(!list.contains(type)){
list.push(type);
cards.push(ui.cardPile.childNodes[i])
};
}
player.gain(cards,'gain2').gaintag.add('zhangming');
player.addTempSkill('zhangming_keep');
},
},
keep:{
charlotte:true,
onremove:function(player){
player.removeGaintag('zhangming');
},
mod:{
ignoredHandcard:function(card,player){
if(card.hasGaintag('zhangming')){
return true;
}
},
cardDiscardable:function(card,player,name){
if(name=='phaseDiscard'&&card.hasGaintag('zhangming')){
return false;
}
},
},
},
},
}, },
//新华歆 //新华歆
yuanqing:{ yuanqing:{
@ -1116,6 +1785,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
}, },
dbxinzhuifeng:{
audio:2,
groupSkill:true,
enable:'chooseToUse',
viewAs:{name:'juedou',isCard:true},
viewAsFilter:function(player){
return player.group=='wei'&&player.hp>(player.getStat('skill').dbxinzhuifeng||0);
},
selectCard:-1,
filterCard:()=>false,
log:false,
prompt:function(){
return '失去'+get.cnNumber((_status.event.player.getStat('skill').dbxinzhuifeng||0)+1)+'点体力并视为使用【决斗】';
},
precontent:function(){
player.logSkill('dbxinzhuifeng',event.result.targets);
var stat=player.getStat('skill');
player.loseHp((stat.dbxinzhuifeng||0)+1);
},
},
dbzhuifeng:{ dbzhuifeng:{
audio:2, audio:2,
groupSkill:true, groupSkill:true,
@ -1184,6 +1873,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return get.type(card)=='equip'; return get.type(card)=='equip';
},'hes')&&(event.filterCard({name:'sha',isCard:true},player,event)||event.filterCard({name:'jiu',isCard:true},player,event)); },'hes')&&(event.filterCard({name:'sha',isCard:true},player,event)||event.filterCard({name:'jiu',isCard:true},player,event));
}, },
locked:false,
mod:{
targetInRange:function(card){
if(card.storage&&card.storage.dbchongjian) return true;
},
},
chooseButton:{ chooseButton:{
dialog:function(){ dialog:function(){
return ui.create.dialog('冲坚',[['sha','jiu'],'vcard']); return ui.create.dialog('冲坚',[['sha','jiu'],'vcard']);
@ -1208,15 +1903,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
return (5-get.value(card))>0; return (5-get.value(card))>0;
})>1)) return player.getUseValue({name:'jiu'})*4; })>1)) return player.getUseValue({name:'jiu'})*4;
return player.getUseValue({name:button.link[2]}); return player.getUseValue({name:button.link[2]},false);
}, },
backup:function(links,player){ backup:function(links,player){
return { return {
audio:'dbchongjian', audio:'dbchongjian',
viewAs:{name:links[0][2],isCard:true}, viewAs:{
name:links[0][2],
isCard:true,
storage:{dbchongjian:true},
},
filterCard:{type:'equip'}, filterCard:{type:'equip'},
position:'hes', position:'hes',
popname:true, popname:true,
precontent:function(){
player.addTempSkill('dbchongjian_effect');
},
check:function(card){ check:function(card){
var player=_status.event.player; var player=_status.event.player;
if(get.position(card)=='e'){ if(get.position(card)=='e'){
@ -1258,6 +1960,25 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
result:{player:1}, result:{player:1},
}, },
subSkill:{
effect:{
charlotte:true,
mod:{
targetInRange:function(card){
if(card.storage&&card.storage.dbchongjian) return true;
},
},
trigger:{source:'damageSource'},
forced:true,
logTarget:'player',
filter:function(event,player){
return event.parent.skill=='dbchongjian_backup'&&event.card.name=='sha'&&event.getParent().name=='sha'&&event.player.countGainableCards(player,'e')>0;
},
content:function(){
player.gainPlayerCard(trigger.player,'e',true,trigger.num);
},
},
},
}, },
dbchoujue:{ dbchoujue:{
audio:2, audio:2,
@ -12731,7 +13452,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rezuici:'罪辞', rezuici:'罪辞',
rezuici_backup:'罪辞', rezuici_backup:'罪辞',
rezuici_info:'出牌阶段或当你处于濒死状态时你可以废除一个有牌的装备栏并回复2点体力然后可以移动“辅弼”标记。', rezuici_info:'出牌阶段或当你处于濒死状态时你可以废除一个有牌的装备栏并回复2点体力然后可以移动“辅弼”标记。',
nanhualaoxian:'南华老仙', nanhualaoxian:'手杀南华老仙',
yufeng:'御风', yufeng:'御风',
yufeng2:'御风', yufeng2:'御风',
yufeng_info:'出牌阶段限一次你可以表演“御风飞行”。若表演失败则你摸X张牌。若表演成功则你可以选择至多X名其他角色获得“御风”效果然后摸X-Y张牌准备阶段开始时你进行判定。若结果为红色你跳过摸牌阶段黑色你跳过出牌阶段和弃牌阶段。X为你的得分。Y为你选择的角色数。', yufeng_info:'出牌阶段限一次你可以表演“御风飞行”。若表演失败则你摸X张牌。若表演成功则你可以选择至多X名其他角色获得“御风”效果然后摸X-Y张牌准备阶段开始时你进行判定。若结果为红色你跳过摸牌阶段黑色你跳过出牌阶段和弃牌阶段。X为你的得分。Y为你选择的角色数。',
@ -12831,7 +13552,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mjshengxi_info:'结束阶段,若你本回合使用过牌且未造成伤害,则你可以获得一张智囊或【调剂盐梅】。', mjshengxi_info:'结束阶段,若你本回合使用过牌且未造成伤害,则你可以获得一张智囊或【调剂盐梅】。',
mjkuanji:'宽济', mjkuanji:'宽济',
mjkuanji_info:'每回合限一次。当你因弃置而失去牌后,你可令一名其他角色获得其中的一张牌,然后你摸一张牌。', mjkuanji_info:'每回合限一次。当你因弃置而失去牌后,你可令一名其他角色获得其中的一张牌,然后你摸一张牌。',
tiaojiyanmei:'调剂盐梅', tiaojiyanmei:'调剂盐梅',
tiaojiyanmei_info:'出牌阶段,对两名手牌数不均相同的其他角色使用。若目标角色于此牌使用准备工作结束时的手牌数大于此时所有目标的平均手牌数,其弃置一张牌。若小于则其摸一张牌。此牌使用结束后,若所有目标角色的手牌数均相等,则你可令一名角色获得所有因执行此牌效果而弃置的牌。', tiaojiyanmei_info:'出牌阶段,对两名手牌数不均相同的其他角色使用。若目标角色于此牌使用准备工作结束时的手牌数大于此时所有目标的平均手牌数,其弃置一张牌。若小于则其摸一张牌。此牌使用结束后,若所有目标角色的手牌数均相等,则你可令一名角色获得所有因执行此牌效果而弃置的牌。',
binglinchengxiax:'兵临城下', binglinchengxiax:'兵临城下',
@ -12912,9 +13632,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dbzhuifeng:'椎锋', dbzhuifeng:'椎锋',
dbzhuifeng_backup:'椎锋', dbzhuifeng_backup:'椎锋',
dbzhuifeng_info:'魏势力技。当你需要使用【杀】或【决斗】时你可以失去1点体力然后视为使用此牌。', dbzhuifeng_info:'魏势力技。当你需要使用【杀】或【决斗】时你可以失去1点体力然后视为使用此牌。',
dbxinzhuifeng:'椎锋',
dbxinzhuifeng_info:'魏势力技。若你的体力值大于X则你可以失去X+1点体力并视为使用一张【决斗】X为你本回合内发动过〖椎锋〗的次数。',
dbchongjian:'冲坚', dbchongjian:'冲坚',
dbchongjian_backup:'冲坚', dbchongjian_backup:'冲坚',
dbchongjian_info:'吴势力技。你可以将一张装备牌当做【杀】或【酒】使用。', dbchongjian_info:'吴势力技。你可以将一张装备牌当做【杀】(无距离限制)或【酒】使用。当你以此法使用【杀】造成伤害后你获得目标角色装备区内的X张牌X为伤害值。',
dbchoujue:'仇决', dbchoujue:'仇决',
dbchoujue_info:'锁定技。当你杀死其他角色后你加1点体力上限并摸两张牌然后本回合发动【却敌】的次数上限+1。', dbchoujue_info:'锁定技。当你杀死其他角色后你加1点体力上限并摸两张牌然后本回合发动【却敌】的次数上限+1。',
qiaozhou:'谯周', qiaozhou:'谯周',
@ -12929,7 +13651,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rechuhai:'除害', rechuhai:'除害',
rechuhai_info:'使命技。①出牌阶段限一次,你可以摸一张牌,然后和一名其他角色拼点。若你赢,则你观看其手牌,并从牌堆/弃牌堆中获得其手牌中包含的类型的牌各一张,且当你于此阶段内对其造成伤害后,你将牌堆/弃牌堆中的一张装备牌置于你的一个空置装备栏内。②当你因发动〖除害①〗而展示拼点牌时,你令此牌的点数+XX=(4-你装备区的牌数)。③使命当有装备牌进入你的装备区后若你的装备区内有至少三张牌则你将体力值回复至上限失去〖乡害〗并获得〖彰名〗。④失败当你因发动〖除害①〗发起的拼点没赢时若你的最终点数不大于Q点则你触发使命失败分支。', rechuhai_info:'使命技。①出牌阶段限一次,你可以摸一张牌,然后和一名其他角色拼点。若你赢,则你观看其手牌,并从牌堆/弃牌堆中获得其手牌中包含的类型的牌各一张,且当你于此阶段内对其造成伤害后,你将牌堆/弃牌堆中的一张装备牌置于你的一个空置装备栏内。②当你因发动〖除害①〗而展示拼点牌时,你令此牌的点数+XX=(4-你装备区的牌数)。③使命当有装备牌进入你的装备区后若你的装备区内有至少三张牌则你将体力值回复至上限失去〖乡害〗并获得〖彰名〗。④失败当你因发动〖除害①〗发起的拼点没赢时若你的最终点数不大于Q点则你触发使命失败分支。',
zhangming:'彰名', zhangming:'彰名',
zhangming_info:'锁定技。你的♣牌不计入手牌上限。当你使用♣普通锦囊牌时,你令所有其他角色不能响应此牌。', zhangming_info:'锁定技。①你使用的♣牌不能被其他角色响应。②每回合限一次,当你对其他角色造成伤害后,你随机展示其一张手牌,然后你从牌堆或弃牌堆中获得与其展示牌类型不同类型的牌各一张(若其没有手牌,则你改为从牌堆或弃牌堆中获得所有类型牌各一张),且以此法获得的牌不计入本回合的手牌上限。',
xin_sunluban:'手杀孙鲁班', xin_sunluban:'手杀孙鲁班',
xinzenhui:'谮毁', xinzenhui:'谮毁',
xinzenhui_info:'出牌阶段限一次。当你使用【杀】或黑色普通锦囊牌指定目标时,你可选择另一名能成为此牌目标的其他角色并选择一项:①令其也成为此牌的目标。②获得其一张牌,然后将此牌的使用者改为该角色。', xinzenhui_info:'出牌阶段限一次。当你使用【杀】或黑色普通锦囊牌指定目标时,你可选择另一名能成为此牌目标的其他角色并选择一项:①令其也成为此牌的目标。②获得其一张牌,然后将此牌的使用者改为该角色。',
@ -12938,6 +13660,33 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xin_caozhen:'手杀曹真', xin_caozhen:'手杀曹真',
disordersidi:'司敌', disordersidi:'司敌',
disordersidi_info:'①当你使用的不为延时锦囊牌的牌结算结束后你可选择一名R内不存在以a为第一序偶的二元序偶的其他角色a并选择一名角色b在关系R内建立二元序偶<a,b>b对其他角色不可见。②一名角色a使用的不为延时锦囊牌的牌结算结束后你清除R内以其为第一元素的二元序偶。③一名角色a使用不为延时锦囊牌的牌指定b为唯一目标时若aRb成立则你从R内移除<a,b>若b为你你摸一张牌若b不为你你可选择⒈取消此牌的目标并对a造成1点伤害。⒉摸两张牌。', disordersidi_info:'①当你使用的不为延时锦囊牌的牌结算结束后你可选择一名R内不存在以a为第一序偶的二元序偶的其他角色a并选择一名角色b在关系R内建立二元序偶<a,b>b对其他角色不可见。②一名角色a使用的不为延时锦囊牌的牌结算结束后你清除R内以其为第一元素的二元序偶。③一名角色a使用不为延时锦囊牌的牌指定b为唯一目标时若aRb成立则你从R内移除<a,b>若b为你你摸一张牌若b不为你你可选择⒈取消此牌的目标并对a造成1点伤害。⒉摸两张牌。',
sp_chendong:'陈武董袭',
spyilie:'毅烈',
spyilie_info:'出牌阶段开始时,你可选择:①本阶段内使用【杀】的次数上限+1。②本回合内使用【杀】被【闪】抵消时摸一张牌。③背水失去1点体力然后依次执行上述所有选项。',
spfenming:'奋命',
spfenming_info:'出牌阶段限一次,你可以选择一名体力值不大于你的角色。若其:未横置,其横置;已横置,你获得其一张牌。',
yuanhuan:'袁涣',
qingjue:'请决',
qingjue_info:'每轮限一次。当有其他角色A使用牌指定另一名体力值小于A且不处于濒死状态的其他角色B为目标时你可以摸一张牌然后与A拼点。若你赢你取消此目标。若你没赢你将此牌的目标改为自己。',
fengjie:'奉节',
fengjie2:'奉节',
fengjie_info:'锁定技,准备阶段开始时,你选择一名其他角色并获得如下效果直到你下回合开始:一名角色的结束阶段开始时,你将手牌摸至(至多摸至四张)或弃置至与其体力值相等。',
sp_zongyu:'手杀宗预',
zhibian:'直辩',
zhibian_info:'准备阶段,你可以和一名其他角色拼点。若你赢,你可选择:①将其装备区/判定区内的一张牌移动到你的对应区域。②回复1点体力。③背水跳过下个摸牌阶段然后依次执行上述所有选项若你没赢你失去1点体力。',
yuyan:'御严',
yuyan_info:'锁定技。当你成为非转换的【杀】的目标时,若使用者的体力值大于你且此【杀】有点数,则你令使用者选择一项:①交给你一张点数大于此【杀】的牌。②取消此目标。',
fuqian:'傅佥',
jueyong:'绝勇',
jueyong_info:'锁定技。①当你不因〖绝勇〗成为唯一牌的目标时若此牌不为转化牌且对应的实体牌牌数为1且不为【桃】或【酒】则你将此牌置于你的武将牌上称为“勇”且取消此牌的目标。②结束阶段开始时若你的“绝”数不小于你已损失的体力值则你令所有“绝”的原使用者依次对你使用所有“绝”将无法使用的“绝”置入弃牌堆。',
poxiang:'破降',
poxiang_info:'出牌阶段限一次。你可以将一张牌交给一名其他角色。你摸三张牌移去所有“绝”并失去1点体力跳过本回合的弃牌阶段。',
jutu:'据土',
jutu_info:'锁定技准备阶段你获得所有你武将牌上的“生”然后摸X+1张牌然后将X张牌置于你的武将牌上称为“生”X为你因〖邀虎〗选择势力的角色数量)。',
yaohu:'邀虎',
yaohu_info:'每轮限一次,你的回合开始时,你须选择场上一个势力。该势力角色的出牌阶段开始时,其可以获得你的一张“生”,然后其须选择一项:①对你指定的一名其攻击范围内的其他角色使用一张【杀】;②直到本阶段结束时,其使用伤害类牌指定你为目标时,须交给你两张牌,否则取消之。',
rehuaibi:'怀璧',
rehuaibi_info:'主公技,锁定技,你的手牌上限+XX为你因〖邀虎〗选择势力的角色数量)。',
mobile_standard:'手杀异构·标准包', mobile_standard:'手杀异构·标准包',
mobile_shenhua:'手杀异构·神话再临', mobile_shenhua:'手杀异构·神话再临',

View File

@ -95,6 +95,7 @@ window.noname_character_rank={
'guansuo', 'guansuo',
'yuantanyuanshang', 'yuantanyuanshang',
'dongyun', 'dongyun',
'shen_xunyu',
'shen_guojia', 'shen_guojia',
'key_kamome', 'key_kamome',
'key_yukine', 'key_yukine',
@ -254,8 +255,9 @@ window.noname_character_rank={
'panshu', 'panshu',
'caochun', 'caochun',
'xin_caifuren', 'xin_caifuren',
'shen_xunyu',
'ol_wangrong', 'ol_wangrong',
're_nanhualaoxian',
'fuqian',
'key_misuzu', 'key_misuzu',
'key_sunohara', 'key_sunohara',
'key_umi', 'key_umi',
@ -706,6 +708,8 @@ window.noname_character_rank={
'zhangzhongjing', 'zhangzhongjing',
'db_wenyang', 'db_wenyang',
'dufuren', 'dufuren',
'yuanhuan',
'zhouyi',
], ],
b:[ b:[
'diy_feishi', 'diy_feishi',
@ -901,6 +905,8 @@ window.noname_character_rank={
'ol_dengzhi', 'ol_dengzhi',
'sundeng', 'sundeng',
'duji', 'duji',
'sp_chendong',
'sp_zongyu',
], ],
bm:[ bm:[
'diy_xizhenxihong', 'diy_xizhenxihong',
@ -1201,6 +1207,8 @@ window.noname_character_rank={
'yanghuiyu', 'yanghuiyu',
'nanhualaoxian', 'nanhualaoxian',
'panshu', 'panshu',
're_nanhualaoxian',
'shen_sunce',
'key_yuri', 'key_yuri',
'key_yuzuru', 'key_yuzuru',
'sp_key_kanade', 'sp_key_kanade',
@ -1747,6 +1755,9 @@ window.noname_character_rank={
'xin_sunluban', 'xin_sunluban',
'ol_wangrong', 'ol_wangrong',
'dufuren', 'dufuren',
'yuanhuan',
'zhouyi',
'fuqian',
], ],
junk:[ junk:[
'sunshao', 'sunshao',

View File

@ -1624,6 +1624,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
gzpaiyi:{ gzpaiyi:{
audio:2, audio:2,
enable:'phaseUse', enable:'phaseUse',
usable:1,
filter:function(event,player){ filter:function(event,player){
return player.getStorage('gzquanji').length>0&&!player.hasSkill('gzquanji2'); return player.getStorage('gzquanji').length>0&&!player.hasSkill('gzquanji2');
}, },
@ -10409,7 +10410,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
gzquanji_info:'当你受到伤害后或当你使用牌指定唯一目标并对其造成伤害后,你可以摸一张牌,然后你将一张牌置于武将牌上,称为“权”;你的手牌上限+XX为“权”的数量。', gzquanji_info:'当你受到伤害后或当你使用牌指定唯一目标并对其造成伤害后,你可以摸一张牌,然后你将一张牌置于武将牌上,称为“权”;你的手牌上限+XX为“权”的数量。',
gzpaiyi:'排异', gzpaiyi:'排异',
gzpaiyi_backup:'排异', gzpaiyi_backup:'排异',
gzpaiyi_info:'出牌阶段你可以将移去一张“权”然后选择一名角色并令其摸X张牌X为“权”的数量且至多为7若其手牌数不小于你则你对其造成1点伤害且本技能于此回合内失效。', gzpaiyi_info:'出牌阶段限一次你可以将移去一张“权”然后选择一名角色并令其摸X张牌X为“权”的数量且至多为7若其手牌数不小于你则你对其造成1点伤害且本技能于此回合内失效。',
ol_zhurong:'界祝融', ol_zhurong:'界祝融',
changbiao:'长标', changbiao:'长标',
changbiao_info:'出牌阶段限一次你可以将任意张手牌当做【杀】使用无距离限制。若你因此【杀】对目标角色造成过伤害则你于出牌阶段结束时摸X张牌X为此【杀】对应的实体牌数量。', changbiao_info:'出牌阶段限一次你可以将任意张手牌当做【杀】使用无距离限制。若你因此【杀】对目标角色造成过伤害则你于出牌阶段结束时摸X张牌X为此【杀】对应的实体牌数量。',
@ -10427,7 +10428,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
redingpin:'定品', redingpin:'定品',
redingpin_info:'出牌阶段,你可以弃置一张本回合未使用过/弃置过的类型的牌并选择一名角色。其进行判定若结果为黑色其摸X张牌X为其体力值且至多为3且本回合内不能再成为〖定品〗的目标红桃你令此次弃置的牌不计入〖定品〗弃置牌合法性的检测方片你将武将牌翻面。', redingpin_info:'出牌阶段,你可以弃置一张本回合未使用过/弃置过的类型的牌并选择一名角色。其进行判定若结果为黑色其摸X张牌X为其体力值且至多为3且本回合内不能再成为〖定品〗的目标红桃你令此次弃置的牌不计入〖定品〗弃置牌合法性的检测方片你将武将牌翻面。',
refaen:'法恩', refaen:'法恩',
refaen_info:'一名角色翻面或横置后,你可令其摸一张牌。', refaen_info:'一名角色翻至正面或横置后,你可令其摸一张牌。',
reshizhi:'矢志', reshizhi:'矢志',
reshizhi_info:'锁定技若你的体力值为1则你的【闪】视为【杀】且当你使用对应的实体牌为一张【闪】的非转化普通杀造成伤害后你回复1点体力。', reshizhi_info:'锁定技若你的体力值为1则你的【闪】视为【杀】且当你使用对应的实体牌为一张【闪】的非转化普通杀造成伤害后你回复1点体力。',
re_guotufengji:'界郭图逢纪', re_guotufengji:'界郭图逢纪',

View File

@ -9,7 +9,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_tongque:["liuxie","lingju","fuwan","sp_fuwan","sp_fuhuanghou","sp_jiben"], sp_tongque:["liuxie","lingju","fuwan","sp_fuwan","sp_fuhuanghou","sp_jiben"],
sp_zhongdan:["cuiyan","huangfusong"], sp_zhongdan:["cuiyan","huangfusong"],
sp_guozhan:["zangba","shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan","sp_mifangfushiren","bianfuren"], sp_guozhan:["zangba","shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan","sp_mifangfushiren","bianfuren"],
sp_guozhan2:["mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","liqueguosi","lvfan","cuimao","jiling","zhangren","zoushi","zongyu"], sp_guozhan2:["mateng","tianfeng","sp_dongzhuo","jiangfei","jiangqing","liqueguosi","lvfan","cuimao","jiling","zhangren","zongyu"],
//sp_single:["niujin"], //sp_single:["niujin"],
sp_others:["hanba","caiyang"], sp_others:["hanba","caiyang"],
}, },
@ -119,7 +119,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mateng:['male','qun',4,['xiongyi','mashu']], mateng:['male','qun',4,['xiongyi','mashu']],
tianfeng:['male','qun',3,['sijian','suishi']], tianfeng:['male','qun',3,['sijian','suishi']],
yuejin:['male','wei',4,['xiaoguo']], yuejin:['male','wei',4,['xiaoguo']],
chendong:['male','wu',4,['duanxie','fenming']],
sp_dongzhuo:['male','qun',5,['hengzheng']], sp_dongzhuo:['male','qun',5,['hengzheng']],
jiangfei:['male','shu',3,['reshengxi','shoucheng']], jiangfei:['male','shu',3,['reshengxi','shoucheng']],
jiangqing:['male','wu',4,['shangyi','zniaoxiang']], jiangqing:['male','wu',4,['shangyi','zniaoxiang']],
@ -281,7 +280,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
lingcao:['lingtong'], lingcao:['lingtong'],
lingju:['diaochan','lvbu'], lingju:['diaochan','lvbu'],
jiangqing:['zhoutai'], jiangqing:['zhoutai'],
dingfeng:['xusheng'], dingfeng:['xusheng','zhugeke'],
caohong:['caoren'], caohong:['caoren'],
daxiaoqiao:['zhouyu','sunce'], daxiaoqiao:['zhouyu','sunce'],
cuiyan:['caocao'], cuiyan:['caocao'],
@ -4157,6 +4156,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var num=0; var num=0;
for(var i=0;i<history.length;i++){ for(var i=0;i<history.length;i++){
for(var j=0;j<history[i].lose.length;j++){ for(var j=0;j<history[i].lose.length;j++){
if(history[i].lose[j].parent.name=='useCard') continue;
num+=history[i].lose[j].cards2.filter(function(card){ num+=history[i].lose[j].cards2.filter(function(card){
return get.type(card,false)=='equip'; return get.type(card,false)=='equip';
}).length; }).length;
@ -5919,12 +5919,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
})){ })){
var str='对一名'; var str='对一名';
if(get.mode()=='guozhan'){ if(get.mode()=='guozhan'){
str+=get.translation(target.identity)+'势力的'; str+=('与'+get.translation(target)+'势力相同的');
} }
player.chooseTarget(str+'角色使用一张杀',true,function(card,player,target){ player.chooseTarget(str+'角色使用一张杀',true,function(card,player,target){
if(!player.canUse('sha',target,false)) return false; if(!player.canUse('sha',target,false)) return false;
if(get.mode()=='guozhan'){ if(get.mode()=='guozhan'){
return target.isFriendOf(status.event.identity); return target.isFriendOf(_status.event.identity);
} }
return true; return true;
}).set('ai',function(target){ }).set('ai',function(target){
@ -6920,6 +6920,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(max>0) max+=((player.storage.refuhan||player.storage.twfuhan)?0.3:-0.3); if(max>0) max+=((player.storage.refuhan||player.storage.twfuhan)?0.3:-0.3);
return max; return max;
} }
if(!player) player=_status.event.player;
return (player.storage.refuhan||player.storage.twfuhan)?4:1; return (player.storage.refuhan||player.storage.twfuhan)?4:1;
}, },
}, },
@ -11813,16 +11814,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
"step 0" "step 0"
var nono=(Math.abs(get.attitude(player,trigger.player))<3); var nono=(Math.abs(get.attitude(player,trigger.player))<3);
if(player==trigger.player||get.damageEffect(trigger.player,player,player)<=0){ if(player==trigger.player||get.damageEffect(trigger.player,player,player)<=0||!trigger.player.hasUseTarget({name:'jiu'},null,true)){
nono=true nono=true
} }
else if(trigger.player.hp>2){ else if(trigger.player.hp>2){
nono=true; nono=true;
} }
else if(trigger.player.hp>1&&player.countCards('h')<3){ else if(trigger.player.hp>1&&player.countCards('h')<3&&(trigger.player.canUse('sha',player)&&!player.countCards('h','shan')&&trigger.player.countCards('h')>=3)){
nono=true;
}
else if(trigger.player.canUse('sha',player)&&!player.countCards('h','shan')&&trigger.player.countCards('h')>=3){
nono=true; nono=true;
} }
var next=player.chooseToDiscard(get.prompt2('zhendu',trigger.player)); var next=player.chooseToDiscard(get.prompt2('zhendu',trigger.player));
@ -12749,6 +12747,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
aocai:{ aocai:{
audio:2, audio:2,
audioname:['gz_zhugeke'],
enable:['chooseToUse','chooseToRespond'], enable:['chooseToUse','chooseToRespond'],
hiddenCard:function(player,name){ hiddenCard:function(player,name){
if(player!=_status.currentPhase&&get.type(name)=='basic'&&lib.inpile.contains(name)) return true; if(player!=_status.currentPhase&&get.type(name)=='basic'&&lib.inpile.contains(name)) return true;
@ -15117,6 +15116,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhaoxiang:['zhaoxiang','tw_zhaoxiang'], zhaoxiang:['zhaoxiang','tw_zhaoxiang'],
dengzhi:['ol_dengzhi','dengzhi'], dengzhi:['ol_dengzhi','dengzhi'],
wangrong:['wangrong','ol_wangrong'], wangrong:['wangrong','ol_wangrong'],
zongyu:['sp_zongyu','zongyu'],
}, },
translate:{ translate:{
"xinfu_lingren":"凌人", "xinfu_lingren":"凌人",
@ -15319,7 +15319,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
daoshu_info:'出牌阶段你可以选择一个花色并获得一名其他角色的一张手牌。若此牌花色与你选择的相同则你对其造成1点伤害。否则你须交给其一张与此牌花色不同的手牌没有则展示手牌且本阶段内不能再发动〖盗书〗', daoshu_info:'出牌阶段你可以选择一个花色并获得一名其他角色的一张手牌。若此牌花色与你选择的相同则你对其造成1点伤害。否则你须交给其一张与此牌花色不同的手牌没有则展示手牌且本阶段内不能再发动〖盗书〗',
xinshanjia:"缮甲", xinshanjia:"缮甲",
"xinshanjia_info":"出牌阶段开始时你可以摸三张牌然后弃置3-X张牌(X为你本局游戏内失去过的装备牌的数目且至多为3)。若你没有以此法弃置基本牌或锦囊牌,则你可以视为使用了一张不计入出牌阶段使用次数的【杀】。", xinshanjia_info:"出牌阶段开始时你可以摸三张牌然后弃置3-X张牌(X为你本局游戏内不因使用而失去过的装备牌的数目且至多为3)。若你没有以此法弃置基本牌或锦囊牌,则你可以视为使用了一张无距离限制且不计入出牌阶段使用次数的【杀】。",
"new_meibu":"魅步", "new_meibu":"魅步",
"new_meibu_info":"其他角色的出牌阶段开始时若你在其攻击范围内你可以弃置一张牌令该角色于本回合内获得技能〖止息〗。若你以此法弃置的牌不是【杀】或黑色锦囊牌则本回合其与你的距离视为1。", "new_meibu_info":"其他角色的出牌阶段开始时若你在其攻击范围内你可以弃置一张牌令该角色于本回合内获得技能〖止息〗。若你以此法弃置的牌不是【杀】或黑色锦囊牌则本回合其与你的距离视为1。",
"new_mumu":"穆穆", "new_mumu":"穆穆",

View File

@ -4,6 +4,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2', name:'sp2',
connect:true, connect:true,
character:{ character:{
re_nanhualaoxian:['male','qun',4,['gongxiu','jinghe']],
zhouyi:['female','wu',3,['zhukou','mengqing']],
lvlingqi:['female','qun',4,['guowu','zhuangrong']], lvlingqi:['female','qun',4,['guowu','zhuangrong']],
dufuren:['female','wei',3,['yise','shunshi']], dufuren:['female','wei',3,['yise','shunshi']],
zhanghu:['male','wei',4,['cuijian','tongyuan']], zhanghu:['male','wei',4,['cuijian','tongyuan']],
@ -104,10 +106,545 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_fadong:['ol_dingyuan','wangrong','re_quyi','hanfu'], sp_fadong:['ol_dingyuan','wangrong','re_quyi','hanfu'],
sp_xuzhou:['re_taoqian','caosong','zhangmiao','qiuliju'], sp_xuzhou:['re_taoqian','caosong','zhangmiao','qiuliju'],
sp_zhongyuan:['re_hucheer','re_zoushi','caoanmin'], sp_zhongyuan:['re_hucheer','re_zoushi','caoanmin'],
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_dongcheng','yangwan','heyan','re_panshu','zhanghu','dufuren'], 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_dongcheng','yangwan','heyan','re_panshu','zhanghu','dufuren','zhouyi','re_nanhualaoxian','lvlingqi'],
} }
}, },
skill:{ skill:{
//南华老仙
jinghe:{
enable:'phaseUse',
filter:function(event,player){
return !player.hasSkill('jinghe_clear');
},
selectCard:function(){
if(ui.selected.targets.length) return [ui.selected.targets.length,4];
return [1,4];
},
selectTarget:function(){
return ui.selected.cards.length;
},
filterTarget:true,
filterCard:function(card){
if(ui.selected.cards.length){
var name=get.name(card);
for(var i of ui.selected.cards){
if(get.name(i)==name) return false;
}
}
return true;
},
check:function(card){
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;
return 0;
},
position:'he',
complexCard:true,
discard:false,
lose:false,
delay:false,
multitarget:true,
multiline:true,
content:function(){
'step 0'
player.showCards(cards,get.translation(player)+'发动了【经合】');
event.skills=lib.skill.jinghe.derivation.randomGets(targets.length);
player.addTempSkill('jinghe_clear',{player:'phaseBegin'});
event.targets.sortBySeat();
'step 1'
event.target=targets[targets.length-event.skills.length];
event.target.chooseControl(event.skills).set('choiceList',event.skills.map(function(i){
return '<div class="skill">【'+get.translation(lib.translate[i+'_ab']||get.translation(i).slice(0,2))+'】</div><div>'+get.skillInfoTranslation(i,player)+'</div>';
})).set('displayIndex',false).set('prompt','选择获得一个技能');
'step 2'
var skill=result.control;
event.skills.remove(skill);
target.addAdditionalSkill('jinghe_'+player.playerid,skill);
target.popup(skill);
game.log(target,'获得了技能','#g【'+get.translation(skill)+'】');
if(event.skills.length) event.goto(1);
if(target!=game.me&&!target.isOnline2()) game.delayx();
},
ai:{
threaten:3,
order:10,
result:{
target:1,
},
},
derivation:['releiji','rebiyue','new_retuxi','mingce','zhiyan','nhyinbing','nhhuoqi','nhguizhu','nhxianshou','nhlundao','nhguanyue','nhyanzheng'],
subSkill:{
clear:{
onremove:function(player){
game.countPlayer(function(current){
current.removeAdditionalSkill('jinghe_'+player.playerid);
});
},
},
},
},
gongxiu:{
trigger:{player:'phaseJieshuBegin'},
direct:true,
filter:function(event,player){
return player.hasSkill('jinghe_clear');
},
content:function(){
'step 0'
event.list1=[];
event.list2=[];
event.addIndex=0;
var choices=[];
game.countPlayer(function(current){
if(current.additionalSkills['jinghe_'+player.playerid]) event.list1.push(current);
else event.list2.push(current);
});
event.list1.sortBySeat();
if(event.list1.length) choices.push('令'+get.translation(event.list1)+(event.list1.length>1?'各':'')+'摸一张牌');
else event.addIndex++;
event.list2.sortBySeat();
if(event.list2.length) choices.push('令'+get.translation(event.list2)+(event.list2.length>1?'各':'')+'弃置一张手牌');
player.chooseControl('cancel2').set('choiceList',choices).set('prompt',get.prompt('gongxiu')).set('',function(){
var evt=_status.event.getParent();
if(evt.list2.filter(function(current){
return get.attitude(player,current)<=0&&!current.hasSkillTag('noh');
}).length-evt.list1.length>1) return 1-evt.addIndex;
return 0;
});
'step 1'
if(result.control!='cancel2'){
if(result.index+event.addIndex==0){
player.logSkill('gongxiu',event.list1);
game.asyncDraw(event.list1);
}
else{
player.logSkill('gongxiu',event.list2);
for(var i of event.list2) i.chooseToDiscard('h',true);
event.finish();
}
}
else event.finish();
'step 2'
game.delayx();
},
},
nhyinbing:{
trigger:{source:'damageBefore'},
forced:true,
filter:function(event,player){
return event.card&&event.card.name=='sha';
},
content:function(){
trigger.cancel();
trigger.player.loseHp(trigger.num);
},
group:'nhyinbing_draw',
subSkill:{
draw:{
trigger:{global:'loseHpAfter'},
forced:true,
filter:function(event,player){
return player!=event.player;
},
content:function(){
player.draw();
},
},
},
},
nhhuoqi:{
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.countCards('he')>0;
},
position:'he',
filterCard:true,
filterTarget:function(card,player,target){
return target.isMinHp();
},
check:function(card){
return 7-get.value(card);
},
content:function(){
target.recover();
target.draw();
},
ai:{
order:1,
tag:{
draw:1,
recover:1,
},
result:{
target:function(player,target){
if(target.isDamaged()) return 3;
if(ui.selected.cards.length) return 0;
return 1;
},
},
},
},
nhguizhu:{
trigger:{global:'dying'},
usable:1,
logTarget:'player',
check:function(event,player){
return get.attitude(player,event.player)>0;
},
content:function(){
trigger.player.draw(2);
},
},
nhxianshou:{
enable:'phaseUse',
usable:1,
filterTarget:true,
content:function(){
target.draw(target.isHealthy()?2:1);
},
ai:{
order:1,
tag:{
draw:1,
},
result:{
target:function(player,target){
return target.isHealthy()?2:0.5;
},
},
},
},
nhlundao:{
trigger:{player:'damageEnd'},
filter:function(event,player){
return event.source&&player!=event.source&&player.countCards('h')!=event.source.countCards('h');
},
logTarget:'source',
check:function(event,player){
return (player.countCards('h')<event.source.countCards('h'))||get.effect(event.source,{name:'guohe_copy2'},player,player)>0;
},
content:function(){
if(player.countCards('h')>trigger.source.countCards('h')) player.draw();
else player.discardPlayerCard(trigger.source,'he',true);
},
},
nhguanyue:{
trigger:{player:'phaseJieshuBegin'},
frequent:true,
content:function(){
'step 0'
var cards=get.cards(2);
player.chooseButton(['观月:选择获得一张牌',cards.slice(0)],true).set('ai',function(button){
return get.value(button.link,_status.event.player);
});
while(cards.length){
ui.cardPile.insertBefore(cards.pop(),ui.cardPile.firstChild);
}
'step 1'
if(result.bool){
player.gain(result.links,'gain2');
}
'step 2'
game.updateRoundNumber();
},
},
nhyanzheng:{
trigger:{player:'phaseZhunbeiBegin'},
direct:true,
filter:function(event,player){
return player.countCards('h')>0;
},
content:function(){
'step 0'
player.chooseCard('h',get.prompt('nhyanzheng2')).set('goon',function(){
var num=player.countCards('h')-1;
return game.countPlayer(function(current){
return get.damageEffect(current,player,player)>0;
})>=Math.min(3,num)
}()).set('ai',function(card){
if(_status.event.goon) return Math.max(1,get.value(card));
return 0;
});
'step 1'
if(result.bool){
player.logSkill('nhyanzheng');
var cards=player.getCards('h',function(card){
return card!=result.cards[0]&&lib.filter.cardDiscardable(card,player,'nhyanzheng');
});
if(cards.length){
player.discard(cards);
event.num=cards.length;
}
else event.finish();
}
else event.finish();
'step 2'
num=Math.min(num,game.countPlayer());
player.chooseTarget([1,num],true,'对'+(num>1?'至多':'')+get.cnNumber(num)+'名角色造成1点伤害').set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
});
'step 3'
if(result.bool){
var targets=result.targets.sortBySeat();
player.line(targets,'green');
for(var i of targets) i.damage();
}
},
},
//周夷
zhukou:{
audio:2,
trigger:{source:'damageSource'},
filter:function(event,player){
if(!player.getHistory('useCard').length) return false;
var evt=event.getParent('phaseUse');
if(!evt||!evt.player) return false;
return player.getHistory('sourceDamage',function(evtx){
return evtx.getParent('phaseUse')==evt;
}).indexOf(event)==0;
},
frequent:true,
content:function(){
player.draw(player.getHistory('useCard').length);
},
group:'zhukou_all',
subSkill:{
all:{
audio:'zhukou',
trigger:{player:'phaseJieshuBegin'},
filter:function(event,player){
return game.hasPlayer((current)=>(current!=player)&&!player.getHistory('sourceDamage').length);
},
prompt:'是否发动【逐寇】?',
prompt2:'对所有其他角色各造成1点伤害',
logTarget:(event,player)=>(game.filterPlayer((current)=>(current!=player))),
check:function(event,player){
return game.countPlayer(function(current){
if(current==player) return false;
var num=get.damageEffect(current,player,player);
if(num<0&&current.hp>2) num/=3;
return num+0.01;
})>0;
},
content:function(){
var list=game.filterPlayer((current)=>(current!=player)).sortBySeat();
for(var i of list) i.damage();
},
},
},
},
mengqing:{
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
filter:function(event,player){
return game.hasPlayer((current)=>(current!=player))&&!game.hasPlayer((current)=>(current!=player&&current.isHealthy()));
},
juexingji:true,
skillAnimation:true,
animationColor:'wood',
content:function(){
player.awakenSkill('mengqing');
player.gainMaxHp(3);
player.recover(3);
player.removeSkill('zhukou');
player.addSkill('yuyun');
},
},
yuyun:{
trigger:{player:'phaseUseBegin'},
forced:true,
filter:function(event,player){
return player.hp>0||player.maxHp>1;
},
content:function(){
'step 0'
if(player.maxHp<=1) event._result={control:'失去体力',index:0};
else if(player.hp<1) event._result={control:'减体力上限',index:1};
else player.chooseControl('失去体力','减体力上限').set('prompt','玉陨失去1点体力或减1点体力上限').set('ai',function(){
var player=_status.event.player;
if(player.hp<2||player.getDamagedHp()>2) return 1;
return 0;
});
'step 1'
if(result.index==1) player.loseMaxHp();
else player.loseHp();
'step 2'
event.videoId=lib.status.videoId++;
var func=function(player,id){
var list=[
'选项一:摸两张牌',
'选项二:本回合使用黑色【杀】无距离和次数限制',
'选项三:本回合手牌上限视为无限',
'选项四:弃置一名其他角色的一张手牌和一张装备区的牌',
'选项五:令一名手牌最少的角色将手牌数摸至体力上限(至多摸至五张)',
];
var choiceList=ui.create.dialog('玉陨:请选择一'+(player.getDamagedHp()>1?'至两':'')+'项');
choiceList.videoId=id;
for(var i=0;i<list.length;i++){
var str='<div class="popup text" style="width:calc(100% - 10px);display:inline-block">';
str+=list[i];
str+='</div>';
var next=choiceList.add(str);
next.firstChild.addEventListener(lib.config.touchscreen?'touchend':'click',ui.click.button);
next.firstChild.link=i;
for(var j in lib.element.button){
next[j]=lib.element.button[j];
}
choiceList.buttons.add(next.firstChild);
}
return choiceList;
};
if(player.isOnline2()){
player.send(func,player,event.videoId);
}
event.dialog=func(player,event.videoId);
if(player!=game.me||_status.auto){
event.dialog.style.display='none';
}
var next=player.chooseButton();
next.set('dialog',event.videoId);
next.set('forced',true);
next.set('ai',function(button){
var player=_status.event.player;
switch(button.link){
case 0:
return 2;
break;
case 1:
return Math.max(0.5,player.countCards('hs',function(card){
return get.name(card)=='sha'&&get.color(card)=='black'&&player.hasValueTarget(card);
})-player.getCardUsable({name:'sha'}));
break;
case 2:
return player.needsToDiscard()/4;
break;
case 3:
var num=0;
game.countPlayer(function(current){
if(current!=player&&get.attitude(player,current)<0){
var num2=0;
current.countDiscardableCards(player,'e',function(card){
var val=get.value(card,current);
if(val>num2) num2=val;
});
if(current.countCards('h')>0&&!current.hasSkillTag('noh')) num2++;
if(num2>num) num=num2;
}
});
return num/4;
break;
case 4:
var num=0;
game.countPlayer(function(current){
if(current!=player&&get.attitude(player,current)>0&&current.isMinHandcard()){
var num2=Math.min(5,current.maxHp)-current.countCards('h');
if(num2>num) num=num2;
}
});
return num*0.8;
break;
}
});
if(player.getDamagedHp()>1) next.set('selectButton',[1,2]);
'step 3'
if(player.isOnline2()){
player.send('closeDialog',event.videoId);
}
event.dialog.close();
result.links.sort();
for(var i of result.links) game.log(player,'选择了','#g【玉陨】','的','#y选项'+get.cnNumber(1+i,true))
event.links=result.links;
if(result.links.contains(0)) player.draw(2);
if(result.links.contains(1)) player.addTempSkill('yuyun_sha');
if(result.links.contains(2)) player.addTempSkill('yuyun_114514');
if(!result.links.contains(3)){
if(result.links.contains(4)) event.goto(6);
else event.finish();
}
'step 4'
if(game.hasPlayer(function(current){
return current!=player&&current.hasCard((card)=>lib.filter.canBeDiscarded(card,current,player),'he');
})){
player.chooseTarget(true,'弃置一名其他角色手牌区和装备区内的各一张牌',function(card,player,current){
return current!=player&&current.hasCard((card)=>lib.filter.canBeDiscarded(card,current,player),'he');
}).set('ai',function(current){
var num2=0,player=_status.event.player;
if(get.attitude(player,current)>=0) return 0;
current.countDiscardableCards(player,'e',function(card){
var val=get.value(card,current);
if(val>num2) num2=val;
});
if(current.countCards('h')>0&&!current.hasSkillTag('noh')) num2++;
});
}
else if(event.links.contains(4)) event.goto(6);
else event.finish();
'step 5'
if(result.bool){
var target=result.targets[0];
player.line(target,'green');
var num=0;
if(target.hasCard((card)=>lib.filter.canBeDiscarded(card,target,player),'h')) num++;
if(target.hasCard((card)=>lib.filter.canBeDiscarded(card,target,player),'e')) num++;
if(num){
player.discardPlayerCard(target,num,'he',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;
});
}
}
if(!event.links.contains(4)) event.finish();
'step 6'
if(game.hasPlayer(function(current){
return current.isMinHandcard()&&current.countCards('h')<Math.min(5,current.maxHp);
})){
player.chooseTarget(true,'令一名手牌数最少的角色将手牌数摸至体力上限',function(card,player,current){
return current.isMinHandcard()&&current.countCards('h')<Math.min(5,current.maxHp);
}).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(target.hasSkillTag('nogain')) att/=6;
if(att>2){
return Math.min(5,target.maxHp)-target.countCards('h');
}
return att/3;
});
}
else event.finish();
'step 7'
if(result.bool){
var target=result.targets[0];
player.line(target,'green');
target.drawTo(Math.min(5,target.maxHp));
}
},
subSkill:{
'114514':{
mod:{
maxHandcardFinal:function(player,num){
return 114514;
},
},
charlotte:true,
},
sha:{
mod:{
cardUsable:function(card){
if(card.name=='sha'&&get.color(card)=='black') return Infinity;
},
targetInRange:function(card){
if(card.name=='sha'&&get.color(card)=='black') return true;
},
},
charlotte:true,
},
},
},
//樊稠 //樊稠
xinxingluan:{ xinxingluan:{
audio:'xinfu_xingluan', audio:'xinfu_xingluan',
@ -1908,7 +2445,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' 'step 0'
player.chooseTarget('请选择【节烈】的目标','其于回合外摸牌后你摸等量的牌其进入濒死状态时你可令其回复体力至1点其死亡后你弃置所有牌并失去1点体力',lib.filter.notMe,true).set('ai',function(target){ player.chooseTarget('请选择【抗歌】的目标','其于回合外摸牌后你摸等量的牌其进入濒死状态时你可令其回复体力至1点其死亡后你弃置所有牌并失去1点体力',lib.filter.notMe,true).set('ai',function(target){
return get.attitude(_status.event.player,target)>0; return get.attitude(_status.event.player,target)>0;
}); });
'step 1' 'step 1'
@ -10031,6 +10568,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
caoanmin:'曹安民(?-197年沛国谯县今安徽亳州字安民。东汉时期人物曹德之子曹操之侄曹昂的堂兄弟曹丕的堂兄死于宛城之战。按曹丕《典论》记载的“亡兄孝廉子脩、从兄安民遇害。”等情况来看安民应该是曹操侄子错不了曹丕是他们属于兄弟关系肯定不会弄错。另外从典论的记载来看安民是和子脩并提的子脩是曹昂的字安民则肯定也是字不是名至于三国志中记载则应取自曹丕之《典论》但陈寿又不知曹安民其名故写为“长子昂、弟子安民”。', caoanmin:'曹安民(?-197年沛国谯县今安徽亳州字安民。东汉时期人物曹德之子曹操之侄曹昂的堂兄弟曹丕的堂兄死于宛城之战。按曹丕《典论》记载的“亡兄孝廉子脩、从兄安民遇害。”等情况来看安民应该是曹操侄子错不了曹丕是他们属于兄弟关系肯定不会弄错。另外从典论的记载来看安民是和子脩并提的子脩是曹昂的字安民则肯定也是字不是名至于三国志中记载则应取自曹丕之《典论》但陈寿又不知曹安民其名故写为“长子昂、弟子安民”。',
dufuren:'杜夫人(生卒年不详),东汉末年至三国时人。有异色,原为吕布将秦宜禄之妻,生子秦朗。后为曹操纳为妾,又生曹林、曹衮、金乡公主。', dufuren:'杜夫人(生卒年不详),东汉末年至三国时人。有异色,原为吕布将秦宜禄之妻,生子秦朗。后为曹操纳为妾,又生曹林、曹衮、金乡公主。',
lvlingqi:'吕玲绮虚拟人物源于日本光荣株式会社现光荣特库摩公司旗下游戏《真·三国无双》系列初次登场于《真三国无双7猛将传》。吕布的女儿寂寥而威风凛凛的战姬发挥着不亚于父亲的武艺非常勇敢地身先士卒立于前线。虽然有着能够直面困难的坚强意志却由于过去的经历而有着非常害怕孤独的一面。', lvlingqi:'吕玲绮虚拟人物源于日本光荣株式会社现光荣特库摩公司旗下游戏《真·三国无双》系列初次登场于《真三国无双7猛将传》。吕布的女儿寂寥而威风凛凛的战姬发挥着不亚于父亲的武艺非常勇敢地身先士卒立于前线。虽然有着能够直面困难的坚强意志却由于过去的经历而有着非常害怕孤独的一面。',
zhouyi:'周夷,游卡桌游旗下产品《三国杀》自行杜撰的人物。设定为周瑜的妹妹,和周瑜一同征战。',
}, },
characterTitle:{ characterTitle:{
wulan:'#b对决限定武将', wulan:'#b对决限定武将',
@ -10109,6 +10647,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dongbai:['re_dongbai','dongbai'], dongbai:['re_dongbai','dongbai'],
gexuan:['gexuan','tw_gexuan'], gexuan:['gexuan','tw_gexuan'],
panshu:['panshu','re_panshu'], panshu:['panshu','re_panshu'],
nanhualaoxian:['re_nanhualaoxian','nanhualaoxian'],
}, },
translate:{ translate:{
lijue:"李傕", lijue:"李傕",
@ -10556,10 +11095,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liangjue:'粮绝', liangjue:'粮绝',
liangjue_info:'锁定技当有黑色牌进入或者离开你的判定区或装备区后若你的体力值大于1你失去1点体力然后摸两张牌。', liangjue_info:'锁定技当有黑色牌进入或者离开你的判定区或装备区后若你的体力值大于1你失去1点体力然后摸两张牌。',
tangji:'唐姬', tangji:'唐姬',
jielie:'节烈', jielie:'抗歌',
jielie_info:'你的第一个回合开始时选择一名其他角色该角色每次于其回合外获得牌后你摸等量的牌每回合至多摸三张其进入濒死状态时你可令其回复体力至1点每轮限一次。该角色死亡时你弃置所有牌并失去1点体力。', jielie_info:'你的第一个回合开始时选择一名其他角色该角色每次于其回合外获得牌后你摸等量的牌每回合至多摸三张其进入濒死状态时你可令其回复体力至1点每轮限一次。该角色死亡时你弃置所有牌并失去1点体力。',
kangge:'抗歌', kangge:'节烈',
kangge_info:'当你受到除自己和“节烈”角色以外的角色造成的伤害时你可以防止此伤害并选择一种花色然后你失去X点体力令“节烈”角色从弃牌堆中随机获得X张此花色的牌X为伤害值。', kangge_info:'当你受到除自己和“抗歌”角色以外的角色造成的伤害时你可以防止此伤害并选择一种花色然后你失去X点体力令“抗歌”角色从弃牌堆中随机获得X张此花色的牌X为伤害值。',
yangwan:'杨婉', yangwan:'杨婉',
youyan:'诱言', youyan:'诱言',
youyan_info:'出牌阶段/弃牌阶段各限一次,当你的牌因弃置进入弃牌堆后,你可以从牌堆中获得本次弃牌中没有的花色的牌各一张。', youyan_info:'出牌阶段/弃牌阶段各限一次,当你的牌因弃置进入弃牌堆后,你可以从牌堆中获得本次弃牌中没有的花色的牌各一张。',
@ -10642,6 +11181,32 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rexingluan_info:'出牌阶段限一次,当你使用的仅指定一个目标的牌结算完成后,你可以获得场上一张与此牌点数相同的牌,或获得牌堆中随机一张点数与此牌相同的牌。', rexingluan_info:'出牌阶段限一次,当你使用的仅指定一个目标的牌结算完成后,你可以获得场上一张与此牌点数相同的牌,或获得牌堆中随机一张点数与此牌相同的牌。',
xinxingluan:'兴乱', xinxingluan:'兴乱',
xinxingluan_info:'出牌阶段限一次。当你使用牌结算结束后你可选择一项①观看牌堆中的两张点数为6的牌并获得其中一张没有则改为摸一张牌②令一名其他角色弃置一张点数为6的牌或交给你一张牌③获得场上的一张点数为6的牌。', xinxingluan_info:'出牌阶段限一次。当你使用牌结算结束后你可选择一项①观看牌堆中的两张点数为6的牌并获得其中一张没有则改为摸一张牌②令一名其他角色弃置一张点数为6的牌或交给你一张牌③获得场上的一张点数为6的牌。',
zhouyi:'周夷',
zhukou:'逐寇',
zhukou_info:'当你于一名角色的出牌阶段第一次造成伤害后你可以摸X张牌X为本回合你已使用的牌数。你的结束阶段若你本回合没有造成伤害你可以对所有其他角色造成1点伤害。',
mengqing:'氓情',
mengqing_info:'觉醒技准备阶段。若其他角色均已受伤你加3点体力上限并回复3点体力失去〖逐寇〗获得〖玉殒〗。',
yuyun:'玉殒',
yuyun_info:'锁定技出牌阶段开始时你失去1点体力或体力上限不能减至1以下然后选择一项若你已损失体力值大于1则多选一项①摸两张牌②本回合使用黑色【杀】无距离和次数限制③本回合的手牌上限视为无限④弃置一名其他角色一张手牌和一张装备区中的牌⑤令手牌最少的一名角色将手牌摸至体力上限最多摸至5。',
re_nanhualaoxian:'南华老仙',
gongxiu:'共修',
gongxiu_info:'结束阶段,若你本回合内发动过〖经合〗,则你选择一项:①令所有本回合内成为过〖经合〗目标的角色各摸一张牌;②令所有本回合内未成为过〖经合〗目标的角色各弃置一张手牌。',
jinghe:'经合',
jinghe_info:'出牌阶段限一次,你可以展示四张牌名各不相同的牌并选择等量的角色。系统从“写满技能的天书”中随机选择等量的技能,然后这些角色依次选择获得其中的一个。',
nhyinbing:'阴兵',
nhyinbing_info:'锁定技,你使用的【杀】造成伤害改为失去体力。其他角色失去体力后,你摸一张牌。',
nhhuoqi:'活气',
nhhuoqi_info:'出牌阶段限一次你可以弃置一张牌然后令体力值最少的一名角色回复1点体力并摸一张牌。',
nhguizhu:'鬼助',
nhguizhu_info:'一名角色进入濒死状态时,你可以摸两张牌(每回合限一次)。',
nhxianshou:'仙授',
nhxianshou_info:'出牌阶段限一次,你可以选择一名角色令其摸一张牌。若其未受伤,则多摸一张。',
nhlundao:'论道',
nhlundao_info:'当你受到伤害后,若伤害来源比你手牌多,你可以弃置其一张牌;若伤害来源比你手牌少,你摸一张牌。',
nhguanyue:'观月',
nhguanyue_info:'结束阶段,你可以观看牌堆顶两张牌,然后获得其中—张,另一张放回牌堆顶。',
nhyanzheng:'言政',
nhyanzheng_info:'准备阶段若你的手牌数大于1你可以保留一张手牌并弃置其余的牌然后选择至多等于弃牌数量的角色对这些角色各造成1点伤害。',
sp_whlw:"文和乱武", sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原", sp_zlzy:"逐鹿中原",

View File

@ -5,12 +5,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true, connect:true,
characterSort:{ characterSort:{
tw:{ tw:{
tw_mobile:['tw_beimihu','nashime','tw_gexuan','tw_dongzhao','jiachong','duosidawang','wuban','yuejiu'], tw_mobile:['tw_beimihu','nashime','tw_gexuan','tw_dongzhao','jiachong','duosidawang','wuban','yuejiu','tw_fuwan'],
tw_yijiang:['tw_caoang','tw_caohong','tw_zumao','tw_dingfeng','tw_maliang','tw_xiahouba'], tw_yijiang:['tw_caoang','tw_caohong','tw_zumao','tw_dingfeng','tw_maliang','tw_xiahouba'],
tw_english:['kaisa'], tw_english:['kaisa'],
}, },
}, },
character:{ character:{
tw_fuwan:['male','qun',4,['twmoukui']],
tw_zhaoxiang:['female','shu',4,['refanghun','twfuhan','twqueshi']], tw_zhaoxiang:['female','shu',4,['refanghun','twfuhan','twqueshi']],
yuejiu:['male','qun',4,['cuijin']], yuejiu:['male','qun',4,['cuijin']],
wuban:['male','shu',4,['jintao']], wuban:['male','shu',4,['jintao']],
@ -147,6 +148,62 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
skill:{ skill:{
twmoukui:{
trigger:{player:'useCardToPlayered'},
direct:true,
filter:function(event,player){
return event.card&&event.card.name=='sha';
},
content:function(){
'step 0'
var list=['选项一'];
if(trigger.target.countDiscardableCards(player,'he')>0) list.push('选项二');
list.push('背水!');
list.push('cancel2');
player.chooseControl(list).set('choiceList',[
'摸一张牌',
'弃置'+get.translation(trigger.target)+'的一张牌',
'背水!依次执行以上两项。然后若此【杀】未令其进入濒死状态,则其弃置你的一张牌。',
]).set('prompt',get.prompt('twmoukui',trigger.target));
'step 1'
if(result.control!='cancel2'){
var target=trigger.target;
player.logSkill('twmoukui',target);
if(result.control=='选项一'||result.control=='背水!') player.draw();
if(result.control=='选项二'||result.control=='背水!') player.discardPlayerCard(target,true,'he');
if(result.control=='背水!'){
player.addTempSkill('twmoukui_effect');
var evt=trigger.getParent();
if(!evt.twmoukui_effect) evt.twmoukui_effect=[];
evt.twmoukui_effect.add(target);
}
}
},
subSkill:{
effect:{
trigger:{player:'useCardAfter'},
charlotte:true,
forced:true,
filter:function(event,player){
return event.twmoukui_effect&&event.twmoukui_effect.filter(function(current){
return current.isIn()&&!current.hasHistory('damage',function(evt){
return evt._dyinged&&evt.card==event.card;
});
}).length>0;
},
content:function(){
var list=trigger.twmoukui_effect.filter(function(current){
return current.isIn()&&!current.hasHistory('damage',function(evt){
return evt._dyinged&&evt.card==event.card;
});
}).sortBySeat();
for(var i of list){
i.discardPlayerCard(player,true,'he').boolline=true;
}
},
},
},
},
twfuhan:{ twfuhan:{
audio:'fuhan', audio:'fuhan',
trigger:{player:'phaseZhunbeiBegin'}, trigger:{player:'phaseZhunbeiBegin'},
@ -1583,6 +1640,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
twqueshi_info:'游戏开始时,你将【梅影枪】置于你的装备区。', twqueshi_info:'游戏开始时,你将【梅影枪】置于你的装备区。',
meiyingqiang:'梅影枪', meiyingqiang:'梅影枪',
meiyingqiang_info:'当你于其他角色的回合内第一次失去牌时,你可以使用一张【杀】。', meiyingqiang_info:'当你于其他角色的回合内第一次失去牌时,你可以使用一张【杀】。',
tw_fuwan:'TW伏完',
twmoukui:'谋溃',
twmoukui_info:'当你使用【杀】指定目标后,你可以选择一项:①摸一张牌;②弃置该角色的一张牌;③背水:若此【杀】未因造成伤害而令该角色进入过濒死状态,则该角色弃置你的一张牌。',
tw_mobile:'移动版', tw_mobile:'移动版',
tw_yijiang:'一将成名TW', tw_yijiang:'一将成名TW',
tw_english:'英文版', tw_english:'英文版',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[ window.noname_asset_list=[
'v1.9.110.9.3.5', 'v1.9.110.9.4',
'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3', 'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3', 'audio/background/aozhan_rewrite.mp3',
@ -801,6 +801,15 @@ window.noname_asset_list=[
'audio/die/dufuren.mp3', 'audio/die/dufuren.mp3',
'audio/die/lvlingqi.mp3', 'audio/die/lvlingqi.mp3',
'audio/die/ol_wangrong.mp3', 'audio/die/ol_wangrong.mp3',
'audio/die/gz_gongsunyuan.mp3',
'audio/die/gz_huangzu.mp3',
'audio/die/gz_liuba.mp3',
'audio/die/gz_simazhao.mp3',
'audio/die/gz_sunchen.mp3',
'audio/die/gz_zhugeke.mp3',
'audio/die/re_nanhualaoxian.mp3',
'audio/die/shen_sunce.mp3',
'audio/die/yuanhuan.mp3',
'audio/skill/decadezishou1.mp3', 'audio/skill/decadezishou1.mp3',
'audio/skill/decadezishou2.mp3', 'audio/skill/decadezishou2.mp3',
@ -3611,6 +3620,48 @@ window.noname_asset_list=[
'audio/skill/yise2.mp3', 'audio/skill/yise2.mp3',
'audio/skill/zhuangrong1.mp3', 'audio/skill/zhuangrong1.mp3',
'audio/skill/zhuangrong2.mp3', 'audio/skill/zhuangrong2.mp3',
'audio/skill/aocai_gz_zhugeke1.mp3',
'audio/skill/aocai_gz_zhugeke2.mp3',
'audio/skill/fengjie1.mp3',
'audio/skill/fengjie2.mp3',
'audio/skill/gongxiu1.mp3',
'audio/skill/gongxiu2.mp3',
'audio/skill/gzduwu1.mp3',
'audio/skill/gzduwu2.mp3',
'audio/skill/gzfankui1.mp3',
'audio/skill/gzfankui2.mp3',
'audio/skill/gzhuaiyi1.mp3',
'audio/skill/gzhuaiyi2.mp3',
'audio/skill/gzshilu1.mp3',
'audio/skill/gzshilu2.mp3',
'audio/skill/gzsuzhi1.mp3',
'audio/skill/gzsuzhi2.mp3',
'audio/skill/gzxiongnve1.mp3',
'audio/skill/gzxiongnve2.mp3',
'audio/skill/gzxishe1.mp3',
'audio/skill/gzxishe2.mp3',
'audio/skill/gzzhaoxin1.mp3',
'audio/skill/gzzhaoxin2.mp3',
'audio/skill/gzzisui1.mp3',
'audio/skill/gzzisui2.mp3',
'audio/skill/jinghe1.mp3',
'audio/skill/jinghe2.mp3',
'audio/skill/jueyong1.mp3',
'audio/skill/jueyong2.mp3',
'audio/skill/pinghe1.mp3',
'audio/skill/pinghe2.mp3',
'audio/skill/poxiang1.mp3',
'audio/skill/poxiang2.mp3',
'audio/skill/qingjue1.mp3',
'audio/skill/qingjue2.mp3',
'audio/skill/qingyin1.mp3',
'audio/skill/qingyin2.mp3',
'audio/skill/scfuhai1.mp3',
'audio/skill/scfuhai2.mp3',
'audio/skill/tongduo1.mp3',
'audio/skill/tongduo2.mp3',
'audio/skill/yingba1.mp3',
'audio/skill/yingba2.mp3',
'audio/voice/male/0.mp3', 'audio/voice/male/0.mp3',
'audio/voice/male/1.mp3', 'audio/voice/male/1.mp3',
@ -4559,6 +4610,20 @@ window.noname_asset_list=[
'image/character/dufuren.jpg', 'image/character/dufuren.jpg',
'image/character/lvlingqi.jpg', 'image/character/lvlingqi.jpg',
'image/character/ol_wangrong.jpg', 'image/character/ol_wangrong.jpg',
'image/character/fuqian.jpg',
'image/character/gz_gongsunyuan.jpg',
'image/character/gz_huangzu.jpg',
'image/character/gz_liuba.jpg',
'image/character/gz_simazhao.jpg',
'image/character/gz_zhugeke.jpg',
'image/character/re_nanhualaoxian.jpg',
'image/character/shen_sunce.jpg',
'image/character/sp_chendong.jpg',
'image/character/sp_zongyu.jpg',
'image/character/sunchen.jpg',
'image/character/tw_fuwan.jpg',
'image/character/yuanhuan.jpg',
'image/character/zhouyi.jpg',
'image/character/baiwuchang.jpg', 'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg', 'image/character/baosanniang.jpg',

View File

@ -13527,8 +13527,8 @@
event.dialog.forcebutton=true; event.dialog.forcebutton=true;
event.dialog.open(); event.dialog.open();
for(var i=0;i<event.choiceList.length;i++){ for(var i=0;i<event.choiceList.length;i++){
event.dialog.add('<div class="popup text" style="width:calc(100% - 10px);display:inline-block">选项'+ event.dialog.add('<div class="popup text" style="width:calc(100% - 10px);display:inline-block">'+
get.cnNumber(i+1,true)+''+event.choiceList[i]+'</div>'); (event.displayIndex!==false?('选项'+get.cnNumber(i+1,true)+''):'')+event.choiceList[i]+'</div>');
} }
} }
else if(event.prompt){ else if(event.prompt){
@ -15676,6 +15676,7 @@
"step 6" "step 6"
if(player.hp<=0&&player.isAlive()){ if(player.hp<=0&&player.isAlive()){
game.delayx(); game.delayx();
event._dyinged=true;
player.dying(event); player.dying(event);
} }
if(source&&lib.config.border_style=='auto'){ if(source&&lib.config.border_style=='auto'){
@ -15760,6 +15761,7 @@
"step 1" "step 1"
if(player.hp<=0){ if(player.hp<=0){
game.delayx(); game.delayx();
event._dyinged=true;
player.dying(event); player.dying(event);
} }
}, },
@ -21012,6 +21014,7 @@
else if(typeof info.intro.onunmark=='function'){ else if(typeof info.intro.onunmark=='function'){
info.intro.onunmark(this.storage[name],this); info.intro.onunmark(this.storage[name],this);
} }
else delete this.storage[name];
} }
} }
return this; return this;

View File

@ -1,15 +1,15 @@
window.noname_update={ window.noname_update={
version:'1.9.110.9.3.5', version:'1.9.110.9.4',
update:'1.9.110.9.3.4', update:'1.9.110.9.3.5',
changeLog:[ changeLog:[
'杜夫人、吕玲绮、OL王荣', '周夷、南华老仙、神孙策、傅佥、陈武董袭、宗预、袁涣、国战孙綝、海外服伏完',
'司马伷,樊稠技能修改', '武将技能同步修改',
'bug修复', 'bug修复',
], ],
files:[ files:[
//'card/extra.js', //'card/extra.js',
//'card/gujian.js', //'card/gujian.js',
//'card/guozhan.js', 'card/guozhan.js',
//'card/gwent.js', //'card/gwent.js',
//'card/huanlekapai.js', //'card/huanlekapai.js',
//'card/mtg.js', //'card/mtg.js',
@ -21,7 +21,7 @@ window.noname_update={
//'card/zhenfa.js', //'card/zhenfa.js',
//'card/zhulu.js', //'card/zhulu.js',
'character/diy.js', 'character/diy.js',
//'character/extra.js', 'character/extra.js',
//'character/hearth.js', //'character/hearth.js',
//'character/gujian.js', //'character/gujian.js',
//'character/gwent.js', //'character/gwent.js',
@ -33,16 +33,16 @@ window.noname_update={
//'character/ow.js', //'character/ow.js',
'character/rank.js', 'character/rank.js',
'character/refresh.js', 'character/refresh.js',
'character/shenhua.js', //'character/shenhua.js',
'character/sp.js', 'character/sp.js',
'character/sp2.js', 'character/sp2.js',
//'character/tw.js', 'character/tw.js',
'character/standard.js', //'character/standard.js',
//'character/swd.js', //'character/swd.js',
//'character/xianjian.js', //'character/xianjian.js',
//'character/xinghuoliaoyuan.js', //'character/xinghuoliaoyuan.js',
'character/yingbian.js', //'character/yingbian.js',
'character/yijiang.js', //'character/yijiang.js',
//'character/yxs.js', //'character/yxs.js',
//'extension/boss/extension.js', //'extension/boss/extension.js',
//'layout/default/layout.css', //'layout/default/layout.css',
@ -51,10 +51,10 @@ window.noname_update={
//'layout/nova/layout.css', //'layout/nova/layout.css',
//'layout/mobile/equip.css', //'layout/mobile/equip.css',
//'mode/boss.js', //'mode/boss.js',
'mode/brawl.js', //'mode/brawl.js',
//'mode/chess.js', //'mode/chess.js',
//'mode/connect.js', //'mode/connect.js',
//'mode/doudizhu.js', 'mode/doudizhu.js',
'mode/guozhan.js', 'mode/guozhan.js',
//'mode/identity.js', //'mode/identity.js',
//'mode/single.js', //'mode/single.js',

BIN
image/character/fuqian.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

BIN
image/character/sunchen.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

BIN
image/character/zhouyi.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

View File

@ -2039,6 +2039,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
trigger.cancel(); trigger.cancel();
player.removeMark('binglin_shaxue',1,false); player.removeMark('binglin_shaxue',1,false);
trigger.source.removeMark('binglin_shaxue',1,false);
}, },
intro:{content:'剩余次数:#'}, intro:{content:'剩余次数:#'},
ai:{ ai:{
@ -2052,6 +2053,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
toushiche_skill:{ toushiche_skill:{
trigger:{player:'phaseJieshuBegin'}, trigger:{player:'phaseJieshuBegin'},
forced:true, forced:true,
equipSkill:true,
filter:function(event,player){ filter:function(event,player){
return lib.skill.toushiche_skill.logTarget(null,player).length>0; return lib.skill.toushiche_skill.logTarget(null,player).length>0;
}, },

View File

@ -315,6 +315,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
'gz_zhangxiu','gz_liqueguosi','gz_huatuo', 'gz_zhangxiu','gz_liqueguosi','gz_huatuo',
'gz_zhanghuyuechen','gz_re_xushu','gz_mifangfushiren', 'gz_zhanghuyuechen','gz_re_xushu','gz_mifangfushiren',
'gz_huangzu','gz_weiguan','gz_miheng', 'gz_huangzu','gz_weiguan','gz_miheng',
'gz_wenqin',
], ],
'4':[ '4':[
'gz_dianwei','gz_dengai','gz_xunyu', 'gz_dianwei','gz_dengai','gz_xunyu',
@ -323,7 +324,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
'gz_zhangjiao','gz_pangde','gz_liuqi', 'gz_zhangjiao','gz_pangde','gz_liuqi',
'gz_jin_zhangchunhua','gz_zongyu','gz_shixie', 'gz_jin_zhangchunhua','gz_zongyu','gz_shixie',
'gz_jin_yanghuiyu','gz_tangzi','gz_yanbaihu', 'gz_jin_yanghuiyu','gz_tangzi','gz_yanbaihu',
'gz_wujing','gz_zhugeke','gz_wenqin', 'gz_wujing','gz_zhugeke','gz_sunchen',
], ],
'3':[ '3':[
'gz_xiahoudun','gz_yuejin','gz_caoren', 'gz_xiahoudun','gz_yuejin','gz_caoren',
@ -358,7 +359,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
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_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','gz_zhuling'], guozhan_single:['gz_re_xushu','gz_yanbaihu','gz_wujing','gz_dongzhao','gz_huangzu','gz_zhugeke','gz_liuba','gz_zhuling'],
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_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_yexinjia:['gz_zhonghui','gz_simazhao','gz_gongsunyuan','gz_sunchen'],
guozhan_zongheng:['gz_huaxin','gz_luyusheng','gz_zongyu','gz_miheng','gz_fengxi','gz_dengzhi'], guozhan_zongheng:['gz_huaxin','gz_luyusheng','gz_zongyu','gz_miheng','gz_fengxi','gz_dengzhi'],
guozhan_others:["gz_lingcao","gz_lifeng","gz_beimihu","gz_jianggan","gz_key_ushio","gz_sp_duyu"], guozhan_others:["gz_lingcao","gz_lifeng","gz_beimihu","gz_jianggan","gz_key_ushio","gz_sp_duyu"],
} }
@ -381,8 +382,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gz_shibing2key:['female','key',0,[],['unseen']], gz_shibing2key:['female','key',0,[],['unseen']],
gz_zhonghui:['male','ye',4,['gzquanji','gzpaiyi'],['gzskin']], gz_zhonghui:['male','ye',4,['gzquanji','gzpaiyi'],['gzskin']],
gz_simazhao:['male','ye',3,['gzzhaoxin','gzsuzhi']], gz_simazhao:['male','ye',3,['gzzhaoxin','gzsuzhi'],['gzskin']],
gz_gongsunyuan:['male','ye',4,['gzhuaiyi','gzzisui']], gz_gongsunyuan:['male','ye',4,['gzhuaiyi','gzzisui'],['gzskin']],
gz_sunchen:['male','ye',4,['gzshilu','gzxiongnve']],
gz_tangzi:['male','wu',4,['gzxingzhao'],['doublegroup:wu:wei','gzskin']], gz_tangzi:['male','wu',4,['gzxingzhao'],['doublegroup:wu:wei','gzskin']],
gz_mengda:['male','wei',4,['qiuan','liangfan'],['doublegroup:wei:shu']], gz_mengda:['male','wei',4,['qiuan','liangfan'],['doublegroup:wei:shu']],
gz_liuqi:['male','qun',3,['gzwenji','gztunjiang'],['doublegroup:qun:shu','gzskin']], gz_liuqi:['male','qun',3,['gzwenji','gztunjiang'],['doublegroup:qun:shu','gzskin']],
@ -396,11 +398,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gz_xuyou:['male','wei',3,['gzchenglve','gzshicai'],['doublegroup:wei:qun','gzskin']], gz_xuyou:['male','wei',3,['gzchenglve','gzshicai'],['doublegroup:wei:qun','gzskin']],
gz_xiahouba:['male','shu',4,['gzbaolie'],['doublegroup:shu:wei','gzskin']], gz_xiahouba:['male','shu',4,['gzbaolie'],['doublegroup:shu:wei','gzskin']],
gz_panjun:['male','wu',3,['gzcongcha','xinfu_gongqing'],['doublegroup:wu:shu','gzskin']], gz_panjun:['male','wu',3,['gzcongcha','xinfu_gongqing'],['doublegroup:wu:shu','gzskin']],
gz_huangzu:['male','qun',4,['gzwangong']], gz_huangzu:['male','qun',4,['gzxishe'],['gzskin']],
gz_zhugeke:['male','wu',3,['aocai','gzduwu']], gz_zhugeke:['male','wu',3,['aocai','gzduwu'],['gzskin']],
gz_wenqin:['male','wei',4,['gzjinfa'],['doublegroup:wei:wu','gzskin']], gz_wenqin:['male','wei',4,['gzjinfa'],['doublegroup:wei:wu','gzskin']],
gz_xf_sufei:['male','wu',4,['gzlianpian'],['doublegroup:wu:qun','gzskin']], gz_xf_sufei:['male','wu',4,['gzlianpian'],['doublegroup:wu:qun','gzskin']],
gz_liuba:['male','shu',3,['chouduo','guiyin']], gz_liuba:['male','shu',3,['tongduo','qingyin'],['gzskin']],
gz_pengyang:['male','shu',3,['daming','xiaoni'],['doublegroup:shu:qun','gzskin']], gz_pengyang:['male','shu',3,['daming','xiaoni'],['doublegroup:shu:qun','gzskin']],
gz_zhuling:['male','wei',4,['gzjuejue','gzfangyuan'],['gzskin']], gz_zhuling:['male','wei',4,['gzjuejue','gzfangyuan'],['gzskin']],
@ -524,7 +526,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gz_jin_zhangchunhua:['female','jin',3,['huishi','qingleng']], gz_jin_zhangchunhua:['female','jin',3,['huishi','qingleng']],
gz_jin_simayi:['male','jin',3,['smyyingshi','xiongzhi','xinquanbian']], gz_jin_simayi:['male','jin',3,['smyyingshi','xiongzhi','xinquanbian']],
gz_jin_wangyuanji:['female','jin',3,['yanxi']], gz_jin_wangyuanji:['female','jin',3,['yanxi']],
gz_jin_simazhao:['male','jin',3,['choufa','zhaoran']], gz_jin_simazhao:['male','jin',3,['xinchoufa','zhaoran']],
gz_jin_xiahouhui:['female','jin',3,['jyishi','shiduo']], gz_jin_xiahouhui:['female','jin',3,['jyishi','shiduo']],
gz_jin_simashi:['male','jin',3,['yimie','tairan']], gz_jin_simashi:['male','jin',3,['yimie','tairan']],
gz_duyu:['male','jin',4,['sanchen']], gz_duyu:['male','jin',4,['sanchen']],
@ -539,6 +541,252 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
}, },
skill:{ skill:{
//孙綝
gzshilu:{
audio:2,
preHidden:true,
trigger:{global:'dieAfter'},
prompt2:function(event,player){
return '将其的所有武将牌'+(player==event.source?'及武将牌库里的两张随机武将牌':'')+'置于武将牌上作为“戮”';
},
logTarget:'player',
content:function(){
var list=[],target=trigger.player;
if(target.name1&&target.name1.indexOf('gz_shibing')!=0&&_status.characterlist.contains(target.name1)) list.push(target.name1);
if(target.name2&&target.name2.indexOf('gz_shibing')!=0&&_status.characterlist.contains(target.name1)) list.push(target.name2);
_status.characterlist.removeArray(list);
if(player==trigger.source) list.addArray(_status.characterlist.randomRemove(2));
if(list.length){
player.markAuto('gzshilu',list);
game.log(player,'将','#g'+get.translation(list),'置于武将牌上作为','#y“戮”');
game.broadcastAll(function(player,list){
var cards=[];
for(var i=0;i<list.length;i++){
var cardname='huashen_card_'+list[i];
lib.card[cardname]={
fullimage:true,
image:'character:'+list[i]
}
lib.translate[cardname]=get.rawName2(list[i]);
cards.push(game.createCard(cardname,'',''));
}
player.$draw(cards,'nobroadcast');
},player,list);
}
},
marktext:'戮',
intro:{
content:'character',
onunmark:function(storage,player){
if(storage&&storage.length){
_status.characterlist.addArray(storage)
storage.length=0;
}
},
mark:function(dialog,storage,player){
if(storage&&storage.length){
dialog.addSmall([storage,'character']);
}
else{
return '没有“戮”';
}
},
content:function(storage,player){
return '共有'+get.cnNumber(storage.length)+'张“戮”';
},
},
group:'gzshilu_zhiheng',
subSkill:{
zhiheng:{
audio:'gzshilu',
trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){
return player.getStorage('gzshilu').length>0&&player.countCards('he')>0;
},
direct:true,
content:function(){
'step 0'
var num=Math.min(player.getStorage('gzshilu').length,player.countCards('he'));
player.chooseToDiscard('he',get.prompt('gzshilu'),'弃置至多'+get.cnNumber(num)+'张牌并摸等量的牌',[1,num]).logSkill='gzshilu';
'step 1'
if(result.bool&&result.cards&&result.cards.length) player.draw(result.cards.length);
},
},
},
},
gzxiongnve:{
audio:2,
trigger:{player:'phaseUseBegin'},
direct:true,
filter:function(event,player){
return player.getStorage('gzshilu').length>0;
},
content:function(){
'step 0'
player.chooseButton([get.prompt('gzxiongnve'),[player.storage.gzshilu,'character']]).set('ai',function(button){
if(!_status.event.goon) return 0;
var name=button.link,group=get.is.double(name,true);
if(!group) group=[lib.character[name][1]];
for(var i of group){
if(game.hasPlayer(function(current){
return player.inRange(current)&&current.identity==i;
})) return 1+Math.random();
}
return 0;
}).set('goon',player.countCards('hs',function(card){
return get.tag(card,'damage')&&player.hasValueTarget(card);
})>1);
'step 1'
if(result.bool){
player.logSkill('gzxiongnve');
lib.skill.gzxiongnve.throwCharacter(player,result.links);
game.delayx();
var group=get.is.double(result.links[0],true);
if(!group) group=[lib.character[result.links[0]][1]];
event.group=group;
var str=get.translation(group);
player.chooseControl().set('prompt','选择获得一项效果').set('choiceList',[
'本回合对'+str+'势力的角色造成的伤害+1',
'本回合对'+str+'势力的角色造成伤害后,获得对方的一张牌',
'本回合对'+str+'势力的角色使用牌没有次数限制',
]).set('ai',function(){
var player=_status.event.player;
if(player.countCards('hs',function(card){
return get.name(card)=='sha'&&player.hasValueTarget(card);
})>player.getCardUsable('sha')) return 0;
return get.rand(1,2);
});
}
else event.finish();
'step 2'
var skill='gzxiongnve_effect'+result.index;
player.markAuto(skill,event.group);
player.addTempSkill(skill);
game.log(player,'本回合对'+get.translation(event.group)+'势力的角色','#g'+lib.skill[skill].promptx)
},
group:'gzxiongnve_end',
throwCharacter:function(player,list){
player.unmarkAuto('gzshilu',list);
_status.characterlist.addArray(list);
game.log(player,'从','#y“戮”','中移去了','#g'+get.translation(list));
game.broadcastAll(function(player,list){
var cards=[];
for(var i=0;i<list.length;i++){
var cardname='huashen_card_'+list[i];
lib.card[cardname]={
fullimage:true,
image:'character:'+list[i]
}
lib.translate[cardname]=get.rawName2(list[i]);
cards.push(game.createCard(cardname,'',''));
}
player.$throw(cards,1000,'nobroadcast');
},player,list);
},
subSkill:{
effect0:{
promptx:'造成的伤害+1',
charlotte:true,
onremove:true,
audio:'gzxiongnve',
intro:{
content:'对$势力的角色造成的伤害+1',
},
trigger:{source:'damageBegin1'},
forced:true,
filter:function(event,player){
return player.getStorage('gzxiongnve_effect0').contains(event.player.identity);
},
logTarget:'player',
content:function(){
trigger.num++;
},
},
effect1:{
promptx:'造成伤害后,获得对方的一张牌',
charlotte:true,
onremove:true,
audio:'gzxiongnve',
intro:{
content:'对$势力的角色造成伤害后,获得对方的一张牌',
},
trigger:{source:'damageEnd'},
forced:true,
filter:function(event,player){
return player.getStorage('gzxiongnve_effect1').contains(event.player.identity)&&event.player.countGainableCards(player,'he')>0;
},
logTarget:'player',
content:function(){
player.gainPlayerCard(trigger.player,true,'he');
}
},
effect2:{
promptx:'使用牌没有次数限制',
charlotte:true,
onremove:true,
intro:{
content:'对$势力的角色使用牌没有次数限制',
},
mod:{
cardUsableTarget:function(card,player,target){
if(player.getStorage('gzxiongnve_effect2').contains(target.identity)) return true;
},
},
},
effect3:{
charlotte:true,
audio:'gzxiongnve',
mark:true,
intro:{
content:'受到的伤害-1',
},
trigger:{player:'damageBegin1'},
forced:true,
content:function(){
trigger.num--;
},
ai:{
effect:{
target:function(card,player,target){
if(player.hasSkillTag('jueqing',false,target)) return;
var num=get.tag(card,'damage');
if(num){
if(num>1) return 0.5;
return 0;
}
}
}
},
},
end:{
trigger:{player:'phaseUseEnd'},
direct:true,
filter:function(event,player){
return player.getStorage('gzshilu').length>1;
},
content:function(){
'step 0'
player.chooseButton(['是否移去两张“戮”获得减伤?',[player.storage.gzshilu,'character']],2).set('ai',function(button){
var name=button.link,group=get.is.double(name,true);
if(!group) group=[lib.character[name][1]];
for(var i of group){
if(game.hasPlayer(function(current){
return current.identity==i;
})) return 0;
}
return 1;
});
'step 1'
if(result.bool){
player.logSkill('gzxiongnve');
lib.skill.gzxiongnve.throwCharacter(player,result.links);
player.addTempSkill('gzxiongnve_effect3',{player:'phaseBegin'});
game.delayx();
}
},
},
},
},
//邓芝 //邓芝
gzjianliang:{ gzjianliang:{
audio:2, audio:2,
@ -885,7 +1133,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(num>0) player.draw(num); if(num>0) player.draw(num);
'step 4' 'step 4'
if(trigger.player.isIn()){ if(trigger.player.isIn()){
var target=trigger.player,tao=player.canUse('tao',target),sha=game.filterPlayer(function(current){ var target=trigger.player,tao=(lib.filter.cardEnabled({name:'tao',isCard:true},player)&&lib.filter.targetEnabled2({name:'tao',isCard:true},player,target)),sha=game.filterPlayer(function(current){
return current!=target&&current!=player&&target.canUse({name:'sha',nature:'thunder',isCard:true},current,false); return current!=target&&current!=player&&target.canUse({name:'sha',nature:'thunder',isCard:true},current,false);
}); });
if(sha.length){ if(sha.length){
@ -1006,13 +1254,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
}, },
//刘巴 //刘巴
chouduo:{ tongduo:{
audio:2, audio:2,
trigger:{global:'phaseJieshuBegin'}, trigger:{global:'phaseJieshuBegin'},
direct:true, direct:true,
preHidden:true, preHidden:true,
filter:function(event,player){ filter:function(event,player){
if(player!=event.player&&!player.hasSkill('chouduo')||!event.player.isFriendOf(player)) return false; if(player!=event.player&&!player.hasSkill('tongduo')||!event.player.isFriendOf(player)) return false;
return event.player.getHistory('lose',function(evt){ return event.player.getHistory('lose',function(evt){
return evt.type=='discard'&&evt.cards2.length>0&&evt.getParent('phaseDiscard').player==event.player; return evt.type=='discard'&&evt.cards2.length>0&&evt.getParent('phaseDiscard').player==event.player;
}).length>0; }).length>0;
@ -1025,16 +1273,16 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}); });
num=Math.min(3,num); num=Math.min(3,num);
event.num=num; event.num=num;
var next=trigger.player.chooseBool('是否发动【度】摸'+get.cnNumber(num)+'张牌?'); var next=trigger.player.chooseBool('是否发动【度】摸'+get.cnNumber(num)+'张牌?');
if(player==trigger.player) next.setHiddenSkill('chouduo'); if(player==trigger.player) next.setHiddenSkill('tongduo');
'step 1' 'step 1'
if(result.bool){ if(result.bool){
player.logSkill('chouduo',trigger.player); player.logSkill('tongduo',trigger.player);
trigger.player.draw(num); trigger.player.draw(num);
} }
}, },
}, },
guiyin:{ qingyin:{
audio:2, audio:2,
enable:'phaseUse', enable:'phaseUse',
limited:true, limited:true,
@ -1073,7 +1321,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
animationColor:'orange', animationColor:'orange',
content:function(){ content:function(){
'step 0' 'step 0'
player.awakenSkill('guiyin'); player.awakenSkill('qingyin');
event.num=0; event.num=0;
'step 1' 'step 1'
if(targets[num].isDamaged()){ if(targets[num].isDamaged()){
@ -1082,8 +1330,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
event.num++; event.num++;
if(event.num<targets.length) event.redo(); if(event.num<targets.length) event.redo();
'step 2' 'step 2'
if(lib.character[player.name1][3].contains('guiyin')) player.removeCharacter(0); if(lib.character[player.name1][3].contains('qingyin')) player.removeCharacter(0);
if(lib.character[player.name2][3].contains('guiyin')) player.removeCharacter(1); if(lib.character[player.name2][3].contains('qingyin')) player.removeCharacter(1);
}, },
ai:{ ai:{
order:function(item,player){ order:function(item,player){
@ -1345,7 +1593,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
//诸葛恪 //诸葛恪
gzduwu:{ gzduwu:{
limited:true, limited:true,
audio:'duwu', audio:2,
enable:'phaseUse', enable:'phaseUse',
delay:false, delay:false,
filter:function(event,player){ filter:function(event,player){
@ -1450,8 +1698,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
}, },
//黄祖 //黄祖
gzwangong:{ gzxishe:{
audio:'wangong', audio:2,
trigger:{global:'phaseZhunbeiBegin'}, trigger:{global:'phaseZhunbeiBegin'},
direct:true, direct:true,
preHidden:true, preHidden:true,
@ -1460,7 +1708,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' 'step 0'
player.chooseCard('e',get.prompt('gzwangong',trigger.player),'将装备区内的一张牌当做'+(player.hp>trigger.player.hp?'不可响应的':'')+'【杀】对其使用',function(card,player){ player.chooseCard('e',get.prompt('gzxishe',trigger.player),'将装备区内的一张牌当做'+(player.hp>trigger.player.hp?'不可响应的':'')+'【杀】对其使用',function(card,player){
return player.canUse({ return player.canUse({
name:'sha', name:'sha',
cards:[card], cards:[card],
@ -1477,7 +1725,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}).setHiddenSkill(event.name); }).setHiddenSkill(event.name);
'step 1' 'step 1'
if(result.bool){ if(result.bool){
var next=player.useCard({name:'sha'},result.cards,'gzwangong',trigger.player,false); var next=player.useCard({name:'sha'},result.cards,'gzxishe',trigger.player,false);
if(player.hp>trigger.player.hp) next.oncard=function(){ if(player.hp>trigger.player.hp) next.oncard=function(){
_status.event.directHit.add(trigger.player); _status.event.directHit.add(trigger.player);
} }
@ -1487,12 +1735,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(trigger.player.isDead()){ if(trigger.player.isDead()){
player.mayChangeVice(null,'hidden'); player.mayChangeVice(null,'hidden');
} }
else if(lib.skill.gzwangong.filter(trigger,player)) event.goto(0); else if(lib.skill.gzxishe.filter(trigger,player)) event.goto(0);
}, },
ai:{ ai:{
directHit_ai:true, directHit_ai:true,
skillTagFilter:function(player,tag,arg){ skillTagFilter:function(player,tag,arg){
if(_status.event.getParent().name=='gzwangong'&&arg.card&&arg.card.name=='sha'&& if(_status.event.getParent().name=='gzxishe'&&arg.card&&arg.card.name=='sha'&&
arg.target&&arg.target==_status.event.target&&player.hp>arg.target.hp) return true; arg.target&&arg.target==_status.event.target&&player.hp>arg.target.hp) return true;
return false; return false;
}, },
@ -1500,7 +1748,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
//公孙渊 //公孙渊
gzhuaiyi:{ gzhuaiyi:{
audio:'rehuaiyi', audio:2,
enable:'phaseUse', enable:'phaseUse',
usable:1, usable:1,
delay:false, delay:false,
@ -1581,6 +1829,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
intro:{content:'cards',onunmark:'throw'}, intro:{content:'cards',onunmark:'throw'},
}, },
gzzisui:{ gzzisui:{
audio:2,
trigger:{player:'phaseDrawBegin2'}, trigger:{player:'phaseDrawBegin2'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
@ -1592,6 +1841,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
group:'gzzisui_die', group:'gzzisui_die',
subSkill:{ subSkill:{
die:{ die:{
audio:'gzzisui',
trigger:{player:'phaseJieshuBegin'}, trigger:{player:'phaseJieshuBegin'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
@ -1696,7 +1946,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
//司马昭 //司马昭
gzzhaoxin:{ gzzhaoxin:{
audio:'zhaoran', audio:2,
trigger:{player:'damageEnd'}, trigger:{player:'damageEnd'},
filter:function(event,player){ filter:function(event,player){
return player.countCards('h')>0; return player.countCards('h')>0;
@ -1725,7 +1975,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
}, },
gzsuzhi:{ gzsuzhi:{
audio:'choufa', audio:2,
derivation:'gzfankui', derivation:'gzfankui',
mod:{ mod:{
targetInRange:function(card,player,target){ targetInRange:function(card,player,target){
@ -1744,7 +1994,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
preHidden:['gzsuzhi_damage','gzsuzhi_draw','gzsuzhi_gain'], preHidden:['gzsuzhi_damage','gzsuzhi_draw','gzsuzhi_gain'],
subSkill:{ subSkill:{
damage:{ damage:{
audio:'choufa', audio:'gzsuzhi',
trigger:{source:'damageBegin1'}, trigger:{source:'damageBegin1'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
@ -1758,7 +2008,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
}, },
draw:{ draw:{
audio:'choufa', audio:'gzsuzhi',
trigger:{player:'useCard'}, trigger:{player:'useCard'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
@ -1771,7 +2021,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
}, },
gain:{ gain:{
audio:'choufa', audio:'gzsuzhi',
trigger:{global:'loseAfter'}, trigger:{global:'loseAfter'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
@ -1802,7 +2052,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
}, },
gzfankui:{ gzfankui:{
audio:'tuishi', audio:2,
inherit:'fankui', inherit:'fankui',
}, },
//夏侯霸 //夏侯霸
@ -2531,6 +2781,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
gzshejian:{ gzshejian:{
audio:2, audio:2,
preHidden:true,
trigger:{target:'useCardToTargeted'}, trigger:{target:'useCardToTargeted'},
filter:function(event,player){ filter:function(event,player){
if(player==event.player||event.targets.length!=1) return false; if(player==event.player||event.targets.length!=1) return false;
@ -3941,6 +4192,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
maxHandcard:function(player,num){return num+player.storage.zhuwei_eff} maxHandcard:function(player,num){return num+player.storage.zhuwei_eff}
}, },
mark:true, mark:true,
charlotte:true,
intro:{ intro:{
content:function(storage){if(storage) return '使用【杀】的次数上限+'+storage+',手牌上限+'+storage} content:function(storage){if(storage) return '使用【杀】的次数上限+'+storage+',手牌上限+'+storage}
} }
@ -6088,7 +6340,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
"step 1" "step 1"
if(result.bool){ if(result.bool){
player.logSkill('gzfangzhu',result.targets); player.logSkill('gzfangzhu',result.targets);
event.target=result.targets[0] event.target=result.targets[0];
event.target.chooseToDiscard('he').set('ai',function(card){ event.target.chooseToDiscard('he').set('ai',function(card){
var player=_status.event.player; var player=_status.event.player;
if(player.isTurnedOver()) return -1; if(player.isTurnedOver()) return -1;
@ -10447,6 +10699,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
fengxi:'冯熙', fengxi:'冯熙',
liuba:'刘巴', liuba:'刘巴',
pengyang:'彭羕', pengyang:'彭羕',
sunchen:'孙綝',
gzshilu:'嗜戮',
gzshilu_info:'①一名角色死亡时你可以将其所有武将牌置于你的武将牌上称为“戮”若杀死其的角色是你则你从剩余的武将牌堆随机额外获得两张“戮”。②准备阶段你可以弃置至多X张牌然后摸等量的牌X为“戮”数。',
gzxiongnve:'凶虐',
gzxiongnve_info:'①出牌阶段开始时你可以将一张“戮”置入武将牌堆并选择一项1. 本回合对“戮”对应的势力的角色造成的伤害+12. 本回合对“戮”对应的势力的角色造成伤害时你获得其一张牌3. 本回合对“戮”对应的势力的角色使用牌无次数限制。②出牌阶段结束时,你可以将两张“戮”置入武将牌堆并获得以下效果直到你的下个回合开始前:当你受到其他角色造成的伤害时,此伤害-1。',
gzjianliang:'简亮', gzjianliang:'简亮',
gzjianliang_info:'摸牌阶段开始时,若你的手牌数为全场最少,则你可以令所有与你势力相同的角色各摸一张牌。', gzjianliang_info:'摸牌阶段开始时,若你的手牌数为全场最少,则你可以令所有与你势力相同的角色各摸一张牌。',
gzweimeng:'危盟', gzweimeng:'危盟',
@ -10461,10 +10718,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
daming_info:'一名己方角色A的出牌阶段开始时你可弃置一张锦囊牌横置一名角色并摸X张牌X为拥有横置角色的势力数。然后你选择一项①视为对A使用一张【桃】②令A视为对由你选择的另一名角色使用一张雷【杀】。', daming_info:'一名己方角色A的出牌阶段开始时你可弃置一张锦囊牌横置一名角色并摸X张牌X为拥有横置角色的势力数。然后你选择一项①视为对A使用一张【桃】②令A视为对由你选择的另一名角色使用一张雷【杀】。',
xiaoni:'嚣逆', xiaoni:'嚣逆',
xiaoni_info:'锁定技,当你使用牌时,或成为其他角色使用牌的目标后,若场上存在其他己方角色且这些角色的手牌数均不大于你,则目标角色/你不可响应此牌。', xiaoni_info:'锁定技,当你使用牌时,或成为其他角色使用牌的目标后,若场上存在其他己方角色且这些角色的手牌数均不大于你,则目标角色/你不可响应此牌。',
chouduo:'筹度', tongduo:'统度',
chouduo_info:'己方角色的结束阶段开始时其可以摸X张牌X为其本回合弃牌阶段弃置的牌数且至多为3。 ', tongduo_info:'己方角色的结束阶段开始时其可以摸X张牌X为其本回合弃牌阶段弃置的牌数且至多为3。 ',
guiyin:'归隐', qingyin:'清隐',
guiyin_info:'限定技,出牌阶段,你可令所有己方角色将体力值回满,然后移除此武将牌。', qingyin_info:'限定技,出牌阶段,你可令所有己方角色将体力值回满,然后移除此武将牌。',
gzlianpian:'联翩', gzlianpian:'联翩',
gzlianpian_info:'①结束阶段开始时若你于此回合内弃置过所有角色的牌数之和大于你的体力值你可令一名与你势力相同的角色将手牌补至X张X为其体力上限。②其他角色的结束阶段开始时若其于此回合内弃置过所有角色的牌数之和大于你的体力值其可选择1.弃置你的一张牌2.令你回复1点体力。', gzlianpian_info:'①结束阶段开始时若你于此回合内弃置过所有角色的牌数之和大于你的体力值你可令一名与你势力相同的角色将手牌补至X张X为其体力上限。②其他角色的结束阶段开始时若其于此回合内弃置过所有角色的牌数之和大于你的体力值其可选择1.弃置你的一张牌2.令你回复1点体力。',
yusui:'玉碎', yusui:'玉碎',
@ -10477,8 +10734,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gzjinfa_info:'出牌阶段限一次,你可弃置一张牌并令一名其他角色选择一项:①交给你一张装备牌,若你以此法获得了♠牌,则其视为对你使用一张【杀】。②你获得其一张牌。', gzjinfa_info:'出牌阶段限一次,你可弃置一张牌并令一名其他角色选择一项:①交给你一张装备牌,若你以此法获得了♠牌,则其视为对你使用一张【杀】。②你获得其一张牌。',
gzduwu:'黩武', gzduwu:'黩武',
gzduwu_info:'限定技出牌阶段你可以选择一个“军令”。你令攻击范围内所有的非己方角色选择是否执行。若有角色选择否则你对其造成1点伤害且你摸一张牌。若有角色于此技能结算过程中进入濒死状态且存活则你失去1点体力。', gzduwu_info:'限定技出牌阶段你可以选择一个“军令”。你令攻击范围内所有的非己方角色选择是否执行。若有角色选择否则你对其造成1点伤害且你摸一张牌。若有角色于此技能结算过程中进入濒死状态且存活则你失去1点体力。',
gzwangong:'挽弓', gzxishe:'袭射',
gzwangong_info:'其他角色的准备阶段开始时,你可将装备区内的一张牌当做【杀】对其使用且可重复此流程。若你的体力值大于该角色,则此【杀】不可被响应。若该角色于此技能的结算流程中死亡,则你可以变更副将(不展示)。', gzxishe_info:'其他角色的准备阶段开始时,你可将装备区内的一张牌当做【杀】对其使用且可重复此流程。若你的体力值大于该角色,则此【杀】不可被响应。若该角色于此技能的结算流程中死亡,则你可以变更副将(不展示)。',
gzcongcha:'聪察', gzcongcha:'聪察',
gzcongcha2:'聪察', gzcongcha2:'聪察',
gzcongcha_info:'①准备阶段开始时你可以选择一名未确定势力的其他角色。当其于你的下回合开始前首次明置武将牌后若其与你势力相同则你与其各摸两张牌与你势力不同则其失去1点体力。②摸牌阶段开始时若场上所有角色均有明置的武将牌则你可以令额定摸牌数+2。', gzcongcha_info:'①准备阶段开始时你可以选择一名未确定势力的其他角色。当其于你的下回合开始前首次明置武将牌后若其与你势力相同则你与其各摸两张牌与你势力不同则其失去1点体力。②摸牌阶段开始时若场上所有角色均有明置的武将牌则你可以令额定摸牌数+2。',