音無 雅美
This commit is contained in:
parent
13f8c13449
commit
303f2b578e
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1146,7 +1146,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
chooseButton:{
|
||||
dialog:function(){
|
||||
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);
|
||||
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;
|
||||
var sha=player.countCards('h','sha');
|
||||
switch(name){
|
||||
case 'zhuge':
|
||||
case 'rewrite_zhuge':
|
||||
return sha-player.getCardUsable('sha');
|
||||
case 'guding':
|
||||
if(sha>0&&game.hasPlayer(function(current){
|
||||
|
@ -1272,7 +1274,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
content:function(){
|
||||
'step 0'
|
||||
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);
|
||||
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':
|
||||
if(player.hp>2||player.getEquip('bagua')||player.getEquip('tengjia')) return 1.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();
|
||||
return 1.2+Math.random();
|
||||
case 'tengjia':
|
||||
case 'rewrite_tengjia':
|
||||
if(player.getEquip('baiyin')) return 1.3+Math.random();
|
||||
return Math.random();
|
||||
case 'baiyin':
|
||||
case 'rewrite_baiyin':
|
||||
return 0.4+Math.random();
|
||||
default: return 0;
|
||||
}
|
||||
|
|
|
@ -313,7 +313,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
forced:true,
|
||||
priority:-1,
|
||||
filter:function(event,player){
|
||||
return event.card==player.storage.wxuying;
|
||||
return event.cards.contains(player.storage.wxuying);
|
||||
},
|
||||
content:function(){
|
||||
if(_status.currentPhase==player){
|
||||
|
@ -1379,6 +1379,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.discard(cards);
|
||||
if(event.position=='e'){
|
||||
var name=cards[0].name;
|
||||
if(name.indexOf('hstianqi_')!=0) return;
|
||||
for(var i=0;i<player.storage.hstianqi.length;i++){
|
||||
if(player.storage.hstianqi[i].name==name){
|
||||
return;
|
||||
|
|
|
@ -1583,7 +1583,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
else event.finish();
|
||||
'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);
|
||||
return 0;
|
||||
}).set('goon',get.attitude(trigger.player,player)<0);
|
||||
|
|
|
@ -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_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','re_yufan','re_liru','re_manchong'],
|
||||
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,
|
||||
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']],
|
||||
re_gongsunzan:['male','qun',4,['reqiaomeng','reyicong']],
|
||||
re_manchong:['male','wei',3,['rejunxing','yuce']],
|
||||
|
@ -167,7 +169,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function(){
|
||||
"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;
|
||||
if(player.isTurnedOver()) return -1;
|
||||
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'],
|
||||
trigger:{
|
||||
player:['loseAfter','phaseDiscardEnd'],
|
||||
global:['equipAfter','addJudgeAfter','addJudgeAfter'],
|
||||
global:['equipAfter','addJudgeAfter','gainAfter'],
|
||||
},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
|
@ -3082,6 +3084,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
_status.noclearcountdown=true;
|
||||
event.videoId=lib.status.videoId++;
|
||||
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()){
|
||||
player.send(function(cards,id){
|
||||
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';
|
||||
}
|
||||
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"
|
||||
event.control=result.control;
|
||||
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);
|
||||
}
|
||||
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 func=function(id,prompt){
|
||||
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);
|
||||
list.push('返回');
|
||||
player.chooseControl(list);
|
||||
player.chooseControl(list).set('choice',event.aiChoice).set('ai',function(){
|
||||
return _status.event.choice;
|
||||
});
|
||||
}
|
||||
else{
|
||||
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:'界孙坚',
|
||||
wulie:'武烈',
|
||||
wulie2:'武烈',
|
||||
wulie_info:'限定技,结束阶段,你可以失去任意点体力并指定等量的角色。这些角色各获得一枚「烈」。有「烈」的其他角色受到伤害时,其移去一枚「烈」,然后防止此伤害。',
|
||||
wulie_info:'限定技,结束阶段,你可以失去任意点体力并指定等量的其他角色。这些角色各获得一枚「烈」。有「烈」的角色受到伤害时,其移去一枚「烈」,然后防止此伤害。',
|
||||
re_sunluban:'界孙鲁班',
|
||||
re_masu:'界马谡',
|
||||
ol_pangde:'界庞德',
|
||||
|
@ -7927,6 +7955,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
olzaoxian:'凿险',
|
||||
oltuntian_info:'当你于回合外失去牌后,或于弃牌阶段因弃置而失去【杀】后,你可以进行判定。若判定结果不为♥,则你将此牌置于你的武将牌上,称之为【田】。锁定技,你计算与其他角色的距离时-X(X为你武将牌上【田】的数目)',
|
||||
olzaoxian_info:'觉醒技,准备阶段,若你武将牌上【田】的数量达到3张或更多,则你减1点体力上限,并获得技能〖急袭〗。你于当前回合结束后进行一个额外的回合。',
|
||||
re_sunxiu:'界孙休',
|
||||
re_caoxiu:'界曹休',
|
||||
|
||||
refresh_standard:'界限突破·标',
|
||||
refresh_feng:'界限突破·风',
|
||||
|
|
207
character/sp.js
207
character/sp.js
|
@ -10192,134 +10192,95 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
animationColor:'gray',
|
||||
audio:true,
|
||||
unique:true,
|
||||
mark:true,
|
||||
limited:true,
|
||||
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(){
|
||||
"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');
|
||||
'step 0'
|
||||
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;
|
||||
player.unmarkSkill('zuixiang2');
|
||||
}
|
||||
else{
|
||||
player.storage.zuixiang2=[];
|
||||
for(var i=0;i<cards.length;i++){
|
||||
player.storage.zuixiang2.add(get.type(cards[i],'trick'));
|
||||
trigger._zuixiang=true;
|
||||
player.addSkill('zuixiang2');
|
||||
}
|
||||
},
|
||||
filterSame:function(c){
|
||||
for(var i=0;i<c.length;i++){
|
||||
for(var j=i+1;j<c.length;j++){
|
||||
if(get.number(c[i])==get.number(c[j])) return true;
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
||||
},
|
||||
},
|
||||
mod:{
|
||||
targetEnabled:function(card,player,target){
|
||||
if(target.storage.zuixiang2&&target.storage.zuixiang2.contains(get.type(card,'trick'))){
|
||||
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:{
|
||||
unique:true,
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
//priority:9.5,
|
||||
filter:function(event,player){
|
||||
if(player.storage.zuixiang&&player.storage.zuixiang.length) return true;
|
||||
return false;
|
||||
},
|
||||
},
|
||||
zuixiang2:{
|
||||
intro:{
|
||||
content:'cards',
|
||||
onunmark:'throw',
|
||||
},
|
||||
mod:{
|
||||
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,
|
||||
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(){
|
||||
"step 0"
|
||||
if(player.storage.zuixiangtemp){
|
||||
delete player.storage.zuixiangtemp;
|
||||
'step 0'
|
||||
if(event.triggername=='useCardToBefore'){
|
||||
trigger.cancel();
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
else{
|
||||
var cards=get.cards(3);
|
||||
player.storage.zuixiang.addArray(cards);
|
||||
game.cardsGotoSpecial(cards);
|
||||
//event.trigger('addCardToStorage');
|
||||
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');
|
||||
var cards=get.cards(3);
|
||||
player.markAuto('zuixiang2',cards);
|
||||
player.showCards(player.storage.zuixiang2);
|
||||
game.cardsGotoSpecial(cards);
|
||||
'step 1'
|
||||
var cards=player.getStorage('zuixiang2');
|
||||
if(lib.skill.zuixiang.filterSame(cards)){
|
||||
player.gain(cards,'gain2','log').type='xinmanjuan';
|
||||
delete player.storage.zuixiang2;
|
||||
player.removeSkill('zuixiang2');
|
||||
}
|
||||
else{
|
||||
player.storage.zuixiang2=[];
|
||||
for(var i=0;i<cards.length;i++){
|
||||
player.storage.zuixiang2.add(get.type(cards[i]));
|
||||
},
|
||||
ai:{
|
||||
effect:function(card,player,target){
|
||||
var type=get.type2(card);
|
||||
var list=target.getStorage('zuixiang2');
|
||||
for(var i of list){
|
||||
if(get.type2(i)==type) return 'zeroplayertarget';
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
naman:{
|
||||
|
@ -10555,11 +10516,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
trigger:{global:'phaseEnd'},
|
||||
forced:true,
|
||||
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(){
|
||||
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);
|
||||
var num=[1,2,3,1,1,2].randomGet();
|
||||
if(get.isLuckyStar(player)) num=3;
|
||||
player.line(result.targets[0],'fire');
|
||||
//player.line(result.targets[0],'fire');
|
||||
result.targets[0].damage(num);
|
||||
}
|
||||
},
|
||||
|
@ -14704,7 +14676,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
|
||||
caoying:"曹婴",
|
||||
simahui:"司马徽",
|
||||
baosanniang:"鲍三娘",
|
||||
baosanniang:"OL鲍三娘",
|
||||
sp_xiahoushi:"SP夏侯氏",
|
||||
pangdegong:"庞德公",
|
||||
zhaotongzhaoguang:"赵统赵广",
|
||||
|
@ -15174,6 +15146,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
oldxiemu:'协穆',
|
||||
naman:'纳蛮',
|
||||
zuixiang:'醉乡',
|
||||
zuixiang2:'醉乡',
|
||||
manjuan:'漫卷',
|
||||
taichen:'抬榇',
|
||||
jilei:'鸡肋',
|
||||
|
|
255
character/sp2.js
255
character/sp2.js
|
@ -4,7 +4,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
name:'sp2',
|
||||
connect:true,
|
||||
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']],
|
||||
liuhong:['male','qun',4,['yujue','tuxing'],['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_baigei:['re_panfeng','xingdaorong','caoxing'],
|
||||
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"],
|
||||
sp_huangjin:['liuhong','zhujun','hejin','hansui'],
|
||||
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_xinxianying','ol_yujin','re_maliang'],
|
||||
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','xin_baosanniang'],
|
||||
}
|
||||
},
|
||||
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:{
|
||||
derivation:'zhihu',
|
||||
enable:'phaseUse',
|
||||
|
@ -3477,6 +3610,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
lose:false,
|
||||
content:function(){
|
||||
target.equip(cards[0]);
|
||||
if(cards[0].name.indexOf('pyzhuren_')==0) player.draw(2);
|
||||
},
|
||||
ai:{
|
||||
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);
|
||||
return 0;
|
||||
}
|
||||
return 2+card.number/2-get.value(card);
|
||||
return 7-get.value(card);
|
||||
},
|
||||
content:function(){
|
||||
player.addSkill('pyzhuren_destroy');
|
||||
if(!_status.pyzhuren) _status.pyzhuren={};
|
||||
var rand=get.number(cards[0])/13;
|
||||
if(get.isLuckyStar(player)) rand=1;
|
||||
var rand=0.85;
|
||||
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']);
|
||||
if(!lib.card[name]||_status.pyzhuren[name]||Math.random()>rand){
|
||||
player.popup('杯具');
|
||||
|
@ -3531,11 +3669,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player:1,
|
||||
},
|
||||
},
|
||||
group:'pyzhuren_destroy',
|
||||
},
|
||||
pyzhuren_destroy:{
|
||||
trigger:{global:['loseAfter','cardsDiscardAfter']},
|
||||
trigger:{global:['loseEnd','cardsDiscardEnd']},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
filter:function(event,player){
|
||||
var cs=event.cards;
|
||||
for(var i=0;i<cs.length;i++){
|
||||
|
@ -3562,6 +3700,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audio:true,
|
||||
trigger:{source:'damageSource'},
|
||||
usable:1,
|
||||
equipSkill:true,
|
||||
filter:function(event,player){
|
||||
return event.getParent().name=='sha';
|
||||
},
|
||||
|
@ -3571,27 +3710,37 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
content:function(){
|
||||
'step 0'
|
||||
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'
|
||||
if(result.bool) player.recover();
|
||||
if(result.color=='red') player.recover();
|
||||
else player.draw(2);
|
||||
},
|
||||
},
|
||||
pyzhuren_diamond:{
|
||||
audio:true,
|
||||
trigger:{source:'damageBegin1'},
|
||||
direct:true,
|
||||
usable:2,
|
||||
equipSkill:true,
|
||||
mod:{
|
||||
cardUsable:function(card,player,num){
|
||||
if(card.name=='sha') return num+1;
|
||||
},
|
||||
},
|
||||
filter:function(event,player){
|
||||
if(event.getParent().name!='sha') return false;
|
||||
if(_status.connectMode) return player.countCards('h')>0;
|
||||
return player.countCards('h',this.filterCard)>0;
|
||||
},
|
||||
filterCard:function(card){
|
||||
return get.name(card)=='sha'||get.subtype(card)=='equip1';
|
||||
return player.countCards('he',function(card){
|
||||
return card!=player.getEquip('pyzhuren_diamond');
|
||||
})>0;
|
||||
},
|
||||
content:function(){
|
||||
'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){
|
||||
if(_status.event.goon) return 6-get.value(card);
|
||||
return -1;
|
||||
|
@ -3603,6 +3752,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
next.logSkill=[event.name,trigger.player];
|
||||
'step 1'
|
||||
if(result.bool) trigger.num++;
|
||||
else player.storage.counttrigger.pyzhuren_diamond--;
|
||||
},
|
||||
ai:{
|
||||
expose:0.25,
|
||||
|
@ -3612,8 +3762,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audio:true,
|
||||
trigger:{player:'useCard2'},
|
||||
direct:true,
|
||||
equipSkill:true,
|
||||
usable:2,
|
||||
filter:function(event,player){
|
||||
if(player.countUsed(null,true)>1) return false;
|
||||
if(event.card.name!='sha'&&get.type(event.card)!='trick') return false;
|
||||
var info=get.info(event.card);
|
||||
if(info.allowMultiple==false) return false;
|
||||
|
@ -3644,6 +3795,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
event.targets=result.targets;
|
||||
}
|
||||
else{
|
||||
player.storage.counttrigger[event.name]--;
|
||||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
|
@ -3657,14 +3809,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audio:true,
|
||||
trigger:{player:'useCardToPlayered'},
|
||||
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){
|
||||
return get.attitude(player,event.target)<=0;
|
||||
},
|
||||
logTarget:'target',
|
||||
content:function(){
|
||||
trigger.target.gain(trigger.cards.filterInD(),'gain2','log');
|
||||
trigger.target.loseHp().set('source',player);
|
||||
player.addTempSkill('pyzhuren_spade2');
|
||||
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:{
|
||||
jueqing:true,
|
||||
|
@ -3677,25 +3832,34 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
},
|
||||
pyzhuren_spade2:{onremove:true},
|
||||
pyzhuren_shandian:{
|
||||
audio:true,
|
||||
trigger:{player:'useCardToPlayered'},
|
||||
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){
|
||||
return get.attitude(player,event.target)<=0;
|
||||
},
|
||||
logTarget:'target',
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.judge(function(card){
|
||||
if(get.suit(card)=='spade'&&card.number>1&&card.number<10) return 10;
|
||||
trigger.target.judge(function(card){
|
||||
var suit=get.suit(card);
|
||||
if(suit=='spade') return -10;
|
||||
if(suit=='club') return -5;
|
||||
return 0;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
if(result.suit=='spade'){
|
||||
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'],
|
||||
ai:{
|
||||
basic:{
|
||||
equipValue:2
|
||||
equipValue:4
|
||||
}
|
||||
},
|
||||
},
|
||||
|
@ -5427,7 +5591,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
skills:['pyzhuren_diamond'],
|
||||
ai:{
|
||||
basic:{
|
||||
equipValue:2
|
||||
equipValue:3
|
||||
}
|
||||
},
|
||||
},
|
||||
|
@ -5440,9 +5604,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
skills:['pyzhuren_club'],
|
||||
ai:{
|
||||
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:{
|
||||
fullskin:true,
|
||||
|
@ -5452,7 +5629,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
skills:['pyzhuren_spade'],
|
||||
ai:{
|
||||
basic:{
|
||||
equipValue:2.6
|
||||
equipValue:3
|
||||
}
|
||||
},
|
||||
},
|
||||
|
@ -5465,7 +5642,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
skills:['pyzhuren_shandian'],
|
||||
ai:{
|
||||
basic:{
|
||||
equipValue:2
|
||||
equipValue:3
|
||||
}
|
||||
},
|
||||
},
|
||||
|
@ -5653,21 +5830,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
pingjian_info:'结束阶段开始时/当你受到伤害后/出牌阶段限一次,你可以令系统随机从剩余武将牌堆中检索出三张拥有发动时机为结束阶段开始时/当你受到伤害后/出牌阶段的技能的武将牌。然后你可以选择尝试发动其中一个技能或摸一张牌。每个技能每局只能选择一次。',
|
||||
pingjian_use:'评荐',
|
||||
pytianjiang:'天匠',
|
||||
pytianjiang_info:'游戏开始时,你随机获得两张不同副类别的装备牌,并置入你的装备区。出牌阶段,你可以将装备区内的牌移动到其他角色的装备区(可替换原装备)。',
|
||||
pytianjiang_info:'游戏开始时,你随机获得两张不同副类别的装备牌,并置入你的装备区。出牌阶段,你装备区里的牌可以移动至其他角色的装备区并替换其原有装备。',
|
||||
pytianjiang_move:'天匠',
|
||||
pyzhuren:'铸刃',
|
||||
pyzhuren_info:'出牌阶段限一次,你可以弃置一张手牌。根据此牌的花色点数,你有一定概率打造成功并获得一张武器牌(若打造失败或武器已有则改为摸一张【杀】,花色决定武器名称,点数决定成功率)。此武器牌进入弃牌堆时,将其移出游戏。',
|
||||
pyzhuren_destroy:'铸刃',
|
||||
pyzhuren_heart:'红缎枪',
|
||||
pyzhuren_heart_info:'每回合限一次,当你使用【杀】造成伤害后,你可以进行判定,若结果为红色,你回复1点体力。',
|
||||
pyzhuren_heart_info:'每回合限一次,当你使用【杀】造成伤害后,你可以进行判定,若结果为:红色,你回复1点体力;黑色:你摸两张牌。',
|
||||
pyzhuren_diamond:'烈淬刀',
|
||||
pyzhuren_diamond_info:'当你使用【杀】对目标角色造成伤害时,你可以弃置一张【杀】或武器牌,令此伤害+1。',
|
||||
pyzhuren_diamond_info:'每回合限两次,当你使用【杀】对目标角色造成伤害时,你可以弃置一张牌,令此伤害+1。你使用【杀】的次数上限+1。',
|
||||
pyzhuren_club:'水波剑',
|
||||
pyzhuren_club_info:'当你于出牌阶段使用第一张牌时,若此牌是普通锦囊牌或【杀】,则你可以为此牌增加一个目标。',
|
||||
pyzhuren_club_info:'每回合限两次,当你使用普通锦囊牌或【杀】时,你可以为此牌增加一个目标。当你失去装备区里的【水波剑】后,你回复1点体力。',
|
||||
pyzhuren_spade:'混毒弯匕',
|
||||
pyzhuren_spade_info:'当你使用的黑色【杀】指定单一目标后,你可令该角色获得此【杀】,然后其失去1点体力。',
|
||||
pyzhuren_spade_info:'当你使用【杀】指定目标后,你可令其失去X点体力(X为此技能本回合内发动过的次数且至多为5)。',
|
||||
pyzhuren_shandian:'天雷刃',
|
||||
pyzhuren_shandian_info:'当你使用【杀】仅指定一名角色为目标后,可令其进行一次判定,若结果为黑桃2~黑桃9,该角色受到3点雷电伤害,然后此【杀】对其无效。',
|
||||
pyzhuren_shandian_info:'当你使用【杀】指定目标后,可令其进行判定,若结果为:黑桃,其受到3点雷属性伤害;梅花,其受到1点雷属性伤害,你回复1点体力并摸一张牌。',
|
||||
|
||||
songshu:'颂蜀',
|
||||
songshu_info:'出牌阶段,你可以和其他角色拼点。若你没赢,其摸两张牌,且你本阶段内不能再发动〖颂蜀〗',
|
||||
|
@ -5844,6 +6021,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
tuxing:'图兴',
|
||||
tuxing2:'图兴',
|
||||
tuxing_info:'锁定技,当你废除一个装备栏时,你加1点体力上限并回复1点体力。然后若你所有的装备栏均已被废除,则你减4点体力上限,且本局游戏内使用【杀】造成的伤害+1。',
|
||||
re_hejin:'何进',
|
||||
xin_baosanniang:'鲍三娘',
|
||||
decadexushen:"许身",
|
||||
decadexushen_info:"限定技,当你因其他角色而脱离濒死状态后,若场上没有“关索”,则你可发动此技能。你可令其选择是否将自己的一张武将牌变更为“关索”并摸三张牌。然后你回复一点体力,并获得技能〖镇南〗。",
|
||||
decadezhennan:"镇南",
|
||||
decadezhennan_info:"当你成为锦囊牌的目标后,若此牌的目标数大于1,则你可以对一名其他角色造成1点伤害。",
|
||||
|
||||
sp_whlw:"文和乱武",
|
||||
sp_zlzy:"逐鹿中原",
|
||||
|
|
|
@ -62,11 +62,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
hanhaoshihuan:['male','wei',4,['shenduan','yonglve']],
|
||||
|
||||
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']],
|
||||
liuchen:['male','shu',4,['zhanjue','qinwang'],['zhu']],
|
||||
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']],
|
||||
quancong:['male','wu',4,['yaoming']],
|
||||
gongsunyuan:['male','qun',4,['huaiyi']],
|
||||
|
@ -320,7 +320,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return player.countCards('he')>0;
|
||||
},
|
||||
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;
|
||||
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));
|
||||
|
@ -4974,7 +4974,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
reqingxi:{
|
||||
audio:'qingxi',
|
||||
audio:2,
|
||||
trigger:{player:'useCardToPlayered'},
|
||||
filter:function(event,player){
|
||||
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].extraDamage) map[id].extraDamage=0;
|
||||
map[id].extraDamage++;
|
||||
trigger.target.judge(function(card){
|
||||
if(get.color(card)=='red') return -1;
|
||||
player.judge(function(card){
|
||||
if(get.color(card)=='red') return 1;
|
||||
return 0;
|
||||
});
|
||||
}
|
||||
'step 2'
|
||||
if(result.bool===false) trigger.directHit.add(trigger.target);
|
||||
if(result.color=='red') trigger.directHit.add(trigger.target);
|
||||
}
|
||||
},
|
||||
reqingxi2:{
|
||||
mod:{
|
||||
cardEnabled:function(card,player){
|
||||
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;
|
||||
},
|
||||
cardRespondable:function(card,player){
|
||||
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;
|
||||
},
|
||||
},
|
||||
|
@ -6423,7 +6423,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
reyanzhu:{
|
||||
enable:'phaseUse',
|
||||
audio:'yanzhu',
|
||||
audio:2,
|
||||
usable:1,
|
||||
filterTarget:lib.filter.notMe,
|
||||
derivation:['reyanzhu_rewrite','rexingxue_rewrite'],
|
||||
|
@ -6480,13 +6480,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
rexingxue:{
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
direct:true,
|
||||
audio:'xingxue',
|
||||
audio:2,
|
||||
filter:function(event,player){
|
||||
return (player.storage.reyanzhu?player.hp:player.maxHp)>0;
|
||||
return (player.storage.reyanzhu?player.maxHp:player.hp)>0;
|
||||
},
|
||||
content:function(){
|
||||
'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);
|
||||
if(target.countCards('h')==target.hp-1) att*=2;
|
||||
return att;
|
||||
|
@ -6507,7 +6507,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
else event.finish();
|
||||
'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);
|
||||
'step 5'
|
||||
if(result&&result.cards){
|
||||
|
@ -12085,8 +12085,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return '出牌阶段限一次,你可以选择一名其他角色。该角色下一次受到的伤害+1直到其下回合开始。';
|
||||
},
|
||||
rexingxue:function(player){
|
||||
if(player.storage.reyanzhu) return '结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力上限)。';
|
||||
return '结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力值)。';
|
||||
if(player.storage.reyanzhu) return '结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数大于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力上限)。';
|
||||
return '结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数大于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力值)。';
|
||||
},
|
||||
jiaozhao:function(player){
|
||||
if(player.storage.jiaozhao2) return '出牌阶段限一次,你可以展示一张手牌,然后声明一张基本牌或普通锦囊牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标。';
|
||||
|
@ -12309,7 +12309,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
reqianju:'千驹',
|
||||
reqianju_info:'锁定技,若你已受伤,你计算与其他角色的距离时-X(X为你已损失的体力值且至少为1)。',
|
||||
reqingxi:'倾袭',
|
||||
reqingxi_info:'当你使用【杀】或【决斗】指定目标后,你可以令其选择一项:1、弃置X张手牌(X为你攻击范围内的角色数,且当你装备区内有武器牌/没有武器牌时至多为4/2),若如此做,其弃置你的此武器牌;2、令此牌的伤害值+1且其进行判定,若结果为红色,则其不能响应此牌。',
|
||||
reqingxi_info:'当你使用【杀】或【决斗】指定目标后,你可以令其选择一项:1、弃置X张手牌(X为你攻击范围内的角色数,且当你装备区内有武器牌/没有武器牌时至多为4/2),若如此做,其弃置你的此武器牌;2、令此牌的伤害值+1且你进行判定,若结果为红色,则其不能响应此牌。',
|
||||
jieyue:'节钺',
|
||||
jieyue1:'节钺',
|
||||
jieyue2:'节钺',
|
||||
|
@ -12381,9 +12381,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
reyanzhu_rewrite:'宴诛·改',
|
||||
reyanzhu_rewrite_info:'出牌阶段限一次,你可以选择一名其他角色。该角色下一次受到的伤害+1直到其下回合开始。',
|
||||
rexingxue:'兴学',
|
||||
rexingxue_info:'结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力值)。',
|
||||
rexingxue_info:'结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数大于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力值)。',
|
||||
rexingxue_rewrite:'兴学·改',
|
||||
rexingxue_rewrite_info:'结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力上限)。',
|
||||
rexingxue_rewrite_info:'结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数大于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力上限)。',
|
||||
rezhaofu:'诏缚',
|
||||
rezhaofu_info:'主公技,锁定技,你攻击范围内的角色视为在其他吴势力角色的攻击范围内。',
|
||||
wurong:'怃戎',
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'v1.9.105.7',
|
||||
'v1.9.105.8',
|
||||
'audio/background/aozhan_chaoming.mp3',
|
||||
'audio/background/aozhan_online.mp3',
|
||||
'audio/background/aozhan_rewrite.mp3',
|
||||
|
@ -632,6 +632,8 @@ window.noname_asset_list=[
|
|||
'audio/die/re_yufan.mp3',
|
||||
'audio/die/xin_jianyong.mp3',
|
||||
'audio/die/sp_zhangliao.mp3',
|
||||
'audio/die/re_caoxiu.mp3',
|
||||
'audio/die/re_sunxiu.mp3',
|
||||
|
||||
'audio/skill/anguo1.mp3',
|
||||
'audio/skill/anguo2.mp3',
|
||||
|
@ -2789,6 +2791,12 @@ window.noname_asset_list=[
|
|||
'audio/skill/mubing2.mp3',
|
||||
'audio/skill/ziqu1.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/shousha.ttf',
|
||||
|
@ -3429,6 +3437,10 @@ window.noname_asset_list=[
|
|||
'image/character/ol_yuanshu.jpg',
|
||||
'image/character/key_kotori.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/baosanniang.jpg',
|
||||
|
|
17
game/game.js
17
game/game.js
|
@ -11653,7 +11653,7 @@
|
|||
}
|
||||
event.backup(event.buttoned+'_backup');
|
||||
if(info.prompt){
|
||||
event.openskilldialog=info.prompt(result.links,player);
|
||||
event.openskilldialog=info.prompt(info.chooseControl?result:result.links,player);
|
||||
}
|
||||
}
|
||||
else{
|
||||
|
@ -48511,8 +48511,19 @@
|
|||
}
|
||||
if(type=='in'){
|
||||
if(info.enable=='phaseUse') num+=0.5;
|
||||
if(info.trigger&&['phaseBegin','phaseDrawBegin','phaseUseBegin','phaseEnd'].contains(info.trigger.player)){
|
||||
num+=0.5;
|
||||
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;
|
||||
add=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(add) break;
|
||||
}
|
||||
}
|
||||
if(info.trigger&&((typeof info.trigger.player=='string'&&info.trigger.player.indexOf('use')==0)||info.trigger.source)){
|
||||
num+=0.3;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
window.noname_update={
|
||||
version:'1.9.105.7',
|
||||
update:'1.9.105.6.1',
|
||||
version:'1.9.105.8',
|
||||
update:'1.9.105.7',
|
||||
changeLog:[
|
||||
'神户小鸟、三谷良一',
|
||||
'界曹休、界孙休、新鲍三娘',
|
||||
'bug修复',
|
||||
|
||||
],
|
||||
|
@ -21,33 +21,33 @@ window.noname_update={
|
|||
//'card/zhulu.js',
|
||||
'character/diy.js',
|
||||
//'character/extra.js',
|
||||
//'character/hearth.js',
|
||||
'character/hearth.js',
|
||||
//'character/gujian.js',
|
||||
//'character/gwent.js',
|
||||
//'character/hearth.js',
|
||||
'character/mobile.js',
|
||||
//'character/mtg.js',
|
||||
'character/old.js',
|
||||
//'character/old.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/xinghuoliaoyuan.js',
|
||||
'character/yijiang.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/tafang.js',
|
||||
//'mode/single.js',
|
||||
'mode/chess.js',
|
||||
'mode/tafang.js',
|
||||
'mode/single.js',
|
||||
//'mode/stone.js',
|
||||
//'mode/brawl.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 |
Binary file not shown.
After Width: | Height: | Size: 246 KiB |
12661
mode/chess.js
12661
mode/chess.js
File diff suppressed because it is too large
Load Diff
|
@ -6597,7 +6597,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
game:{
|
||||
getCharacterChoice:function(list,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++){
|
||||
var group=lib.character[choice[i]][1];
|
||||
if(map[group]){
|
||||
|
|
|
@ -1412,6 +1412,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
list3.push(i);
|
||||
}
|
||||
}
|
||||
list2.sort(lib.sort.character);
|
||||
event.list.randomSort();
|
||||
_status.characterlist=event.list.slice(0);
|
||||
list3.randomSort();
|
||||
|
|
|
@ -965,22 +965,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
suzi:{
|
||||
audio:2,
|
||||
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');
|
||||
},
|
||||
inherit:'xingshang',
|
||||
},
|
||||
cangji:{
|
||||
trigger:{player:'die'},
|
||||
|
@ -1197,7 +1182,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
sgkuanggu:'狂骨',
|
||||
sgkuanggu_info:'当你造成伤害后,若你已受伤,你可以进行判定:若结果为黑色,你回复1点体力。',
|
||||
suzi:'肃资',
|
||||
suzi_info:'当其他角色区域内的牌因死亡而进入弃牌堆后,你可以获得之。',
|
||||
cangji:'藏机',
|
||||
cangji_info:'当你死亡时,你可以将装备区内的所有牌移动到游戏外。若如此做,你的下一名角色登场时,你将这些牌置入你的装备区。',
|
||||
sgrenwang:'仁望',
|
||||
|
|
2373
mode/tafang.js
2373
mode/tafang.js
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue