Summer Pockets REFLECTION BLUE Special Ver.

This commit is contained in:
Spmario233 2020-06-27 13:15:04 +08:00 committed by GitHub
parent 4fb072d845
commit 26b7c7106a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 777 additions and 90 deletions

View File

@ -800,9 +800,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
equipSkill:true,
trigger:{player:'linkBefore'},
forced:true,
priority:20,
//priority:20,
filter:function(event,player){
return player.isMinor()&&!player.isLinked();
return !player.isMajor()&&!player.isLinked();
},
content:function(){
trigger.cancel();

View File

@ -1067,7 +1067,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
result:{
target:function(player,target){
if(get.attitude(player,target)<=0) return (target.countCards('he',function(card){
return get.value(card)>0;
return card.name=='tengjia'||get.value(card)>0;
})>0)?-1.5:1.5;
var js=target.getCards('j');
if(js.length){

View File

@ -49,6 +49,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_key_kanade:['female','key',3,['kanade_mapo','kanade_benzhan']],
key_mio:['female','key',3,['mio_tuifu','mio_tishen']],
key_midori:['female','key',3,['midori_nonghuan','midori_tishen']],
key_kyoko:['female','key',3,['kyoko_juwu','kyoko_zhengyi']],
key_shizuru:['female','key',3,['shizuru_nianli','shizuru_benzhan']],
// diy_caocao:['male','wei',4,['xicai','diyjianxiong','hujia']],
// diy_hanlong:['male','wei',4,['siji','ciqiu']],
diy_feishi:['male','shu',3,['shuaiyan','moshou']],
@ -131,7 +133,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy:{
diy_tieba:["diy_wenyang","ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua","ns_zhangwei"],
diy_default:["diy_feishi","diy_liuyan","diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji","diy_liufu","diy_xizhenxihong","diy_liuzan","diy_zaozhirenjun","diy_yangyi","diy_tianyu"],
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_kagari","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori"],
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_kagari","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru"],
diy_yongjian:["ns_chendao","yj_caoang"],
},
},
@ -147,6 +149,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
},
characterTitle:{
key_shizuru:'#bRewrite',
key_kyoko:'#bSummer Pockets',
sp_key_kanade:'#rAngel Beats!',
key_yuzuru:'#rAngel Beats!',
key_tsumugi:'#bSummer Pockets',
@ -227,8 +231,335 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_yuri:['key_kanade'],
key_hinata:['key_yui'],
key_iwasawa:['key_hisako'],
key_lucia:['key_shizuru'],
},
skill:{
shizuru_nianli:{
enable:'chooseToUse',
prompt:'展示一张♦/♣/♥/♠手牌,然后视为使用一张雷杀/闪/桃/无懈可击',
viewAs:function(cards,player){
var name=false;
var nature=null;
switch(get.suit(cards[0],player)){
case 'club':name='shan';break;
case 'diamond':name='sha';nature='thunder';break;
case 'spade':name='wuxie';break;
case 'heart':name='tao';break;
}
if(name) return {name:name,nature:nature,isCard:true};
return null;
},
check:function(card){
var player=_status.event.player;
if(_status.event.type=='phase'){
var max=0;
var name2;
var list=['sha','tao'];
var map={sha:'diamond',tao:'heart'}
for(var i=0;i<list.length;i++){
var name=list[i];
if(player.countCards('h',function(card){
return get.suit(card,player)==map[name];
})>0&&player.getUseValue({name:name,nature:name=='sha'?'fire':null})>0){
var temp=get.order({name:name,nature:name=='sha'?'fire':null});
if(temp>max){
max=temp;
name2=map[name];
}
}
}
if(name2==get.suit(card,player)) return 1;
return 0;
}
return 1;
},
ignoreMod:true,
filterCard:function(card,player,event){
event=event||_status.event;
var filter=event._backup.filterCard;
var name=get.suit(card,player);
if(name=='club'&&filter({name:'shan'},player,event)) return true;
if(name=='diamond'&&filter({name:'sha',nature:'thunder'},player,event)) return true;
if(name=='spade'&&filter({name:'wuxie'},player,event)) return true;
if(name=='heart'&&filter({name:'tao'},player,event)) return true;
return false;
},
filter:function(event,player){
if(player.hasSkill('shizuru_nianli_round')) return false;
var filter=event.filterCard;
if(filter({name:'sha',nature:'thunder'},player,event)&&player.countCards('h',{suit:'diamond'})) return true;
if(filter({name:'shan'},player,event)&&player.countCards('h',{suit:'club'})) return true;
if(filter({name:'tao'},player,event)&&player.countCards('h',{suit:'heart'})) return true;
if(filter({name:'wuxie'},player,event)&&player.countCards('h',{suit:'spade'})) return true;
return false;
},
precontent:function(){
player.logSkill('shizuru_nianli');
player.addTempSkill('shizuru_nianli_round','roundStart');
player.showCards(get.translation(player)+'发动了【念力】',event.result.cards.slice(0));
event.result.card.cards=[];
event.result.cards=[];
delete event.result.skill;
delete event.result.card.suit;
delete event.result.card.number;
event.getParent().addCount=false;
event.getParent().shizuru_nianli=true;
},
ai:{
respondSha:true,
respondShan:true,
save:true,
skillTagFilter:function(player,tag){
if(player.hasSkill('shizuru_nianli_round')) return false;
var name;
switch(tag){
case 'respondSha':name='diamond';break;
case 'respondShan':name='club';break;
case 'save':name='heart';break;
}
if(!player.countCards('h',{suit:name})) return false;
},
order:function(item,player){
if(player&&_status.event.type=='phase'){
var max=0;
var list=['sha','tao'];
var map={sha:'diamond',tao:'heart'}
for(var i=0;i<list.length;i++){
var name=list[i];
if(player.countCards('h',function(card){
return get.suit(card,player)==map[name];
})>0&&player.getUseValue({name:name,nature:name=='sha'?'thunder':null})>0){
var temp=get.order({name:name,nature:name=='sha'?'thunder':null});
if(temp>max) max=temp;
}
}
max/=1.1;
return max;
}
return 2;
},
},
hiddenCard:function(player,name){
return name=='wuxie'&&player.countCards('h',{suit:'spade'})>0&&!player.hasSkill('shizuru_nianli_round');
},
group:'shizuru_nianli_clear',
subSkill:{
round:{
mark:true,
intro:{content:'本轮已发动'},
},
clear:{
trigger:{player:'useCardAfter'},
lastDo:true,
silent:true,
filter:function(event,player){
return event.getParent().shizuru_nianli==true;
},
content:function(){
player.getHistory('useCard').remove(trigger);
},
},
},
},
shizuru_benzhan:{
trigger:{global:['useCard','respond']},
direct:true,
filter:function(event,player){
return Array.isArray(event.respondTo)&&event.respondTo[0]!=event.player&&[event.respondTo[0],event.player].contains(player);
},
content:function(){
'step 0'
event.type=get.type(trigger.card)=='basic';
var prompt=event.type?'令一名角色摸两张牌或弃置两张牌':'令一名角色回复1点体力或对其造成1点伤害';
player.chooseTarget(get.prompt('shizuru_benzhan'),prompt).set('ai',function(target){
var player=_status.event.player;
if(_status.event.getParent().type){
var att=get.attitude(player,target);
if(target.hasSkillTag('nogain')) return -att;
if(target.countCards('he')==1&&att<0) att/=2;
return Math.abs(att)*(1+0.1*(Math.min(0,5-target.countCards('h'))))
}
return Math.max(get.recoverEffect(target,player,player),get.damageEffect(target,player,player))
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('shizuru_benzhan',target,'thunder');
var trans=get.translation(target);
var list;
if(event.type){
if(!target.countCards('h')) event._result={index:0};
else list=['令'+trans+'摸两张牌','令'+trans+'弃置两张牌'];
}
else{
if(target.isHealthy()) event._result={index:1};
else list=['令'+trans+'回复1点体力','对'+trans+'造成1点伤害'];
}
player.chooseControl().set('choiceList',list).set('choice',function(){
if(event.type) return (get.attitude(player,target)>0)?0:1;
return (get.recoverEffect(target,player,player)>get.damageEffect(target,player,player))?0:1;
}()).set('ai',function(){
return _status.event.choice;
});
}
else event.finish();
'step 2'
player.addExpose(0.2);
if(event.type){
if(result.index==0) target.draw(2);
else target.chooseToDiscard(2,'he',true);
}
else{
if(result.index==0) target.recover();
else target.damage();
}
},
},
kyoko_juwu:{
trigger:{global:['loseAfter','cardsDiscardAfter']},
direct:true,
filter:function(event,player){
return player!=event.player&&player!=_status.currentPhase&&event.cards&&event.cards.filter(function(card){
return get.position(card,true)=='d'&&get.type(card,false)=='equip';
}).length>0;
},
content:function(){
'step 0'
player.chooseButton([get.prompt('kyoko_juwu'),[1,Infinity],trigger.cards.filter(function(card){
return get.position(card,true)=='d'&&get.type(card,false)=='equip';
})]);
'step 1'
if(result.bool){
player.gain(result.links,'gain2','log');
player.logSkill('kyoko_juwu');
}
},
},
kyoko_zhengyi:{
group:['kyoko_jingce','kyoko_shelie','kyoko_zhiheng'],
count:function(player){
var list=[];
player.countCards('e',function(card){
list.add(get.suit(card,player));
});
return list.length;
},
},
kyoko_jingce:{
trigger:{player:['phaseUseEnd','phaseJieshuBegin']},
filter:function(event,player){
var num=lib.skill.kyoko_zhengyi.count(player);
if(!num||(event.name=='phaseUse')==(num>3)) return false;
return player.getHistory('useCard',function(evt){
return event.name!='phaseUse'||evt.getParent('phaseUse')==event;
}).length>=player.hp;
},
frequent:true,
content:function(){
player.draw(2);
},
},
kyoko_shelie:{
audio:2,
trigger:{player:'phaseDrawBegin1'},
filter:function(event,player){
return !event.numFixed&&lib.skill.kyoko_zhengyi.count(player)>1;
},
content:function(){
"step 0"
trigger.changeToZero();
event.cards=get.cards(5);
game.cardsGotoOrdering(event.cards);
event.videoId=lib.status.videoId++;
game.broadcastAll(function(player,id,cards){
var str;
if(player==game.me&&!_status.auto){
str='涉猎:获取花色各不相同的牌';
}
else{
str='涉猎';
}
var dialog=ui.create.dialog(str,cards);
dialog.videoId=id;
},player,event.videoId,event.cards);
event.time=get.utc();
game.addVideo('showCards',player,['涉猎',get.cardsInfo(event.cards)]);
game.addVideo('delay',null,2);
"step 1"
var next=player.chooseButton([0,5],true);
next.set('dialog',event.videoId);
next.set('filterButton',function(button){
for(var i=0;i<ui.selected.buttons.length;i++){
if(get.suit(ui.selected.buttons[i].link)==get.suit(button.link)) return false;
}
return true;
});
next.set('ai',function(button){
return get.value(button.link,_status.event.player);
});
"step 2"
if(result.bool&&result.links){
event.cards2=result.links;
}
else{
event.finish();
}
var time=1000-(get.utc()-event.time);
if(time>0){
game.delay(0,time);
}
"step 3"
game.broadcastAll('closeDialog',event.videoId);
var cards2=event.cards2;
player.gain(cards2,'log','gain2');
},
},
kyoko_zhiheng:{
enable:'phaseUse',
usable:1,
position:'he',
filter:function(event,player){
return lib.skill.kyoko_zhengyi.count(player)>2;
},
prompt:function(){
var str='弃置任意张牌并摸等量的牌';
if(lib.skill.kyoko_zhengyi.count(_status.event.player)>3) str+=',若弃置了所有手牌则多摸一张牌。';
return str;
},
filterCard:lib.filter.cardDiscardable,
discard:false,
lose:false,
delay:false,
selectCard:[1,Infinity],
check:function(card){
var player=_status.event.player;
if(get.position(card)=='h'){
return 8-get.value(card);
}
return 6-get.value(card)
},
content:function(){
'step 0'
player.discard(cards);
event.num=1;
var hs=player.getCards('h');
if(!hs.length||lib.skill.kyoko_zhengyi.count(player)<4) event.num=0;
else for(var i=0;i<hs.length;i++){
if(!cards.contains(hs[i])){
event.num=0;break;
}
}
'step 1'
player.draw(event.num+cards.length);
},
ai:{
order:1,
result:{
player:1
},
},
},
yuzuru_bujin:{
global:'yuzuru_bujin2',
trigger:{global:'phaseDrawBegin'},
@ -3353,6 +3684,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.addTempSkill('yuri_xingdong_mark','phaseJudgeSkipped');
target.skip('phaseJudge');
target.skip('phaseDraw');
target.addTempSkill('zhengjing3',{player:'phaseAfter'});
event.finish();
}
'step 3'
@ -3369,7 +3701,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(info.selectTarget==-1){
var eff=0;
game.countPlayer(function(current){
if(current!=player&&target.canUse(card,current)) eff+=get.effect(current,card,target,target)>0
if(current!=player&&target.canUse(card,current)) eff+=get.effect(current,card,target,target);
});
if(eff>0||get.value(card)<3) return eff;
return 0;
@ -8388,6 +8720,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_key_kanade:'SP立华奏',
key_mio:'西园美鱼',
key_midori:'西园美鸟',
key_kyoko:'岬镜子',
key_shizuru:'中津静流',
lucia_duqu:'毒躯',
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
lucia_zhenren:'振刃',
@ -8398,6 +8732,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_huanjie_info:'锁定技,当你进行判定或摸牌时,你改为从牌堆的另一端获取相应的牌。',
yuri_xingdong:'行动',
yuri_xingdong_info:'锁定技,出牌阶段开始时,你获得一张【杀】或普通锦囊牌。出牌阶段限一次,你可以将一张【杀】或普通锦囊牌交给一名其他角色,然后该角色选择一项:对除你以外的角色使用此牌并在此牌结算完成后和你各摸一张牌;或跳过下回合的判定阶段和摸牌阶段。',
//目标角色跳过阶段的同时 该回合不能发动〖整经(郑玄)〗
yuri_wangxi:'忘隙',
yuri_wangxi_info:'主公技限定技当有角色因你发动的【行动】而死亡后若其身份不为【明忠】则其可以将身份改为忠臣并重新加入游戏然后将势力改为与你相同将体力值回复至2点并摸一张牌。',
haruko_haofang:'豪放',
@ -8581,7 +8916,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
kanade_benzhan:'奔战',
kanade_benzhan_info:'当你使用或打出牌响应其他角色或其他角色使用或打出牌响应你后若此牌为基本牌你可令一名角色弃置两张牌或令一名角色摸两张牌非基本牌你可对一名角色造成1点伤害或令一名其他角色回复1点体力。',
mio_tuifu:'推腐',
mio_tuifu_info:'锁定技,当一名男性角色对一名男性角色造成伤害,你摸一张牌。',
mio_tuifu_info:'锁定技,当一名男性角色对一名男性角色造成伤害,你摸一张牌。',
mio_tishen:'替身',
mio_tishen_info:'限定技,准备阶段,你可以将体力值回复至体力上限并摸等同于回复量的牌,然后将武将牌替换为【西园美鸟】。',
midori_nonghuan:'弄幻',
@ -8589,6 +8924,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//即技能结算完成后所有涉及到的牌移动事件不会再被getHistory获取
midori_tishen:'替身',
midori_tishen_info:'限定技,准备阶段,你可以将体力值回复至体力上限并摸等同于回复量的牌,然后将武将牌替换为【西园美鱼】。',
kyoko_juwu:'聚物',
kyoko_juwu_info:'你的回合外,当有装备牌进入弃牌堆后,若这些牌不是从你的区域移动的,则你可以获得这些牌。',
kyoko_zhengyi:'整遗',
kyoko_zhengyi_info:'锁定技若你装备区的花色数大于等于1你视为拥有〖精策〗大于等于2你视为拥有〖涉猎〗大于等于3你视为拥有〖制衡〗大于等于4你将〖精策〗和〖制衡〗改为界限突破版本。',
kyoko_jingce:'精策',
kyoko_shelie:'涉猎',
kyoko_zhiheng:'制衡',
shizuru_nianli:'念力',
shizuru_nianli_info:'每轮限一次,你可以展示一张♦/♣/♥/♠手牌,然后视为使用一张雷【杀】/【闪】/【桃】/【无懈可击】。',
shizuru_benzhan:'奔战',
shizuru_benzhan_info:'当你使用或打出牌响应其他角色或其他角色使用或打出牌响应你后若此牌为基本牌你可令一名角色弃置两张牌或令一名角色摸两张牌非基本牌你可对一名角色造成1点伤害或令一名其他角色回复1点体力。',
yj_caoang:'SP曹昂',

View File

@ -949,7 +949,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{
maixie:true,
maixie_hp:true,
effect:{
/*effect:{
target:function(card,player,target){
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
if(get.tag(card,'damage')){
@ -973,7 +973,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return 'zeroplayertarget';
}
}
}
}*/
}
},
renjie2:{
@ -2008,20 +2008,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
relonghun:{
audio:'longhun',
//技能发动时机
enable:['chooseToUse','chooseToRespond'],
//发动时提示的技能描述
prompt:'将♦牌当做杀,♥牌当做桃,♣牌当做闪,♠牌当做无懈可击使用或打出',
//动态的viewAs
viewAs:function(cards,player){
var name=false;
var nature=null;
//根据选择的卡牌的花色 判断要转化出的卡牌是闪还是火杀还是无懈还是桃
switch(get.suit(cards[0],player)){
case 'club':name='shan';break;
case 'diamond':name='sha';nature='fire';break;
case 'spade':name='wuxie';break;
case 'heart':name='tao';break;
}
//返回判断结果
if(name) return {name:name,nature:nature};
return null;
},
//AI选牌思路
check:function(card){
if(ui.selected.cards.length) return 0;
var player=_status.event.player;
@ -2047,25 +2053,43 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
return 1;
},
//选牌数量
selectCard:[1,2],
//确保选择第一张牌后 重新检测第二张牌的合法性 避免选择两张花色不同的牌
complexCard:true,
//选牌范围:手牌区和装备区
position:'he',
//选牌合法性判断
filterCard:function(card,player,event){
//如果已经选了一张牌 那么第二张牌和第一张花色相同即可
if(ui.selected.cards.length) return get.suit(card,player)==get.suit(ui.selected.cards[0],player);
event=event||_status.event;
//获取当前时机的卡牌选择限制
var filter=event._backup.filterCard;
//获取卡牌花色
var name=get.suit(card,player);
//如果这张牌是梅花并且当前时机能够使用/打出闪 那么这张牌可以选择
if(name=='club'&&filter({name:'shan',cards:[card]},player,event)) return true;
//如果这张牌是方片并且当前时机能够使用/打出火杀 那么这张牌可以选择
if(name=='diamond'&&filter({name:'sha',cards:[card],nature:'fire'},player,event)) return true;
//如果这张牌是黑桃并且当前时机能够使用/打出无懈 那么这张牌可以选择
if(name=='spade'&&filter({name:'wuxie',cards:[card]},player,event)) return true;
//如果这张牌是红桃并且当前时机能够使用/打出桃 那么这张牌可以选择
if(name=='heart'&&filter({name:'tao',cards:[card]},player,event)) return true;
//上述条件都不满足 那么就不能选择这张牌
return false;
},
//判断当前时机能否发动技能
filter:function(event,player){
//获取当前时机的卡牌选择限制
var filter=event.filterCard;
//如果当前时机能够使用/打出火杀并且角色有方片 那么可以发动技能
if(filter({name:'sha',nature:'fire'},player,event)&&player.countCards('he',{suit:'diamond'})) return true;
//如果当前时机能够使用/打出闪并且角色有梅花 那么可以发动技能
if(filter({name:'shan'},player,event)&&player.countCards('he',{suit:'club'})) return true;
//如果当前时机能够使用/打出桃并且角色有红桃 那么可以发动技能
if(filter({name:'tao'},player,event)&&player.countCards('he',{suit:'heart'})) return true;
//如果当前时机能够使用/打出无懈可击并且角色有黑桃 那么可以发动技能
if(filter({name:'wuxie'},player,event)&&player.countCards('he',{suit:'spade'})) return true;
return false;
},
@ -2073,6 +2097,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
respondSha:true,
respondShan:true,
save:true,
//让系统知道角色“有杀”“有闪”“有桃”
skillTagFilter:function(player,tag){
var name;
switch(tag){
@ -2082,6 +2107,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
if(!player.countCards('he',{suit:name})) return false;
},
//AI牌序
order:function(item,player){
if(player&&_status.event.type=='phase'){
var max=0;
@ -2102,6 +2128,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return 2;
},
},
//让系统知道玩家“有无懈”
hiddenCard:function(player,name){
return name=='wuxie'&&player.countCards('he',{suit:'spade'})>0;
},
@ -2268,6 +2295,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 0"
trigger.changeToZero();
event.cards=get.cards(5);
game.cardsGotoOrdering(event.cards);
event.videoId=lib.status.videoId++;
game.broadcastAll(function(player,id,cards){
var str;
@ -2297,13 +2325,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
"step 2"
if(result.bool&&result.links){
var cards2=[];
for(var i=0;i<result.links.length;i++){
cards2.push(result.links[i]);
cards.remove(result.links[i]);
}
game.cardsDiscard(cards);
event.cards2=cards2;
event.cards2=result.links;
}
else{
event.finish();

View File

@ -6,12 +6,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true,
characterSort:{
mobile:{
mobile_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi"],
mobile_others:["re_jikang","old_bulianshi","old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","xin_yuanshao","re_liushan","xin_xiahoudun","re_sp_zhugeliang","re_heqi","re_guanqiujian","re_pangtong","old_liuzan","xin_chengpu"],
mobile_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan"],
mobile_others:["re_jikang","old_bulianshi","old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","xin_yuanshao","re_liushan","xin_xiahoudun","re_sp_zhugeliang","re_heqi","re_guanqiujian","re_pangtong","old_liuzan","xin_chengpu","re_sunjian"],
mobile_sunben:["re_sunben"],
},
},
character:{
re_sunjian:['male','wu',4,['gzyinghun','repolu']],
zhengxuan:['male','qun',3,['zhengjing']],
dengzhi:['male','shu',3,['jimeng','shuaiyan']],
xin_chengpu:['male','wu',4,['relihuo','chunlao']],
@ -299,9 +300,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(card){
cards.push(card);
names.push(card.name);
if(cards.length==3&&Math.random()<0.25) break;
if(cards.length==4&&Math.random()<0.33) break;
if(cards.length==5&&Math.random()<0.5) break;
if(cards.length==3&&Math.random()<0.33) break;
if(cards.length==4&&Math.random()<0.5) break;
if(cards.length==5) break;
if(cards.length>=6) break;
}
else break;
@ -374,7 +375,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
else {
if(lib.config.background_speak) game.playAudio('skill','zhengjing_finish');
event.dialog.textPrompt.innerHTML=' <br>整理经典结束!';
event.dialog.textPrompt.innerHTML=' <br>整理经典结束!共整理出'+get.cnNumber(event.finishedx.length)+'份经典';
}
while(event.zhengjing_nodes.length){
event.zhengjing_nodes.shift().delete();
@ -454,10 +455,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},event.videoId,event.time);
var result=event.result||result;
for(var i=0;i<cards.length;i++){
if(cards.length==1) break;
//if(cards.length==1) break;
if(!result.links.contains(cards[i].name)) cards.splice(i--,1);
}
player.showCards(cards,get.translation(player)+'整理出了以下经典');
if(cards.length) player.showCards(cards,get.translation(player)+'整理出了以下经典');
else{
game.log(player,'并没有整理出经典');
player.popup('杯具');
event.finish();
}
"step 2"
player.chooseTarget(true,'将整理出的经典置于一名角色的武将牌上').set('ai',function(target){
if(target.hasSkill('xinfu_pdgyingshi')) return 0;
@ -607,6 +613,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true,
audio:'relihuo',
filter:function(event,player){
if(event.card.name!='sha'||event.card.nature!='fire') return false;
var num=0;
player.getHistory('sourceDamage',function(evt){
if(evt.card==event.card) num+=evt.num;
@ -1473,6 +1480,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.chooseCard(get.prompt2('xinqingjian'),'he',[1,player.countCards('he')]).ai=function(){return -1};
'step 1'
if(result.bool){
player.logSkill('xinqingjian');
player.addSkill('xinqingjian2');
player.storage.xinqingjian2.addArray(result.cards);
game.log(player,'将'+get.cnNumber(player.lose(result.cards,ui.special,'toStorage').cards.length)+'张牌置于其武将牌上');
@ -1527,7 +1535,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
zhongzuo:{
audio:2,
trigger:{global:'phaseEnd'},
trigger:{global:'phaseJieshuBegin'},
direct:true,
filter:function(event,player){
return player.getHistory('damage').length>0||player.getHistory('sourceDamage').length>0;
@ -2089,13 +2097,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'damageBegin4'},
forced:true,
filter:function(event,player){
return player.isDamaged()&&event.getParent().name=='sha';
return player.isDamaged()&&event.card&&event.card.name=='sha';
},
content:function(){
'step 0'
trigger.cancel();
var cards=trigger.cards.filterInD();
if(cards.length) player.gain(cards,'gain2');
if(cards.length) player.gain(cards,'gain2','log');
'step 1'
player.loseMaxHp();
},
@ -2822,7 +2830,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
global:"phaseDrawAfter",
},
filter:function (event,player){
if(!player.storage.xinfu_zhaoxin.length) return false;
if(!player.storage.xinfu_zhaoxin||player.storage.xinfu_zhaoxin.length) return false;
return player==event.player||player.inRange(event.player);
},
direct:true,
@ -4442,7 +4450,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhiyi:'执义',
zhiyi_info:'锁定技当你于一回合内使用或打出第一张基本牌时你选择一项1.摸一张牌。2.于此牌A若此牌是因响应牌B而使用或打出的则改为牌B的使用或打出流程结算完成后视为使用一张与此牌名称和属性相同的卡牌。',
zhongzuo:'忠佐',
zhongzuo_info:'一名角色的回合结束时,若你于此回合内造成或受到过伤害,则你可以令一名角色摸两张牌。若该角色已受伤,则你摸一张牌。',
zhongzuo_info:'一名角色的结束阶段开始时,若你于此回合内造成或受到过伤害,则你可以令一名角色摸两张牌。若该角色已受伤,则你摸一张牌。',
wanlan:'挽澜',
wanlan_info:'限定技当一名角色进入濒死状态时你可以弃置所有手牌并令其回复体力至1点然后对当前回合角色造成1点伤害。',
re_jikang:"手杀嵇康",

View File

@ -7,7 +7,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
refresh_standard:["re_caocao","re_simayi","re_guojia","re_lidian","re_zhangliao","re_xuzhu","re_xiahoudun","re_zhangfei","re_zhaoyun","re_guanyu","re_machao","re_xushu","re_zhouyu","re_lvmeng","re_ganning","re_luxun","re_daqiao","re_huanggai","re_lvbu","re_gongsunzan","re_huatuo","re_liubei","re_diaochan","re_huangyueying","re_sunquan","re_sunshangxiang","re_zhenji","re_zhugeliang","re_huaxiong"],
refresh_feng:['caoren','ol_xiahouyuan','re_huangzhong','ol_weiyan','ol_xiaoqiao','zhoutai','re_zhangjiao','xin_yuji'],
refresh_huo:["ol_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","ol_pangtong","ol_yuanshao","re_pangde"],
refresh_lin:['re_zhurong','re_menghuo','re_dongzhuo','re_sunjian','re_caopi','re_xuhuang'],
refresh_lin:['re_zhurong','re_menghuo','re_dongzhuo','ol_sunjian','re_caopi','re_xuhuang'],
refresh_shan:['re_dengai','re_jiangwei','re_caiwenji','ol_liushan','re_zhangzhang','re_zuoci','re_sunce'],
refresh_yijiang:['re_xusheng','re_wuguotai','re_gaoshun','re_zhangyi','re_caozhi','re_zhuran','re_wuyi','re_liaohua','re_guohuai','re_zhuran','re_chengpu','re_caozhang','re_quancong','yujin_yujin','re_lingtong','re_handang','re_zhonghui'],
},
@ -81,7 +81,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_zhurong:['female','shu',4,['juxiang','relieren']],
re_menghuo:['male','shu',4,['huoshou','rezaiqi']],
re_dongzhuo:['male','qun',8,['rejiuchi','roulin','benghuai','baonue'],['zhu']],
re_sunjian:['male','wu',4,['gzyinghun','repolu']],
ol_sunjian:['male','wu',4,['gzyinghun','wulie']],
re_caopi:['male','wei',3,['rexingshang','refangzhu','songwei'],['zhu']],
re_dengai:['male','wei',4,['retuntian','zaoxian']],
re_jiangwei:['male','shu',4,['retiaoxin','zhiji']],
@ -105,6 +105,44 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sunben:['zhouyu','taishici','daqiao'],
},
skill:{
wulie:{
trigger:{player:'phaseJieshuBegin'},
direct:true,
limited:true,
skillAnimation:true,
animationColor:'wood',
unique:true,
filter:function(event,player){
return player.hp>0;
},
content:function(){
'step 0'
player.chooseTarget([1,player.hp],get.prompt2('wulie'),lib.filter.notMe).set('ai',function(){return 0});
'step 1'
if(result.bool){
var targets=result.targets.sortBySeat();
player.logSkill('wulie',targets);
player.awakenSkill('wulie');
player.loseHp(targets.length);
while(targets.length){
targets[0].addSkill('wulie2');
targets.shift().addMark('wulie2');
}
}
},
},
wulie2:{
marktext:'烈',
intro:{name2:'烈',content:'mark'},
trigger:{player:'damageBegin3'},
forced:true,
content:function(){
var num=Math.min(trigger.num,player.countMark('wulie2'));
trigger.num-=num;
player.removeMark('wulie2',num);
if(!player.storage.wulie2) player.removeSkill('wulie2');
},
},
regongji:{
mod:{
attackFrom:function(player){
@ -317,7 +355,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
olyajiao:{
audio:'yajiao',
audio:'reyajiao',
trigger:{player:'loseAfter'},
frequent:true,
filter:function(event,player){
@ -465,7 +503,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:'paoxiao',
audioname:['re_zhangfei','guanzhang','xiahouba'],
filter:function(event,player){
return player.countMark('olpaoxiao2')>0;
return event.card&&event.card.name=='sha'&&player.countMark('olpaoxiao2')>0;
},
onremove:true,
content:function(){
@ -4326,10 +4364,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
selectCard:[1,Infinity],
check:function(card){
var player=_status.event.player;
if(get.position(card)=='h'&&!player.countCards('h',function(card){
if(get.position(card)=='h'&&!player.countCards('h','du')&&(player.hp>2||!player.countCards('h',function(card){
return get.value(card)>=8;
})){
return 8-get.value(card);
}))){
return 1;
}
return 6-get.value(card)
},
@ -6713,7 +6751,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_zhurong:'界祝融',
re_menghuo:'界孟获',
re_dongzhuo:'界董卓',
re_sunjian:'孙坚',
re_sunjian:'手杀孙坚',
re_caopi:'界曹丕',
rejiuchi:'酒池',
rejiuchi_info:'你可以将一张黑桃手牌当做【酒】使用。锁定技,当你于回合内使用带有【酒】效果的【杀】造成伤害时,你令你的【崩坏】失效直到回合结束。',
@ -6821,6 +6859,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
requanji_info:'出牌阶段结束时若你的手牌数大于体力值或当你受到1点伤害后你可以摸一张牌然后将一张手牌置于武将牌上称为“权”你的手牌上限+XX为“权”的数量。',
regongji:'弓骑',
regongji_info:'出牌阶段限一次,你可以弃置一张非基本牌,然后弃置一名其他角色的一张牌。锁定技,当你的装备区内有坐骑牌时,你的攻击范围无限。',
ol_sunjian:'界孙坚',
wulie:'武烈',
wulie2:'武烈',
wulie_info:'限定技结束阶段你可以失去任意点体力并指定等量的角色。这些角色各获得一枚「烈」。有「烈」的角色受到1点伤害时其移去一枚「烈」然后令伤害-1。',
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',

View File

@ -3261,7 +3261,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audioname:['re_dengai','gz_dengai'],
enable:'phaseUse',
filter:function(event,player){
return player.storage.tuntian.length>0;
return player.storage.tuntian.length>0&&event.filterCard({name:'shunshou'},player,event);
},
chooseButton:{
dialog:function(event,player){

View File

@ -103,7 +103,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_jiangwei:['male','wei',4,['kunfen','fengliang']],
sp_machao:['male','qun',4,['zhuiji','ol_shichou']],
sunhao:['male','wu',5,['recanshi','rechouhai','guiming'],['zhu']],
shixie:['male','qun',3,['biluan','lixia']],
shixie:['male','qun',3,['rebiluan','relixia']],
mayunlu:['female','shu',4,['fengpo','mashu']],
zhanglu:['male','qun',3,['yishe','bushi','midao']],
wutugu:['male','qun',15,['ranshang','hanyong']],
@ -557,7 +557,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var card=targets[0].getEquip(1);
if(!result.bool&&card){
event.card=card;
targets[0].chooseTarget(true,'将'+get.translation(card)+'交给一名其他角色',lib.filter.notMe).set('ai',function(target){
player.chooseTarget(true,'将'+get.translation(card)+'交给一名其他角色').set('ai',function(target){
var card=_status.event.getParent().card;
return (target.hasSkillTag('nogain')?0:get.attitude(_status.event.player,target))*Math.max(0.1,target.getUseValue(card));
});
@ -3540,7 +3540,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.finish();
}
else{
player.addTempSkill('daoshu_used','phaseUseAfter');
player.addTempSkill('daoshu_used','phaseUseEnd');
if(player.countCards('h',function(card){return get.suit(card)!=suit2})==0){
player.showHandcards();
event.finish();
@ -6530,7 +6530,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){
if(_status.currentPhase!=player) return false;
if(!_status.event.getParent('phaseUse')) return false;
if(event.card&&(event.card.name=='sha'||event.card.name=='juedou')){
if(event.card&&(event.card.name=='sha'||event.card.name=='juedou')&&event.getParent().name==event.card.name){
if(get.mode()=='guozhan'){
return (event.player.identity!='qun'||player.identity=='ye')&&
!event.player.isUnseen()&&event.player.hasViceCharacter();
@ -9175,11 +9175,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
xinzhengnan:{
audio:'zhengnan',
trigger:{global:'dieAfter'},
direct:true,
trigger:{global:'dying'},
forced:true,
filter:function(event,player){
return !player.storage.xinzhengnan||!player.storage.xinzhengnan.contains(event.player);
},
content:function(){
'step 0'
var list=['摸牌'];
if(!player.storage.xinzhengnan) player.storage.xinzhengnan=[];
player.storage.xinzhengnan.add(trigger.player);
player.storage.xinzhengnan.sortBySeat();
player.markSkill('xinzhengnan');
player.recover();
var list=[];
if(!player.hasSkill('new_rewusheng')){
list.push('new_rewusheng');
}
@ -9189,20 +9197,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!player.hasSkill('zhiman')){
list.push('zhiman');
}
list.push('cancel2');
if(list.length){
player.chooseControl(list).set('prompt',get.prompt2('xinzhengnan')).set('ai',function(){
if(list.contains('xindangxian')) return 'xindangxian';
return 0;
});
player.draw();
event.list=list;
}
else{
player.draw(3);
event.finish();
}
'step 1'
if(result.control=='cancel2') return;
player.logSkill('xinzhengnan');
if(result.control=='摸牌'){
player.draw(3);
return;
}
if(event.list.length==1) event._result={control:event.list[0]};
else player.chooseControl(event.list).set('prompt','征南:选择获得下列技能中的一个').set('ai',function(){
if(event.list.contains('xindangxian')) return 'xindangxian';
return 0;
});
'step 2'
if(result.control=='xindangxian') player.storage.xinfuli=true;
player.addSkill(result.control);
player.popup(result.control);
@ -9210,7 +9219,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
ai:{
threaten:1.3
}
},
intro:{
content:'已因$发动过技能',
},
},
zhengnan:{
audio:1,
@ -10775,7 +10787,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
nuzhan:{
audio:2,
trigger:{player:'useCard'},
popup:false,
silent:true,
firstDo:true,
trigger:{player:'useCard1'},
filter:function(event,player){
return event.card&&event.card.name=='sha'&&event.addCount!==false&&event.cards&&
event.cards.length==1&&get.type(event.cards[0],'trick')=='trick';
@ -10791,14 +10806,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
nuzhan2:{
audio:'nuzhan',
trigger:{source:'damageBegin2'},
trigger:{player:'useCard1'},
forced:true,
popup:false,
silent:true,
firstDo:true,
filter:function(event,player){
return event.card&&event.card.name=='sha'&&event.cards&&
event.cards.length==1&&get.type(event.cards[0])=='equip';
},
content:function(){
trigger.num++;
trigger.baseDamage++;
}
},
jieyuan:{
@ -11616,6 +11634,109 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.addVideo('storage',player,['biluan',player.storage.biluan]);
}
},
rebiluan:{
audio:'biluan',
trigger:{player:'phaseUseBegin'},
mark:true,
//unique:true,
intro:{
content:function(storage){
if(storage>0){
return '其他角色计算与你的距离时+'+storage;
}
else if(storage<0){
return '其他角色计算与你的距离时'+storage;
}
else{
return '无距离变化';
}
}
},
init:function(player){
if(typeof player.storage.rebiluan!='number') player.storage.rebiluan=0;
},
check:function(event,player){
if(!player.countCards('h',function(card){
return get.name(card,player)=='sha'&&player.hasValueTarget(card);
})) return true;
var ng=[];
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].group!='unknown'){
ng.add(players[i].group);
}
}
ng=ng.length;
if(ng<2) return false;
var nai=0;
for(var i=0;i<players.length;i++){
if(players[i]!=player){
var dist=get.distance(players[i],player,'attack');
if(dist<=1&&dist+ng>1){
nai++;
}
}
}
return nai>=2;
},
filter:function(event,player){
return game.hasPlayer(function(current){
return current!=player&&get.distance(current,player)<=1;
});
},
content:function(){
var ng=[];
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].group!='unknown'){
ng.add(players[i].group);
}
}
player.$damagepop(ng.length,'unknownx');
player.storage.rebiluan+=ng.length;
player.markSkill('rebiluan');
game.addVideo('storage',player,['rebiluan',player.storage.rebiluan]);
player.addTempSkill('rebiluan2',{player:'phaseUseEnd'});
},
mod:{
globalTo:function(from,to,distance){
if(typeof to.storage.rebiluan=='number'){
return distance+to.storage.rebiluan;
}
}
}
},
rebiluan2:{
mod:{
cardEnabled:function(card){
if(card.name=='sha') return false;
},
},
},
relixia:{
audio:'lixia',
trigger:{global:'phaseJieshuBegin'},
filter:function(event,player){
return event.player.isAlive()&&event.player!=player&&!player.inRangeOf(event.player);
},
forced:true,
content:function(){
'step 0'
player.chooseTarget(function(card,player,target){
return target==player||target==_status.event.source;
},true,'礼下:摸一张牌或令对方摸两张牌').set('ai',function(target){
return get.attitude(player,target);
}).set('source',trigger.player);
'step 1'
if(result.targets.length){
result.targets[0].draw(result.targets[0]==player?1:2);
player.line(result.targets[0],'green');
}
player.storage.rebiluan--;
player.markSkill('rebiluan');
game.addVideo('storage',player,['rebiluan',player.storage.rebiluan]);
}
},
fuji:{
trigger:{global:'damageBegin1'},
filter:function(event){
@ -11800,7 +11921,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return false;
},
filter:function(event,player){
return event.card.name=='sha'&&player.countCards('h')==0;
return event.card&&event.card.name=='sha'&&player.countCards('h')==0;
},
content:function(){
trigger.num++;
@ -17938,9 +18059,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
luanzhan:'乱战',
luanzhan_info:'你使用【杀】或黑色普通锦囊牌可以额外选择X名角色为目标当你使用【杀】或黑色普通锦囊牌指定目标后若此牌的目标角色数小于X则X减至0。X为你于本局游戏内造成过伤害的次数',
zhengnan:'征南',
zhengnan_info:'当其他角色死亡后,你可以摸三张牌。若如此做,你获得下列技能中的任意一个:〖武圣〗、 〖当先〗和〖制蛮〗。',
zhengnan_info:'其他角色死亡后,你可以摸三张牌并获得下列技能中的任意一个:〖武圣〗、 〖当先〗和〖制蛮〗。',
xinzhengnan:'征南',
xinzhengnan_info:'当其他角色死亡后,你可以摸三张牌,或者获得下列技能中的任意一个:〖武圣〗、 〖当先〗和〖制蛮〗(你以此法获得的〖当先〗结算时视为已发动过〖伏枥〗)。',
xinzhengnan_info:'锁定技当一名角色进入濒死状态时若你未因其发动过〖征南〗则你回复1点体力并摸一张牌并获得下列技能中的任意一个:〖武圣〗、 〖当先〗和〖制蛮〗(若技能全部拥有则改为摸三张牌。你以此法获得的〖当先〗结算时视为已发动过〖伏枥〗)。',
xiefang:'撷芳',
xiefang_info:'锁定技,你计算与其他角色的距离时-X。X为女性角色数',
qizhi:'奇制',
@ -18039,6 +18160,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
biluan_info:'摸牌阶段开始时若有与你距离不大于1的其他角色你可以放弃摸牌。若如此做本局内其他角色计算与你的距离时+X。X为势力数',
lixia:'礼下',
lixia_info:'锁定技,其他角色的结束阶段开始时,若你不在其攻击范围内,你摸一张牌或令其摸一张牌。本局内其他角色计算与你的距离时-1。',
rebiluan:'避乱',
rebiluan_info:'出牌阶段开始时若有与你距离不大于1的其他角色你可以令自己与本阶段内不能使用【杀】。若如此做本局内其他角色计算与你的距离时+X。X为势力数',
relixia:'礼下',
relixia_info:'锁定技,其他角色的结束阶段开始时,若你不在其攻击范围内,你摸一张牌或令其摸两张牌。本局内其他角色计算与你的距离时-1。',
yishe:'义舍',
yishe_bg:'米',
yishe_info:'结束阶段开始时若你的武将牌上没有「米」则你可以摸两张牌。若如此做你将两张牌置于武将牌上称为「米」当有「米」移至其他区域后若你的武将牌上没有「米」则你回复1点体力。',
@ -18321,7 +18446,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liji:'力激',
liji_info:'出牌阶段限X次你可以弃置一张牌并对一名其他角色造成1点伤害。X为本回合内进入过弃牌堆的卡牌数除以8若场上人数小于5则改为除以4向下取整',
xinlianji:'连计',
xinlianji_info:'出牌阶段限一次,你可以弃置一张手牌,令其使用牌堆中的一张随机武器牌,然后选择一项:对你指定的一名角色使用【杀】,或将其装备区里的武器牌交给任意角色。',
xinlianji_info:'出牌阶段限一次,你可以弃置一张手牌,令其使用牌堆中的一张随机武器牌,然后选择一项:对你指定的一名角色使用【杀】,或令你将其装备区里的武器牌交给任意角色。',
xinmoucheng:'谋逞',
xinmoucheng_info:'觉醒技准备阶段若你已经发动了3次以上的〖连计〗则你失去〖连计〗并获得〖矜功〗。',
xinjingong:'矜功',

View File

@ -66,7 +66,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhongyao:['male','wei',3,['huomo','zuoding']],
liuchen:['male','shu',4,['zhanjue','qinwang'],['zhu']],
zhangyi:['male','shu',4,['wurong','shizhi']],
sunxiu:['male','wu',3,['yanzhu','xingxue','zhaofu'],['zhu']],
sunxiu:['male','wu',3,['reyanzhu','rexingxue','rezhaofu'],['zhu']],
zhuzhi:['male','wu',4,['xinanguo']],
quancong:['male','wu',4,['yaoming']],
gongsunyuan:['male','qun',4,['huaiyi']],
@ -5967,6 +5967,122 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
},
reyanzhu:{
enable:'phaseUse',
audio:'yanzhu',
usable:1,
filterTarget:lib.filter.notMe,
content:function(){
'step 0'
if(!target.countCards('e')) event._result={bool:false};
else target.chooseCard('e','将一张装备区的牌交给'+get.translation(target)+',或令下一次受到的伤害+1。');
'step 1'
if(result.bool) player.gain(result.cards,'giveAuto',target);
else{
target.addSkill('reyanzhu2');
target.addMark('reyanzhu2',1,false);
}
},
ai:{
order:10,
result:{
target:function(player,target){
if(target.countCards('e',function(card){
return card.name!='tengjia'&&get.value(card)<=0
})) return -0.5;
return -1.5;
},
},
},
},
reyanzhu2:{
trigger:{player:'damageBegin3'},
forced:true,
onremove:true,
content:function(){
trigger.num+=player.countMark('reyanzhu2');
game.log(player,'受到的伤害+'+player.countMark('reyanzhu2'));
player.removeSkill('reyanzhu2');
},
intro:{
content:'下次受到的伤害+#',
},
},
rexingxue:{
trigger:{player:'phaseJieshuBegin'},
direct:true,
audio:'xingxue',
filter:function(event,player){
return player.maxHp>0;
},
content:function(){
'step 0'
player.chooseTarget([1,player.maxHp],get.prompt2('rexingxue')).set('ai',function(target){
var att=get.attitude(player,target);
if(target.countCards('h')==target.hp-1) att*=2;
return att;
});
'step 1'
if(result.bool){
event.targets=result.targets.sortBySeat();
player.logSkill('rexingxue',event.targets);
game.asyncDraw(result.targets);
}
else event.finish();
'step 2'
game.delay();
'step 3'
if(event.targets.length){
event.target=event.targets.shift();
if(event.target.isDead()) event.redo();
}
else event.finish();
'step 4'
if(target.isAlive()&&target.countCards('h')&&target.countCards('h')!=target.hp) target.chooseCard('he',true,'将一张牌置于牌堆顶');
else event.goto(3);
'step 5'
if(result&&result.cards){
event.card=result.cards[0];
target.lose(result.cards,ui.special);
game.log(target,'将',(get.position(event.card)=='h'?'一张牌':get.translation(event.card)),'置于牌堆顶');
game.broadcastAll(function(player){
var cardx=ui.create.card();
cardx.classList.add('infohidden');
cardx.classList.add('infoflip');
player.$throw(cardx,1000,'nobroadcast');
},target);
}
else{
event.card=null;
}
'step 6'
if(event.card){
event.card.fix();
ui.cardPile.insertBefore(event.card,ui.cardPile.firstChild);
game.delay();
}
event.goto(3);
},
},
rezhaofu:{
unique:true,
global:'rezhaofu2',
zhuSkill:true
},
rezhaofu2:{
mod:{
inRangeOf:function(from,to){
if(from.group!='wu') return;
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(from!=players[i]&&to!=players[i]&&
players[i].hasZhuSkill('rezhaofu',from)){
if(players[i].inRange(to)) return true;
}
}
}
}
},
zhaofu:{
unique:true,
global:'zhaofu2',
@ -8472,7 +8588,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
result:{
target:function(player,target){
if(player!=target) return 0;
if(!player.hasSkill('requanji')&&player.countCards('h')+2<=player.hp+player.storage.quanji.length) return 1;
if(player.hasSkill('requanji')||(player.countCards('h')+2<=player.hp+player.storage.quanji.length)) return 1;
return 0;
}
},
@ -11485,6 +11601,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xingxue_info:'结束阶段开始时你可以令至多X名角色依次摸一张牌并将一张牌置于牌堆顶X为你的体力值若你已失去技能〖宴诛〗则将X改为你的体力上限。',
zhaofu:'诏缚',
zhaofu_info:'主公技锁定技你距离为1的角色视为在其他吴势力角色的攻击范围内。',
reyanzhu:'宴诛',
reyanzhu2:'宴诛',
reyanzhu_info:'出牌阶段限一次,你可以令一名其他角色选择一项:交给你装备区里的一张牌,或令下一次受到的伤害+1。',
rexingxue:'兴学',
rexingxue_info:'结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力上限。',
rezhaofu:'诏缚',
rezhaofu_info:'主公技,锁定技,你攻击范围内的角色视为在其他吴势力角色的攻击范围内。',
wurong:'怃戎',
wurong_info:'出牌阶段限一次你可以令一名其他角色与你同时展示一张手牌若你展示的是【杀】且该角色展示的不是【闪】则你弃置此【杀】并对其造成1点伤害若你展示的不是【杀】且该角色展示的是【闪】则你弃置你展示的牌并获得其一张牌',
shizhi:'矢志',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.100.1.1',
'v1.9.100.2',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -3036,12 +3036,14 @@ window.noname_asset_list=[
'image/character/ol_pangtong.jpg',
'image/character/key_yui.jpg',
'image/character/key_tsumugi.jpg',
'image/character/key_yoshino.jpg','image/character/gaolan.jpg',
'image/character/key_yoshino.jpg',
'image/character/gaolan.jpg',
'image/character/key_harukakanata.jpg',
'image/character/key_saya.jpg',
'image/character/sp_shenpei.jpg',
'image/character/sp_zhanghe.jpg',
'image/character/xunchen.jpg','image/character/key_inari.jpg',
'image/character/xunchen.jpg',
'image/character/key_inari.jpg',
'image/character/key_shiina.jpg',
'image/character/ns_chendao.jpg',
'image/character/ol_zhangliao.jpg',
@ -3072,7 +3074,8 @@ window.noname_asset_list=[
'image/character/shen_caopi.jpg',
'image/character/shen_zhenji.jpg',
'image/character/yangyi.jpg',
'image/character/yujin_yujin.jpg', 'image/character/key_hinata.jpg',
'image/character/yujin_yujin.jpg',
'image/character/key_hinata.jpg',
'image/character/key_hisako.jpg',
'image/character/key_noda.jpg',
'image/character/key_ayato.jpg',
@ -3082,13 +3085,17 @@ window.noname_asset_list=[
'image/character/key_yuzuru.jpg',
'image/character/old_wangyun.jpg',
'image/character/old_zhaoyun.jpg',
'image/character/sp_key_kanade.jpg','image/character/key_mio.jpg',
'image/character/sp_key_kanade.jpg',
'image/character/key_mio.jpg',
'image/character/re_handang.jpg',
'image/character/re_zhonghui.jpg',
'image/character/xin_chengpu.jpg',
'image/character/key_midori.jpg',
'image/character/dengzhi.jpg',
'image/character/zhengxuan.jpg',
'image/character/key_kyoko.jpg',
'image/character/key_shizuru.jpg',
'image/character/ol_sunjian.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -14677,6 +14677,7 @@
event.num=num;
if(num<=0){
event.trigger('damageZero');
delete event.filterStop;
event.finish();
event._triggered=null;
}
@ -18673,6 +18674,7 @@
next.filterStop=function(){
if(this.source&&this.source.isDead()) delete this.source;
if(this.num<=0){
delete this.filterStop;
this.trigger('damageZero');
this._triggered=null;
return true;
@ -30905,7 +30907,7 @@
else if(info.enable=='phaseUse') enable=(event.type=='phase');
else if(typeof info.enable=='string') enable=(info.enable==event.name);
if(enable){
if(info.noHidden&&!game.expandSkills(player.getSkills()).contains(skills2[i])) enable=false;
if(!game.expandSkills(player.getSkills()).contains(skills2[i])&&(info.noHidden||player.hasSkillTag('nomingzhi',false,null,true))) enable=false;
if(info.filter&&!info.filter(event,player)) enable=false;
if(info.viewAs&&typeof info.viewAs!='function'&&event.filterCard&&!event.filterCard(info.viewAs,player,event)) enable=false;
if(info.viewAs&&typeof info.viewAs!='function'&&info.viewAsFilter&&info.viewAsFilter(player)==false) enable=false;

View File

@ -1,25 +1,24 @@
window.noname_update={
version:'1.9.100.1.1',
update:'1.9.100.1',
version:'1.9.100.2',
update:'1.9.100.1.1',
changeLog:[
'郑玄',
'bug修复',
'庆祝Summer Pockets REFLECTION BLUE发售',
],
files:[
//'card/extra.js',
//'card/huanlekapai.js',
//'card/sp.js',
//'card/standard.js',
'card/standard.js',
//'card/swd.js',
//'card/mtg.js',
//'card/gujian.js',
//'card/guozhan.js',
'card/guozhan.js',
//'card/gwent.js',
//'card/yunchou.js',
//'card/zhenfa.js',
//'card/zhulu.js',
'character/diy.js',
//'character/extra.js',
'character/extra.js',
//'character/hearth.js',
//'character/gujian.js',
//'character/gwent.js',
@ -27,30 +26,30 @@ window.noname_update={
'character/mobile.js',
//'character/mtg.js',
//'character/old.js',
//'character/refresh.js',
//'character/shenhua.js',
'character/refresh.js',
'character/shenhua.js',
'character/sp.js',
//'character/tw.js',
//'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
//'character/yijiang.js',
'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
//'layout/default/layout.css',
//'layout/nova/layout.css',
//'mode/identity.js',
//'mode/doudizhu.js',
//'mode/guozhan.js',
'mode/guozhan.js',
//'mode/chess.js',
//'mode/tafang.js',
//'mode/single.js',
//'mode/stone.js',
//'mode/brawl.js',
//'mode/versus.js',
//'mode/boss.js',
//'game/game.js',
'mode/boss.js',
'game/game.js',
//'game/NoSleep.js',
//'game/config.js',
//'game/package.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

View File

@ -2112,10 +2112,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
'step 0'
event.target=trigger.player;
var list=[];
if(player.countCards('he')>0) list.push('交给其一张牌');
if(player.countCards('he')>1) list.push('交给其一张牌');
if(trigger.player.countCards('he')>0) list.push('令其交给你一张牌');
event.list=list;
player.chooseControl('cancel2').set('choiceList',list).set('prompt',get.prompt('shanrangzhaoshu',trigger.player));
player.chooseControl('cancel2').set('choiceList',list).set('prompt',get.prompt('shanrangzhaoshu',trigger.player)).set('ai',function(){
if(get.attitude(_status.event.player,_status.event.getTrigger().player)<0) return _status.event.getParent().list.length-1;
return 'cancel2';
});
'step 1'
if(result.control=='cancel2'){
event.finish();return;
@ -2126,7 +2129,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
event.target=player;
}
'step 2'
player.chooseCard('he',true);
player.chooseCard('he',true).set('filterCard',function(card,player){
if(player!=_status.event.getTrigger().player) return card!=player.getEquip('shanrangzhaoshu');
return true;
});
'step 3'
if(result.cards&&result.cards.length) target.gain(result.cards,player,'giveAuto');
},

View File

@ -1726,7 +1726,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
filter:function(event,player){
return !event.numFixed;
},
silent:true,
forced:true,
popup:false,
content:function(){
trigger.num+=3;
}
@ -7990,11 +7991,16 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
dieAfter2:function(source){
if(source&&source.shijun){
source.discard(source.getCards('he'));
delete source.shijun;
source.discard(source.getCards('he'));
delete source.shijun;
}
else if(source&&source.identity!='unknown'){
if(source.identity=='ye') source.draw(3);
else if(source.shijun2){
source.draw(1+game.countPlayer(function(current){
return current.group==this.group
}));
}
else if(this.identity=='ye') source.draw(1);
else if(this.identity!=source.identity) source.draw(get.population(this.identity)+1);
else source.discard(source.getCards('he'));
@ -8004,6 +8010,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
this.showCharacter(2);
if(get.is.jun(this.name1)){
if(source&&source.identity==this.identity) source.shijun=true;
else if(source&&source.identity!='ye') source.shijun2=true;
var yelist=[];
for(var i=0;i<game.players.length;i++){
if(game.players[i].identity==this.identity){