音無 雅美

This commit is contained in:
Spmario233 2020-11-05 16:26:02 +08:00
parent 13f8c13449
commit 303f2b578e
28 changed files with 7939 additions and 7734 deletions

BIN
audio/die/re_caoxiu.mp3 Normal file

Binary file not shown.

BIN
audio/die/re_sunxiu.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reqingxi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reqingxi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rexingxue1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rexingxue2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reyanzhu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reyanzhu2.mp3 Normal file

Binary file not shown.

View File

@ -1146,7 +1146,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
chooseButton:{ chooseButton:{
dialog:function(){ dialog:function(){
var list=[]; var list=[];
for(var i of lib.inpile){ var list2=['pyzhuren_heart','pyzhuren_diamond','pyzhuren_club','pyzhuren_spade','pyzhuren_shandian','rewrite_zhuge'];
list2.addArray(lib.inpile);
for(var i of list2){
var sub=get.subtype(i); var sub=get.subtype(i);
if(['equip1','equip4'].contains(sub)) list.push([sub,'',i]); if(['equip1','equip4'].contains(sub)) list.push([sub,'',i]);
} }
@ -1158,7 +1160,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(get.subtype(name)=='equip4'||player.getEquip(name)) return 0; if(get.subtype(name)=='equip4'||player.getEquip(name)) return 0;
var sha=player.countCards('h','sha'); var sha=player.countCards('h','sha');
switch(name){ switch(name){
case 'zhuge': case 'rewrite_zhuge':
return sha-player.getCardUsable('sha'); return sha-player.getCardUsable('sha');
case 'guding': case 'guding':
if(sha>0&&game.hasPlayer(function(current){ if(sha>0&&game.hasPlayer(function(current){
@ -1272,7 +1274,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
'step 0' 'step 0'
var list=[]; var list=[];
for(var i of lib.inpile){ var list2=['rewrite_bagua','rewrite_renwang','rewrite_tengjia','rewrite_baiyin'];
list2.addArray(lib.inpile);
for(var i of list2){
var sub=get.subtype(i); var sub=get.subtype(i);
if(['equip2','equip3'].contains(sub)) list.push([sub,'',i]); if(['equip2','equip3'].contains(sub)) list.push([sub,'',i]);
} }
@ -1284,13 +1288,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
case 'yexingyi': case 'yexingyi':
if(player.hp>2||player.getEquip('bagua')||player.getEquip('tengjia')) return 1.5+Math.random(); if(player.hp>2||player.getEquip('bagua')||player.getEquip('tengjia')) return 1.5+Math.random();
return 0.5+Math.random(); return 0.5+Math.random();
case 'bagua':case 'renwang': case 'rewrite_bagua':case 'rewrite_renwang':
if(player.getEquip('bagua')||player.getEquip('tengjia')||player.getEquip('renwang')) return Math.random(); if(player.getEquip('bagua')||player.getEquip('tengjia')||player.getEquip('renwang')) return Math.random();
return 1.2+Math.random(); return 1.2+Math.random();
case 'tengjia': case 'rewrite_tengjia':
if(player.getEquip('baiyin')) return 1.3+Math.random(); if(player.getEquip('baiyin')) return 1.3+Math.random();
return Math.random(); return Math.random();
case 'baiyin': case 'rewrite_baiyin':
return 0.4+Math.random(); return 0.4+Math.random();
default: return 0; default: return 0;
} }

View File

@ -313,7 +313,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true, forced:true,
priority:-1, priority:-1,
filter:function(event,player){ filter:function(event,player){
return event.card==player.storage.wxuying; return event.cards.contains(player.storage.wxuying);
}, },
content:function(){ content:function(){
if(_status.currentPhase==player){ if(_status.currentPhase==player){
@ -1379,6 +1379,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.discard(cards); player.discard(cards);
if(event.position=='e'){ if(event.position=='e'){
var name=cards[0].name; var name=cards[0].name;
if(name.indexOf('hstianqi_')!=0) return;
for(var i=0;i<player.storage.hstianqi.length;i++){ for(var i=0;i<player.storage.hstianqi.length;i++){
if(player.storage.hstianqi[i].name==name){ if(player.storage.hstianqi[i].name==name){
return; return;

View File

@ -1583,7 +1583,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
else event.finish(); else event.finish();
'step 2' 'step 2'
trigger.player.chooseToDiscard('弃置一张牌令'+get.translation(player)+'不能闪避此【杀】,或点「取消」摸两张牌并令此【杀】对其无效').set('ai',function(card){ trigger.player.chooseToDiscard('弃置一张牌令'+get.translation(player)+'不能闪避此【杀】,或点「取消」摸两张牌并令此【杀】对其无效','he').set('ai',function(card){
if(_status.event.goon) return 6-get.value(card); if(_status.event.goon) return 6-get.value(card);
return 0; return 0;
}).set('goon',get.attitude(trigger.player,player)<0); }).set('goon',get.attitude(trigger.player,player)<0);

View File

@ -13,11 +13,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
refresh_yijiang2:['old_madai','wangyi','guanzhang','re_handang','re_zhonghui','re_liaohua','re_chengpu','re_caozhang','re_liubiao','re_bulianshi'], refresh_yijiang2:['old_madai','wangyi','guanzhang','re_handang','re_zhonghui','re_liaohua','re_chengpu','re_caozhang','re_liubiao','re_bulianshi'],
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','re_yufan','re_liru','re_manchong'], refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','re_yufan','re_liru','re_manchong'],
refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan'], refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan'],
refresh_yijiang5:['re_zhangyi','re_quancong'], refresh_yijiang5:['re_zhangyi','re_quancong','re_caoxiu','re_sunxiu'],
}, },
}, },
connect:true, connect:true,
character:{ character:{
re_caoxiu:['male','wei',4,['qianju','reqingxi']],
re_sunxiu:['male','wu',3,['reyanzhu','rexingxue','zhaofu'],['zhu']],
ol_dengai:['male','wei',4,['oltuntian','olzaoxian'],['unseen']], ol_dengai:['male','wei',4,['oltuntian','olzaoxian'],['unseen']],
re_gongsunzan:['male','qun',4,['reqiaomeng','reyicong']], re_gongsunzan:['male','qun',4,['reqiaomeng','reyicong']],
re_manchong:['male','wei',3,['rejunxing','yuce']], re_manchong:['male','wei',3,['rejunxing','yuce']],
@ -167,7 +169,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
"step 0" "step 0"
target.chooseToDiscard(cards.length,'弃置'+get.cnNumber(cards.length)+'张牌并失去1点体力或点取消将武将牌翻面并摸'+get.cnNumber(cards.length)+'张牌').set('ai',function(card){ target.chooseToDiscard(cards.length,'弃置'+get.cnNumber(cards.length)+'张牌并失去1点体力或点取消将武将牌翻面并摸'+get.cnNumber(cards.length)+'张牌').set('ai',function(card){
var player=_status.event.player; var player=_status.event.player;
if(player.isTurnedOver()) return -1; if(player.isTurnedOver()) return -1;
return (player.hp*player.hp)-get.value(card); return (player.hp*player.hp)-get.value(card);
@ -1436,7 +1438,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audioname:['boss_lvbu3','re_heqi','re_lingtong'], audioname:['boss_lvbu3','re_heqi','re_lingtong'],
trigger:{ trigger:{
player:['loseAfter','phaseDiscardEnd'], player:['loseAfter','phaseDiscardEnd'],
global:['equipAfter','addJudgeAfter','addJudgeAfter'], global:['equipAfter','addJudgeAfter','gainAfter'],
}, },
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
@ -3082,6 +3084,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
_status.noclearcountdown=true; _status.noclearcountdown=true;
event.videoId=lib.status.videoId++; event.videoId=lib.status.videoId++;
var cards=player.storage.rehuashen.character.slice(0); var cards=player.storage.rehuashen.character.slice(0);
var skills=[];
var sto=player.storage.rehuashen;
for(var i in player.storage.rehuashen.map){
skills.addArray(player.storage.rehuashen.map[i]);
}
var cond='out';
if(event.triggername=='phaseBegin'){
cond='in';
}
skills.randomSort();
skills.sort(function(a,b){
return get.skillRank(b,cond)-get.skillRank(a,cond);
});
event.aiChoice=skills[0];
var choice='更换技能';
if(event.aiChoice==player.storage.rehuashen.current2||get.skillRank(event.aiChoice,cond)<1) choice='弃置化身';
if(player.isOnline2()){ if(player.isOnline2()){
player.send(function(cards,id){ player.send(function(cards,id){
var dialog=ui.create.dialog('是否发动【化身】?',[cards,'character']); var dialog=ui.create.dialog('是否发动【化身】?',[cards,'character']);
@ -3094,7 +3112,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.dialog.style.display='none'; event.dialog.style.display='none';
} }
if(event.triggername=='rehuashen') event._result={control:'更换技能'}; if(event.triggername=='rehuashen') event._result={control:'更换技能'};
else player.chooseControl('弃置化身','更换技能','cancel2'); else player.chooseControl('弃置化身','更换技能','cancel2').set('ai',function(){
return _status.event.choice;
}).set('choice',choice);
"step 1" "step 1"
event.control=result.control; event.control=result.control;
if(event.control=='cancel2'){ if(event.control=='cancel2'){
@ -3117,6 +3137,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}); });
next.set('current',player.storage.rehuashen.current); next.set('current',player.storage.rehuashen.current);
} }
else{
next.set('ai',function(button){
return player.storage.rehuashen.map[button.link].contains(_status.event.choice)?2.5:1+Math.random();
});
next.set('choice',event.aiChoice);
}
var prompt=event.control=='弃置化身'?'选择弃置至多两张化身':'选择要切换的化身'; var prompt=event.control=='弃置化身'?'选择弃置至多两张化身':'选择要切换的化身';
var func=function(id,prompt){ var func=function(id,prompt){
var dialog=get.idDialog(id); var dialog=get.idDialog(id);
@ -3154,7 +3180,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
var list=player.storage.rehuashen.map[event.card].slice(0); var list=player.storage.rehuashen.map[event.card].slice(0);
list.push('返回'); list.push('返回');
player.chooseControl(list); player.chooseControl(list).set('choice',event.aiChoice).set('ai',function(){
return _status.event.choice;
});
} }
else{ else{
lib.skill.rehuashen.removeHuashen(player,result.links.slice(0)); lib.skill.rehuashen.removeHuashen(player,result.links.slice(0));
@ -7858,7 +7886,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_sunjian:'界孙坚', ol_sunjian:'界孙坚',
wulie:'武烈', wulie:'武烈',
wulie2:'武烈', wulie2:'武烈',
wulie_info:'限定技,结束阶段,你可以失去任意点体力并指定等量的角色。这些角色各获得一枚「烈」。有「烈」的其他角色受到伤害时,其移去一枚「烈」,然后防止此伤害。', wulie_info:'限定技,结束阶段,你可以失去任意点体力并指定等量的其他角色。这些角色各获得一枚「烈」。有「烈」的角色受到伤害时,其移去一枚「烈」,然后防止此伤害。',
re_sunluban:'界孙鲁班', re_sunluban:'界孙鲁班',
re_masu:'界马谡', re_masu:'界马谡',
ol_pangde:'界庞德', ol_pangde:'界庞德',
@ -7927,6 +7955,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
olzaoxian:'凿险', olzaoxian:'凿险',
oltuntian_info:'当你于回合外失去牌后,或于弃牌阶段因弃置而失去【杀】后,你可以进行判定。若判定结果不为♥,则你将此牌置于你的武将牌上,称之为【田】。锁定技,你计算与其他角色的距离时-XX为你武将牌上【田】的数目', oltuntian_info:'当你于回合外失去牌后,或于弃牌阶段因弃置而失去【杀】后,你可以进行判定。若判定结果不为♥,则你将此牌置于你的武将牌上,称之为【田】。锁定技,你计算与其他角色的距离时-XX为你武将牌上【田】的数目',
olzaoxian_info:'觉醒技准备阶段若你武将牌上【田】的数量达到3张或更多则你减1点体力上限并获得技能〖急袭〗。你于当前回合结束后进行一个额外的回合。', olzaoxian_info:'觉醒技准备阶段若你武将牌上【田】的数量达到3张或更多则你减1点体力上限并获得技能〖急袭〗。你于当前回合结束后进行一个额外的回合。',
re_sunxiu:'界孙休',
re_caoxiu:'界曹休',
refresh_standard:'界限突破·标', refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风', refresh_feng:'界限突破·风',

View File

@ -10192,136 +10192,97 @@ game.import('character',function(lib,game,ui,get,ai,_status){
animationColor:'gray', animationColor:'gray',
audio:true, audio:true,
unique:true, unique:true,
mark:true, limited:true,
trigger:{player:'phaseZhunbeiBegin'}, trigger:{player:'phaseZhunbeiBegin'},
//priority:10,
filter:function(event,player){
if(player.storage.zuixiang) return false;
return true;
},
check:function(event,player){
return player.countCards('h')<player.hp&&player.hp==player.maxHp;
},
content:function(){ content:function(){
"step 0" 'step 0'
var cards=get.cards(3);
player.storage.zuixiang=cards;
game.cardsGotoSpecial(cards);
player.showCards(player.storage.zuixiang);
player.markSkill('zuixiang');
player.syncStorage('zuixiang');
"step 1"
var cards=player.storage.zuixiang;
var bool=false;
for(var i=0;i<cards.length;i++){
for(var j=i+1;j<cards.length;j++){
if(cards[i].number==cards[j].number){
bool=true;
break;
}
}
if(bool) break;
}
if(bool){
player.gain(player.storage.zuixiang,'draw2').type='xinmanjuan';
player.storage.zuixiang=[];
player.awakenSkill('zuixiang'); player.awakenSkill('zuixiang');
event.cards=player.showCards(get.cards(3)).cards;
player.markAuto('zuixiang2',event.cards);
game.cardsGotoSpecial(event.cards);
'step 1'
if(lib.skill.zuixiang.filterSame(cards)){
player.gain(cards,'gain2').type='xinmanjuan';
delete player.storage.zuixiang2; delete player.storage.zuixiang2;
player.unmarkSkill('zuixiang2');
} }
else{ else{
player.storage.zuixiang2=[]; trigger._zuixiang=true;
for(var i=0;i<cards.length;i++){ player.addSkill('zuixiang2');
player.storage.zuixiang2.add(get.type(cards[i],'trick'));
}
}
player.storage.zuixiangtemp=true;
},
group:'zuixiang2',
intro:{
content:'cards',
onunmark:function(storage,player){
if(storage&&storage.length){
player.$throw(storage,1000);
game.cardsDiscard(storage);
game.log(storage,'被置入了弃牌堆');
storage.length=0;
} }
}, },
}, filterSame:function(c){
mod:{ for(var i=0;i<c.length;i++){
targetEnabled:function(card,player,target){ for(var j=i+1;j<c.length;j++){
if(target.storage.zuixiang2&&target.storage.zuixiang2.contains(get.type(card,'trick'))){ if(get.number(c[i])==get.number(c[j])) return true;
}
}
return false; return false;
}
}, },
cardEnabled:function(card,player){
if(player.storage.zuixiang2&&player.storage.zuixiang2.contains(get.type(card,'trick'))){
return false;
}
},
cardRespondable:function(card,player){
if(player.storage.zuixiang2&&player.storage.zuixiang2.contains(get.type(card,'trick'))){
return false;
}
},
cardSavable:function(card,player){
if(player.storage.zuixiang2&&player.storage.zuixiang2.contains(get.type(card,'trick'))){
return false;
}
}
}
}, },
zuixiang2:{ zuixiang2:{
unique:true, intro:{
trigger:{player:'phaseZhunbeiBegin'}, content:'cards',
//priority:9.5, onunmark:'throw',
filter:function(event,player){ },
if(player.storage.zuixiang&&player.storage.zuixiang.length) return true; mod:{
return false; cardEnabled:function(card,player){
var type=get.type2(card);
var list=player.getStorage('zuixiang2');
for(var i of list){
if(get.type2(i)==type) return false;
}
},
cardRespondable:function(){
return lib.skill.zuixiang2.mod.cardEnabled.apply(this,arguments)
},
cardSavable:function(){
return lib.skill.zuixiang2.mod.cardEnabled.apply(this,arguments);
},
},
trigger:{
player:'phaseZhunbeiBegin',
target:'useCardToBefore',
}, },
forced:true, forced:true,
popup:false, filter:function(event,player){
if(event.name=='phaseZhunbei') return !event._zuixiang;
var type=get.type2(event.card);
var list=player.getStorage('zuixiang2');
for(var i of list){
if(get.type2(i)==type) return true;
}
return false;
},
content:function(){ content:function(){
"step 0" 'step 0'
if(player.storage.zuixiangtemp){ if(event.triggername=='useCardToBefore'){
delete player.storage.zuixiangtemp; trigger.cancel();
event.finish(); event.finish();
return;
} }
else{
var cards=get.cards(3); var cards=get.cards(3);
player.storage.zuixiang.addArray(cards); player.markAuto('zuixiang2',cards);
player.showCards(player.storage.zuixiang2);
game.cardsGotoSpecial(cards); game.cardsGotoSpecial(cards);
//event.trigger('addCardToStorage'); 'step 1'
player.showCards(player.storage.zuixiang); var cards=player.getStorage('zuixiang2');
player.markSkill('zuixiang'); if(lib.skill.zuixiang.filterSame(cards)){
player.syncStorage('zuixiang'); player.gain(cards,'gain2','log').type='xinmanjuan';
}
"step 1"
var cards=player.storage.zuixiang;
var bool=false;
for(var i=0;i<cards.length;i++){
for(var j=i+1;j<cards.length;j++){
if(cards[i].number==cards[j].number){
bool=true;
break;
}
}
if(bool) break;
}
if(bool){
player.gain(player.storage.zuixiang,'draw2').type='xinmanjuan';
player.storage.zuixiang=[];
player.awakenSkill('zuixiang');
delete player.storage.zuixiang2; delete player.storage.zuixiang2;
player.removeSkill('zuixiang2');
} }
else{ },
player.storage.zuixiang2=[]; ai:{
for(var i=0;i<cards.length;i++){ effect:function(card,player,target){
player.storage.zuixiang2.add(get.type(cards[i])); var type=get.type2(card);
} var list=target.getStorage('zuixiang2');
for(var i of list){
if(get.type2(i)==type) return 'zeroplayertarget';
} }
}, },
}, },
},
naman:{ naman:{
audio:2, audio:2,
trigger:{global:'respondEnd'}, trigger:{global:'respondEnd'},
@ -10555,11 +10516,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{global:'phaseEnd'}, trigger:{global:'phaseEnd'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return event.player.hasSkill('rezhoufu3')&&event.player.isAlive(); return game.hasPlayer(function(current){
return current.hasSkill('rezhoufu3');
});
},
logTarget:function(current){
return game.filterPlayer(function(current){
return current.hasSkill('rezhoufu3');
}).sortBySeat();
}, },
logTarget:'player',
content:function(){ content:function(){
trigger.player.loseHp(); var targets=game.filterPlayer(function(current){
return current.hasSkill('rezhoufu3');
}).sortBySeat();
while(targets.length){
targets.shift().loseHp();
}
}, },
}, },
}, },
@ -14339,7 +14311,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.logSkill('xinfu_zhennan',result.targets); player.logSkill('xinfu_zhennan',result.targets);
var num=[1,2,3,1,1,2].randomGet(); var num=[1,2,3,1,1,2].randomGet();
if(get.isLuckyStar(player)) num=3; if(get.isLuckyStar(player)) num=3;
player.line(result.targets[0],'fire'); //player.line(result.targets[0],'fire');
result.targets[0].damage(num); result.targets[0].damage(num);
} }
}, },
@ -14704,7 +14676,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
caoying:"曹婴", caoying:"曹婴",
simahui:"司马徽", simahui:"司马徽",
baosanniang:"鲍三娘", baosanniang:"OL鲍三娘",
sp_xiahoushi:"SP夏侯氏", sp_xiahoushi:"SP夏侯氏",
pangdegong:"庞德公", pangdegong:"庞德公",
zhaotongzhaoguang:"赵统赵广", zhaotongzhaoguang:"赵统赵广",
@ -15174,6 +15146,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
oldxiemu:'协穆', oldxiemu:'协穆',
naman:'纳蛮', naman:'纳蛮',
zuixiang:'醉乡', zuixiang:'醉乡',
zuixiang2:'醉乡',
manjuan:'漫卷', manjuan:'漫卷',
taichen:'抬榇', taichen:'抬榇',
jilei:'鸡肋', jilei:'鸡肋',

View File

@ -4,7 +4,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2', name:'sp2',
connect:true, connect:true,
character:{ character:{
hejin:['male','qun',4,['spmouzhu']], xin_baosanniang:['male','shu',3,['xinfu_wuniang','decadexushen']],
re_hejin:['male','qun',4,['spmouzhu']],
hansui:['male','qun',4,['spniluan','spweiwu']], hansui:['male','qun',4,['spniluan','spweiwu']],
liuhong:['male','qun',4,['yujue','tuxing'],['unseen']], liuhong:['male','qun',4,['yujue','tuxing'],['unseen']],
zhujun:['male','qun',4,['gongjian','kuimang'],['unseen']], zhujun:['male','qun',4,['gongjian','kuimang'],['unseen']],
@ -64,11 +65,143 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_shengun:["puyuan","guanlu","gexuan","xushao"], sp_shengun:["puyuan","guanlu","gexuan","xushao"],
sp_baigei:['re_panfeng','xingdaorong','caoxing'], sp_baigei:['re_panfeng','xingdaorong','caoxing'],
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"], sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"],
sp_huangjin:['liuhong','zhujun','hejin','hansui'], sp_huangjin:['liuhong','zhujun','re_hejin','hansui'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_xinxianying','ol_yujin','re_maliang'], sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_xinxianying','ol_yujin','re_maliang','xin_baosanniang'],
} }
}, },
skill:{ skill:{
decadexushen:{
derivation:'decadezhennan',
audio:'xinfu_xushen',
subSkill:{
count:{
trigger:{
player:["recoverBegin","recoverAfter"],
},
forced:true,
silent:true,
popup:false,
filter:function(event,player,name){
if(name=='recoverAfter') return event.decadexushen===true;
if(!event.source||player==event.source) return false;
if(!player.isDying()||event.getParent('dying').player!=player) return false;
if(game.hasPlayer(function(current){
return current.name=='guansuo'||current.name2=='guansuo';
})) return false;
return true;
},
content:function(){
if(event.triggername=='recoverBegin') trigger.decadexushen=true;
else event.getParent('dying').decadexushen_source=trigger.source;
},
sub:true,
},
},
group:["decadexushen_count"],
trigger:{
player:"dyingAfter",
},
limited:true,
filter:function(event,player){
return event.decadexushen_source&&event.decadexushen_source.isAlive();
},
logTarget:'decadexushen_source',
skillAnimation:true,
animationColor:'fire',
content:function (){
'step 0'
player.awakenSkill('decadexushen');
event.target=trigger.decadexushen_source;
event.videoId=lib.status.videoId++;
var sex='伴侣';
switch(event.target.sex){
case 'male':sex='丈夫';break;
case 'female':sex='妻子';break;
}
game.broadcastAll(function(str,id){
var dialog=ui.create.dialog('许身','hidden');
dialog.videoId=id;
dialog.addText(str,false);
dialog.add(' ');
dialog.open();
},get.translation(player)+',你是否发誓嫁'+get.translation(event.target)+'作为你的'+sex+',无论顺境或是逆境,富裕或贫穷,健康或疾病,快乐或忧愁,风雨同舟,患难与共,同甘共苦,缔结神圣的婚姻契约,成为终生的伴侣?',event.videoId);
game.delay(4);
player.chooseBool().set('ai',function(){
var evt=_status.event.getParent();
return get.attitude(evt.player,evt.target)>0;
}).set('prompt',false);
'step 1'
if(result.bool){
player.chat('我愿意!');
var sex='伴侣';
switch(player.sex){
case 'male':sex='丈夫';break;
case 'female':sex='妻子';break;
}
game.broadcastAll(function(str,id){
var dialog=get.idDialog(id);
if(dialog) dialog.content.childNodes[1].innerHTML='<div class="text">'+str+'</div>';
},get.translation(target)+',你是否发誓娶'+get.translation(player)+'作为你的妻子,无论顺境或是逆境,富裕或贫穷,健康或疾病,快乐或忧愁,风雨同舟,患难与共,同甘共苦,缔结神圣的婚姻契约,成为终生的伴侣?',event.videoId);
game.delay(4);
target.chooseBool().set('ai',function(){
return true;
}).set('prompt',false);
}
else event.goto(4);
'step 2'
if(result.bool){
target.chat('我愿意!');
if(target.name2!=undefined){
target.chooseControl(target.name1,target.name2).set('prompt','请选择要更换的武将牌');
}
else event._result={control:target.name};
}
else event.goto(4);
'step 3'
target.reinit(result.control,'guansuo');
if(_status.characterlist){
_status.characterlist.add(result.control);
_status.characterlist.remove('guansuo');
}
if(target.group!='shu') target.changeGroup('shu');
target.draw(3);
'step 4'
game.broadcastAll('closeDialog',event.videoId);
player.recover();
player.addSkill('decadezhennan');
},
mark:true,
intro:{
content:"limited",
},
},
decadezhennan:{
audio:'xinfu_zhennan',
trigger:{
target:"useCardToTargeted",
},
filter:function (event,player){
return event.targets&&event.targets.length>1&&get.type2(event.card)=='trick';
},
direct:true,
content:function (){
"step 0"
player.chooseTarget(get.prompt('decadezhennan'),'对一名其他角色造成1点随机伤害',function(card,player,target){
return target!=player;
}).set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
});
"step 1"
if(result.bool&&result.targets&&result.targets.length){
player.logSkill('decadezhennan',result.targets);
result.targets[0].damage();
}
},
ai:{
expose:0.25,
},
},
yujue:{ yujue:{
derivation:'zhihu', derivation:'zhihu',
enable:'phaseUse', enable:'phaseUse',
@ -3477,6 +3610,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
lose:false, lose:false,
content:function(){ content:function(){
target.equip(cards[0]); target.equip(cards[0]);
if(cards[0].name.indexOf('pyzhuren_')==0) player.draw(2);
}, },
ai:{ ai:{
order:11, order:11,
@ -3505,12 +3639,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!player.countCards('h','sha')) return 4-get.value(card); if(!player.countCards('h','sha')) return 4-get.value(card);
return 0; return 0;
} }
return 2+card.number/2-get.value(card); return 7-get.value(card);
}, },
content:function(){ content:function(){
player.addSkill('pyzhuren_destroy');
if(!_status.pyzhuren) _status.pyzhuren={}; if(!_status.pyzhuren) _status.pyzhuren={};
var rand=get.number(cards[0])/13; var rand=0.85;
if(get.isLuckyStar(player)) rand=1; var num=get.number(cards[0]);
if(num>4) rand=0.9;
if(num>8) rand=0.95;
if(num>12||cards[0].name=='shandian'||get.isLuckyStar(player)) rand=1;
var name='pyzhuren_'+(cards[0][cards[0].name=='shandian'?'name':'suit']); var name='pyzhuren_'+(cards[0][cards[0].name=='shandian'?'name':'suit']);
if(!lib.card[name]||_status.pyzhuren[name]||Math.random()>rand){ if(!lib.card[name]||_status.pyzhuren[name]||Math.random()>rand){
player.popup('杯具'); player.popup('杯具');
@ -3531,11 +3669,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:1, player:1,
}, },
}, },
group:'pyzhuren_destroy',
}, },
pyzhuren_destroy:{ pyzhuren_destroy:{
trigger:{global:['loseAfter','cardsDiscardAfter']}, trigger:{global:['loseEnd','cardsDiscardEnd']},
forced:true, forced:true,
charlotte:true,
filter:function(event,player){ filter:function(event,player){
var cs=event.cards; var cs=event.cards;
for(var i=0;i<cs.length;i++){ for(var i=0;i<cs.length;i++){
@ -3562,6 +3700,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:true, audio:true,
trigger:{source:'damageSource'}, trigger:{source:'damageSource'},
usable:1, usable:1,
equipSkill:true,
filter:function(event,player){ filter:function(event,player){
return event.getParent().name=='sha'; return event.getParent().name=='sha';
}, },
@ -3571,27 +3710,37 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
'step 0' 'step 0'
player.judge(function(card){ player.judge(function(card){
return get.color(card)=='red'?1:-1; var player=_status.event.getParent('pyzhuren_heart').player;
if(player.isHealthy()&&get.color(card)=='red') return 0;
return 2;
}); });
'step 1' 'step 1'
if(result.bool) player.recover(); if(result.color=='red') player.recover();
else player.draw(2);
}, },
}, },
pyzhuren_diamond:{ pyzhuren_diamond:{
audio:true, audio:true,
trigger:{source:'damageBegin1'}, trigger:{source:'damageBegin1'},
direct:true, direct:true,
usable:2,
equipSkill:true,
mod:{
cardUsable:function(card,player,num){
if(card.name=='sha') return num+1;
},
},
filter:function(event,player){ filter:function(event,player){
if(event.getParent().name!='sha') return false; if(event.getParent().name!='sha') return false;
if(_status.connectMode) return player.countCards('h')>0; return player.countCards('he',function(card){
return player.countCards('h',this.filterCard)>0; return card!=player.getEquip('pyzhuren_diamond');
}, })>0;
filterCard:function(card){
return get.name(card)=='sha'||get.subtype(card)=='equip1';
}, },
content:function(){ content:function(){
'step 0' 'step 0'
var next=player.chooseToDiscard('h',lib.skill.pyzhuren_diamond.filterCard,get.prompt(event.name,trigger.player),'弃置一张【杀】或武器牌,令即将对其造成的伤害+1'); var next=player.chooseToDiscard('he',function(card,player){
return card!=player.getEquip('pyzhuren_diamond');
},get.prompt(event.name,trigger.player),'弃置一张牌,令即将对其造成的伤害+1');
next.ai=function(card){ next.ai=function(card){
if(_status.event.goon) return 6-get.value(card); if(_status.event.goon) return 6-get.value(card);
return -1; return -1;
@ -3603,6 +3752,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
next.logSkill=[event.name,trigger.player]; next.logSkill=[event.name,trigger.player];
'step 1' 'step 1'
if(result.bool) trigger.num++; if(result.bool) trigger.num++;
else player.storage.counttrigger.pyzhuren_diamond--;
}, },
ai:{ ai:{
expose:0.25, expose:0.25,
@ -3612,8 +3762,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:true, audio:true,
trigger:{player:'useCard2'}, trigger:{player:'useCard2'},
direct:true, direct:true,
equipSkill:true,
usable:2,
filter:function(event,player){ filter:function(event,player){
if(player.countUsed(null,true)>1) return false;
if(event.card.name!='sha'&&get.type(event.card)!='trick') return false; if(event.card.name!='sha'&&get.type(event.card)!='trick') return false;
var info=get.info(event.card); var info=get.info(event.card);
if(info.allowMultiple==false) return false; if(info.allowMultiple==false) return false;
@ -3644,6 +3795,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.targets=result.targets; event.targets=result.targets;
} }
else{ else{
player.storage.counttrigger[event.name]--;
event.finish(); event.finish();
} }
'step 2' 'step 2'
@ -3657,14 +3809,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:true, audio:true,
trigger:{player:'useCardToPlayered'}, trigger:{player:'useCardToPlayered'},
filter:function(event,player){ filter:function(event,player){
return event.card.name=='sha'&&event.targets.length==1&&get.color(event.card)=='black'; return event.card.name=='sha';//&&event.targets.length==1&&get.color(event.card)=='black';
}, },
check:function(event,player){ check:function(event,player){
return get.attitude(player,event.target)<=0; return get.attitude(player,event.target)<=0;
}, },
logTarget:'target',
content:function(){ content:function(){
trigger.target.gain(trigger.cards.filterInD(),'gain2','log'); player.addTempSkill('pyzhuren_spade2');
trigger.target.loseHp().set('source',player); player.addMark('pyzhuren_spade2',1,false);
//trigger.target.gain(trigger.cards.filterInD(),'gain2','log');
trigger.target.loseHp(Math.min(player.countMark('pyzhuren_spade2'),5)).set('source',player);
}, },
ai:{ ai:{
jueqing:true, jueqing:true,
@ -3677,25 +3832,34 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
}, },
pyzhuren_spade2:{onremove:true},
pyzhuren_shandian:{ pyzhuren_shandian:{
audio:true, audio:true,
trigger:{player:'useCardToPlayered'}, trigger:{player:'useCardToPlayered'},
filter:function(event,player){ filter:function(event,player){
return event.card.name=='sha'&&event.targets.length==1; return event.card.name=='sha';//&&event.targets.length==1;
}, },
check:function(event,player){ check:function(event,player){
return get.attitude(player,event.target)<=0; return get.attitude(player,event.target)<=0;
}, },
logTarget:'target',
content:function(){ content:function(){
'step 0' 'step 0'
player.judge(function(card){ trigger.target.judge(function(card){
if(get.suit(card)=='spade'&&card.number>1&&card.number<10) return 10; var suit=get.suit(card);
if(suit=='spade') return -10;
if(suit=='club') return -5;
return 0; return 0;
}); });
'step 1' 'step 1'
if(result.bool){ if(result.suit=='spade'){
trigger.target.damage(3,'thunder'); trigger.target.damage(3,'thunder');
trigger.getParent().excluded.add(trigger.target); //trigger.getParent().excluded.add(trigger.target);
}
else if(result.suit=='club'){
trigger.target.damage('thunder');
player.recover();
player.draw();
} }
}, },
}, },
@ -5414,7 +5578,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
skills:['pyzhuren_heart'], skills:['pyzhuren_heart'],
ai:{ ai:{
basic:{ basic:{
equipValue:2 equipValue:4
} }
}, },
}, },
@ -5427,7 +5591,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
skills:['pyzhuren_diamond'], skills:['pyzhuren_diamond'],
ai:{ ai:{
basic:{ basic:{
equipValue:2 equipValue:3
} }
}, },
}, },
@ -5440,9 +5604,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
skills:['pyzhuren_club'], skills:['pyzhuren_club'],
ai:{ ai:{
basic:{ basic:{
equipValue:2 equipValue:5
} }
}, },
loseDelay:false,
onLose:function(){
var next=game.createEvent('baiyin_recover');
event.next.remove(next);
var evt=event.getParent();
if(evt.getlx===false) evt=evt.getParent();
evt.after.push(next);
next.player=player;
next.setContent(function(){
if(player.isDamaged()) player.logSkill('pyzhuren_club');
player.recover();
});
},
}, },
pyzhuren_spade:{ pyzhuren_spade:{
fullskin:true, fullskin:true,
@ -5452,7 +5629,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
skills:['pyzhuren_spade'], skills:['pyzhuren_spade'],
ai:{ ai:{
basic:{ basic:{
equipValue:2.6 equipValue:3
} }
}, },
}, },
@ -5465,7 +5642,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
skills:['pyzhuren_shandian'], skills:['pyzhuren_shandian'],
ai:{ ai:{
basic:{ basic:{
equipValue:2 equipValue:3
} }
}, },
}, },
@ -5653,21 +5830,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
pingjian_info:'结束阶段开始时/当你受到伤害后/出牌阶段限一次,你可以令系统随机从剩余武将牌堆中检索出三张拥有发动时机为结束阶段开始时/当你受到伤害后/出牌阶段的技能的武将牌。然后你可以选择尝试发动其中一个技能或摸一张牌。每个技能每局只能选择一次。', pingjian_info:'结束阶段开始时/当你受到伤害后/出牌阶段限一次,你可以令系统随机从剩余武将牌堆中检索出三张拥有发动时机为结束阶段开始时/当你受到伤害后/出牌阶段的技能的武将牌。然后你可以选择尝试发动其中一个技能或摸一张牌。每个技能每局只能选择一次。',
pingjian_use:'评荐', pingjian_use:'评荐',
pytianjiang:'天匠', pytianjiang:'天匠',
pytianjiang_info:'游戏开始时,你随机获得两张不同副类别的装备牌,并置入你的装备区。出牌阶段,你可以将装备区内的牌移动到其他角色的装备区(可替换原装备)。', pytianjiang_info:'游戏开始时,你随机获得两张不同副类别的装备牌,并置入你的装备区。出牌阶段,你装备区里的牌可以移动至其他角色的装备区并替换其原有装备。',
pytianjiang_move:'天匠', pytianjiang_move:'天匠',
pyzhuren:'铸刃', pyzhuren:'铸刃',
pyzhuren_info:'出牌阶段限一次,你可以弃置一张手牌。根据此牌的花色点数,你有一定概率打造成功并获得一张武器牌(若打造失败或武器已有则改为摸一张【杀】,花色决定武器名称,点数决定成功率)。此武器牌进入弃牌堆时,将其移出游戏。', pyzhuren_info:'出牌阶段限一次,你可以弃置一张手牌。根据此牌的花色点数,你有一定概率打造成功并获得一张武器牌(若打造失败或武器已有则改为摸一张【杀】,花色决定武器名称,点数决定成功率)。此武器牌进入弃牌堆时,将其移出游戏。',
pyzhuren_destroy:'铸刃', pyzhuren_destroy:'铸刃',
pyzhuren_heart:'红缎枪', pyzhuren_heart:'红缎枪',
pyzhuren_heart_info:'每回合限一次,当你使用【杀】造成伤害后,你可以进行判定,若结果为红色你回复1点体力。', pyzhuren_heart_info:'每回合限一次,当你使用【杀】造成伤害后,你可以进行判定,若结果为红色你回复1点体力;黑色:你摸两张牌。',
pyzhuren_diamond:'烈淬刀', pyzhuren_diamond:'烈淬刀',
pyzhuren_diamond_info:'当你使用【杀】对目标角色造成伤害时,你可以弃置一张【杀】或武器牌,令此伤害+1。', pyzhuren_diamond_info:'每回合限两次,当你使用【杀】对目标角色造成伤害时,你可以弃置一张牌,令此伤害+1。你使用【杀】的次数上限+1。',
pyzhuren_club:'水波剑', pyzhuren_club:'水波剑',
pyzhuren_club_info:'当你于出牌阶段使用第一张牌时,若此牌是普通锦囊牌或【杀】,你可以为此牌增加一个目标。', pyzhuren_club_info:'每回合限两次,当你使用普通锦囊牌或【杀】,你可以为此牌增加一个目标。当你失去装备区里的【水波剑】后你回复1点体力。',
pyzhuren_spade:'混毒弯匕', pyzhuren_spade:'混毒弯匕',
pyzhuren_spade_info:'当你使用的黑色【杀】指定单一目标后你可令该角色获得此【杀】然后其失去1点体力。', pyzhuren_spade_info:'当你使用【杀】指定目标后你可令其失去X点体力X为此技能本回合内发动过的次数且至多为5。',
pyzhuren_shandian:'天雷刃', pyzhuren_shandian:'天雷刃',
pyzhuren_shandian_info:'当你使用【杀】仅指定一名角色为目标后可令其进行一次判定若结果为黑桃2~黑桃9该角色受到3点雷电伤害然后此【杀】对其无效。', pyzhuren_shandian_info:'当你使用【杀】指定目标后可令其进行判定若结果为黑桃其受到3点雷属性伤害梅花其受到1点雷属性伤害你回复1点体力并摸一张牌。',
songshu:'颂蜀', songshu:'颂蜀',
songshu_info:'出牌阶段,你可以和其他角色拼点。若你没赢,其摸两张牌,且你本阶段内不能再发动〖颂蜀〗', songshu_info:'出牌阶段,你可以和其他角色拼点。若你没赢,其摸两张牌,且你本阶段内不能再发动〖颂蜀〗',
@ -5844,6 +6021,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tuxing:'图兴', tuxing:'图兴',
tuxing2:'图兴', tuxing2:'图兴',
tuxing_info:'锁定技当你废除一个装备栏时你加1点体力上限并回复1点体力。然后若你所有的装备栏均已被废除则你减4点体力上限且本局游戏内使用【杀】造成的伤害+1。', tuxing_info:'锁定技当你废除一个装备栏时你加1点体力上限并回复1点体力。然后若你所有的装备栏均已被废除则你减4点体力上限且本局游戏内使用【杀】造成的伤害+1。',
re_hejin:'何进',
xin_baosanniang:'鲍三娘',
decadexushen:"许身",
decadexushen_info:"限定技,当你因其他角色而脱离濒死状态后,若场上没有“关索”,则你可发动此技能。你可令其选择是否将自己的一张武将牌变更为“关索”并摸三张牌。然后你回复一点体力,并获得技能〖镇南〗。",
decadezhennan:"镇南",
decadezhennan_info:"当你成为锦囊牌的目标后若此牌的目标数大于1则你可以对一名其他角色造成1点伤害。",
sp_whlw:"文和乱武", sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原", sp_zlzy:"逐鹿中原",

View File

@ -62,11 +62,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
hanhaoshihuan:['male','wei',4,['shenduan','yonglve']], hanhaoshihuan:['male','wei',4,['shenduan','yonglve']],
caorui:['male','wei',3,['huituo','mingjian','xingshuai'],['zhu']], caorui:['male','wei',3,['huituo','mingjian','xingshuai'],['zhu']],
caoxiu:['male','wei',4,['qianju','reqingxi']], caoxiu:['male','wei',4,['qianju','qingxi']],
zhongyao:['male','wei',3,['huomo','zuoding']], zhongyao:['male','wei',3,['huomo','zuoding']],
liuchen:['male','shu',4,['zhanjue','qinwang'],['zhu']], liuchen:['male','shu',4,['zhanjue','qinwang'],['zhu']],
zhangyi:['male','shu',4,['wurong','shizhi']], zhangyi:['male','shu',4,['wurong','shizhi']],
sunxiu:['male','wu',3,['reyanzhu','rexingxue','rezhaofu'],['zhu']], sunxiu:['male','wu',3,['yanzhu','xingxue','zhaofu'],['zhu']],
zhuzhi:['male','wu',4,['xinanguo']], zhuzhi:['male','wu',4,['xinanguo']],
quancong:['male','wu',4,['yaoming']], quancong:['male','wu',4,['yaoming']],
gongsunyuan:['male','qun',4,['huaiyi']], gongsunyuan:['male','qun',4,['huaiyi']],
@ -320,7 +320,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return player.countCards('he')>0; return player.countCards('he')>0;
}, },
content:function(){ content:function(){
player.chooseToDiscard('是否发动【伤逝】弃置一张牌?').set('logSkill','reshangshi').set('ai',function(card){ player.chooseToDiscard('是否发动【伤逝】弃置一张牌?','he').set('logSkill','reshangshi').set('ai',function(card){
var player=_status.event.player; var player=_status.event.player;
if(player.countCards('h')>player.getDamagedHp()+_status.event.getTrigger().num) return 1; if(player.countCards('h')>player.getDamagedHp()+_status.event.getTrigger().num) return 1;
if(player.isPhaseUsing()) return 0.1-player.getUseValue(card,null,true)/Math.max(0.1,get.value(card)); if(player.isPhaseUsing()) return 0.1-player.getUseValue(card,null,true)/Math.max(0.1,get.value(card));
@ -4974,7 +4974,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
reqingxi:{ reqingxi:{
audio:'qingxi', audio:2,
trigger:{player:'useCardToPlayered'}, trigger:{player:'useCardToPlayered'},
filter:function(event,player){ filter:function(event,player){
return event.card.name=='sha'||event.card.name=='juedou'; return event.card.name=='sha'||event.card.name=='juedou';
@ -5024,25 +5024,25 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!map[id]) map[id]={}; if(!map[id]) map[id]={};
if(!map[id].extraDamage) map[id].extraDamage=0; if(!map[id].extraDamage) map[id].extraDamage=0;
map[id].extraDamage++; map[id].extraDamage++;
trigger.target.judge(function(card){ player.judge(function(card){
if(get.color(card)=='red') return -1; if(get.color(card)=='red') return 1;
return 0; return 0;
}); });
} }
'step 2' 'step 2'
if(result.bool===false) trigger.directHit.add(trigger.target); if(result.color=='red') trigger.directHit.add(trigger.target);
} }
}, },
reqingxi2:{ reqingxi2:{
mod:{ mod:{
cardEnabled:function(card,player){ cardEnabled:function(card,player){
if(player.storage.reqingxi2&&player.storage.reqingxi2.filter(function(cd){ if(player.storage.reqingxi2&&player.storage.reqingxi2.filter(function(cd){
return get.color(cd)!=get.color(card); return get.color(cd)==get.color(card);
}).length) return false; }).length) return false;
}, },
cardRespondable:function(card,player){ cardRespondable:function(card,player){
if(player.storage.reqingxi2&&player.storage.reqingxi2.filter(function(cd){ if(player.storage.reqingxi2&&player.storage.reqingxi2.filter(function(cd){
return get.color(cd)!=get.color(card); return get.color(cd)==get.color(card);
}).length) return false; }).length) return false;
}, },
}, },
@ -6423,7 +6423,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
reyanzhu:{ reyanzhu:{
enable:'phaseUse', enable:'phaseUse',
audio:'yanzhu', audio:2,
usable:1, usable:1,
filterTarget:lib.filter.notMe, filterTarget:lib.filter.notMe,
derivation:['reyanzhu_rewrite','rexingxue_rewrite'], derivation:['reyanzhu_rewrite','rexingxue_rewrite'],
@ -6480,13 +6480,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rexingxue:{ rexingxue:{
trigger:{player:'phaseJieshuBegin'}, trigger:{player:'phaseJieshuBegin'},
direct:true, direct:true,
audio:'xingxue', audio:2,
filter:function(event,player){ filter:function(event,player){
return (player.storage.reyanzhu?player.hp:player.maxHp)>0; return (player.storage.reyanzhu?player.maxHp:player.hp)>0;
}, },
content:function(){ content:function(){
'step 0' 'step 0'
player.chooseTarget([1,(player.storage.reyanzhu?player.maxHp:player.hp)],get.prompt('rexingxue'),'令所有目标角色依次摸一张牌,然后所有手牌数不等于体力值的目标角色依次将一张牌置于牌堆顶').set('ai',function(target){ player.chooseTarget([1,player.storage.reyanzhu?player.maxHp:player.hp],get.prompt('rexingxue'),'令所有目标角色依次摸一张牌,然后所有手牌数于体力值的目标角色依次将一张牌置于牌堆顶').set('ai',function(target){
var att=get.attitude(player,target); var att=get.attitude(player,target);
if(target.countCards('h')==target.hp-1) att*=2; if(target.countCards('h')==target.hp-1) att*=2;
return att; return att;
@ -6507,7 +6507,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
else event.finish(); else event.finish();
'step 4' 'step 4'
if(target.isAlive()&&target.countCards('h')&&target.countCards('h')!=target.hp) target.chooseCard('he',true,'将一张牌置于牌堆顶'); if(target.isAlive()&&target.countCards('h')&&target.countCards('h')>target.hp) target.chooseCard('he',true,'将一张牌置于牌堆顶');
else event.goto(3); else event.goto(3);
'step 5' 'step 5'
if(result&&result.cards){ if(result&&result.cards){
@ -12085,8 +12085,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return '出牌阶段限一次,你可以选择一名其他角色。该角色下一次受到的伤害+1直到其下回合开始。'; return '出牌阶段限一次,你可以选择一名其他角色。该角色下一次受到的伤害+1直到其下回合开始。';
}, },
rexingxue:function(player){ rexingxue:function(player){
if(player.storage.reyanzhu) return '结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力上限。'; if(player.storage.reyanzhu) return '结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力上限。';
return '结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力值。'; return '结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力值。';
}, },
jiaozhao:function(player){ jiaozhao:function(player){
if(player.storage.jiaozhao2) return '出牌阶段限一次,你可以展示一张手牌,然后声明一张基本牌或普通锦囊牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标。'; if(player.storage.jiaozhao2) return '出牌阶段限一次,你可以展示一张手牌,然后声明一张基本牌或普通锦囊牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标。';
@ -12309,7 +12309,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
reqianju:'千驹', reqianju:'千驹',
reqianju_info:'锁定技,若你已受伤,你计算与其他角色的距离时-XX为你已损失的体力值且至少为1。', reqianju_info:'锁定技,若你已受伤,你计算与其他角色的距离时-XX为你已损失的体力值且至少为1。',
reqingxi:'倾袭', reqingxi:'倾袭',
reqingxi_info:'当你使用【杀】或【决斗】指定目标后你可以令其选择一项1、弃置X张手牌X为你攻击范围内的角色数且当你装备区内有武器牌/没有武器牌时至多为4/2若如此做其弃置你的此武器牌2、令此牌的伤害值+1且进行判定,若结果为红色,则其不能响应此牌。', reqingxi_info:'当你使用【杀】或【决斗】指定目标后你可以令其选择一项1、弃置X张手牌X为你攻击范围内的角色数且当你装备区内有武器牌/没有武器牌时至多为4/2若如此做其弃置你的此武器牌2、令此牌的伤害值+1且进行判定,若结果为红色,则其不能响应此牌。',
jieyue:'节钺', jieyue:'节钺',
jieyue1:'节钺', jieyue1:'节钺',
jieyue2:'节钺', jieyue2:'节钺',
@ -12381,9 +12381,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
reyanzhu_rewrite:'宴诛·改', reyanzhu_rewrite:'宴诛·改',
reyanzhu_rewrite_info:'出牌阶段限一次,你可以选择一名其他角色。该角色下一次受到的伤害+1直到其下回合开始。', reyanzhu_rewrite_info:'出牌阶段限一次,你可以选择一名其他角色。该角色下一次受到的伤害+1直到其下回合开始。',
rexingxue:'兴学', rexingxue:'兴学',
rexingxue_info:'结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力值。', rexingxue_info:'结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力值。',
rexingxue_rewrite:'兴学·改', rexingxue_rewrite:'兴学·改',
rexingxue_rewrite_info:'结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力上限。', rexingxue_rewrite_info:'结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力上限。',
rezhaofu:'诏缚', rezhaofu:'诏缚',
rezhaofu_info:'主公技,锁定技,你攻击范围内的角色视为在其他吴势力角色的攻击范围内。', rezhaofu_info:'主公技,锁定技,你攻击范围内的角色视为在其他吴势力角色的攻击范围内。',
wurong:'怃戎', wurong:'怃戎',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[ window.noname_asset_list=[
'v1.9.105.7', 'v1.9.105.8',
'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3', 'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3', 'audio/background/aozhan_rewrite.mp3',
@ -632,6 +632,8 @@ window.noname_asset_list=[
'audio/die/re_yufan.mp3', 'audio/die/re_yufan.mp3',
'audio/die/xin_jianyong.mp3', 'audio/die/xin_jianyong.mp3',
'audio/die/sp_zhangliao.mp3', 'audio/die/sp_zhangliao.mp3',
'audio/die/re_caoxiu.mp3',
'audio/die/re_sunxiu.mp3',
'audio/skill/anguo1.mp3', 'audio/skill/anguo1.mp3',
'audio/skill/anguo2.mp3', 'audio/skill/anguo2.mp3',
@ -2789,6 +2791,12 @@ window.noname_asset_list=[
'audio/skill/mubing2.mp3', 'audio/skill/mubing2.mp3',
'audio/skill/ziqu1.mp3', 'audio/skill/ziqu1.mp3',
'audio/skill/ziqu2.mp3', 'audio/skill/ziqu2.mp3',
'audio/skill/reqingxi1.mp3',
'audio/skill/reqingxi2.mp3',
'audio/skill/rexingxue1.mp3',
'audio/skill/rexingxue2.mp3',
'audio/skill/reyanzhu1.mp3',
'audio/skill/reyanzhu2.mp3',
'font/huangcao.ttf', 'font/huangcao.ttf',
'font/shousha.ttf', 'font/shousha.ttf',
@ -3429,6 +3437,10 @@ window.noname_asset_list=[
'image/character/ol_yuanshu.jpg', 'image/character/ol_yuanshu.jpg',
'image/character/key_kotori.jpg', 'image/character/key_kotori.jpg',
'image/character/key_ryoichi.jpg', 'image/character/key_ryoichi.jpg',
'image/character/re_caoxiu.jpg',
'image/character/re_hejin.jpg',
'image/character/re_sunxiu.jpg',
'image/character/xin_baosanniang.jpg',
'image/character/baiwuchang.jpg', 'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg', 'image/character/baosanniang.jpg',

View File

@ -11653,7 +11653,7 @@
} }
event.backup(event.buttoned+'_backup'); event.backup(event.buttoned+'_backup');
if(info.prompt){ if(info.prompt){
event.openskilldialog=info.prompt(result.links,player); event.openskilldialog=info.prompt(info.chooseControl?result:result.links,player);
} }
} }
else{ else{
@ -48511,8 +48511,19 @@
} }
if(type=='in'){ if(type=='in'){
if(info.enable=='phaseUse') num+=0.5; if(info.enable=='phaseUse') num+=0.5;
if(info.trigger&&['phaseBegin','phaseDrawBegin','phaseUseBegin','phaseEnd'].contains(info.trigger.player)){ if(info.trigger&&info.trigger.player){
var list=Array.isArray(info.trigger.player)?info.trigger.player:[info.trigger.player];
var add=false;
for(var i of list){
for(var j of lib.phaseName){
if(i.indexOf[j]==0){
num+=0.5; num+=0.5;
add=true;
break;
}
}
if(add) break;
}
} }
if(info.trigger&&((typeof info.trigger.player=='string'&&info.trigger.player.indexOf('use')==0)||info.trigger.source)){ if(info.trigger&&((typeof info.trigger.player=='string'&&info.trigger.player.indexOf('use')==0)||info.trigger.source)){
num+=0.3; num+=0.3;

View File

@ -1,8 +1,8 @@
window.noname_update={ window.noname_update={
version:'1.9.105.7', version:'1.9.105.8',
update:'1.9.105.6.1', update:'1.9.105.7',
changeLog:[ changeLog:[
'神户小鸟、三谷良一', '界曹休、界孙休、新鲍三娘',
'bug修复', 'bug修复',
], ],
@ -21,33 +21,33 @@ window.noname_update={
//'card/zhulu.js', //'card/zhulu.js',
'character/diy.js', 'character/diy.js',
//'character/extra.js', //'character/extra.js',
//'character/hearth.js', 'character/hearth.js',
//'character/gujian.js', //'character/gujian.js',
//'character/gwent.js', //'character/gwent.js',
//'character/hearth.js', //'character/hearth.js',
'character/mobile.js', 'character/mobile.js',
//'character/mtg.js', //'character/mtg.js',
'character/old.js', //'character/old.js',
'character/refresh.js', 'character/refresh.js',
'character/shenhua.js', //'character/shenhua.js',
'character/sp.js', 'character/sp.js',
'character/sp2.js', 'character/sp2.js',
//'character/tw.js', //'character/tw.js',
'character/standard.js', //'character/standard.js',
//'character/swd.js', //'character/swd.js',
//'character/xianjian.js', //'character/xianjian.js',
'character/xinghuoliaoyuan.js', //'character/xinghuoliaoyuan.js',
'character/yijiang.js', 'character/yijiang.js',
//'character/yxs.js', //'character/yxs.js',
//'extension/boss/extension.js', //'extension/boss/extension.js',
//'layout/default/layout.css', //'layout/default/layout.css',
//'layout/nova/layout.css', //'layout/nova/layout.css',
//'mode/identity.js', 'mode/identity.js',
//'mode/doudizhu.js', //'mode/doudizhu.js',
'mode/guozhan.js', 'mode/guozhan.js',
//'mode/chess.js', 'mode/chess.js',
//'mode/tafang.js', 'mode/tafang.js',
//'mode/single.js', 'mode/single.js',
//'mode/stone.js', //'mode/stone.js',
//'mode/brawl.js', //'mode/brawl.js',
//'mode/versus.js', //'mode/versus.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

BIN
image/skin/key_yui/3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 KiB

View File

@ -781,6 +781,20 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
return false; return false;
}, },
dieAfter2:function(){
var player=this;
delete lib.posmap[player.dataset.position];
setTimeout(function(){
player.delete();
},500);
for(var i=0;i<ui.phasequeue.length;i++){
if(ui.phasequeue[i].link==player){
ui.phasequeue[i].remove();
ui.phasequeue.splice(i,1);
break;
}
}
},
dieAfter:function(source){ dieAfter:function(source){
var player=this; var player=this;
if(_status.friends){ if(_status.friends){
@ -795,17 +809,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(ui.enemyDied&&player.side!=game.me.side){ if(ui.enemyDied&&player.side!=game.me.side){
ui.enemyDied.innerHTML='杀敌: '+get.cnNumber(++_status.enemyDied,true); ui.enemyDied.innerHTML='杀敌: '+get.cnNumber(++_status.enemyDied,true);
} }
delete lib.posmap[player.dataset.position];
setTimeout(function(){
player.delete();
},500);
for(var i=0;i<ui.phasequeue.length;i++){
if(ui.phasequeue[i].link==player){
ui.phasequeue[i].remove();
ui.phasequeue.splice(i,1);
break;
}
}
if(player==game.friendZhu){ if(player==game.friendZhu){
if(game.friendViceZhu&&game.friendViceZhu.isAlive()){ if(game.friendViceZhu&&game.friendViceZhu.isAlive()){
game.friendZhu=game.friendViceZhu; game.friendZhu=game.friendViceZhu;

View File

@ -6597,7 +6597,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
game:{ game:{
getCharacterChoice:function(list,num){ getCharacterChoice:function(list,num){
var choice=list.splice(0,num); var choice=list.splice(0,num);
var map={wei:[],shu:[],wu:[],qun:[]}; var map={wei:[],shu:[],wu:[],qun:[],key:[]};
for(var i=0;i<choice.length;i++){ for(var i=0;i<choice.length;i++){
var group=lib.character[choice[i]][1]; var group=lib.character[choice[i]][1];
if(map[group]){ if(map[group]){

View File

@ -1412,6 +1412,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
list3.push(i); list3.push(i);
} }
} }
list2.sort(lib.sort.character);
event.list.randomSort(); event.list.randomSort();
_status.characterlist=event.list.slice(0); _status.characterlist=event.list.slice(0);
list3.randomSort(); list3.randomSort();

View File

@ -965,22 +965,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
}, },
suzi:{ suzi:{
audio:2, inherit:'xingshang',
trigger:{global:'loseAfter'},
filter:function(event,player){
if(event.getParent().name!='die') return false;
for(var i=0;i<event.cards.length;i++){
if(get.position(event.cards[i])=='d') return true;
}
return false;
},
content:function(){
var list=[];
for(var i=0;i<trigger.cards.length;i++){
if(get.position(trigger.cards[i])=='d') list.push(trigger.cards[i]);
}
player.gain(list,'gain2');
},
}, },
cangji:{ cangji:{
trigger:{player:'die'}, trigger:{player:'die'},
@ -1197,7 +1182,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
sgkuanggu:'狂骨', sgkuanggu:'狂骨',
sgkuanggu_info:'当你造成伤害后若你已受伤你可以进行判定若结果为黑色你回复1点体力。', sgkuanggu_info:'当你造成伤害后若你已受伤你可以进行判定若结果为黑色你回复1点体力。',
suzi:'肃资', suzi:'肃资',
suzi_info:'当其他角色区域内的牌因死亡而进入弃牌堆后,你可以获得之。',
cangji:'藏机', cangji:'藏机',
cangji_info:'当你死亡时,你可以将装备区内的所有牌移动到游戏外。若如此做,你的下一名角色登场时,你将这些牌置入你的装备区。', cangji_info:'当你死亡时,你可以将装备区内的所有牌移动到游戏外。若如此做,你的下一名角色登场时,你将这些牌置入你的装备区。',
sgrenwang:'仁望', sgrenwang:'仁望',

View File

@ -262,14 +262,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
}, },
player:{ player:{
dieAfter:function(source){ dieAfter2:function(){
var player=this; var player=this;
if(_status.friends){
_status.friends.remove(this);
}
if(_status.enemies){
_status.enemies.remove(this);
}
delete lib.posmap[player.dataset.position]; delete lib.posmap[player.dataset.position];
setTimeout(function(){ setTimeout(function(){
player.delete(); player.delete();
@ -281,6 +275,15 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
break; break;
} }
} }
},
dieAfter:function(source){
var player=this;
if(_status.friends){
_status.friends.remove(this);
}
if(_status.enemies){
_status.enemies.remove(this);
}
if(player==game.me){ if(player==game.me){
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
if(game.players[i].side==player.side){ if(game.players[i].side==player.side){