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