Merge pull request #1010 from PZ157/PR-Branch

细节优化
This commit is contained in:
Spmario233 2024-03-04 12:25:02 +08:00 committed by GitHub
commit d95b2cf393
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 135 additions and 85 deletions

View File

@ -2031,7 +2031,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(trigger.targets&&trigger.targets.length){ if(trigger.targets&&trigger.targets.length){
let result=yield player.chooseControl(['额外结算','摸一张牌']).set('prompt','实荐:请选择一项').set('prompt2',`${get.translation(trigger.card)}额外结算一次,或摸一张牌`).set('ai',()=>{ let result=yield player.chooseControl(['额外结算','摸一张牌']).set('prompt','实荐:请选择一项').set('prompt2',`${get.translation(trigger.card)}额外结算一次,或摸一张牌`).set('ai',()=>{
return get.event('choice'); return get.event('choice');
}).set('choice',['basic','trick'].includes(get.type(trigger.card))&&trigger.targets.map(i=>get.effect(i,trigger.card,target,player)).reduce((p,c)=>p+c,0)>=5?0:1); }).set('choice',function(){
if(trigger.card.name==='tiesuo'||!['basic','trick'].includes(get.type(trigger.card))) return 1;
if(trigger.targets.reduce((p,c)=>{
return p+get.effect(c,trigger.card,target,_status.event.player);
},0)>=get.effect(player,{name:'draw'},player,_status.event.player)) return 0;
return 1;
}());
if(result.index==0){ if(result.index==0){
trigger.getParent().effectCount++; trigger.getParent().effectCount++;
game.log(player,'令',trigger.card,'额外结算一次'); game.log(player,'令',trigger.card,'额外结算一次');

View File

@ -14594,7 +14594,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.current.needsToDiscard()){ if(event.current.needsToDiscard()){
att=1; att=1;
} }
player.chooseControlList(['令'+name+'摸一张牌展示','令'+name+'手牌上永久+1','弃置一张牌并令'+name+'获得一张本回进入弃牌堆的牌'],function(){ player.chooseControlList(['令'+name+'摸一张牌展示','令'+name+'手牌上永久+1','弃置一张牌并令'+name+'获得一张本回进入弃牌堆的牌'],function(){
return _status.event.att; return _status.event.att;
}).set('att',att); }).set('att',att);
} }

View File

@ -15889,7 +15889,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
twkujian_info:'出牌阶段限一次。你可以将至多三张手牌交给一名其他角色,称为“谏”,你获得以下效果:当其他角色使用或打出牌后,若其中有“谏”,你与其各摸一张牌;当其他角色不因使用或打出而失去牌后,若其中有“谏”,你与其各弃置一张牌。', twkujian_info:'出牌阶段限一次。你可以将至多三张手牌交给一名其他角色,称为“谏”,你获得以下效果:当其他角色使用或打出牌后,若其中有“谏”,你与其各摸一张牌;当其他角色不因使用或打出而失去牌后,若其中有“谏”,你与其各弃置一张牌。',
twruilian:'睿敛', twruilian:'睿敛',
twruilian2:'睿敛', twruilian2:'睿敛',
twruilian_info:'一轮游戏开始时,你可以选择一名角色。其下回合结束时,若其本回弃置过至少两张其的牌,你可以选择其本回合弃置过的一种类别,你与其各从弃牌堆中获得一张此类别的牌。', twruilian_info:'一轮游戏开始时,你可以选择一名角色。其下回合结束时,若其本回弃置过至少两张牌,你可以选择其本回合弃置过的一种类别,你与其各从弃牌堆中获得一张此类别的牌。',
tw_xiahouen:'夏侯恩', tw_xiahouen:'夏侯恩',
twfujian:'负剑', twfujian:'负剑',
twfujian_info:'锁定技。①游戏开始时或准备阶段若你的装备区里没有武器牌你随机将牌堆中的一张武器牌置入装备区。②当你于回合外失去武器牌后你失去1点体力。', twfujian_info:'锁定技。①游戏开始时或准备阶段若你的装备区里没有武器牌你随机将牌堆中的一张武器牌置入装备区。②当你于回合外失去武器牌后你失去1点体力。',

View File

@ -154,10 +154,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{ ai:{
order:9, order:9,
result:{ result:{
player:1, player:function(player,target){
if(player.storage.dcsbquanmou) return 1;
return 1+game.countPlayer(i=>player!==i&&target!==i&&!i.hasSkill('false_mark')&&get.attitude(player,i)<0);
},
target:function(player,target){ target:function(player,target){
if(!player.storage.dcsbquanmou) return 1.2; let res=target.hasSkillTag('noh')?0:-1;
return -0.2; if(player.storage.dcsbquanmou) return res+0.6;
return res;
}, },
}, },
}, },
@ -218,6 +222,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
ai:{ ai:{
threaten:2.5, threaten:2.5,
effect:{
target(card,player,target){
if(get.tag(card,'damage')&&player&&player.hasSkill('dcsbquanmou_true')){
let tars=game.countPlayer(i=>player!==i&&target!==i&&get.damageEffect(i,player,player)>0);
return [1,0,1,6*Math.min(3,tars)/(3+Math.pow(target.countCards('h'),2))];
}
}
}
}, },
}, },
false:{ false:{
@ -253,10 +265,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
ai:{ ai:{
filterDamage:true, nodamage:true,
nofire:true,
nothunder:true,
skillTagFilter(player,tag,arg){ skillTagFilter(player,tag,arg){
return (arg&&arg.player&&arg.player.hasSkill('dcsbquanmou_false')); return (arg&&arg.player&&arg.player.hasSkill('dcsbquanmou_false'));
}, },
effect:{
target(card,player,target){
if(get.tag(card,'damage')&&player&&player.hasSkill('dcsbquanmou_false')) return 'zeroplayertarget';
}
}
}, },
}, },
}, },
@ -13416,8 +13435,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.draw(); player.draw();
'step 1' 'step 1'
var next=player.chooseTarget().set('ai',function(target){ var next=player.chooseTarget().set('ai',function(target){
var player=_status.event.player; let player=_status.event.player;
return get.damageEffect(target,player,player) if(target.hasSkillTag('filterDamage',null,{
player:player
},true)) return get.damageEffect(target,player,player);
return 2*get.damageEffect(target,player,player);
}); });
if(!['identity','guozhan'].includes(get.mode())){ if(!['identity','guozhan'].includes(get.mode())){
next.set('prompt','选择一名体力值最大的敌方角色对其造成2点伤害'); next.set('prompt','选择一名体力值最大的敌方角色对其造成2点伤害');
@ -13445,9 +13467,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{ ai:{
result:{ result:{
target:function(player,target){ target:function(player,target){
if(!['identity','guozhan'].includes(get.mode())) return 1; let es;
var target=game.filterPlayer(i=>i!=player).sort((a,b)=>b.hp-a.hp)[0]; if(['identity','guozhan'].includes(get.mode())) es=game.hasPlayer(i=>{
return target&&get.damageEffect(target,player,player)>0?1:0; return i!=player&&!game.hasPlayer(j=>{
return player!==j&&j.hp>i.hp;
})&&get.attitude(player,i)<0;
});
else es=game.hasPlayer(i=>{
return i.isEnemyOf(player)&&!game.hasPlayer(j=>{
return j.hp>i.hp&&j.isEnemyOf(player);
})&&get.attitude(player,i)<0;
});
if(es) return 2;
return -1.5;
}, },
}, },
order:12, order:12,
@ -13456,26 +13488,38 @@ game.import('character',function(lib,game,ui,get,ai,_status){
subSkill:{ subSkill:{
dying:{ dying:{
trigger:{global:'dying'}, trigger:{global:'dying'},
forced:true,
popup:false,
filter:function(event,player){ filter:function(event,player){
var evt=event.getParent(2); let evt=event.getParent(2);
if(!evt||evt.name!='kuiji_content'||evt.player!=player) return false; return evt&&evt.name=='kuiji';
var list=game.filterPlayer(function(current){
return current.isFriendOf(player);
}).sort(function(a,b){
return a.hp-b.hp;
});
return (list.length==1||list[0].hp<list[1].hp)&&list[0].isDamaged();
}, },
locked:true,
direct:true,
content:function(){ content:function(){
var list=game.filterPlayer(function(current){ 'step 0'
return current.isFriendOf(player); var list;
}).sort(function(a,b){ if(['identity','guozhan'].includes(get.mode())) list=game.filterPlayer(current=>{
return a.hp-b.hp; return current!==trigger.player&&!game.hasPlayer(i=>{
})[0]; return trigger.player!==i&&i.hp<current.hp;
player.logSkill('kuiji',list); });
list.recover(); }).filter(i=>i.isDamaged());
else list=game.filterPlayer(current=>{
return current.isFriendOf(player)&&!game.hasPlayer(i=>{
return i.hp<current.hp&&i.isFriendOf(player);
});
}).filter(i=>i.isDamaged());
if(list.length>1) player.chooseTarget('溃击选择一名角色回复1点体力',(card,player,target)=>{
return _status.event.list.includes(target);
},true).set('list',list).set('ai',target=>{
return get.recoverEffect(target,player,_status.event.player);
});
else if(list.length) event._result={bool:true,targets:list};
else event._result={bool:false};
'step 1'
if(result.bool){
let target=result.targets[0];
player.logSkill('kuiji',target);
target.recover();
}
}, },
}, },
}, },

View File

@ -4342,8 +4342,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
longxi2:'龙息', longxi2:'龙息',
longxi_info:'锁定技,在回合外每当你需要使用或打出一张卡牌时,若牌堆顶的前两张中有可使用或打出的牌,你立即获得之。', longxi_info:'锁定技,在回合外每当你需要使用或打出一张卡牌时,若牌堆顶的前两张中有可使用或打出的牌,你立即获得之。',
zhuyue:'逐月', zhuyue:'逐月',
zhuyue_info:'出牌阶段限一次,你可以弃置一张非基本牌并指定至多两个目标各随机弃置一张牌,若如此做,你本回使用的杀须指定选中角色为目标。', zhuyue_info:'出牌阶段限一次,你可以弃置一张非基本牌并指定至多两个目标各随机弃置一张牌,若如此做,你本回使用的杀须指定选中角色为目标。',
zhuyue_info_alter:'出牌阶段限一次,你可以弃置一张黑色非基本牌并指定至多两个目标各随机弃置一张牌,若如此做,你本回使用的杀须指定选中角色为目标。', zhuyue_info_alter:'出牌阶段限一次,你可以弃置一张黑色非基本牌并指定至多两个目标各随机弃置一张牌,若如此做,你本回使用的杀须指定选中角色为目标。',
guanri:'贯日', guanri:'贯日',
guanri_info:'限制技你可以弃置两张红色手牌并失去1点体力然后对一名体力值不少于你的其他角色造成2点火焰伤害并弃置其所有装备牌。', guanri_info:'限制技你可以弃置两张红色手牌并失去1点体力然后对一名体力值不少于你的其他角色造成2点火焰伤害并弃置其所有装备牌。',
tianxian:'天弦', tianxian:'天弦',