修复ai错位

This commit is contained in:
157 2023-12-28 10:04:38 +08:00
parent 14f60d31fd
commit a8d60ed38f
4 changed files with 57 additions and 43 deletions

View File

@ -916,30 +916,28 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{
threaten:100,
reverseEquip:true,
ai:{
effect:{
player:(card,player,target)=>{
if(typeof card!=='object') return;
let suit=get.suit(card);
if(!lib.suit.contains(suit)||player.hasCard(function(i){
return get.suit(i,player)==suit;
},'h')) return;
return [1,game.countPlayer(current=>{
return current.countCards('e',card=>{
return get.suit(card,current)==suit;
});
})];
},
target:(card,player,target)=>{
if(card.name==='sha'&&!player.hasSkillTag('directHit_ai',true,{
target:target,
card:card
},true)&&game.hasPlayer(current=>{
return current.hasCard(cardx=>{
return get.subtype(cardx)==='equip3';
},'e');
})) return [0, -0.5];
}
effect:{
player:(card,player,target)=>{
if(typeof card!=='object') return;
let suit=get.suit(card);
if(!lib.suit.contains(suit)||player.hasCard(function(i){
return get.suit(i,player)==suit;
},'h')) return;
return [1,game.countPlayer(current=>{
return current.countCards('e',card=>{
return get.suit(card,current)==suit;
});
})];
},
target:(card,player,target)=>{
if(card.name==='sha'&&!player.hasSkillTag('directHit_ai',true,{
target:target,
card:card
},true)&&game.hasPlayer(current=>{
return current.hasCard(cardx=>{
return get.subtype(cardx)==='equip3';
},'e');
})) return [0, -0.5];
}
}
}

View File

@ -4826,12 +4826,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
ai:{
threaten:2,
ai:{
noh:true,
skillTagFilter:function(player,tag){
if(tag=='noh'){
if(player.countCards('h')!=2) return false;
}
noh:true,
skillTagFilter:function(player,tag){
if(tag=='noh'){
if(player.countCards('h')!=2) return false;
}
}
}

View File

@ -4967,12 +4967,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
olkangrui:{
audio:2,
init:()=>{
game.addGlobalSkill('olkangrui_ai');
},
onremove:()=>{
if(!game.hasPlayer(i=>i.hasSkill('olkangrui'),true)) game.removeGlobalSkill('olkangrui_ai');
},
trigger:{global:'damageEnd'},
filter:function(event,player){
return event.player==_status.currentPhase&&event.player.getHistory('damage').indexOf(event)==0;
},
direct:true,
global:'olkangrui_ai',
content:function(){
'step 0'
player.chooseControl('cancel2').set('choiceList',[
@ -5058,15 +5063,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
ai:{
effect:{
target:function(card,player,target){
if(target!=player||!get.tag(card,'damage')) return;
var list=game.filterPlayer(current=>current.hasSkill('olkangrui')&&get.attitude(current,player)>0);
var history=player.getHistory('damage');
if(!list.length||history.length!=0) return;
return [1,2];
}
trigger:{player:'dieAfter'},
filter:()=>{
return !game.hasPlayer(i=>i.hasSkill('olkangrui'),true);
},
silent:true,
forceDie:true,
content:()=>{
game.removeGlobalSkill('olkangrui_ai');
},
ai:{
effect:{
target:function(card,player,target){
if(target!=player||!get.tag(card,'damage')) return;
var list=game.filterPlayer(current=>current.hasSkill('olkangrui')&&get.attitude(current,player)>0);
var history=player.getHistory('damage');
if(!list.length||history.length!=0) return;
return [1,2];
}
}
}
}
}
},

View File

@ -8662,10 +8662,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
trigger.player.addMark('twlvren',1);
},
effect:{
player:function(card,player,target){
if(target.hasMark('twlvren')) return 0.33;
},
ai:{
effect:{
player:function(card,player,target){
if(target.hasMark('twlvren')) return 0.33;
}
}
},
marktext:'刃',
intro:{name2:'刃',content:'mark'},