This commit is contained in:
Spmario233 2021-10-26 21:24:26 +08:00
parent 75a0812b57
commit 854a991250
12 changed files with 406 additions and 135 deletions

View File

@ -646,7 +646,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true, forced:true,
locked:false, locked:false,
filter:function(event,player){ filter:function(event,player){
if(get.type(event.card,false)=='delay'||!player.storage.disordersidi) return false; if(get.type(event.card,false)=='delay'||!player.storage.disordersidi||event.targets.length!=1) return false;
var index=player.storage.disordersidi.indexOf(event.player); var index=player.storage.disordersidi.indexOf(event.player);
return index!=-1&&player.storage.disordersidi2[index]==event.target; return index!=-1&&player.storage.disordersidi2[index]==event.target;
}, },

View File

@ -896,6 +896,8 @@ window.noname_character_rank={
're_jiaxu', 're_jiaxu',
'xin_caozhen', 'xin_caozhen',
'ol_dengzhi', 'ol_dengzhi',
'sundeng',
'duji',
], ],
bm:[ bm:[
'diy_xizhenxihong', 'diy_xizhenxihong',
@ -935,7 +937,6 @@ window.noname_character_rank={
'sunxiu', 'sunxiu',
'quancong', 'quancong',
'guohuanghou', 'guohuanghou',
'sundeng',
'fazheng', 'fazheng',
'guanping', 'guanping',
'old_guanzhang', 'old_guanzhang',
@ -1101,7 +1102,6 @@ window.noname_character_rank={
'huaxiong', 'huaxiong',
'gongsunzan', 'gongsunzan',
'xuzhu', 'xuzhu',
'duji',
'old_huaxiong', 'old_huaxiong',
'chengpu', 'chengpu',
'zhangwen', 'zhangwen',
@ -1744,7 +1744,6 @@ window.noname_character_rank={
], ],
junk:[ junk:[
'sunshao', 'sunshao',
'duji',
'ol_guohuai', 'ol_guohuai',
'gongsunzan', 'gongsunzan',
're_sunce', 're_sunce',

View File

@ -254,13 +254,23 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:'phaseUse', enable:'phaseUse',
usable:1, usable:1,
filter:function(event,player){ filter:function(event,player){
return game.hasPlayer((current)=>current.countCards('h')>0); return game.hasPlayer((current)=>lib.skill.oldimeng.filterTarget(null,player,current));
}, },
selectTarget:2, selectTarget:2,
complexTarget:true, complexTarget:true,
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
if(!ui.selected.targets.length||ui.selected.targets[0].countCards('h')>0) return true; if(target==player) return false;
return target.countCards('h')>0; var ps=player.countCards('he');
if(!ui.selected.targets.length){
var hs=target.countCards('h');
return game.hasPlayer(function(current){
if(current==player||current==target) return false;
var cs=current.countCards('h');
return (hs>0||cs>0)&&Math.abs(hs-cs)<=ps;
});
}
var current=ui.selected.targets[0],hs=target.countCards('h'),cs=current.countCards('h');
return (hs>0||cs>0)&&Math.abs(hs-cs)<=ps;
}, },
multitarget:true, multitarget:true,
multiline:true, multiline:true,
@ -10467,7 +10477,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
olhaoshi:'好施', olhaoshi:'好施',
olhaoshi_info:'摸牌阶段开始时你可以多摸两张牌。然后摸牌阶段结束时若你的手牌数大于5则你将手牌数的一半向下取整交给一名手牌最少其他角色并获得如下效果直到你下回合开始当你成为【杀】或普通锦囊牌的目标后其可以交给你一张手 牌。', olhaoshi_info:'摸牌阶段开始时你可以多摸两张牌。然后摸牌阶段结束时若你的手牌数大于5则你将手牌数的一半向下取整交给一名手牌最少其他角色并获得如下效果直到你下回合开始当你成为【杀】或普通锦囊牌的目标后其可以交给你一张手 牌。',
oldimeng:'缔盟', oldimeng:'缔盟',
oldimeng_info:'出牌阶段限一次,你可令两名角色交换手牌并获得如下效果出牌阶段结束时你弃置X张牌X为这两名角色手牌数之差)。', oldimeng_info:'出牌阶段限一次,你可令两名满足X≤Y的其他角色交换手牌并获得如下效果出牌阶段结束时你弃置X张牌X为这两名角色手牌数之差的绝对值Y为你的手牌数)。',
refresh_standard:'界限突破·标', refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风', refresh_feng:'界限突破·风',

View File

@ -1045,6 +1045,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
"drlt_wanglie":{ "drlt_wanglie":{
locked:false,
mod:{ mod:{
targetInRange:function(card,player,target,now){ targetInRange:function(card,player,target,now){
if(game.online){ if(game.online){

View File

@ -432,7 +432,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{ ai:{
effect:{ effect:{
target:function(card,player,target){ target:function(card,player,target){
if(!_status.olxiuhao_judging&&get.tag(card,'damage')&&get.attitude(target,player)>0&&(!player.storage.counttrigger||!player.storage.counttrigger.olxiuhao)) return [0,0.5,0,0.5]; if(!_status.olxiuhao_judging&&get.tag(card,'damage')&&get.attitude(target,player)>0&&(!target.storage.counttrigger||!target.storage.counttrigger.olxiuhao)) return [0,0.5,0,0.5];
}, },
player:function(card,player,target){ player:function(card,player,target){
if(!_status.olxiuhao_judging&&get.tag(card,'damage')&&get.attitude(player,target)>0&&(!player.storage.counttrigger||!player.storage.counttrigger.olxiuhao)) return [0,0.5,0,0.5]; if(!_status.olxiuhao_judging&&get.tag(card,'damage')&&get.attitude(player,target)>0&&(!player.storage.counttrigger||!player.storage.counttrigger.olxiuhao)) return [0,0.5,0,0.5];

View File

@ -1625,8 +1625,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter'], global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter'],
}, },
forced:true, forced:true,
charlotte:true,
onremove:true,
filter:function(event,player){ filter:function(event,player){
if(player.hp<=1) return false; if(player.hp<=1) return false;
if(event.player==player){ if(event.player==player){

View File

@ -11,7 +11,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_zhangliang:["male","qun",4,["xinfu_jijun","xinfu_fangtong"],[]], re_zhangliang:["male","qun",4,["xinfu_jijun","xinfu_fangtong"],[]],
lvqian:["male","wei",4,["xinfu_weilu","xinfu_zengdao"],[]], lvqian:["male","wei",4,["xinfu_weilu","xinfu_zengdao"],[]],
panjun:["male","wu",3,["xinfu_guanwei","xinfu_gongqing"],[]], panjun:["male","wu",3,["xinfu_guanwei","xinfu_gongqing"],[]],
duji:["male","wei",3,["xinfu_andong","xinfu_yingshi"],[]], duji:["male","wei",3,["xinfu_andong","xinyingshi"],[]],
zhoufang:["male","wu",3,["xinfu_duanfa","xinfu_youdi"],[]], zhoufang:["male","wu",3,["xinfu_duanfa","xinfu_youdi"],[]],
yanjun:["male","wu",3,["xinfu_guanchao","xinfu_xunxian"],[]], yanjun:["male","wu",3,["xinfu_guanchao","xinfu_xunxian"],[]],
liuyao:["male","qun",4,["xinfu_kannan"],[]], liuyao:["male","qun",4,["xinfu_kannan"],[]],
@ -42,7 +42,112 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//zhaotongzhaoguang:['zhaoyun','mayunlu'], //zhaotongzhaoguang:['zhaoyun','mayunlu'],
}, },
skill:{ skill:{
"xinfu_guolun":{ xinyingshi:{
audio:'xinfu_yingshi',
trigger:{player:'phaseUseBegin'},
direct:true,
filter:function(event,player){
return player.countCards('he')>0&&!game.hasPlayer(function(current){
return current.storage.xinyingshi_cards&&current.storage.xinyingshi_cards.length>0;
});
},
content:function(){
'step 0'
player.chooseCardTarget({
filterCard:true,
filterTarget:lib.filter.notMe,
selectCard:[1,player.countCards('he')],
position:'he',
prompt:get.prompt('xinyingshi'),
prompt2:'将任意张牌置于一名其他角色的武将牌上作为“酬”',
ai1:function(card){
return 1-player.getUseValue(card);
},
ai2:function(target){
var player=_status.event.player;
return (1+game.countPlayer(function(current){
return get.attitude(player,current)>0&&current.inRange(target)&&get.damageEffect(target,current,player)>0;
}))*-get.attitude(player,target);
},
});
'step 1'
if(result.bool){
var target=result.targets[0],cards=result.cards;
player.logSkill('xinyingshi',target);
player.lose(cards,ui.special,'toStorage');
player.$give(cards,target,false);
target.addSkill('xinyingshi_cards');
target.markAuto('xinyingshi_cards',cards);
target.storage.xinyingshi_source=player;
game.log(player,'将',cards,'置于了',target,'的武将牌上');
}
else event.finish();
'step 2'
game.delay(0,get.delayx(650,650));
},
subSkill:{
cards:{
trigger:{player:'damageSource'},
forced:true,
charlotte:true,
filter:function(event,player){
return event.source&&event.source.isIn()&&event.card&&event.getParent().type=='card'&&
player.storage.xinyingshi_cards&&player.storage.xinyingshi_cards.length;
},
logTarget:'source',
content:function(){
'step 0'
event.target=trigger.source;
event.target.chooseButton(['应势:请选择你的赏金',player.storage.xinyingshi_cards]);
'step 1'
if(result.bool){
var cards=[result.links[0]];
player.unmarkAuto('xinyingshi_cards',cards);
for(var i=0;i<ui.cardPile.childNodes.length;i++){
var card=ui.cardPile.childNodes[i];
if(card.number==cards[0].number&&card.suit==cards[0].suit) cards.push(card);
}
player.$give(cards[0],target);
if(cards.length>1){
setTimeout(function(){
target.$gain2(cards.slice(1));
},get.delayx(200,200));
game.log(target,'从牌堆获得了',cards.slice(1))
}
game.delay(0,get.delayx(500,500));
target.gain(cards);
if(!player.storage.xinyingshi_cards||!player.storage.xinyingshi_cards.length) player.removeSkill('xinyingshi_cards');
}
else event.finish();
'step 2'
game.delay(0,get.delayx(150,150));
},
marktext:'酬',
intro:{
content:'cards',
onunmark:function(storage,player){
if(storage&&storage.length){
var source=player.storage.xinyingshi_source;
if(source&&source.isIn()){
source.logSkill('xinyingshi',player);
player.$give(storage,source);
game.delayx(0,get.delayx(500,500));
source.gain(storage);
}
else{
game.cardsDiscard(storage);
player.$throw(storage,1000);
}
}
delete player.storage.xinyingshi_source;
delete player.storage.xinyingshi_cards;
},
},
ai:{threaten:3},
},
},
},
xinfu_guolun:{
audio:2, audio:2,
enable:"phaseUse", enable:"phaseUse",
usable:1, usable:1,
@ -959,7 +1064,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
for(var i=0;i<cards.length;i++){ for(var i=0;i<cards.length;i++){
if(get.suit(cards[i])=='heart') togain.push(cards[i]); if(get.suit(cards[i])=='heart') togain.push(cards[i]);
} }
if(togain.length) trigger.source.give(togain,player); if(togain.length) player.gain(togain,trigger.source,'giveAuto');
}, },
}, },
"xinfu_yingshi":{ "xinfu_yingshi":{
@ -1581,6 +1686,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_tushe_info":"当你使用非装备牌指定目标后若你没有基本牌则你可以摸X张牌。X为此牌指定的目标数", "xinfu_tushe_info":"当你使用非装备牌指定目标后若你没有基本牌则你可以摸X张牌。X为此牌指定的目标数",
"xinfu_limu":"立牧", "xinfu_limu":"立牧",
"xinfu_limu_info":"出牌阶段限一次你可以将一张♦牌当做【乐不思蜀】对自己使用然后回复1点体力。只要你的判定区内有牌你对攻击范围内的其他角色使用牌便没有次数和距离限制。", "xinfu_limu_info":"出牌阶段限一次你可以将一张♦牌当做【乐不思蜀】对自己使用然后回复1点体力。只要你的判定区内有牌你对攻击范围内的其他角色使用牌便没有次数和距离限制。",
xinyingshi:'应势',
xinyingshi_info:'出牌阶段开始时,若场上所有角色的武将牌上均没有“酬”,则你可以将任意张牌置于一名角色的武将牌上,称为“酬”。若如此做:当有角色使用牌对有“酬”的角色造成伤害后,其可以获得一张“酬”,并获得牌堆中所有与“酬”花色点数均相同的牌;有“酬”的角色死亡时,你获得其所有“酬”。',
}, },
}; };
}); });

View File

@ -74,10 +74,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xin_liru:['male','qun',3,['xinjuece','xinmieji','xinfencheng']], xin_liru:['male','qun',3,['xinjuece','xinmieji','xinfencheng']],
guohuanghou:['female','wei',3,['jiaozhao','danxin']], guohuanghou:['female','wei',3,['jiaozhao','xindanxin']],
liuyu:['male','qun',2,['xinzhige','xinzongzuo']], liuyu:['male','qun',2,['xinzhige','xinzongzuo']],
liyan:['male','shu',3,['duliang','fulin']], liyan:['male','shu',3,['duliang','fulin']],
sundeng:['male','wu',4,['kuangbi']], sundeng:['male','wu',4,['xinkuangbi']],
cenhun:['male','wu',3,['jishe','lianhuo']], cenhun:['male','wu',3,['jishe','lianhuo']],
huanghao:['male','shu',3,['qinqing','huisheng']], huanghao:['male','shu',3,['qinqing','huisheng']],
@ -92,7 +92,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
caiyong:['male','qun',3,['bizhuan','tongbo']], caiyong:['male','qun',3,['bizhuan','tongbo']],
jikang:['male','wei',3,['qingxian','juexiang']], jikang:['male','wei',3,['qingxian','juexiang']],
qinmi:['male','shu',3,['jianzheng','zhuandui','tianbian']], qinmi:['male','shu',3,['jianzheng','zhuandui','tianbian']],
xuezong:['male','wu',3,['funan','jiexun']], xuezong:['male','wu',3,['funan','xinjiexun']],
old_huaxiong:['male','qun',6,['shiyong']], old_huaxiong:['male','qun',6,['shiyong']],
@ -194,6 +194,71 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhonghui:['jiangwei'], zhonghui:['jiangwei'],
}, },
skill:{ skill:{
xinkuangbi:{
audio:'kuangbi',
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
return target!=player&&target.countCards('he')>0;
},
content:function(){
'step 0'
target.chooseCard('he',[1,3],'匡弼:交给'+get.translation(player)+'一至三张牌',true).set('ai',function(card){
if(get.attitude(_status.event.player,_status.event.getParent().player)>0){
return 7-get.value(card);
}
return -get.value(card);
});
'step 1'
if(result.bool){
player.gain(result.cards,target,'giveAuto').gaintag.add('xinkuangbi_keep');
player.addTempSkill('xinkuangbi_keep');
target.addSkill('xinkuangbi_draw');
target.addMark('xinkuangbi_draw',result.cards.length,false);
}
},
ai:{
order:1,
result:{
target:function(player,target){
if(get.attitude(player,target)>0){
return Math.sqrt(target.countCards('he'));
}
return 0;
},
player:1
}
},
subSkill:{
keep:{
mod:{
ignoredHandcard:function(card,player){
if(card.hasGaintag('xinkuangbi_keep')) return true;
},
cardDiscardable:function(card,player,name){
if(name=='phaseDiscard'&&card.hasGaintag('xinkuangbi_keep')) return false;
},
},
charlotte:true,
onremove:function(player){
player.removeGaintag('xinkuangbi_keep');
},
},
draw:{
trigger:{player:'phaseBegin'},
forced:true,
charlotte:true,
onremove:true,
intro:{
content:'下回合开始时摸#张牌',
},
content:function(){
player.draw(player.countMark('xinkuangbi_draw'));
player.removeSkill('xinkuangbi_draw');
},
}
}
},
rejingce:{ rejingce:{
audio:'jingce', audio:'jingce',
trigger:{player:'phaseUseEnd'}, trigger:{player:'phaseUseEnd'},
@ -2101,6 +2166,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jiexun:{ jiexun:{
charlotte:true, charlotte:true,
mark:true, mark:true,
marktext:'复',
intro:{ intro:{
content:'你发动“复难”时,无须令其他角色获得你使用的牌' content:'你发动“复难”时,无须令其他角色获得你使用的牌'
}, },
@ -2169,6 +2235,56 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
} }
}, },
xinjiexun:{
audio:'jiexun',
trigger:{player:'phaseJieshuBegin'},
onremove:true,
direct:true,
content:function(){
'step 0'
var num1=game.countPlayer(function(current){
return current.countCards('ej',{suit:'diamond'});
});
var num2=player.countMark('xinjiexun');
event.num1=num1;
event.num2=num2;
var str='令目标摸'+get.cnNumber(num1)+'张牌';
if(num2){
str+=',然后弃置'+get.cnNumber(num2)+'张牌';
}
player.chooseTarget(get.prompt('xinjiexun'),function(card,player,target){
return target!=player;
}).set('ai',function(target){
return _status.event.coeff*get.attitude(_status.event.player,target);
}).set('coeff',num1>=num2?1:-1).set('prompt2',str);
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('xinjiexun',target);
if(event.num1){
target.draw(event.num1);
}
player.addMark('xinjiexun',1,false);
}
else{
event.finish();
}
'step 2'
if(event.num2){
event.target.chooseToDiscard(event.num2,true,'he');
}
else{
event.finish();
}
'step 3'
if(result.bool&&result.autochoose&&result.cards.length==result.rawcards.length){
player.removeMark('xinjiexun',player.countMark('xinjiexun'),false);
player.addSkill('funan_jiexun');
}
},
intro:{content:'已经发动过了#次'},
},
zhuandui:{ zhuandui:{
shaRelated:true, shaRelated:true,
audio:2, audio:2,
@ -4328,21 +4444,30 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
jiaozhao:{ jiaozhao:{
mod:{
targetEnabled:function(card,player,target){
if(card.storage&&card.storage.jiaozhao&&card.storage.jiaozhao==target) return false;
},
},
enable:'phaseUse', enable:'phaseUse',
usable:1, usable:1,
audio:2, audio:2,
check:function(card){ check:function(card){
return 8-get.value(card); return 8-get.value(card);
}, },
filter:function(event,player){
return player.countMark('xindanxin')<2&&player.countCards('h')>0;
},
filterCard:true, filterCard:true,
discard:false, discard:false,
lose:false, lose:false,
delay:false, delay:false,
locked:false,
content:function(){ content:function(){
'step 0' 'step 0'
player.showCards(cards); player.showCards(cards);
'step 1' 'step 1'
if(player.storage.jiaozhao2){ if(player.countMark('xindanxin')>1){
event.target=player; event.target=player;
} }
else{ else{
@ -4357,7 +4482,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
targets.splice(i);break; targets.splice(i);break;
} }
} }
player.chooseTarget(true,function(card,player,target){ player.chooseTarget('请选择【矫诏】的目标',true,function(card,player,target){
return _status.event.targets.contains(target); return _status.event.targets.contains(target);
}).set('ai',function(target){ }).set('ai',function(target){
return get.attitude(_status.event.player,target); return get.attitude(_status.event.player,target);
@ -4382,86 +4507,40 @@ game.import('character',function(lib,game,ui,get,ai,_status){
list.push(['基本','','sha','ice']); list.push(['基本','','sha','ice']);
} }
else if(get.type(name)=='basic') list.push(['基本','',name]); else if(get.type(name)=='basic') list.push(['基本','',name]);
else if(player.storage.jiaozhao1&&get.type(name)=='trick') list.push(['锦囊','',name]); else if(player.countMark('xindanxin')>0&&get.type(name)=='trick') list.push(['锦囊','',name]);
}
var choice;
if(get.attitude(event.target,player)<=0){
choice='shan';
}
else{
if(!player.storage.jiaozhao1){
var nh=player.countCards('h');
if(nh>=5){
choice='jiu';
}
else if(nh<=2){
choice='sha';
}
else{
choice=Math.random()<0.5?'sha':'jiu';
}
}
else{
var recover=0,lose=1,players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(!players[i].isOut()&&players[i]!=player){
if(players[i].hp<players[i].maxHp){
if(get.attitude(player,players[i])>0){
if(players[i].hp<2){
lose--;
recover+=0.5;
}
lose--;
recover++;
}
else if(get.attitude(player,players[i])<0){
if(players[i].hp<2){
lose++;
recover-=0.5;
}
lose++;
recover--;
}
}
else{
if(get.attitude(player,players[i])>0){
lose--;
}
else if(get.attitude(player,players[i])<0){
lose++;
}
}
}
}
if(lose>recover&&lose>0){
choice=Math.random()<0.7?'nanman':'wanjian';
}
else if(lose<recover&&recover>0){
choice='taoyuan';
}
else{
choice=Math.random()<0.5?'guohe':'shunshou';
}
}
} }
event.target.chooseButton(['矫诏',[list,'vcard']],true).set('ai',function(button){ event.target.chooseButton(['矫诏',[list,'vcard']],true).set('ai',function(button){
return button.link[2]==_status.event.choice?1:0; var player=_status.event.getParent().player,card={
}).set('choice',choice); name:button.link[2],
nature:button.link[3],
storage:{
nowuxie:true,
jiaozhao:player,
}
};
return player.getUseValue(card,null,true)*_status.event.att;
}).set('att',get.attitude(event.target,player)>0?1:-1);
'step 3' 'step 3'
var chosen=result.links[0][2]; var chosen=result.links[0][2];
var nature=result.links[0][3]; var nature=result.links[0][3];
var fakecard={name:chosen,suit:cards[0].suit,number:cards[0].number,nature:nature}; var fakecard={
event.target.showCards(game.createCard(fakecard),get.translation(event.target)+'声明了'+get.translation(chosen)); name:chosen,
storage:{nowuxie:true,jiaozhao:player},
};
if(nature) fakecard.nature=nature;
event.target.showCards(game.createCard({
name:chosen,
nature:nature,
suit:cards[0].suit,
number:cards[0].number,
}),get.translation(event.target)+'声明了'+get.translation(chosen));
player.storage.jiaozhao=cards[0]; player.storage.jiaozhao=cards[0];
player.storage.jiaozhao_card=fakecard; player.storage.jiaozhao_card=fakecard;
game.broadcastAll(function(name){ game.broadcastAll(function(name,card){
lib.skill.jiaozhao2.viewAs=fakecard; lib.skill.jiaozhao2.viewAs=fakecard;
},fakecard); card.addGaintag('jiaozhao');
var next=game.createEvent('jiaozhao3'); },fakecard,cards[0]);
event.next.remove(next); player.addTempSkill('jiaozhao2','phaseUseEnd');
event.getParent(3).after.push(next);
next.player=player;
next.setContent(lib.skill.jiaozhao3.content);
}, },
ai:{ ai:{
order:9, order:9,
@ -4469,51 +4548,119 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:1 player:1
} }
}, },
intro:{ group:'jiaozhao3',
content:function(storage,player){
if(player.storage.jiaozhao2){
return '出牌阶段限一次,你可以展示一张手牌,然后你声明一张基本牌或普通锦囊牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标';
}
else{
return '出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌或普通锦囊牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标';
}
}
},
group:['jiaozhao2']
}, },
jiaozhao2:{ jiaozhao2:{
enable:'phaseUse', enable:'phaseUse',
audio:'jiaozhao', audio:'jiaozhao',
charlotte:true,
filter:function(event,player){ filter:function(event,player){
if(!player.storage.jiaozhao) return false; if(!player.storage.jiaozhao||!lib.skill.jiaozhao2.viewAs) return false;
var name=player.storage.jiaozhao_card.name; var name=lib.skill.jiaozhao2.viewAs.name;
if(name=='tao'||name=='shan'||name=='wuzhong'||name=='jiu') return false; return player.getCards('h').contains(player.storage.jiaozhao)&&player.storage.jiaozhao.hasGaintag('jiaozhao')&&game.checkMod(player.storage.jiaozhao,player,'unchanged','cardEnabled2',player)!==false;
return player.getCards('h').contains(player.storage.jiaozhao)&&game.checkMod(player.storage.jiaozhao,player,'unchanged','cardEnabled2',player)!==false;
}, },
filterCard:function(card,player){ filterCard:function(card,player){
return card==player.storage.jiaozhao; return card==player.storage.jiaozhao;
}, },
selectCard:-1, selectCard:-1,
popname:true, popname:true,
filterTarget:function(card,player,target){ prompt:function(){
var info=get.info(player.storage.jiaozhao_card); return '选择'+get.translation(lib.skill.jiaozhao2.viewAs)+'的目标';
if((!info.singleCard||!ui.selected.targets.length)&&player==target) return false;
return lib.filter.filterTarget(player.storage.jiaozhao_card,player,target);
}, },
check:function(card){ check:function(card){
return 8-get.value(card); return 8-get.value(card);
}, },
ai:{ ai:{
order:6 order:6
} },
}, onremove:function(player){
jiaozhao3:{ player.removeGaintag('jiaozhao');
trigger:{player:'phaseJieshuBegin'},
silent:true,
content:function(){
delete player.storage.jiaozhao; delete player.storage.jiaozhao;
delete player.storage.jiaozhao_card; delete player.storage.jiaozhao_card;
} },
},
jiaozhao3:{
audio:'jiaozhao',
enable:'phaseUse',
filter:function(event,player){
return (player.getStat('skill').jiaozhao||0)+(player.getStat('skill').jiaozhao3||0)<(player.countMark('xindanxin')-1)&&player.countCards('h')>0;
},
chooseButton:{
dialog:function(event,player){
var list=[];
for(var i of lib.inpile){
var type=get.type(i,false);
if(type=='basic'||type=='trick'){
var card={name:i,storage:{
nowuxie:true,jiaozhao:player,
}};
if(event.filterCard(card,player,event)) list.push([type,'',i]);
if(i=='sha'){
var natures=['fire','thunder','ice'];
for(var j of natures){
card.nature=j;
if(event.filterCard(card,player,event)) list.push([type,'',i,j]);
}
}
}
}
if(list.length) return ui.create.dialog('矫诏',[list,'vcard']);
return ui.create.dialog('矫诏:当前没有可用牌');
},
check:function(button){
var player=_status.event.player,card={
name:button.link[2],
nature:button.link[3],
storage:{
nowuxie:true,
jiaozhao:player,
}
};
return player.getUseValue(card);
},
backup:function(links,player){
return {
audio:'jiaozhao',
filterCard:true,
position:'h',
popname:true,
viewAs:{
name:links[0][2],
nature:links[0][3],
storage:{
nowuxie:true,
jiaozhao:player,
},
},
check:function(card){
return 8-get.value(card);
},
};
},
prompt:function(links,player){
return '将一张牌当做'+(get.translation(links[0][3])||'')+get.translation(links[0][2])+'使用';
},
},
ai:{
order:9,
result:{
player:1
}
},
},
jiaozhao3_backup:{audio:'jiaozhao'},
xindanxin:{
trigger:{player:'damageEnd'},
frequent:true,
audio:'danxin',
content:function(){
player.draw();
if(player.countMark('xindanxin')<3){
player.addMark('xindanxin',1,false);
game.log(player,'修改了技能','#g【矫诏】');
}
},
intro:{content:'【矫诏】加成等级Lv.#'},
}, },
danxin:{ danxin:{
trigger:{player:'damageEnd'}, trigger:{player:'damageEnd'},
@ -12103,9 +12250,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return '结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数大于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力值。'; return '结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数大于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力值。';
}, },
jiaozhao:function(player){ jiaozhao:function(player){
if(player.storage.jiaozhao2) return '出牌阶段限一次,你可以展示一张手牌,然后声明一张基本牌或普通锦囊牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标。'; var num=player.countMark('xindanxin');
if(player.storage.jiaozhao1) return '出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌或普通锦囊牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标。'; if(num>2) return '出牌阶段限两次,你可以将一张手牌当做任意基本牌或普通锦囊牌使用(你不能对自己使用此牌)。';
return '出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标。'; if(num>1) return '出牌阶段限一次,你可以将一张手牌当做任意基本牌或普通锦囊牌使用(你不能对自己使用此牌)。';
if(num>0) return '出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌或普通锦囊牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用(你不能对自己使用此牌,且此牌不可被【无懈可击】响应)。';
return '出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用(你不能对自己使用此牌,且此牌不可被【无懈可击】响应)。';
}, },
funan:function(player){ funan:function(player){
if(player.hasSkill('funan_jiexun')) return '其他角色使用或打出牌响应你使用的牌时,你可获得其使用或打出的牌。'; if(player.hasSkill('funan_jiexun')) return '其他角色使用或打出牌响应你使用的牌时,你可获得其使用或打出的牌。';
@ -12297,6 +12446,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
funan_info:'其他角色使用或打出牌响应你使用的牌时,你可令其获得你使用的牌(其本回合不能使用或打出这些牌),然后你获得其使用或打出的牌。', funan_info:'其他角色使用或打出牌响应你使用的牌时,你可令其获得你使用的牌(其本回合不能使用或打出这些牌),然后你获得其使用或打出的牌。',
jiexun:'诫训', jiexun:'诫训',
jiexun_info:'结束阶段你可令一名其他角色摸等同于场上方块牌数的牌然后弃置X张牌X为此前该技能发动过的次数。若有角色因此法弃置了所有牌则你失去〖诫训〗然后你发动〖复难〗时无须令对方获得你使用的牌', jiexun_info:'结束阶段你可令一名其他角色摸等同于场上方块牌数的牌然后弃置X张牌X为此前该技能发动过的次数。若有角色因此法弃置了所有牌则你失去〖诫训〗然后你发动〖复难〗时无须令对方获得你使用的牌',
xinjiexun:'诫训',
xinjiexun_info:'结束阶段你可令一名其他角色摸等同于场上方块牌数的牌然后弃置X张牌X为此前该技能发动过的次数。若有角色因此法弃置了所有牌则你将X归零然后你发动〖复难〗时无须令对方获得你使用的牌',
shouxi:'守玺', shouxi:'守玺',
shouxi_info:'当你成为【杀】的目标后,你可声明一种未以此法声明过的基本牌或锦囊牌的牌名。若使用者弃置一张你声明的牌,其获得你的一张牌;若否,则此【杀】对你无效', shouxi_info:'当你成为【杀】的目标后,你可声明一种未以此法声明过的基本牌或锦囊牌的牌名。若使用者弃置一张你声明的牌,其获得你的一张牌;若否,则此【杀】对你无效',
huimin:'惠民', huimin:'惠民',
@ -12345,10 +12496,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xintaoluan_backup:'滔乱', xintaoluan_backup:'滔乱',
xintaoluan_info:'若场上没有濒死的角色则你可以将一张牌当做任意一张基本牌或普通锦囊牌使用此牌不得是本回合内你以此法使用过的牌然后你令一名其他角色选择一项1.交给你X张与你以此法使用的牌类别不同的牌2.你失去X点体力且滔乱无效直到回合结束X为你本回合内发动过〖滔乱〗的次数且至多为3', xintaoluan_info:'若场上没有濒死的角色则你可以将一张牌当做任意一张基本牌或普通锦囊牌使用此牌不得是本回合内你以此法使用过的牌然后你令一名其他角色选择一项1.交给你X张与你以此法使用的牌类别不同的牌2.你失去X点体力且滔乱无效直到回合结束X为你本回合内发动过〖滔乱〗的次数且至多为3',
jiaozhao:'矫诏', jiaozhao:'矫诏',
jiaozhao3:'矫诏',
jiaozhao3_backup:'矫诏',
jiaozhao2:'矫诏', jiaozhao2:'矫诏',
jiaozhao_info:'出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标。', jiaozhao_info:'出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用(你不能对自己使用此牌)。',
danxin:'殚心', danxin:'殚心',
danxin_info:'当你受到伤害后你可以摸一张牌或对“矫诏”的描述依次执行下列一项修改1.将“基本牌”改为“基本牌或普通锦囊牌”2.将“选择距离最近的一名其他角色,该角色”改为“你”。', danxin_info:'当你受到伤害后你可以摸一张牌或对“矫诏”的描述依次执行下列一项修改1.将“基本牌”改为“基本牌或普通锦囊牌”2.将“选择距离最近的一名其他角色该角色”改为“你”。3.将“出牌阶段限一次”改为“出牌阶段限两次”',
xindanxin:'殚心',
xindanxin_info:'当你受到伤害后你可以摸一张牌并对“矫诏”的描述依次执行下列一项修改1.将“基本牌”改为“基本牌或普通锦囊牌”2.将“选择距离最近的一名其他角色,该角色”改为“你”。',
duliang:'督粮', duliang:'督粮',
duliang2:'督粮', duliang2:'督粮',
duliang_info:'出牌阶段限一次你可以获得一名其他角色的一张手牌然后选择一项1.令其观看牌堆顶的两张牌然后获得其中的基本牌2.令其于下个摸牌阶段额外摸一张牌。', duliang_info:'出牌阶段限一次你可以获得一名其他角色的一张手牌然后选择一项1.令其观看牌堆顶的两张牌然后获得其中的基本牌2.令其于下个摸牌阶段额外摸一张牌。',
@ -12734,6 +12889,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rejingce2:'精策', rejingce2:'精策',
rejingce_add:'精策', rejingce_add:'精策',
rejingce_info:'当你于一回合内首次使用某种花色的手牌时,你的手牌上限+1。出牌阶段结束时你可以摸X张牌X为你本阶段内使用过的牌的类型数。', rejingce_info:'当你于一回合内首次使用某种花色的手牌时,你的手牌上限+1。出牌阶段结束时你可以摸X张牌X为你本阶段内使用过的牌的类型数。',
xinkuangbi:'匡弼',
xinkuangbi_info:'出牌阶段限一次。你可以令一名其他角色交给你至多三张牌(不计入你本回合的手牌上限)。然后其于其的下回合开始时摸等量的牌。',
yijiang_2011:'一将成名2011', yijiang_2011:'一将成名2011',
yijiang_2012:'一将成名2012', yijiang_2012:'一将成名2012',

View File

@ -1,9 +1,8 @@
window.noname_update={ window.noname_update={
version:'1.9.110.9.3.2', version:'1.9.110.9.3.3',
update:'1.9.110.9.3.1', update:'1.9.110.9.3.2',
changeLog:[ changeLog:[
'曹安民技能修改', '界鲁肃、孙登、郭皇后、薛综、杜畿技能修改',
'国战技能预亮机制',
'bug修复', 'bug修复',
], ],
files:[ files:[
@ -31,17 +30,17 @@ window.noname_update={
//'character/offline.js', //'character/offline.js',
//'character/old.js', //'character/old.js',
//'character/ow.js', //'character/ow.js',
//'character/rank.js', 'character/rank.js',
'character/refresh.js', 'character/refresh.js',
'character/shenhua.js', 'character/shenhua.js',
'character/sp.js', 'character/sp.js',
'character/sp2.js', 'character/sp2.js',
//'character/tw.js', //'character/tw.js',
'character/standard.js', //'character/standard.js',
//'character/swd.js', //'character/swd.js',
//'character/xianjian.js', //'character/xianjian.js',
'character/xinghuoliaoyuan.js', 'character/xinghuoliaoyuan.js',
'character/yingbian.js', //'character/yingbian.js',
'character/yijiang.js', 'character/yijiang.js',
//'character/yxs.js', //'character/yxs.js',
//'extension/boss/extension.js', //'extension/boss/extension.js',
@ -50,18 +49,18 @@ window.noname_update={
//'layout/default/menu.css', //'layout/default/menu.css',
//'layout/nova/layout.css', //'layout/nova/layout.css',
//'layout/mobile/equip.css', //'layout/mobile/equip.css',
//'mode/boss.js', 'mode/boss.js',
//'mode/brawl.js', //'mode/brawl.js',
//'mode/chess.js', //'mode/chess.js',
//'mode/connect.js', //'mode/connect.js',
//'mode/doudizhu.js', //'mode/doudizhu.js',
'mode/guozhan.js', //'mode/guozhan.js',
//'mode/identity.js', //'mode/identity.js',
//'mode/single.js', //'mode/single.js',
//'mode/stone.js', //'mode/stone.js',
//'mode/tafang.js', //'mode/tafang.js',
//'mode/versus.js', //'mode/versus.js',
'game/game.js', //'game/game.js',
//'game/keyWords.js', //'game/keyWords.js',
//'game/NoSleep.js', //'game/NoSleep.js',
//'game/config.js', //'game/config.js',

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 153 KiB

View File

@ -1609,7 +1609,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return name; return name;
} }
else{ else{
var arr=['shen_caocao','shen_simayi','shen_guanyu','shen_zhugeliang','shen_zhaoyun','shen_zhouyu','shen_lvmeng','shen_lvbu','shen_liubei','shen_luxun','shen_ganning','ol_zhangliao','shen_zhenji','shen_caopi','key_kagari','key_shiki','key_hina']; var arr=['shen_caocao','shen_simayi','shen_guanyu','shen_zhugeliang','shen_zhaoyun','shen_zhouyu','shen_lvmeng','shen_lvbu','shen_liubei','shen_luxun','shen_ganning','ol_zhangliao','shen_zhenji','shen_caopi','key_kagari','key_shiki','db_key_hina'];
arr.removeArray(list); arr.removeArray(list);
return arr.randomGet(); return arr.randomGet();
} }
@ -1658,7 +1658,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
game.check(); game.check();
}); });
control.backup1=ui.create.div('.buttons'); control.backup1=ui.create.div('.buttons');
control.backup2=ui.create.buttons(['shen_caocao','shen_simayi','shen_guanyu','shen_zhugeliang','shen_zhaoyun','shen_zhouyu','shen_lvmeng','shen_lvbu','shen_liubei','shen_luxun','shen_ganning','ol_zhangliao','shen_zhenji','shen_caopi','key_kagari','key_shiki','key_hina'],'character',control.backup1); control.backup2=ui.create.buttons(['shen_caocao','shen_simayi','shen_guanyu','shen_zhugeliang','shen_zhaoyun','shen_zhouyu','shen_lvmeng','shen_lvbu','shen_liubei','shen_luxun','shen_ganning','ol_zhangliao','shen_zhenji','shen_caopi','key_kagari','key_shiki','db_key_hina'],'character',control.backup1);
return control; return control;
} }
}, },
@ -1758,7 +1758,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
lib.inpile.add('niaobaidaowenha'); lib.inpile.add('niaobaidaowenha');
break; break;
} }
case 'key_hina':{ case 'db_key_hina':{
game.players[i].equip(game.createCard2('shenzhixiunvfu','spade',13)); game.players[i].equip(game.createCard2('shenzhixiunvfu','spade',13));
lib.inpile.add('shenzhixiunvfu'); lib.inpile.add('shenzhixiunvfu');
break; break;