部分武将bug修复、结算调整

This commit is contained in:
copcap 2023-09-25 10:29:57 +08:00
parent 558f35a340
commit 11c0cff434
No known key found for this signature in database
GPG Key ID: 9AE7B8AF097EC926
7 changed files with 83 additions and 68 deletions

View File

@ -991,9 +991,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
order:9.5,
result:{
target:function(player,target){
if(get.attitude(player,target)>0) return 1;
var num=target.countCards('h');
if(num<=1) return -num;
if(get.attitude(player,target)>0) return 1;
return -1/(num/2+1);
}
}
@ -1317,6 +1317,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
var targets=game.filterPlayer(current=>target.inRange(current)&&current!=player).sortBySeat(player);
event.targets=targets;
if(!targets.length) event.finish();
'step 1'
var current=targets.shift();
if(current.countCards('he')) current.chooseToDiscard('驰应:请弃置一张牌','he',true);

View File

@ -3241,7 +3241,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var list=game.filterPlayer(current=>current!=player).map(current=>{
var _hp=current.hp,_maxhp=current.maxHp;
current.hp=10; current.maxHp=10;
var eff=get.damageEffect(current,player,current)+10;
var att=-get.sgnAttitude(player,current);
var val=get.damageEffect(current,player,current)*att;
current.getSkills(null,false,false).forEach(skill=>{
var info=get.info(skill);
if(info&&info.ai&&(info.ai.maixie||info.ai.maixie_hp||info.ai.maixie_defend)) val=Math[val>0?'max':'min'](val>0?0.1:-0.1,val+2*att);
});
var eff=100/val+15;
current.hp=_hp; current.maxHp=_maxhp;
return [current,eff];
}).sort((a,b)=>b[1]-a[1])[0];
@ -3253,7 +3259,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}).map(current=>{
var _hp=targetx.hp,_maxhp=targetx.maxHp;
targetx.hp=10; targetx.maxHp=10;
var eff=get.damageEffect(targetx,current,player);
var eff=-get.damageEffect(targetx,current,current);
targetx.hp=_hp; targetx.maxHp=_maxhp;
return [current,eff];
}).sort((a,b)=>b[1]-a[1])[0][0]==target?10:1);

View File

@ -6526,7 +6526,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
psliaozou_info:'出牌阶段,你可以展示所有手牌,若其中没有与“杂音”牌花色相同的牌,你摸一张牌。',
ps1062_zhouyu:'☆周瑜',
psoldshiyin:'识音',
psoldshiyin_info:'当你于回合内获得牌时你可以展示之然后根据你展示的牌包含的花色数令你本回合使用的下一张牌获得对应效果不小于1不能被响应不小于2造成的伤害+1不小于3使用时摸一张牌。',
psoldshiyin_info:'当你于回合内得到牌后你可以展示之然后根据你展示的牌包含的花色数令你本回合使用的下一张牌获得对应效果不小于1不能被响应不小于2造成的伤害+1不小于3使用时摸一张牌。',
ps_caozhi:'☆曹植',
psliushang:'流殇',
psliushang_info:'锁定技。①摸牌阶段你改为摸X+1张牌然后依次将一张手牌置于所有其他角色的武将牌上称为“流殇”牌X为场上角色数且至少为3。②其他角色的准备阶段其选择一项1.获得其“流殇”牌且当其于本回合对你造成伤害时防止此伤害2.将其“流殇”牌置入弃牌堆。',

View File

@ -3390,6 +3390,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var val=get.value(ui.selected.cards,target);
if(val<0) return val+get.effect(target,{name:'losehp'},player,target);
if(val>5||get.value(ui.selected.cards,player)>5) return target.isTurnedOver()?5:0;
if(target.isTurnedOver()) return 1;
return get.effect(target,{name:'losehp'},player,target);
},
},

View File

@ -2513,7 +2513,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
targets.addArray(evt.targets);
}
});
return targets.length==3;
return targets.length==3&&targets.includes(player);
},
content:function(){
'step 0'
@ -13880,67 +13880,74 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
weijing:{
audio:2,
group:['weijing_sha','weijing_shan'],
enable:'chooseToUse',
filter:function(event,player){
if(event.type=='wuxie'||player.hasSkill('weijing_used')) return false;
for(var name of ['sha','shan']){
if(event.filterCard({name:name,isCard:true},player,event)) return true;
}
return false;
},
chooseButton:{
dialog:function(event,player){
var vcards=[];
for(var name of ['sha','shan']){
var card={name:name,isCard:true};
if(event.filterCard(card,player,event)) vcards.push(['基本','',name]);
}
var dialog=ui.create.dialog('卫境',[vcards,'vcard'],'hidden');
dialog.direct=true;
return dialog;
},
backup:function(links,player){
return {
filterCard:()=>false,
selectCard:-1,
viewAs:{
name:links[0][2],
isCard:true,
},
popname:true,
precontent:function(){
player.logSkill('weijing');
player.addTempSkill('weijing_used','roundStart');
},
}
},
prompt:function(links,player){
return '卫境:视为使用一张【'+get.translation(links[0][2])+'】';
}
},
ai:{
order:function(item,player){
var player=_status.event.player;
var event=_status.event;
if(event.filterCard({name:'sha'},player,event)){
if(!player.hasShan()&&!game.hasPlayer(function(current){
return player.canUse('sha',current)&&current.hp==1&&get.effect(current,{name:'sha'},player,player)>0;
})){
return 0;
}
return 2.95;
}
else{
var player=_status.event.player;
if(player.hasSkill('qingzhong_give')) return 2.95;
return 3.15;
}
},
respondSha:true,
respondShan:true,
skillTagFilter:function(player,tag,arg){
if(player.hasSkill('weijing_used')) return false;
if(arg!='use') return false;
},
result:{
player:1
}
},
subSkill:{
sha:{
audio:'weijing',
enable:'chooseToUse',
viewAs:{name:'sha',isCard:true},
filterCard:function(){return false},
viewAsFilter:function(player){
if(player.hasSkill('weijing_disable')) return false;
},
selectCard:-1,
mark:false,
precontent:function(){
player.addTempSkill('weijing_disable','roundStart');
},
prompt:'视为使用一张杀',
ai:{
order:function(){
var player=_status.event.player;
if(!player.hasShan()&&!game.hasPlayer(function(current){
return player.canUse('sha',current)&&current.hp==1&&get.effect(current,{name:'sha'},player,player)>0;
})){
return 0;
}
return 2.95;
},
skillTagFilter:function(player,tag,arg){
if(player.hasSkill('weijing_disable')) return false;
if(arg!='use') return false;
},
respondSha:true,
}
},
shan:{
audio:'weijing',
enable:'chooseToUse',
viewAs:{name:'shan',isCard:true},
mark:false,
filterCard:function(){return false},
viewAsFilter:function(player){
if(player.hasSkill('weijing_disable')) return false;
return true;
},
onuse:function(event,player){
player.addTempSkill('weijing_disable','roundStart');
},
selectCard:-1,
prompt:'视为使用一张闪',
ai:{
order:function(){
var player=_status.event.player;
if(player.hasSkill('qingzhong_give')) return 2.95;
return 3.15;
},
skillTagFilter:function(player){
if(player.hasSkill('weijing_disable')) return false;
},
respondShan:true,
}
},
disable:{
used:{
mark:true,
intro:{
content:'本轮已发动'
@ -25417,7 +25424,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
olguangao:'犷骜',
olguangao_info:'当你/其他角色使用【杀】时,你/该角色可以额外指定一个目标/你为目标(有距离限制)。然后若你的手牌数为偶数,你摸一张牌并令此牌对任意目标无效(可不选)。',
olhuiqi:'彗企',
olhuiqi_info:'觉醒技。一名角色回合结束后,若仅有三名角色于此回合成为过牌的目标,你获得〖偕举〗并获得一个额外的回合。',
olhuiqi_info:'觉醒技。一名角色回合结束后,若你与其他两名角色于此回合成为过牌的目标,你获得〖偕举〗并获得一个额外的回合。',
olxieju:'偕举',
olxieju_info:'出牌阶段限一次。你可以令任意名本回合成为过牌的目标的角色依次视为使用一张【杀】。',
ol_zhouqun:'周群',

View File

@ -10338,7 +10338,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liangjue_info:'锁定技当有黑色牌进入或者离开你的判定区或装备区后若你的体力值大于1你失去1点体力然后摸两张牌。',
tangji:'唐姬',
jielie:'抗歌',
jielie_info:'你的第一个回合开始时,选择一名其他角色,该角色每次于其回合外得牌后你摸等量的牌每回合至多摸三张其进入濒死状态时你可令其回复体力至1点每轮限一次。该角色死亡时你弃置所有牌并失去1点体力。',
jielie_info:'你的第一个回合开始时,选择一名其他角色,该角色每次于其回合外牌后你摸等量的牌每回合至多摸三张其进入濒死状态时你可令其回复体力至1点每轮限一次。该角色死亡时你弃置所有牌并失去1点体力。',
kangge:'节烈',
kangge_info:'当你受到除自己和“抗歌”角色以外的角色造成的伤害时你可以防止此伤害并选择一种花色然后你失去X点体力令“抗歌”角色从弃牌堆中随机获得X张此花色的牌X为伤害值。',
re_dongcheng:'董承',

View File

@ -11945,7 +11945,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dcfengyan:'讽言',
dcfengyan_info:'出牌阶段每项各限一次。你可以:⒈令一名体力值不大于你的其他角色交给你一张手牌。⒉视为对一名手牌数不大于你的角色使用一张【杀】(无距离和次数限制)。',
dcfudao:'抚悼',
dcfudao_info:'游戏开始时,你选择一名其他角色,称为“继子”角色。当你或“继子”每回合首次使用牌指定对方为目标后,你与其各摸两张牌。当有角色杀死你或“继子”后,该角色称为“决裂”角色。当你或“继子”对“决裂”造成伤害,此伤害+1。当你成为“决裂”角色使用牌的目标后其本回合内不能再使用牌。',
dcfudao_info:'游戏开始时,你选择一名其他角色,称为“继子”角色。当你或“继子”每回合首次使用牌指定对方为目标后,你与其各摸两张牌。当有角色杀死你或“继子”后,该角色称为“决裂”角色。当你或“继子”对“决裂”造成伤害,此伤害+1。当你成为“决裂”角色使用牌的目标后其本回合内不能再使用牌。',
luyi:'卢弈',
dcyaoyi:'邀弈',
dcyaoyi_info:'锁定技。①游戏开始时,你令所有存活且未拥有转换技的角色获得〖手谈〗。②你发动〖手谈〗时无需弃置牌,且无次数限制。③所有拥有转换技的角色不能使用牌指定其他拥有转换技且双方所有转换技状态均相同的角色为目标。',