Merge branch 'PR-Branch' of https://github.com/libccy/noname into PR-Branch

This commit is contained in:
Spmario233 2023-07-27 18:05:20 +08:00
commit 26a86308e5
26 changed files with 1106 additions and 12460 deletions

View File

@ -2735,7 +2735,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(event.wuxieresult&&event.wuxieresult2&&event.wuxieresult2.skill){
var info=get.info(event.wuxieresult2.skill);
if(info&&info.precontent&&!game.online){
var next=game.createEvent('pre_'+event.wuxieresult2);
var next=game.createEvent('pre_'+event.wuxieresult2.skill);
next.setContent(info.precontent);
next.set('result',event.wuxieresult2);
next.set('player',event.wuxieresult);

View File

@ -678,7 +678,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(event.zhuzhanresult){
var target=event.zhuzhanresult;
target.line(player,'green');
target.discard(event.zhuzhanresult2.cards);
target.discard(event.zhuzhanresult2.cards).discarder=target;
target.popup('助战','wood');
game.log(target,'响应了',player,'发起的助战');
target.addExpose(0.2);

View File

@ -176,7 +176,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
target:function(player,target){
var cards=target.getCards('e'),js=target.getCards('j');
var val=get.value(cards,target);
for(var card of js) val-=get.effect(target,card.viewAs?{name:card.viewAs}:card,target,target)
for(var card of js) val-=get.effect(target,card.viewAs?{name:card.viewAs}:card,target,player);
return -val;
},
},
@ -422,6 +422,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
filterCard:true,
position:'h',
filterTarget:lib.filter.notMe,
check:function(card){
var player=_status.event.player;
var val=5;
if(player.needsToDiscard()) val=15;
return val-get.value(card);
},
discard:false,
lose:false,
delay:false,
@ -429,6 +435,17 @@ game.import('card',function(lib,game,ui,get,ai,_status){
content:function(){
player.give(cards,target);
},
ai:{
expose:0.1,
order:1,
result:{
target:function(player,target){
if(!ui.selected.cards.length) return 0;
if(get.value(ui.selected.cards[0],false,'raw')<0) return -1;
return 1;
}
}
}
},
qixingbaodao:{
trigger:{player:'equipAfter'},

View File

@ -1533,7 +1533,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
characterReplace:{
wuban:['clan_wuban','wuban'],
wuban:['dc_wuban','clan_wuban','wuban'],
},
characterIntro:{
xunshu:'荀淑83年149年字季和为郎陵侯相颍川颍阴人今河南省许昌市人。汉和帝至汉桓帝时人物以品行高洁著称。有子八人号八龙。年轻时有高尚的德行学问渊博不喜欢雕章琢句徒在文字上用功不注重实际的学识。因此常常被俗儒看不起。但州里却称他有知人之明。安帝时征召任为郎中后来再升当涂长。离职还乡里。他的孙子荀彧是曹操部下著名的谋士。',

View File

@ -624,6 +624,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
player.gain(cards,'gain2');
}
},
ai:{
combo:'yizhao',
}
},
sanshou:{
@ -2275,7 +2278,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.zhuzhanresult){
var target=event.zhuzhanresult;
target.line(player,'green');
target.discard(event.zhuzhanresult2.cards);
target.discard(event.zhuzhanresult2.cards).discarder=target;
target.draw(2);
target.popup('助战','wood');
game.log(target,'响应了',player,'发起的助战');

View File

@ -15511,7 +15511,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
player.loseHp();
switch(get.type(cards[0],'trick',cards[0].original=='h'?player:false)){
case 'basic':player.addTempSkill('xinzhanyi_basic');break;
case 'basic':player.addTempSkill('xinzhanyi_basic');player.addMark('xinzhanyi_basic1',1,false);break;
case 'equip':player.addTempSkill('xinzhanyi_equip');break;
case 'trick':player.addTempSkill('xinzhanyi_trick');player.draw(3);break;
}
@ -15526,15 +15526,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinzhanyi_basic1:{
trigger:{player:"useCard"},
filter:function(event,player){
return event.skill=='xinzhanyi_basic_backup'&&!player.storage.xinzhanyi_basic1;
return get.type(event.card,false)=='basic'&&player.hasMark('xinzhanyi_basic1');
},
forced:true,
silent:true,
popup:false,
content:function(){
if(!trigger.baseDamage) trigger.baseDamage=1;
trigger.baseDamage++;
player.storage.xinzhanyi_basic1=true;
var num=player.countMark('xinzhanyi_basic1');
trigger.baseDamage+=num;
player.removeMark('xinzhanyi_basic1',num,false);
game.log(trigger.card,'的伤害值/回复值','#y+'+num);
},
},
xinzhanyi_basic:{
@ -15543,31 +15545,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
delete p.storage[s+1];
},
hiddenCard:function(player,name){
return ['sha','tao','jiu'].contains(name)&&player.countCards('h',{type:'basic'})>0;
return get.type(name)=='basic'&&player.countCards('h',{type:'basic'})>0;
},
enable:"chooseToUse",
filter:function(event,player){
if(event.filterCard({name:'sha'},player,event)||
event.filterCard({name:'jiu'},player,event)||
event.filterCard({name:'tao'},player,event)){
return player.hasCard(function(card){
if(!player.hasCard(function(card){
return get.type(card)=='basic';
},'hs');
},'hs')) return false;
for(var name of lib.inpile){
if(get.type(name)!='basic') continue;
if(event.filterCard({name:name},player,event)) return true;
}
return false;
},
chooseButton:{
dialog:function(event,player){
var list=[];
if(event.filterCard({name:'sha'},player,event)){
list.push(['基本','','sha']);
for(var j of lib.inpile_nature) list.push(['基本','','sha',j]);
for(var name of lib.inpile){
if(get.type(name)!='basic') continue;
if(event.filterCard({name:name},player,event)) list.push(['基本','',name]);
if(name!='sha') continue;
for(var j of lib.inpile_nature){
if(event.filterCard({name:name,nature:j},player,event)) list.push(['基本','','sha',j]);
}
if(event.filterCard({name:'tao'},player,event)){
list.push(['基本','','tao']);
}
if(event.filterCard({name:'jiu'},player,event)){
list.push(['基本','','jiu']);
}
return ui.create.dialog('战意',[list,'vcard'],'hidden');
},
@ -17924,7 +17924,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sunshao:['sp_sunshao','sunshao'],
xunchen:['re_xunchen','xunchen','tw_xunchen','sp_xunchen'],
xinpi:['xinpi','sp_xinpi'],
duyu:['duyu','sp_duyu'],
duyu:['duyu','dc_duyu','sp_duyu','pk_sp_duyu'],
zhangwen:['sp_zhangwen','zhangwen'],
ol_bianfuren:['ol_bianfuren','tw_bianfuren','sp_bianfuren'],
wangshuang:['wangshuang','sp_wangshuang'],
@ -17946,7 +17946,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yangbiao:['yangbiao','dc_yangbiao','jsrg_yangbiao'],
qiaozhou:['yj_qiaozhou','qiaozhou'],
sunhanhua:['dc_qiaozhou','sunhanhua'],
duyu:['duyu','sp_duyu','pk_sp_duyu'],
kongrong:['sp_kongrong','jsrg_kongrong','kongrong'],
mifuren:['dc_mifuren','sp_mifuren'],
},

View File

@ -178,9 +178,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
var go=false,d1=true;
var go=false,d1=false;
if(get.attitude(player,trigger.player)>0){
if(trigger.player.hasSkill('jueqing')||trigger.player.hasSkill('gangzhi')) d1=false
d1=true;
if(trigger.player.hasSkill('jueqing')||trigger.player.hasSkill('gangzhi')) d1=false;
for(var target of trigger.targets){
if(!target.mayHaveShan()||trigger.player.hasSkillTag('directHit_ai',true,{
target:target,

View File

@ -925,6 +925,7 @@ window.noname_character_rank={
'vtb_xiaojiu',
'ol_zhangzhang',
'ol_mengda',
'dc_wuban',
],
b:[
'diy_feishi',
@ -1214,6 +1215,7 @@ window.noname_character_rank={
'vtb_xiaoshan',
'vtb_xiaotao',
'zhangchu',
'dc_duyu',
],
bm:[
'diy_xizhenxihong',

View File

@ -188,6 +188,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.draw();
},
discard:false,
lose:false,
prepare:function(cards,player,targets){
player.$give(cards,targets[0],false);
},

View File

@ -773,7 +773,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{
effect:{
player:function(card,player,target){
if(player!=target&&target&&target.group=='qun') return [1,0.2];
if(player!=target&&target&&target.group=='qun'&&card.name!='tao') return [1,0.1];
},
},
}

View File

@ -3987,6 +3987,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.draw();
},
discard:false,
lose:false,
prepare:function(cards,player,targets){
player.$give(cards,targets[0],false);
},

View File

@ -763,10 +763,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'将势力改为任意一个势力'
].map((text,ind)=>{
var hint='';
if(list.contains(ind+1)){
if(list2.contains(ind+1)){
return text;
}
else{
else if(!list.contains(ind+1)){
hint+='已被执行过且';
}
if(ind==1&&nochai&&!list2.contains(ind+1)) hint+='无有手牌角色且';
@ -841,7 +841,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
选项三:function(){
player.chooseUseTarget('sha',true,false).set('logSkill','olgoude');
player.chooseUseTarget('sha',true,false).set('logSkill','olgoude').set('prompt','苟得:选择【杀】的目标');
},
选项四:function(){
'step 0'
@ -9994,6 +9994,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}).length>0;
},
logTarget:'player',
check:function(event,player){
var list=event.player.getStockSkills('仲村由理','天下第一').filter(function(skill){
var info=get.info(skill);
return info&&!info.juexingji&&!info.hiddenSkill&&!info.zhuSkill&&!info.charlotte&&!info.limited&&!info.dutySkill;
});
var negSkill=list.some(function(skill){
return get.skillRank(skill,'inout')<=0;
});
var att=get.sgnAttitude(event.player,player);
if(!player.storage.retuogu){
if(negSkill&&att<0) return false;
return true;
}
list.sort(function(a,b){
return att*(get.skillRank(b,'inout')-get.skillRank(a,'inout'));
})[0];
return get.skillRank(list[0],'inout')>=get.skillRank(player.storage.retuogu,'inout');
},
content:function(){
'step 0'
var list=trigger.player.getStockSkills('仲村由理','天下第一').filter(function(skill){
@ -10002,7 +10020,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
if(list.length==1) event._result={control:list[0]};
else trigger.player.chooseControl(list).set('prompt','选择令'+get.translation(player)+'获得一个技能').set('forceDie',true).set('ai',function(){
return list.randomGet();
var att=get.sgnAttitude(_status.event.getTrigger().player,player);
if(att==0) return list.randomGet();
var listx=list.map(function(skill){
return [skill,get.skillRank(skill,'inout')];
}).sort(function(a,b){
return att*(b[1]-a[1]);
}).slice(0,2);
var listx2=[0];
if(Math.abs(listx[0][1]-listx[1][1])<=0.5&&Math.sign(listx[0][1])==Math.sign(listx[1][1])) listx2.push(1);
return listx[listx2.randomGet()][0];
});
'step 1'
if(player.storage.retuogu) player.removeSkill(player.storage.retuogu);

View File

@ -4,6 +4,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
dc_wuban:['male','shu',4,['dcyouzhan'],['clan:陈留吴氏','unseen']],
dc_duyu:['male','wei',3,['dcjianguo','dcdyqingshi'],['unseen']],
ganfurenmifuren:['female','shu',3,['dcchanjuan','dcxunbie']],
dc_ganfuren:['female','shu',3,['dcshushen','dcshenzhi']],
dc_mifuren:['female','shu',3,['dcguixiu','dccunsi']],
@ -252,7 +254,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_jianghu:['guanning','huzhao','dc_huangchengyan','mengjie'],
sp_zongheng:['huaxin','luyusheng','re_xunchen','re_miheng','fengxi','re_dengzhi','dc_yanghu','zongyu'],
sp_taiping:['guanhai','liupi','peiyuanshao','zhangchu','zhangkai'],
sp_yanhan:['dc_liuba','dc_huangquan','furongfuqian','xianglang','dc_huojun','gaoxiang'],
sp_yanhan:['dc_liuba','dc_huangquan','furongfuqian','xianglang','dc_huojun','gaoxiang','dc_wuban'],
sp_jishi:['dc_jiben','zhenghun','dc_sunhanhua','liuchongluojun'],
sp_raoting:['dc_huanghao','dc_sunziliufang','dc_sunchen'],
sp_yijun:['gongsundu','mengyou'],
@ -262,7 +264,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_zhongyuan:['re_hucheer','re_zoushi','caoanmin','re_dongcheng'],
sp_zhengyin:['yue_caiwenji'],
sp_xiaohu:['haomeng','yanfuren','yanrou','dc_zhuling'],
sp2_huben:['wangshuang','wenyang','re_liuzan','dc_huangzu','wulan','leitong','chentai'],
sp2_huben:['wangshuang','wenyang','re_liuzan','dc_huangzu','wulan','leitong','chentai','dc_duyu'],
sp2_shengun:["puyuan","guanlu","gexuan",'wufan','re_zhangbao','dukui','zhaozhi','zhujianping','dc_zhouxuān','zerong'],
sp2_bizhe:['dc_luotong','dc_wangchang','chengbing','dc_yangbiao','ruanji'],
sp2_huangjia:['caomao','liubian','dc_liuyu','quanhuijie','dingshangwan','yuanji','xielingyu','sunyu','ganfurenmifuren','dc_ganfuren','dc_mifuren'],
@ -278,6 +280,246 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
skill:{
//吴班
dcyouzhan:{
audio:2,
trigger:{
global:['loseAfter','equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter','addToExpansionAfter'],
},
forced:true,
filter:function(event,player){
if(player!=_status.currentPhase) return false;
return game.hasPlayer(current=>{
if(current==player) return false;
var evt=event.getl(current);
return evt&&evt.cards2.length;
});
},
content:function(){
'step 0'
var targets=game.filterPlayer(current=>{
if(current==player) return false;
var evt=trigger.getl(current);
return evt&&evt.cards2.length;
});
event.targets=targets;
player.logSkill('dcyouzhan',targets);
'step 1'
var target=targets.shift();
player.draw();
target.addTempSkill('dcyouzhan_effect');
target.addMark('dcyouzhan_effect',1,false);
target.addTempSkill('dcyouzhan_draw');
if(targets.length){
event.redo();
}
},
subSkill:{
effect:{
trigger:{
player:'damageBegin3',
},
filter:function(event,player){
return player.hasMark('dcyouzhan_effect');
},
forced:true,
charlotte:true,
onremove:true,
content:function(){
'step 0'
trigger.num+=player.countMark('dcyouzhan_effect');
player.removeSkill('dcyouzhan_effect');
},
mark:true,
intro:{
content:'本回合下一次受到的伤害+#',
},
ai:{
damageBonus:true,
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')) return 1+0.5*target.countMark('dcyouzhan_effect');
}
}
}
},
draw:{
trigger:{
global:'phaseJieshuBegin',
},
forced:true,
charlotte:true,
filter:function(event,player){
return !player.getHistory('damage').length;
},
content:function(){
player.draw(player.getHistory('lose').length);
},
},
}
},
//杜预
dcjianguo:{
audio:2,
enable:'phaseUse',
usable:1,
chooseButton:{
dialog:function(event,player){
var dialog=ui.create.dialog('谏国:请选择一项','hidden');
dialog.add([[
['discard','令一名角色摸一张牌,然后弃置一半手牌'],
['draw','令一名角色弃置一张牌,然后摸等同于手牌数一半的牌']
],'textbutton']);
return dialog;
},
check:function(button){
var player=_status.event.player;
if(button.link=='discard'){
var discard=Math.max.apply(Math,game.filterPlayer(current=>{
return lib.skill.dcjianguo_discard.filterTarget(null,player,current);
}).map(current=>{
return get.effect(current,'dcjianguo_discard',player,player);
}));
return discard;
}
if(button.link=='draw'){
var draw=Math.max.apply(Math,game.filterPlayer(current=>{
return lib.skill.dcjianguo_draw.filterTarget(null,player,current);
}).map(current=>{
return get.effect(current,'dcjianguo_draw',player,player);
}));
return draw;
}
return 0;
},
backup:function(links){
return get.copy(lib.skill['dcjianguo_'+links[0]]);
},
prompt:function(links){
if(links[0]=='discard') return '令一名角色摸一张牌,然后弃置一半手牌';
return '令一名角色弃置一张牌,然后摸等同于手牌数一半的牌';
},
},
ai:{
order:10,
threaten:2.8,
result:{
//想让杜预两个技能自我联动写起来太累了,开摆
player:1,
},
},
subSkill:{
backup:{audio:'dcjianguo'},
discard:{
audio:'dcjianguo',
filterTarget:()=>true,
filterCard:()=>false,
selectCard:-1,
charlotte:true,
content:function(){
'step 0'
target.draw();
game.delayex();
'step 1'
var num=Math.floor(target.countCards('h')/2);
if(num>0) target.chooseToDiscard(num,true,'谏国:请弃置'+get.cnNumber(num)+'张手牌');
},
ai:{
result:{
target:function(player,target){
return 1.1-Math.ceil(target.countCards('h')/2);
},
},
tag:{
gain:1,
loseCard:2,
},
},
},
draw:{
audio:'dcjianguo',
filterTarget:function(card,player,target){
return target.countCards('he');
},
filterCard:()=>false,
selectCard:-1,
charlotte:true,
content:function(){
'step 0'
target.chooseToDiscard('he',true,'谏国:请弃置一张牌');
'step 1'
var num=Math.floor(target.countCards('h')/2);
if(num>0) target.draw(num);
},
ai:{
result:{
target:function(player,target){
var fix=0;
var num=target.countCards('h');
if(player==target&&num%2==1&&num>=5) fix+=1;
return Math.floor(num/2-0.5)+fix;
},
},
tag:{
loseCard:1,
gain:2,
},
},
},
},
},
dcdyqingshi:{
audio:2,
trigger:{
player:'useCardToPlayered',
},
filter:function(event,player){
if(player!=_status.currentPhase) return false;
if(!event.isFirstTarget) return false;
if(event.card.name!='sha'&&get.type(event.card,false)!='trick') return false;
if(player.countCards('h')!=player.getHistory('useCard').indexOf(event.getParent())+1) return false;
return event.targets.some(target=>{
return target!=player&&target.isIn();
});
},
direct:true,
content:function(){
'step 0'
var targets=trigger.targets.filter(target=>{
return target!=player&&target.isIn();
});
player.chooseTarget(get.prompt('dcdyqingshi'),'对一名不为你的目标角色造成1点伤害',(card,player,target)=>{
return _status.event.targets.contains(target);
}).set('ai',target=>{
var player=_status.event.player;
return get.damageEffect(target,player,player);
}).set('targets',targets);
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('dcdyqingshi',target);
target.damage();
}
},
mod:{
aiOrder:function(player,card,num){
if(_status.currentPhase!=player) return;
var cardsh=[];
if(Array.isArray(card.cards)){
cardsh.addArray(card.cards.filter(card=>{
return get.position(card)=='h';
}));
}
var del=player.countCards('h')-cardsh.length-player.getHistory('useCard').length-1;
if(del<0) return;
if(del>0){
if(card.name=='sha'||get.type(card,false)!='trick') return num/3;
return num+1;
}
return num+15;
},
},
},
//甘糜
dcchanjuan:{
audio:2,
@ -415,7 +657,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rec:{
audio:'guixiu',
trigger:{
player:'logSkillAfter',
player:'logSkill',
},
forced:true,
filter:function(event,player){
@ -1113,6 +1355,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
discard:false,
lose:false,
delay:false,
skillAnimation:true,
animationColor:'metal',
check:function(card){
if(get.type(card)!='basic'&&get.type(card)!='trick') return 0;
return get.value(card)-7.5;
@ -3155,6 +3399,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filterTarget:function(card,player,target){
return player!=target&&!player.getStorage('dcmoyu_clear').contains(target)&&target.countGainableCards(player,'hej');
},
global:'dcmoyu_ai',
content:function(){
'step 0'
player.addTempSkill('dcmoyu_clear');
@ -3184,10 +3429,31 @@ game.import('character',function(lib,game,ui,get,ai,_status){
charlotte:true,
onremove:true,
},
ban:{charlotte:true}
ban:{charlotte:true},
ai:{
ai:{
effect:{
target:function(card,player,target,current){
if(get.type(card)=='delay'&&current<0){
var currentx=_status.currentPhase;
if(!currentx||!currentx.isIn()) return;
var list=game.filterPlayer(current=>{
if(current==target) return true;
if(!current.hasSkill('dcmoyu')) return false;
if(current.hasJudge('lebu')) return false;
return get.attitude(current,target)>0;
});
list.sortBySeat(currentx);
if(list.indexOf(target)!=0) return 'zerotarget';
}
},
},
}
}
},
ai:{
order:9,
threaten:2.4,
result:{
target:function(player,target){
var eff=get.effect(target,{name:'shunshou'},player,player);
@ -3222,7 +3488,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.chooseToDiscard('集众:弃置三张手牌,或点击“取消”获得“信众”标记',3);
}
'step 2'
if(!result.bool){
target.addMark('dcjizhong',1);
}
},
marktext:'信',
intro:{
@ -6912,7 +7180,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.logSkill('dcwumei',target);
player.addTempSkill('dcwumei_used','roundStart');
target.insertPhase();
target.addTempSkill('dcwumei_wake');
target.addTempSkill('dcwumei_wake','phaseAfter');
var targets=game.filterPlayer();
if(!target.storage.dcwumei_wake) target.storage.dcwumei_wake=[[],[]];
for(var targetx of targets){
@ -7474,6 +7742,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){
return player.getStorage('dclianzhi').contains(event.player);
},
direct:true,
content:function(){
'step 0'
var num=Math.max(1,player.countMark('dclingfang'));
@ -7483,6 +7752,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('dclianzhi_reproach',target);
player.addSkillLog('dcshouze');
target.addSkillLog('dcshouze');
target.addMark('dclingfang',Math.max(1,player.countMark('dclingfang')));
@ -7494,10 +7764,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dclingfang:{
audio:2,
trigger:{
player:'phaseZhunbeiBegin',
global:'useCardAfter',
},
forced:true,
filter:function(event,player){
if(event.name!='useCard') return true;
if(get.color(event.card)!='black') return false;
if(event.player==player) return !event.targets||!event.targets.contains(player);
return event.targets&&event.targets.contains(player);
@ -7524,6 +7796,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
hiddenCard:function(player,name){
var list=player.getStorage('dcfengying');
if(player.getStorage('dcfengying_used').contains(name)) return false;
return list.contains(name)&&player.hasCard((card)=>(get.number(card)<=player.countMark('dclingfang')),'hs');
},
chooseButton:{
@ -7536,7 +7809,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return ui.create.dialog('风影',[list,'vcard']);
},
filter:function(button,player){
return _status.event.getParent().filterCard({name:button.link[2],storage:{dcfengying:true}},player,_status.event.getParent());
var card={name:button.link[2],storage:{dcfengying:true}};
if(player.getStorage('dcfengying_used').contains(card.name)) return false;
return _status.event.getParent().filterCard(card,player,_status.event.getParent());
},
check:function(button){
var player=_status.event.player;
@ -7565,6 +7840,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
precontent:function(){
player.logSkill('dcfengying');
player.addTempSkill('dcfengying_used');
player.markAuto('dcfengying_used',[event.result.card.name]);
event.getParent().addCount=false;
delete event.result.skill;
}
@ -7613,7 +7889,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
}
},
used:{charlotte:true}
used:{
charlotte:true,
onremove:true,
intro:{
content:'已使用过$',
},
},
}
},
dcshouze:{
@ -13997,14 +14279,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true,
content:function(){
var delta=player.countCards('h')-player.hp;
if(delta>0) player.chooseToDiscard('h',3,true);
if(delta>0) player.chooseToDiscard('h',4,true);
else if(delta==0){
player.chooseToDiscard('h',true);
player.recover();
}
else{
player.damage('fire','nosource');
player.draw(4);
player.draw(5);
}
},
ai:{halfneg:true},
@ -16148,7 +16430,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return event.target!=player&&(event.card.name=='sha'||get.type(event.card,false)=='trick')&&event.target.countCards('he')>0;
},
content:function(){
'step 0'
trigger.target.chooseToDiscard('he',true);
'step 1'
if(result.bool&&result.cards.length&&get.color(result.cards[0],trigger.target)==get.color(trigger.card)){
game.log(trigger.target,'不能响应',trigger.card);
trigger.directHit.push(trigger.target);
}
},
},
},
@ -16167,6 +16455,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
player.gainMaxHp();
player.recover();
},
},
//冯妤
@ -18169,7 +18458,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return false;
},
usable:1,
check:()=>false,
check:function(event,player){
var hs=player.getCards('h'),cards=event.cards.filter(function(i){
return (hs.contains(i)&&get.color(i,player)=='red'&&lib.filter.cardDiscardable(i,player,'difa'));
});
var value=get.value(hs,player);
return Array.from(ui.cardPile.childNodes).some(function(card){
return get.type2(card,false)=='trick'&&get.value(card,player)>value;
});
},
content:function(){
'step 0'
var hs=player.getCards('h'),cards=trigger.cards.filter(function(i){
@ -18185,7 +18482,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return get.type2(i,false)=='trick';
});
if(!list.length) event.finish();
else player.chooseButton(['选择获得一种锦囊牌',[list.map((i)=>['锦囊','',i]),'vcard']],true);
else player.chooseButton(['选择获得一种锦囊牌',[list.map((i)=>['锦囊','',i]),'vcard']],true).set('ai',function(button){
var card={name:button.link[2]};
if(!_status.event.list.contains(card.name)) return 0;
return _status.event.player.getUseValue(card);
}).set('list',Array.from(ui.cardPile.childNodes).filter(function(card){
return get.type2(card,false)=='trick';
}).map(function(card){
return card.name;
}).reduce(function(list,name){
if(!list.contains(name)) list.add(name);
return list;
},[]));
'step 2'
var card=get.cardPile(function(i){
return i.name==result.links[0][2]&&!event.cards.contains(i);
@ -20795,17 +21103,67 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//杨婉
youyan:{
audio:2,
// trigger:{
// player:'loseAfter',
// global:'loseAsyncAfter',
// },
trigger:{
player:'loseAfter',
global:'loseAsyncAfter',
player:['loseAfter','equipAfter'],
global:['loseAsyncAfter','cardsDiscardAfter'],
},
//usable:1,
prompt2:function(event,player){
var cards2=[];
if(event.name=='cardsDiscard'){
var evtx=event.getParent();
if(evtx.name!='orderingDiscard') return false;
var evtx2=(evtx.relatedEvent||evtx.getParent());
if(evtx2.name=='useCard'||evtx2.name=='respond') return false;
player.getHistory('lose',evtx3=>{
var evtx4=evtx3.relatedEvent||evtx3.getParent();
if(evtx2!=evtx4) return false;
if(!evtx3.cards2||!evtx3.cards2.length) return false;
cards2.addArray(evtx3.cards2.filterInD('d'));
});
}
else if(event.name=='loseAsync'){
player.hasHistory('lose',evt=>{
if(evt.getParent()!=event||evt.position!=ui.discardPile) return false;
cards2.addArray(evt.cards2.filterInD('d'));
});
}
else{
cards2.addArray(event.getd(player).filterInD('d'));
}
return '获得与'+get.translation(cards2)+'花色'+(cards2.length>1?'各':'')+'不相同的牌各一张';
},
filter:function(event,player){
if(event.type!='discard'||event.getlx===false||player!=_status.currentPhase) return false;
var evt=event.getl(player);
if(!evt||!evt.cards2||!evt.cards2.length) return false;
if(player!=_status.currentPhase) return false;
var cards2=[];
if(event.name=='cardsDiscard'){
var evtx=event.getParent();
if(evtx.name!='orderingDiscard') return false;
var evtx2=(evtx.relatedEvent||evtx.getParent());
if(evtx2.name=='useCard'||evtx2.name=='respond') return false;
player.getHistory('lose',evtx3=>{
var evtx4=evtx3.relatedEvent||evtx3.getParent();
if(evtx2!=evtx4) return false;
if(!evtx3.cards2||!evtx3.cards2.length) return false;
cards2.addArray(evtx3.cards2.filterInD('d'));
});
}
else if(event.name=='loseAsync'){
player.hasHistory('lose',evt=>{
if(evt.getParent()!=event||evt.position!=ui.discardPile) return false;
cards2.addArray(evt.cards2.filterInD('d'));
});
}
else{
cards2.addArray(event.getd(player).filterInD('d'));
}
if(!cards2.length) return false;
var list=[];
for(var i of evt.cards2){
for(var i of cards2){
list.add(get.suit(i,player));
if(list.length>=lib.suit.length) return false;
}
@ -20823,7 +21181,28 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(evt) evt.youyaned=true;
}
var list=[],cards=[];
var cards2=trigger.getl(player).cards2;
var cards2=[];
if(trigger.name=='cardsDiscard'){
var evtx=trigger.getParent();
if(evtx.name!='orderingDiscard') return false;
var evtx2=(evtx.relatedEvent||evtx.getParent());
if(evtx2.name=='useCard'||evtx2.name=='respond') return false;
player.getHistory('lose',evtx3=>{
var evtx4=evtx3.relatedEvent||evtx3.getParent();
if(evtx2!=evtx4) return false;
if(!evtx3.cards2||!evtx3.cards2.length) return false;
cards2.addArray(evtx3.cards2.filterInD('d'));
});
}
else if(trigger.name=='loseAsync'){
player.hasHistory('lose',evt=>{
if(evt.getParent()!=trigger||evt.position!=ui.discardPile) return false;
cards2.addArray(evt.cards2.filterInD('d'));
});
}
else{
cards2.addArray(trigger.getd(player).filterInD('d'));
}
for(var i of cards2){
list.add(get.suit(i,player));
}
@ -30137,7 +30516,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
kangge_info:'当你受到除自己和“抗歌”角色以外的角色造成的伤害时你可以防止此伤害并选择一种花色然后你失去X点体力令“抗歌”角色从弃牌堆中随机获得X张此花色的牌X为伤害值。',
yangwan:'杨婉',
youyan:'诱言',
youyan_info:'出牌阶段/弃牌阶段各限一次,当你的牌因弃置进入弃牌堆后,你可以从牌堆中获得本次弃牌中没有的花色的牌各一张。',
youyan_info:'出牌阶段/弃牌阶段各限一次。当有牌进入弃牌堆后,若其中有你不因使用或打出而失去的牌,你可以从牌堆中获得你本次失去的牌中没有的花色的牌各一张。',
zhuihuan:'追还',
zhuihuan2:'追还',
zhuihuan2_new:'追还',
@ -30368,9 +30747,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
baoshu_info:'①准备阶段你可选择Y名角色这些角色重置武将牌并获得(X-Y+1)个“梳”X为你的体力上限Y∈[1, X])。②一名角色的摸牌阶段开始时,若其有“梳”,则其本阶段的额定摸牌数+Z且移去Z个“梳”Z为其“梳”的数量。',
mamidi:'马日磾',
bingjie:'秉节',
bingjie_info:'出牌阶段开始时你可减1点体力上限然后当你于本阶段内使用【杀】或普通锦囊牌指定其他角色为目标后其弃置一张牌。',
bingjie_info:'出牌阶段开始时你可减1点体力上限然后当你于本阶段内使用【杀】或普通锦囊牌指定其他角色为目标后其弃置一张牌。若其弃置的牌与你使用的牌颜色相同,其无法响应此牌。',
zhengding:'正订',
zhengding_info:'锁定技。当你于回合外使用或打出牌响应其他角色使用的牌时若这两张牌颜色相同则你加1点体力上限。',
zhengding_info:'锁定技。当你于回合外使用或打出牌响应其他角色使用的牌时若这两张牌颜色相同则你加1点体力上限并回复1点体力。',
licaiwei:'李采薇',
yijiao:'异教',
yijiao_info:'出牌阶段限一次你可以选择一名没有“异”标记的其他角色并声明一个整数XX∈[1,4]该角色获得10X个“异”标记。有“异”标记的角色的结束阶段其移去“异”标记且若其本回合使用牌的点数之和1.小于“异”标记数其随机弃置至多三张手牌2.等于“异”标记数你摸两张牌且该角色本回合结束后进行一个额外的回合3.大于“异”标记数,你摸三张牌。',
@ -30444,7 +30823,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
lianzhou:'连舟',
lianzhou_info:'锁定技。准备阶段,你横置你的武将牌。然后你可横置任意名体力值等于你的角色。',
jinglan:'惊澜',
jinglan_info:'锁定技。当你造成伤害后,若你的手牌数:大于体力值,你弃置张手牌等于体力值你弃置一张手牌并回复1点体力小于体力值你受到1点无来源火焰伤害并摸张牌。',
jinglan_info:'锁定技。当你造成伤害后,若你的手牌数:大于体力值,你弃置张手牌等于体力值你弃置一张手牌并回复1点体力小于体力值你受到1点无来源火焰伤害并摸张牌。',
dc_huangzu:'黄祖',
dcjinggong:'精弓',
dcjinggong_info:'你可以将一张装备牌当做无距离限制的【杀】使用。当你声明使用此【杀】后你将此杀的伤害值基数改为XX为你至此【杀】第一个目标角色的距离且至多为5。',
@ -30701,9 +31080,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dclianzhi:'连枝',
dclianzhi_info:'①游戏开始时你选择一名其他角色仅你可见。②每回合限一次。当你进入濒死状态时若〖连枝①〗角色存活你回复1点体力并与其各摸一张牌。③当〖连枝①〗角色死亡后你可以与一名其他角色各获得〖受责〗且其获得与你拥有的等量枚“绞”标记至少获得1枚。',
dclingfang:'凌芳',
dclingfang_info:'锁定技。当其他角色使用黑色牌结算结束后若你是此牌的目标或你使用黑色牌结算结束后若你不是此牌目标你获得1枚“绞”。',
dclingfang_info:'锁定技。准备阶段,或当其他角色使用黑色牌结算结束后若你是此牌的目标或你使用黑色牌结算结束后若你不是此牌目标你获得1枚“绞”。',
dcfengying:'风影',
dcfengying_info:'①一名角色的回合开始时,你记录弃牌堆中所有黑色基本牌或黑色普通锦囊牌的牌名。②每回合限一次。你可以将一张点数不大于“绞”数的手牌当做任意一张〖风影①〗记录中的牌使用。',
dcfengying_info:'①一名角色的回合开始时,你记录弃牌堆中所有黑色基本牌或黑色普通锦囊牌的牌名。②每回合每种牌名各限一次。你可以将一张点数不大于“绞”数的手牌当做任意一张〖风影①〗记录中的牌使用。',
dcshouze:'受责',
dcshouze_info:'锁定技。结束阶段若你有“绞”你弃1枚“绞”随机获得弃牌堆中的一张黑色牌失去1点体力。',
sunlang:'孙狼',
@ -30855,7 +31234,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhangchu:'张楚',
dcjizhong:'集众',
dcjizhong_info:'出牌阶段限一次。你可以令一名其他角色摸两张牌然后其选择一项1.若其没有“信众”标记其获得“信众”标记2.弃置三张手牌。',
dcrihui:'日',
dcrihui:'日',
dcrihui_info:'每回合限一次。当你使用普通锦囊牌或黑色基本牌结算结束后若此牌的目标数为1且目标不为你且其没有“信众”则所有有“信众”的角色依次视为对其使用一张与此牌牌名和属性相同的牌有“信众”则你可以获得其区域里的一张牌。',
dcguangshi:'光噬',
dcguangshi_info:'锁定技。准备阶段若所有其他角色均有“信众”你失去1点体力并摸两张牌。',
@ -30999,6 +31378,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dcshushen_info:'当你回复1点体力后你可以选择一名其他角色并选择一项1.令其回复1点体力2.你与其各摸一张牌。',
dcshenzhi:'神智',
dcshenzhi_info:'准备阶段若你的手牌数大于体力值你可以弃置一张手牌然后回复1点体力。',
dc_wuban:'吴班',
dcyouzhan:'诱战',
dcyouzhan_info:'锁定技。当其他角色于你的回合内失去牌后你摸一张牌且其获得如下效果1.其于此回合下一次受到的伤害+12.结束阶段若其于此回合未受到过伤害其摸X张牌X为其此回合失去过牌的次数。',
dc_duyu:'杜预',
dcjianguo:'谏国',
dcjianguo_info:'出牌阶段限一次。你可以选择一名角色并选择一项1.令其摸一张牌然后其弃置一半的手牌2.令其弃置一张牌,然后其摸等同于手牌数一半的牌(均向下取整)。',
dcdyqingshi:'倾势',
dcdyqingshi_info:'当你于回合内使用【杀】或普通锦囊牌指定第一个目标后若目标角色包括其他角色且此牌为你本回合使用的第X张牌你可以对其中一名不为你的目标角色造成1点伤害X为你的手牌数。',
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",

View File

@ -2170,6 +2170,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var num=0,numx=target.countCards('h',{name:'sha'}),targetx=target;
for(var i=0; i<numx; i++){
targetx=targetx.next;
if(targetx==player) targetx=targetx.next;
}
var att1=get.attitude(player,target),att2=get.attitude(player,targetx);
if(att1>0&&att2<0) num=0.25;

View File

@ -4091,7 +4091,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
var list=lib.inpile.filter(function(i){
if(player.storage.shouxi.contains(i)) return false;
var type=get.type(i);
var type=get.type2(i);
if(type=='basic'||type=='trick') return true;
return false;
});
@ -4108,6 +4108,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.vcard=result.links;
event.cardname=name;
player.storage.shouxi.add(name);
player.popup(name);
game.log(player,'声明了','#y'+get.translation(name));
}
else{
event.finish();

View File

@ -3625,6 +3625,12 @@
name:'显示分享扩展',
init:true,
unfrequent:true,
},
show_extensionimage:{
name:'显示扩展武将图片',
intro:'关闭扩展武将包仍加载扩展武将图片',
init:true,
unfrequent:true,
}
}
},
@ -7099,6 +7105,10 @@
else if(lib.character[name]){
nameinfo=lib.character[name];
}
else if(lib.config.show_extensionimage){
var pack=Object.keys(lib.characterPack).find(pack => Object.keys(lib.characterPack[pack]).contains(name));
if(pack) nameinfo=lib.characterPack[pack][name];
}
else if(name.indexOf('::')!=-1){
name=name.split('::');
modeimage=name[0];
@ -10634,6 +10644,7 @@
},
changeGroup:function(){
'step 0'
event.originGroup=player.group;
if(!event.group) event.group=player.group;
var group=event.group;
player.getHistory('custom').push(event);
@ -11608,7 +11619,7 @@
if(subtype=='equip6'&&['equip3','equip4'].contains(event.pos)) return true;
return false;
});
if(cards.length) player.discard(cards).delay=false;
if(cards.length) player.loseToDiscardpile(cards).delay=false;
game.log(player,'废除了',get.translation(event.pos),'栏');
player.$disableEquip(event.pos);
}
@ -16299,6 +16310,7 @@
game.log(player,'弃置了',cards);
event.done=player.lose(cards,event.position,'visible');
event.done.type='discard';
if(event.discarder) event.done.discarder=event.discarder;
"step 1"
event.trigger('discard');
},
@ -23751,7 +23763,7 @@
this.addSkill(skill,checkConflict,true,true);
if(!expire){
expire='phaseAfter';
expire=['phaseAfter','phaseBefore'];
}
this.tempSkills[skill]=expire;
@ -29144,6 +29156,19 @@
content:function(){
player.removeSkill('counttrigger');
delete player.storage.counttrigger;
},
group:'counttrigger_2',
subSkill:{
2:{
trigger:{global:'phaseBefore'},
silent:true,
charlotte:true,
priority:100,
content:function(){
player.removeSkill('counttrigger');
delete player.storage.counttrigger;
},
}
}
},
_recovercheck:{
@ -47732,10 +47757,10 @@
for(var i of game.connectPlayers){
if(!i.nickname&&!i.classList.contains('unselectable2')) num++;
}
// if(num>=lib.configOL.number-1){
// alert('至少要有两名玩家才能开始游戏!');
// return;
// }
if(num>=lib.configOL.number-1){
alert('至少要有两名玩家才能开始游戏!');
return;
}
game.resume();
}
button.delete();
@ -53370,12 +53395,17 @@
threaten=info.ai.threaten(player,player);
}
}
if(type=='in'){
if(type.indexOf('in')!=-1){
if(info.enable=='phaseUse') 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){
if(i.indexOf('phase')==0){
num+=0.5;
add=true;
}
else{
for(var j of lib.phaseName){
if(i.indexOf[j]==0){
num+=0.5;
@ -53383,6 +53413,7 @@
break;
}
}
}
if(add) break;
}
}
@ -53393,12 +53424,22 @@
num+=Math.sqrt(threaten)-1;
}
}
else if(type=='out'){
if(type.indexOf('out')!=-1){
if(threaten<1){
num=1/Math.sqrt(threaten);
num*=1/Math.sqrt(threaten);
}
if(info.trigger){
if(info.trigger.global){
var list=Array.isArray(info.trigger.global)?info.trigger.global:[info.trigger.global];
num+=Math.min(3,list.length)/10;
for(var i of list){
if(i.indexOf('lose')==0||i.indexOf('use')==0) num+=0.3;
if(i.indexOf('cardsDiscard')==0) num+=0.4;
}
}
if(info.trigger.target||(typeof info.trigger.player=='string'&&
(info.trigger.player.indexOf('damage')==0||info.trigger.player.indexOf('lose')==0))) num+=0.1;
}
if(info.trigger&&(info.trigger.global||info.trigger.target||(typeof info.trigger.player=='string'&&
(info.trigger.player.indexOf('damage')==0||info.trigger.player.indexOf('lose')==0)))) num+=0.1;
if(info.ai){
if(info.ai.maixie||info.ai.maixie_hp||info.ai.maixie_defend){
num+=0.5;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2308,7 +2308,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
game.countPlayer(function(current){
if(current!=game.boss){
for(var i=0;i<list.length;i++){
if(current.name==list[i]||current.name2==list[i]){current.init('sunce');}
if(current.name==list[i]||current.name2==list[i]){current.init(['sunce','re_sunce','shen_sunce','sb_sunce'].randomGet());}
}
}
});
@ -2888,11 +2888,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
list.remove(ran1);//移除
var skills1=ran1.getSkills(true,false);
if(skills1.length){
for(var i=0;i<skills1.length;i++){
for(var i=0;i<skills1.length;i++){//排除技能,然后随机失去一个可以失去的技能
if(get.skills[i]||lib.skill[skills1[i]].charlotte||!lib.translate[skills1[i]+'_info']||lib.skill[skills1[i]].zhuSkill==true){
skills1.splice(i--,1);
}
}//排除技能,然后随机失去一个可以失去的技能
}
if(skills1.length>0){
skills1=skills1.randomGet();
ran1.disableSkill('boss_wanghun',skills1);
@ -2907,11 +2907,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
list.remove(ran2);//移除
var skills2=ran2.getSkills(true,false);
if(skills2.length){
for(var i=0;i<skills2.length;i++){
for(var i=0;i<skills2.length;i++){//排除技能,然后随机失去一个可以失去的技能
if(get.skills[i]||lib.skill[skills2[i]].charlotte||!lib.translate[skills2[i]+'_info']||lib.skill[skills2[i]].zhuSkill==true){
skills2.splice(i--,1);
}
}//排除技能,然后随机失去一个可以失去的技能
}
if(skills2.length>0){
skills2=skills2.randomGet();
ran2.disableSkill('boss_wanghun',skills2);
@ -2958,7 +2958,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
content:function(){
var name=event.triggername;
if(name=='damageBegin4'){
trigger.num--;return;
trigger.num--;
}
else{
game.countPlayer(function(target){
@ -2988,7 +2988,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
content:function(){
var name=event.triggername;
if(name=='phaseZhunbeiBegin'){
player.recover(3-player.hp);return;
player.recover(3-player.hp);
}
else{
player.draw((name=='gameDrawAfter'||name=='enterGame')?3:2);
@ -8576,7 +8576,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
}
},
"boss_hunzi":{
skillAnimation:true,
animationColor:"wood",
@ -8644,7 +8643,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(event.respondTo[1]&&get.itemtype(event.respondTo[1])!='card') return false;
if(event.respondTo[1]&&['h','e','j'].contains(get.position(event.respondTo[1]))) return false;
},
filter:function (event,player){
filter:function(event,player){
if(!player.storage.boss_jiang) return false;
if(!event.respondTo) return false;
if(get.color(event.card)!='red') return false;
@ -8751,34 +8750,37 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
priority:50,
init:function (player){
player.boss_taoni=function(){
var __Ox598df = ["length", "players", "player", "element"];
for (var i = 0; i < game[__Ox598df[0x1]][__Ox598df[0x0]]; i++) {
var node = game[__Ox598df[0x1]][i];
for (var a in lib[__Ox598df[0x3]][__Ox598df[0x2]]) {
var opd=Object.getOwnPropertyDescriptor(node,a);
if(typeof _status.taoni_over!='function'){
_status.taoni_over=function(str){
_status.over = true;
game.alert(str);
};
}
function isDefined(opd) {
if(opd!=undefined){
if(opd.get||opd.set||opd.writable!=true||opd.configurable!=true||opd.enumerable!=true){
_status.taoni_over(lib.translate[node.name]+'触发了〖讨逆〗,游戏已被终止。');
if (opd.get||opd.set||opd.writable!=true||opd.configurable!=true||opd.enumerable!=true){
return true;
}
}
node[a] = lib[__Ox598df[0x3]][__Ox598df[0x2]][a];//还原函数
var _xsu8 = ['classList','hp','maxHp','skills'];
for(var b=0;b<_xsu8.length;b++){
var opd2=Object.getOwnPropertyDescriptor(node,_xsu8[b]);
if(opd2!=undefined){
if(opd2.get||opd2.set||opd2.writable!=true||opd2.configurable!=true||opd2.enumerable!=true){
_status.taoni_over(lib.translate[node.name]+'触发了〖讨逆〗,游戏已被终止。');
}
}
}
var _cRYC = ['players','dead','over'];
for(var c=0;c<_cRYC.length;c++){
var opd3=Object.getOwnPropertyDescriptor(game,_cRYC[c]);
if(opd3!=undefined){
if(opd3.get||opd3.set||opd3.writable!=true||opd3.configurable!=true||opd3.enumerable!=true){
_status.taoni_over('〖讨逆〗被触发,游戏终止。');
return false;
}
var keysArray=["length","players","player","element"];
for(var i=0;i<game[keysArray[1]][keysArray[0]];i++){
var node=game[keysArray[1]][i];
for(var a in lib[keysArray[3]][keysArray[2]]){
var opd=Object.getOwnPropertyDescriptor(node,a);
if (isDefined(opd)) _status.taoni_over(lib.translate[node.name] + '触发了〖讨逆〗,游戏已被终止。');
//还原函数
node[a]=lib[keysArray[3]][keysArray[2]][a];
var playerKeysArray=['classList','hp','maxHp','skills'];
for(var b=0;b<playerKeysArray.length;b++){
var opd2=Object.getOwnPropertyDescriptor(node,playerKeysArray[b]);
if (isDefined(opd2)) _status.taoni_over(lib.translate[node.name]+'触发了〖讨逆〗,游戏已被终止。');
}
var gameKeysArray=['players','dead','over'];
for(var c=0;c<gameKeysArray.length;c++){
var opd3=Object.getOwnPropertyDescriptor(game,gameKeysArray[c]);
if (isDefined(opd3)) _status.taoni_over('〖讨逆〗被触发,游戏终止。');
}
}
}
@ -9344,7 +9346,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
"boss_dayuan_info":" 当一名角色判定牌最终生效前,你可以指定该判定牌的点数和花色",
"boss_diting":"谛听",
"boss_diting_info":"锁定技,你的坐骑区被废除,你与别人计算距离时-1别人与你计算距离时+1你的坐骑牌均用于重铸。",
/* //等阶
/*
//等阶
"boss_sdyl_playerlevel1":"一阶",
"boss_sdyl_playerlevel1_info":"",
"boss_sdyl_playerlevel2":"二阶",

View File

@ -4093,7 +4093,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
}
}
if(info.linked) target.classList.add('linked');
if(info.linked) target.classList.add('linked'+(get.is.linked2(target)?'2':''));
if(info.turnedover) target.classList.add('turnedover');
if(info.position<_status.firstAct.brawlinfo.position) _status.firstAct=target;
var hs=[];

View File

@ -362,6 +362,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return Math.random();
}).set('dialog',event.videoId);
"step 5"
game.broadcastAll('closeDialog',event.videoId);
game.me.next.init(result.links[0]);
_status.characterlist.remove(result.links[0]);
game.addRecentCharacter(result.links[0]);

View File

@ -1,82 +0,0 @@
window.noname_update={
version:'1.9.110.9.3.2',
update:'1.9.110.9.3.1',
changeLog:[
'曹安民技能修改',
'国战技能预亮机制',
'bug修复',
],
files:[
//'card/extra.js',
//'card/gujian.js',
//'card/guozhan.js',
//'card/gwent.js',
//'card/huanlekapai.js',
//'card/mtg.js',
//'card/sp.js',
//'card/standard.js',
//'card/swd.js',
//'card/yunchou.js',
//'card/yingbian.js',
//'card/zhenfa.js',
//'card/zhulu.js',
//'character/diy.js',
//'character/extra.js',
//'character/hearth.js',
//'character/gujian.js',
//'character/gwent.js',
//'character/hearth.js',
'character/mobile.js',
//'character/mtg.js',
//'character/offline.js',
//'character/old.js',
//'character/ow.js',
//'character/rank.js',
'character/refresh.js',
'character/shenhua.js',
'character/sp.js',
'character/sp2.js',
//'character/tw.js',
'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
'character/xinghuoliaoyuan.js',
'character/yingbian.js',
'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
//'layout/default/layout.css',
//'layout/newlayout/global.css',
//'layout/default/menu.css',
//'layout/nova/layout.css',
//'layout/mobile/equip.css',
//'mode/boss.js',
//'mode/brawl.js',
//'mode/chess.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/keyWords.js',
//'game/NoSleep.js',
//'game/config.js',
//'game/package.js',
//'game/asset.js',
//'game/source.js',
//'theme/style/hp/xinglass.css',
//'theme/style/hp/xinround.css',
//'theme/style/hp/image/xinglass1.png',
//'theme/style/hp/image/xinglass2.png',
//'theme/style/hp/image/xinglass3.png',
//'theme/style/hp/image/xinglass4.png',
//'theme/style/hp/image/xinround1.png',
//'theme/style/hp/image/xinround2.png',
//'theme/style/hp/image/xinround3.png',
//'theme/style/hp/image/xinround4.png',
]
};