Shinda Sekai Sensen----!!!

This commit is contained in:
Spmario233 2020-10-23 22:35:26 +08:00
parent 903fc118ce
commit 2eef0b2196
13 changed files with 343 additions and 153 deletions

View File

@ -50,7 +50,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
lianheng:true, lianheng:true,
logv:false, logv:false,
savable:function(card,player,dying){ savable:function(card,player,dying){
return dying==player; return dying==player||player.hasSkillTag('jiuOther',null,dying,true);
}, },
usable:1, usable:1,
selectTarget:-1, selectTarget:-1,
@ -196,7 +196,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
return 7-get.value(card,evt.player); return 7-get.value(card,evt.player);
} }
return -1; return -1;
}).prompt=false; }).set('prompt',false);
game.delay(2); game.delay(2);
"step 2" "step 2"
if(result.bool){ if(result.bool){
@ -667,12 +667,16 @@ game.import('card',function(lib,game,ui,get,ai,_status){
filterCard:function(){return false}, filterCard:function(){return false},
selectCard:-1, selectCard:-1,
viewAs:links[0], viewAs:links[0],
onuse:function(result,player){ precontent:function(){
var muniu=player.getEquip(5); var muniu=player.getEquip(5);
var card=event.result.card;
if(muniu&&muniu.cards){ if(muniu&&muniu.cards){
muniu.cards.remove(result.card); muniu.cards.remove(event.result.card);
lib.skill.muniu_skill.sync(muniu); lib.skill.muniu_skill.sync(muniu);
} }
event.result.card=get.autoViewAs(card);
event.result.cards=[card];
delete event.result.skill;
player.updateMarks(); player.updateMarks();
} }
} }

View File

@ -297,7 +297,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
var evt=evt2.getParent(); var evt=evt2.getParent();
var next=game.createEvent('caochuan_gain'); var next=game.createEvent('caochuan_gain');
_status.event.next.remove(next); _status.event.next.remove(next);
evt.after.push(next); evt.after.unshift(next);
next.player=player; next.player=player;
next.setContent(function(){ next.setContent(function(){
var cards=event.getParent().cards.filterInD(); var cards=event.getParent().cards.filterInD();

View File

@ -5,7 +5,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true, connect:true,
connectBanned:['diy_tianyu','diy_yangyi','diy_lukang','ns_huamulan','ns_yuji','ns_duangui','ns_liuzhang','key_yuu'], connectBanned:['diy_tianyu','diy_yangyi','diy_lukang','ns_huamulan','ns_yuji','ns_duangui','ns_liuzhang','key_yuu'],
character:{ character:{
sp_key_yuri:['female','qun',4,['mubing','diaoling']], sp_key_yuri:['female','qun',4,['mubing','ziqu','diaoling']],
ns_zhangwei:['female','wei',3,['nsqiyue','nsxuezhu']], ns_zhangwei:['female','wei',3,['nsqiyue','nsxuezhu']],
ns_chendao:['male','shu',4,['nsjianglie']], ns_chendao:['male','shu',4,['nsjianglie']],
yj_caoang:['male','wei',4,['yjxuepin']], yj_caoang:['male','wei',4,['yjxuepin']],

View File

@ -943,7 +943,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
names.randomSort(); names.randomSort();
event.videoId=lib.status.videoId++; event.videoId=lib.status.videoId++;
if(player.isUnderControl()){ if(player.isUnderControl()){
game.modeSwapPlayer(player); game.swapPlayerAuto(player);
} }
var switchToAuto=function(){ var switchToAuto=function(){
names.remove('du'); names.remove('du');
@ -2281,7 +2281,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 0" "step 0"
event.videoId=lib.status.videoId++; event.videoId=lib.status.videoId++;
if(player.isUnderControl()){ if(player.isUnderControl()){
game.modeSwapPlayer(player); game.swapPlayerAuto(player);
} }
var switchToAuto=function(){ var switchToAuto=function(){
game.pause(); game.pause();
@ -5166,7 +5166,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
xinzhilve_mark:{ xinzhilve_mark:{
intro:{content:'本回合手牌上限+#'}, intro:{content:'本回合手牌上限+#'},
onunmark:true, onremove:true,
charlotte:true, charlotte:true,
mod:{ mod:{
maxHandcard:function(player,num){ maxHandcard:function(player,num){

View File

@ -36,7 +36,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_lingtong:['male','wu',4,['rexuanfeng']], re_lingtong:['male','wu',4,['rexuanfeng']],
yujin_yujin:['male','wei',4,['rejieyue']], yujin_yujin:['male','wei',4,['rejieyue']],
re_caozhang:['male','wei',4,['new_jiangchi']], re_caozhang:['male','wei',4,['new_jiangchi']],
re_chengpu:['male','wu',4,['lihuo','rechunlao']], re_chengpu:['male','wu',4,['decadelihuo','decadechunlao']],
re_quancong:['male','wu',4,['xinyaoming']], re_quancong:['male','wu',4,['xinyaoming']],
re_liaohua:['male','shu',4,['xindangxian','xinfuli']], re_liaohua:['male','shu',4,['xindangxian','xinfuli']],
re_guohuai:['male','wei',4,['xinjingce']], re_guohuai:['male','wei',4,['xinjingce']],
@ -121,6 +121,107 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sunben:['zhouyu','taishici','daqiao'], sunben:['zhouyu','taishici','daqiao'],
}, },
skill:{ skill:{
decadelihuo:{
trigger:{player:'useCard1'},
filter:function(event,player){
if(event.card.name=='sha'&&!event.card.nature) return true;
return false;
},
audio:'lihuo',
audioname:['re_chengpu'],
check:function(event,player){
return event.baseDamage>1&&game.hasPlayer(function(current){
return !event.targets.contains(current)&&player.canUse(event.card,current)
&&get.attitude(player,current)<0&&!current.hasShan()
&&get.effect(current,{name:'sha',nature:'fire'},player,player)>0;
});
},
content:function(){
trigger.card.nature='fire';
},
group:['decadelihuo2','decadelihuo3'],
},
decadelihuo2:{
trigger:{player:'useCard2'},
filter:function(event,player){
if(event.card.name!='sha'||event.card.nature!='fire') return false;
return game.hasPlayer(function(current){
return !event.targets.contains(current)&&player.canUse(event.card,current);
});
},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt('decadelihuo'),'为'+get.translation(trigger.card)+'增加一个目标',function(card,player,target){
return !_status.event.sourcex.contains(target)&&player.canUse(_status.event.card,target);
}).set('sourcex',trigger.targets).set('card',trigger.card).set('ai',function(target){
var player=_status.event.player;
return get.effect(target,_status.event.card,player,player);
});
'step 1'
if(result.bool){
if(!event.isMine()&&!_status.connectMode) game.delayx();
event.target=result.targets[0];
}
else{
event.finish();
}
'step 2'
player.logSkill('decadelihuo',event.target);
trigger.targets.push(event.target);
},
},
decadelihuo3:{
trigger:{player:'useCardAfter'},
filter:function(event,player){
return event.card.name=='sha'&&event.card.nature=='fire'&&event.targets.length>1&&player.getHistory('sourceDamage',function(evt){
return evt.card==event.card;
}).length>0;
},
forced:true,
audio:'lihuo',
audioname:['re_chengpu'],
content:function(){
player.loseHp();
}
},
decadechunlao:{
audio:'chunlao',
audioname:['re_chengpu'],
enable:'chooseToUse',
viewAs:{name:'jiu',isCard:true},
viewAsFilter:function(player){
return !player.isLinked();
},
filterCard:function(){return false},
selectCard:-1,
precontent:function(){
player.logSkill('decadechunlao');
player.link();
delete event.result.skill;
},
group:'decadechunlao2',
ai:{
save:true,
jiuOther:true,
skillTagFilter:function(player,tag){
if(tag=='save') return !player.isLinked();
},
},
},
decadechunlao2:{
trigger:{
source:'damageSource',
player:'damageEnd',
},
prompt:'是否发动【醇醪】将武将牌横置?',
filter:function(event,player){
return player.isLinked()&event.num>1;
},
content:function(){
player.link();
},
},
oltianxiang:{ oltianxiang:{
audio:'tianxiang', audio:'tianxiang',
audioname:['daxiaoqiao','re_xiaoqiao','ol_xiaoqiao'], audioname:['daxiaoqiao','re_xiaoqiao','ol_xiaoqiao'],
@ -2967,7 +3068,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
fullimage:true, fullimage:true,
image:'character:'+list[i] image:'character:'+list[i]
} }
lib.translate[cardname]=lib.translate[list[i]]; lib.translate[cardname]=get.rawName2(list[i]);
cards.push(game.createCard(cardname,'','')); cards.push(game.createCard(cardname,'',''));
} }
player.$draw(cards,'nobroadcast'); player.$draw(cards,'nobroadcast');
@ -4533,7 +4634,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
"step 0" "step 0"
if(player.isUnderControl()){ if(player.isUnderControl()){
game.modeSwapPlayer(player); game.swapPlayerAuto(player);
} }
var num=game.countPlayer()<4?3:5; var num=game.countPlayer()<4?3:5;
var cards=get.cards(num); var cards=get.cards(num);
@ -7562,6 +7663,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
olhongyan_info:'锁定技,你的黑桃牌的花色视为红桃。若你的装备区内有红桃牌,则你的手牌上限基数视为体力上限。', olhongyan_info:'锁定技,你的黑桃牌的花色视为红桃。若你的装备区内有红桃牌,则你的手牌上限基数视为体力上限。',
piaoling:'飘零', piaoling:'飘零',
piaoling_info:'结束阶段你可以进行判定。若判定结果为红桃则你选择一项1.将此牌交给一名角色。若你交给了自己则你弃置一张牌。2.将此牌置于牌堆顶。', piaoling_info:'结束阶段你可以进行判定。若判定结果为红桃则你选择一项1.将此牌交给一名角色。若你交给了自己则你弃置一张牌。2.将此牌置于牌堆顶。',
decadelihuo:'疠火',
decadelihuo2:'疠火',
decadelihuo3:'疠火',
decadelihuo_info:'当你声明使用普【杀】时你可以将此【杀】改为火【杀】。你使用的火【杀】结算完成后若此【杀】的目标数大于1且你因此【杀】造成过伤害则你失去1点体力。',
decadechunlao:'醇醪',
decadechunlao2:'醇醪',
decadechunlao_info:'你可以对其他角色使用【酒使用方法②】。当你需要使用【酒】时若你的武将牌未横置则你可以将武将牌横置然后视为使用【酒】。当你受到或造成伤害后若伤害值大于1且你的武将牌横置则你可以重置武将牌。',
refresh_standard:'界限突破·标', refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风', refresh_feng:'界限突破·风',

View File

@ -5140,7 +5140,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
if(!list.length||!skills.length){event.finish();return;} if(!list.length||!skills.length){event.finish();return;}
if(player.isUnderControl()){ if(player.isUnderControl()){
game.modeSwapPlayer(player); game.swapPlayerAuto(player);
} }
var switchToAuto=function(){ var switchToAuto=function(){
_status.imchoosing=false; _status.imchoosing=false;

View File

@ -416,7 +416,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return number>=1&&number<=13; return number>=1&&number<=13;
}); });
if(player.isUnderControl()){ if(player.isUnderControl()){
game.modeSwapPlayer(player); game.swapPlayerAuto(player);
} }
var switchToAuto=function(){ var switchToAuto=function(){
_status.imchoosing=false; _status.imchoosing=false;
@ -726,52 +726,60 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' 'step 0'
var num=player.storage.mubing2?3:2; var num=player.storage.mubing2?4:3;
event.num=num+1; event.num=num;
player.chooseToDiscard([1,num],'he',get.prompt('mubing'),'弃置至多'+get.cnNumber(num)+'张牌,然后展示牌堆顶的'+get.cnNumber(num+1)+'张牌').set('ai',function(card){ event.cards=game.cardsGotoOrdering(get.cards(num)).cards;
game.log(player,'展示了',event.cards);
event.videoId=lib.status.videoId++;
game.broadcastAll(function(player,id,cards){
var str=get.translation(player)+'发动了【募兵】';
var dialog=ui.create.dialog(str,cards);
dialog.videoId=id;
},player,event.videoId,event.cards);
game.addVideo('showCards',player,[get.translation(player)+'发动了【募兵】',get.cardsInfo(event.cards)]);
game.delay(2);
'step 1'
var numa=0;
cards.sort(function(a,b){
return a.number-b.number;
});
for(var i of cards){
if(get.value(i,player)>0) numa+=get.number(i);
}
player.chooseToDiscard([1,Infinity],'h').set('ai',function(card){
var player=_status.event.player; var player=_status.event.player;
if(card.name!='tengjia'&&get.position(card)=='e'&&get.equipValue(card,player)<=0) return 14; var numa=_status.event.numa;
if(!ui.selected.cards.length){ //if(card.name!='tengjia'&&get.position(card)=='e'&&get.equipValue(card,player)<=0) return 14;
if(card.number<9) return 0;
if(card.number>11) return card.number;
if(!player.countCards('he',function(xcard){
return xcard!=card&&card.number+xcard.number>17;
})) return 0;
return card.number;
}
var num=0; var num=0;
for(var i of ui.selected.cards){ for(var i of ui.selected.cards){
num+=i.number; num+=i.number;
} }
if(num+card.number<18) return 0; if(num>=numa) return 0;
if(card.number+num>=numa) return 15-get.value(card);
if(!ui.selected.cards.length){
var min=_status.event.min;
if(card.number<min&&!player.countCards('h',function(xcard){
return xcard!=card&&card.number+xcard.number>min;
})) return 0;
return card.number;
}
return Math.max(5-get.value(card),card.number); return Math.max(5-get.value(card),card.number);
}).logSkill='mubing'; }).set('prompt',false).set('numa',numa).set('min',cards[0].number);
'step 1' var func=function(id){
var dialog=get.idDialog(id);
if(dialog) dialog.content.firstChild.innerHTML='请选择要弃置的牌';
};
if(player==game.me) func(event.videoId);
else if(player.isOnline()) player.send(func,event.videoId);
'step 2'
if(!result.bool){ if(!result.bool){
event.finish();return; return;
} }
var numx=0; var numx=0;
for(var i of result.cards){ for(var i of result.cards){
numx+=get.number(i); numx+=get.number(i);
} }
event.numx=numx; event.numx=numx;
event.cards=game.cardsGotoOrdering(get.cards(num)).cards;
event.videoId=lib.status.videoId++;
game.broadcastAll(function(player,id,cards,numx){
var str;
if(player==game.me&&!_status.auto){
str='募兵:选择任意张点数不大于'+numx+'的牌';
}
else{
str='募兵';
}
var dialog=ui.create.dialog(str,cards);
dialog.videoId=id;
},player,event.videoId,event.cards,numx);
event.time=get.utc();
game.addVideo('showCards',player,['募兵',get.cardsInfo(event.cards)]);
game.addVideo('delay',null,2);
'step 2'
var next=player.chooseButton([0,num]); var next=player.chooseButton([0,num]);
next.set('dialog',event.videoId); next.set('dialog',event.videoId);
next.set('filterButton',function(button){ next.set('filterButton',function(button){
@ -785,28 +793,89 @@ game.import('character',function(lib,game,ui,get,ai,_status){
next.set('ai',function(button){ next.set('ai',function(button){
return get.value(button.link,_status.event.player); return get.value(button.link,_status.event.player);
}); });
var func=function(id){
var dialog=get.idDialog(id);
if(dialog) dialog.content.firstChild.innerHTML='请选择要获得的牌';
};
if(player==game.me) func(event.videoId);
else if(player.isOnline()) player.send(func,event.videoId);
'step 3' 'step 3'
if(!result.bool) event.cards=[]; if(!result.bool) event.cards=[];
else event.cards=result.links; else event.cards=result.links;
var time=1000-(get.utc()-event.time);
if(time>0){
game.delay(0,time);
}
'step 4' 'step 4'
game.broadcastAll('closeDialog',event.videoId); game.broadcastAll('closeDialog',event.videoId);
if(!cards.length){event.finish();return;} if(!cards.length){
if(player.storage.mubing2) player.chooseTarget('请选择一名角色获得'+get.translation(cards),true); event.finish();
else event._result={bool:true,targets:[player]}; return;
}
player.gain(cards,'log','gain2');
if(!player.storage.mubing2){
event.finish();
return;
}
event.given=[];
'step 5' 'step 5'
var target=result.targets[0]; var hs=player.getCards('h');
player.line(target); cards=cards.filter(function(card){
target.gain(cards,'log','gain2'); return hs.contains(card);
});
if(cards.length&&game.hasPlayer(function(current){
return current!=player&&!event.given.contains(current);
})) player.chooseCardTarget({
prompt:'是否将获得的牌中的任意张交给其他角色?',
selectCard:[1,cards.length],
filterCard:function(card){
return _status.event.cards.contains(card);
},
filterTarget:function(card,player,target){
return target!=player&&!_status.event.given.contains(target);
},
cards:cards,
given:event.given,
ai1:function(card){
return -1;
},
});
else event.finish();
'step 6'
if(result.bool){
var target=result.targets[0];
var cards=result.cards;
event.given.push(target);
event.cards.removeArray(cards);
player.line(target,'green');
target.gain(cards,player,'giveAuto');
event.goto(5);
}
}, },
}, },
ziqu:{
trigger:{source:'damageBegin2'},
filter:function(event,player){
return event.player!=player&&!player.getStorage('ziqu').contains(event.player)&&
event.player.countCards('he')>0;
},
logTarget:'player',
content:function(){
'step 0'
trigger.cancel();
if(!player.storage.ziqu) player.storage.ziqu=[];
player.storage.ziqu.push(trigger.player);
player.markSkill('ziqu');
trigger.player.chooseCard(true,'he',function(card,player){
return !player.countCards('he',function(cardx){
return cardx.number>card.number;
});
});
'step 1'
if(result.bool&&result.cards&&result.cards.length) player.gain(result.cards,trigger.player,'giveAuto');
},
intro:{content:'已对#发动过'},
},
mubing_rewrite:{ mubing_rewrite:{
mark:true, mark:true,
intro:{ intro:{
content:'出牌阶段开始时,你可以弃置至多三张牌,然后展示牌堆顶的四张牌,并可令一名角色获得任意张点数之和不大于你弃置的牌点数之和的牌。', content:'出牌阶段开始时,你可以展示牌堆顶的四张牌。你可弃置任意张手牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。然后你可将以此法获得的牌以任意方式交给其他角色。',
}, },
}, },
diaoling:{ diaoling:{
@ -5464,8 +5533,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return str; return str;
}, },
mubing:function(player){ mubing:function(player){
if(player.storage.mubing2) return '出牌阶段开始时,你可以弃置至多三张牌,然后展示牌堆顶的四张牌,并可令一名角色获得任意张点数之和不大于你弃置的牌点数之和的牌。'; if(player.storage.mubing2) return '出牌阶段开始时,你可以展示牌堆顶的四张牌。你可弃置任意张手牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。然后你可将以此法获得的牌以任意方式交给其他角色。';
return '出牌阶段开始时,你可以弃置至多两张牌,然后展示牌堆顶的三张牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。'; return '出牌阶段开始时,你可以展示牌堆顶的三张牌。你可弃置任意张手牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。';
}, },
}, },
translate:{ translate:{
@ -5724,11 +5793,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_zhangliao:'SP张辽', sp_zhangliao:'SP张辽',
//这俩技能给SP仲村由理毫无违和感好吗 //这俩技能给SP仲村由理毫无违和感好吗
mubing:'募兵', mubing:'募兵',
mubing_info:'出牌阶段开始时,你可以弃置至多两张牌,然后展示牌堆顶的三张牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。', mubing_info:'出牌阶段开始时,你可以展示牌堆顶的三张牌。你可弃置任意张手牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。',
ziqu:'资取',
ziqu_info:'每名角色限一次,当你对有牌的其他角色造成伤害后,你可以防止此伤害。然后其将其点数最大的牌交给你。',
diaoling:'调令', diaoling:'调令',
diaoling_info:'觉醒技准备阶段若你已因〖募兵〗获得了6张或更多的【杀】或武器牌或伤害锦囊牌则你回复1点体力或摸两张牌然后修改〖募兵〗。', diaoling_info:'觉醒技准备阶段若你已因〖募兵〗获得了6张或更多的【杀】或武器牌或伤害锦囊牌则你回复1点体力或摸两张牌然后修改〖募兵〗。',
mubing_rewrite:'募兵·改', mubing_rewrite:'募兵·改',
mubing_rewrite_info:'出牌阶段开始时,你可以弃置至多三张牌,然后展示牌堆顶的四张牌,并可令一名角色获得任意张点数之和不大于你弃置的牌点数之和的牌。', mubing_rewrite_info:'出牌阶段开始时,你可以展示牌堆顶的四张牌。你可弃置任意张手牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。然后你可将以此法获得的牌以任意方式交给其他角色。',
caobuxing:'曹不兴', caobuxing:'曹不兴',
moying:'墨影', moying:'墨影',
moying_info:'每回合限一次当你于回合外不因使用而失去单一一张锦囊牌或装备牌后你可以选择一个花色和与此牌点数差绝对值不超过2的点数然后获得牌堆中所有与此牌花色点数相同的牌。', moying_info:'每回合限一次当你于回合外不因使用而失去单一一张锦囊牌或装备牌后你可以选择一个花色和与此牌点数差绝对值不超过2的点数然后获得牌堆中所有与此牌花色点数相同的牌。',

View File

@ -1235,7 +1235,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
"step 0" "step 0"
if(player.isUnderControl()){ if(player.isUnderControl()){
game.modeSwapPlayer(player); game.swapPlayerAuto(player);
} }
var num=Math.min(5,game.countPlayer()); var num=Math.min(5,game.countPlayer());
if(player.hasSkill('yizhi')&&player.hasSkill('guanxing')){ if(player.hasSkill('yizhi')&&player.hasSkill('guanxing')){

View File

@ -1886,9 +1886,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
'step 5' 'step 5'
if(!event.e&&player.isMinEquip()){ if(!event.e&&player.isMinEquip()){
var equip=get.cardPile(function(card){ var equip=get.cardPile(function(card){
return get.type(card)=='equip'&&target.hasUseTarget(card); return get.type(card)=='equip'&&target.hasUseTarget(card);
}); });
if(equip) player.chooseUseTarget(equip,'noanimate','nopopup',true); if(equip) player.chooseUseTarget(equip,'noanimate','nopopup',true);
} }
'step 6' 'step 6'
@ -1968,12 +1968,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.syncStorage(); player.syncStorage();
if(target.countCards('he')==0) event._result={index:0}; if(target.countCards('he')==0) event._result={index:0};
else{ else{
player.chooseControlList([ player.chooseControlList([
'令'+get.translation(target)+'摸'+get.cnNumber(event.num)+'张牌', '令'+get.translation(target)+'摸'+get.cnNumber(event.num)+'张牌',
'令'+get.translation(target)+'弃置'+get.cnNumber(event.num)+'张牌' '令'+get.translation(target)+'弃置'+get.cnNumber(event.num)+'张牌'
],function(){ ],function(){
return _status.event.choice; return _status.event.choice;
}).set('choice',get.attitude(player,target)>0?0:1); }).set('choice',get.attitude(player,target)>0?0:1);
} }
'step 1' 'step 1'
if(result.index==0){ if(result.index==0){
@ -2008,10 +2008,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.player==player) return false; if(event.player==player) return false;
if(player!=event.respondTo[0]) return false; if(player!=event.respondTo[0]) return false;
if(!player.hasSkill('funan_jiexun')){ if(!player.hasSkill('funan_jiexun')){
var cards=[] var cards=[]
if(get.itemtype(event.respondTo[1])=='card') cards.push(event.respondTo[1]); if(get.itemtype(event.respondTo[1])=='card') cards.push(event.respondTo[1]);
else if(event.respondTo[1].cards) cards.addArray(event.respondTo[1].cards); else if(event.respondTo[1].cards) cards.addArray(event.respondTo[1].cards);
return cards.filterInD('od').length>0; return cards.filterInD('od').length>0;
} }
else return event.cards.filterInD('od').length>0; else return event.cards.filterInD('od').length>0;
}, },
@ -2020,9 +2020,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0' 'step 0'
if(!player.hasSkill('funan_jiexun')){ if(!player.hasSkill('funan_jiexun')){
var cards=[] var cards=[]
if(get.itemtype(trigger.respondTo[1])=='card') cards.push(trigger.respondTo[1]); if(get.itemtype(trigger.respondTo[1])=='card') cards.push(trigger.respondTo[1]);
else if(trigger.respondTo[1].cards) cards.addArray(trigger.respondTo[1].cards); else if(trigger.respondTo[1].cards) cards.addArray(trigger.respondTo[1].cards);
cards=cards.filterInD('od'); cards=cards.filterInD('od');
trigger.player.gain(cards,'gain2','log'); trigger.player.gain(cards,'gain2','log');
trigger.player.addTempSkill('funan_use'); trigger.player.addTempSkill('funan_use');
if(!trigger.player.storage.funan_use){ if(!trigger.player.storage.funan_use){
@ -7512,12 +7512,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.countCards('h')==player.countCards('h','du')) return -1; if(player.countCards('h')==player.countCards('h','du')) return -1;
if(target.hasJudge('lebu')) return 0; if(target.hasJudge('lebu')) return 0;
if(get.attitude(player,target)>3){ if(get.attitude(player,target)>3){
var basis=get.threaten(target); var basis=get.threaten(target);
if(player==get.zhu(player)&&player.hp<=2&&player.countCards('h','shan')&&!game.hasPlayer(function(current){ if(player==get.zhu(player)&&player.hp<=2&&player.countCards('h','shan')&&!game.hasPlayer(function(current){
return get.attitude(current,player)>3&&current.countCards('h','tao')>0; return get.attitude(current,player)>3&&current.countCards('h','tao')>0;
})) return 0; })) return 0;
if(target.countCards('h')+player.countCards('h')>target.hp+2) return basis*0.8; if(target.countCards('h')+player.countCards('h')>target.hp+2) return basis*0.8;
return basis; return basis;
} }
return 0; return 0;
} }
@ -8551,14 +8551,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target:function(player,target){ target:function(player,target){
var disbool=false; var disbool=false;
if(player.hasSkill('rezhiman')){ if(player.hasSkill('rezhiman')){
if(target.countCards('j')&&get.attitude(player,target)>0){ if(target.countCards('j')&&get.attitude(player,target)>0){
return 1; return 1;
} }
if(target.countCards('he',function(card){ if(target.countCards('he',function(card){
return card.name=='tengjia'||get.value(card)>0; return card.name=='tengjia'||get.value(card)>0;
})){ })){
disbool=true; disbool=true;
} }
} }
var damage=get.damageEffect(target,player); var damage=get.damageEffect(target,player);
if(disbool&&get.attitude(player,target)<0) return Math.min(-1,damage); if(disbool&&get.attitude(player,target)<0) return Math.min(-1,damage);
@ -8588,24 +8588,34 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
ai:{ ai:{
order:10, order:function(item,player){
if(player.countCards('h',function(card){
return player.hasValueTarget(card);
})) return 10;
return 1;
},
result:{ result:{
target:function (player,target){ target:function(player,target){
if(player.hasSkill('qiaoshui3')) return 0; if(player.countCards('h',function(card){
var nd=!player.needsToDiscard(); return player.hasValueTarget(card);
if(player.hasCard(function(card){ })){
if(get.position(card)!="h") return false; if(player.hasSkill('qiaoshui3')) return 0;
var val=get.value(card) var nd=!player.needsToDiscard();
if(nd&&val<0) return true; if(player.hasCard(function(card){
if(val<=5){ if(get.position(card)!="h") return false;
return card.number>=12; var val=get.value(card)
} if(nd&&val<0) return true;
if(val<=6){ if(val<=5){
return card.number>=13; return card.number>=12;
} }
return false; if(val<=6){
})) return -1; return card.number>=13;
return 0; }
return false;
})) return -1;
return 0;
}
return -1;
}, },
}, },
}, },
@ -9327,11 +9337,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
order:10, order:10,
result:{ result:{
target:function(player,target){ target:function(player,target){
if(player!=target) return 0; if(player!=target) return 0;
if(player.hasSkill('requanji')||(player.countCards('h')+2<=player.hp+player.storage.quanji.length)) return 1; if(player.hasSkill('requanji')||(player.countCards('h')+2<=player.hp+player.storage.quanji.length)) return 1;
return 0; return 0;
} }
}, },
}, },
} }
}, },
@ -9642,27 +9652,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target:function(card,player,target){ target:function(card,player,target){
if(card.name!='sha') return; if(card.name!='sha') return;
var players=game.filterPlayer(); var players=game.filterPlayer();
if(get.attitude(player,target)<=0){ if(get.attitude(player,target)<=0){
for(var i=0;i<players.length;i++){ for(var i=0;i<players.length;i++){
var target2=players[i]; var target2=players[i];
if(player!=target2&&target!=target2&&player.canUse(card,target2,false)&& if(player!=target2&&target!=target2&&player.canUse(card,target2,false)&&
get.effect(target2,{name:'shacopy',nature:card.nature,suit:card.suit},player,target)>0&& get.effect(target2,{name:'shacopy',nature:card.nature,suit:card.suit},player,target)>0&&
get.effect(target2,{name:'shacopy',nature:card.nature,suit:card.suit},player,player)<0){ get.effect(target2,{name:'shacopy',nature:card.nature,suit:card.suit},player,player)<0){
if(target.hp==target.maxHp) return 0.3; if(target.hp==target.maxHp) return 0.3;
return 0.6; return 0.6;
} }
} }
} }
else{ else{
for(var i=0;i<players.length;i++){ for(var i=0;i<players.length;i++){
var target2=players[i]; var target2=players[i];
if(player!=target2&&target!=target2&&player.canUse(card,target2,false)&& if(player!=target2&&target!=target2&&player.canUse(card,target2,false)&&
get.effect(target2,{name:'shacopy',nature:card.nature,suit:card.suit},player,player)>0){ get.effect(target2,{name:'shacopy',nature:card.nature,suit:card.suit},player,player)>0){
if(player.canUse(card,target2)) return; if(player.canUse(card,target2)) return;
if(target.hp==target.maxHp) return [0,1]; if(target.hp==target.maxHp) return [0,1];
return [0,0]; return [0,0];
} }
} }
} }
} }
} }

View File

@ -10155,9 +10155,7 @@
if(!evt.orderingCards) evt.orderingCards=[]; if(!evt.orderingCards) evt.orderingCards=[];
if(!event.noOrdering&&!event.cardsOrdered){ if(!event.noOrdering&&!event.cardsOrdered){
event.cardsOrdered=true; event.cardsOrdered=true;
var next=game.createEvent('orderingDiscard',false); var next=game.createEvent('orderingDiscard',false,evt.getParent());
event.next.remove(next)
evt.after.push(next)
next.relatedEvent=evt; next.relatedEvent=evt;
next.setContent('orderingDiscard'); next.setContent('orderingDiscard');
} }

View File

@ -1,3 +1,3 @@
window.bannedKeyWords=[ window.bannedKeyWords=[
'ghs','直肠','性交','做爱','http','吃奶','骚逼','哈巴狗','美眉','癌','屁眼','艹','傻逼','操你','做鸡','奸','姦','华为','屄','狗子','屎','同性恋','肖战','鸡巴','精液','粪水','挂月亮中','贱骨头','吃屁', 'ghs','直肠','性交','做爱','http','吃奶','骚逼','哈巴狗','美眉','癌','屁眼','艹','傻逼','操你','做鸡','奸','姦','华为','屄','狗子','屎','同性恋','肖战','鸡巴','精液','粪水','挂月亮中','贱骨头','吃屁','傻','奥利给',
]; ];

View File

@ -1,14 +1,13 @@
window.noname_update={ window.noname_update={
version:'1.9.105.5', version:'1.9.105.5.1',
update:'1.9.105.4', update:'1.9.105.5',
changeLog:[ changeLog:[
'乙坂有宇', 'SP仲村由理调整',
'新郭淮',
'bug修复', 'bug修复',
], ],
files:[ files:[
//'card/extra.js', 'card/extra.js',
//'card/huanlekapai.js', //'card/huanlekapai.js',
//'card/sp.js', //'card/sp.js',
//'card/standard.js', //'card/standard.js',
@ -21,40 +20,40 @@ window.noname_update={
//'card/zhenfa.js', //'card/zhenfa.js',
'card/zhulu.js', 'card/zhulu.js',
'character/diy.js', 'character/diy.js',
'character/extra.js', //'character/extra.js',
//'character/hearth.js', //'character/hearth.js',
//'character/gujian.js', //'character/gujian.js',
//'character/gwent.js', //'character/gwent.js',
//'character/hearth.js', //'character/hearth.js',
//'character/mobile.js', 'character/mobile.js',
//'character/mtg.js', //'character/mtg.js',
//'character/old.js', //'character/old.js',
//'character/refresh.js', 'character/refresh.js',
'character/shenhua.js', //'character/shenhua.js',
'character/sp.js', 'character/sp.js',
'character/sp2.js', 'character/sp2.js',
//'character/tw.js', //'character/tw.js',
'character/standard.js', 'character/standard.js',
'character/swd.js', //'character/swd.js',
//'character/xianjian.js', //'character/xianjian.js',
'character/xinghuoliaoyuan.js', //'character/xinghuoliaoyuan.js',
'character/yijiang.js', 'character/yijiang.js',
//'character/yxs.js', //'character/yxs.js',
//'extension/boss/extension.js', //'extension/boss/extension.js',
//'layout/default/layout.css', //'layout/default/layout.css',
//'layout/nova/layout.css', //'layout/nova/layout.css',
'mode/identity.js', //'mode/identity.js',
//'mode/doudizhu.js', //'mode/doudizhu.js',
'mode/guozhan.js', 'mode/guozhan.js',
//'mode/chess.js', //'mode/chess.js',
//'mode/tafang.js', //'mode/tafang.js',
'mode/single.js', //'mode/single.js',
//'mode/stone.js', //'mode/stone.js',
//'mode/brawl.js', //'mode/brawl.js',
'mode/versus.js', //'mode/versus.js',
//'mode/boss.js', //'mode/boss.js',
'game/game.js', 'game/game.js',
//'game/keyWords.js', 'game/keyWords.js',
//'game/server.js', //'game/server.js',
//'game/NoSleep.js', //'game/NoSleep.js',
//'game/config.js', //'game/config.js',

View File

@ -4652,7 +4652,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
fullimage:true, fullimage:true,
image:'character:'+list[i] image:'character:'+list[i]
} }
lib.translate[cardname]=lib.translate[list[i]]; lib.translate[cardname]=get.rawName2(list[i]);
cards.push(game.createCard(cardname,'','')); cards.push(game.createCard(cardname,'',''));
} }
player.$draw(cards,'nobroadcast'); player.$draw(cards,'nobroadcast');