新杀曹爽渐专概率调整为小道消息

This commit is contained in:
copcap 2024-03-10 21:42:27 +08:00
parent 723e529afa
commit 5376db5e25
No known key found for this signature in database
GPG Key ID: 30E7AB6699451AEE
1 changed files with 34 additions and 4 deletions

View File

@ -136,6 +136,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}).length<4-player.getStorage('dcjianzhuan').length;
},
forced:true,
derivation:'dcjianzhuan_faq',
async content(event,trigger,player){
const evtx=event.getParent('phaseUse'),num=player.getHistory('useSkill',evt=>{
return evt.skill=='dcjianzhuan'&&evt.event.getParent('phaseUse')==evtx;
@ -163,6 +164,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
discard_target:{
intro:'拆牌',
introx:(num)=>'令一名角色弃置'+num+'张牌',
weight:1,
ai_effect(player,num){
return game.hasPlayer(target=>{
return get.effect(target,{name:'guohe_copy2'},player,player)>0;
@ -182,6 +184,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
draw_self:{
intro:'摸牌',
introx:(num)=>'摸'+num+'张牌',
weight:1,
ai_effect(player,num){
return 3;
},
@ -192,6 +195,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
recast_self:{
intro:'重铸',
introx:(num)=>'重铸'+num+'张牌',
weight:1,
ai_effect(player,num){
return 1;
},
@ -203,6 +207,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
discard_self:{
intro:'弃牌',
introx:(num)=>'弃置'+num+'张牌',
weight:'90%',
ai_effect(player,num){
let cards=player.getCards('hs');
cards.sort((a,b)=>get.value(b)-get.value(a));
@ -226,13 +231,36 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true,
async content(event,trigger,player){
const info=get.info('dcjianzhuan').choices;
let choices=[],map={};
let map={};
let unfixedWeightTotal=0,remainedWeight=100;
let entries=[];
for(const i in info){
map[info[i].intro]=i;
const infox=info[i];
map[infox.intro]=i;
if(player.getStorage('dcjianzhuan').includes(i)) continue;
choices.push(info[i].intro);
let weight=(infox.weight||1).toString();
if(weight.endsWith('%')){
weight=Math.min(remainedWeight,parseInt(weight.slice(0,-1)));
entries.push([infox.intro,weight]);
remainedWeight-=weight;
}
else{
weight=parseInt(weight);
unfixedWeightTotal+=weight;
entries.push([infox.intro,-weight]);
}
}
const removeChoice=choices.randomGet();
entries=entries.map(entry=>{
let weight=entry[1];
if(weight<0) weight=-remainedWeight/unfixedWeightTotal*weight;
return [entry[0],weight];
});
let rand=Math.random()*100;
let removeChoice=entries.find(entry=>{
rand-=entry[1];
return rand<0;
})[0];
if(get.isLuckyStar(player)&&Object.keys(entries).includes('弃牌')) removeChoice='弃牌';
player.markAuto('dcjianzhuan',[map[removeChoice]]);
player.popup(removeChoice);
game.log(player,'移去了','#g'+removeChoice,'项');
@ -13002,6 +13030,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dc_caoshuang_prefix:'新杀',
dcjianzhuan:'渐专',
dcjianzhuan_info:'锁定技。①当你于出牌阶段使用牌时你选择此阶段未执行过的一项执行⒈令一名角色弃置X张牌⒉摸X张牌⒊重铸X张牌⒋弃置X张牌X为此技能于本阶段的发动次数。②出牌阶段结束时若你本阶段执行过〖渐专①〗的所有选项则你随机移除〖渐专①〗的一项。',
dcjianzhuan_faq:'渐专概率',
dcjianzhuan_faq_info:'<br>当系统随机选择要删除的选项时“弃置X张牌”的选项概率固定为90%剩余选项平分剩余的的10%概率。<br>如第一次删除时删除弃牌选项概率为90%其余三个选项被删除的概率均为3.33%若删除了非弃牌选项第二次删除时删除弃牌选项的概率依旧是90%其余两个选项被删除的概率均为5%。',
dcfanshi:'返势',
dcfanshi_info:'觉醒技结束阶段若〖渐专①〗剩余选项数小于2则你执行三次X视为1的剩余选项然后增加2点体力上限并回复2点体力失去技能〖渐专〗并获得技能〖覆斗〗。',
dcfudou:'覆斗',