v1.9.120.3.1

This commit is contained in:
Spmario233 2023-05-06 00:00:01 +08:00
parent eec54fa6f5
commit f4b38c9784
11 changed files with 210 additions and 183 deletions

View File

@ -627,7 +627,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
trigger:{global:'damageEnd'},
filter:function(event,player){
if(!event.nature) return false;
if(!event.nature||!event.player.isIn()) return false;
return game.countPlayer2(current=>{
return current.hasHistory('damage',evt=>{
return evt.nature&&evt!=event;

View File

@ -5955,7 +5955,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{global:'dying'},
forced:true,
filter:function(event,player){
return _status.renku.length>4;
return _status.renku.length>3;
},
logTarget:'player',
content:function(){
@ -18453,7 +18453,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yuanqing:'渊清',
yuanqing_info:'锁定技,出牌阶段结束时,你随机将弃牌堆中你本阶段使用过的牌类型的各一张牌置于仁库中。',
shuchen:'疏陈',
shuchen_info:'锁定技,当有角色进入濒死状态时,若仁库中的牌数大于则你获得仁库中的所有牌然后其回复1点体力。',
shuchen_info:'锁定技,当有角色进入濒死状态时,若仁库中的牌数大于则你获得仁库中的所有牌然后其回复1点体力。',
rechuhai:'除害',
rechuhai_info:'使命技。①出牌阶段限一次,你可以摸一张牌,然后和一名其他角色拼点。若你赢,则你观看其手牌,并从牌堆/弃牌堆中获得其手牌中包含的类型的牌各一张,且当你于此阶段内对其造成伤害后,你将牌堆/弃牌堆中的一张装备牌置于你的一个空置装备栏内。②当你因发动〖除害①〗而展示拼点牌时,你令此牌的点数+XX=(4-你装备区的牌数)。③使命当有装备牌进入你的装备区后若你的装备区内有至少三张牌则你将体力值回复至上限失去〖乡害〗并获得〖彰名〗。④失败当你因发动〖除害①〗发起的拼点没赢时若你的最终点数不大于6则你触发使命失败分支。',
zhangming:'彰名',

View File

@ -2059,7 +2059,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player,name){
if(name=='damageEnd') return true;
var evt=event.getParent();
return evt.card&&evt.card.name=='sha'&&evt.type=='card'&&evt.targets.length==1;
return evt.card&&evt.type=='card'&&evt.targets.length==1;
},
content:function(){
'step 0'
@ -6025,6 +6025,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zyquanji:'权计',
zyquanji_info:'①当你受到伤害后或使用牌对唯一目标造成伤害后,你可以摸一张牌并将一张牌置于武将上,称为“权”。②你的手牌上限+XX为“权”数。',
zypaiyi:'排异',
zypaiyi_backup:'排异',
zypaiyi_info:'出牌阶段限一次。你可以移去一张“权”并令一名角色摸X张牌X为“权”数且至多为7然后若其手牌数大于你你对其造成1点伤害。',
pe_mengda:'战役篇孟达',
pe_mengda_ab:'孟达',

View File

@ -184,7 +184,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.draw(2);
event.count--;
'step 2'
var cards=player.countCards('he');
var cards=player.getCards('he');
if(cards.length>0&&target.isAlive()){
if(cards.length==1) event._result={bool:true,cards:cards};
else player.chooseCard('he','忘隙:交给'+get.translation(target)+'一张牌',true);
@ -6932,6 +6932,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.judge(function(card){
if(get.suit(card)=='spade') return 4;
return 0;
}).set('callback',function(){
if(event.judgeResult.suit=='spade'){
player.recover();
if(get.position(event.judgeResult.card)=='d') player.gain(result.card,'gain2','log')
}
}).judge2=function(result){
return result.bool?true:false;
};
@ -6940,10 +6945,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.finish();
}
'step 3'
if(result.suit=='spade'){
player.recover();
if(get.position(result.card)=='d') player.gain(result.card,'gain2','log')
}
if(event.count) event.goto(1);
}
},

View File

@ -965,6 +965,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
player.addTempSkill('sbrende_given','phaseUseAfter');
player.markAuto('sbrende_given',[target]);
player.markAuto('sbrende_givenx',[target]);
player.give(cards,target);
var num=Math.min(lib.skill.sbrende.maxNum-player.countMark('sbrende'),cards.length);
if(num>0) player.addMark('sbrende',num);
@ -1009,7 +1010,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
enable:'phaseUse',
skillAnimation:'epic',
animationColor:'legend',
animationColor:'orange',
limited:true,
filter:function(event,player){
if(game.roundNumber<=1) return false;
@ -1018,14 +1019,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
filterTarget:function(card,player,target){
if(target==player) return false;
return game.hasPlayer2(current=>{
return current.hasAllHistory('useSkill',evt=>{
if(evt.skill!='sbrende_give') return false;
var targets=evt.targets;
if(targets.contains(target)) return true;
return false;
});
})
return player.getStorage('sbrende_givenx').contains(target);
},
selectTarget:-1,
multiline:true,
@ -3895,7 +3889,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sbrende:'仁德',
sbrende_info:'①出牌阶段每名角色限一次。你可以将任意张牌交给一名其他角色然后你获得等量“仁望”标记至多为8。②每回合限一次。你可以移去2枚“仁望”视为使用或打出一张基本牌。③出牌阶段开始时你获得2枚“仁望”。',
sbzhangwu:'章武',
sbzhangwu_info:'限定技。出牌阶段,你可以令所有于本局游戏成为过〖仁德〗目标的其他角色依次交给你X张牌然后你回复3点体力并失去〖仁德〗X为游戏轮数-1且至多为3。',
sbzhangwu_info:'限定技。出牌阶段,你可以令所有于本局游戏成为过〖仁德〗目标的其他角色依次交给你X张牌然后你回复3点体力并失去〖仁德〗X为游戏轮数-1且至多为3。',
sbjijiang:'激将',
sbjijiang_info:'主公技。出牌阶段结束时你可以选择一名体力值不小于你的其他蜀势力角色A和一名在A攻击范围内的角色B。A选择一项1.视为对B使用一张【杀】2.下一个出牌阶段开始前,跳过此阶段。',
sb_jiangwei:'谋姜维',

View File

@ -262,7 +262,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
frequent:true,
filter:function(event,player,name){
if(player==_status.currentPhase) return (name=='logSkill'&&event.skill=='dcliying');
if(player==_status.currentPhase) return (name=='logSkill'&&event.skill=='dcliying'&&player.getExpansions('dcwangyuan').length<game.countPlayer());
if(name=='logSkill') return false;
if(player.getExpansions('dcwangyuan').length>=game.countPlayer()) return false;
if(event.name=='gain'&&event.player==player) return false;
var evt=event.getl(player);
@ -2107,7 +2108,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//滕芳兰
dcluochong:{
audio:2,
trigger:{player:'roundStart'},
trigger:{global:'roundStart'},
filter:function(event,player){
return game.hasPlayer(current=>current.countDiscardableCards(player,'hej')>0);
},
@ -2117,7 +2118,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var num=4-player.countMark('dcluochong');
var dialog=[];
dialog.push('###'+get.prompt('dcluochong')+'###<div class="text center">弃置任意名角色区域内共计至多'+get.cnNumber(num)+'张牌</div>');
game.countPlayer(target=>{
game.filterPlayer().sortBySeat().forEach(target=>{
if(target.countDiscardableCards(player,'hej')<=0) return false;
var name=(target==player?'你':get.translation(target));
if(target.countCards('h')){
@ -2167,7 +2168,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
},
ai:{threaten:2.5},
ai:{
threaten:2.5,
effect:{
target:function(card,player,target,current){
if(get.type(card)=='delay'&&current<0){
var current=_status.currentPhase;
if(current.getSeatNum()>target.getSeatNum()) return 'zerotarget';
}
},
},
},
},
dcaichen:{
audio:2,
@ -5322,6 +5333,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
silent:true,
forced:true,
nopop:true,
lastDo:true,
trigger:{player:'gainEnd'},
filter:function(event,player){
return player.countCards('h')>player.hp;
},
content:function(){
trigger._dctongguan_gangying=true;
},
},
duomou:{
marktext:'谋',
@ -5365,7 +5384,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){
var target=event.player;
if((target.hasSkill('dctongguan_gangying')&&(target.hasHistory('gain',function(evt){
return target.countCards('h')>target.hp;
return evt._dctongguan_gangying==true;
})||game.getGlobalHistory('changeHp',function(evt){
return evt.player==target&&(evt.getParent().name=='recover'||target.countCards('h')>target.hp);
}).length>0)) ||
@ -5377,13 +5396,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.getGlobalHistory('cardMove',evt=>{
if(guojue&&renzhi) return;
var evtx=evt.getParent();
if(evtx.name=='gain'&&evtx.source&&evtx.source!=target&&evtx.player==target ||
evtx.name=='discard'&&evtx.getParent().player==target&&evtx.player!=target){
guojue=true;
if(!guojue){
if(evtx.name=='gain'&&evtx.source&&evtx.source!=target&&evtx.player==target ||
evtx.name=='discard'&&evtx.getParent().player==target&&evtx.player!=target){
guojue=true;
}
}
if(evtx.name=='gain'&&evtx.giver==target&&evtx.getg(evtx.player).length ||
evtx.name=='loseAsync'&&evtx.giver==target&&game.hasPlayer(current=>evtx.getg(current).length)){
renzhi=true;
if(!renzhi){
if(evtx.name=='gain'&&evtx.giver==target&&evtx.getg(evtx.player).length ||
evtx.name=='loseAsync'&&evtx.giver==target&&game.hasPlayer(current=>evtx.getg(current).length)){
renzhi=true;
}
}
});
return target.hasSkill('dctongguan_guojue')&&guojue||target.hasSkill('dctongguan_renzhi')&&renzhi;
@ -5391,7 +5414,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rules:[
(target)=>target.getHistory('sourceDamage').length,
(target)=>target.hasHistory('gain',function(evt){
return target.countCards('h')>target.hp;
return evt._dctongguan_gangying;
})||game.getGlobalHistory('changeHp',function(evt){
return evt.player==target&&evt.getParent().name=='recover';
}).length>0||target.countCards('h')>target.hp,
@ -5407,13 +5430,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.getGlobalHistory('cardMove',evt=>{
if(guojue||renzhi) return;
var evtx=evt.getParent();
if(evtx.name=='gain'&&evtx.source&&evtx.source!=target&&evtx.player==target ||
evtx.name=='discard'&&evtx.getParent().player==target&&evtx.player!=target){
guojue=true;
if(!guojue){
if(evtx.name=='gain'&&evtx.source&&evtx.source!=target&&evtx.player==target ||
evtx.name=='discard'&&evtx.getParent().player==target&&evtx.player!=target){
guojue=true;
}
}
if(evtx.name=='gain'&&evtx.giver==target&&evtx.getg(evtx.player).length ||
evtx.name=='loseAsync'&&evtx.giver==target&&game.hasPlayer(current=>evtx.getg(current).length)){
renzhi=true;
if(!renzhi){
if(evtx.name=='gain'&&evtx.giver==target&&evtx.getg(evtx.player).length ||
evtx.name=='loseAsync'&&evtx.giver==target&&game.hasPlayer(current=>evtx.getg(current).length)){
renzhi=true;
}
}
});
event.guojue=guojue; event.renzhi=renzhi;
@ -5437,7 +5464,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.delayx();
event.goto(1);
'step 4'
player.chooseTarget('梦解令一名角色回复1点体力',true).set('ai',target=>get.recoverEffect(target,player,player));
if(game.hasPlayer(target=>target!=player&&target.isDamaged())) player.chooseTarget('梦解令一名角色回复1点体力',true,function(card,player,target){
return target!=player&&target.isDamaged();
}).set('ai',target=>get.recoverEffect(target,player,player));
else event._result={bool:false};
'step 5'
if(result.bool){
player.logSkill('dcmengjie',result.targets[0]);
@ -5452,9 +5482,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.delayx();
event.goto(1);
'step 8'
player.chooseTarget('梦解:弃置一名角色区域内至多两张牌',true,(card,player,target)=>{
if(game.hasPlayer(target=>target.countDiscardableCards(player,'hej'))) player.chooseTarget('梦解:弃置一名角色区域内至多两张牌',true,(card,player,target)=>{
return target.countDiscardableCards(player,'hej');
}).set('ai',target=>get.effect(target,{name:'guohe'},player,target));
else event._result={bool:false};
'step 9'
if(result.bool){
player.logSkill('dcmengjie',result.targets[0]);
@ -5643,7 +5674,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{global:'useCard'},
direct:true,
filter:function(event,player){
return event.card.name=='sha'&&(event.player==player||player.inRange(event.player))&&player.countCards('h')>0;
return event.card.name=='sha'&&(event.player==player||player.inRange(event.player))&&player.countCards('he')>0;
},
content:function(){
'step 0'
@ -7711,7 +7742,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(storage,player){
var list=lib.skill.dchuishu.getList(player);
return '摸牌阶段结束时,你可以摸['+list[0]+']张牌。若如此做:你弃置['+list[1]+']张手牌,且当你于本回合内弃置第['+list[2]+']+1张牌后你从弃牌堆中获得一张锦囊牌。';
return '摸牌阶段结束时,你可以摸['+list[0]+']张牌。若如此做:你弃置['+list[1]+']张手牌,且当你于本回合内弃置第['+list[2]+']+1张牌后你从弃牌堆中获得等量的锦囊牌。';
},
},
subSkill:{
@ -7752,6 +7783,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return get.type2(card)=='trick'&&!cards.contains(card);
});
if(card) cards.push(card);
else break;
}
if(cards.length) player.gain(cards,'gain2');
},
@ -7783,7 +7815,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(list[i]==min) choices.push(exps[i]+min+']');
}
if(choices.length==1) event._result={control:choices[0]};
else player.chooseControl(choices).set('prompt','易数:令〖慧淑〗的一个数值-1').set('prompt2','摸牌阶段结束时,你可以摸['+list[0]+']张牌。若如此做,你弃置['+list[1]+']张手牌;且当你于本回合内弃置第['+list[2]+']+1张牌后你从弃牌堆中获得一张锦囊牌。');
else player.chooseControl(choices).set('prompt','易数:令〖慧淑〗的一个数值-1').set('prompt2','摸牌阶段结束时,你可以摸['+list[0]+']张牌。若如此做,你弃置['+list[1]+']张手牌;且当你于本回合内弃置第['+list[2]+']+1张牌后你从弃牌堆中获得等量的锦囊牌。');
'step 1'
var result=result.control.slice(0,result.control.indexOf('['));
var exps=['摸牌数','弃牌数','目标牌数'];
@ -7803,7 +7835,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(list[i]==min) choices.push(exps[i]+min+']');
}
if(choices.length==1) event._result={control:choices[0]};
else player.chooseControl(choices).set('prompt','易数:令〖慧淑〗的一个数值+2').set('prompt2','摸牌阶段结束时,你可以摸['+list[0]+']张牌。若如此做,你弃置['+list[1]+']张手牌;且当你于本回合内弃置第['+list[2]+']+1张牌后你从弃牌堆中获得一张锦囊牌。');
else player.chooseControl(choices).set('prompt','易数:令〖慧淑〗的一个数值+2').set('prompt2','摸牌阶段结束时,你可以摸['+list[0]+']张牌。若如此做,你弃置['+list[1]+']张手牌;且当你于本回合内弃置第['+list[2]+']+1张牌后你从弃牌堆中获得等量的锦囊牌。');
'step 3'
var result=result.control.slice(0,result.control.indexOf('['));
var exps=['摸牌数','弃牌数','目标牌数'];
@ -26290,7 +26322,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liupi:'刘辟[pì],东汉末年黄巾起义军将领。黄巾军将领。黄巾之乱后,与龚都一起率军盘踞在汝南。欲追随刘备,将汝南让给刘备。《三国演义》中,在与曹操的部将高览交战时,为保护刘备而战死。',
zhenghun:'郑浑(生卒年不详),字文公。开封(今河南省开封市)人。汉末及三国时期曹魏大臣,东汉名儒郑众曾孙、名士郑泰之弟。郑浑早年避乱淮南,后转投豫章太守华歆。又被曹操辟为掾属,历任下蔡县长、邵陵县令,任内颇有政绩,深得民心。任左冯翊时,击杀扰乱郡县的梁兴,又击败作乱的山贼。历任上党太守、京兆尹、丞相掾属等职。曹丕称帝后,拜侍御史,加驸马都尉。先后任阳平、沛郡太守,任内兴修水利,使农田常年丰收,被百姓称为“郑陂”。后转任山阳和魏郡太守。魏明帝曹叡听闻郑浑的事迹之后,下诏将其政绩布告天下。官至将作大匠。卒年不详。',
furongfuqian:'傅肜[róng]222年义阳今湖北枣阳三国时蜀汉将领。刘备攻伐吴国时傅肜为别督。后刘备被陆逊击败傅肜率部断后奋战至死。死前怒斥道“吴狗何有汉将军降者”<br>傅佥[qiān] ( ? ~263年义阳治今湖北省枣阳市)人,蜀汉将领傅彤之子,三国时期蜀汉名将。金长于谋略,并颇有胆勇,姜维甚爱之。傅佥官至关中都督。魏国攻伐蜀汉时,傅佥和蒋舒防守阳安关,兵败战死。',
zhengxuan:'郑玄127年200年字康成。北海郡高密县今山东省高密市人。东汉末年儒家学者、经学大师。郑玄曾入太学攻《京氏易》、《公羊春秋》及《三统历》、《九章算术》又从张恭祖学《古文尚书》、《周礼》和《左传》等最后从马融学古文经。游学归里之后复客耕东莱聚徒授课弟子达数千人家贫好学终为大儒。党锢之祸起遭禁锢杜门注疏潜心著述。晚年守节不仕却遭逼迫从军最终病逝于元城年七十四。郑玄治学以古文经学为主兼采今文经学。他遍注儒家经典以毕生精力整理古代文化遗产使经学进入了一个“小统一时代”。著有《天文七政论》、《中侯》等书共百万余言世称“郑学”为汉代经学的集大成者。唐贞观年间列郑玄于二十二“先师”之列配享孔庙。宋代时被追封为高密伯。后人建有郑公祠以纪念。<br>',
qinlang:'秦朗(生卒年不详),字元明,小字阿蘇(一作阿鳔),新兴(治今山西忻州)云中人。三国时期曹魏将领,官至骁骑将军、给事中,曾率兵讨伐鲜卑轲比能和步度根的叛军。',
xianglang:'向朗约167年—247年字巨达。襄阳郡宜城县今湖北宜城三国时期蜀汉官员、藏书家、学者。向朗早年师从于司马徽并被荆州牧刘表任命为临沮县长。后随刘备入蜀历任巴西、牂牁、房陵太守并拜步兵校尉领丞相长史随丞相诸葛亮北伐。因包庇马谡被免职后为光禄勋转左将军、特进封显明亭侯。曾代理丞相册封张皇后及太子刘璿。晚年专心研究典籍诱导青年学习家中藏书丰富受到举国尊重。延熙十年247年向朗去世。《全三国文》收录有一篇《遗言戒子》',
yanghong:'杨弘,东汉末年袁术部将。袁术死后,杨弘等将其众欲归孙策,后庐江太守刘勋截击,转归于勋。',
@ -26405,7 +26436,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
dchuishu:function(player){
var list=lib.skill.dchuishu.getList(player);
return '摸牌阶段结束时,你可以摸['+list[0]+']张牌。若如此做:你弃置['+list[1]+']张手牌,且当你于本回合内弃置第['+list[2]+']+1张牌后你从弃牌堆中获得一张锦囊牌。';
return '摸牌阶段结束时,你可以摸['+list[0]+']张牌。若如此做:你弃置['+list[1]+']张手牌,且当你于本回合内弃置第['+list[2]+']+1张牌后你从弃牌堆中随机获得等量的锦囊牌。';
},
dcshoutan:function(player){
if(player.storage.dcshoutan) return '转换技。出牌阶段限一次,阴:你可以弃置一张不为黑色的手牌。<span class="bluetext">阳:你可以弃置一张黑色手牌。</span>';

View File

@ -11893,7 +11893,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{global:'useCard'},
direct:true,
filter:function(event,player){
return event.card.name=='sha'&&(event.player==player||player.inRange(event.player))&&player.countCards('h')>0;
return event.card.name=='sha'&&(event.player==player||player.inRange(event.player))&&player.countCards('he')>0;
},
content:function(){
'step 0'

View File

@ -1444,137 +1444,137 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
onremove:true,
},
bolan:{
bolan:{
audio:2,
banned:['kotomi_chuanxiang'],
global:'bolan_g',
initList:function(player){
var list,skills=[];
if(get.mode()=='guozhan'){
list=[];
for(var i in lib.characterPack.mode_guozhan) list.push(i);
}
else if(_status.connectMode) list=get.charactersOL();
else {
list=[];
for(var i in lib.character){
if(lib.filter.characterDisabled2(i)||lib.filter.characterDisabled(i)) continue;
list.push(i);
}
}
for(var i of list){
if(i.indexOf('gz_jun')==0) continue;
for(var j of lib.character[i][3]){
if(j=='bolan') continue;
var skill=lib.skill[j];
if(!skill||skill.zhuSkill||skill.dutySkill||lib.skill.bolan.banned.contains(j)) continue;
if(skill.init||skill.ai&&(skill.ai.combo||skill.ai.notemp||skill.ai.neg)) continue;
var info=lib.translate[j+'_info'];
if(info&&info.indexOf('出牌阶段限一次')!=-1) skills.add(j);
}
}
player.storage.bolan=skills;
},
check:function(event,player){
return true;
},
trigger:{player:'phaseUseBegin'},
frequent:true,
global:'bolan_g',
initList:function(player){
var list,skills=[];
if(get.mode()=='guozhan'){
list=[];
for(var i in lib.characterPack.mode_guozhan) list.push(i);
}
else if(_status.connectMode) list=get.charactersOL();
else {
list=[];
for(var i in lib.character){
if(lib.filter.characterDisabled2(i)||lib.filter.characterDisabled(i)) continue;
list.push(i);
}
}
for(var i of list){
if(i.indexOf('gz_jun')==0) continue;
for(var j of lib.character[i][3]){
if(j=='bolan') continue;
var skill=lib.skill[j];
if(!skill||skill.juexingji||info.hiddenSkill||skill.zhuSkill||skill.dutySkill||info.chargeSkill||lib.skill.bolan.banned.contains(j)) continue;
if(skill.init||skill.ai&&(skill.ai.combo||skill.ai.notemp||skill.ai.neg)) continue;
var info=lib.translate[j+'_info'];
if(info&&info.indexOf('出牌阶段限一次')!=-1) skills.add(j);
}
}
player.storage.bolan=skills;
},
check:function(event,player){
return true;
},
trigger:{player:'phaseUseBegin'},
frequent:true,
preHidden:true,
content:function(){
'step 0'
if(player.isIn()){
if(!player.storage.bolan) lib.skill.bolan.initList(player);
var list=player.storage.bolan.randomGets(3);
if(!list.length){
event.finish();
return;
}
player.chooseControl(list).set('choiceList',list.map(function(i){
return '<div class="skill">【'+get.translation(lib.translate[i+'_ab']||get.translation(i).slice(0,2))+'】</div><div>'+get.skillInfoTranslation(i,player)+'</div>';
})).set('displayIndex',false).set('prompt','博览:请选择你要获得的技能').set('ai',()=>{
content:function(){
'step 0'
if(player.isIn()){
if(!player.storage.bolan) lib.skill.bolan.initList(player);
var list=player.storage.bolan.randomGets(3);
if(!list.length){
event.finish();
return;
}
player.chooseControl(list).set('choiceList',list.map(function(i){
return '<div class="skill">【'+get.translation(lib.translate[i+'_ab']||get.translation(i).slice(0,2))+'】</div><div>'+get.skillInfoTranslation(i,player)+'</div>';
})).set('displayIndex',false).set('prompt','博览:请选择你要获得的技能').set('ai',()=>{
var list=_status.event.controls.slice();
return list.sort((a,b)=>{
return get.skillRank(b,'in')-get.skillRank(a,'in');
})[0];
});
}
else event.finish();
'step 1'
player.addTempSkill(result.control,'phaseUseEnd');
player.popup(result.control);
game.log(player,'获得了','#g【'+get.translation(result.control)+'】');
},
ai:{threaten:0.9},
subSkill:{
g:{
audio:'bolan',
forceaudio:true,
enable:'phaseUse',
usable:1,
prompt:'出牌阶段限一次。你可以令一名有〖博览〗的角色从三个描述中包含“出牌阶段限一次”的技能中选择一个,你获得此技能直到此阶段结束。',
filter:function(event,player){
return game.hasPlayer(function(current){
return current!=player&&current.hasSkill('bolan');
});
},
filterTarget:function(card,player,target){
return player!=target&&target.hasSkill('bolan');
},
selectTarget:function(){
if(game.countPlayer(current=>{
return lib.skill.bolan_g.filterTarget(null,_status.event.player,current);
})==1) return -1;
return 1;
},
content:function(){
'step 0'
player.loseHp();
if(target.isIn()&&player.isIn()){
if(!target.storage.bolan) lib.skill.bolan.initList(target);
var list=target.storage.bolan.randomGets(3);
if(!list.length){
event.finish();
return;
}
target.chooseControl(list).set('choiceList',list.map(function(i){
return '<div class="skill">【'+get.translation(lib.translate[i+'_ab']||get.translation(i).slice(0,2))+'】</div><div>'+get.skillInfoTranslation(i,player)+'</div>';
})).set('displayIndex',false).set('prompt','博览:请选择令'+get.translation(player)+'获得的技能').set('ai',()=>{
}
else event.finish();
'step 1'
player.addTempSkill(result.control,'phaseUseEnd');
player.popup(result.control);
game.log(player,'获得了','#g【'+get.translation(result.control)+'】');
},
ai:{threaten:0.9},
subSkill:{
g:{
audio:'bolan',
forceaudio:true,
enable:'phaseUse',
usable:1,
prompt:'出牌阶段限一次。你可以令一名有〖博览〗的角色从三个描述中包含“出牌阶段限一次”的技能中选择一个,你获得此技能直到此阶段结束。',
filter:function(event,player){
return game.hasPlayer(function(current){
return current!=player&&current.hasSkill('bolan');
});
},
filterTarget:function(card,player,target){
return player!=target&&target.hasSkill('bolan');
},
selectTarget:function(){
if(game.countPlayer(current=>{
return lib.skill.bolan_g.filterTarget(null,_status.event.player,current);
})==1) return -1;
return 1;
},
content:function(){
'step 0'
player.loseHp();
if(target.isIn()&&player.isIn()){
if(!target.storage.bolan) lib.skill.bolan.initList(target);
var list=target.storage.bolan.randomGets(3);
if(!list.length){
event.finish();
return;
}
target.chooseControl(list).set('choiceList',list.map(function(i){
return '<div class="skill">【'+get.translation(lib.translate[i+'_ab']||get.translation(i).slice(0,2))+'】</div><div>'+get.skillInfoTranslation(i,player)+'</div>';
})).set('displayIndex',false).set('prompt','博览:请选择令'+get.translation(player)+'获得的技能').set('ai',()=>{
var list=_status.event.controls.slice();
return list.sort((a,b)=>{
return (get.skillRank(b,'in')-get.skillRank(a,'in'))*get.attitude(_status.event.player,_status.event.getParent().player);
})[0];
});
}
else event.finish();
'step 1'
target.line(player);
player.addTempSkill(result.control,'phaseUseEnd');
player.popup(result.control);
game.log(player,'获得了','#g【'+get.translation(result.control)+'】');
},
ai:{
order:function(item,player){
if(player.hp>=5||player.countCards('h')>=10) return 10;
var list=game.filterPlayer(current=>lib.skill.bolan_g.filterTarget(null,player,current));
for(var target of list){
if(get.attitude(target,player)>0) return 10;
}
return 4;
},
result:{
player:function(player,target){
if(player.hasUnknown()) return player.hp+player.countCards('h')/4-5>0?1:0;
var tao=player.countCards('h','tao');
if(player.hp+tao>4) return 4+get.attitude(player,target);
if(player.hp+tao>3) return get.attitude(player,target)-2;
return 0;
},
},
},
}
}
},
}
else event.finish();
'step 1'
target.line(player);
player.addTempSkill(result.control,'phaseUseEnd');
player.popup(result.control);
game.log(player,'获得了','#g【'+get.translation(result.control)+'】');
},
ai:{
order:function(item,player){
if(player.hp>=5||player.countCards('h')>=10) return 10;
var list=game.filterPlayer(current=>lib.skill.bolan_g.filterTarget(null,player,current));
for(var target of list){
if(get.attitude(target,player)>0) return 10;
}
return 4;
},
result:{
player:function(player,target){
if(player.hasUnknown()) return player.hp+player.countCards('h')/4-5>0?1:0;
var tao=player.countCards('h','tao');
if(player.hp+tao>4) return 4+get.attitude(player,target);
if(player.hp+tao>3) return get.attitude(player,target)-2;
return 0;
},
},
},
}
}
},
yifa:{
audio:2,
trigger:{target:'useCardToTargeted'},
@ -3551,6 +3551,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jin_simayi:['jin_zhangchunhua','shibao','duyu'],
jin_simazhao:['jin_wangyuanji'],
jin_simashi:['jin_xiahouhui','jin_yanghuiyu'],
xuangongzhu:['duyu'],
},
characterReplace:{
yanghu:['dc_yanghu','jin_yanghu','sp_yanghu'],

View File

@ -1,6 +1,6 @@
window.noname_update={
version:'1.9.120.3',
update:'1.9.120.2',
version:'1.9.120.3.1',
update:'1.9.120.3',
changeLog:[
'开放常备主数量限制选项',
'整合@copcap 和@萌新 编写的新武将',
@ -14,16 +14,16 @@ window.noname_update={
//'card/huanlekapai.js',
//'card/mtg.js',
//'card/sp.js',
'card/standard.js',
//'card/standard.js',
//'card/swd.js',
//'card/yunchou.js',
//'card/yingbian.js',
'card/yongjian.js',
//'card/yongjian.js',
//'card/zhenfa.js',
//'card/zhulu.js',
'character/clan.js',
//'character/diy.js',
'character/extra.js',
//'character/extra.js',
//'character/hearth.js',
//'character/gujian.js',
//'character/gwent.js',
@ -31,21 +31,21 @@ window.noname_update={
'character/mobile.js',
//'character/mtg.js',
'character/offline.js',
'character/old.js',
//'character/old.js',
//'character/ow.js',
//'character/rank.js',
'character/refresh.js',
'character/sb.js',
'character/shenhua.js',
'character/sp.js',
//'character/shenhua.js',
//'character/sp.js',
'character/sp2.js',
'character/standard.js',
//'character/standard.js',
'character/tw.js',
//'character/swd.js',
//'character/xianjian.js',
'character/xinghuoliaoyuan.js',
'character/yijiang.js',
//'character/yingbian.js',
//'character/xinghuoliaoyuan.js',
//'character/yijiang.js',
'character/yingbian.js',
//'character/yxs.js',
//'extension/boss/extension.js',
//'font/suits.ttf',
@ -59,15 +59,15 @@ window.noname_update={
//'mode/boss.js',
//'mode/brawl.js',
//'mode/chess.js',
'mode/connect.js',
//'mode/doudizhu.js',
'mode/guozhan.js',
'mode/identity.js',
//'mode/connect.js',
'mode/doudizhu.js',
//'mode/guozhan.js',
//'mode/identity.js',
//'mode/single.js',
//'mode/stone.js',
//'mode/tafang.js',
//'mode/versus.js',
'game/game.js',
//'game/game.js',
//'game/keyWords.js',
//'game/NoSleep.js',
//'game/config.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -1837,8 +1837,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
player:{
getTopCards:function(num){
if(typeof num!='number') num=1;
if(num==0) {card=true;num=1;}
if(num<0) num=1;
if(num<=0) num=1;
var cards;
var player=this;
if(player.storage.doudizhu_cardPile&&player.storage.doudizhu_cardPile.length){