This commit is contained in:
Spmario233 2020-05-09 13:30:03 +08:00 committed by GitHub
parent 8e17c94001
commit ab47fbb72c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 1413 additions and 842 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

1404
card/sp.js

File diff suppressed because it is too large Load Diff

View File

@ -710,6 +710,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
})>0;
},
content:function(){
if(player!=game.me&&!player.isUnderControl()&&!player.isOnline()) game.delayx();
player.chooseToDiscard(true,'he',function(card){
return card!=_status.event.card;
}).set('card',player.getEquip('wufengjian'));

View File

@ -6,6 +6,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connectBanned:['diy_tianyu','diy_yangyi','diy_lukang','ns_huamulan','ns_yuji','ns_duangui','ns_liuzhang'],
character:{
ns_zhangwei:['female','wei',3,['nsqiyue','nsxuezhu']],
ns_chendao:['male','shu',4,['nsjianglie']],
diy_wenyang:['male','wei','4/6',['lvli','choujue']],
key_lucia:['female','key','1/2',['lucia_duqu','lucia_zhenren']],
key_kyousuke:['male','key',4,['nk_shekong','key_huanjie']],
@ -27,6 +28,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_tsumugi:['female','key',3,['tsumugi_mugyu','tsumugi_huilang']],
key_saya:['female','key',3,['saya_shouji','saya_powei']],
key_harukakanata:['female','key',3,['haruka_shuangche']],
key_inari:['female','key',2,['inari_baiwei','inari_huhun']],
key_shiina:['female','key',3,['shiina_qingshen','shiina_feiyan']],
// diy_caocao:['male','wei',4,['xicai','diyjianxiong','hujia']],
// diy_hanlong:['male','wei',4,['siji','ciqiu']],
diy_feishi:['male','shu',3,['shuaiyan','moshou']],
@ -101,9 +104,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
characterSort:{
diy:{
diy_tieba:["diy_wenyang","ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua","ns_zhangwei"],
diy_tieba:["diy_wenyang","ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua","ns_zhangwei","ns_chendao"],
diy_default:["diy_feishi","diy_liuyan","diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji","diy_liufu","diy_xizhenxihong","diy_liuzan","diy_zaozhirenjun","diy_yangyi","diy_tianyu"],
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_kagari","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata"],
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_kagari","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina"],
},
},
characterIntro:{
@ -118,6 +121,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
},
characterTitle:{
key_shiina:'#rAngel Beats!',
key_inari:'#bSummer Pockets',
key_saya:'#bLittle Busters!',
key_harukakanata:'#bLittle Busters!',
key_tsumugi:'#bSummer Pockets',
@ -137,6 +142,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_kyousuke:'#bLittle Busters!',
key_yuri:'#rAngel Beats!',
key_haruko:'#bAIR',
ns_chendao:'#g三国杀·用间篇',
diy_wenyang:'#g最粗的梦想XD',
ns_zuoci:'#bskystarwuwei',
ns_lvzhi:'#bskystarwuwei',
@ -172,6 +178,259 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yuji:['zuoci']
},
skill:{
shiina_qingshen:{
trigger:{
player:'damageEnd',
source:'damageSource',
},
filter:function(event,player){
return event.cards&&event.cards.filterInD().length>0;
},
frequent:true,
content:function(){
'step 0'
var cards=trigger.cards.filterInD('od');
player.gain(cards,'gain2','log');
event.count=cards.length;
'step 1'
var cards=player.getCards('he');
if(cards.length==0){
event.finish();
return;
}
else if(cards.length<=event.count){
event._result={bool:true,cards:cards};
}
else player.chooseCard(true,'he',event.count,'请选择要置于武将牌上的牌');
'step 2'
if(result.bool&&result.cards.length){
var cards=result.cards;
player.lose(cards,ui.special,'toStorage');
player.markAuto('shiina_qingshen',cards);
game.log(player,'将',cards,'置于武将牌上');
}
},
intro:{
content:'cards',
onunmark:'throw',
},
mod:{
attackFrom:function(from,to,num){
return num-from.getStorage('shiina_qingshen').length;
},
maxHandcard:function(from,num){
return num+from.getStorage('shiina_qingshen').length;
},
},
},
shiina_feiyan:{
animalList:['key_inari'],
trigger:{global:'phaseBegin'},
direct:true,
filter:function(event,player){
if(lib.skill.shiina_feiyan.animalList.contains(event.player.name)) return false;
return player.getStorage('shiina_qingshen').length>0&&player.inRange(event.player);
},
content:function(){
'step 0'
player.chooseButton([get.prompt('shiina_feiyan',trigger.player),player.getStorage('shiina_qingshen')]).set('goon',get.attitude(player,trigger.player)<0?1:-1).set('ai',function(){return _status.event.goon});
'step 1'
if(result.bool){
var cards=result.links;
player.unmarkAuto('shiina_qingshen',cards);
game.cardsDiscard(cards);
player.$throw(cards);
event.card={name:'sha',isCard:true};
if(lib.filter.targetEnabled(event.card,player,trigger.player)){
event.card=player.useCard(event.card,trigger.player,'shiina_feiyan').card;
}
else player.logSkill('shiina_feiyan',trigger.player);
}
else event.finish();
'step 2'
if(!player.getHistory('sourceDamage',function(evt){
return event.card==evt.card;
}).length) player.draw();
},
group:'shiina_retieji',
},
shiina_retieji:{
shaRelated:true,
trigger:{player:'useCardToPlayered'},
check:function(event,player){
return get.attitude(player,event.target)<0;
},
filter:function(event,player){
return event.card.name=='sha'&&event.getParent().skill=='shiina_feiyan';
},
logTarget:'target',
content:function(){
"step 0"
player.judge(function(){return 0});
if(!trigger.target.hasSkill('fengyin')){
trigger.target.addTempSkill('fengyin');
}
"step 1"
var suit=get.suit(result.card);
var target=trigger.target;
var num=target.countCards('h','shan');
target.chooseToDiscard('请弃置一张'+get.translation(suit)+'牌,否则不能使用闪抵消此杀','he',function(card){
return get.suit(card)==_status.event.suit;
}).set('ai',function(card){
var num=_status.event.num;
if(num==0) return 0;
if(card.name=='shan') return num>1?2:0;
return 8-get.value(card);
}).set('num',num).set('suit',suit);
"step 2"
if(!result.bool){
trigger.getParent().directHit.add(trigger.target);
}
}
},
inari_baiwei:{
enable:'chooseToUse',
filter:function(event,player){
if(event.type=='wuxie'||!player.countCards('he',{suit:'diamond'})) return false;
for(var i=0;i<lib.inpile.length;i++){
var name=lib.inpile[i];
if(name!='du'&&get.type(name)=='basic'&&event.filterCard({name:name},player,event)) return true;
}
return false;
},
chooseButton:{
dialog:function(event,player){
var list=[];
for(var i=0;i<lib.inpile.length;i++){
var name=lib.inpile[i];
if(name=='du') continue;
if(name=='sha'){
list.addArray([
['基本','','sha'],
['基本','','sha','fire'],
['基本','','sha','thunder'],
]);
}
else if(get.type(name)=='basic'){
list.push(['基本','',name]);
}
}
return ui.create.dialog('摆尾',[list,'vcard'],'hidden');
},
filter:function(button,player){
return _status.event.getParent().filterCard({name:button.link[2]},player,_status.event.getParent());
},
check:function(button){
if(_status.event.getParent().type=='phase'){
var player=_status.event.player;
var fakecard={name:button.link[2],nature:button.link[3]};
if(player.getUseValue(fakecard)>0) return get.order(fakecard);
return 0;
}
return 1;
},
backup:function(links,player){
return {
selectCard:1,
filterCard:{suit:'diamond'},
popname:true,
check:function(card){
if(get.type(card)=='basic') return 6;
return 1/Math.max(0.1,get.value(card));
},
position:'he',
viewAs:{name:links[0][2],nature:links[0][3]},
}
},
prompt:function(links,player){
return '将一张♦牌当做'+(get.translation(links[0][3])||'')+get.translation(links[0][2])+'使用';
}
},
ai:{
order:function(item,player){
if(player&&_status.event.type=='phase'){
var max=0
for(var i=0;i<lib.inpile.length;i++){
var name=lib.inpile[i];
if(get.type(name)=='basic'&&player.getUseValue({name:name})>0){
var temp=get.order({name:name});
if(temp>max) max=temp;
}
}
if(max>0) max+=0.5;
return max;
}
return 3;
},
result:{
player:1,
},
save:true,
skillTagFilter:function(player){
return player.countCards('he',{suit:'diamond'})>0;
},
},
group:['inari_baiwei_sha','inari_baiwei_shan','inari_baiwei_draw'],
},
inari_baiwei_shan:{
prompt:'将一张♦牌当做闪打出',
enable:'chooseToRespond',
viewAs:{name:'shan'},
selectCard:1,
filterCard:{suit:'diamond'},
popname:true,
check:function(card){
return 1/Math.max(0.1,get.value(card));
},
position:'he',
ai:{
order:1,
result:{player:1},
respondShan:true,
skillTagFilter:function(player){
return player.countCards('he',{suit:'diamond'})>0;
},
},
},
inari_baiwei_sha:{
prompt:'将一张♦牌当做杀打出',
enable:'chooseToRespond',
viewAs:{name:'sha'},
selectCard:1,
filterCard:{suit:'diamond'},
popname:true,
check:function(card){
return 1/Math.max(0.1,get.value(card));
},
position:'he',
ai:{
order:1,
result:{player:1},
respondSha:true,
skillTagFilter:function(player){
return player.countCards('he',{suit:'diamond'})>0;
},
},
},
inari_baiwei_draw:{
trigger:{player:['useCardAfter','respondAfter']},
forced:true,
popup:false,
filter:function(event,player){
return event.skill&&event.skill.indexOf('inari_baiwei')==0;
},
content:function(){player.draw()},
},
inari_huhun:{
mod:{
suit:function(card,suit){
if(suit=='club') return 'diamond';
},
maxHandcard:function(player,num){
return num+1;
},
}
},
saya_powei:{
trigger:{player:'phaseAfter'},
direct:true,
@ -189,6 +448,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
player.chooseTarget(get.prompt2('saya_powei'),function(card,saya,kyousuke){
return kyousuke.hp>saya.hp;
}).set('ai',function(target){
var player=_status.event.player;
var att=get.attitude(player,target);
if(att>=-2) return 0;
if(target!=get.zhu(target)&&player.hasUnknown()) return 0;
if(target.getEquip(3)&&!player.getEquip(4)) att/=2;
if(player.hp<=1) att*=1.5;
return -att;
});
'step 1'
if(result.bool){
@ -315,6 +582,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var list=[];
for(var i=0;i<lib.inpile.length;i++){
var name=lib.inpile[i];
if(name=='boss_mengpohuihun') continue;
if(name=='sha'){
list.push(['基本','','sha']);
list.push(['基本','','sha','fire']);
@ -429,32 +697,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var cards=result.cards;
player.logSkill('tsumugi_huilang');
player.addSkill('tsumugi_huilang2');
player.storage.tsumugi_huilang2.addArray(cards);
player.markAuto('tsumugi_huilang2',cards);
player.lose(cards,ui.special);
player.markSkill('tsumugi_huilang2');
}
},
},
tsumugi_huilang2:{
charlotte:true,
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=[];
},
marktext:'隐',
intro:{content:'cardCount'},
intro:{content:'cardCount',onunmark:'throw'},
trigger:{player:'phaseBegin'},
forced:true,
filter:function(event,player){
return player.storage.tsumugi_huilang2.length>0;
return player.getStorage('tsumugi_huilang2').length>0;
},
content:function(){
'step 0'
var cards=player.storage.tsumugi_huilang2;
var cards=player.getStorage('tsumugi_huilang2');
event.num=cards.length;
player.gain(cards,'draw');
game.log(player,'获得了'+get.cnNumber(cards.length)+'张牌');
cards.length=0;
player.unmarkSkill('tsumugi_huilang2');
player.unmarkAuto('tsumugi_huilang2',cards);
'step 1'
player.chooseTarget([1,num],'是否令至多'+get.cnNumber(num)+'名角色各摸一张牌?').set('ai',function(target){
return get.attitude(_status.event.player,target);
@ -1704,32 +1967,61 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
},
nsjianglie:{
trigger:{player:'useCardToPlayered'},
filter:function(event,player){
return event.card.name=='sha'&&event.target.countCards('h')>0;
},
check:function(event,player){
return get.attitude(player,event.target)<0;
},
logTarget:'target',
content:function(){
'step 0'
trigger.target.showHandcards();
'step 1'
var cards=trigger.target.getCards('h');
var list=[];
for(var i=0;i<cards.length;i++){
list.add(get.color(cards[i]));
}
if(list.length==1) event._result={control:list[0]};
else{
list.sort();
trigger.target.chooseControl(list).set('prompt','选择弃置一种颜色的所有手牌').set('ai',function(){
var player=_status.event.player;
if(get.value(player.getCards('h',{color:'red'}))>=get.value(player.getCards('h',{color:'black'}))) return 'black';
return 'red';
});
}
'step 2'
trigger.target.discard(trigger.target.getCards('h',{color:result.control}));
},
},
ns_chuanshu:{
audio:["xingshuai",2],
trigger:{
global:"dying",
},
priority:8,
unique:true,
skillAnimation:true,
animationColor:"water",
filter:function (event,player){
return event.player.hp<=0&&event.player!=player;
},
check:function (event,player){
return get.attitude(player,event.player)>0;
},
logTarget:"player",
content:function (){
'step 0'
// player.logSkill('ns_chuanshu',trigger.player);
trigger.player.chooseControl('releiji','guidao').set('prompt',''+get.translation(trigger.player)+'获得一项技能');
goon=true;
if(!goon){
event.finish();
}
'step 1'
audio:["xingshuai",2],
trigger:{
global:"dying",
},
priority:8,
unique:true,
skillAnimation:true,
animationColor:"water",
filter:function (event,player){
return event.player.hp<=0&&event.player!=player;
},
check:function (event,player){
return get.attitude(player,event.player)>0;
},
logTarget:"player",
content:function (){
'step 0'
trigger.player.chooseControl('releiji','guidao').set('prompt',''+get.translation(trigger.player)+'获得一项技能');
goon=true;
if(!goon){
event.finish();
}
'step 1'
trigger.player.addSkillLog(result.control);
trigger.player.recover(1-trigger.player.hp);
trigger.player.draw(2);
@ -6407,7 +6699,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_yui:'ユイ',
key_tsumugi:'紬文德斯',
key_saya:'朱鹭户沙耶',
key_harukakanata:'三枝二木',
key_harukakanata:'三枝叶留佳&二木佳奈多',
key_harukakanata_ab:'三枝二木',
key_inari:'稻荷',
key_shiina:'椎名',
lucia_duqu:'毒躯',
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
lucia_zhenren:'振刃',
@ -6483,6 +6778,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
kanata_shuangche:'双掣',
haruka_shuangche_backup:'双掣',
haruka_shuangche_info:'出牌阶段你可以将一张牌当做任意基本牌或锦囊牌使用。此牌结算完成后你选择一项1.弃置X张牌。2.失去1点体力且本回合内不能再发动〖双掣〗。',
//你不能以此法使用【回魂】
saya_shouji:'授计',
saya_shouji_info:'每回合限一次,当你使用的牌结算完成后,你可以将此牌对应的所有实体牌交给一名其他角色。其可以使用这些牌中的一张,若如此做,你摸一张牌。',
saya_powei:'破围',
@ -6490,7 +6786,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
saya_judge:'破围',
saya_nodis:'破围',
//〖破围〗不会因为〖铁骑〗无效
inari_baiwei:'摆尾',
inari_baiwei_info:'你可以将一张♦牌当做任意基本牌使用或打出。此牌结算完成后,你摸一张牌。',
//你不能以此法使用【毒】
inari_baiwei_backup:'摆尾',
inari_baiwei_sha:'摆尾',
inari_baiwei_shan:'摆尾',
inari_huhun:'狐魂',
inari_huhun_info:'锁定技,你的♣牌的花色均视为♦。你的手牌上限+1。',
shiina_qingshen:'轻身',
shiina_qingshen_info:'当你受到或造成伤害后,你可以获得此次伤害的渠道对应的实体牌,然后将等量的武将牌置于你的武将牌上,称为「轻」。锁定技,你的手牌上限和攻击范围+XX为「轻」数。',
shiina_feiyan:'飞燕',
shiina_feiyan_info:'一名其他角色的回合开始时,若其在你的攻击范围内,则你可以将一张「轻」置于弃牌堆,然后视为对其使用一张【杀】。若此【杀】未造成伤害,你摸一张牌。你于此【杀】的结算流程中视为拥有技能【铁骑】。',
shiina_retieji:'铁骑',
//你不能对稻荷发动【飞燕】
ns_chendao:'SP陈到',
nsjianglie:'将烈',
nsjianglie_info:'当你使用【杀】指定目标后,你可以令其展示所有手牌,然后弃置其中一种颜色的牌。',
ns_zhangwei:'张葳',
nsqiyue:'骑钺',
nsqiyue_info:'锁定技,当有角色的武将牌状态改变后,你摸一张牌。',

View File

@ -3,6 +3,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return {
name:'extra',
connect:true,
characterSort:{
extra:{
extra_feng:['shen_guanyu','shen_lvmeng'],
extra_huo:['shen_zhugeliang','shen_zhouyu'],
extra_lin:['shen_caocao','shen_lvbu'],
extra_shan:['shen_zhaoyun','shen_simayi'],
extra_yin:['shen_liubei','shen_luxun'],
extra_lei:['shen_ganning','shen_zhangliao'],
extra_ol:['ol_zhangliao'],
},
},
character:{
shen_guanyu:['male','shen',5,['new_wuhun','wushen'],['shu']],
shen_zhaoyun:['male','shen',2,['xinjuejing','xinlonghun'],['shu']],
@ -17,6 +28,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"shen_luxun":["male","shen",4,["nzry_junlve","nzry_cuike","nzry_dinghuo"],["wu"]],
"shen_zhangliao":["male","shen",4,["drlt_duorui","drlt_zhiti"],["wei"]],
"shen_ganning":["male","shen","3/6",["drlt_poxi","drlt_jieying"],["wu"]],
ol_zhangliao:['male','shen',4,['olduorui','olzhiti'],['wei']],
},
characterIntro:{
shen_guanyu:'关羽,字云长。曾水淹七军、擒于禁、斩庞德、威震华夏,吓得曹操差点迁都躲避,但是东吴偷袭荆州,关羽兵败被害。后传说吕蒙因关羽之魂索命而死。',
@ -28,6 +40,146 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//shen_ganning:"体力上限6",
},
skill:{
olzhiti:{
audio:'drlt_zhiti',
global:'olzhiti2',
mod:{
maxHandcard:function(player,num){
if(game.hasPlayer(function(current){
return current.isDamaged();
})) return num+1;
},
},
trigger:{player:['phaseDrawBegin2','phaseEnd']},
forced:true,
filter:function(event,player){
var num=event.name=='phase'?5:3;
if(num==3?event.numFixed:!game.hasPlayer(function(current){
return current.countDisabled()<5;
})) return false;
return game.countPlayer(function(current){
return current.isDamaged();
})>=num;
},
direct:true,
content:function(){
if(trigger.name=='phaseDraw'){
player.logSkill('olzhiti');
trigger.num++;
}
else{
var list=game.filterPlayer(function(current){
return current.countDisabled()<5;
});
if(get.isLuckyStar()){
for(var i=0;i<list.length;i++){
if(list.length>1&&player.getFriends.contains(list[i])) list.splice(i--,1);
}
}
var target=list.randomGet();
player.logSkill('olzhiti',target);
list.length=0;
for(var i=1;i<6;i++){
if(!target.isDisabled(i)) list.push(i);
}
target.disableEquip(list.randomGet());
}
},
},
olzhiti2:{
mod:{
maxHandcard:function(player,num){
if(player.isDamaged()) return num-game.countPlayer(function(current){
return current.hasSkill('olzhiti')&&current.inRange(player);
})
},
},
},
olduorui:{
audio:'drlt_duorui',
trigger:{
source:'damageSource'
},
filter:function(event,player){
if(!player.isPhaseUsing()||event.player.isDead()) return false;
for(var i in event.player.disabledSkills){
if(event.player.disabledSkills[i].contains('olduorui2')) return false;
}
var list=[];
var listm=[];
var listv=[];
if(event.player.name1!=undefined) listm=lib.character[event.player.name1][3];
else listm=lib.character[event.player.name][3];
if(event.player.name2!=undefined) listv=lib.character[event.player.name2][3];
listm=listm.concat(listv);
var func=function(skill){
var info=get.info(skill);
if(!info||info.charlotte) return false;
return true;
};
for(var i=0;i<listm.length;i++){
if(func(listm[i])) list.add(listm[i]);
}
return list.length>0;
},
check:function(event,player){
if(get.attitude(player,event.player)>=0) return false;
if(event.getParent('phaseUse').skipped) return true;
var nd=player.needsToDiscard();
return player.countCards('h',function(card){
return (nd?true:get.tag(card,'damage'))&&player.getUseValue(card)>0;
})==0;
},
logTarget:'player',
content:function(){
'step 0'
var list=[];
var listm=[];
var listv=[];
if(trigger.player.name1!=undefined) listm=lib.character[trigger.player.name1][3];
else listm=lib.character[trigger.player.name][3];
if(trigger.player.name2!=undefined) listv=lib.character[trigger.player.name2][3];
listm=listm.concat(listv);
var func=function(skill){
var info=get.info(skill);
if(!info||info.charlotte) return false;
return true;
};
for(var i=0;i<listm.length;i++){
if(func(listm[i])) list.add(listm[i]);
}
event.skills=list;
player.chooseControl(list).set('prompt','选择'+get.translation(trigger.player)+'武将牌上的一个技能并令其失效');
'step 1'
trigger.player.disableSkill('olduorui2',result.control);
trigger.player.addTempSkill('olduorui2',{player:'phaseAfter'});
game.log(player,'选择了',trigger.player,'的技能','#g【'+get.translation(result.control)+'】');
event.getParent('phaseUse').skipped=true;
},
},
olduorui2:{
onremove:function(player,skill){
player.enableSkill(skill);
},
locked:true,
mark:true,
charlotte:true,
intro:{
content:function(storage,player,skill){
var list=[];
for(var i in player.disabledSkills){
if(player.disabledSkills[i].contains(skill)) list.push(i);
};
if(list.length){
var str='失效技能:';
for(var i=0;i<list.length;i++){
if(lib.translate[list[i]+'_info']) str+=get.translation(list[i])+'、';
};
return str.slice(0,str.length-1);
};
},
},
},
wuhun21:{audio:true},
wuhun22:{
audio:true,
@ -2269,13 +2421,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.disableSkill(skill,player.storage.drlt_duorui);
},
onremove:function(player,skill){
"step 0"
player.enableSkill(skill);
"step 1"
delete player.storage.drlt_duorui;
},
locked:true,
mark:true,
charlotte:true,
intro:{
content:function(storage,player,skill){
var list=[];
@ -2710,6 +2860,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"new_wuhun_info":"锁定技当你受到伤害后伤害来源获得X个“梦魇”标记X为伤害点数。锁定技当你死亡时你选择一名“梦魇”标记数量最多的其他角色。该角色进行判定若判定结果不为【桃】或【桃园结义】则该角色死亡。",
"new_guixin":"归心",
"new_guixin_info":"当你受到1点伤害后你可以按照你选择的区域优先度随机获得每名其他角色区域里的一张牌然后你翻面。",
ol_zhangliao:'OL神张辽',
olduorui:'夺锐',
olduorui2:'夺锐',
olduorui_info:'当你于出牌阶段内对一名角色造成伤害后,你可以选择该角色武将牌上的一个技能。若如此做,你结束出牌阶段,且你令此技能于其下个回合结束之前无效。',
olzhiti:'止啼',
olzhiti_info:'锁定技,你攻击范围内已受伤角色的手牌上限-1。若场上已受伤的角色数不小于1你的手牌上限+1不小于3你于摸牌阶段开始时令额定摸牌数+1不小于5回合结束时你随机废除一名角色的一个随机装备栏。',
extra_feng:'神话再临·风',
extra_huo:'神话再临·火',
extra_lin:'神话再临·林',
extra_shan:'神话再临·山',
extra_yin:'神话再临·阴',
extra_lei:'神话再临·雷',
extra_ol:'神话再临OL',
},
};
});

View File

@ -1665,18 +1665,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
marktext:'成',
intro:{
content:function(storage,player,skill){
if(player.storage.nzry_chenglve==true) return '出牌阶段限一次,你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制';
return '出牌阶段限一次,你可以摸一张牌,然后弃置两张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制';
var str=player.storage.nzry_chenglve?'出牌阶段限一次,你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制':'出牌阶段限一次,你可以摸一张牌,然后弃置两张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制';
if(player.storage.nzry_chenglve1){
str+='<br><li>当前花色:';
str+=get.translation(player.storage.nzry_chenglve1);
}
return str;
},
},
enable:"phaseUse",
usable:1,
audio:2,
//filter:function(event,player){
// var num=1;
// if(player.storage.nzry_chenglve==true) num=0;
// return player.countCards('h')>=num;
//},
content:function(){
'step 0'
if(player.storage.nzry_chenglve==true){
@ -1690,9 +1689,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
};
'step 1'
if(result.bool){
player.storage.nzry_chenglve1=result.cards;
player.syncStorage('nzry_chenglve1');
player.addTempSkill('nzry_chenglve1',{player:'phaseAfter'});
player.storage.nzry_chenglve1=[];
for(var i=0;i<result.cards.length;i++){
player.storage.nzry_chenglve1.add(get.suit(result.cards[i],player));
}
player.markSkill('nzry_chenglve');
player.addTempSkill('nzry_chenglve1');
};
},
ai:{
@ -1710,16 +1712,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
cardUsable:function(card,player){
var cards=player.storage.nzry_chenglve1;
for(var i=0;i<cards.length;i++){
if(get.suit(cards[i])==get.suit(card)) return Infinity;
if(cards[i]==get.suit(card)) return Infinity;
};
},
targetInRange:function(card,player){
var cards=player.storage.nzry_chenglve1;
for(var i=0;i<cards.length;i++){
if(get.suit(cards[i])==get.suit(card)) return true;
if(cards[i]==get.suit(card)) return true;
};
}
},
onremove:true,
},
"nzry_shicai":{
audio:"nzry_shicai_2",
@ -1899,6 +1902,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
enable:'phaseUse',
usable:1,
delay:false,
filter:function(event,player){
return game.hasPlayer(function(current){
return current!=player&&

View File

@ -28,7 +28,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_shenpei:['male','qun',3,['gangzhi','beizhan']],
xunchen:['male','qun',3,['fenglve','mouzhi']],
sp_zhanghe:['male','qun',4,['yuanlve']],
sunshao:['male','wu',3,['bizheng','yidian'],['unseen']],
sunshao:['male','wu',3,['bizheng','yidian']],
wangshuang:['male','wei',5,['spzhuilie'],['unseen']],
sp_gongsunzan:['male','qun',4,['spyicong','sptuji']],
sp_simazhao:['male','wei',3,['spzhaoxin','splanggu']],
@ -594,6 +594,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.addSkill('beizhan2');
}
},
ai:{
expose:0.25,
},
},
beizhan2:{
trigger:{player:'phaseBegin'},
@ -672,6 +675,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.gainner.gain(result.links,'giveAuto',event.giver)
},
group:'fenglve2',
ai:{
expose:0.25,
},
},
fenglve2:{
trigger:{player:'chooseToCompareAfter'},
@ -839,10 +845,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
player.chooseTarget(get.prompt2('bizheng'),lib.filter.notMe).set('ai',function(target){
var player=_status.event.player;
if(player.countCards('h')>player.hp) return 0;
if(player.countCards('h')>player.maxHp) return 0;
var att=get.attitude(player,target);
if(att<=0||target.hasSkillTag('nogain')) return false;
if(target.hp-target.countCards('h')>=2) return att;
if(att<=0||target.hasSkillTag('nogain')) return 0;
if(target.maxHp-target.countCards('h')>=2) return att;
return att/2;
});
'step 1'
@ -854,9 +860,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
else event.finish();
'step 2'
if(player.countCards('h')>player.hp) player.chooseToDiscard(2,'he',true);
if(player.countCards('h')>player.maxHp) player.chooseToDiscard(2,'he',true);
'step 3'
if(target.countCards('h')>target.hp) target.chooseToDiscard(2,'he',true);
if(target.countCards('h')>target.maxHp) target.chooseToDiscard(2,'he',true);
},
ai:{
expose:0.25,
},
},
yidian:{
@ -902,7 +911,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.logSkill('yidian',event.targets);
trigger.targets.addArray(event.targets);
}
}
},
ai:{
expose:0.25,
},
},
//王双
spzhuilie:{
@ -1051,6 +1063,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.player.markSkill('spmingjian_charlotte');
}
},
ai:{
expose:0.25,
},
},
spmingjian_charlotte:{
trigger:{player:['judgeBefore','phaseAfter']},
@ -1401,8 +1416,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}).set('ai',function(target){
var player=_status.event.player;
var att=get.attitude(player,target);
if(att>0&&target.countCards('e',function(card){
return get.position(card)=='j'||get.value(card)<=0;
if(att>0&&target.countCards('ej',function(card){
return get.position(card)=='j'||get.value(card,target)<=0;
})) return 2*att;
else if(att<0&&target.countCards('e',function(card){
return get.value(card)>0;
@ -1650,6 +1665,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.num+=(event.triggername=='damageBegin1'?1:-1);
}
},
ai:{
expose:0.25,
},
},
souying2:{},
zhanyuan:{
@ -1780,6 +1798,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1'
if(result.bool) trigger.player.addTempSkill('yuxu');
},
ai:{
expose:0.25,
},
},
pingjian:{
mode:['identity','single','guozhan'],
@ -1964,7 +1985,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
check:function(){return 1},
filterCard:true,
filterTarget:function(event,player,target){
return target!=player&&!target.isDisabled(get.subtype(ui.selected.cards[0]));
return target!=player&&target.canEquip(ui.selected.cards[0],true);
},
prepare:'give',
discard:false,
@ -2049,7 +2070,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
game.log(list,'已被移出游戏');
//game.log('Key公式你可长点心吧 要不然把你也移出游戏');
game.cardsGotoSpecial(list);
},
},
@ -2099,6 +2119,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1'
if(result.bool) trigger.num++;
},
ai:{
expose:0.25,
},
},
pyzhuren_club:{
audio:true,
@ -2246,6 +2269,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result.bool){
var target=result.targets[0];
player.line(target);
player.addExpose(0.2);
target.gain(cards,'gain2');
}
},
@ -2360,6 +2384,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.removeMark('lslixun',1);
}
},
ai:{
expose:0.25,
},
},
xpchijie:{
audio:2,
@ -2836,6 +2863,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
lvli:{
audio:2,
init:function(player,skill){
player.storage[skill]=0;
},
enable:'chooseToUse',
filter:function(event,player){
if(player.storage.lvli>1) return false;
@ -3201,8 +3231,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
used:{sub:true},
},
},
//和沙摩柯一起上线的新服三将
spjiedao:{
//和沙摩柯一起上线的新服三将
spjiedao:{
audio:2,
trigger:{
source:"damageBegin1",
@ -4933,6 +4963,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
logTarget:'player',
filter:function(event,player){
if(!['basic','trick'].contains(get.type(event.card))) return false;
if(!event.targets||event.targets.length!=1) return false;
return event.player.hasMark('zongkui_mark');
},
@ -10409,7 +10440,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true,
content:function(){
"step 0"
var next=player.chooseToDiscard(get.prompt('jieyuan'),{color:'red'});
var next=player.chooseToDiscard(get.prompt('jieyuan'));
if(!player.hasSkill('fenxin_nei')){
next.set('filterCard',function(card){
return get.color(card)=='red';
@ -12604,19 +12635,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
qiluan:{
audio:'qiluan2',
group:'qiluan_draw',
subfrequent:['draw'],
//group:'qiluan_draw',
//subfrequent:['draw'],
trigger:{global:'phaseEnd'},
frequent:true,
filter:function(event,player){
return player.getStat('kill')>0;
return game.hasPlayer2(function(current){
return current.getStat('kill')>0
});
},
prompt:function(event,player){
var num=game.countPlayer2(function(current){
return (current.getStat('kill')||0)*(current==player?3:1);
});
return get.prompt('qiluan')+'(可摸'+get.cnNumber(num)+'张牌)';
},
content:function(){
//if(get.mode()=='guozhan'){
// player.draw(3);
//}
//else{
player.draw(3*player.getStat('kill'));
player.draw(game.countPlayer2(function(current){
return (current.getStat('kill')||0)*(current==player?3:1);
}));
//}
},
subSkill:{
@ -14154,12 +14195,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:false,
content:function(){
"step 0"
var cards=player.getCards('he');
player.removeSkill('lihun2');
if(player.storage.lihun.classList.contains('dead')){
if(player.storage.lihun.classList.contains('dead')||player.storage.lihun.hp<=0||cards.length==0){
event.finish();
}
else{
player.chooseCard('he',true,player.storage.lihun.hp);
if(cards.length<player.storage.lihun.hp) event._result={bool:true,cards:cards};
else player.chooseCard('he',true,player.storage.lihun.hp,'离魂:选择要交给'+get.translation(player.storage.lihun)+'的牌');
}
"step 1"
player.storage.lihun.gain(result.cards,player);
@ -14579,6 +14622,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
result.targets[0].damage(num);
}
},
ai:{
expose:0.25,
threaten:1.7,
},
},
"xinfu_yisuan":{
usable:1,
@ -14702,7 +14749,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
for(var i=0;i<event.toequip.length;i++){
if(get.type(card)=='equip'&&get.subtype(card)==get.subtype(event.toequip[i])) bool1=false;
}
return (get.type(card)=='equip'&&!event.toequip.contains(card)&&!target.isDisabled(get.subtype(card))&&bool1);
return (get.type(card)=='equip'&&!event.toequip.contains(card)&&target.isEmpty(get.subtype(card))&&bool1);
});
if(equip) event.toequip.push(equip);
else event.num=0;
@ -16508,6 +16555,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}).set('judging',trigger.player.judging[0]);
"step 1"
if(['黑桃5','红桃5'].contains(result.control)){
player.addExpose(0.25);
player.removeMark('xinfu_falu_spade');
player.logSkill('xinfu_zhenyi',trigger.player);
//player.line(trigger.player);
@ -16528,6 +16576,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tag:{
rejudge:1,
},
expose:0.5,
},
},
"zhenyi_club":{
@ -16615,6 +16664,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
result.targets[0].damage(num);
}
},
ai:{
expose:0.25,
},
},
"xinfu_yanyu":{
trigger:{
@ -16702,6 +16754,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.storage.xinfu_yanyu2++;
if(!event.logged){
player.logSkill('xinfu_yanyu');
player.addExpose(0.25);
event.logged=true;
}
event.togain=result.links[0];
@ -17246,7 +17299,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
baijia:'拜假',
baijia_info:'觉醒技准备阶段若你因〖骨疽〗获得的牌不少于7张则你增加1点体力上限回复1点体力然后令所有未拥有“傀”标记的其他角色获得“傀”标记最后失去技能〖骨疽〗并获得技能〖蚕食〗。',
bmcanshi:'蚕食',
bmcanshi_info:'一名角色使用牌指定你为唯一目标时,若其有“傀”标记,你可以取消之,然后其失去“傀”标记;你使用牌仅指定一名角色为目标时,你可以额外指定任意名带有“傀”标记的角色为目标(无距离限制),然后这些角色失去“傀”标记。',
bmcanshi_info:'一名角色使用基本牌或普通锦囊牌指定你为唯一目标时,若其有“傀”标记,你可以取消之,然后其失去“傀”标记;你使用牌仅指定一名角色为目标时,你可以额外指定任意名带有“傀”标记的角色为目标(无距离限制),然后这些角色失去“傀”标记。',
zishu:'自书',
zishu_info:'锁定技,你的回合外,你获得的牌均会在当前回合结束后置入弃牌堆;你的回合内,当你不因〖自书〗而获得牌时,你摸一张牌。',
yingyuan:'应援',
@ -17659,7 +17712,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qiangwu_info:'出牌阶段,你可以进行判定。若如此做,直到回合结束,你使用点数小于判定结果的【杀】时不受距离限制,且你使用点数大于判定结果的【杀】时不计入出牌阶段的使用次数限制。',
shenxian_info:'每名角色的回合限一次,你的回合外,当有其他角色因弃置而失去基本牌时,你可以摸一张牌。',
oldshenxian_info:'你的回合外,每当有其他角色因弃置而失去基本牌时,你可以摸一张牌。',
qiluan_info:'一名角色的回合结束时你可以摸3X张牌X为你本回合内杀死过的角色数。一名其他角色死亡后若其不是你杀死的则你可以摸一张牌。',
qiluan_info:'一名角色的回合结束时你可以摸3X+Y张牌。X为你本回合内杀死过的角色数Y为本回合内其他角色杀死过的角色数',
//qiluan_info_guozhan:'一名角色的回合结束时,若你于回合内杀死过角色,则你可以摸三张牌。',
zhendu_info:'一名角色的出牌阶段开始时,你可以弃置一张手牌,视为该角色使用了一张【酒】。若该角色不是你,你对其造成一点伤害。',
//zhendu_info_guozhan:'其他角色的出牌阶段开始时,你可以弃置一张手牌,视为该角色使用了一张【酒】。若如此做,你对其造成一点伤害。',
@ -17736,7 +17789,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
spzhuilie_info:'锁定技你使用【杀】无距离限制当你使用【杀】指定目标后若其不在你的攻击范围内此【杀】不计入使用次数限制且你判定。若判定结果为装备牌此【杀】的伤害基数改为XX为其体力值锦囊牌你失去1点体力。',
sunshao:'孙邵',
bizheng:'弼政',
bizheng_info:'摸牌阶段结束时,你可以令一名其他角色摸两张牌。然后,若你的手牌数大于体力值,你弃置两张牌。若其的手牌数大于体力值,其弃置两张牌。',
bizheng_info:'摸牌阶段结束时,你可以令一名其他角色摸两张牌。然后,若你的手牌数大于体力上限,你弃置两张牌。若其的手牌数大于体力上限,其弃置两张牌。',
yidian:'佚典',
yidian_info:'当你使用牌选择目标时,若弃牌堆中没有与此牌名称相同的牌,则你可以为此牌增加一个目标(无距离限制)。',
sp_zhanghe:'SP张郃',

View File

@ -71,7 +71,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.cardp=result.cards;
}
'step 2'
player.give(event.cardp,target);
player.$giveAuto(event.cardp,target);
target.gain(event.cardp,player);
target.give(event.cardt,player);
'step 3'
var nump=event.cardp[0].number;
@ -84,6 +85,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
ai:{
threaten:1.5,
order:8,
result:{
player:function (player,target){
@ -243,7 +245,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
expose:0.4,
threaten:3,
},
},
"jixu_sha":{
@ -362,9 +363,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.current=event.current.next;
if(event.current!=player) event.goto(1);
},
ai:{
threaten:1.4,
},
},
"xinfu_denglou":{
unique:true,
@ -700,6 +698,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
ai:{
"maixie_defend":true,
threaten:0.7,
effect:{
target:function (card,player,target){
if(player.hasSkillTag('jueqing',false,target)) return [1,-1];
@ -903,6 +902,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 3'
trigger.player.phaseUse();
},
ai:{
expose:0.5,
},
},
"xinfu_gongqing":{
audio:true,
@ -937,13 +939,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sub:true,
mod:{
ignoredHandcard:function (card,player){
if(get.suit(card)=='heart'){
return true;
}
},
if(get.suit(card)=='heart'){
return true;
}
},
cardDiscardable:function (card,player,name){
if(name=='phaseDiscard'&&get.suit(card)=='heart') return false;
},
if(name=='phaseDiscard'&&get.suit(card)=='heart') return false;
},
},
},
},
@ -1160,7 +1162,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
ai:{
expose:0.2,
expose:0.3,
threaten:1.4,
},
},
@ -1342,6 +1344,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
result.targets[0].gain(list,'gain2');
}
},
ai:{
expose:0.3,
},
},
"xinfu_kannan":{
audio:true,

View File

@ -19,8 +19,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
guohuai:['male','wei',4,['xinjingce']],
zhangchunhua:['female','wei',3,['jueqing','shangshi']],
caozhi:['male','wei',3,['luoying','jiushi']],
caochong:['male','wei',3,['renxin','chengxiang']],
xunyou:['male','wei',3,['zhiyu','qice']],
caochong:['male','wei',3,['chengxiang','renxin']],
xunyou:['male','wei',3,['qice','zhiyu']],
xin_xushu:['male','shu',3,['xinwuyan','xinjujian']],
xin_masu:['male','shu',3,['sanyao','zhiman']],
xin_fazheng:['male','shu',3,['xinenyuan','xinxuanhuo'],['die_audio']],
@ -28,13 +28,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xusheng:['male','wu',4,['xinpojun']],
wuguotai:['female','wu',3,['ganlu','buyi']],
lingtong:['male','wu',4,['xuanfeng']],
liubiao:['male','qun',3,['zongshi','zishou']],
liubiao:['male','qun',3,['zishou','zongshi']],
wangyi:['female','wei',3,['zhenlie','miji']],
yufan:['male','wu',3,['zhiyan','zongxuan']],
chengong:['male','qun',3,['mingce','zhichi']],
bulianshi:['female','wu',3,['old_anxu','zhuiyi']],
handang:['male','wu',4,['gongji','jiefan']],
fuhuanghou:['female','qun',3,['zhuikong','qiuyuan']],
fuhuanghou:['female','qun',3,['qiuyuan','zhuikong']],
zhonghui:['male','wei',4,['quanji','zili']],
jianyong:['male','shu',3,['qiaoshui','jyzongshi']],
madai:['male','shu',4,['mashu','qianxi']],
@ -50,7 +50,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhuhuan:['male','wu',4,['fenli','pingkou']],
xiahoushi:['female','shu',3,['qiaoshi','yanyu']],
panzhangmazhong:['male','wu',4,['anjian','duodao']],
panzhangmazhong:['male','wu',4,['duodao','anjian']],
zhoucang:['male','shu',4,['xinzhongyong']],
guanping:['male','shu',4,['longyin']],
liaohua:['male','shu',4,['xindangxian','xinfuli']],
@ -1824,14 +1824,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jiexun:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
// filter:function(event,player){
// return game.hasPlayer(function(current){
// return current.countCards('ej',{suit:'diamond'});
// });
// },
init:function(player){
player.storage.jiexun=0;
},
onremove:true,
direct:true,
content:function(){
@ -1839,7 +1831,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var num1=game.countPlayer(function(current){
return current.countCards('ej',{suit:'diamond'});
});
var num2=player.storage.jiexun;
var num2=player.countMark('jiexun');
event.num1=num1;
event.num2=num2;
var str='令目标摸'+get.cnNumber(num1)+'张牌';
@ -1859,7 +1851,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.num1){
target.draw(event.num1);
}
player.storage.jiexun++;
player.addMark('jiexun',1,false);
}
else{
event.finish();
@ -1872,7 +1864,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.finish();
}
'step 3'
if(!event.target.countCards('he')){
if(result.bool&&result.autochoose&&result.cards.length==result.rawcards.length){
player.removeSkill('jiexun');
player.addSkill('funan_jiexun');
}
@ -10561,6 +10553,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
"step 1"
if(result.bool){
result.targets.sortBySeat();
player.logSkill('xiansi',result.targets);
event.targets=result.targets;
}

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.98.7',
'v1.9.98.7.1',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -1457,8 +1457,6 @@ window.noname_asset_list=[
'audio/skill/qiaoshui2.mp3',
'audio/skill/qice_backup1.mp3',
'audio/skill/qice_backup2.mp3',
'audio/skill/qice1.mp3',
'audio/skill/qice2.mp3',
'audio/skill/qieting1.mp3',
'audio/skill/qieting2.mp3',
'audio/skill/qilin_skill.mp3',
@ -2958,7 +2956,11 @@ window.noname_asset_list=[
'image/character/key_saya.jpg',
'image/character/sp_shenpei.jpg',
'image/character/sp_zhanghe.jpg',
'image/character/xunchen.jpg',
'image/character/xunchen.jpg','image/character/key_inari.jpg',
'image/character/key_shiina.jpg',
'image/character/ns_chendao.jpg',
'image/character/ol_zhangliao.jpg',
'image/character/sunshao.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -11629,7 +11629,9 @@
if(event.autochoose()){
event.result={
bool:true,
cards:player.getCards(event.position)
autochoose:true,
cards:player.getCards(event.position),
rawcards:player.getCards(event.position),
}
for(var i=0;i<event.result.cards.length;i++){
if(!lib.filter.cardDiscardable(event.result.cards[i],player,event)){
@ -14948,28 +14950,7 @@
game.log(player,'阵亡')
}
if(!game.reserveDead){
for(var mark in player.marks){
player.unmarkSkill(mark);
}
while(player.node.marks.childNodes.length>1){
player.node.marks.lastChild.remove();
}
game.broadcast(function(player){
while(player.node.marks.childNodes.length>1){
player.node.marks.lastChild.remove();
}
},player);
}
for(var i in player.tempSkills){
player.removeSkill(i);
}
var skills=player.getSkills();
for(var i=0;i<skills.length;i++){
if(lib.skill[skills[i]].temp){
player.removeSkill(skills[i]);
}
}
// player.removeEquipTrigger();
// for(var i in lib.skill.globalmap){
@ -15022,6 +15003,33 @@
event.trigger('die');
"step 3"
if(player.isDead()){
if(!game.reserveDead){
for(var mark in player.marks){
player.unmarkSkill(mark);
}
while(player.node.marks.childNodes.length>1){
player.node.marks.lastChild.remove();
}
game.broadcast(function(player){
while(player.node.marks.childNodes.length>1){
player.node.marks.lastChild.remove();
}
},player);
}
for(var i in player.tempSkills){
player.removeSkill(i);
}
var skills=player.getSkills();
for(var i=0;i<skills.length;i++){
if(lib.skill[skills[i]].temp){
player.removeSkill(skills[i]);
}
}
if(_status.characterlist){
if(lib.character[player.name]) _status.characterlist.add(player.name);
if(lib.character[player.name1]) _status.characterlist.add(player.name1);
if(lib.character[player.name2]) _status.characterlist.add(player.name2);
}
event.cards=player.getCards('hej');
if(event.cards.length){
player.lose(event.cards,'visible').forceDie=true;
@ -15660,7 +15668,7 @@
},
isDisabled:function(arg){
if(typeof arg=='number') arg='equip'+arg;
if(arg=='equip6'&&this.storage.disableEquip&&(this.storage.disableEquip.contains('equip3')||this.storage.disableEquip.contains('equip3'))) return true;
if(arg=='equip6'&&this.storage.disableEquip&&(this.storage.disableEquip.contains('equip3')||this.storage.disableEquip.contains('equip4'))) return true;
if(this.storage.disableEquip&&this.storage.disableEquip.contains(arg)) return true;
return false;
},
@ -19379,6 +19387,32 @@
delete this.node.timer;
}
},
markAuto:function(name,info){
if(Array.isArray(info)){
if(!Array.isArray(this.storage[name])) this.storage[name]=[];
this.storage[name].addArray(info);
this.markSkill(name);
}
else{
var storage=this.storage[name];
if(Array.isArray(storage)){
this[storage.length>0?'markSkill':'unmarkSkill'](name);
}
else if(typeof storage=='number'){
this[storage.length>0?'markSkill':'unmarkSkill'](name);
}
}
},
unmarkAuto:function(name,info){
var storage=this.storage[name]
if(Array.isArray(info)&&Array.isArray(storage)){
storage.removeArray(info.slice(0));
this.markAuto(name);
}
},
getStorage:function(name){
return this.storage[name]||[];
},
markSkill:function(name,info,card){
if(info===true){
this.syncStorage(name);
@ -21015,7 +21049,7 @@
}
var range=get.subtype(name);
if(this.isDisabled(range)) return false;
if(['equip3','equip4'].contains(range)&&(!this.isDisabled(6)||this.getEquip(6))) return false;
if(['equip3','equip4'].contains(range)&&this.getEquip(6)) return false;
if(!replace&&!this.isEmpty(range)) return false;
return true;
},
@ -48115,6 +48149,7 @@
return num.toString();
},
rawName:function(str){
if(lib.translate[str+'_ab']) return lib.translate[str+'_ab'];
var str2=lib.translate[str];
if(!str2) return '';
if(str2.indexOf('SP')==0){
@ -48147,6 +48182,7 @@
return str2;
},
rawName2:function(str){
if(lib.translate[str+'_ab']) return lib.translate[str+'_ab'];
var str2=lib.translate[str];
if(!str2) return '';
if(str2.indexOf('SP')==0){
@ -48171,6 +48207,7 @@
},
slimName:function(str){
var str2=lib.translate[str];
if(lib.translate[str+'_ab']) str2=lib.translate[str+'_ab'];
if(!str2) return '';
if(str2.indexOf('SP')==0){
str2=str2.slice(2);

View File

@ -1,14 +1,14 @@
window.noname_update={
version:'1.9.98.7',
update:'1.9.98.6.1',
version:'1.9.98.7.1',
update:'1.9.98.7',
changeLog:[
'SP张郃高览荀谌SP审配',
'孙邵OL神张辽',
'bug修复',
],
files:[
//'card/extra.js',
//'card/huanlekapai.js',
//'card/sp.js',
'card/sp.js',
//'card/standard.js',
//'card/swd.js',
//'card/mtg.js',
@ -16,7 +16,7 @@ window.noname_update={
//'card/gwent.js',
//'card/yunchou.js',
//'card/zhenfa.js',
//'card/zhulu.js',
'card/zhulu.js',
'character/diy.js',
'character/extra.js',
//'character/hearth.js',
@ -33,7 +33,7 @@ window.noname_update={
'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
'character/xinghuoliaoyuan.js',
'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 KiB

BIN
image/character/sunshao.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB