どすこい

This commit is contained in:
Spmario233 2020-11-17 16:21:06 +08:00
parent 90ce65ea4a
commit 48fb28ec84
16 changed files with 597 additions and 533 deletions

View File

@ -6,7 +6,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connectBanned:['diy_tianyu','diy_yangyi','diy_lukang','ns_huamulan','ns_yuji','ns_duangui','ns_liuzhang','key_yuu'],
character:{
sp_key_yuri:['female','qun',4,['mubing','ziqu','diaoling']],
ns_zhangwei:['female','wei',3,['nsqiyue','nsxuezhu']],
ns_zhangwei:['female','shu',3,['nsqiyue','nsxuezhu']],
ns_chendao:['male','shu',4,['nsjianglie']],
yj_caoang:['male','wei',4,['yjxuepin']],
diy_wenyang:['male','wei','4/6',['lvli','choujue']],
@ -62,6 +62,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_ryoichi:['male','key',4,['ryoichi_baoyi','ryoichi_tuipi']],
key_kotori:['female','key',3,['kotori_yumo','kotori_huazhan']],
key_jojiro:['male','key',4,['jojiro_shensu','jojiro_shunying']],
key_shiroha:['female','key',3,['shiroha_yuzhao','shiroha_guying','shiroha_jiezhao']],
key_kud:['female','key',3,['kud_qiaoshou','kud_buhui']],
key_misuzu:['female','key',3,['misuzu_hengzhou','misuzu_nongyin','misuzu_zhongxing']],
@ -135,6 +136,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
// ns_lisu:['male','qun',3,[]],
// ns_sunhao:['male','qun',3,[]],
ns_xinnanhua:['male','qun',3,['ns_xiandao','ns_xiuzheng','ns_chuanshu'],[]],
ns_caimao:['male','qun',4,['nsdingzhou']],
old_jiakui:['male','wei',4,['tongqu','xinwanlan']],
ol_guohuai:['male','wei',3,['rejingce']],
@ -165,9 +167,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_yijiang:["key_kud","key_misuzu","key_kamome","key_nao",
"ns_huangchengyan","ns_sunchensunjun","ns_yuanxi","ns_caoshuang"],
diy_tieba:["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"],
diy_fakenews:["diy_wenyang","ns_zhangwei"],
diy_fakenews:["diy_wenyang","ns_zhangwei","ns_caimao"],
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_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","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan","key_yuu","key_ryoichi","key_kotori","key_jojiro"],
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","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","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan","key_yuu","key_ryoichi","key_kotori","key_jojiro","key_shiroha"],
diy_yongjian:["ns_chendao","yj_caoang"],
diy_trashbin:['old_jiakui','ol_guohuai','junk_zhangrang'],
},
@ -184,6 +186,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
},
characterTitle:{
key_shiroha:'#bSummer Pockets',
key_jojiro:'#bCharlotte<br>战棋专属角色',
key_kotori:'#bRewrite',
key_ryoichi:'#bSummer Pockets',
@ -244,6 +247,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ns_yuanxi:'#g食茸二十四',
ns_caoshuang:'#g荬庀芬兰',
ns_caimao:'#gP尔号玩家◆',
diy_wenyang:'#g最粗的梦想XD',
ns_zuoci:'#bskystarwuwei',
ns_lvzhi:'#bskystarwuwei',
@ -341,6 +345,241 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_lucia:['key_shizuru'],
},
skill:{
shiroha_yuzhao:{
trigger:{
global:'gameDrawAfter',
player:'enterGame',
},
forced:true,
charlotte:true,
content:function(){
player.markAuto('shiroha_yuzhao',game.cardsGotoSpecial(get.cards(game.countGroup())).cards);
},
marktext:'兆',
intro:{
onunmark:function(storage,player){
if(storage&&storage.length){
player.$throw(storage,1000);
game.cardsDiscard(storage);
game.log(storage,'被置入了弃牌堆');
storage.length=0;
}
},
mark:function(dialog,content,player){
if(content&&content.length){
if(player==game.me||player.isUnderControl()){
dialog.addAuto(content);
}
else{
return '共有'+get.cnNumber(content.length)+'张牌';
}
}
},
content:function(content,player){
if(content&&content.length){
if(player==game.me||player.isUnderControl()){
return get.translation(content);
}
return '共有'+get.cnNumber(content.length)+'张牌';
}
}
},
group:'shiroha_yuzhao_umi',
},
shiroha_yuzhao_umi:{
trigger:{global:'phaseBegin'},
forced:true,
filter:function(event,player){
return player.getStorage('shiroha_yuzhao').length>0&&get.distance(event.player,player)<=1;
},
content:function(){
'step 0'
event.num=game.countGroup();
player.markAuto('shiroha_yuzhao',game.cardsGotoSpecial(get.cards(event.num)).cards);
if(window.decadeUI&&!_status.connectMode) event.goto(3);
'step 1'
player.chooseButton(['将'+get.cnNumber(num)+'张牌置于牌堆顶(先选择的在上)',player.getStorage('shiroha_yuzhao')],true,num).set('ai',function(button){
var player=_status.event.player;
var next=_status.event.getTrigger().player;
var att=get.attitude(player,next);
var card=button.link;
var judge=next.getCards('j')[ui.selected.buttons.length];
if(judge){
return get.judge(judge)(card)*att;
}
return get.value(card)*att;
});
'step 2'
player.unmarkAuto('shiroha_yuzhao',result.links);
while(result.links.length){
ui.cardPile.insertBefore(result.links.pop().fix(),ui.cardPile.firstChild);
}
game.updateRoundNumber();
event.finish();
'step 3'
'短鸽自己八成不会写,我先写好算了';
var cards=player.getStorage('shiroha_yuzhao');
var yuzhao=decadeUI.content.chooseGuanXing(player,cards,cards.length,null,num);
yuzhao.caption='【预兆】';
yuzhao.header1='预兆';
yuzhao.header2='牌堆顶';
yuzhao.tip='将'+num+'张牌置于牌堆顶<br>'+yuzhao.tip;
yuzhao.callback=function(){
return this.cards[1].length==num;
};
event.switchToAuto=function(){
var cheats=[];
var cards=yuzhao.cards[0].slice(0);
var stopped=false;
var next=trigger.player;
var hasFriend=get.attitude(player,next)>0;
var judges=next.node.judges.childNodes;
if(judges.length>0) cheats=decadeUI.get.cheatJudgeCards(cards,judges,hasFriend);
if(hasFriend){
cards=cards.sort(function(b,a){
return get.value(b,next)-get.value(a,next);
});
}
else{
cards.sort(function(a,b){
return get.value(b,next)-get.value(a,next);
});
}
cards=cheats.concat(cards);
var time=500;
var gainNum=num;
for(var i=cards.length-1;i>=0;i--){
setTimeout(function(card,index,finished,moveDown){
yuzhao.move(card,index,moveDown?1:0);
if(finished) yuzhao.finishTime(1000);
},time,cards[i],i,i==0,gainNum>0);
time += 500;
gainNum--;
}
};
if(!event.isMine()){
event.switchToAuto();
}
'step 4'
var cards=event.cards2;
if(event.result&&event.result.bool){
player.unmarkAuto('shiroha_yuzhao',cards);
var first=ui.cardPile.firstChild;
while(cards.length){
ui.cardPile.insertBefore(cards.pop().fix(),ui.cardPile.firstChild);
}
}
game.updateRoundNumber();
},
},
shiroha_guying:{
derivation:'shiroha_guying_rewrite',
trigger:{
player:'damageBegin3',
source:'damageBegin1',
},
direct:true,
filter:function(event,player,name){
if(name=='damageBegin3') return true;
if(!player.storage.shiroha_jiezhao&&player.hasSkill('shiroha_guying_temp')) return false;
return player!=event.player;
},
content:function(){
'step 0'
var num=event.triggername=='damageBegin3'?-1:1;
event.num=num;
if(player.storage.shiroha_jiezhao||!player.hasSkill('shiroha_guying')){
if(num>0) player.chooseBool(get.prompt('shiroha_guying',trigger.player),'进行判定。若判定结果为黑色,则即将对其造成的伤害+1');
else player.chooseBool(get.prompt('shiroha_guying'),'进行判定。若判定结果为红色,则即将受到的伤害-1');
}
else event._result={bool:true};
'step 1'
if(result.bool){
player.addTempSkill('shiroha_guying_temp');
player.judge(function(card){
return (get.color(card)==(_status.event.getParent('shiroha_guying').num>0?'black':'red'))?2:0;
});
}
else event.finish();
'step 2'
if(result.bool) trigger.num+=num;
},
},
shiroha_guying_temp:{},
shiroha_jiezhao:{
trigger:{global:'judge'},
direct:true,
filter:function(event,player){
return player.getStorage('shiroha_yuzhao').length&&event.player.isAlive();
},
content:function(){
"step 0"
var list=player.storage.shiroha_yuzhao;
player.chooseButton([get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+get.translation(trigger.player.judging[0])+
''+get.prompt('shiroha_jiezhao'),list,'hidden'],function(button){
var card=button.link;
var trigger=_status.event.getTrigger();
var player=_status.event.player;
var judging=_status.event.judging;
var result=trigger.judge(card)-trigger.judge(judging);
var attitude=get.attitude(player,trigger.player);
return result*attitude;
}).set('judging',trigger.player.judging[0]).set('filterButton',function(button){
var player=_status.event.player;
var card=button.link;
var mod2=game.checkMod(card,player,'unchanged','cardEnabled2',player);
if(mod2!='unchanged') return mod2;
var mod=game.checkMod(card,player,'unchanged','cardRespondable',player);
if(mod!='unchanged') return mod;
return true;
});
"step 1"
if(result.bool){
event.forceDie=true;
player.respond(result.links,'shiroha_jiezhao','highlight','noOrdering');
result.cards=result.links;
player.unmarkAuto('shiroha_yuzhao',result.cards);
if(!player.storage.shiroha_yuzhao.length){
player.storage.shiroha_jiezhao=true;
player.gainMaxHp();
player.recover();
var list=['umi_chaofan','ao_xishi','tsumugi_mugyu','kamome_jieban'];
var skill=list.randomGet();
player.addSkillLog(skill);
player.flashAvatar('shiroha_jiezhao','key_'+skill.split('_')[0])
}
}
else{
event.finish();
}
"step 2"
if(result.bool){
if(trigger.player.judging[0].clone){
trigger.player.judging[0].clone.classList.remove('thrownhighlight');
game.broadcast(function(card){
if(card.clone){
card.clone.classList.remove('thrownhighlight');
}
},trigger.player.judging[0]);
game.addVideo('deletenode',player,get.cardsInfo([trigger.player.judging[0].clone]));
}
game.cardsDiscard(trigger.player.judging[0]);
trigger.player.judging[0]=result.cards[0];
trigger.orderingCards.addArray(result.cards);
game.log(trigger.player,'的判定牌改为',result.cards[0]);
game.delay(2);
}
},
ai:{
rejudge:true,
tag:{
rejudge:0.6
}
},
derivation:['umi_chaofan','ao_xishi','tsumugi_mugyu','kamome_jieban'],
},
jojiro_shensu:{
group:['jojiro_shensu1','jojiro_shensu2','jojiro_shensu4'],
charlotte:true,
@ -520,9 +759,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
kotori_skill_wei:{
trigger:{player:'phaseBegin'},
direct:true,
filter:function(event,player){
return player.countCards('he')>0;
},
filter:function(event,player){
return player.countCards('he')>0;
},
content:function(){
'step 0'
player.chooseCardTarget({
@ -997,10 +1236,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.storage.zhibi.addArray(game.players);
},
ai:{
viewHandcard:true,
skillTagFilter:function(player,tag,arg){
if(player==arg) return false;
},
viewHandcard:true,
skillTagFilter:function(player,tag,arg){
if(player==arg) return false;
},
},
},
abyusa_dunying:{
@ -1241,10 +1480,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
miki_binoculars:{
locked:true,
ai:{
viewHandcard:true,
skillTagFilter:function(player,tag,arg){
if(player==arg) return false;
},
viewHandcard:true,
skillTagFilter:function(player,tag,arg){
if(player==arg) return false;
},
},
},
kud_qiaoshou:{
@ -2723,18 +2962,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
prompt:'是否交给一名其他角色两张牌?',
position:'he',
ai1:function(card){
var player=_status.event.player;
if(player.maxHp-player.hp==1&&card.name=='du') return 30;
var check=player.countCards('h')-2;
if(check<1) return 0;
if(player.hp>1&&check<2) return 0;
return get.unuseful(card)+9;
},
ai2:function(target){
var att=get.attitude(_status.event.player,target);
if(ui.selected.cards.length==1&&ui.selected.cards[0].name=='du') return 1-att;
return att-2;
},
var player=_status.event.player;
if(player.maxHp-player.hp==1&&card.name=='du') return 30;
var check=player.countCards('h')-2;
if(check<1) return 0;
if(player.hp>1&&check<2) return 0;
return get.unuseful(card)+9;
},
ai2:function(target){
var att=get.attitude(_status.event.player,target);
if(ui.selected.cards.length==1&&ui.selected.cards[0].name=='du') return 1-att;
return att-2;
},
});
}
'step 2'
@ -2981,73 +3220,73 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else{
var targets=game.players.slice(0);
var info=get.info(card);
var range;
if(!info.notarget){
var select=get.copy(info.selectTarget);
if(select==undefined){
range=[1,1];
}
else if(typeof select=='number') range=[select,select];
else if(get.itemtype(select)=='select') range=select;
else if(typeof select=='function') range=select(card,player);
game.checkMod(card,target,range,'selectTarget',target);
}
if(info.notarget||range[1]==-1){
if(range[1]==-1){
for(var i=0;i<targets.length;i++){
if(!target.canUse(card,targets[i])){
targets.splice(i--,1);
}
}
if(targets.length){
event.targets2=targets;
}
else{
event.finish();
return;
}
}
else event.targets2=[];
var next=player.chooseBool();
next.set('prompt',event.prompt||('是否令'+get.translation(target)+(event.targets2.length?'对':'')+get.translation(event.targets2)+'使用'+get.translation(card)+'?'));
next.set('prompt2','或点「取消」,令其将此牌置入弃牌堆');
next.ai=function(){
var eff=0;
for(var i=0;i<event.targets2.length;i++){
eff+=get.effect(event.targets2[i],card,target,player);
}
return eff>0;
};
}
else{
var next=player.chooseTarget();
next.set('_get_card',card);
next.set('source',target);
next.set('filterTarget',function(card,player,target){
return lib.filter.filterTarget(_status.event._get_card,_status.event.source,target);
});
next.set('ai',function(target){
var evt=_status.event;
return get.effect(target,evt._get_card,evt.source,evt.player)
});
next.set('selectTarget',function(){
var card=get.card(),player=_status.event.source;
if(card==undefined) return;
var range;
var select=get.copy(get.info(card).selectTarget);
if(select==undefined){
if(get.info(card).filterTarget==undefined) return[0,0];
range=[1,1];
}
else if(typeof select=='number') range=[select,select];
else if(get.itemtype(select)=='select') range=select;
else if(typeof select=='function') range=select(card,player);
game.checkMod(card,player,range,'selectTarget',player);
return range;
});
next.set('prompt',event.prompt||('选择'+get.translation(target)+'使用'+get.translation(card)+'的目标'));
next.set('prompt2','或点「取消」令其将此牌置入弃牌堆');
}
var range;
if(!info.notarget){
var select=get.copy(info.selectTarget);
if(select==undefined){
range=[1,1];
}
else if(typeof select=='number') range=[select,select];
else if(get.itemtype(select)=='select') range=select;
else if(typeof select=='function') range=select(card,player);
game.checkMod(card,target,range,'selectTarget',target);
}
if(info.notarget||range[1]==-1){
if(range[1]==-1){
for(var i=0;i<targets.length;i++){
if(!target.canUse(card,targets[i])){
targets.splice(i--,1);
}
}
if(targets.length){
event.targets2=targets;
}
else{
event.finish();
return;
}
}
else event.targets2=[];
var next=player.chooseBool();
next.set('prompt',event.prompt||('是否令'+get.translation(target)+(event.targets2.length?'对':'')+get.translation(event.targets2)+'使用'+get.translation(card)+'?'));
next.set('prompt2','或点「取消」,令其将此牌置入弃牌堆');
next.ai=function(){
var eff=0;
for(var i=0;i<event.targets2.length;i++){
eff+=get.effect(event.targets2[i],card,target,player);
}
return eff>0;
};
}
else{
var next=player.chooseTarget();
next.set('_get_card',card);
next.set('source',target);
next.set('filterTarget',function(card,player,target){
return lib.filter.filterTarget(_status.event._get_card,_status.event.source,target);
});
next.set('ai',function(target){
var evt=_status.event;
return get.effect(target,evt._get_card,evt.source,evt.player)
});
next.set('selectTarget',function(){
var card=get.card(),player=_status.event.source;
if(card==undefined) return;
var range;
var select=get.copy(get.info(card).selectTarget);
if(select==undefined){
if(get.info(card).filterTarget==undefined) return[0,0];
range=[1,1];
}
else if(typeof select=='number') range=[select,select];
else if(get.itemtype(select)=='select') range=select;
else if(typeof select=='function') range=select(card,player);
game.checkMod(card,player,range,'selectTarget',player);
return range;
});
next.set('prompt',event.prompt||('选择'+get.translation(target)+'使用'+get.translation(card)+'的目标'));
next.set('prompt2','或点「取消」令其将此牌置入弃牌堆');
}
}
}
else event.finish();
@ -3272,10 +3511,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{
respondSha:true,
skillTagFilter:function(player){
return player.countCards('he',function(card){
return get.type(card)!='basic';
})>0;
},
return player.countCards('he',function(card){
return get.type(card)!='basic';
})>0;
},
},
},
hinata_qiulve_clear:{
@ -3530,21 +3769,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
group:'yuiko_dilve_gain',
subSkill:{
gain:{
trigger:{
player:['chooseToCompareAfter','compareMultipleAfter'],
target:['chooseToCompareAfter','compareMultipleAfter']
},
filter:function(event,player){
if(event.preserve) return false;
return [event.card1,event.card2].filterInD('od').length>0;
},
prompt2:function(event,player){
return '获得'+get.translation([event.card1,event.card2].filterInD('od'));
},
content:function(){
player.gain([trigger.card1,trigger.card2].filterInD('od'),'gain2','log');
}
gain:{
trigger:{
player:['chooseToCompareAfter','compareMultipleAfter'],
target:['chooseToCompareAfter','compareMultipleAfter']
},
filter:function(event,player){
if(event.preserve) return false;
return [event.card1,event.card2].filterInD('od').length>0;
},
prompt2:function(event,player){
return '获得'+get.translation([event.card1,event.card2].filterInD('od'));
},
content:function(){
player.gain([trigger.card1,trigger.card2].filterInD('od'),'gain2','log');
}
},
},
},
@ -3739,10 +3978,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.player==player) return false;
if(player!=event.respondTo[0]) return false;
if(!player.hasSkill('sasami_funan_jiexun')){
var cards=[]
if(get.itemtype(event.respondTo[1])=='card') cards.push(event.respondTo[1]);
else if(event.respondTo[1].cards) cards.addArray(event.respondTo[1].cards);
return cards.filterInD('od').length>0;
var cards=[]
if(get.itemtype(event.respondTo[1])=='card') cards.push(event.respondTo[1]);
else if(event.respondTo[1].cards) cards.addArray(event.respondTo[1].cards);
return cards.filterInD('od').length>0;
}
else return event.cards.filterInD('od').length>0;
},
@ -3751,9 +3990,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
if(!player.hasSkill('sasami_funan_jiexun')){
var cards=[]
if(get.itemtype(trigger.respondTo[1])=='card') cards.push(trigger.respondTo[1]);
else if(trigger.respondTo[1].cards) cards.addArray(trigger.respondTo[1].cards);
cards=cards.filterInD('od');
if(get.itemtype(trigger.respondTo[1])=='card') cards.push(trigger.respondTo[1]);
else if(trigger.respondTo[1].cards) cards.addArray(trigger.respondTo[1].cards);
cards=cards.filterInD('od');
trigger.player.gain(cards,'gain2','log');
trigger.player.addTempSkill('sasami_funan_use');
if(!trigger.player.storage.sasami_funan_use){
@ -5992,9 +6231,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.result.skill='nsdaizhan';
},
ai:{
result:{
target:1,
},
result:{
target:1,
},
},
};
},
@ -6445,29 +6684,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
ns_chuanshu:{
audio:["xingshuai",2],
trigger:{
global:"dying",
},
priority:8,
unique:true,
skillAnimation:true,
animationColor:"water",
filter:function (event,player){
return event.player.hp<=0&&event.player!=player;
},
check:function (event,player){
return get.attitude(player,event.player)>0;
},
logTarget:"player",
content:function (){
audio:["xingshuai",2],
trigger:{
global:"dying",
},
priority:8,
unique:true,
skillAnimation:true,
animationColor:"water",
filter:function (event,player){
return event.player.hp<=0&&event.player!=player;
},
check:function (event,player){
return get.attitude(player,event.player)>0;
},
logTarget:"player",
content:function (){
'step 0'
trigger.player.chooseControl('releiji','guidao').set('prompt',''+get.translation(trigger.player)+'获得一项技能');
goon=true;
if(!goon){
event.finish();
}
'step 1'
if(!goon){
event.finish();
}
'step 1'
trigger.player.addSkillLog(result.control);
trigger.player.recover(1-trigger.player.hp);
trigger.player.draw(2);
@ -9695,7 +9934,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
jugong:{
jugong:{
audio:["jingong",2],
trigger:{
global:"damageEnd",
@ -11063,6 +11302,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
threaten:1.3
},
nsdingzhou:{
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
return target!=player&&target.countCards('hej')>0;
},
content:function(){
'step 0'
var card=target.getCards('hej').randomGet();
event.card=card;
player.gain(card,target,'giveAuto','bySelf');
player.draw();
'step 1'
if(Array.isArray(result)&&get.color(card)!=get.color(result[0])) player.loseHp();
},
ai:{
order:7,
result:{target:-1},
},
},
},
dynamicTranslate:{
nsjiquan:function(player){
@ -11093,6 +11352,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.storage.kamome_jieban) return '转换技。每回合限一次,当你受到或造成伤害后,阴:你可将两张牌交给一名其他角色,然后其交给你一张牌。<span class="bluetext">阳:你可将一张牌交给一名其他角色,然后其交给你两张牌。</span>';
return '转换技。每回合限一次,当你受到或造成伤害后,<span class="bluetext">阴:你可将两张牌交给一名其他角色,然后其交给你一张牌。</span>阳:你可将一张牌交给一名其他角色,然后其交给你两张牌。';
},
shiroha_guying:function(player){
var str='当你受到伤害/对其他角色造成伤害时,你';
if(!player.storage.shiroha_jiezhao) str='锁定技,每回合限一次,'+str;
if(player.storage.shiroha_jiezhao) str+='可';
str+='进行判定。若结果为红色/黑色,此伤害-1/+1。';
return str;
},
},
translate:{
diy_liufu:'刘馥',
@ -11213,6 +11479,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_ryoichi:'三谷良一',
key_kotori:'神户小鸟',
key_jojiro:'高城丈士朗',
key_shiroha:'鸣濑白羽',
lucia_duqu:'毒躯',
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
lucia_zhenren:'振刃',
@ -11496,6 +11763,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jojiro_shensu4:'神速',
jojiro_shunying:'瞬影',
jojiro_shunying_info:'锁定技回合结束时若你本回合内跳过了阶段则你选择一项1.失去1点体力。2.移动至多X格并摸X张牌X为你本回合内跳过的阶段数。',
shiroha_yuzhao:'预兆',
shiroha_yuzhao_umi:'预兆',
shiroha_yuzhao_info:'锁定技游戏开始时你将牌堆顶的X张牌扣置于你的武将牌上称为「兆」。一名角色的回合开始时若你有「兆」且其至你的距离不大于1则你将牌堆顶的X张牌扣置为「兆」然后将等量的「兆」置于牌堆顶。X为势力数',
shiroha_guying:'孤影',
shiroha_guying_info:'锁定技,每回合限一次,当你受到伤害/对其他角色造成伤害时,你进行判定。若结果为红色/黑色,此伤害-1/+1。',
shiroha_guying_rewrite:'孤影·改',
shiroha_guying_rewrite_info:'当你受到伤害/对其他角色造成伤害时,你可进行判定。若结果为红色/黑色,此伤害-1/+1。',
shiroha_jiezhao:'解兆',
shiroha_jiezhao_info:'一名角色的判定牌生效前你可打出一张「兆」代替之。当你以此法移去最后一张「兆」后你加1点体力上限并回复1点体力然后修改〖孤影〗并随机获得以下技能中的一个〖炒饭〗/〖习事〗/〖呣啾〗/〖结伴〗。',
key_kud:'库特莉亚芙卡',
kud_qiaoshou:'巧手',
@ -11801,6 +12077,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
junktaoluan5:'滔乱',
junktaoluan_backup:'滔乱',
junktaoluan_info:'你可将一张牌当做任意一张基本牌或普通锦囊牌使用此牌不得是本局游戏你以此法使用过的牌且每回合每种花色限一次然后你令一名其他角色选择一项1.交给你一张与“滔乱”声明的牌类别不同的牌2.本回合“滔乱”失效且回合结束时你失去1点体力。',
ns_caimao:'蔡瑁',
nsdingzhou:'定州',
nsdingzhou_info:'出牌阶段限一次你可以选择一名区域内有牌的其他角色。你随机获得其区域内的一张牌然后摸一张牌。若你以此法获得了两张颜色不同的牌则你失去1点体力。',
diy_tieba:'吧友设计',
diy_default:'常规',
diy_key:'论外',

View File

@ -811,6 +811,7 @@ window.noname_character_rank={
'key_kamome',
'key_noda',
'key_shiina',
'key_shiroha',
],
epic:[
'pal_yueqi',

View File

@ -2271,9 +2271,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
else{
event.localPlayer=true;
player.chooseCard(true).set('glow_result',true).ai=function(){
var hasShan=!target.countCards('h','shan');
player.chooseCard(true).set('glow_result',true).ai=function(card){
if(hasShan&&get.name(card)=='sha') return 1;
return Math.random();
};
}
}
if(target.isOnline()){
target.wait(sendback);

View File

@ -1547,7 +1547,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var num=Math.min(5,player.countCards('h',function(cardx){
return (name=='neifa_basic')!=(get.type(cardx,player)=='basic')
}));
player.addMark(name,num,false);
if(num>0) player.addMark(name,num,false);
}
},
ai:{
@ -1838,7 +1838,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
trigger:{global:'phaseJieshuBegin'},
filter:function(event,player){
return event.player!=player&&(event.player.hp>player.hp||event.player.countUsed('sha'))
return event.player!=player&&(event.player.hp>player.hp||event.player.getHistory('useCard',function(card){
return card.name=='sha';
}).length>0);
},
direct:true,
content:function(){
@ -1847,6 +1849,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
next.set('openskilldialog',get.prompt2('niluan'));
next.set('norestore',true);
next.set('_backupevent','niluanx');
next.set('custom',{
add:{},
replace:{window:function(){}}
});
next.backup('niluanx');
},
},
@ -8720,7 +8726,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){
if(!player.countCards(player.hasSkill('fenxin_nei')?'he':'h',function(card){
if(_status.connectMode&&get.position(card)=='h') return true;
return get.color(card)=='black';
return get.color(card)=='red';
})) return false;
return event.source&&(event.source.hp>=player.hp||player.hasSkill('fenxin_zhong'))&&player!=event.source;
},
@ -9140,6 +9146,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
next.set('openskilldialog','默识:将一张手牌当'+get.translation(card)+'使用');
next.set('norestore',true);
next.set('_backupevent','mozhix');
next.set('custom',{
add:{},
replace:{window:function(){}}
});
next.backup('mozhix');
}
}

View File

@ -852,7 +852,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
audioname:['sp_key_yuri'],
trigger:{player:'phaseUseBegin'},
direct:true,
//direct:true,
frequent:true,
filter:function(event,player){
return player.countCards('he')>0;
},
@ -4918,6 +4919,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
next.set('openskilldialog',get.prompt2('xinfu_sidao'));
next.set('norestore',true);
next.set('_backupevent','xinfu_sidaox');
next.set('custom',{
add:{},
replace:{window:function(){}}
});
next.backup('xinfu_sidaox');
},
},

View File

@ -5024,8 +5024,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!map[id]) map[id]={};
if(!map[id].extraDamage) map[id].extraDamage=0;
map[id].extraDamage++;
player.judge(function(card){
if(get.color(card)=='red') return 1;
trigger.target.judge(function(card){
if(get.color(card)=='red') return -1;
return 0;
});
}

View File

@ -2775,6 +2775,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
next.set('openskilldialog','妙笔:将一张手牌当'+get.translation(card)+'使用');
next.set('norestore',true);
next.set('_backupevent','miaobix');
next.set('custom',{
add:{},
replace:{window:function(){}}
});
next.backup('miaobix');
}
}

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.105.9.1',
'v1.9.105.10',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -3445,6 +3445,8 @@ window.noname_asset_list=[
'image/character/xin_baosanniang.jpg',
'image/character/key_jojiro.jpg',
'image/character/junk_zhangrang.jpg',
'image/character/key_shiroha.jpg',
'image/character/ns_caimao.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -33917,7 +33917,7 @@
create:{
rarity:function(button){
var rarity=game.getRarity(button.link);
if(rarity!='common'){
if(rarity!='common'&&lib.config.show_rarity){
var intro=button.node.intro;
intro.classList.add('showintro');
intro.style.fontFamily='yuanli';
@ -33932,6 +33932,13 @@
}
intro.innerHTML=get.translation(rarity);
}
if((button.link=='xushu'||button.link=='xin_xushu')&&button.node&&button.node.name&&button.node.group){
if(button.classList.contains('newstyle')){
button.node.name.dataset.nature='watermm';
button.node.group.dataset.nature='water';
}
else button.node.group.style.backgroundColor=get.translation('weiColor');
}
},
div:function(){
var str,innerHTML,position,position2,style,divposition,listen;
@ -36323,7 +36330,7 @@
for(var i=0;i<buttons.length;i++){
buttons[i].classList.add('noclick');
buttons[i].listen(banCharacter);
if(lib.config.show_rarity) ui.create.rarity(buttons[i]);
ui.create.rarity(buttons[i]);
buttons[i].node.hp.style.transition='all 0s';
buttons[i].node.hp._innerHTML=buttons[i].node.hp.innerHTML;
if(mode!='mode_banned'){
@ -36343,7 +36350,7 @@
for(var i=0;i<buttons.length;i++){
buttons[i].classList.add('noclick');
buttons[i].listen(banCharacter);
if(lib.config.show_rarity) ui.create.rarity(buttons[i]);
ui.create.rarity(buttons[i]);
buttons[i].node.hp.style.transition='all 0s';
buttons[i].node.hp._innerHTML=buttons[i].node.hp.innerHTML;
if(mode!='mode_banned'){
@ -36356,7 +36363,7 @@
var buttons=ui.create.buttons(list,'character',page);
for(var i=0;i<buttons.length;i++){
buttons[i].classList.add('noclick');
if(lib.config.show_rarity) ui.create.rarity(buttons[i]);
ui.create.rarity(buttons[i]);
buttons[i].listen(banCharacter);
buttons[i].node.hp.style.transition='all 0s';
buttons[i].node.hp._innerHTML=buttons[i].node.hp.innerHTML;

View File

@ -1,22 +1,22 @@
window.noname_update={
version:'1.9.105.9.1',
update:'1.9.105.9',
version:'1.9.105.10',
update:'1.9.105.9.1',
changeLog:[
'四花张让',
'修复飞弩bug',
'鸣濑白羽',
'3v3v2规则修复',
'其他bug修复',
],
files:[
//'card/extra.js',
//'card/huanlekapai.js',
//'card/sp.js',
'card/standard.js',
'card/swd.js',
//'card/standard.js',
//'card/swd.js',
//'card/mtg.js',
//'card/gujian.js',
//'card/guozhan.js',
//'card/gwent.js',
'card/yunchou.js',
//'card/yunchou.js',
//'card/zhenfa.js',
//'card/zhulu.js',
'character/diy.js',
@ -25,34 +25,34 @@ window.noname_update={
//'character/gujian.js',
//'character/gwent.js',
//'character/hearth.js',
'character/mobile.js',
//'character/mobile.js',
//'character/mtg.js',
//'character/old.js',
'character/rank.js',
'character/refresh.js',
'character/shenhua.js',
//'character/shenhua.js',
'character/sp.js',
'character/sp2.js',
//'character/tw.js',
'character/standard.js',
//'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
'character/yijiang.js',
//'character/yxs.js',
'character/yxs.js',
//'extension/boss/extension.js',
//'layout/default/layout.css',
//'layout/nova/layout.css',
//'mode/identity.js',
'mode/identity.js',
//'mode/doudizhu.js',
//'mode/guozhan.js',
//'mode/chess.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',
//'mode/versus.js',
'mode/boss.js',
'game/game.js',
//'game/keyWords.js',
//'game/server.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

View File

@ -8876,7 +8876,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
enable:'phaseUse',
filter:function(event,player){
if(player.countCards('h')==0) return false;
if(!player.hasSkill('qiangxi')) return true;
if(!player.hasSkill('qiangxix')) return true;
if(!player.hasSkill('retieji')) return true;
if(!player.hasSkill('rexuanfeng')) return true;
if(!player.hasSkill('wansha')) return true;
@ -8891,7 +8891,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
content:function(){
'step 0'
var list=[];
if(!player.hasSkill('qiangxi')) list.push('qiangxi');
if(!player.hasSkill('qiangxix')) list.push('qiangxix');
if(!player.hasSkill('retieji')) list.push('retieji');
if(!player.hasSkill('rexuanfeng')) list.push('rexuanfeng');
if(!player.hasSkill('wansha')) list.push('wansha');
@ -8902,19 +8902,19 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
else{
player.chooseControl(list,function(){
if(list.contains('rexuanfeng')&&player.countCards('he',{type:'equip'})) return 'rexuanfeng';
if(!player.getStat().skill.qiangxi){
if(player.hasSkill('qiangxi')&&player.getEquip(1)&&list.contains('rexuanfeng')) return 'rexuanfeng';
if(list.contains('wansha')||list.contains('qiangxi')){
if(!player.getStat().skill.qiangxix){
if(player.hasSkill('qiangxix')&&player.getEquip(1)&&list.contains('rexuanfeng')) return 'rexuanfeng';
if(list.contains('wansha')||list.contains('qiangxix')){
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].hp==1&&get.attitude(player,players[i])<0){
if(list.contains('wansha')) return 'wansha';
if(list.contains('qiangxi')) return 'qiangxi';
if(list.contains('qiangxix')) return 'qiangxix';
}
}
}
}
if(list.contains('qiangxi')) return 'qiangxi';
if(list.contains('qiangxix')) return 'qiangxix';
if(list.contains('wansha')) return 'wansha';
if(list.contains('rexuanfeng')) return 'rexuanfeng';
return 'retieji';
@ -8928,8 +8928,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
order:function(){
var player=_status.event.player;
if(player.countCards('e',{type:'equip'})) return 10;
if(!player.getStat().skill.qiangxi){
if(player.hasSkill('qiangxi')&&player.getEquip(1)&&!player.hasSkill('rexuanfeng')) return 10;
if(!player.getStat().skill.qiangxix){
if(player.hasSkill('qiangxix')&&player.getEquip(1)&&!player.hasSkill('rexuanfeng')) return 10;
if(player.hasSkill('wansha')) return 1;
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
@ -8941,9 +8941,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
result:{
player:function(player){
if(player.countCards('e',{type:'equip'})) return 1;
if(!player.getStat().skill.qiangxi){
if(player.hasSkill('qiangxi')&&player.getEquip(1)&&!player.hasSkill('rexuanfeng')) return 1;
if(!player.hasSkill('wansha')||!player.hasSkill('qiangxi')){
if(!player.getStat().skill.qiangxix){
if(player.hasSkill('qiangxix')&&player.getEquip(1)&&!player.hasSkill('rexuanfeng')) return 1;
if(!player.hasSkill('wansha')||!player.hasSkill('qiangxix')){
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].hp==1&&get.attitude(player,players[i])<0) return 1;

View File

@ -1915,8 +1915,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
else{
str='选择一个已方角色摸一张牌'
}
var nevt=next.chooseTarget(str,function(card,player,target){
return target.side==next.side;
var nevt=player.chooseTarget(str,function(card,player,target){
return target.side==player.side;
},[1,num2-num1]);
nevt.ai=function(target){
return Math.max(1,10-target.countCards('h'));
@ -2138,23 +2138,46 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
ui.money.childNodes[2].style.color='#FFE600';
ui.money.childNodes[3].style.fontFamily='huangcao';
ui.money.style.letterSpacing='4px';
for(var i in lib.rank){
if(Array.isArray(lib.rank[i])){
for(var j=0;j<lib.rank[i].length;j++){
if(!lib.character[lib.rank[i][j]]){
lib.rank[i].splice(j--,1);
if(get.config('chess_leader_allcharacter')){
for(var i in lib.rank){
if(Array.isArray(lib.rank[i])){
for(var j=0;j<lib.rank[i].length;j++){
if(!lib.character[lib.rank[i][j]]){
lib.rank[i].splice(j--,1);
}
}
}
}
for(var i in lib.rank.rarity){
if(Array.isArray(lib.rank.rarity[i])){
for(var j=0;j<lib.rank.rarity[i].length;j++){
if(!lib.character[lib.rank.rarity[i][j]]){
lib.rank.rarity[i].splice(j--,1);
}
}
}
}
}
for(var i in lib.rank.rarity){
if(Array.isArray(lib.rank.rarity[i])){
for(var j=0;j<lib.rank.rarity[i].length;j++){
if(!lib.character[lib.rank.rarity[i][j]]){
lib.rank.rarity[i].splice(j--,1);
else{
var list=get.gainableCharacters().filter(function(i){
return i.indexOf('leader_')!=0;
});
list.randomSort();
for(var i in lib.rank.rarity){
if(Array.isArray(lib.rank.rarity[i])){
for(var j=0;j<lib.rank.rarity[i].length;j++){
if(!list.contains(lib.rank.rarity[i][j])||!lib.character[lib.rank.rarity[i][j]]){
lib.rank.rarity[i].splice(j--,1);
}
}
}
}
var length=Math.ceil(list.length/9);
for(var i in lib.rank){
if(Array.isArray(lib.rank[i])){
lib.rank[i]=list.splice(0,length);
}
}
}
'step 1'
lib.rank.all=lib.rank.s.
@ -2269,11 +2292,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
node.node.intro.style.top='145px';
}
node.node.intro.style.fontSize='20px';
node.node.intro.style.fontFamily='huangcao';
node.node.intro.style.fontFamily='yuanli';
switch(rarity){
case 'rare':node.node.intro.dataset.nature='waterm';break;
case 'epic':node.node.intro.dataset.nature='thunderm';break;
case 'legend':node.node.intro.dataset.nature='metalm';break;
case 'rare':node.node.intro.dataset.nature='thunderm';break;
case 'epic':node.node.intro.dataset.nature='metalm';break;
case 'legend':node.node.intro.dataset.nature='orangem';break;
}
}
if(kaibao){
@ -2323,6 +2346,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(lib.character[name][1]=='shu') return 1;
if(lib.character[name][1]=='wu') return 2;
if(lib.character[name][1]=='qun') return 3;
if(lib.character[name][1]=='key') return 4;
};
game.data.character.sort(function(a,b){
var del=groupSort(a)-groupSort(b);
@ -2349,14 +2373,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(rarity!='common'){
var intro=button.node.intro;
intro.classList.add('showintro');
intro.style.fontFamily='huangcao';
intro.style.fontFamily='yuanli';
intro.style.fontSize='20px';
intro.style.top='82px';
intro.style.left='2px';
switch(rarity){
case 'rare':intro.dataset.nature='waterm';break;
case 'epic':intro.dataset.nature='thunderm';break;
case 'legend':intro.dataset.nature='metalm';break;
case 'rare':intro.dataset.nature='thunderm';break;
case 'epic':intro.dataset.nature='metalm';break;
case 'legend':intro.dataset.nature='orangem';break;
}
intro.innerHTML=get.translation(rarity);
}
@ -3597,13 +3621,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
game.saveData();
ui.money.childNodes[1].innerHTML=game.data.dust;
},
getRarity:function(name){
var rank=lib.rank.rarity;
if(rank.legend.contains(name)) return 'legend';
if(rank.epic.contains(name)) return 'epic';
if(rank.rare.contains(name)) return 'rare';
return 'common';
},
chooseCharacter:function(){
var next=game.createEvent('chooseCharacter',false);
next.showConfig=true;
@ -4523,7 +4540,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
leader_xiaoxiong:{
unique:true,
forced:true,
trigger:{source:'damageEnd'},
trigger:{source:'damageSource'},
filter:function(event,player){
return event.num>0;
},
@ -4855,7 +4872,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
cangming2:{
trigger:{player:'phaseBegin'},
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
popup:false,
content:function(){
@ -4883,7 +4900,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
inherit:'juece',
},
boss_stoneqiangzheng:{
trigger:{player:'phaseEnd'},
trigger:{player:'phaseJieshuBegin'},
forced:true,
unique:true,
filter:function(event,player){
@ -4912,7 +4929,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},
guanchuan:{
trigger:{player:'shaBefore'},
trigger:{player:'useCardToPlayer'},
getTargets:function(player,target){
var targets=[];
var pxy=player.getXY();
@ -4941,7 +4958,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return targets;
},
filter:function(event,player){
if(event.targets.length!=1) return false;
if(event.targets.length!=1||event.card.name!='sha') return false;
return lib.skill.guanchuan.getTargets(player,event.targets[0]).length>0;
},
check:function(event,player){
@ -5019,7 +5036,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},
zhiming:{
trigger:{source:'damageBegin'},
trigger:{source:'damageBegin1'},
filter:function(event,player){
return get.distance(event.player,player,'attack')>1&&event.card&&event.card.name=='sha';
},
@ -5032,25 +5049,27 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
mod:{
cardUsable:function(card,player,num){
if(card.name=='sha'){
return num+player.countUsed()-player.countUsed('sha');
return num+player.getHistory('useCard',function(evt){
return evt.card.name!='sha';
}).length;
}
},
},
trigger:{player:'useCard'},
frequent:true,
filter:function(event){
return event.card&&event.card.name=='sha';
return event.card&&event.card.name=='sha'&&player.getHistory('useCard',function(evt){
return evt.card.name=='sha';
})[0]==event;
},
usable:1,
content:function(){
player.draw();
},
ai:{
threaten:1.5
threaten:1.5,
}
},
pianyi:{
trigger:{player:'phaseEnd'},
direct:true,
filter:function(event,player){
return !player.getStat('damage');
@ -5065,14 +5084,18 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},
lingdong:{
trigger:{player:'phaseEnd'},
trigger:{player:'phaseJieshuBegin'},
direct:true,
filter:function(event,player){
return player.countUsed('sha')>0;
return player.getHistory('useCard',function(evt){
return evt.card.name=='sha';
}).length>0;
},
content:function(){
"step 0"
player.chooseToMove(player.countUsed('sha'),get.prompt('lingdong'));
player.chooseToMove(player.getHistory('useCard',function(evt){
return evt.card.name=='sha';
}).length,get.prompt('lingdong'));
"step 1"
if(result.bool){
player.logSkill('lingdong');
@ -5343,8 +5366,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return current-2;
},
},
trigger:{player:'phaseDrawBegin'},
trigger:{player:'phaseDrawBegin2'},
forced:true,
filter:function(event){
return !event.numFixed;
},
content:function(){
trigger.num+=2;
}
@ -5381,7 +5407,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
position:'he',
filterCard:{type:'equip'},
init:function(player){
player.forcemin=true;
for(var i=1;i<6;i++){
player.$disableEquip('equip'+i);
};
},
check:function(card){
var player=_status.currentPhase;
@ -5419,7 +5447,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},
boss_wushang:{
trigger:{player:'phaseBegin'},
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
filter:function(event,player){
for(var i=0;i<game.players.length;i++){
@ -5573,64 +5601,64 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
leader_liubei:'刘备',
leader_sunquan:'孙权',
leader_xiaoxiong:'枭雄',
leader_xiaoxiong_info:'当你造成伤害,获胜后会得到一定数量的额外金币奖励',
leader_xiaoxiong_info:'当你造成伤害,获胜后会得到一定数量的额外金币奖励',
leader_renyi:'仁义',
leader_renyi_info:'你招降敌将的成功率大幅增加',
leader_renyi_info:'你招降敌将的成功率大幅增加',
leader_mouduan:'谋断',
leader_mouduan_info:'其他友方角色回合内的行动范围+1',
leader_mouduan_info:'其他友方角色回合内的行动范围+1',
tongshuai:'统率',
tongshuai_info:'准备阶段和结束阶段,你可以选择一名未上场的已方武将的一个技能作为你的技能',
leader_zhaoxiang:'招降',
leader_zhaoxiang_info:'出牌阶段限一次你可以尝试对相邻敌方武将进行招降若成功你获得该武将并立即结束本局游戏若失败你受到一点伤害。每发动一次消耗10招募令',
leader_zhaoxiang_info:'出牌阶段限一次你可以尝试对相邻敌方武将进行招降若成功你获得该武将并立即结束本局游戏若失败你受到一点伤害。每发动一次消耗10招募令',
common:'普通',
rare:'稀有',
rare:'精品',
epic:'史诗',
legend:'传说',
chess_shezhang:'设置路障',
chess_shezhang_info:'选择一名角色在其四周设置临时路障持续X回合X为存活角色数',
chess_shezhang_info:'选择一名角色在其四周设置临时路障持续X回合X为存活角色数',
chess_chuzhang:'清除路障',
chess_chuzhang_info:'将你相邻的路障而后推移一格,每影响一个路障你摸一张牌',
chess_chuzhang_info:'将与你相邻的路障向后推移一格,每影响一个路障你摸一张牌',
_chess_chuzhang:'除障',
_chess_chuzhang_info:'出牌阶段限一次,若你周围四格至少有三个为障碍或在边缘外,你可以选择将其中一个障碍向后推移一格(若无法推移则改为清除之)',
_chess_chuzhang_info:'出牌阶段限一次,若你周围四格至少有三个为障碍或在边缘外,你可以选择将其中一个障碍向后推移一格(若无法推移则改为清除之)',
arenaAdd:'援军',
arenaAdd_info:'出牌阶段限一次,你可以令一名未出场的已方角色加入战场。战斗结束后,该角色无论是否存活均不能再次出场',
arenaAdd_info:'出牌阶段限一次,你可以令一名未出场的已方角色加入战场。战斗结束后,该角色无论是否存活均不能再次出场',
pianyi:'翩仪',
pianyi_info:'结束阶段,若你没有于本回合内造成伤害,你获得一次移动机会',
pianyi_info:'结束阶段,若你于本回合内造成伤害,你获得一次移动机会',
lingdong:'灵动',
lingdong_info:'结束阶段,你可以移动X个格X为你回合内出杀的次数',
lingdong_info:'结束阶段,你可以移动至多X格X为你本回合内使用【杀】的次数',
lianshe:'箭舞',
lianshe_info:'当你于一个回合中首次使用杀时,你可以摸一张牌;在你的回合内,每当你使用一张不是杀的牌,你可以额外使用一张杀',
lianshe_info:'当你于一回合内首次使用【杀】时,你可以摸一张牌;你的回合内,当你使用一张不为【杀】的牌时,你令本回合内使用【杀】的次数上限+1。',
zhiming:'穿杨',
zhiming_info:'锁定技,当你使用杀造成伤害时,若你不在目标的攻击范围内,此伤害+1',
zhiming_info:'锁定技,当你使用造成伤害时,若你不在目标角色的攻击范围内,此伤害+1',
sanjiansheji:'散箭',
sanjiansheji_info:'你可以将两张杀当杀使用此杀可以指定距离你5格以内任意名目标',
sanjiansheji_info:'你可以将两张【杀】当做【杀】使用你以此法使用的【杀】可以指定距离5格内的角色为目标。',
guanchuan:'强弩',
guanchuan_info:'当你使用杀指定惟一的目标后,可将攻击射线内的其他角色也加入目标',
guanchuan_info:'当你使用【杀】指定唯一目标后,你可令攻击射线内的其他角色也成为此【杀】的目标。',
boss_stoneqiangzheng:'强征',
boss_stoneqiangzheng_info:'锁定技,结束阶段,你获得每个其他角色的一张手牌',
boss_stoneqiangzheng_info:'锁定技,结束阶段,你获得所有其他角色的各一张手牌。',
boss_stonebaolin:'暴凌',
boss_moyan:'魔焰',
boss_moyan_info:'锁定技,结束阶段,你对场上所有角色造成一点火焰伤害',
boss_moyan_info:'锁定技,结束阶段,你对场上所有角色造成1点火焰伤害。',
cangming:'颠动沧溟',
cangming_info:'出牌阶段限一次,你可弃置四张花色不同的手牌并将武将牌翻至背面,然后令所有其他角色进入混乱状态直到你的下一回合开始',
cangming_info:'出牌阶段限一次,你可弃置四张花色不同的手牌并将武将牌翻至背面,然后令所有其他角色进入混乱状态直到你的下一回合开始',
boss_bfengxing:'风行',
boss_bfengxing_info:'锁定技,摸牌阶段摸牌数+2;你的攻击范围+2你回合内的移动距离+2',
boss_bfengxing_info:'锁定技,摸牌阶段,你多两张牌;你的攻击范围+2你回合内的移动距离+2',
boss_chiyu:'炽羽',
boss_chiyu_info:'出牌阶段限一次,你可以弃置一张红色牌对距离5以内的所有其他角色造成一点火焰伤害',
boss_chiyu_info:'出牌阶段限一次,你可以弃置一张红色牌对距离5以内的所有其他角色造成一点火焰伤害',
boss_tenglong:'腾龙八齐',
boss_tenglong_info:'你没有装备区出牌阶段限一次你可以弃置一张装备牌对一名距离你2以内的其他角色造成3点火焰伤害',
boss_tenglong_info:'锁定技,你废除你的装备区;出牌阶段限一次,你可以弃置一张装备牌对一名距离你2以内的其他角色造成3点火焰伤害',
boss_wushang:'神天并地',
boss_wushang_info:'锁定技准备阶段距离你5以内的所有其他角色需交给你一张手牌',
boss_wushang_info:'锁定技准备阶段距离你5以内的所有其他角色需交给你一张手牌',
boss_wuying:'无影',
boss_wuying_info:'锁定技,你回合内的移动距离-1你的防御距离+2',
boss_wuying_info:'锁定技,你回合内的移动距离-1其他角色至你的距离+2',
mode_chess_character_config:'战棋模式',
mode_chess_card_config:'战棋模式',
@ -6011,7 +6039,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
//
// chess_lvbu:['male','qun',3,['']],
chess_sunshangxiang:['female','wu',3,['lingdong','lianshe','gongji']],
chess_diaochan:['female','qun',3,['xingzhui','pianyi','biyue']],
chess_diaochan:['female','qun',3,['xingzhui','pianyi','rebiyue']],
// chess_huatuo:['male','qun',3,['zhenjiu','mazui']],
// chess_zhangjiao:['male','qun',3,['']],
// chess_menghuo:['male','qun',3,['']],
@ -6033,280 +6061,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
['spade',1,'chess_chuzhang']
],
rank:{
rarity:{
legend:[
'swd_muyun',
'shen_caocao',
'swd_zhaoyun',
'swd_septem',
'hs_sthrall',
'hs_malorne',
'swd_yuwentuo',
'swd_duguningke',
'swd_guyue',
'swd_yuxiaoxue',
'swd_huanglei',
'pal_liumengli',
'pal_yuntianhe',
'swd_xuanyuanjianxian',
'diaochan',
'gjqt_aruan',
'hs_neptulon',
'shen_lvbu',
'swd_qi',
'swd_huzhongxian',
'hs_medivh',
'shen_zhugeliang',
'yxs_wuzetian',
'sp_pangtong',
'swd_murongshi',
'shen_lvmeng',
'chenlin',
'diy_caiwenji',
're_luxun',
'shen_zhaoyun',
'zhangchunhua',
'shen_zhouyu',
'shen_simayi',
'shen_guanyu',
'hs_siwangzhiyi',
'chengyu',
'yangxiu',
'hs_malygos',
'hs_ysera',
'hanba',
'hs_aya',
'hs_kazhakusi',
'gw_jieluote',
'gw_yenaifa',
'gw_telisi',
'gw_xili',
'swd_huiyan',
'hs_pyros',
],
epic:[
'pal_yueqi',
'pal_yuejinzhao',
'pal_mingxiu',
'hs_tyrande',
'hs_amala',
'yxs_libai',
'swd_shuwaner',
'swd_kendi',
'lingju',
'daxiaoqiao',
'sunxiu',
'swd_weida',
'swd_lilian',
'yxs_luban',
'hs_alextrasza',
'zhugeguo',
'sp_caiwenji',
'ow_yuanshi',
'diy_zhenji',
'swd_jipeng',
'swd_cheyun',
'pal_xuanxiao',
'old_zhonghui',
'swd_tuobayuer',
'gjqt_bailitusu',
'xunyu',
'swd_jiliang',
'liuxie',
'hs_totemic',
'zhangxingcai',
'swd_muyue',
'pal_zixuan',
'hs_bchillmaw',
'swd_lanyin',
'gjqt_xiayize',
'hs_aedwin',
'hs_antonidas',
'swd_chenjingchou',
'yxs_yangyuhuan',
'gjqt_fengqingxue',
'pal_xuejian',
'xunyou',
're_daqiao',
're_zhouyu',
'hs_wvelen',
'zhugeke',
'swd_kama',
'swd_anka',
'caozhi',
'wuguotai',
'yxs_aijiyanhou',
'swd_zhiyin',
're_guanyu',
'sp_diaochan',
'swd_huanyuanzhi',
'swd_kangnalishi',
're_huanggai',
'hs_alakir',
'swd_xiarou',
'pal_murongziying',
'swd_wangsiyue',
'gjqt_fanglansheng',
'swd_qiner',
'hs_xsylvanas',
'zhongyao',
'hs_blingtron',
'hs_fuding',
'shixie',
'hs_lafamu',
'hs_nozdormu',
'ow_tianshi',
'yxs_guiguzi',
'ow_zhixuzhiguang',
'hs_jiaziruila',
'hs_yelise',
'hs_xuefashi',
'hs_liadrin',
'yxs_libai',
'gw_aisinie',
'gw_falanxisika',
'pal_lixiaoyao',
'pal_xingxuan',
'gjqt_ouyangshaogong',
'gjqt_xunfang',
],
rare:[
'pal_shenqishuang',
'hs_selajin',
'hs_enzoth',
'hs_yashaji',
'hs_yogg',
'hs_kcthun',
'pal_nangonghuang',
'pal_wangpengxu',
'gw_yioufeisi',
'gw_luoqi',
'sunluban',
'sunluyu',
'zhangliang',
'zhangbao',
'sp_zhangjiao',
'swd_xiyan',
'sunluban',
'ow_falaozhiying',
'yxs_kaisa',
'yxs_napolun',
'hs_nate',
'yxs_jinke',
'yxs_yuefei',
'guyong',
'hs_anomalus',
'hs_jinglinglong',
'jiangqing',
'mayunlu',
're_liubei',
're_lidian',
'swd_xiaohuanglong',
'hs_alleria',
'jsp_huangyueying',
'hs_lreno',
'hs_zhouzhuo',
'cenhun',
'hs_loatheb',
'sunziliufang',
'hs_finley',
'ow_chanyata',
'yxs_huamulan',
'cuiyan',
'wangji',
'xin_liru',
'swd_quxian',
'caorui',
'ow_liekong',
'ow_zhixuzhiguang',
'lifeng',
'sundeng',
'hs_xialikeer',
'hs_sainaliusi',
'hs_lrhonin',
'yxs_diaochan',
'hs_anduin',
'swd_hengai',
'hs_wuther',
'lusu',
'bulianshi',
'swd_shuijing',
'swd_sikongyu',
'zhangliao',
'liufeng',
'diy_yuji',
're_zhangliao',
'caoang',
'hs_zhishigushu',
'pal_jingtian',
'swd_shanxiaoxiao',
'yxs_caocao',
'jianyong',
'manchong',
'swd_linyue',
'swd_xuanyuanjiantong',
'swd_maixing',
'diy_xuhuang',
'dengai',
'hs_jaina',
'zhonghui',
'gjqt_xiangling',
'zhugejin',
'swd_jiuyou',
'diy_zhouyu',
'pal_changqing',
'swd_yuchiyanhong',
'swd_duopeng',
'swd_yuli',
'swd_rongshuang',
'taishici',
'pal_zhaoliner',
're_machao',
'zhanghe',
'zhangzhang',
'xin_fazheng',
'caochong',
'caifuren',
'xin_masu',
'swd_situqiang',
'hs_malfurion',
'yxs_bole',
'yj_jushou',
'gjqt_yuewuyi',
'hs_mijiaojisi',
'yxs_mozi',
'gjqt_hongyu',
'hs_waleera',
'zhangsong',
'sp_dongzhuo',
'jiangwei',
'swd_chunyuheng',
'hetaihou',
'swd_jiangziya',
'liushan',
'zhugedan',
'sp_zhaoyun',
're_huatuo',
'swd_nicole',
'sp_jiangwei',
'swd_zhuoshanzhu',
'swd_shaowei',
'caopi',
'jiaxu',
'maliang',
'lingtong',
'wangyi',
'chenqun',
'mifuren',
'pal_linyueru',
'swd_jialanduo',
'sp_machao',
'caiwenji',
'hs_yngvar',
're_xushu',
're_huangyueying',
],
}
},
posmap:{},
help:{

View File

@ -1202,7 +1202,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
maixie_defend:true,
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')){
if(get.tag(card,'damage')&&target.hp>1){
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
if(!target.countCards('h')) return [1,-1];
if(game.countPlayer(function(current){return current.isFriendOf(player)&&current.hp>=target.hp-1})) return [1,0,0,-2];

View File

@ -550,19 +550,19 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
game.countPlayer2(function(current){
switch(current.identity){
case 'rZhu':
if(blue.length+ye.length==0) winner.push(current);
if(ye.length==0&&game.bZhu.isDead()) winner.push(current);
if(current.isDead()) loser.push(current);
break;
case 'rZhong': case 'bNei':
if(blue.length+ye.length==0) winner.push(current);
if(ye.length==0&&game.bZhu.isDead()) winner.push(current);
if(game.rZhu.isDead()) loser.push(current);
break;
case 'bZhu':
if(red.length+ye.length==0) winner.push(current);
if(ye.length==0&&game.rZhu.isDead()) winner.push(current);
if(current.isDead()) loser.push(current);
break;
case 'bZhong': case 'rNei':
if(red.length+ye.length==0) winner.push(current);
if(ye.length==0&&game.rZhu.isDead()) winner.push(current);
if(game.bZhu.isDead()) loser.push(current);
break;
default:
@ -2139,7 +2139,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
else if(this.identity=='rZhong'||this.identity=='bZhong'){
if(this.identity.slice(0,1)!=source.identity.slice(0,1)) source.draw(2);
else if(this.identity.indexOf('Zhu')==1) this.discard(this.getCards('h'));
else if(source.identity.indexOf('Zhu')==1) source.discard(source.getCards('h'));
}
else if(this.identity=='rNei'||this.identity=='bNei'){
if(this.identity.slice(0,1)==source.identity.slice(0,1)) source.draw(3);
@ -3080,7 +3080,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
'亮出身份牌的忠臣增加1点体力上限。角色濒死和死亡的结算及胜利条件与普通身份局相同。',
'3v3v2':'<div style="margin:10px">3v3v2模式</div><ul style="margin-top:0"><li>游戏准备<br>本模式需要8名玩家进行游戏。游戏开始前所有玩家随机分成两组每组四人分别称为「冷色阵营」和「暖色阵营」然后分发身份牌抽取到「主帅」身份的玩家亮出身份牌。'+
'<li>身份牌<br>每组的身份分为四种。<br>主帅(主)和前锋(忠):联合对方阵营的细作,击杀己方细作,对方阵营的主帅和前锋以及所有的野心家。<br>细作(内):帮助对方阵营的主帅和前锋,击杀对方细作,己方阵营的主帅和前锋以及所有的野心家。<br>野心家(野):联合对方阵营中的野心家,击杀所有其他角色,成为最后的生还者。<br>'+
'<li>胜负判定<br>冷色主帅,先锋和暖色细作在所有其他角色全部阵亡后视为胜利,在冷色主帅阵亡后视为游戏失败。<br>暖色主帅,先锋和冷色细作在所有其他角色阵亡后视为胜利,在暖色主帅阵亡后视为失败。<br>野心家在所有不为野心家的角色阵亡后视为胜利,在双方主帅全部阵亡而有非野心家角色存活时失败。<br>当有角色阵亡后,若有角色满足胜利条件,游戏结束。若所有角色均满足失败条件,则游戏平局。若一名角色满足失败条件,即使其满足胜利条件,也视为游戏失败。<br>'+
'<li>胜负判定<br>冷色主帅,先锋和暖色细作在所有野心家和对方主帅全部阵亡后视为胜利,在冷色主帅阵亡后视为游戏失败。<br>暖色主帅,先锋和冷色细作在所有野心家和对方主帅阵亡后视为胜利,在暖色主帅阵亡后视为失败。<br>野心家在所有不为野心家的角色阵亡后视为胜利,在双方主帅全部阵亡而有非野心家角色存活时失败。<br>当有角色阵亡后,若有角色满足胜利条件,游戏结束。若所有角色均满足失败条件,则游戏平局。若一名角色满足失败条件,即使其满足胜利条件,也视为游戏失败。<br>'+
'<li>游戏流程<br>在「游戏准备」中的工作完成后,冷色主帅选择一个势力,然后暖色主帅选择一个其他势力,作为双方各自的势力将池。<br>双方主帅从各自的势力将池中获得两张常备主公武将牌和四张非常备主公武将牌,然后选择一张作为武将牌,将其他的武将牌放回势力将池并洗混。然后双方的其他玩家从各自的势力将池中随机获得五张武将牌,选择一张作为自己的武将牌。<br>暖色主帅成为游戏的一号位双方主帅各加1点体力和体力上限。七号位和八号位的起始手牌+1。<br>当场上第一次有玩家死亡时野心家确认彼此的身份牌然后获得技能〖野心毕露〗出牌阶段你可以明置身份牌加1点体力上限和体力值。若如此做所有的野心家失去技能〖野心毕露〗<br>'+'<li>击杀奖惩<br>杀死颜色不同的主帅的角色回复1点体力杀死颜色不同的先锋的角色摸两张牌杀死颜色相同的细作的角色摸三张牌杀死颜色相同的先锋的主帅弃置所有手牌。<br>'+
'<li>制作团队<br>游戏出品:紫星居<br>游戏设计:食茸貳拾肆<br>游戏开发食茸貳拾肆、紫髯的小乔、聆星Mine、空城琴音依旧弥漫、丽景原同志、雪之彩翼、拉普拉斯、明月照沟渠<br>程序化:无名杀<br>鸣谢:荆哲、魔风、萨巴鲁酱、这就是秋夜</ul></ul>',
}