Add get.cardNameLength.

This commit is contained in:
Tipx-L 2023-09-04 22:17:59 -07:00
parent c52659566e
commit a3a9540950
5 changed files with 92 additions and 75 deletions

View File

@ -641,6 +641,47 @@ game.import('card',function(lib,game,ui,get,ai,_status){
} }
} }
} }
},
/**
* @deprecated
*/
_yongjian_zengyu:{
get filter(){
return lib.skill._gifting.filter;
},
set filter(filter){
lib.skill._gifting.filter=filter;
},
get filterCard(){
return lib.skill._gifting.filterCard;
},
set filterCard(filterCard){
lib.skill._gifting.filterCard=filterCard;
},
get filterTarget(){
return lib.skill._gifting.filterTarget;
},
set filterTarget(filterTarget){
lib.skill._gifting.filterTarget=filterTarget;
},
get check(){
return lib.skill._gifting.check;
},
set check(check){
lib.skill._gifting.check=check;
},
get content(){
return lib.skill._gifting.content;
},
set content(content){
lib.skill._gifting.content=content;
},
get ai(){
return lib.skill._gifting.ai;
},
set ai(ai){
lib.skill._gifting.ai=ai;
}
} }
}, },
translate:{ translate:{

View File

@ -37,12 +37,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'useCardToPlayered'}, trigger:{player:'useCardToPlayered'},
filter:function(event,player){ filter:function(event,player){
if(!event.isFirstTarget) return false; if(!event.isFirstTarget) return false;
return lib.skill.dcweidang.getLength(event.card)==player.getHistory('useCard').indexOf(event.getParent())+1; return get.cardNameLength(event.card)==player.getHistory('useCard').indexOf(event.getParent())+1;
}, },
direct:true, direct:true,
content:function(){ content:function(){
'step 0' 'step 0'
var num=lib.skill.dcweidang.getLength(trigger.card); var num=get.cardNameLength(trigger.card);
event.num=num; event.num=num;
player.chooseTarget(get.prompt('clanjiejian'),'令一名目标角色摸'+get.cnNumber(num)+'张牌',function(card,player,target){ player.chooseTarget(get.prompt('clanjiejian'),'令一名目标角色摸'+get.cnNumber(num)+'张牌',function(card,player,target){
return _status.event.getTrigger().targets.contains(target); return _status.event.getTrigger().targets.contains(target);
@ -57,7 +57,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{threaten:3}, ai:{threaten:3},
mod:{ mod:{
aiOrder:function(player,card,num){ aiOrder:function(player,card,num){
if(typeof card=='object'&&lib.skill.dcweidang.getLength(card)==player.getHistory('useCard').length+1){ if(typeof card=='object'&&get.cardNameLength(card)==player.getHistory('useCard').length+1){
if(get.effect(player,card,player,player)>0) return num+10; if(get.effect(player,card,player,player)>0) return num+10;
} }
}, },
@ -68,17 +68,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'damageEnd'}, trigger:{player:'damageEnd'},
filter:function(event,player){ filter:function(event,player){
if(!event.card) return false; if(!event.card) return false;
var num=lib.skill.dcweidang.getLength(event.card); var num=get.cardNameLength(event.card);
return typeof num=='number'&&num>0; return typeof num=='number'&&num>0;
}, },
check:function(event,player){ check:function(event,player){
var num=lib.skill.dcweidang.getLength(event.card); var num=get.cardNameLength(event.card);
if(num>=player.getDamagedHp()) return true; if(num>=player.getDamagedHp()) return true;
return player.getHistory('useSkill',evt=>evt.skill=='clanhuanghan').length&&player.hasSkill('clanbaozu',null,false,false)&&player.awakenedSkills.contains('clanbaozu'); return player.getHistory('useSkill',evt=>evt.skill=='clanhuanghan').length&&player.hasSkill('clanbaozu',null,false,false)&&player.awakenedSkills.contains('clanbaozu');
}, },
content:function(){ content:function(){
'step 0' 'step 0'
player.draw(lib.skill.dcweidang.getLength(trigger.card)); player.draw(get.cardNameLength(trigger.card));
if(player.isDamaged()) player.chooseToDiscard(player.getDamagedHp(),'he',true); if(player.isDamaged()) player.chooseToDiscard(player.getDamagedHp(),'he',true);
'step 1' 'step 1'
if(player.getHistory('useSkill',evt=>evt.skill=='clanhuanghan').length>1&&player.hasSkill('clanbaozu',null,false,false)&&player.awakenedSkills.contains('clanbaozu')){ if(player.getHistory('useSkill',evt=>evt.skill=='clanhuanghan').length>1&&player.hasSkill('clanbaozu',null,false,false)&&player.awakenedSkills.contains('clanbaozu')){
@ -138,18 +138,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!player.countCards('h')) event.finish(); if(!player.countCards('h')) event.finish();
'step 3' 'step 3'
player.chooseCard('迂志:请展示一张手牌','摸此牌牌名字数的牌。下一轮开始时若本轮你使用的牌数或上一轮你以此法摸的牌数小于此牌牌名字数则你失去1点体力。',true,function(card,player){ player.chooseCard('迂志:请展示一张手牌','摸此牌牌名字数的牌。下一轮开始时若本轮你使用的牌数或上一轮你以此法摸的牌数小于此牌牌名字数则你失去1点体力。',true,function(card,player){
var num=lib.skill.dcweidang.getLength(card); var num=get.cardNameLength(card);
return typeof num=='number'&&num>0; return typeof num=='number'&&num>0;
}).set('ai',function(card){ }).set('ai',function(card){
if(_status.event.dying&&_status.event.num>0&&lib.skill.dcweidang.getLength(card)>_status.event.num) return 1/lib.skill.dcweidang.getLength(card);//怂 if(_status.event.dying&&_status.event.num>0&&get.cardNameLength(card)>_status.event.num) return 1/get.cardNameLength(card);//怂
return lib.skill.dcweidang.getLength(card);//勇 return get.cardNameLength(card);//勇
}).set('dying',player.hp+player.countCards('hs',{name:['tao','jiu']})<1).set('num',event.num1); }).set('dying',player.hp+player.countCards('hs',{name:['tao','jiu']})<1).set('num',event.num1);
'step 4' 'step 4'
if(result.bool){ if(result.bool){
player.logSkill('clanyuzhi'); player.logSkill('clanyuzhi');
player.showCards(result.cards,get.translation(player)+'发动了【迂志】'); player.showCards(result.cards,get.translation(player)+'发动了【迂志】');
player.draw(lib.skill.dcweidang.getLength(result.cards[0])); player.draw(get.cardNameLength(result.cards[0]));
player.storage.clanyuzhi=lib.skill.dcweidang.getLength(result.cards[0]); player.storage.clanyuzhi=get.cardNameLength(result.cards[0]);
player.markSkill('clanyuzhi'); player.markSkill('clanyuzhi');
} }
}, },
@ -165,13 +165,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'damageEnd',source:'damageSource'}, trigger:{player:'damageEnd',source:'damageSource'},
filter:function(event,player){ filter:function(event,player){
if(!event.card) return false; if(!event.card) return false;
var num=lib.skill.dcweidang.getLength(event.card); var num=get.cardNameLength(event.card);
return typeof num=='number'&&num>0&&player.countCards('he'); return typeof num=='number'&&num>0&&player.countCards('he');
}, },
direct:true, direct:true,
content:function(){ content:function(){
'step 0' 'step 0'
var num=lib.skill.dcweidang.getLength(trigger.card),str=''; var num=get.cardNameLength(trigger.card),str='';
if(player.getDamagedHp()>0) str+=('并摸'+get.cnNumber(player.getDamagedHp())+'张牌'); if(player.getDamagedHp()>0) str+=('并摸'+get.cnNumber(player.getDamagedHp())+'张牌');
player.chooseToDiscard(get.prompt('clanxieshu'),'弃置'+get.cnNumber(num)+'张牌'+str,'he',num).set('ai',function(card){ player.chooseToDiscard(get.prompt('clanxieshu'),'弃置'+get.cnNumber(num)+'张牌'+str,'he',num).set('ai',function(card){
var player=_status.event.player; var player=_status.event.player;
@ -307,7 +307,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var val=get.value(card); var val=get.value(card);
return 6-val; return 6-val;
}).set('cards',trigger.player.getCards('he',card=>{ }).set('cards',trigger.player.getCards('he',card=>{
return lib.skill.dcweidang.getLength(card)==num; return get.cardNameLength(card)==num;
})); }));
'step 1' 'step 1'
if(result.bool) trigger.player.recast(result.cards); if(result.bool) trigger.player.recast(result.cards);
@ -601,7 +601,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else{ else{
var list=[4,3,2,1]; var list=[4,3,2,1];
player.getHistory('useCard',evt=>{ player.getHistory('useCard',evt=>{
var len=lib.skill.dcweidang.getLength(evt.card); var len=get.cardNameLength(evt.card);
list.remove(len); list.remove(len);
}); });
if(list.length) ret=list[0]; if(list.length) ret=list[0];
@ -641,7 +641,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else{ else{
var list=[4,3,2,1]; var list=[4,3,2,1];
player.getHistory('useCard',evt=>{ player.getHistory('useCard',evt=>{
var len=lib.skill.dcweidang.getLength(evt.card); var len=get.cardNameLength(evt.card);
list.remove(len); list.remove(len);
}); });
if(list.length) ret=list[0]; if(list.length) ret=list[0];
@ -675,13 +675,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var len=_status.event.len; var len=_status.event.len;
var card=button.link; var card=button.link;
var fix=1; var fix=1;
if(lib.skill.dcweidang.getLength(card)==len) fix=2; if(get.cardNameLength(card)==len) fix=2;
return fix*_status.event.player.getUseValue(card); return fix*_status.event.player.getUseValue(card);
}).set('len',function(){ }).set('len',function(){
if(!player.hasSkill('clanxiaoyong')) return 0; if(!player.hasSkill('clanxiaoyong')) return 0;
var list=[]; var list=[];
player.getHistory('useCard',evt=>{ player.getHistory('useCard',evt=>{
var len=lib.skill.dcweidang.getLength(evt.card); var len=get.cardNameLength(evt.card);
list.add(len); list.add(len);
}); });
if(!list.contains(count)) return count; if(!list.contains(count)) return count;
@ -740,9 +740,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:'useCard', player:'useCard',
}, },
filter:function(event,player){ filter:function(event,player){
var len=lib.skill.dcweidang.getLength(event.card); var len=get.cardNameLength(event.card);
if(player.hasHistory('useCard',function(evt){ if(player.hasHistory('useCard',function(evt){
return evt!=event&&lib.skill.dcweidang.getLength(evt.card)==len; return evt!=event&&get.cardNameLength(evt.card)==len;
},event)) return false; },event)) return false;
if(!player.getStat().skill.clanguangu) return false; if(!player.getStat().skill.clanguangu) return false;
var history=player.getAllHistory('useSkill',evt=>{ var history=player.getAllHistory('useSkill',evt=>{
@ -781,9 +781,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
break; break;
} }
} }
if(numx==lib.skill.dcweidang.getLength(card)){ if(numx==get.cardNameLength(card)){
if(!player.hasHistory('useCard',evt=>{ if(!player.hasHistory('useCard',evt=>{
return numx==lib.skill.dcweidang.getLength(evt.card); return numx==get.cardNameLength(evt.card);
})){ })){
return num+9; return num+9;
} }

View File

@ -2174,23 +2174,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dcweidang:{ dcweidang:{
audio:2, audio:2,
trigger:{global:'phaseJieshuBegin'}, trigger:{global:'phaseJieshuBegin'},
getLength:function(card){ /**
var name=get.translation(get.name(card)); * @deprecated
if(name=='挟令') name='挟天子以令诸侯'; */
if(name=='霹雳投石车') name='霹雳车'; getLength:card=>get.cardNameLength(card),
return name.length;
},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
var num=lib.skill.dcqinshen.getNum(); var num=lib.skill.dcqinshen.getNum();
return event.player!=player&&(_status.connectMode?player.countCards('he'):player.hasCard(card=>lib.skill.dcweidang.getLength(card)==num,'he')); return event.player!=player&&(_status.connectMode?player.countCards('he'):player.hasCard(card=>get.cardNameLength(card)==num,'he'));
}, },
content:function(){ content:function(){
'step 0' 'step 0'
var num=lib.skill.dcqinshen.getNum(); var num=lib.skill.dcqinshen.getNum();
event.num=num; event.num=num;
player.chooseCard(get.prompt('dcweidang'),'将一张字数为'+num+'的牌置于牌堆底,然后获得一张字数为'+num+'的牌。若你能使用此牌,你使用之。','he',(card,player,target)=>{ player.chooseCard(get.prompt('dcweidang'),'将一张字数为'+num+'的牌置于牌堆底,然后获得一张字数为'+num+'的牌。若你能使用此牌,你使用之。','he',(card,player,target)=>{
return lib.skill.dcweidang.getLength(card)==_status.event.num; return get.cardNameLength(card)==_status.event.num;
}).set('num',num).set('ai',card=>{ }).set('num',num).set('ai',card=>{
return 5-get.value(card); return 5-get.value(card);
}); });
@ -2208,7 +2206,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
else event.finish(); else event.finish();
'step 2' 'step 2'
var card=get.cardPile(cardx=>lib.skill.dcweidang.getLength(cardx)==num); var card=get.cardPile(cardx=>get.cardNameLength(cardx)==num);
if(card){ if(card){
player.gain(card,'gain2'); player.gain(card,'gain2');
if(player.hasUseTarget(card)){ if(player.hasUseTarget(card)){

View File

@ -1139,7 +1139,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(info.type==get.type2(card,false)) return true; if(info.type==get.type2(card,false)) return true;
if(info.suit!='none'&&info.suit==get.suit(card,false)) return true; if(info.suit!='none'&&info.suit==get.suit(card,false)) return true;
if(typeof info.number=='number'&&info.number>0&&info.number==get.suit(card,false)) return true; if(typeof info.number=='number'&&info.number>0&&info.number==get.suit(card,false)) return true;
return info.length==lib.skill.dcweidang.getLength(card) return info.length==get.cardNameLength(card)
}, },
content:function(){ content:function(){
'step 0' 'step 0'
@ -1156,7 +1156,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
type:get.type2(card,player), type:get.type2(card,player),
suit:get.suit(card,player), suit:get.suit(card,player),
number:get.number(card,player), number:get.number(card,player),
length:lib.skill.dcweidang.getLength(card), length:get.cardNameLength(card),
} }
event.cards=[]; event.cards=[];
event.forceDie=true; event.forceDie=true;
@ -2915,7 +2915,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'useCard'}, trigger:{player:'useCard'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return lib.skill.dcweidang.getLength(event.card)==player.getHistory('useCard').indexOf(event)+1; return get.cardNameLength(event.card)==player.getHistory('useCard').indexOf(event)+1;
}, },
content:function(){ content:function(){
var card=trigger.card; var card=trigger.card;
@ -2928,14 +2928,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){ filter:function(event,player){
var card=event.card; var card=event.card;
if(player!=_status.currentPhase||!card||event.getParent().type!='card') return false; if(player!=_status.currentPhase||!card||event.getParent().type!='card') return false;
return lib.skill.dcweidang.getLength(card)==player.getHistory('useCard').indexOf(event.getParent(2))+1; return get.cardNameLength(card)==player.getHistory('useCard').indexOf(event.getParent(2))+1;
}, },
content:function(){ content:function(){
trigger.num++; trigger.num++;
},*/ },*/
mod:{ mod:{
aiOrder:function(player,card,num){ aiOrder:function(player,card,num){
if(typeof card=='object'&&lib.skill.dcweidang.getLength(card)==player.getHistory('useCard').length+1) return num+10; if(typeof card=='object'&&get.cardNameLength(card)==player.getHistory('useCard').length+1) return num+10;
}, },
} }
}, },

View File

@ -190,6 +190,8 @@
}, },
} }
}, },
//Yingbian
//应变
yingbian:{ yingbian:{
condition:{ condition:{
color:new Map([ color:new Map([
@ -361,6 +363,12 @@
['all','无视条件执行所有选项'] ['all','无视条件执行所有选项']
]) ])
}, },
//The actual card name
//实际的卡牌名称
actualCardName:new Map([
['挟令','挟天子以令诸侯'],
['霹雳投石车','霹雳车']
]),
characterDialogGroup:{ characterDialogGroup:{
'收藏':function(name,capt){ '收藏':function(name,capt){
return lib.config.favouriteCharacter.contains(name)?capt:null; return lib.config.favouriteCharacter.contains(name)?capt:null;
@ -30702,7 +30710,9 @@
if(trigger.getParent().notLink()) trigger.getParent().lianhuanable=true; if(trigger.getParent().notLink()) trigger.getParent().lianhuanable=true;
} }
}, },
//Deprecated skills /**
* @deprecated
*/
_chongzhu:{ _chongzhu:{
get filter(){ get filter(){
return lib.skill._recasting.filter; return lib.skill._recasting.filter;
@ -30728,44 +30738,6 @@
set ai(ai){ set ai(ai){
lib.skill._recasting.ai=ai; lib.skill._recasting.ai=ai;
} }
},
_yongjian_zengyu:{
get filter(){
return lib.skill._gifting.filter;
},
set filter(filter){
lib.skill._gifting.filter=filter;
},
get filterCard(){
return lib.skill._gifting.filterCard;
},
set filterCard(filterCard){
lib.skill._gifting.filterCard=filterCard;
},
get filterTarget(){
return lib.skill._gifting.filterTarget;
},
set filterTarget(filterTarget){
lib.skill._gifting.filterTarget=filterTarget;
},
get check(){
return lib.skill._gifting.check;
},
set check(check){
lib.skill._gifting.check=check;
},
get content(){
return lib.skill._gifting.content;
},
set content(content){
lib.skill._gifting.content=content;
},
get ai(){
return lib.skill._gifting.ai;
},
set ai(ai){
lib.skill._gifting.ai=ai;
}
} }
}, },
character:{}, character:{},
@ -53220,6 +53192,12 @@
}, },
}; };
const get={ const get={
//Get the card name length
//获取此牌的字数
cardNameLength:card=>{
const name=get.translation(get.name(card));
return (lib.actualCardName.get(name)||name).length;
},
//Yingbian //Yingbian
//应变 //应变
//Get the Yingbian conditions (of the card) //Get the Yingbian conditions (of the card)