This commit is contained in:
libccy 2017-04-02 17:33:42 +08:00
parent 319025fd5c
commit 39c57b72c6
36 changed files with 2576 additions and 2585 deletions

View File

@ -67,7 +67,7 @@ card.extra={
},
},
order:function(){
return ai.get.order({name:'sha'})+0.2;
return get.order({name:'sha'})+0.2;
},
result:{
target:function(player,target){
@ -94,10 +94,10 @@ card.extra={
}
if(card){
if(game.hasPlayer(function(current){
return (ai.get.attitude(target,current)<0&&
return (get.attitude(target,current)<0&&
target.canUse(card,current,true,true)&&
!current.getEquip('baiyin')&&
ai.get.effect(current,card,target)>0);
get.effect(current,card,target)>0);
})){
return 1;
}
@ -128,7 +128,7 @@ card.extra={
var rand=Math.random()<0.5;
target.chooseCard(true).ai=function(card){
if(rand) return Math.random();
return ai.get.value(card);
return get.value(card);
};
"step 1"
event.dialog=ui.create.dialog(get.translation(target)+'展示的手牌',result.cards);
@ -140,8 +140,8 @@ card.extra={
game.log(target,'展示了',event.card2);
player.chooseToDiscard({suit:get.suit(event.card2)},function(card){
var evt=_status.event.getParent();
if(ai.get.damageEffect(evt.target,evt.player,evt.player,'fire')>0){
return 7-ai.get.value(card,evt.player);
if(get.damageEffect(evt.target,evt.player,evt.player,'fire')>0){
return 7-get.value(card,evt.player);
}
return -1;
}).prompt=false;
@ -164,7 +164,7 @@ card.extra={
useful:1,
},
wuxie:function(target,card,player,current,state){
if(ai.get.attitude(current,player)>=0&&state>0) return false;
if(get.attitude(current,player)>=0&&state>0) return false;
},
result:{
player:function(player){
@ -231,10 +231,10 @@ card.extra={
result:{
target:function(player,target){
if(target.isLinked()) return 1;
if(ai.get.attitude(player,target)>=0) return -1;
if(get.attitude(player,target)>=0) return -1;
if(ui.selected.targets.length) return -1;
if(game.hasPlayer(function(current){
return ai.get.attitude(player,current)<=-1&&current!=target&&!current.isLinked();
return get.attitude(player,current)<=-1&&current!=target&&!current.isLinked();
})){
return -1;
}
@ -320,9 +320,9 @@ card.extra={
equipValue:function(card,player){
if(player.hasSkillTag('maixie')&&player.hp>1) return 0;
if(player.hasSkillTag('noDirectDamage')) return 10;
if(ai.get.damageEffect(player,player,player,'fire')>=0) return 10;
if(get.damageEffect(player,player,player,'fire')>=0) return 10;
var num=3-game.countPlayer(function(current){
return ai.get.attitude(current,player)<0;
return get.attitude(current,player)<0;
});
if(player.hp==1) num+=4;
if(player.hp==2) num+=1;
@ -491,7 +491,7 @@ card.extra={
},
audio:true,
check:function(event,player){
var att=ai.get.attitude(player,event.target);
var att=get.attitude(player,event.target);
if(event.target.hasSkillTag('nofire')){
return att>0;
}

View File

@ -42,7 +42,7 @@ card.gujian={
result:{
target:function(player,target){
var evt=_status.event.getTrigger();
var eff=ai.get.damageEffect(target,evt.source,target,evt.nature);
var eff=get.damageEffect(target,evt.source,target,evt.nature);
if(eff>0) return -1;
if(eff<0) return 2;
return 0;
@ -450,7 +450,7 @@ card.gujian={
content:function(){
'step 0'
target.chooseToDiscard('he',[1,target.countCards('he')],'弃置任意张牌并摸等量的牌').ai=function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
}
'step 1'
if(result.bool){
@ -466,7 +466,7 @@ card.gujian={
var cards=player.getCards('he');
var num=-1;
for(var i=0;i<cards.length;i++){
if(ai.get.value(cards[i])<6) num++;
if(get.value(cards[i])<6) num++;
}
if(player.needsToDiscard()&&num<1){
num=1;
@ -549,7 +549,7 @@ card.gujian={
else{
if(!rand) num-=6;
}
var value=ai.get.value(card);
var value=get.value(card);
if(value>=8) return -100;
return num-value;
};
@ -635,7 +635,7 @@ card.gujian={
}
else{
target.chooseToDiscard({color:'black'},'弃置一张黑色手牌或受流失一点体力').ai=function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
};
}
"step 1"
@ -693,7 +693,7 @@ card.gujian={
player:function(player,target){
return game.countPlayer(function(current){
if(current==target||(get.distance(target,current,'pure')==1&&current.countCards('he'))){
var att=ai.get.attitude(player,current);
var att=get.attitude(player,current);
if(att>0){
return -1;
}
@ -830,7 +830,7 @@ card.gujian={
value:5,
result:{
player:function(player,target){
if(ai.get.attitude(player,target)==0) return 0;
if(get.attitude(player,target)==0) return 0;
return 1;
}
}
@ -1016,7 +1016,7 @@ card.gujian={
return player.countCards('he',{suit:'heart'})>0;
},
prompt:'将一张红桃牌当桃使用',
check:function(card){return 10-ai.get.value(card)},
check:function(card){return 10-get.value(card)},
ai:{
skillTagFilter:function(player){
return player.countCards('he',{suit:'heart'})>0;
@ -1092,7 +1092,7 @@ card.gujian={
ai:{
effect:{
target:function(card,player,target){
if(card.name=='sha'&&ai.get.attitude(player,target)<0) return 0.5;
if(card.name=='sha'&&get.attitude(player,target)<0) return 0.5;
}
}
}
@ -1357,10 +1357,10 @@ card.gujian={
if(!player.countCards('h')) return false;
},
prompt:'将一张手牌当杀使用',
check:function(card){return 5-ai.get.value(card)},
check:function(card){return 5-get.value(card)},
ai:{
order:function(){
return ai.get.order({name:'sha'})+0.1;
return get.order({name:'sha'})+0.1;
},
skillTagFilter:function(player,tag,arg){
if(arg!='use') return false;
@ -1409,7 +1409,7 @@ card.gujian={
order:6,
result:{
target:function(player,target){
if(ai.get.attitude(player,target)>=0) return 0;
if(get.attitude(player,target)>=0) return 0;
var nh=target.countCards('h');
var num=-1/Math.sqrt(1+nh);
if(player.hp>=4) return num;
@ -1464,7 +1464,7 @@ card.gujian={
order:6,
result:{
target:function(player,target){
if(ai.get.attitude(player,target)>=0) return 0;
if(get.attitude(player,target)>=0) return 0;
var nh=target.countCards('h');
var num=-1/Math.sqrt(1+nh);
if(player.hp>=4) return num;
@ -1502,7 +1502,7 @@ card.gujian={
order:6,
result:{
target:function(player,target){
if(ai.get.attitude(player,target)>=0) return 0;
if(get.attitude(player,target)>=0) return 0;
var nh=target.countCards('h');
var num=-1/Math.sqrt(1+nh);
if(player.hp>=4) return num;

View File

@ -16,7 +16,7 @@ card.guozhan={
equipValue:function(card,player){
if(player.hasSkill('zhangwu')) return 9;
if(game.hasPlayer(function(current){
return current.hasSkill('zhangwu')&&ai.get.attitude(player,current)<=0;
return current.hasSkill('zhangwu')&&get.attitude(player,current)<=0;
})){
return 1;
}
@ -37,7 +37,7 @@ card.guozhan={
equipValue:function(card,player){
if(player.hasSkill('wendao')) return 9;
if(game.hasPlayer(function(current){
return current.hasSkill('wendao')&&ai.get.attitude(player,current)<=0;
return current.hasSkill('wendao')&&get.attitude(player,current)<=0;
})){
return 1;
}
@ -103,7 +103,7 @@ card.guozhan={
content:function(){
'step 0'
target.chooseControl('discard_card','take_damage',function(event,player){
if(ai.get.damageEffect(player,event.player,player,'thunder')>=0){
if(get.damageEffect(player,event.player,player,'thunder')>=0){
return 'take_damage';
}
if(player.hp>=3&&player.countCards('e')>=2){
@ -172,10 +172,10 @@ card.guozhan={
return game.countPlayer(function(current){
if(target.isMajor()==current.isMajor()){
if(current.isLinked()){
return ai.get.attitude(player,target);
return get.attitude(player,target);
}
else{
return -ai.get.attitude(player,target)*0.8;
return -get.attitude(player,target)*0.8;
}
}
});
@ -299,10 +299,10 @@ card.guozhan={
},
result:{
player:function(player,target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(target.hp==1&&att<0) return 0;
if(game.hasPlayer(function(current){
return ai.get.attitude(player,current)<att;
return get.attitude(player,current)<att;
})){
var num=1;
if(target==player.next||target==player.previous){
@ -380,11 +380,11 @@ card.guozhan={
if(target.hasSkillTag('nofire')||target.hasSkillTag('nodamage')) return 0;
if(target.hasSkill('xuying')&&target.countCards('h')==0) return 0;
if(!target.isLinked()){
return ai.get.damageEffect(target,player,target,'fire');
return get.damageEffect(target,player,target,'fire');
}
return game.countPlayer(function(current){
if(current.isLinked()){
return get.sgn(ai.get.damageEffect(current,player,target,'fire'));
return get.sgn(get.damageEffect(current,player,target,'fire'));
}
});
}
@ -514,7 +514,7 @@ card.guozhan={
},
content:function(){
target.draw(2);
target.chooseToDiscard(2,'he',true).ai=ai.get.disvalue;
target.chooseToDiscard(2,'he',true).ai=get.disvalue;
},
ai:{
wuxie:function(){
@ -588,7 +588,7 @@ card.guozhan={
player:function(card,player){
if(player.hasSkill('zhangwu')) return;
if(card.name=='feilongduofeng'&&game.hasPlayer(function(current){
return current.hasSkill('zhangwu')&&ai.get.attitude(player,current)<=0;
return current.hasSkill('zhangwu')&&get.attitude(player,current)<=0;
})){
return [0,0,0,0];
}
@ -602,7 +602,7 @@ card.guozhan={
player:function(card,player){
if(player.hasSkill('wendao')) return;
if(card.name=='taipingyaoshu'&&game.hasPlayer(function(current){
return current.hasSkill('wendao')&&ai.get.attitude(player,current)<=0;
return current.hasSkill('wendao')&&get.attitude(player,current)<=0;
})){
return [0,0,0,0];
}
@ -817,7 +817,7 @@ card.guozhan={
return player.canUse({name:'zhibi'},target);
},true).set('ai',function(target){
var player=_status.event.player;
return ai.get.effect(target,{name:'zhibi'},player,player);
return get.effect(target,{name:'zhibi'},player,player);
});
'step 1'
if(result.bool){
@ -838,7 +838,7 @@ card.guozhan={
player.removeSkill('xietianzi');
if(player.countCards('he')>0){
player.chooseToDiscard('he','是否弃置一张牌并获得一个额外回合?').set('ai',function(card){
return 10-ai.get.value(card);
return 10-get.value(card);
});
}
else{
@ -1086,11 +1086,11 @@ card.guozhan={
return get.distance(damaged,target)<=1&&target!=damaged;
},
ai1:function(card){
return 9-ai.get.value(card);
return 9-get.value(card);
},
ai2:function(target){
var player=_status.event.player;
return ai.get.damageEffect(target,player,player);
return get.damageEffect(target,player,player);
},
prompt:get.prompt('sanjian')
}).set('damaged',damaged);

View File

@ -100,12 +100,12 @@ card.hearth={
var noh=(nh==0||target.hasSkillTag('noh'));
if(noh&&noe) return 0;
if(noh&&noe2) return 0.01;
if(ai.get.attitude(player,target)<=0) return (target.countCards('he'))?-1.5:1.5;
if(get.attitude(player,target)<=0) return (target.countCards('he'))?-1.5:1.5;
var js=target.getCards('j');
if(js.length){
var jj=js[0].viewAs?{name:js[0].viewAs}:js[0];
if(jj.name=='zhaomingdan') return 3;
if(js.length==1&&ai.get.effect(target,jj,target,player)>=0){
if(js.length==1&&get.effect(target,jj,target,player)>=0){
return 0;
}
return 3;
@ -196,7 +196,7 @@ card.hearth={
var rand=Math.random()<0.5;
target.chooseCard(true).ai=function(card){
if(rand) return Math.random();
return ai.get.value(card);
return get.value(card);
};
"step 1"
event.dialog=ui.create.dialog(get.translation(target.name)+'展示的手牌',result.cards);
@ -207,8 +207,8 @@ card.hearth={
player.chooseToDiscard(function(card){
return get.suit(card)==get.suit(_status.event.parent.card2);
},function(card){
if(ai.get.damageEffect(target,player,player,'thunder')>0){
return 6-ai.get.value(card,_status.event.player);
if(get.damageEffect(target,player,player,'thunder')>0){
return 6-get.value(card,_status.event.player);
}
return -1;
}).prompt=false;
@ -230,7 +230,7 @@ card.hearth={
useful:1,
},
wuxie:function(target,card,player,current,state){
if(ai.get.attitude(current,player)>=0&&state>0) return false;
if(get.attitude(current,player)>=0&&state>0) return false;
},
result:{
player:function(player){
@ -571,7 +571,7 @@ card.hearth={
useful:[6,3],
result:{
target:function(player,target){
var eff=ai.get.recoverEffect(target,player,target);
var eff=get.recoverEffect(target,player,target);
if(eff<=0) return 0;
var num=target.maxHp-target.hp;
if(num<1) return 0;
@ -595,7 +595,7 @@ card.hearth={
content:function(){
"step 0"
target.chooseToDiscard([1,2],'he').ai=function(card){
if(ai.get.damageEffect(target,player,target,'thunder')>=0){
if(get.damageEffect(target,player,target,'thunder')>=0){
if(target.hasSkillTag('maixie')){
if(ui.selected.cards.length) return 0;
}
@ -608,9 +608,9 @@ card.hearth={
if(card.name=='tao') return 0;
if(target.hp==1&&card.name=='jiu') return 0;
if(get.type(card)!='basic'){
return 10-ai.get.value(card);
return 10-get.value(card);
}
return 8-ai.get.value(card);
return 8-get.value(card);
};
"step 1"
if(!result.bool||result.cards.length<2){

View File

@ -85,10 +85,10 @@ card.sp={
var card=target.getEquip(i);
if(card){
if(i==1||i==4){
num1+=ai.get.equipValue(card);
num1+=get.equipValue(card);
}
else{
num2+=ai.get.equipValue(card);
num2+=get.equipValue(card);
}
}
}
@ -170,7 +170,7 @@ card.sp={
ai:{
equipValue:function(card,player){
if(game.hasPlayer(function(current){
return player.canUse('sha',current)&&current.isHealthy()&&ai.get.attitude(player,current)<0;
return player.canUse('sha',current)&&current.isHealthy()&&get.attitude(player,current)<0;
})){
return 5;
}
@ -326,7 +326,7 @@ card.sp={
var hs=player.getCards('h');
if(hs.length<=1) return 0;
for(var i=0;i<hs.length;i++){
if(ai.get.value(hs[i])<=5){
if(get.value(hs[i])<=5){
ok=true;
break;
}
@ -353,8 +353,8 @@ card.sp={
target.chooseToDiscard('弃置一张非基本牌(或取消并弃置两张牌)','he',function(card){
return get.type(card)!='basic';
}).set('ai',function(card){
if(_status.event.goon) return 7-ai.get.value(card);
return 9-ai.get.value(card);
if(_status.event.goon) return 7-get.value(card);
return 9-get.value(card);
}).set('goon',target.countCards('h',{type:'basic'})>2);
event.more=true;
}
@ -407,7 +407,7 @@ card.sp={
player:function(player,target){
return game.countPlayer(function(current){
if(get.distance(target,current)<=1&&current!=target){
var att=ai.get.attitude(player,current);
var att=get.attitude(player,current);
if(att>3){
return 1.1;
}
@ -438,7 +438,7 @@ card.sp={
},
prompt:'将一张手牌当闪打出',
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
ai:{
respondShan:true,
@ -476,9 +476,9 @@ card.sp={
},
check:function(event,player){
var target=event.target;
if(ai.get.attitude(player,target)>=0) return false;
if(get.attitude(player,target)>=0) return false;
if(player.hasCard(function(card){
return ai.get.value(card)>=8;
return get.value(card)>=8;
})){
return false;
}
@ -511,7 +511,7 @@ card.sp={
},
effect:{
player:function(card,player,target){
if(card.name=='sha'&&target.isHealthy()&&ai.get.attitude(player,target)>0){
if(card.name=='sha'&&target.isHealthy()&&get.attitude(player,target)>0){
return [1,-2];
}
}
@ -589,10 +589,10 @@ card.sp={
var nh=player.countCards('h');
if(!player.needsToDiscard()){
if(nh<3) return 0;
if(nh==3) return 5-ai.get.value(card);
return 7-ai.get.value(card);
if(nh==3) return 5-get.value(card);
return 7-get.value(card);
}
return 10-ai.get.useful(card);
return 10-get.useful(card);
},
discard:false,
lose:true,
@ -638,7 +638,7 @@ card.sp={
},muniu,muniu.cards);
var players=game.filterPlayer(function(current){
if(!current.getEquip(5)&&current!=player&&!current.isTurnedOver()&&
ai.get.attitude(player,current)>=3&&ai.get.attitude(current,player)>=3){
get.attitude(player,current)>=3&&get.attitude(current,player)>=3){
return true;
}
});
@ -774,14 +774,14 @@ card.sp={
if(get.type(button.link)=='delay') return -1;
if(get.type(button.link)=='equip'){
var current=player.getCards('e',{subtype:get.subtype(button.link)})[0];
if(current&&ai.get.equipValue(current)>=ai.get.equipValue(button.link)) return -1;
if(current&&get.equipValue(current)>=get.equipValue(button.link)) return -1;
return 1;
}
if(get.tag(button.link,'multitarget')) return -1;
if(button.link.name=='huoshaolianying') return -1;
}
if(button.link.name=='jiu'){
if(ai.get.effect(player,{name:'jiu'},player)>0){
if(get.effect(player,{name:'jiu'},player)>0){
return 1;
}
return -1;
@ -811,7 +811,7 @@ card.sp={
order:4,
result:{
player:function(player){
if(_status.event.dying) return ai.get.attitude(player,_status.event.dying);
if(_status.event.dying) return get.attitude(player,_status.event.dying);
return 1;
}
},

View File

@ -82,10 +82,10 @@ card.standard={
var target=_status.event.player;
var evt=_status.event.getParent();
if(target.hasSkillTag('useShan')){
return 11-ai.get.value(card);
return 11-get.value(card);
}
if(ai.get.damageEffect(target,evt.player,target,evt.card.nature)>=0) return -1;
return 11-ai.get.value(card);
if(get.damageEffect(target,evt.player,target,evt.card.nature)>=0) return -1;
return 11-get.value(card);
});
next.autochoose=lib.filter.autoRespondShan;
}
@ -120,7 +120,7 @@ card.standard={
result:{
target:function(player,target){
if(player.hasSkill('jiu')&&!target.getEquip('baiyin')){
if(ai.get.attitude(player,target)>0){
if(get.attitude(player,target)>0){
return -6;
}
else{
@ -237,7 +237,7 @@ card.standard={
if(target.hp>2||nd==0) return 0;
if(target.hp==2){
if(game.hasPlayer(function(current){
if(target!=current&&ai.get.attitude(target,current)>=3){
if(target!=current&&get.attitude(target,current)>=3){
if(current.hp<=1) return true;
if((mode=='identity'||mode=='versus'||mode=='chess')&&current.identity=='zhu'&&current.hp<=2) return true;
}
@ -247,7 +247,7 @@ card.standard={
}
}
if(target.hp<0&&target!=player&&target.identity!='zhu') return 0;
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(att<3&&att>=0&&player!=target) return 0;
var tri=_status.event.getTrigger();
if(mode=='identity'&&player.identity=='fan'&&target.identity=='fan'){
@ -335,7 +335,7 @@ card.standard={
basic:{
equipValue:function(card,player){
if(!game.hasPlayer(function(current){
return player.canUse('sha',current)&&ai.get.effect(current,{name:'sha'},player,player)<0;
return player.canUse('sha',current)&&get.effect(current,{name:'sha'},player,player)<0;
})){
return 1;
}
@ -504,7 +504,7 @@ card.standard={
}
if(event.dialog.buttons.length>1){
var next=target.chooseButton(true,function(button){
return ai.get.value(button.link,_status.event.player);
return get.value(button.link,_status.event.player);
});
next.set('dialog',event.preResult);
next.set('closeDialog',false);
@ -651,10 +651,10 @@ card.standard={
var next=target.chooseToRespond({name:'sha'});
next.set('ai',function(card){
var evt=_status.event.getParent();
if(ai.get.damageEffect(evt.target,evt.player,evt.target)>=0) return 0;
if(get.damageEffect(evt.target,evt.player,evt.target)>=0) return 0;
if(evt.player.hasSkillTag('notricksource')) return 0;
if(evt.target.hasSkillTag('notrick')) return 0;
return 11-ai.get.value(card);
return 11-get.value(card);
});
next.autochoose=lib.filter.autoRespondSha;
"step 1"
@ -664,7 +664,7 @@ card.standard={
},
ai:{
wuxie:function(target,card,player,viewer){
if(ai.get.attitude(viewer,target)>0&&target.countCards('h','sha')){
if(get.attitude(viewer,target)>0&&target.countCards('h','sha')){
if(!target.countCards('h')||target.hp==1||Math.random()<0.7) return 0;
}
},
@ -709,10 +709,10 @@ card.standard={
var next=target.chooseToRespond({name:'shan'});
next.set('ai',function(card){
var evt=_status.event.getParent();
if(ai.get.damageEffect(evt.target,evt.player,evt.target)>=0) return 0;
if(get.damageEffect(evt.target,evt.player,evt.target)>=0) return 0;
if(evt.player.hasSkillTag('notricksource')) return 0;
if(evt.target.hasSkillTag('notrick')) return 0;
return 11-ai.get.value(card);
return 11-get.value(card);
});
next.autochoose=lib.filter.autoRespondShan;
"step 1"
@ -722,7 +722,7 @@ card.standard={
},
ai:{
wuxie:function(target,card,player,viewer){
if(ai.get.attitude(viewer,target)>0&&target.countCards('h','shan')){
if(get.attitude(viewer,target)>0&&target.countCards('h','shan')){
if(!target.countCards('h')||target.hp==1||Math.random()<0.7) return 0;
}
},
@ -818,15 +818,15 @@ card.standard={
if(target.hasSkillTag('notrick')) return 0;
if(event.player==target){
if(player.hasSkill('naman')) return -1;
if(ai.get.attitude(target,player)<0||event.player.hp<=1){
return ai.get.unuseful2(card)
if(get.attitude(target,player)<0||event.player.hp<=1){
return get.unuseful2(card)
}
return -1;
}
else{
if(target.hasSkill('naman')) return -1;
if(ai.get.attitude(player,target)<0||event.player.hp<=1){
return ai.get.unuseful2(card)
if(get.attitude(player,target)<0||event.player.hp<=1){
return get.unuseful2(card)
}
return -1;
}
@ -870,7 +870,7 @@ card.standard={
result:{
target:-1.5,
player:function(player,target){
if(ai.get.damageEffect(target,player,target)>0&&ai.get.attitude(player,target)>0&&ai.get.attitude(target,player)>0){
if(get.damageEffect(target,player,target)>0&&get.attitude(player,target)>0&&get.attitude(target,player)>0){
return 0;
}
var hs1=target.getCards('h','sha');
@ -919,7 +919,7 @@ card.standard={
},
ai:{
wuxie:function(target,card,player,viewer){
if(ai.get.attitude(viewer,player)>0&&ai.get.attitude(viewer,target)>0){
if(get.attitude(viewer,player)>0&&get.attitude(viewer,target)>0){
return 0;
}
},
@ -930,12 +930,12 @@ card.standard={
},
result:{
target:function(player,target){
if(ai.get.attitude(player,target)<=0) return (target.countCards('he')>0)?-1.5:1.5;
if(get.attitude(player,target)<=0) return (target.countCards('he')>0)?-1.5:1.5;
var js=target.getCards('j');
if(js.length){
var jj=js[0].viewAs?{name:js[0].viewAs}:js[0];
if(jj.name=='shunshou') return 3;
if(js.length==1&&ai.get.effect(target,jj,target,player)>=0){
if(js.length==1&&get.effect(target,jj,target,player)>=0){
return -1.5;
}
return 3;
@ -943,15 +943,15 @@ card.standard={
return -1.5;
},
player:function(player,target){
if(ai.get.attitude(player,target)<0&&!target.countCards('he')){
if(get.attitude(player,target)<0&&!target.countCards('he')){
return 0;
}
if(ai.get.attitude(player,target)>1){
if(get.attitude(player,target)>1){
var js=target.getCards('j');
if(js.length){
var jj=js[0].viewAs?{name:js[0].viewAs}:js[0];
if(jj.name=='shunshou') return 1;
if(js.length==1&&ai.get.effect(target,jj,target,player)>=0){
if(js.length==1&&get.effect(target,jj,target,player)>=0){
return 0;
}
return 1;
@ -1000,12 +1000,12 @@ card.standard={
var noh=(nh==0||target.hasSkillTag('noh'));
if(noh&&noe) return 0;
if(noh&&noe2) return 0.01;
if(ai.get.attitude(player,target)<=0) return (target.countCards('he'))?-1.5:1.5;
if(get.attitude(player,target)<=0) return (target.countCards('he'))?-1.5:1.5;
var js=target.getCards('j');
if(js.length){
var jj=js[0].viewAs?{name:js[0].viewAs}:js[0];
if(jj.name=='guohe') return 3;
if(js.length==1&&ai.get.effect(target,jj,target,player)>=0){
if(js.length==1&&get.effect(target,jj,target,player)>=0){
return -1.5;
}
return 2;
@ -1186,8 +1186,8 @@ card.standard={
for(var j=0;j<current.skills.length;j++){
var rejudge=get.tag(current.skills[j],'rejudge',current);
if(rejudge!=undefined){
if(ai.get.attitude(target,current)>0&&
ai.get.attitude(current,target)>0){
if(get.attitude(target,current)>0&&
get.attitude(current,target)>0){
return rejudge;
}
else{
@ -1201,7 +1201,7 @@ card.standard={
var mode=get.mode();
if(mode=='identity'){
if(target.identity=='nei') return 1;
var situ=ai.get.situation();
var situ=get.situation();
if(target.identity=='fan'){
if(situ>1) return 1;
}
@ -1270,21 +1270,21 @@ card.standard={
player.discardPlayerCard(get.prompt('hanbing'),'he',trigger.target,Math.min(2,trigger.target.countCards('he')),function(button){
var trigger=_status.event.getTrigger();
var player=_status.event.player;
var eff=ai.get.damageEffect(trigger.target,player,player);
if(ai.get.attitude(player,trigger.target)>0){
var eff=get.damageEffect(trigger.target,player,player);
if(get.attitude(player,trigger.target)>0){
if(eff>=0) return false;
return 10-ai.get.buttonValue(button);
return 10-get.buttonValue(button);
}
if(eff<=0) return ai.get.buttonValue(button);
if(eff<=0) return get.buttonValue(button);
if(trigger.target.hp==1) return false;
if(player.hasSkill('jiu')||player.hasSkill('tianxianjiu')||
player.hasSkill('luoyi2')||player.hasSkill('reluoyi2')) return false;
if(_status.event.dialog.buttons.length<2) return -1;
var num=0;
for(var i=0;i<_status.event.dialog.buttons.length;i++){
if(ai.get.buttonValue(_status.event.dialog.buttons[i])>1.5) num++;
if(get.buttonValue(_status.event.dialog.buttons[i])>1.5) num++;
}
if(num>=2) return ai.get.buttonValue(button)-1.5;
if(num>=2) return get.buttonValue(button)-1.5;
}).set('logSkill','hanbing_skill');
"step 1"
if(result.bool){
@ -1341,7 +1341,7 @@ card.standard={
"step 0"
trigger.target.chooseToDiscard('弃置一张手牌,或令'+get.translation(player)+'摸一张牌').set('ai',function(card){
var trigger=_status.event.getTrigger();
return -ai.get.attitude(trigger.target,trigger.player)-ai.get.value(card);
return -get.attitude(trigger.target,trigger.player)-get.value(card);
});
"step 1"
if(result.bool==false) player.draw();
@ -1397,7 +1397,7 @@ card.standard={
prompt:'将两张手牌当杀使用或打出',
check:function(card){
if(card.name=='sha') return 0;
return 6-ai.get.useful(card)
return 6-get.useful(card)
},
ai:{
respondSha:true,
@ -1421,13 +1421,13 @@ card.standard={
next.logSkill='guanshi_skill';
next.set('ai',function(card){
var evt=_status.event.getParent();
if(ai.get.attitude(evt.player,evt._trigger.target)<0){
if(get.attitude(evt.player,evt._trigger.target)<0){
if(evt.player.hasSkill('jiu')||
evt.player.hasSkill('tianxianjiu')||
evt._trigger.target.hp==1){
return 8-ai.get.value(card)
return 8-get.value(card)
}
return 5-ai.get.value(card)
return 5-get.value(card)
}
return -1;
});
@ -1462,12 +1462,12 @@ card.standard={
audio:true,
content:function(){
"step 0"
var att=(ai.get.attitude(player,trigger.target)<=0);
var att=(get.attitude(player,trigger.target)<=0);
var next=player.chooseButton();
next.set('att',att);
next.set('createDialog',['选择要弃置的马',trigger.target.getCards('e',{subtype:['equip3','equip4']})]);
next.set('ai',function(button){
if(_status.event.att) return ai.get.buttonValue(button);
if(_status.event.att) return get.buttonValue(button);
return 0;
});
"step 1"
@ -1488,7 +1488,7 @@ card.standard={
},
audio:true,
check:function(event,player){
if(ai.get.damageEffect(player,event.player,player)>=0) return false;
if(get.damageEffect(player,event.player,player)>=0) return false;
return true;
},
content:function(){
@ -1594,7 +1594,7 @@ card.standard={
var aiii=info.ai.wuxie(source,card,source,_status.event.player,state);
if(typeof aiii=='number') return aiii;
}
if(Math.abs(ai.get.attitude(_status.event.player,source))<3) return 0;
if(Math.abs(get.attitude(_status.event.player,source))<3) return 0;
if(source.hasSkill('guanxing')) return 0;
if(name!='lebu'&&name!='bingliang'){
if(source!=_status.event.player){
@ -1608,9 +1608,9 @@ card.standard={
else{
card2=card;
}
var eff=ai.get.effect(source,card2,source,source);
var eff=get.effect(source,card2,source,source);
if(eff>=0) return 0;
return state*ai.get.attitude(_status.event.player,source);
return state*get.attitude(_status.event.player,source);
}
else{
var triggerevent=_status.event.getTrigger();
@ -1627,12 +1627,12 @@ card.standard={
if(info.multitarget&&targets){
var eff=0;
for(var i=0;i<targets.length;i++){
eff+=ai.get.effect(targets[i],card,source,_status.event.player)
eff+=get.effect(targets[i],card,source,_status.event.player)
}
return -eff*state;
}
if(Math.abs(ai.get.attitude(_status.event.player,target))<3) return 0;
return -ai.get.effect(target,card,source,_status.event.player)*state;
if(Math.abs(get.attitude(_status.event.player,target))<3) return 0;
return -get.effect(target,card,source,_status.event.player)*state;
}
},
source:target,

View File

@ -19,7 +19,7 @@ card.swd={
var rand=Math.random()<0.5;
target.chooseCard(true).ai=function(card){
if(rand) return Math.random();
return ai.get.value(card);
return get.value(card);
};
"step 2"
event.card2=result.cards[0];
@ -117,7 +117,7 @@ card.swd={
}
var dialog=ui.create.dialog('选择一张加入你的手牌',[list,'vcard'],'hidden');
target.chooseButton(dialog,true).ai=function(button){
return ai.get.value({name:button.link[2]});
return get.value({name:button.link[2]});
};
'step 2'
if(result.buttons){
@ -147,8 +147,8 @@ card.swd={
value:5,
result:{
target:function(player,target){
if(ai.get.attitude(player,target)>0) return 0;
if(ai.get.damageEffect(target,player,target)>=0) return 0;
if(get.attitude(player,target)>0) return 0;
if(get.damageEffect(target,player,target)>=0) return 0;
return -1;
}
},
@ -403,7 +403,7 @@ card.swd={
target:1
},
order:function(){
return ai.get.order({name:'sha'})+0.1;
return get.order({name:'sha'})+0.1;
},
}
},
@ -517,8 +517,8 @@ card.swd={
var next=target.chooseToDiscard('机关火筒:弃置一张手牌或受到一点火焰伤害');
next.set('ai',function(card){
var evt=_status.event.getParent();
if(ai.get.damageEffect(evt.target,evt.player,evt.target,'fire')>=0) return 0;
return 8-ai.get.useful(card);
if(get.damageEffect(evt.target,evt.player,evt.target,'fire')>=0) return 0;
return 8-get.useful(card);
});
}
else{
@ -537,7 +537,7 @@ card.swd={
},
ai:{
wuxie:function(target,card,player,viewer){
if(ai.get.attitude(viewer,target)>0){
if(get.attitude(viewer,target)>0){
if(target.countCards('h')>0||target.hp>1) return 0;
}
},
@ -818,7 +818,7 @@ card.swd={
target:function(player,target){
var players=game.filterPlayer(function(current){
return (current!=player&&!current.isTurnedOver()&&
ai.get.attitude(player,current)>=3&&ai.get.attitude(current,player)>=3)
get.attitude(player,current)>=3&&get.attitude(current,player)>=3)
});
players.sort(lib.sort.seat);
if(target==players[0]) return 2;
@ -1132,7 +1132,7 @@ card.swd={
if(hs.length==1) return num+1;
if(hs.length<=4){
for(var i=0;i<hs.length;i++){
if(ai.get.value(hs[i])>6) return num;
if(get.value(hs[i])>6) return num;
}
}
if(hs.length>4) return num+0.5;
@ -1455,7 +1455,7 @@ card.swd={
}
else{
target.chooseToDiscard({color:'black'},'弃置一张黑色手牌或受流失一点体力').ai=function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
};
}
"step 1"
@ -1517,7 +1517,7 @@ card.swd={
}
player.chooseButton(ui.create.dialog('选择要复活的角色',[list,'character']),function(button){
for(var i=0;i<game.dead.length&&game.dead[i].name!=button.link;i++);
return ai.get.attitude(_status.event.player,game.dead[i]);
return get.attitude(_status.event.player,game.dead[i]);
},true);
"step 1"
if(result.bool){
@ -1540,14 +1540,14 @@ card.swd={
},
order:function(card,player){
for(var i=0;i<game.dead.length;i++){
if(ai.get.attitude(player,game.dead[i])>3) return 7;
if(get.attitude(player,game.dead[i])>3) return 7;
}
return -10;
},
result:{
player:function(player){
for(var i=0;i<game.dead.length;i++){
if(ai.get.attitude(player,game.dead[i])>3) return 2;
if(get.attitude(player,game.dead[i])>3) return 2;
}
return -10;
}
@ -1604,7 +1604,7 @@ card.swd={
},
},
order:function(){
return ai.get.order({name:'sha'})+0.2;
return get.order({name:'sha'})+0.2;
},
result:{
target:function(player,target){
@ -1629,9 +1629,9 @@ card.swd={
}
if(card){
if(game.hasPlayer(function(current){
return (ai.get.attitude(target,current)<0&&
return (get.attitude(target,current)<0&&
target.canUse(card,current,true,true)&&
ai.get.effect(current,card,target)>0);
get.effect(current,card,target)>0);
})){
return 1;
}
@ -1754,7 +1754,7 @@ card.swd={
},
result:{
player:function(player,target){
if(ai.get.attitude(player,target)<0){
if(get.attitude(player,target)<0){
if(get.distance(player,target)>1) return 1;
return 0.6;
}
@ -1776,10 +1776,10 @@ card.swd={
"step 0"
var next=target.chooseToRespond({name:'sha'});
next.ai=function(card){
if(ai.get.damageEffect(target,player,target,'thunder')>=0) return 0;
if(get.damageEffect(target,player,target,'thunder')>=0) return 0;
if(player.hasSkillTag('notricksource')) return 0;
if(target.hasSkillTag('notrick')) return 0;
return 11-ai.get.value(card);
return 11-get.value(card);
};
next.autochoose=lib.filter.autoRespondSha;
"step 1"
@ -1789,7 +1789,7 @@ card.swd={
},
ai:{
wuxie:function(target,card,player,viewer){
if(ai.get.attitude(viewer,target)>0&&target.countCards('h','sha')){
if(get.attitude(viewer,target)>0&&target.countCards('h','sha')){
if(!target.countCards('h')||target.hp==1||Math.random()<0.7) return 0;
}
},
@ -1835,10 +1835,10 @@ card.swd={
"step 0"
var next=target.chooseToRespond({name:'shan'});
next.ai=function(card){
if(ai.get.damageEffect(target,player,target,'fire')>=0) return 0;
if(get.damageEffect(target,player,target,'fire')>=0) return 0;
if(player.hasSkillTag('notricksource')) return 0;
if(target.hasSkillTag('notrick')) return 0;
return 11-ai.get.value(card);
return 11-get.value(card);
};
next.autochoose=lib.filter.autoRespondShan;
"step 1"
@ -1848,7 +1848,7 @@ card.swd={
},
ai:{
wuxie:function(target,card,player,viewer){
if(ai.get.attitude(viewer,target)>0&&target.countCards('h','shan')){
if(get.attitude(viewer,target)>0&&target.countCards('h','shan')){
if(!target.countCards('h')||target.hp==1||Math.random()<0.7) return 0;
}
},
@ -2072,7 +2072,7 @@ card.swd={
selectCard:[1,Infinity],
prompt:'弃置任意张基本牌并摸等量的牌',
check:function(card){
return 6-ai.get.value(card)
return 6-get.value(card)
},
content:function(){
player.draw(cards.length);
@ -2217,11 +2217,11 @@ card.swd={
return ui.cardPile.childElementCount>1;
},
content:function(){
var value=ai.get.value(ui.cardPile.firstChild);
var value=get.value(ui.cardPile.firstChild);
var num=Math.min(20,ui.cardPile.childElementCount);
var list=[],list2=[],list3=[];
for(var i=1;i<num;i++){
var val=ai.get.value(ui.cardPile.childNodes[i]);
var val=get.value(ui.cardPile.childNodes[i]);
if(val>value){
list.push(ui.cardPile.childNodes[i]);
if(val>value+1&&val>=7){
@ -2286,11 +2286,11 @@ card.swd={
},
ai:{
order:function(){
return ai.get.order({name:'sha'})+0.11;
return get.order({name:'sha'})+0.11;
},
result:{
target:function(player,target){
return ai.get.effect(target,{name:'sha'},player,target);
return get.effect(target,{name:'sha'},player,target);
}
}
}
@ -2422,7 +2422,7 @@ card.swd={
if(player==target) return false;
return target.countCards('he')>0;
}).ai=function(target){
return -ai.get.attitude(player,target);
return -get.attitude(player,target);
};
"step 1"
if(result.bool){
@ -2443,7 +2443,7 @@ card.swd={
},
logTarget:'source',
check:function(event,player){
return ai.get.damageEffect(event.source,player,player,'fire')>0;
return get.damageEffect(event.source,player,player,'fire')>0;
},
content:function(){
'step 0'
@ -2485,7 +2485,7 @@ card.swd={
content:function(){
'step 0'
player.chooseTarget([1,3],get.prompt('cangchizhibi')).ai=function(target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(target.isLinked()){
return att;
}
@ -2507,7 +2507,7 @@ card.swd={
content:function(){
'step 0'
player.chooseTarget(get.prompt('cangchizhibi_duanzao')).ai=function(target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(target.isLinked()){
return att;
}
@ -2542,7 +2542,7 @@ card.swd={
'step 0'
var next=player.chooseToDiscard('he',{color:'black'},get.prompt('huanglinzhicong_duanzao'));
next.ai=function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
};
next.logSkill='huanglinzhicong_equip1'
'step 1'
@ -2573,8 +2573,8 @@ card.swd={
'step 0'
var next=player.chooseToDiscard('he',{color:'red'},get.prompt('xuanwuzhihuang_duanzao'));
next.ai=function(card){
if(ai.get.recoverEffect(player,player,player)<=0) return 0;
return 8-ai.get.value(card);
if(get.recoverEffect(player,player,player)<=0) return 0;
return 8-get.value(card);
};
next.logSkill='xuanwuzhihuang_equip1'
'step 1'
@ -2612,10 +2612,10 @@ card.swd={
return get.color(card)=='red'&&lib.filter.cardDiscardable(card,player);
},
ai1:function(card){
return 9-ai.get.value(card);
return 9-get.value(card);
},
ai2:function(target){
return ai.get.damageEffect(target,player,player,'fire');
return get.damageEffect(target,player,player,'fire');
},
prompt:get.prompt('zhuquezhizhang_duanzao')
});
@ -2655,7 +2655,7 @@ card.swd={
if(player==target) return false;
return target.countCards('he')>0;
}).ai=function(target){
return -ai.get.attitude(player,target);
return -get.attitude(player,target);
};
"step 1"
if(result.bool){
@ -2794,7 +2794,7 @@ card.swd={
usable:1,
filterCard:true,
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
filterTarget:function(card,player,target){
return target!=player&&target.countCards('h')>0;
@ -2870,10 +2870,10 @@ card.swd={
filterTarget:true,
filterCard:lib.filter.cardDiscardable,
ai1:function(card){
return 8-ai.get.useful(card);
return 8-get.useful(card);
},
ai2:function(target){
return -ai.get.attitude(player,target);
return -get.attitude(player,target);
},
prompt:get.prompt('donghuangzhong')
});
@ -2920,7 +2920,7 @@ card.swd={
if(game.dead.length){
player.chooseButton(ui.create.dialog([list,'character']),function(button){
for(var i=0;i<game.dead.length&&game.dead[i].name!=button.link;i++);
return -ai.get.attitude(_status.event.player,game.dead[i]);
return -get.attitude(_status.event.player,game.dead[i]);
},true);
if(game.players.length+game.dead.length<8){
event.control=ui.create.control('新角色',ui.click.cancel)
@ -3019,7 +3019,7 @@ card.swd={
},
filterCard:true,
check:function(card){
return ai.get.value(card);
return get.value(card);
},
discard:false,
prepare:'throw',
@ -3031,7 +3031,7 @@ card.swd={
game.delay(0,2500);
"step 1"
target.removeAttribute('style');
if(Math.random()<(ai.get.value(cards[0])+1)*(target.maxHp-target.hp)/(60*target.maxHp)){
if(Math.random()<(get.value(cards[0])+1)*(target.maxHp-target.hp)/(60*target.maxHp)){
event.position=target.dataset.position;
target.dataset.position=player.dataset.position;
target.delete();
@ -3071,10 +3071,10 @@ card.swd={
"step 0"
event.cards=get.cards(2);
player.chooseCardButton(true,event.cards,'昊天塔:选择一张牌作为'+get.translation(trigger.player)+'的'+trigger.judgestr+'判定结果').ai=function(button){
if(ai.get.attitude(player,trigger.player)>0){
if(get.attitude(player,trigger.player)>0){
return 1+trigger.judge(button.link);
}
if(ai.get.attitude(player,trigger.player)<0){
if(get.attitude(player,trigger.player)<0){
return 1-trigger.judge(button.link);
}
return 0;
@ -3155,7 +3155,7 @@ card.swd={
selectCard:2,
check:function(card){
if(get.tag(card,'recover')>=1) return 0;
return 7-ai.get.value(card);
return 7-get.value(card);
},
filter:function(event,player){
return player.hp<player.maxHp&&player.countCards('h')>=2;
@ -3166,7 +3166,7 @@ card.swd={
ai:{
result:{
player:function(player){
return ai.get.recoverEffect(player);
return get.recoverEffect(player);
}
},
order:2.5
@ -3195,7 +3195,7 @@ card.swd={
return event.player.hp<=0&&player.hp>1;
},
check:function(event,player){
return ai.get.attitude(player,event.player)>=3;
return get.attitude(player,event.player)>=3;
},
logTarget:'player',
content:function(){
@ -3227,7 +3227,7 @@ card.swd={
player.chooseTarget('选择一个目标视为'+get.translation(target)+'对其使用一张杀',function(card,player,target2){
return player!=target2&&target.canUse('sha',target2);
}).ai=function(target2){
return ai.get.effect(target2,{name:'sha'},target,player);
return get.effect(target2,{name:'sha'},target,player);
}
}
else{
@ -3243,10 +3243,10 @@ card.swd={
result:{
target:function(player,target){
if(player.countCards('h')<=1) return 0;
if(ai.get.attitude(player,target)>=0) return 0;
if(get.attitude(player,target)>=0) return 0;
if(game.hasPlayer(function(current){
return (player!=current&&target.canUse('sha',current)&&
ai.get.effect(current,{name:'sha'},target,player)>0)
get.effect(current,{name:'sha'},target,player)>0)
})){
return -1;
}
@ -3366,7 +3366,7 @@ card.swd={
filterCard:true,
position:'he',
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
filter:function(event,player){
return !player.isTurnedOver();
@ -3463,7 +3463,7 @@ card.swd={
return target.countCards('he')>0;
},
check:function(card){
return 5-ai.get.value(card);
return 5-get.value(card);
},
content:function(){
target.discard(target.getCards('he').randomGet());
@ -3499,7 +3499,7 @@ card.swd={
hslingjian_zhongxinghujia_equip2:{
trigger:{player:'damageEnd'},
check:function(event,player){
return ai.get.attitude(player,event.source)<0;
return get.attitude(player,event.source)<0;
},
filter:function(event){
return event.card&&event.card.name=='sha'&&event.source&&event.source.getEquip(2);
@ -3534,7 +3534,7 @@ card.swd={
return player.countCards('he')>=2;
},
check:function(card){
return 5-ai.get.value(card);
return 5-get.value(card);
},
content:function(){
var card=game.createCard(get.inpile('equip2').randomGet());
@ -3556,9 +3556,9 @@ card.swd={
trigger:{source:'damageEnd'},
check:function(event,player){
if(event.player.isTurnedOver()){
return ai.get.attitude(player,event.player)>0;
return get.attitude(player,event.player)>0;
}
return ai.get.attitude(player,event.player)<=0;
return get.attitude(player,event.player)<=0;
},
filter:function(event){
return event.card&&event.card.name=='sha'&&event.player&&event.player.isAlive();
@ -3573,9 +3573,9 @@ card.swd={
trigger:{player:'damageEnd'},
check:function(event,player){
if(event.player.isTurnedOver()){
return ai.get.attitude(player,event.source)>0;
return get.attitude(player,event.source)>0;
}
return ai.get.attitude(player,event.source)<=0;
return get.attitude(player,event.source)<=0;
},
filter:function(event){
return event.card&&event.card.name=='sha'&&event.source&&event.source.isAlive();
@ -3612,7 +3612,7 @@ card.swd={
player.chooseTarget(get.prompt('hslingjian_jinjilengdong_duanzao'),function(card,player,target){
return player!=target&&!target.isTurnedOver();
}).ai=function(target){
return Math.max(0,-ai.get.attitude(player,target)-2);
return Math.max(0,-get.attitude(player,target)-2);
};
"step 1"
if(result.bool){
@ -3634,7 +3634,7 @@ card.swd={
player.chooseTarget(get.prompt('hslingjian_yinmilichang_duanzao'),function(card,player,target){
return target!=player&&!target.hasSkill('qianxing');
}).ai=function(target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(get.distance(player,target,'absolute')<=1) return 0;
if(target.hp==1) return 2*att;
if(target.hp==2&&target.countCards('h')<=2) return 1.2*att;
@ -3777,7 +3777,7 @@ card.swd={
filterCard:true,
selectCard:2,
check:function(card){
return 5-ai.get.value(card);
return 5-get.value(card);
},
position:'he',
filterTarget:true,
@ -3850,7 +3850,7 @@ card.swd={
target.$gain2(es);
},
check:function(card){
return 4-ai.get.value(card);
return 4-get.value(card);
},
ai:{
order:5,
@ -3869,7 +3869,7 @@ card.swd={
},
filterCard:{type:['trick','delay']},
check:function(card){
return 5-ai.get.value(card);
return 5-get.value(card);
},
viewAs:{name:'jiguanshu'}
},
@ -3946,7 +3946,7 @@ card.swd={
}
return 0;
}
var num=1+ai.get.value(card);
var num=1+get.value(card);
if(get.position(card)=='e'){
num+=0.1;
}
@ -4100,7 +4100,7 @@ card.swd={
player.chooseTarget(function(card,player,target){
return !target.isMin()&&get.distance(player,target)<=1;
},'选择一个目标装备'+get.translation(card.name)).ai=function(target){
return ai.get.effect(target,card,player,player);
return get.effect(target,card,player,player);
}
event.card=card;
'step 1'
@ -4180,8 +4180,8 @@ card.swd={
},
content:function(){
player.gainPlayerCard(get.prompt('qinglonglingzhu',trigger.player),trigger.player,function(button){
if(ai.get.attitude(player,trigger.player)<=0){
return ai.get.buttonValue(button);
if(get.attitude(player,trigger.player)<=0){
return get.buttonValue(button);
}
return 0;
},'he').logSkill=['qinglonglingzhu',trigger.player];
@ -4210,7 +4210,7 @@ card.swd={
fengxueren:{
trigger:{player:'shaHit'},
check:function(event,player){
var att=ai.get.attitude(player,event.target);
var att=get.attitude(player,event.target);
if(player.hasSkill('jiu')) return att>0;
if(event.target.hp==1) return att>0;
if(event.target.hasSkillTag('maixie')){
@ -4274,7 +4274,7 @@ card.swd={
});
},
check:function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
},
filterTarget:function(card,player,target){
if(target.countCards('h')==0) return false;
@ -4364,11 +4364,11 @@ card.swd={
else if(x<0.3) target.loseHp();
else if(x<0.4) target.recover();
else if(x<0.6){
if(ai.get.attitude(player,target)>0) target.draw();
if(get.attitude(player,target)>0) target.draw();
else target.chooseToDiscard(true);
}
else if(x<0.8){
if(ai.get.attitude(player,target)>0) target.recover();
if(get.attitude(player,target)>0) target.recover();
else target.loseHp();
}
}
@ -4430,7 +4430,7 @@ card.swd={
player.chooseTarget('弃置一名角色的一张牌',function(card,player,target){
return player!=target&&target.countCards('he')>0;
}).ai=function(target){
return -ai.get.attitude(player,target);
return -get.attitude(player,target);
};
break;
}
@ -4472,7 +4472,7 @@ card.swd={
// game.delay();
},
check:function(card){
return 10-ai.get.value(card);
return 10-get.value(card);
},
position:'he',
ai:{
@ -4554,7 +4554,7 @@ card.swd={
order:10,
result:{
target:function(player,target){
var num=ai.get.damageEffect(target,player,target);
var num=get.damageEffect(target,player,target);
if(player.storage.nigong>=4&&num>0){
num=0;
}
@ -4583,7 +4583,7 @@ card.swd={
sadengjinhuan:{
trigger:{player:'shaMiss'},
check:function(event,player){
return ai.get.attitude(player,event.target)<0;
return get.attitude(player,event.target)<0;
},
content:function(){
"step 0"
@ -4625,7 +4625,7 @@ card.swd={
guiyanfadao:{
trigger:{player:'shaHit'},
check:function(event,player){
var att=ai.get.attitude(player,event.target);
var att=get.attitude(player,event.target);
if(player.hasSkill('jiu')) return att>0;
if(event.target.hasSkillTag('maixie_hp')){
return att<=0;

View File

@ -55,13 +55,13 @@ card.yunchou={
var minValue=20;
var hs=target.getCards('h');
for(var i=0;i<hs.length;i++){
minValue=Math.min(minValue,ai.get.value(hs[i],target));
minValue=Math.min(minValue,get.value(hs[i],target));
}
if(target.isUnderControl(true)){
event.dialog.setCaption('选择一张牌并用一张手牌替换之');
}
var next=target.chooseButton(function(button){
return ai.get.value(button.link,_status.event.player)-minValue;
return get.value(button.link,_status.event.player)-minValue;
});
next.set('dialog',event.preResult);
next.set('closeDialog',false);
@ -71,7 +71,7 @@ card.yunchou={
if(result.bool){
event.button=result.buttons[0];
target.chooseCard('用一张牌牌替换'+get.translation(result.links),true).ai=function(card){
return -ai.get.value(card);
return -get.value(card);
}
}
else{
@ -101,17 +101,17 @@ card.yunchou={
return;
}
var nextSeat=_status.currentPhase.next;
var att=ai.get.attitude(player,nextSeat);
var att=get.attitude(player,nextSeat);
if(player.isUnderControl(true)&&!_status.auto){
event.dialog.setCaption('将任意张牌以任意顺序置于牌堆顶(先选择的在上)');
}
var next=player.chooseButton([1,event.dialog.buttons.length],event.dialog);
next.ai=function(button){
if(att>0){
return ai.get.value(button.link,nextSeat)-5;
return get.value(button.link,nextSeat)-5;
}
else{
return 5-ai.get.value(button.link,nextSeat);
return 5-get.value(button.link,nextSeat);
}
}
next.set('closeDialog',false);
@ -172,7 +172,7 @@ card.yunchou={
target.chooseControl().set('prompt',get.translation('caochuanjiejian')).set('choiceList',[
'将手牌中的所有杀交给'+name+',并视为对'+name+'使用一张杀','展示手牌并令'+name+'弃置任意一张'
],function(){
if(ai.get.effect(player,{name:'sha'},target,target)<0) return 1;
if(get.effect(player,{name:'sha'},target,target)<0) return 1;
if(target.countCards('h','sha')>=3) return 1;
return 0;
});
@ -325,11 +325,11 @@ card.yunchou={
if(event.list.length){
event.current=event.list.shift();
event.current.chooseBool('是否响应'+get.translation(target)+'的舌战群儒?',function(event,player){
if(ai.get.attitude(player,_status.event.source)>=0) return false;
if(get.attitude(player,_status.event.source)>=0) return false;
var hs=player.getCards('h');
var dutag=player.hasSkillTag('nodu');
for(var i=0;i<hs.length;i++){
var value=ai.get.value(hs[i],player);
var value=get.value(hs[i],player);
if(hs[i].name=='du'&&dutag) continue;
if(value<0) return true;
if(!_status.event.hasTarget){
@ -387,7 +387,7 @@ card.yunchou={
target:function(player,target){
var hs=target.getCards('h');
for(var i=0;i<hs.length;i++){
var value=ai.get.value(hs[i]);
var value=get.value(hs[i]);
if(hs[i].number>=7&&value<=6) return 1;
if(value<=3) return 1;
}
@ -437,12 +437,12 @@ card.yunchou={
useful:[5,1],
order:1,
wuxie:function(target,card,player,current,state){
return -state*ai.get.attitude(player,current);
return -state*get.attitude(player,current);
},
result:{
player:function(player){
if(_status.event.parent.youdiinfo&&
ai.get.attitude(player,_status.event.parent.youdiinfo.source)<=0){
get.attitude(player,_status.event.parent.youdiinfo.source)<=0){
return 1;
}
return 0;
@ -469,7 +469,7 @@ card.yunchou={
result:{
target:function(player,target){
var num=0;
if(target.isLowestHp()&&ai.get.recoverEffect(target)>0){
if(target.isLowestHp()&&get.recoverEffect(target)>0){
if(target.hp==1){
num+=3;
}
@ -552,7 +552,7 @@ card.yunchou={
result:{
target:function(player,target){
if(target.getCards('e',{subtype:'equip5'}).length){
if(ai.get.attitude(target,player)>0){
if(get.attitude(target,player)>0){
return -0.5;
}
return -1;
@ -661,7 +661,7 @@ card.yunchou={
if(_status.auto&&event.addedTarget==game.me){
game.delay();
}
event.addedTarget.chooseCard(true,event.num,'选择'+get.cnNumber(event.num)+'张手牌还给'+get.translation(target)).ai=ai.get.disvalue;
event.addedTarget.chooseCard(true,event.num,'选择'+get.cnNumber(event.num)+'张手牌还给'+get.translation(target)).ai=get.disvalue;
}
else{
event.finish();
@ -875,15 +875,15 @@ card.yunchou={
else{
target.chooseToDiscard('he',2).ai=function(card){
if(target.hasSkillTag('nofire')) return 0;
if(ai.get.damageEffect(target,player,target,'fire')>=0) return 0;
if(get.damageEffect(target,player,target,'fire')>=0) return 0;
if(player.hasSkillTag('notricksource')) return 0;
if(target.hasSkillTag('notrick')) return 0;
if(card.name=='tao') return 0;
if(target.hp==1&&card.name=='jiu') return 0;
if(target.hp==1&&get.type(card)!='basic'){
return 10-ai.get.value(card);
return 10-get.value(card);
}
return 8-ai.get.value(card);
return 8-get.value(card);
};
}
"step 1"
@ -900,7 +900,7 @@ card.yunchou={
result:{
target:function(player,target){
if(target.hasSkillTag('nofire')) return 0;
if(ai.get.damageEffect(target,player,player)<0&&ai.get.attitude(player,target)>0){
if(get.damageEffect(target,player,player)<0&&get.attitude(player,target)>0){
return -2;
}
var nh=target.countCards('he');

View File

@ -275,8 +275,8 @@ card.zhenfa={
player.chooseCard('将一张非基本牌当作杀对'+get.translation(target)+'使用','he',function(card){
return get.type(card)!='basic';
}).ai=function(card){
if(ai.get.effect(target,{name:'sha'},player,player)>0){
return 6-ai.get.value(card);
if(get.effect(target,{name:'sha'},player,player)>0){
return 6-get.value(card);
}
return 0;
};
@ -290,8 +290,8 @@ card.zhenfa={
event.player2.chooseCard('将一张非基本牌当作杀对'+get.translation(target)+'使用','he',function(card){
return get.type(card)!='basic';
}).ai=function(card){
if(ai.get.effect(target,{name:'sha'},event.player2,event.player2)>0){
return 6-ai.get.value(card);
if(get.effect(target,{name:'sha'},event.player2,event.player2)>0){
return 6-get.value(card);
}
return 0;
};
@ -322,7 +322,7 @@ card.zhenfa={
"step 0"
var next=target.chooseToRespond({name:'shan'});
next.ai=function(card){
if(ai.get.damageEffect(target,player,target)>=0) return 0;
if(get.damageEffect(target,player,target)>=0) return 0;
return 1;
};
next.autochoose=lib.filter.autoRespondShan;

View File

@ -48,7 +48,7 @@ character.diy={
return player.countCards('h',{type:'basic'})>0;
},
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
group:'liangce2'
},
@ -67,7 +67,7 @@ character.diy={
var dialog=ui.create.dialog(get.prompt('liangce'),trigger.remained,'hidden');
dialog.classList.add('noselect');
player.chooseTarget(dialog).ai=function(target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(du>=trigger.remained.length/2) return -att;
return att;
}
@ -97,8 +97,8 @@ character.diy={
return _status.event.getTrigger().targets.contains(target);
}).set('ai',function(target){
var trigger=_status.event.getTrigger();
var eff=-ai.get.effect(target,trigger.card,trigger.player,_status.event.player);
if(trigger.card.name=='wugu'&&eff==0&&ai.get.attitude(player,target)<0){
var eff=-get.effect(target,trigger.card,trigger.player,_status.event.player);
if(trigger.card.name=='wugu'&&eff==0&&get.attitude(player,target)<0){
return 0.01;
}
return eff;
@ -148,14 +148,14 @@ character.diy={
var player=_status.event.player;
var he=player.getCards('he');
var subtype=get.subtype(card);
var value=ai.get.equipValue(card);
var value=get.equipValue(card);
for(var i=0;i<he.length;i++){
if(he[i]!=card&&get.subtype(he[i])==subtype&&ai.get.equipValue(he[i])>=value){
if(he[i]!=card&&get.subtype(he[i])==subtype&&get.equipValue(he[i])>=value){
return 10;
}
}
if(!player.needsToDiscard()){
return 4-ai.get.equipValue(card);
return 4-get.equipValue(card);
}
return 0;
},
@ -186,7 +186,7 @@ character.diy={
return lib.filter.cardEnabled({name:'diaobingqianjiang'},target);
},
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
content:function(){
var list=game.filterPlayer();
@ -197,9 +197,9 @@ character.diy={
order:1,
result:{
player:function(player,target){
if(ai.get.attitude(player,target)<=1) return 0;
if(get.attitude(player,target)<=1) return 0;
return game.countPlayer(function(current){
return ai.get.effect(current,{name:'diaobingqianjiang'},target,player);
return get.effect(current,{name:'diaobingqianjiang'},target,player);
});
}
}
@ -215,7 +215,7 @@ character.diy={
},
logTarget:'player',
check:function(event,player){
var att=ai.get.attitude(player,event.player);
var att=get.attitude(player,event.player);
var subtype=get.subtype(event.cards[0]);
if(att>0){
if(event.player.countCards('h')>=player.countCards('h')+2) return true;
@ -230,13 +230,13 @@ character.diy={
var bool=false;
var subtype=get.subtype(trigger.cards[0]);
var current=trigger.player.getEquip('e',parseInt(subtype[5]));
var att=ai.get.attitude(trigger.player,player);
var att=get.attitude(trigger.player,player);
if(current){
if(att>0){
bool=true;
}
else{
if(ai.get.equipValue(current)>ai.get.equipValue(trigger.cards[0])){
if(get.equipValue(current)>get.equipValue(trigger.cards[0])){
bool=true;
}
}
@ -244,14 +244,14 @@ character.diy={
trigger.player.chooseCard('立断:将一张手牌交给'+get.translation(player)+',或取消并使用'+get.translation(trigger.cards)).ai=function(card){
if(bool){
if(att>0){
return 8-ai.get.value(card);
return 8-get.value(card);
}
else{
return 4-ai.get.value(card);
return 4-get.value(card);
}
}
else{
if(att<=0) return -ai.get.value(card);
if(att<=0) return -get.value(card);
return 0;
}
}
@ -312,18 +312,18 @@ character.diy={
content:function(){
'step 0'
var bool=false;
if(!player.hasShan()&&ai.get.effect(player,trigger.card,trigger.player,player)<0){
if(!player.hasShan()&&get.effect(player,trigger.card,trigger.player,player)<0){
bool=true;
}
player.chooseCard('he',get.prompt('fuchou',trigger.player)).ai=function(card){
if(bool){
if(player.hp<=1){
if(get.tag(card,'save')) return 0;
return 8-ai.get.value(card);
return 8-get.value(card);
}
return 6-ai.get.value(card);
return 6-get.value(card);
}
return -ai.get.value(card);
return -get.value(card);
}
'step 1'
if(result.bool){
@ -397,11 +397,11 @@ character.diy={
},
content:function(){
'step 0'
var bool=(ai.get.attitude(player,trigger.player)<0&&ai.get.attitude(player,trigger.target)>0);
var bool=(get.attitude(player,trigger.player)<0&&get.attitude(player,trigger.target)>0);
var next=player.chooseToDiscard('he',{type:'equip'},get.prompt('youzhan',trigger.target));
next.ai=function(card){
if(bool){
return 7-ai.get.value(card);
return 7-get.value(card);
}
return 0;
};
@ -432,7 +432,7 @@ character.diy={
if(get.type(result.links[0])=='basic'){
player.chooseTarget([1,player.maxHp-player.hp],
'选择至多'+get.cnNumber(player.maxHp-player.hp)+'名角色各摸一张牌').ai=function(target){
return ai.get.attitude(player,target);
return get.attitude(player,target);
}
}
else{
@ -490,7 +490,7 @@ character.diy={
content:function(){
'step 0'
var bool=false;
if(ai.get.attitude(player,trigger.player)<0&&trigger.player.needsToDiscard()){
if(get.attitude(player,trigger.player)<0&&trigger.player.needsToDiscard()){
bool=true;
}
player.chooseCardButton(get.prompt('zhucheng',_status.currentPhase),player.storage.zhucheng).ai=function(button){
@ -562,7 +562,7 @@ character.diy={
sha=true;
}
else{
if(ai.get.value(he[i])<=6){
if(get.value(he[i])<=6){
return [1,0,1,-0.5];
}
}
@ -577,8 +577,8 @@ character.diy={
zhucheng2:{
trigger:{target:'shaBefore'},
check:function(event,player){
if(ai.get.attitude(event.player,player)<=0) return true;
return ai.get.effect(player,event.card,event.player,player)<=0;
if(get.attitude(event.player,player)<=0) return true;
return get.effect(player,event.card,event.player,player)<=0;
},
filter:function(event,player){
return player.storage.zhucheng&&player.storage.zhucheng.length>0;
@ -586,13 +586,13 @@ character.diy={
content:function(){
'step 0'
var bool=false;
if(ai.get.effect(player,trigger.card,trigger.player,trigger.player)>=0){
if(get.effect(player,trigger.card,trigger.player,trigger.player)>=0){
bool=true;
}
var num=player.storage.zhucheng.length;
trigger.player.chooseToDiscard('弃置'+get.cnNumber(num)+'张牌,或令杀无效',num).ai=function(card){
if(bool){
return 7-ai.get.value(card);
return 7-get.value(card);
}
return 0;
}
@ -764,7 +764,7 @@ character.diy={
return lib.filter.filterTarget({name:'bingliang'},player,target);
},
check:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
content:function(){
player.useCard({name:'bingliang'},target,cards).animate=false;
@ -773,7 +773,7 @@ character.diy={
ai:{
result:{
target:function(player,target){
return ai.get.effect(target,{name:'bingliang'},player,target);
return get.effect(target,{name:'bingliang'},player,target);
}
},
order:9,
@ -856,7 +856,7 @@ character.diy={
},
viewAs:{name:'shuiyanqijun'},
prompt:'将一张非基本牌当水淹七军使用',
check:function(card){return 8-ai.get.value(card)},
check:function(card){return 8-get.value(card)},
group:'luweiyan2'
},
luweiyan2:{
@ -876,7 +876,7 @@ character.diy={
player.chooseTarget('是否视为使用一张杀?',function(card,player,target){
return trigger.targets.contains(target)&&player.canUse('sha',target,false);
}).ai=function(target){
return ai.get.effect(target,{name:'sha'},player,player);
return get.effect(target,{name:'sha'},player,player);
}
'step 1'
if(result.bool){
@ -897,7 +897,7 @@ character.diy={
honglian:{
trigger:{player:'damageEnd'},
check:function(event,player){
return ai.get.attitude(player,event.player)<0;
return get.attitude(player,event.player)<0;
},
filter:function(event,player){
return event.source&&event.source!=player&&event.source.countCards('he',{color:'red'})>0;
@ -910,7 +910,7 @@ character.diy={
result:{
threaten:0.8,
target:function(card,player,target){
if(get.tag(card,'damage')&&ai.get.attitude(target,player)<0){
if(get.tag(card,'damage')&&get.attitude(target,player)<0){
return [1,0,0,-player.countCards('he',{color:'red'})];
}
}
@ -930,7 +930,7 @@ character.diy={
next=player.discardPlayerCard(player,'hej',2,true);
next.ai=function(button){
if(get.position(button.link)=='j') return 10;
return -ai.get.value(button.link);
return -get.value(button.link);
};
next.filterButton=function(button){
return lib.filter.cardDiscardable(button.link,player);
@ -977,13 +977,13 @@ character.diy={
content:function(){
"step 0"
player.chooseToDiscard(get.prompt('zonghuo')).ai=function(card){
var att=ai.get.attitude(player,trigger.player);
var att=get.attitude(player,trigger.player);
if(trigger.player.hasSkillTag('nofire')){
if(att>0) return 8-ai.get.value(card);
if(att>0) return 8-get.value(card);
return -1;
}
if(att<0){
return 7-ai.get.value(card);
return 7-get.value(card);
}
return -1;
}
@ -1005,7 +1005,7 @@ character.diy={
player.chooseTarget(get.prompt('shaoying'),function(card,player,target){
return get.distance(trigger.player,target)<=1&&trigger.player!=target;
}).ai=function(target){
return ai.get.damageEffect(target,player,player,'fire');
return get.damageEffect(target,player,player,'fire');
}
"step 1"
if(result.bool){
@ -1082,7 +1082,7 @@ character.diy={
},
content:function(){
"step 0"
var att=ai.get.attitude(trigger.player,player);
var att=get.attitude(trigger.player,player);
var bool=0;
if(att<0){
if(trigger.player.countCards('e')==0&&trigger.player.countCards('h')>2) bool=1;
@ -1168,7 +1168,7 @@ character.diy={
},
filterCard:true,
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
content:function(){
if(player.isLinked()==false) player.link();
@ -1263,7 +1263,7 @@ character.diy={
}
},
check:function(card){
return 10-ai.get.value(card);
return 10-get.value(card);
},
position:'he',
ai:{
@ -1277,7 +1277,7 @@ character.diy={
},
target:function(player,target){
if(player.hp<=1) return 0;
return ai.get.damageEffect(target,player);
return get.damageEffect(target,player);
}
}
},

View File

@ -32,7 +32,7 @@ character.extra={
var recover=0,lose=0,players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].hp<players[i].maxHp){
if(ai.get.attitude(player,players[i])>0){
if(get.attitude(player,players[i])>0){
if(players[i].hp<2){
lose--;
recover+=0.5;
@ -40,7 +40,7 @@ character.extra={
lose--;
recover++;
}
else if(ai.get.attitude(player,players[i])<0){
else if(get.attitude(player,players[i])<0){
if(players[i].hp<2){
lose++;
recover-=0.5;
@ -50,10 +50,10 @@ character.extra={
}
}
else{
if(ai.get.attitude(player,players[i])>0){
if(get.attitude(player,players[i])>0){
lose--;
}
else if(ai.get.attitude(player,players[i])<0){
else if(get.attitude(player,players[i])<0){
lose++;
}
}
@ -183,7 +183,7 @@ character.extra={
player:function(player){
return game.countPlayer(function(current){
if(current!=player){
return get.sgn(ai.get.damageEffect(current,player,player));
return get.sgn(get.damageEffect(current,player,player));
}
});
}
@ -210,7 +210,7 @@ character.extra={
if(cards.length){
if(game.hasPlayer(function(current){
return (player.canUse('sha',current)&&
ai.get.effect(current,cards[0],player,player)>0&&current.hasShan());
get.effect(current,cards[0],player,player)>0&&current.hasShan());
})){
return 1;
}
@ -312,13 +312,13 @@ character.extra={
var trigger=_status.event.parent._trigger;
var player=_status.event.player;
var result=trigger.judge(card)-trigger.judge(trigger.player.judging[0]);
var attitude=ai.get.attitude(player,trigger.player);
var attitude=get.attitude(player,trigger.player);
if(attitude==0||result==0) return 0;
if(attitude>0){
return result-ai.get.value(card)/2;
return result-get.value(card)/2;
}
else{
return -result-ai.get.value(card)/2;
return -result-get.value(card)/2;
}
};
"step 1"
@ -364,11 +364,11 @@ character.extra={
return player!=target
}).ai=function(target){
if(target.isTurnedOver()){
return ai.get.attitude(player,target)-1;
return get.attitude(player,target)-1;
}
else{
if(player.maxHp-player.hp==1){
return -ai.get.attitude(player,target)-1;
return -get.attitude(player,target)-1;
}
}
return 0;
@ -407,7 +407,7 @@ character.extra={
filterCard:true,
selectCard:[1,Infinity],
prompt:'弃置一枚“忍”,然后弃置任意张牌并摸等量的牌',
check:function(card){return 6-ai.get.value(card)},
check:function(card){return 6-get.value(card)},
content:function(){
player.storage.renjie--;
player.updateMarks();
@ -420,7 +420,7 @@ character.extra={
var num=0;
var cards=player.getCards('he');
for(var i=0;i<cards.length;i++){
if(ai.get.value(cards[i])<6){
if(get.value(cards[i])<6){
num++;
}
}
@ -501,7 +501,7 @@ character.extra={
if(target.hp<=1&&get.tag(card,'damage')){
if(player.hasSkillTag('jueqing')) return [1,-5];
if(!target.hasFriend()) return;
if(player.hp>2&&ai.get.attitude(player,target)<=0) return [0,2];
if(player.hp>2&&get.attitude(player,target)<=0) return [0,2];
return [1,0,0,-player.hp];
}
}
@ -525,10 +525,10 @@ character.extra={
check:function(event,player){
if(player.isTurnedOver()) return true;
var num=game.countPlayer(function(current){
if(current.countCards('he')&&current!=player&&ai.get.attitude(player,current)<=0){
if(current.countCards('he')&&current!=player&&get.attitude(player,current)<=0){
return true;
}
if(current.countCards('j')&&current!=player&&ai.get.attitude(player,current)>0){
if(current.countCards('j')&&current!=player&&get.attitude(player,current)>0){
return true;
}
});
@ -575,10 +575,10 @@ character.extra={
if(target.hp==1) return 0.8;
if(target.isTurnedOver()) return [0,3];
var num=game.countPlayer(function(current){
if(current.countCards('he')&&current!=player&&ai.get.attitude(player,current)<=0){
if(current.countCards('he')&&current!=player&&get.attitude(player,current)<=0){
return true;
}
if(current.countCards('j')&&current!=player&&ai.get.attitude(player,current)>0){
if(current.countCards('j')&&current!=player&&get.attitude(player,current)>0){
return true;
}
});
@ -608,7 +608,7 @@ character.extra={
game.addVideo('delay',null);
}
player.chooseCard('选择七张牌作为星',7,true).ai=function(card){
return ai.get.value(card);
return get.value(card);
};
"step 2"
player.lose(result.cards,ui.special)._triggered=null;
@ -663,9 +663,9 @@ character.extra={
"step 2"
player.chooseCardButton(player.storage.qixing,'选择'+event.num+'张牌作为手牌',event.num,true).ai=function(button){
if(player.skipList.contains('phaseUse')&&button.link!='du'){
return -ai.get.value(button.link);
return -get.value(button.link);
}
return ai.get.value(button.link);
return get.value(button.link);
}
if(player==game.me&&_status.auto){
game.delay(0.5);
@ -696,7 +696,7 @@ character.extra={
[1,Math.min(game.countPlayer(),player.storage.qixing.length)]).ai=function(target){
if(target.isMin()) return 0;
if(target.hasSkill('biantian2')) return 0;
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(att>=4){
if(target.hp==1&&target.maxHp>2) return att;
if(target.hp==2&&target.maxHp>3&&target.countCards('he')==0) return att*0.7;
@ -884,7 +884,7 @@ character.extra={
if(target.hasSkillTag('nofire')) return 0;
if(lib.config.mode=='versus') return -1;
if(player.hasUnknown()) return 0;
return ai.get.damageEffect(target,player);
return get.damageEffect(target,player);
}
}
}
@ -934,7 +934,7 @@ character.extra={
position:'he',
check:function(card,event){
if(_status.event.player.hp>1) return 0;
return 10-ai.get.value(card);
return 10-get.value(card);
},
selectCard:function(){
return Math.max(1,_status.event.player.hp);
@ -956,7 +956,7 @@ character.extra={
position:'he',
check:function(card,event){
if(_status.event.player.hp>1) return 0;
return 10-ai.get.value(card);
return 10-get.value(card);
},
selectCard:function(){
return Math.max(1,_status.event.player.hp);
@ -978,7 +978,7 @@ character.extra={
position:'he',
check:function(card,event){
if(_status.event.player.hp>1) return 0;
return 7-ai.get.value(card);
return 7-get.value(card);
},
selectCard:function(){
return Math.max(1,_status.event.player.hp);
@ -1000,7 +1000,7 @@ character.extra={
position:'he',
check:function(card,event){
if(_status.event.player.hp>1) return 0;
return 10-ai.get.value(card);
return 10-get.value(card);
},
selectCard:function(){
return Math.max(1,_status.event.player.hp);

View File

@ -42,7 +42,7 @@ character.gujian={
},
prompt:'将一张手牌或装备牌当酒使用',
check:function(card){
return 5-ai.get.value(card);
return 5-get.value(card);
},
ai:{
threaten:1.2
@ -51,7 +51,7 @@ character.gujian={
manwu:{
trigger:{global:'phaseEnd'},
check:function(event,player){
return ai.get.attitude(player,event.player)>0;
return get.attitude(player,event.player)>0;
},
filter:function(event,player){
return event.player.isFewestHandcard();
@ -181,7 +181,7 @@ character.gujian={
if(!player.storage.yunyin) return true;
return !player.storage.yunyin.contains(get.suit(card));
}).set('logSkill','yunyin').ai=function(card){
return 9-ai.get.value(card);
return 9-get.value(card);
}
'step 1'
if(!result.bool){
@ -204,8 +204,8 @@ character.gujian={
var taoyuan=0,nanman=0;
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
var eff1=ai.get.effect(players[i],{name:'taoyuan'},player,player);
var eff2=ai.get.effect(players[i],{name:'nanman'},player,player);
var eff1=get.effect(players[i],{name:'taoyuan'},player,player);
var eff2=get.effect(players[i],{name:'nanman'},player,player);
if(eff1>0){
taoyuan++;
}
@ -253,7 +253,7 @@ character.gujian={
var next=player.chooseTarget('选择'+get.translation(name)+'的目标');
next._get_card=card;
next.filterTarget=lib.filter.filterTarget;
next.ai=ai.get.effect;
next.ai=get.effect;
if(typeof info.selectTarget=='function'){
next.selectTarget=info.selectTarget;
}
@ -282,7 +282,7 @@ character.gujian={
},
forced:true,
check:function(event,player){
return ai.get.attitude(player,event.player)<0;
return get.attitude(player,event.player)<0;
},
content:function(){
'step 0'
@ -329,7 +329,7 @@ character.gujian={
player.chooseTarget('是否视为使用一张决斗?',function(card,player,target){
return lib.filter.targetEnabled({name:'juedou'},player,target);
}).set('ai',function(target){
return ai.get.effect(target,{name:'juedou'},_status.event.player);
return get.effect(target,{name:'juedou'},_status.event.player);
});
}
else{
@ -395,7 +395,7 @@ character.gujian={
player.chooseTarget(get.prompt('liuying'),function(card,player,target){
return event.list.contains(target);
}).ai=function(target){
return ai.get.effect(target,trigger.card,player,player);
return get.effect(target,trigger.card,player,player);
};
}
else{
@ -442,7 +442,7 @@ character.gujian={
selectCard:2,
position:'he',
check:function(card){
return ai.get.value(card);
return get.value(card);
},
content:function(){
var name=cards[0].name+'_'+cards[1].name;
@ -475,7 +475,7 @@ character.gujian={
var info=get.info(card);
var current=player.getEquip(info.subtype);
if(current&&card!=current){
value=ai.get.value(current,player);
value=get.value(current,player);
}
var equipValue=info.ai.equipValue||info.ai.basic.equipValue;
if(typeof equipValue=='function') return equipValue(card,player)-value;
@ -483,7 +483,7 @@ character.gujian={
},
result:{
target:function(player,target){
return ai.get.equipResult(player,target,name);
return get.equipResult(player,target,name);
}
}
}
@ -580,10 +580,10 @@ character.gujian={
"step 0"
var next=player.chooseToDiscard('he','魅影:是否弃置一张红色牌视为对'+get.translation(trigger.player)+'使用一张杀?');
next.logSkill=['meiying',trigger.player];
var eff=ai.get.effect(trigger.player,{name:'sha'},player,player);
var eff=get.effect(trigger.player,{name:'sha'},player,player);
next.ai=function(card){
if(eff>0){
return 7-ai.get.value(card);
return 7-get.value(card);
}
return 0;
}
@ -652,7 +652,7 @@ character.gujian={
"step 0"
var next=player.chooseToDiscard(get.prompt('xidie'),[1,Math.min(3,player.countCards('h')-player.hp)]);
next.ai=function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
}
next.logSkill='xidie';
"step 1"
@ -676,7 +676,7 @@ character.gujian={
meihu:{
trigger:{player:'damageEnd'},
check:function(event,player){
return ai.get.attitude(player,event.source)<4;
return get.attitude(player,event.source)<4;
},
filter:function(event,player){
return event.source&&event.source!=player&&event.source.countCards('h')>0;
@ -685,7 +685,7 @@ character.gujian={
content:function(){
"step 0"
trigger.source.chooseCard('交给'+get.translation(player)+'一张手牌',true).ai=function(card){
return -ai.get.value(card);
return -get.value(card);
};
"step 1"
if(result.bool){
@ -736,15 +736,15 @@ character.gujian={
content:function(){
"step 0"
var next=player.chooseToDiscard(get.prompt('fumo',trigger.source),2,function(card){
if(ai.get.damageEffect(trigger.source,player,player,'thunder')<=0) return 0;
if(get.damageEffect(trigger.source,player,player,'thunder')<=0) return 0;
if(ui.selected.cards.length){
return get.color(card)==get.color(ui.selected.cards[0]);
}
return player.countCards('h',{color:get.color(card)})>1;
}).set('complexCard',true);
next.ai=function(card){
if(ai.get.damageEffect(trigger.source,player,player,'thunder')>0){
return 8-ai.get.value(card);
if(get.damageEffect(trigger.source,player,player,'thunder')>0){
return 8-get.value(card);
}
return 0;
};
@ -772,7 +772,7 @@ character.gujian={
return target.isLowestHp();
}).ai=function(target){
var num=0;
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(att>0){
if(target.isLowestHp()){
num+=5;
@ -896,22 +896,22 @@ character.gujian={
next.logSkill=['qinglan',trigger.player];
next.ai=function(card){
if(trigger.num>1||!trigger.source){
if(ai.get.attitude(player,trigger.player)>0){
return 9-ai.get.value(card);
if(get.attitude(player,trigger.player)>0){
return 9-get.value(card);
}
return -1;
}
else if(ai.get.attitude(player,trigger.player)>0){
else if(get.attitude(player,trigger.player)>0){
if(trigger.player.hp==1){
return 8-ai.get.value(card);
return 8-get.value(card);
}
if(trigger.source.hp==trigger.source.maxHp){
return 6-ai.get.value(card);
return 6-get.value(card);
}
}
else if(ai.get.attitude(player,trigger.source)>0&&
else if(get.attitude(player,trigger.source)>0&&
trigger.source.hp<trigger.source.maxHp&&trigger.num<=1&&trigger.player.hp>1){
if(get.color(card)=='red') return 5-ai.get.value(card);
if(get.color(card)=='red') return 5-get.value(card);
}
return -1;
}
@ -970,10 +970,10 @@ character.gujian={
return get.color(card)=='red'&&lib.filter.cardDiscardable(card,player);
},
ai1:function(card){
return 9-ai.get.value(card);
return 9-get.value(card);
},
ai2:function(target){
return ai.get.damageEffect(target,player,player,'fire');
return get.damageEffect(target,player,player,'fire');
},
prompt:get.prompt('xuelu')
});
@ -1103,12 +1103,12 @@ character.gujian={
check:function(card){
var player=_status.currentPhase;
if(player.countCards('he',{subtype:get.subtype(card)})>1){
return 11-ai.get.equipValue(card);
return 11-get.equipValue(card);
}
if(player.countCards('h')<player.hp){
return 6-ai.get.value(card);
return 6-get.value(card);
}
return 2-ai.get.equipValue(card);
return 2-get.equipValue(card);
},
ai:{
order:9,
@ -1133,7 +1133,7 @@ character.gujian={
ai:{
result:{
target:function(player,target){
return ai.get.effect(target,{name:'sha'},player,target);
return get.effect(target,{name:'sha'},player,target);
},
},
order:4,
@ -1159,13 +1159,13 @@ character.gujian={
});
var num=0;
for(var i=0;i<event.targets.length;i++){
num+=ai.get.effect(event.targets[i],{name:'sha'},player,player);
num+=get.effect(event.targets[i],{name:'sha'},player,player);
}
var next=player.chooseToDiscard(get.prompt('qianjun',event.targets),'he');
next.logSkill=['qianjun',event.targets];
next.ai=function(card){
if(num<=0) return -1;
return 7-ai.get.value(card);
return 7-get.value(card);
}
"step 1"
if(result.bool){
@ -1195,7 +1195,7 @@ character.gujian={
return get.type(card)=='basic';
},
check:function(card){
return 7-ai.get.useful(card);
return 7-get.useful(card);
},
content:function(){
player.storage.xuanning=3;
@ -1250,7 +1250,7 @@ character.gujian={
player.chooseTarget(function(card,player,target){
return player!=target;
},get.prompt('liuguang'),[1,3]).ai=function(target){
return ai.get.damageEffect(target,player,player);
return get.damageEffect(target,player,player);
}
"step 1"
if(result.bool){
@ -1271,9 +1271,9 @@ character.gujian={
var target=event.targets.shift();
var next=target.chooseToDiscard('流光:弃置一张牌或受到一点伤害','he');
next.ai=function(card){
if(ai.get.damageEffect(_status.event.player,player,_status.event.player)>=0) return -1;
if(_status.event.player.hp==1) return 9-ai.get.value(card);
return 8-ai.get.value(card);
if(get.damageEffect(_status.event.player,player,_status.event.player)>=0) return -1;
if(_status.event.player.hp==1) return 9-get.value(card);
return 8-get.value(card);
};
next.autochoose=function(){
return this.player.countCards('he')==0;
@ -1311,7 +1311,7 @@ character.gujian={
game.addVideo('storage',player,['yangming2',player.storage.yangming2]);
},
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
ai:{
result:{
@ -1417,8 +1417,8 @@ character.gujian={
player:function(player,target){
if(player.hp>1) return false;
if(target.hp>2) return false;
if(ai.get.attitude(player,target)>=0) return false;
return ai.get.damageEffect(target,player,player,'fire');
if(get.attitude(player,target)>=0) return false;
return get.damageEffect(target,player,player,'fire');
}
}
}

View File

@ -58,7 +58,7 @@ character.gwent={
}
else{
game.countPlayer(function(current){
var att=ai.get.attitude(player,current);
var att=get.attitude(player,current);
if(att>0){
num1++;
}
@ -121,7 +121,7 @@ character.gwent={
filterTarget:function(card,player,target){
return target.isHighestHp();
},
check:function(card){return 7-ai.get.value(card);},
check:function(card){return 7-get.value(card);},
position:'he',
filterCard:true,
content:function(){
@ -130,7 +130,7 @@ character.gwent={
ai:{
result:{
target:function(player,target){
return ai.get.damageEffect(target,player);
return get.damageEffect(target,player);
},
},
order:7
@ -173,7 +173,7 @@ character.gwent={
result:{
target:function(player,target){
if(player.getEquip('tengjia')||player.getEquip('bagua')) return -1;
if(ai.get.effect(player,{name:'sha'},target,player)>=0) return -1;
if(get.effect(player,{name:'sha'},target,player)>=0) return -1;
if(!player.hasShan()){
if(ui.selected.targets.length) return 0;
if(player.hp>=4) return -1;
@ -198,7 +198,7 @@ character.gwent={
position:'he',
filterCard:true,
check:function(card){
return 7-ai.get.value(card)
return 7-get.value(card)
},
content:function(){
'step 0'
@ -232,19 +232,19 @@ character.gwent={
selectCard:[1,3],
check:function(card){
if(!ui.selected.cards.length){
return 6-ai.get.value(card)
return 6-get.value(card)
}
var player=_status.event.player;
if(player.isDamaged()){
var hs=player.getCards('h');
var num=0;
for(var i=0;i<hs.length;i++){
if(ai.get.value(hs[i])<6){
if(get.value(hs[i])<6){
num++;
}
}
if(num>=3){
return 6-ai.get.value(card);
return 6-get.value(card);
}
}
return 0;
@ -283,14 +283,14 @@ character.gwent={
},
content:function(){
'step 0'
var bool=(ai.get.effect(trigger.player,{name:'sha'},player,player)>0&&
Math.abs(ai.get.attitude(player,trigger.player))>1&&
var bool=(get.effect(trigger.player,{name:'sha'},player,player)>0&&
Math.abs(get.attitude(player,trigger.player))>1&&
game.hasPlayer(function(current){
return ai.get.attitude(current,player)>0&&current.hasSha();
return get.attitude(current,player)>0&&current.hasSha();
}));
var next=player.chooseToDiscard(get.prompt('gwzhanjiang',trigger.player),'he');
next.ai=function(card){
if(bool) return 7-ai.get.value(card);
if(bool) return 7-get.value(card);
return 0;
};
next.logSkill=['gwzhanjiang',trigger.player];
@ -352,7 +352,7 @@ character.gwent={
return event.target.isAlive();
},
check:function(event,player){
return ai.get.effect(event.target,{name:'sha'},player,player)>0
return get.effect(event.target,{name:'sha'},player,player)>0
},
logTarget:'target',
logLine:false,
@ -381,7 +381,7 @@ character.gwent={
player.chooseTarget(get.prompt('fengjian'),function(card,player,target){
return player.canUse('sha',target,false)&&!trigger.targets.contains(target);
}).ai=function(target){
return ai.get.effect(target,{name:'sha',nature:'thunder'},player,player);
return get.effect(target,{name:'sha',nature:'thunder'},player,player);
}
"step 1"
if(result.bool){
@ -418,7 +418,7 @@ character.gwent={
player.chooseTarget(get.prompt('huandie'),[0,game.countPlayer()],function(card,player,target){
return target!=player;
}).ai=function(target){
return ai.get.attitude(player,target);
return get.attitude(player,target);
}
'step 1'
if(result.bool){
@ -546,10 +546,10 @@ character.gwent={
content:function(){
'step 0'
var target=trigger.target;
var bool=ai.get.attitude(player,target)<0;
var bool=get.attitude(player,target)<0;
var next=player.chooseToDiscard('he',get.prompt('fayin',target));
next.ai=function(card){
if(bool) return 7-ai.get.value(card);
if(bool) return 7-get.value(card);
return 0;
};
next.logSkill=['fayin',target];
@ -583,11 +583,11 @@ character.gwent={
target.$giveAuto(hs,player);
event.hs=hs;
'step 1'
var damage=(target.hp>=player.hp&&ai.get.damageEffect(target,player,player)>0);
var damage=(target.hp>=player.hp&&get.damageEffect(target,player,player)>0);
var hs=event.hs;
if(damage&&target.hp>1){
for(var i=0;i<hs.length;i++){
if(ai.get.value(hs[i],player,'raw')>=8){
if(get.value(hs[i],player,'raw')>=8){
damage=false;break;
}
}
@ -597,7 +597,7 @@ character.gwent={
return hs.contains(card)?1:0;
}
else{
return -ai.get.value(card,player,'raw');
return -get.value(card,player,'raw');
}
}
if(!event.isMine()) game.delay();
@ -649,7 +649,7 @@ character.gwent={
target:function(player,target){
var dh=Math.min(3,player.hp)-target.countCards('h');
if(dh<0){
dh+=get.sgn(ai.get.effect(target,{name:'sha'},player,target));
dh+=get.sgn(get.effect(target,{name:'sha'},player,target));
}
return dh;
}
@ -664,7 +664,7 @@ character.gwent={
player.chooseTarget(get.prompt('hunmo'),[1,game.countPlayer()],function(card,player,target){
return target.countCards('h')!=Math.min(3,target.hp);
}).ai=function(target){
return ai.get.attitude(player,target)*(Math.min(3,target.hp)-target.countCards('h'));
return get.attitude(player,target)*(Math.min(3,target.hp)-target.countCards('h'));
}
'step 1'
if(result.bool){
@ -776,7 +776,7 @@ character.gwent={
return false;
},
check:function(button){
return ai.get.value(button.link);
return get.value(button.link);
},
backup:function(links,player){
return {

View File

@ -192,14 +192,14 @@ character.hearth={
if(target.identity=='zhu'||get.is.jun(target)) return false;
return true;
}).ai=function(target){
var att=-ai.get.attitude(player,target);
var att=-get.attitude(player,target);
if(att<=0) return 0;
if(target.needsToDiscard()) att+=3;
else if(target.needsToDiscard(1)) att++;
else if(target.countCards()<=3){
return 0;
}
return att+target.countCards('h')+ai.get.threaten(target);
return att+target.countCards('h')+get.threaten(target);
};
'step 1'
if(result.bool){
@ -241,7 +241,7 @@ character.hearth={
},
init:function(player){
player.ai.modAttitudeFrom=function(from,to){
return ai.get.attitude(player.storage.mengye2,to);
return get.attitude(player.storage.mengye2,to);
}
player.ai.modAttitudeTo=function(from,to,att){
if(from!=to) return 0;
@ -302,7 +302,7 @@ character.hearth={
var nh=target.countCards('h');
return nh&&nh>=player.countCards('h');
}).ai=function(target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(target.hasSkillTag('noe')){
att/=3;
}
@ -336,7 +336,7 @@ character.hearth={
'step 0'
target.gain(cards,player);
var choice=1;
if(ai.get.attitude(target,player)>0||(target.hp<=1&&!target.hasSha())){
if(get.attitude(target,player)>0||(target.hp<=1&&!target.hasSha())){
choice=0;
}
target.chooseControl(function(){
@ -359,8 +359,8 @@ character.hearth={
expos:0.2,
result:{
player:function(player,target){
if(ai.get.attitude(target,player)>0) return 1;
if(ai.get.effect(target,{name:'juedou'},player,player)>0) return 1.5;
if(get.attitude(target,player)>0) return 1;
if(get.effect(target,{name:'juedou'},player,player)>0) return 1.5;
return 0;
}
}
@ -473,8 +473,8 @@ character.hearth={
event.target=event.targets.shift();
if(event.target.countCards('he',{color:'black'})){
event.target.chooseCard('he','交给'+get.translation(player)+'一张黑色牌,或失去一点体力',{color:'black'}).ai=function(card){
if(ai.get.attitude(event.target,player)>0) return 10-ai.get.value(card);
return 7-ai.get.value(card);
if(get.attitude(event.target,player)>0) return 10-get.value(card);
return 7-get.value(card);
}
}
else{
@ -512,7 +512,7 @@ character.hearth={
player.chooseTarget(get.prompt('gfuhun'),function(card,player,target){
return target!=player&&target.countCards('h')>0;
}).ai=function(target){
return -ai.get.attitude(player,target);
return -get.attitude(player,target);
}
'step 1'
if(result.bool){
@ -605,8 +605,8 @@ character.hearth={
var next=player.chooseToDiscard(get.prompt('zhongji',trigger.player),{color:'black'});
next.logSkill=['zhongji',trigger.player];
next.ai=function(card){
if(ai.get.attitude(player,trigger.player)<0){
return 7-ai.get.value(card);
if(get.attitude(player,trigger.player)<0){
return 7-get.value(card);
}
return -1;
}
@ -645,13 +645,13 @@ character.hearth={
player.chooseTarget(get.prompt('jinzhou'),function(card,player,target){
return target!=player&&!target.hasSkill('fengyin');
}).ai=function(target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(att>=0) return 0;
var skills=target.getSkills();
for(var i=0;i<skills.length;i++){
if(!get.is.locked(skills[i])){
if(target.hasSkillTag('maixie')) return 2;
return ai.get.threaten(target);
return get.threaten(target);
}
}
return 0;
@ -675,7 +675,7 @@ character.hearth={
},
filterCard:{type:['trick','delay']},
check:function(card){
return 10-ai.get.value(card);
return 10-get.value(card);
},
content:function(){
var list=get.inpile('trick','trick');
@ -708,7 +708,7 @@ character.hearth={
player.chooseTarget(get.prompt('xingluo'),[1,num],function(card,player,target){
return target.countCards('h')>nh;
}).ai=function(target){
return 0.5-ai.get.attitude(player,target);
return 0.5-get.attitude(player,target);
}
'step 1'
if(result.bool){
@ -735,7 +735,7 @@ character.hearth={
'step 4'
if(event.cards.length){
player.chooseCardButton('选择一张加入手牌',event.cards).ai=function(button){
return ai.get.value(button.link);
return get.value(button.link);
};
}
else{
@ -759,7 +759,7 @@ character.hearth={
filterCard:{color:'black'},
position:'he',
check:function(card){
return 11-ai.get.value(card);
return 11-get.value(card);
},
filterTarget:function(card,player,target){
return target==_status.event.dying;
@ -786,7 +786,7 @@ character.hearth={
filterCard:true,
position:'he',
check:function(card){
return 5-ai.get.value(card);
return 5-get.value(card);
},
filter:function(event,player){
if(player.hasSkill('yushou_misha')&&player.hasSkill('yushou_huofu')&&player.hasSkill('yushou_leiouke')) return false;
@ -871,7 +871,7 @@ character.hearth={
if(!player.countCards('he',{color:'black'})) return false;
},
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
ai:{
basic:{
@ -986,7 +986,7 @@ character.hearth={
if(!player.countCards('he',{suit:'spade'})) return false;
},
prompt:'将一张黑桃手牌当作无中生有使用',
check:function(card){return 7-ai.get.value(card)},
check:function(card){return 7-get.value(card)},
ai:{
threaten:1.4,
order:9,
@ -995,7 +995,7 @@ character.hearth={
bzhuiji:{
trigger:{global:'dieAfter'},
check:function(event,player){
return ai.get.attitude(player,event.source)<=0;
return get.attitude(player,event.source)<=0;
},
filter:function(event,player){
return event.source&&event.source.isAlive()&&event.source!=player;
@ -1014,7 +1014,7 @@ character.hearth={
usable:2,
filterCard:true,
check:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
content:function(){
'step 0'
@ -1044,7 +1044,7 @@ character.hearth={
return get.type(card)!='hsyaoshui';
},
check:function(card){
return 8-ai.get.value(card)
return 8-get.value(card)
},
discard:false,
lose:false,
@ -1173,7 +1173,7 @@ character.hearth={
for(var i=0;i<names.length;i++){
var info2=lib.card[names[i]];
if(get.select(info2.selectTarget)[0]==-1&&!info2.modTarget) continue;
var eff=ai.get.effect(target,{name:names[i]},player,target);
var eff=get.effect(target,{name:names[i]},player,target);
if(eff>0){
num++;
}
@ -1241,10 +1241,10 @@ character.hearth={
},
position:'he',
ai1:function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
},
ai2:function(target){
return ai.get.effect(target,{name:'sha'},player,player);
return get.effect(target,{name:'sha'},player,player);
}
});
'step 1'
@ -1268,7 +1268,7 @@ character.hearth={
guimou:{
trigger:{player:'damageEnd'},
check:function(event,player){
return ai.get.attitude(player,event.source)<=0;
return get.attitude(player,event.source)<=0;
},
filter:function(event,player){
return event.source&&event.source.isAlive()&&event.source!=player&&event.source.countCards('h')>0;
@ -1310,10 +1310,10 @@ character.hearth={
}
return true;
}).ai=function(target){
if(player==target&&ai.get.attitude(player,target)>0&&event.parent.triggername=='phaseBegin'){
return ai.get.attitude(player,target)+10;
if(player==target&&get.attitude(player,target)>0&&event.parent.triggername=='phaseBegin'){
return get.attitude(player,target)+10;
}
return ai.get.attitude(player,target);
return get.attitude(player,target);
}
'step 1'
if(result.bool){
@ -1339,7 +1339,7 @@ character.hearth={
position:'he',
filterTarget:true,
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
content:function(){
'step 0'
@ -1593,7 +1593,7 @@ character.hearth={
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].hp<players[i].maxHp){
if(ai.get.attitude(player,players[i])>0){
if(get.attitude(player,players[i])>0){
if(players[i].hp<2){
lose--;
recover+=0.5;
@ -1601,7 +1601,7 @@ character.hearth={
lose--;
recover++;
}
else if(ai.get.attitude(player,players[i])<0){
else if(get.attitude(player,players[i])<0){
if(players[i].hp<2){
lose++;
recover-=0.5;
@ -1611,10 +1611,10 @@ character.hearth={
}
}
else{
if(ai.get.attitude(player,players[i])>0){
if(get.attitude(player,players[i])>0){
lose--;
}
else if(ai.get.attitude(player,players[i])<0){
else if(get.attitude(player,players[i])<0){
lose++;
}
}
@ -1684,7 +1684,7 @@ character.hearth={
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].hp<players[i].maxHp){
if(ai.get.attitude(player,players[i])>0){
if(get.attitude(player,players[i])>0){
if(players[i].hp<2){
lose--;
recover+=0.5;
@ -1692,7 +1692,7 @@ character.hearth={
lose--;
recover++;
}
else if(ai.get.attitude(player,players[i])<0){
else if(get.attitude(player,players[i])<0){
if(players[i].hp<2){
lose++;
recover-=0.5;
@ -1702,10 +1702,10 @@ character.hearth={
}
}
else{
if(ai.get.attitude(player,players[i])>0){
if(get.attitude(player,players[i])>0){
lose--;
}
else if(ai.get.attitude(player,players[i])<0){
else if(get.attitude(player,players[i])<0){
lose++;
}
}
@ -1729,7 +1729,7 @@ character.hearth={
popname:true,
viewAs:{name:links[0][2]},
ai1:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
onuse:function(result,player){
player.storage.nuyan.add(result.card.name);
@ -1990,7 +1990,7 @@ character.hearth={
selectTarget:-1,
selectCard:[1,3],
check:function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
},
filterCard:{color:'black'},
line:'thunder',
@ -2002,7 +2002,7 @@ character.hearth={
threaten:0.7,
result:{
target:function(player,target){
return ai.get.damageEffect(target,player,target,'thunder');
return get.damageEffect(target,player,target,'thunder');
}
}
},
@ -2055,8 +2055,8 @@ character.hearth={
});
if(event.target){
player.chooseToDiscard([1,2],'献祭是否弃置1~2张手牌并令'+get.translation(event.target)+'摸等量的牌?').set('ai',function(card){
if(ai.get.attitude(_status.event.player,_status.event.getParent().target)>1){
return 6-ai.get.value(card);
if(get.attitude(_status.event.player,_status.event.getParent().target)>1){
return 6-get.value(card);
}
return 0;
}).set('logSkill',['xianji',event.target]);
@ -2118,7 +2118,7 @@ character.hearth={
return event.card&&event.card.name=='sha'&&event.player.isAlive();
},
check:function(event,player){
if(ai.get.attitude(player,event.player)>=0) return false;
if(get.attitude(player,event.player)>=0) return false;
if(player.hp>2) return true;
if(player.hp<2) return false;
return player.hp>=event.player.hp;
@ -2354,9 +2354,9 @@ character.hearth={
position:'he',
check:function(card){
if(_status.event.player.hp==1){
return 7-ai.get.value(card);
return 7-get.value(card);
}
return 6-ai.get.value(card);
return 6-get.value(card);
},
selectCard:3,
filter:function(event,player){
@ -2406,7 +2406,7 @@ character.hearth={
complexCard:true,
position:'he',
check:function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
},
selectCard:[1,Infinity],
content:function(){
@ -2416,14 +2416,14 @@ character.hearth={
var list=game.findCards(function(name){
if(cards[i].name==name) return;
if(get.type({name:name},'trick')==type){
return ai.get.value({name:name})>ai.get.value(cards[i]);
return get.value({name:name})>get.value(cards[i]);
}
});
if(!list.length){
list=game.findCards(function(name){
if(cards[i].name==name) return;
if(get.type({name:name},'trick')==type){
return ai.get.value({name:name})==ai.get.value(cards[i]);
return get.value({name:name})==get.value(cards[i]);
}
});
}
@ -2450,7 +2450,7 @@ character.hearth={
selectCard:[1,Infinity],
check:function(card){
if(ui.selected.cards.length) return 0;
return 6-ai.get.value(card)
return 6-get.value(card)
},
content:function(){
'step 0'
@ -2479,7 +2479,7 @@ character.hearth={
priority:1,
// filterCard:true,
// check:function(card){
// return 6-ai.get.value(card);
// return 6-get.value(card);
// },
// position:'he',
content:function(){
@ -2529,7 +2529,7 @@ character.hearth={
player.chooseToDiscard('是否弃置一张点数为'+player.storage.xunbao2.number+'的牌获得藏宝图?','he',function(card){
return card.number==player.storage.xunbao2.number;
}).ai=function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
};
'step 1'
if(result.bool){
@ -2612,7 +2612,7 @@ character.hearth={
player.chooseTarget(get.prompt('fbeifa'),function(card,player,target){
return lib.filter.targetEnabled({name:'sha'},player,target);
}).ai=function(target){
return ai.get.effect(target,{name:'sha'},player);
return get.effect(target,{name:'sha'},player);
}
"step 1"
if(result.bool){
@ -2657,7 +2657,7 @@ character.hearth={
player.chooseTarget(get.prompt('yufa'),function(card,player,target){
return target!=trigger.player;
}).ai=function(target){
return ai.get.attitude(player,target);
return get.attitude(player,target);
};
'step 1'
if(result.bool){
@ -2714,7 +2714,7 @@ character.hearth={
position:'he',
log:'notarget',
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
multitarget:true,
content:function(){
@ -2731,9 +2731,9 @@ character.hearth={
target:function(player,target){
var card=ui.selected.cards[0];
if(card&&get.color(card)=='black'){
return ai.get.effect(target,{name:'jingleishan'},player,target);
return get.effect(target,{name:'jingleishan'},player,target);
}
return ai.get.effect(target,{name:'chiyuxi'},player,target);
return get.effect(target,{name:'chiyuxi'},player,target);
}
}
}
@ -2799,7 +2799,7 @@ character.hearth={
content:function(){
'step 0'
player.chooseControl('draw_card','出杀','cancel2',function(){
if(ai.get.effect(trigger.target,{name:'sha'},player,player)>0){
if(get.effect(trigger.target,{name:'sha'},player,player)>0){
return '出杀';
}
return 'draw_card';
@ -2941,7 +2941,7 @@ character.hearth={
player.chooseTarget(get.prompt('duzhang'),function(card,player,target){
return target!=player;
}).ai=function(target){
return -ai.get.attitude(player,target)*Math.sqrt(target.countCards('h'));
return -get.attitude(player,target)*Math.sqrt(target.countCards('h'));
}
'step 1'
if(result.bool){
@ -3188,7 +3188,7 @@ character.hearth={
trigger:{global:'phaseEnd'},
forced:true,
check:function(event,player){
return ai.get.attitude(player,event.player)<0;
return get.attitude(player,event.player)<0;
},
filter:function(event,player){
return typeof event.player.storage.shixu=='number'&&
@ -3279,7 +3279,7 @@ character.hearth={
"step 0"
var effect=0;
for(var i=0;i<trigger.targets.length;i++){
effect+=ai.get.effect(trigger.targets[i],trigger.card,trigger.player,player);
effect+=get.effect(trigger.targets[i],trigger.card,trigger.player,player);
}
var str='蔽日:是否弃置一张闪令'+get.translation(trigger.player);
if(trigger.targets&&trigger.targets.length){
@ -3294,7 +3294,7 @@ character.hearth={
},str);
next.ai=function(card){
if(effect<0){
return 9-ai.get.value(card);
return 9-get.value(card);
}
return -1;
}
@ -3390,7 +3390,7 @@ character.hearth={
expose:0.2,
result:{
target:function(player,target){
if(ai.get.attitude(player,target)<-3&&player.identity!='zhu'){
if(get.attitude(player,target)<-3&&player.identity!='zhu'){
return -1;
}
return 0;
@ -3426,7 +3426,7 @@ character.hearth={
if(event.card.name=='sha'&&!event.card.nature) return true;
},
check:function(event,player){
var att=ai.get.attitude(player,event.target);
var att=get.attitude(player,event.target);
if(event.target.hasSkillTag('nofire')){
return att>0;
}
@ -3493,7 +3493,7 @@ character.hearth={
content:function(){
'step 0'
player.chooseTarget(get.prompt('jiaohui')).ai=function(target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(att>1){
if(target.hp<=1) att+=2;
if(target.hp<=2) att++;
@ -3590,7 +3590,7 @@ character.hearth={
var dialog=ui.create.dialog('选择一张锦囊牌加入你的手牌',[list,'vcard'],'hidden');
player.chooseButton(dialog,true).ai=function(button){
var card={name:button.link[2]};
var value=ai.get.value(card);
var value=get.value(card);
if(get.tag(card,'damage')) value++;
return value;
};
@ -3609,7 +3609,7 @@ character.hearth={
content:function(){
"step 0"
player.chooseTarget(get.prompt('lingzhou')).ai=function(target){
var num=ai.get.attitude(player,target);
var num=get.attitude(player,target);
if(num>0){
if(target==player){
num++;
@ -3664,7 +3664,7 @@ character.hearth={
player.chooseTarget(get.prompt('xmojian'),function(card,player,target){
return lib.filter.targetEnabled({name:'sha'},player,target);
}).ai=function(target){
return ai.get.effect(target,{name:'sha'},player);
return get.effect(target,{name:'sha'},player);
}
"step 1"
if(result.bool){
@ -3723,7 +3723,7 @@ character.hearth={
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i]==player) continue;
var att=ai.get.attitude(player,players[i]);
var att=get.attitude(player,players[i]);
var dh=player.countCards('h')-players[i].countCards('h');
if(att*dh>num){
if(att>0){
@ -3740,7 +3740,7 @@ character.hearth={
},
result:{
player:function(player,target){
return (player.countCards('h')-target.countCards('h'))*ai.get.attitude(player,target);
return (player.countCards('h')-target.countCards('h'))*get.attitude(player,target);
}
},
expose:0.2
@ -4055,7 +4055,7 @@ character.hearth={
return target!=player&&Math.abs(target.countCards('h')-nh)<=nm;
}).ai=function(target){
if(!check) return 0;
if(ai.get.attitude(player,target)<0){
if(get.attitude(player,target)<0){
return target.countCards('h')-nh;
}
return 0;
@ -4098,9 +4098,9 @@ character.hearth={
},
check:function(event,player){
if(event.player.isTurnedOver()){
return ai.get.attitude(player,event.player)>0;
return get.attitude(player,event.player)>0;
}
return ai.get.attitude(player,event.player)<=0;
return get.attitude(player,event.player)<=0;
},
logTarget:'player',
content:function(){
@ -4133,7 +4133,7 @@ character.hearth={
return get.type(card)!='basic';
},
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
content:function(){
var card=cards[0];
@ -4158,7 +4158,7 @@ character.hearth={
},
logTarget:'player',
check:function(event,player){
return ai.get.attitude(player,event.player)>0;
return get.attitude(player,event.player)>0;
},
content:function(){
trigger.player.recover();
@ -4256,7 +4256,7 @@ character.hearth={
order:9,
result:{
target:function(player,target){
var eff=ai.get.damageEffect(target,player,target)+0.5;
var eff=get.damageEffect(target,player,target)+0.5;
if(eff>0&&eff<=0.5) return 0;
return eff;
}
@ -4275,7 +4275,7 @@ character.hearth={
'step 1'
player.addTempSkill('fengxing2','phaseAfter');
player.chooseToDiscard('he',get.prompt('fengxing')).set('ai',function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
}).logSkill='fengxing';
'step 2'
if(result.bool){
@ -4354,7 +4354,7 @@ character.hearth={
return player.countCards('he',{subtype:'equip2'})>0;
},
check:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
content:function(){
player.changeHujia();
@ -4384,7 +4384,7 @@ character.hearth={
player.chooseTarget(get.prompt('shijie'),function(card,player,target){
return player!=target&&target.countCards('h')>0;
}).ai=function(target){
return 11-ai.get.attitude(player,target);
return 11-get.attitude(player,target);
};
'step 1'
if(result.bool){
@ -4410,7 +4410,7 @@ character.hearth={
position:'he',
usable:1,
check:function(card){
return 9-ai.get.value(card)
return 9-get.value(card)
},
filterTarget:function(card,player,target){
if(player.storage.anying) return true;
@ -4452,7 +4452,7 @@ character.hearth={
content:'已进入暗影形态'
},
check:function(card){
return 9-ai.get.value(card)
return 9-get.value(card)
},
filterTarget:true,
content:function(){
@ -4479,7 +4479,7 @@ character.hearth={
filterCard:{color:'black'},
position:'he',
check:function(card){
return 5-ai.get.value(card);
return 5-get.value(card);
},
content:function(){
player.storage.anying=true;
@ -4493,7 +4493,7 @@ character.hearth={
player:function(player){
if(player.hasUnknown()) return 0;
return !game.hasPlayer(function(current){
return ai.get.attitude(player,current)>0&&current.isDamaged()&&current.hp<=2;
return get.attitude(player,current)>0&&current.isDamaged()&&current.hp<=2;
});
}
}
@ -4522,8 +4522,8 @@ character.hearth={
direct:true,
content:function(){
'step 0'
var eff=ai.get.effect(trigger.targets[0],trigger.card,trigger.player,player);
var att=ai.get.attitude(player,trigger.player);
var eff=get.effect(trigger.targets[0],trigger.card,trigger.player,player);
var att=get.attitude(player,trigger.player);
player.chooseCard(get.prompt('bianxing'),function(card){
if(card.name!=trigger.card.name){
if(get.type(card)=='basic'&&get.info(card).enable){
@ -4537,7 +4537,7 @@ character.hearth={
if(trigger.targets[0].hp==trigger.targets[0].maxHp) return 0;
}
if(eff>=0) return 0;
return ai.get.effect(trigger.targets[0],card,trigger.player,player);
return get.effect(trigger.targets[0],card,trigger.player,player);
};
'step 1'
if(result.bool){
@ -4575,7 +4575,7 @@ character.hearth={
},
filterCard:true,
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
discard:false,
prepare:function(cards,player){
@ -4702,7 +4702,7 @@ character.hearth={
},
check:function(card){
if(get.suit(card)=='spade'&&card.number>=2&&card.number<=9){
return 6-ai.get.value(card);
return 6-get.value(card);
}
return -1;
},
@ -4757,7 +4757,7 @@ character.hearth={
trigger:{player:'damageEnd',source:'damageEnd'},
check:function(event,player){
var target=(player==event.player)?event.source:event.player;
return ai.get.attitude(player,target)<0;
return get.attitude(player,target)<0;
},
filter:function(event,player){
var target=(player==event.player)?event.source:event.player;
@ -4800,7 +4800,7 @@ character.hearth={
else str=get.translation(trigger.parent.name);
var cards=[ui.cardPile.childNodes[0],ui.cardPile.childNodes[1]];
var att=ai.get.attitude(player,trigger.player);
var att=get.attitude(player,trigger.player);
var delta=trigger.judge(ui.cardPile.childNodes[1])-trigger.judge(ui.cardPile.childNodes[0]);
player.chooseControl('调换顺序','cancel2',
ui.create.dialog('先知:'+get.translation(trigger.player)+'的'+str+'判定',cards,'hidden')).ai=function(){
@ -4844,7 +4844,7 @@ character.hearth={
}
return true;
}).ai=function(target){
return 1-ai.get.attitude(player,target);
return 1-get.attitude(player,target);
};
"step 1"
if(result.bool){
@ -4913,16 +4913,16 @@ character.hearth={
direct:true,
content:function(){
"step 0"
var val=ai.get.value(trigger.card);
var val=get.value(trigger.card);
var suit=get.suit(trigger.card);
var eff=ai.get.effect(trigger.target,trigger.card,trigger.player,player);
var eff=get.effect(trigger.target,trigger.card,trigger.player,player);
var next=player.chooseToDiscard('是否对'+get.translation(trigger.player)+'使用的'+get.translation(trigger.card)+'发动【闷棍】?',function(card){
return get.suit(card)==suit;
});
next.logSkill=['mengun',trigger.player];
next.ai=function(card){
if(eff>=0) return 0;
return Math.min(8,1+val)-ai.get.value(card);
return Math.min(8,1+val)-get.value(card);
}
"step 1"
if(result.bool){
@ -4981,7 +4981,7 @@ character.hearth={
order:9,
result:{
target:function(player,target){
return ai.get.damageEffect(target,player,target);
return get.damageEffect(target,player,target);
}
}
}
@ -4996,7 +4996,7 @@ character.hearth={
content:function(){
"step 0"
var next=player.chooseToDiscard(get.prompt('jihuo'));
next.ai=ai.get.unuseful2;
next.ai=get.unuseful2;
next.logSkill='jihuo';
"step 1"
if(result.bool){
@ -5024,8 +5024,8 @@ character.hearth={
content:function(){
"step 0";
player.chooseTarget(get.prompt('tzhenji')).ai=function(target){
var bool=ai.get.attitude(player,target)>0;
return ai.get.damageEffect(target,player,player,'thunder')-(bool?1:0);
var bool=get.attitude(player,target)>0;
return get.damageEffect(target,player,player,'thunder')-(bool?1:0);
};
"step 1"
if(result.bool){
@ -5062,7 +5062,7 @@ character.hearth={
content:function(){
"step 0";
player.chooseTarget(get.prompt('tzhenji_old')).ai=function(target){
return ai.get.damageEffect(target,player,player,'thunder')-1;
return get.damageEffect(target,player,player,'thunder')-1;
};
"step 1"
if(result.bool){
@ -5096,7 +5096,7 @@ character.hearth={
target:function(card,player,target){
if(get.tag(card,'respondShan')){
var hastarget=game.hasPlayer(function(current){
return ai.get.attitude(player,current)<0;
return get.attitude(player,current)<0;
});
var ns=target.countCards('h','shan');
var nh=target.countCards('h');
@ -5465,7 +5465,7 @@ character.hearth={
player.chooseTarget('活力图腾:令一名其他角色回复一点体力',function(card,player,target){
return target!=player&&target.hp<target.maxHp;
}).ai=function(target){
return ai.get.recoverEffect(target,player,player);
return get.recoverEffect(target,player,player);
};
'step 1'
if(result.bool){
@ -6077,7 +6077,7 @@ character.hearth={
useful:[7,4],
result:{
target:function(player,target){
return ai.get.recoverEffect(target,player,target);
return get.recoverEffect(target,player,target);
}
}
}

View File

@ -35,7 +35,7 @@ character.jiange={
player.chooseTarget(get.prompt('konghun'),function(card,player,target){
return player!=target;
},[1,Math.min(4,Math.floor((game.players.length-1)/2))]).ai=function(target){
return ai.get.damageEffect(target,player,player,'thunder')+1;
return get.damageEffect(target,player,player,'thunder')+1;
}
"step 1"
if(result.bool){
@ -92,8 +92,8 @@ character.jiange={
"step 0"
var next=player.chooseToDiscard('he','是否弃置一张牌令'+get.translation(trigger.player)+'的摸牌数-1');
next.ai=function(card){
if(ai.get.attitude(player,trigger.player)<0){
return 6-ai.get.value(card);
if(get.attitude(player,trigger.player)<0){
return 6-get.value(card);
}
return 0;
}
@ -119,7 +119,7 @@ character.jiange={
player.chooseTarget(get.prompt('huodi'),function(card,player,target){
return target.countCards('he')&&player!=target;
}).ai=function(target){
return -ai.get.attitude(player,target);
return -get.attitude(player,target);
}
"step 1"
if(result.bool){
@ -162,7 +162,7 @@ character.jiange={
player.chooseTarget('选择至多'+get.cnNumber(event.num)+'名角色令其进攻距离+1',[1,event.num],function(card,player,target){
return player!=target;
}).ai=function(target){
return ai.get.attitude(player,target);
return get.attitude(player,target);
}
}
else{
@ -203,7 +203,7 @@ character.jiange={
chiying:{
trigger:{global:'damageBegin'},
check:function(event,player){
return ai.get.attitude(player,event.player)>0;
return get.attitude(player,event.player)>0;
},
filter:function(event,player){
if(event.num<=1) return false;
@ -237,7 +237,7 @@ character.jiange={
player.chooseTarget(get.prompt('juechen'),function(card,player,target){
return player!=target&&!trigger.targets.contains(target)&&target.countCards('he')>0;
}).ai=function(target){
return -ai.get.attitude(player,target);
return -get.attitude(player,target);
}
"step 1"
if(result.bool){
@ -251,7 +251,7 @@ character.jiange={
check:function(event,player){
for(var i=0;i<game.players.length;i++){
if(player!=game.players[i]){
if(ai.get.attitude(player,game.players[i])<0) return true;
if(get.attitude(player,game.players[i])<0) return true;
}
}
return false;
@ -267,7 +267,7 @@ character.jiange={
player.chooseTarget('是否弃置一名角色一张牌?',function(card,player,target){
return player!=target&&target.countCards('he')>0;
}).ai=function(target){
return -ai.get.attitude(player,target);
return -get.attitude(player,target);
}
}
"step 2"
@ -321,7 +321,7 @@ character.jiange={
return player!=target;
}).ai=function(target){
if(target.hasSkillTag('nofire')) return 0;
return -ai.get.attitude(player,target);
return -get.attitude(player,target);
};
}
else{
@ -434,7 +434,7 @@ character.jiange={
if(player.hasJudge('lebu')){
if(target==player) return 0.1;
}
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(player.countCards('h')>player.hp){
if(target==player) return Math.max(1,att-2);
}
@ -475,7 +475,7 @@ character.jiange={
player.chooseTarget(get.prompt('tianyu'),[1,num],function(card,player,target){
return !target.isLinked()&&player!=target;
}).ai=function(target){
return -ai.get.attitude(player,target);
return -get.attitude(player,target);
}
"step 1"
if(result.bool){
@ -518,7 +518,7 @@ character.jiange={
player.chooseTarget(get.prompt('jizhen'),[1,2],function(card,player,target){
return target.hp<target.maxHp&&player!=target;
}).ai=function(target){
return ai.get.attitude(player,target);
return get.attitude(player,target);
}
"step 1"
if(result.bool){

View File

@ -38,7 +38,7 @@ character.old={
player.chooseTarget(get.prompt('zhenshan'),function(card,player,target){
return target.countCards('h')<player.countCards('h');
}).set('ai',function(target){
return ai.get.attitude(player,target)
return get.attitude(player,target)
});
"step 1"
if(result.bool){
@ -93,7 +93,7 @@ character.old={
var card={name:button.link[2],nature:button.link[3]};
if(card.name=='jiu') return 0;
if(game.hasPlayer(function(current){
return player.canUse(card,current)&&ai.get.effect(current,card,player,player)>0;
return player.canUse(card,current)&&get.effect(current,card,player,player)>0;
})){
if(card.name=='sha'){
if(card.nature=='fire') return 2.95;
@ -118,7 +118,7 @@ character.old={
player.chooseTarget('选择交换手牌的目标',function(card,player,target){
return target.countCards('h')<player.countCards('h')
},true).ai=function(target){
return ai.get.attitude(player,target);
return get.attitude(player,target);
}
player.addTempSkill('zhenshan2','phaseAfter');
'step 1'
@ -139,7 +139,7 @@ character.old={
var event=_status.event;
var nh=player.countCards('h');
if(game.hasPlayer(function(current){
return ai.get.attitude(player,current)>0&&current.countCards('h')<nh;
return get.attitude(player,current)>0&&current.countCards('h')<nh;
})){
if(event.type=='dying'){
if(event.filterCard({name:'tao'},player,event)){
@ -209,7 +209,7 @@ character.old={
var dialog=ui.create.dialog('选择获得卡牌的目标',cards,'hidden');
dialog.classList.add('noselect');
player.chooseTarget(true,dialog).ai=function(target){
return ai.get.attitude(player,target)/Math.sqrt(1+target.countCards('h'));
return get.attitude(player,target)/Math.sqrt(1+target.countCards('h'));
}
}
else{
@ -252,7 +252,7 @@ character.old={
oldqianxi:{
trigger:{source:'damageBefore'},
check:function(event,player){
var att=ai.get.attitude(player,event.player);
var att=get.attitude(player,event.player);
if(event.player.hp==event.player.maxHp) return att<0;
if(event.player.hp==event.player.maxHp-1&&
(event.player.maxHp<=3||event.player.hasSkillTag('maixie'))) return att<0;
@ -292,10 +292,10 @@ character.old={
return get.distance(player,target)<=1||player.canUse('sha',target,false);
}).set('ai',function(target){
if(get.distance(player,target)<=1){
return ai.get.damageEffect(target,player,player)*2;
return get.damageEffect(target,player,player)*2;
}
else{
return ai.get.effect(target,{name:'sha'},player,player);
return get.effect(target,{name:'sha'},player,player);
}
});
"step 1"

View File

@ -63,8 +63,8 @@ character.ow={
content:function(){
'step 0'
player.chooseTarget(get.prompt('woliu'),lib.filter.notMe,[1,2]).ai=function(target){
if(ai.get.attitude(player,target)<0){
return ai.get.effect(target,{name:'sha'},player,player);
if(get.attitude(player,target)<0){
return get.effect(target,{name:'sha'},player,player);
}
return 0;
}
@ -156,11 +156,11 @@ character.ow={
_status.woliu2_temp=true;
var num=game.countPlayer(function(current){
if(current!=player&&current!=target&&target.storage.woliu2.contains(current)){
return get.sgn(ai.get.effect(current,card,player,target));
return get.sgn(get.effect(current,card,player,target));
}
});
delete _status.woliu2_temp;
if(target.hasSkill('qianggu2')&&ai.get.attitude(player,target)>0){
if(target.hasSkill('qianggu2')&&get.attitude(player,target)>0){
return [0,num];
}
if(target.hp==1&&!target.hasShan()) return;
@ -177,7 +177,7 @@ character.ow={
selectCard:2,
position:'he',
check:function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
},
filter:function(event,player){
return player.countCards('he')>=2;
@ -207,16 +207,16 @@ character.ow={
"step 0"
var eff;
if(player.hasSkill('woliu2')){
eff=-ai.get.attitude(trigger.player,player);
eff=-get.attitude(trigger.player,player);
}
else{
eff=ai.get.effect(player,trigger.card,trigger.player,trigger.player);
eff=get.effect(player,trigger.card,trigger.player,trigger.player);
}
trigger.player.chooseToDiscard('享乐:弃置一张基本牌,否则杀对'+get.translation(player)+'无效',function(card){
return get.type(card)=='basic';
}).set('ai',function(card){
if(_status.event.eff>0){
return 10-ai.get.value(card);
return 10-get.value(card);
}
return 0;
}).set('eff',eff);
@ -231,13 +231,13 @@ character.ow={
target:function(card,player,target,current){
if(card.name=='sha'){
if(_status.event.name=='qianggu2') return;
if(ai.get.attitude(player,target)>0) return;
if(get.attitude(player,target)>0) return;
var bs=player.getCards('h',{type:'basic'});
if(bs.length<2) return 0;
if(player.hasSkill('jiu')||player.hasSkill('tianxianjiu')) return;
if(bs.length<=3&&player.countCards('h','sha')<=1){
for(var i=0;i<bs.length;i++){
if(bs[i].name!='sha'&&ai.get.value(bs[i])<7){
if(bs[i].name!='sha'&&get.value(bs[i])<7){
return [1,0,1,-0.5];
}
}
@ -258,7 +258,7 @@ character.ow={
usable:1,
viewAs:{name:'jingleishan',nature:'thunder'},
check:function(card){
return 8-ai.get.value(card)
return 8-get.value(card)
},
ai:{
order:8,
@ -284,10 +284,10 @@ character.ow={
position:'he',
filterCard:true,
ai1:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
ai2:function(target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(att>=0) return 0;
if(!target.countCards('he')) return -0.01;
var dist=get.distance(player,target);
@ -477,8 +477,8 @@ character.ow={
var suit=(player==trigger.player)?'heart':'spade';
var next=player.chooseToDiscard(position,{suit:suit},get.prompt('pingzhang',trigger.player));
next.ai=function(card){
if(ai.get.damageEffect(trigger.player,trigger.source,player)<0){
return 8-ai.get.value(card);
if(get.damageEffect(trigger.player,trigger.source,player)<0){
return 8-get.value(card);
}
return 0;
}
@ -542,7 +542,7 @@ character.ow={
filterCard:true,
position:'he',
check:function(card){
return 5-ai.get.value(card);
return 5-get.value(card);
},
content:function(){
'step 0'
@ -560,7 +560,7 @@ character.ow={
expose:0.2,
result:{
target:function(player,target){
if(ai.get.damageEffect(target,player,target)<0&&player.hasCard(function(card){
if(get.damageEffect(target,player,target)<0&&player.hasCard(function(card){
return get.tag(card,'damage')?true:false;
})){
return -1;
@ -628,7 +628,7 @@ character.ow={
},
logTarget:'target',
check:function(event,player){
return ai.get.attitude(player,event.target)<0;
return get.attitude(player,event.target)<0;
},
intro:{
content:'players'
@ -674,10 +674,10 @@ character.ow={
var next=player.chooseToDiscard(get.prompt('yinshen'),'he',{type:'equip'});
next.logSkill='yinshen';
next.ai=function(card){
if(player.hp==1) return 8-ai.get.value(card);
if(player.isZhu) return 7-ai.get.value(card);
if(player.hp==2) return 6-ai.get.value(card);
return 5-ai.get.value(card);
if(player.hp==1) return 8-get.value(card);
if(player.isZhu) return 7-get.value(card);
if(player.hp==2) return 6-get.value(card);
return 5-get.value(card);
};
"step 1"
if(result.bool){
@ -772,11 +772,11 @@ character.ow={
check:function(card){
var player=_status.event.player;
if(game.hasPlayer(function(current){
return current.hp==1&&ai.get.attitude(player,current)>2;
return current.hp==1&&get.attitude(player,current)>2;
})){
return 7-ai.get.value(card);
return 7-get.value(card);
}
return 5-ai.get.value(card);
return 5-get.value(card);
},
content:function(){
player.changeHujia(-1);
@ -910,7 +910,7 @@ character.ow={
forced:true,
alter:true,
check:function(event,player){
return ai.get.attitude(player,event.target)<=0;
return get.attitude(player,event.target)<=0;
},
filter:function(event,player){
var num=0.2;
@ -931,7 +931,7 @@ character.ow={
trigger:{source:'damageBegin'},
forced:true,
check:function(event,player){
return ai.get.attitude(player,event.target)<=0;
return get.attitude(player,event.target)<=0;
},
filter:function(event,player){
var num=0.2;
@ -951,7 +951,7 @@ character.ow={
return player.countCards('he',{suit:'spade'})>0;
},
check:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
content:function(){
'step 0'
@ -1010,7 +1010,7 @@ character.ow={
order:2.1,
result:{
target:function(player,target){
if(ai.get.attitude(player,target)<3) return 0;
if(get.attitude(player,target)<3) return 0;
if(target.hasJudge('lebu')) return 0;
if(target.hasSkill('aqianghua2')) return 0.1;
return 1;
@ -1049,7 +1049,7 @@ character.ow={
},
filterCard:true,
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
discard:false,
prepare:'give2',
@ -1131,7 +1131,7 @@ character.ow={
return game.countPlayer(function(current){
if(event.targets.contains(current)==false&&current!=player&&
lib.filter.targetEnabled(event.card,player,current)){
return ai.get.effect(current,event.card,player,player);
return get.effect(current,event.card,player,player);
}
})>=0;
},
@ -1205,7 +1205,7 @@ character.ow={
return target!=player&&get.distance(player,target,'attack')<=1;
},
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
content:function(){
target.addTempSkill('shanguang2','phaseAfter');
@ -1215,9 +1215,9 @@ character.ow={
result:{
target:function(player,target){
var nh=target.countCards('h');
if(ai.get.attitude(player,target)<0&&nh>=3&&
if(get.attitude(player,target)<0&&nh>=3&&
player.canUse('sha',target)&&player.countCards('h','sha')&&
ai.get.effect(target,{name:'sha'},player,player)>0){
get.effect(target,{name:'sha'},player,player)>0){
return -nh-5;
}
return -nh;
@ -1302,7 +1302,7 @@ character.ow={
ai:{
order:function(skill,player){
var num=game.countPlayer(function(current){
return ai.get.attitude(player,current)<0;
return get.attitude(player,current)<0;
});
var nh=player.countCards('he',{color:'black'});
if(nh==1&&num>1) return 0;
@ -1329,7 +1329,7 @@ character.ow={
filterCard:true,
position:'he',
check:function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
},
content:function(){
'step 0'
@ -1379,8 +1379,8 @@ character.ow={
trigger:{source:'damageBefore'},
check:function(event,player){
player.disableSkill('tmp','zhiyuan');
var eff=ai.get.damageEffect(event.player,player,player);
var att=ai.get.attitude(player,event.player);
var eff=get.damageEffect(event.player,player,player);
var att=get.attitude(player,event.player);
var bool=false;
if(att>0){
if(eff<=0||event.player.hp<event.player.maxHp){
@ -1407,7 +1407,7 @@ character.ow={
ai:{
effect:{
player:function(card,player,target){
if(get.tag(card,'damage')&&ai.get.attitude(player,target)>0){
if(get.tag(card,'damage')&&get.attitude(player,target)>0){
if(target.hp==target.maxHp) return [0,0,0,0];
return [0,0,0,1];
}
@ -1418,7 +1418,7 @@ character.ow={
duwen:{
trigger:{source:'damageBegin'},
check:function(event,player){
return ai.get.attitude(player,event.player)<=0;
return get.attitude(player,event.player)<=0;
},
forced:true,
filter:function(event,player){
@ -1461,7 +1461,7 @@ character.ow={
},
check:function(card){
if(ui.selected.cards.length>1) return 0;
return 5-ai.get.value(card);
return 5-get.value(card);
},
selectCard:[1,4],
content:function(){
@ -1496,7 +1496,7 @@ character.ow={
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i]!=player&&player.canUse('sha',players[i],false)){
var eff=ai.get.effect(players[i],{name:'sha'},player,player);
var eff=get.effect(players[i],{name:'sha'},player,player);
if(eff>num){
min.length=0;
min.push(players[i]);
@ -1505,7 +1505,7 @@ character.ow={
}
}
for(var i=0;i<min.length;i++){
if(ai.get.attitude(player,min[i])>0) return 0;
if(get.attitude(player,min[i])>0) return 0;
if(min[i].countCards('h')<=1&&get.distance(player,min[i],'attack')<=1) return 0;
}
if(min.contains(target)) return -1;
@ -1554,7 +1554,7 @@ character.ow={
},
filterCard:true,
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
discard:false,
prepare:function(cards,player){
@ -1668,7 +1668,7 @@ character.ow={
},
filterCard:true,
check:function(card){
return 4-ai.get.value(card);
return 4-get.value(card);
},
content:function(){
while(player.next!=target){
@ -1679,9 +1679,9 @@ character.ow={
order:5,
result:{
player:function(player,target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(target==player.previous&&att>0) return 1;
if(target==player.next.next&&ai.get.attitude(player,player.next)<0) return 1;
if(target==player.next.next&&get.attitude(player,player.next)<0) return 1;
return 0;
}
}
@ -1719,13 +1719,13 @@ character.ow={
}
}
if(max==-min){
return 5-ai.get.value(card);
return 5-get.value(card);
}
else if(max>-min){
if(get.color(card)=='red') return 5-ai.get.value(card);
if(get.color(card)=='red') return 5-get.value(card);
}
else{
if(get.color(card)=='black') return 5-ai.get.value(card);
if(get.color(card)=='black') return 5-get.value(card);
}
return 0;
},
@ -1761,7 +1761,7 @@ character.ow={
});
var num=0;
for(var i=0;i<targets.length;i++){
num+=ai.get.attitude(player,targets[i]);
num+=get.attitude(player,targets[i]);
}
return num;
},
@ -1806,7 +1806,7 @@ character.ow={
'step 0'
var goon=false;
var goon2=false;
var att=ai.get.attitude(player,trigger.player);
var att=get.attitude(player,trigger.player);
if(att>0){
if(trigger.player.hp==1) goon=true;
}
@ -1816,8 +1816,8 @@ character.ow={
if(Math.random()<0.3) goon2=true;
player.chooseToDiscard([1,player.countCards('h')],'he',get.prompt('bingqiang',trigger.player)).set('logSkill',['bingqiang',trigger.player]).ai=function(card){
if(ui.selected.cards.length) return 0;
if(goon) return 6-ai.get.value(card);
if(goon2) return 4-ai.get.value(card);
if(goon) return 6-get.value(card);
if(goon2) return 4-get.value(card);
return 0;
}
'step 1'
@ -1825,7 +1825,7 @@ character.ow={
var num=result.cards.length;
event.num=num;
player.chooseControl('选项一','选项二','选项三','选项四',function(){
if(ai.get.attitude(player,trigger.player)>0){
if(get.attitude(player,trigger.player)>0){
if(Math.random()<0.7) return '选项一';
return '选项三';
}
@ -1917,7 +1917,7 @@ character.ow={
shuangqiang:{
trigger:{source:'damageBegin'},
check:function(event,player){
var att=ai.get.attitude(player,event.player);
var att=get.attitude(player,event.player);
if(event.player.hp==1) return att>0;
return att<=0;
},
@ -2020,7 +2020,7 @@ character.ow={
order:11,
result:{
target:function(player,target){
if(ai.get.attitude(player,target)<0){
if(get.attitude(player,target)<0){
if(get.distance(player,target)>2) return -1.5;
return -1;
}
@ -2104,12 +2104,12 @@ character.ow={
}
target.chooseToDiscard(num,'he','弃置'+get.cnNumber(num)+'张牌或受到2点火焰伤害').ai=function(card){
if(target.hasSkillTag('nofire')) return 0;
if(get.type(card)!='basic') return 11-ai.get.value(card);
if(target.hp>4) return 7-ai.get.value(card);
if(target.hp==4&&num>=3) return 7-ai.get.value(card);
if(target.hp==3&&num>=4) return 7-ai.get.value(card);
if(num>1) return 8-ai.get.value(card);
return 10-ai.get.value(card);
if(get.type(card)!='basic') return 11-get.value(card);
if(target.hp>4) return 7-get.value(card);
if(target.hp==4&&num>=3) return 7-get.value(card);
if(target.hp==3&&num>=4) return 7-get.value(card);
if(num>1) return 8-get.value(card);
return 10-get.value(card);
};
'step 1'
if(!result.bool){
@ -2129,7 +2129,7 @@ character.ow={
for(var i=0;i<players.length;i++){
if(players[i]==player||players[i].hasSkillTag('nofire')||get.distance(player,players[i])>2) continue;
var nh=players[i].countCards('h');
var att=ai.get.attitude(player,players[i]);
var att=get.attitude(player,players[i]);
if(nh<player.storage.jijia){
if(att<0){
if(players[i].hp<=2){
@ -2171,7 +2171,7 @@ character.ow={
var dis=trigger.target.countCards('h','shan')||trigger.target.getEquip('bagua')||trigger.target.countCards('h')>2;
var next=player.chooseToDiscard(get.prompt('xiandan'));
next.ai=function(card){
if(dis) return 7-ai.get.value(card);
if(dis) return 7-get.value(card);
return 0;
}
next.logSkill='xiandan';
@ -2224,7 +2224,7 @@ character.ow={
if(!player.countCards('he',{color:'black'})) return false;
},
prompt:'将一张黑色牌当杀使用或打出',
check:function(card){return 4-ai.get.value(card)},
check:function(card){return 4-get.value(card)},
ai:{
skillTagFilter:function(player){
if(!player.countCards('he',{color:'black'})) return false;
@ -2256,7 +2256,7 @@ character.ow={
var next=player.chooseToDiscard(get.prompt('lichang'),'he',{color:'red'});
next.logSkill='lichang';
next.ai=function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
};
"step 1"
if(result.bool){
@ -2276,7 +2276,7 @@ character.ow={
player.chooseTarget(get.prompt('lichang'),function(card,player,target){
return get.distance(player,target)<=1;
}).ai=function(target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(att>0){
if(target.hp==1&&target.maxHp>1) return att*2;
}
@ -2421,7 +2421,7 @@ character.ow={
},
filterCard:{suit:'heart'},
check:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
content:function(){
var current=game.findPlayer(function(player){
@ -2443,10 +2443,10 @@ character.ow={
var current=game.findPlayer(function(player){
return player.hasSkill('xie2');
});
if(current&&ai.get.recoverEffect(current,player,player)>0){
if(current&&get.recoverEffect(current,player,player)>0){
return 0;
}
return ai.get.recoverEffect(target,player,target);
return get.recoverEffect(target,player,target);
}
}
}
@ -2527,7 +2527,7 @@ character.ow={
},
filterCard:{suit:'spade'},
check:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
content:function(){
var current=game.findPlayer(function(player){
@ -2549,7 +2549,7 @@ character.ow={
var current=game.findPlayer(function(player){
return player.hasSkill('luan2');
});
if(current&&ai.get.attitude(player,current)<0){
if(current&&get.attitude(player,current)<0){
return 0;
}
if(target.hp==1) return 0.5;
@ -2677,12 +2677,12 @@ character.ow={
order:1,
result:{
target:function(player,target){
var eff=ai.get.recoverEffect(target,player,target);
var eff=get.recoverEffect(target,player,target);
if(player.hp==1) return eff;
if(player.hasUnknown()) return 0;
var num1=0,num2=0,num3=0,players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(ai.get.attitude(player,players[i])>0){
if(get.attitude(player,players[i])>0){
num1++;
if(players[i].isDamaged()){
num2++;
@ -2731,10 +2731,10 @@ character.ow={
return get.color(card)=='black'&&lib.filter.cardDiscardable(card,player);
},
ai1:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
ai2:function(target){
var att=-ai.get.attitude(player,target);
var att=-get.attitude(player,target);
if(target==player.next){
att/=10;
}
@ -2803,7 +2803,7 @@ character.ow={
selectCard:2,
position:'he',
check:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
selectTarget:-1,
multitarget:true,
@ -2823,7 +2823,7 @@ character.ow={
result:{
target:function(player,target){
if(player.hasUnknown()) return 0;
return ai.get.effect(target,{name:'chiyuxi'},player,target);
return get.effect(target,{name:'chiyuxi'},player,target);
}
},
},
@ -2847,13 +2847,13 @@ character.ow={
var eff=0;
var targets=game.filterPlayer(function(current){
if(current!=trigger.player&&get.distance(trigger.player,current)<=1){
eff+=ai.get.damageEffect(current,player,player);
eff+=get.damageEffect(current,player,player);
return true;
}
});
event.targets=targets;
player.chooseToDiscard(get.prompt('feidan',targets)).set('ai',function(card){
if(eff>0) return 7-ai.get.value(card);
if(eff>0) return 7-get.value(card);
return 0;
}).set('logSkill',['feidan',targets]);
"step 1"
@ -2891,9 +2891,9 @@ character.ow={
return true;
}).set('ai',function(target){
if(player.storage.yuedong_recover){
return ai.get.recoverEffect(target,player,player);
return get.recoverEffect(target,player,player);
}
var att=ai.get.attitude(player,target)/Math.sqrt(2+target.countCards('h'));
var att=get.attitude(player,target)/Math.sqrt(2+target.countCards('h'));
if(player==target){
var num2=player.needsToDiscard(num);
if(num2>1) return att/5;
@ -2934,7 +2934,7 @@ character.ow={
return player.countCards('he')>1&&!player.storage.yuedong_recover;
},
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
content:function(){
player.storage.yuedong_recover=true;
@ -2945,7 +2945,7 @@ character.ow={
player:function(player){
var num1=0,num2=0,players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(ai.get.attitude(player,players[i])>0){
if(get.attitude(player,players[i])>0){
num2++;
if(players[i].hp<=2&&players[i].maxHp>2){
num1++;
@ -2983,7 +2983,7 @@ character.ow={
var player=_status.event.player;
var num1=0,num2=0,players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(ai.get.attitude(player,players[i])>0){
if(get.attitude(player,players[i])>0){
num2++;
if(players[i].hp<=2&&players[i].maxHp>2){
num1++;
@ -2993,19 +2993,19 @@ character.ow={
if(player.storage.yuedong_recover){
if(num1>1&&!player.storage.yuedong_num){
if(ui.selected.cards.length) return 0;
return 7-ai.get.value(card);
return 7-get.value(card);
}
return 0;
}
else{
if(num2>1&&!player.storage.yuedong_num){
if(ui.selected.cards.length) return 0;
return 7-ai.get.value(card);
return 7-get.value(card);
}
if(num2>2){
return 6-ai.get.value(card);
return 6-get.value(card);
}
return 5-ai.get.value(card);
return 5-get.value(card);
}
},
content:function(){
@ -3043,13 +3043,13 @@ character.ow={
var suit=get.suit(card);
if(suit=='heart'){
if(game.hasPlayer(function(current){
return current.hp==1&&ai.get.attitude(player,current)>0
return current.hp==1&&get.attitude(player,current)>0
}));
}
else if(suit=='spade'){
return 7-ai.get.value(card);
return 7-get.value(card);
}
return 6-ai.get.value(card);
return 6-get.value(card);
},
filter:function(event,player){
return player.countCards('he')>0;
@ -3076,7 +3076,7 @@ character.ow={
case 'heart':if(target.hp==1) return 1;return 0.1;
case 'diamond':return 1+Math.sqrt(target.countCards('h'));
case 'club':return -target.countCards('h')-Math.sqrt(target.countCards('h','sha'));
case 'spade':return ai.get.damageEffect(target,player,target,'thunder');
case 'spade':return get.damageEffect(target,player,target,'thunder');
default:return 0;
}
}
@ -3171,7 +3171,7 @@ character.ow={
threaten:2,
result:{
target:function(player,target){
return ai.get.recoverEffect(target,player,target);
return get.recoverEffect(target,player,target);
}
}
}
@ -3182,7 +3182,7 @@ character.ow={
return event.player!=player&&!player.isTurnedOver()&&!player.storage.shanxian;
},
check:function(event,player){
return ai.get.attitude(player,event.player)<0&&
return get.attitude(player,event.player)<0&&
((player.countCards('h')>player.hp&&player.countCards('h','lebu')==0)||get.distance(player,event.player)>1);
},
alter:true,

View File

@ -54,16 +54,16 @@ character.refresh={
if(players[i].hasSkill('haoshi')&&
!players[i].isTurnedOver()&&
!players[i].hasJudge('lebu')&&
ai.get.attitude(player,players[i])>=3&&
ai.get.attitude(players[i],player)>=3){
return 11-ai.get.value(card);
get.attitude(player,players[i])>=3&&
get.attitude(players[i],player)>=3){
return 11-get.value(card);
}
}
if(player.countCards('h')>player.hp) return 10-ai.get.value(card);
if(player.countCards('h')>2) return 6-ai.get.value(card);
if(player.countCards('h')>player.hp) return 10-get.value(card);
if(player.countCards('h')>2) return 6-get.value(card);
return -1;
}
return 10-ai.get.value(card);
return 10-get.value(card);
},
content:function(){
'step 0'
@ -106,7 +106,7 @@ character.refresh={
}
if(card.name=='sha'){
if(game.hasPlayer(function(current){
return player.canUse(card,current)&&ai.get.effect(current,card,player,player)>0
return player.canUse(card,current)&&get.effect(current,card,player,player)>0
})){
if(card.nature=='fire') return 2.95;
if(card.nature=='thunder') return 2.92;
@ -141,7 +141,7 @@ character.refresh={
return player.canUse(_status.event.fakecard,target,true,true);
},true,'选择出杀目标').set('ai',function(target){
var player=_status.event.player;
return ai.get.effect(target,_status.event.fakecard,player,player);
return get.effect(target,_status.event.fakecard,player,player);
}).set('fakecard',card);
}
else{
@ -184,7 +184,7 @@ character.refresh={
if(player==target&&get.type(card)=='equip'){
if(player.countCards('e',{subtype:get.subtype(card)})){
if(game.hasPlayer(function(current){
return current!=player&&ai.get.attitude(player,current)>0;
return current!=player&&get.attitude(player,current)>0;
})){
return 0;
}
@ -222,7 +222,7 @@ character.refresh={
return evt.player.canUse({name:'juedou'},target)&&target!=_status.event.player;
},get.prompt('liyu')).set('ai',function(target){
var evt=_status.event.getParent();
return ai.get.effect(target,{name:'juedou'},evt.player,_status.event.player)-2;
return get.effect(target,{name:'juedou'},evt.player,_status.event.player)-2;
});
'step 1'
if(result.bool){
@ -284,7 +284,7 @@ character.refresh={
player.chooseTarget(get.prompt('retuxi'),[1,2],function(card,player,target){
return target.countCards('h')>0&&player!=target&&target.countCards('h')>=player.countCards('h');
},function(target){
var att=ai.get.attitude(_status.event.player,target);
var att=get.attitude(_status.event.player,target);
if(target.hasSkill('tuntian')) return att/10;
return 1-att;
});
@ -320,13 +320,13 @@ character.refresh={
var player=_status.event.player;
var judging=_status.event.judging;
var result=trigger.judge(card)-trigger.judge(judging);
var attitude=ai.get.attitude(player,trigger.player);
var attitude=get.attitude(player,trigger.player);
if(attitude==0||result==0) return 0;
if(attitude>0){
return result-ai.get.value(card)/2;
return result-get.value(card)/2;
}
else{
return -result-ai.get.value(card)/2;
return -result-get.value(card)/2;
}
}).set('judging',trigger.player.judging[0]);
"step 1"
@ -371,14 +371,14 @@ character.refresh={
return (event.source&&event.source.countCards('he')&&event.num>0&&event.source!=player);
},
content:function(){
player.gainPlayerCard([1,trigger.num],get.prompt('fankui',trigger.source),trigger.source,ai.get.buttonValue,'he').set('logSkill',['refankui',trigger.source]);
player.gainPlayerCard([1,trigger.num],get.prompt('fankui',trigger.source),trigger.source,get.buttonValue,'he').set('logSkill',['refankui',trigger.source]);
},
ai:{
effect:{
target:function(card,player,target){
if(player.countCards('he')>1&&get.tag(card,'damage')){
if(player.hasSkillTag('jueqing')) return [1,-1.5];
if(ai.get.attitude(target,player)<0) return [1,1];
if(get.attitude(target,player)<0) return [1,1];
}
}
}
@ -427,7 +427,7 @@ character.refresh={
return (event.source!=undefined&&event.num>0);
},
check:function(event,player){
return (ai.get.attitude(player,event.source)<=0);
return (get.attitude(player,event.source)<=0);
},
logTarget:'source',
content:function(){
@ -511,7 +511,7 @@ character.refresh={
return (_status.event.player.countCards('h')-_status.event.player.hp);
},
ai2:function(target){
var att=ai.get.attitude(_status.event.player,target);
var att=get.attitude(_status.event.player,target);
if(ui.selected.cards.length&&ui.selected.cards[0].name=='du'){
if(target.hasSkillTag('nodu')) return 0;
return 1-att;
@ -569,7 +569,7 @@ character.refresh={
},
filterCard:true,
check:function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
},
discard:false,
prepare:'give',
@ -588,7 +588,7 @@ character.refresh={
}
if(player.hp==1) return 0;
for(var i=0;i<cards.length;i++){
if(ai.get.value(cards[i])>=8) return 1;
if(get.value(cards[i])>=8) return 1;
}
if(cards.length>2&&player.hp>2) return 1;
if(cards.length>3) return 1;
@ -693,8 +693,8 @@ character.refresh={
}
player.chooseTarget('选择发动连营的目标',[1,num]).ai=function(target){
var player=_status.event.player;
if(player==target) return ai.get.attitude(player,target)+10;
return ai.get.attitude(player,target);
if(player==target) return get.attitude(player,target)+10;
return get.attitude(player,target);
}
"step 1"
if(result.bool){
@ -790,7 +790,7 @@ character.refresh={
game.addVideo('centernode',null,get.cardInfo(event.card));
if(get.type(event.card,'trick')==get.type(trigger.card,'trick')){
player.chooseTarget('选择获得此牌的角色').set('ai',function(target){
var att=ai.get.attitude(_status.event.player,target);
var att=get.attitude(_status.event.player,target);
if(_status.event.du){
if(target.hasSkillTag('nodu')) return 0;
return -att;
@ -925,7 +925,7 @@ character.refresh={
return (_status.event.player.countCards('h')-_status.event.player.hp);
},
ai2:function(target){
var att=ai.get.attitude(_status.event.player,target);
var att=get.attitude(_status.event.player,target);
if(ui.selected.cards.length&&ui.selected.cards[0].name=='du'){
if(target.hasSkillTag('nodu')) return 0;
return 1-att;
@ -1022,7 +1022,7 @@ character.refresh={
}
else if(target.hp<target.maxHp){
player.chooseBool('是否让目标回复一点体力?').ai=function(event,player){
return ai.get.recoverEffect(target,player,player)>0;
return get.recoverEffect(target,player,player)>0;
};
}
else{
@ -1040,13 +1040,13 @@ character.refresh={
if(hs.length<3) return 0;
var bool=false;
for(var i=0;i<hs.length;i++){
if(hs[i].number>=9&&ai.get.value(hs[i])<7){
if(hs[i].number>=9&&get.value(hs[i])<7){
bool=true;
break;
}
}
if(!bool) return 0;
if(target.countCards('h')>target.hp+1&&ai.get.recoverEffect(target)>0){
if(target.countCards('h')>target.hp+1&&get.recoverEffect(target)>0){
return 1;
}
if(player.canUse('sha',target)&&(player.countCards('h','sha')||player.countCards('he',{color:'red'}))){
@ -1082,7 +1082,7 @@ character.refresh={
audio:2,
trigger:{player:'shaBegin'},
check:function(event,player){
return ai.get.attitude(player,event.target)<0;
return get.attitude(player,event.target)<0;
},
logTarget:'target',
content:function(){
@ -1101,7 +1101,7 @@ character.refresh={
var num=_status.event.num;
if(num==0) return 0;
if(card.name=='shan') return num>1?2:0;
return 8-ai.get.value(card);
return 8-get.value(card);
}).set('num',num).set('suit',suit);
"step 2"
if(!result.bool){
@ -1157,7 +1157,7 @@ character.refresh={
usable:1,
filterCard:true,
check:function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
},
position:'he',
content:function(){
@ -1313,7 +1313,7 @@ character.refresh={
return lib.filter.targetEnabled({name:'lebu'},player,target);
},
check:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
content:function(){
if(target.hasJudge('lebu')){
@ -1329,8 +1329,8 @@ character.refresh={
ai:{
result:{
target:function(player,target){
if(target.hasJudge('lebu')) return -ai.get.effect(target,{name:'lebu'},player,target);
return ai.get.effect(target,{name:'lebu'},player,target);
if(target.hasJudge('lebu')) return -get.effect(target,{name:'lebu'},player,target);
return get.effect(target,{name:'lebu'},player,target);
}
},
order:9,
@ -1362,7 +1362,7 @@ character.refresh={
}).set('ai',function(target){
var trigger=_status.event.getTrigger();
if(game.phaseNumber>game.players.length*2&&trigger.targets.length>=game.players.length-1){
return -ai.get.effect(target,trigger.card,trigger.player,_status.event.player);
return -get.effect(target,trigger.card,trigger.player,_status.event.player);
}
return -1;
});
@ -1400,8 +1400,8 @@ character.refresh={
position:'he',
selectTarget:[1,Infinity],
check:function(card){
if(get.suit(card)=='spade') return 8-ai.get.value(card);
return 5-ai.get.value(card);
if(get.suit(card)=='spade') return 8-get.value(card);
return 5-get.value(card);
},
content:function(){
"step 0"
@ -1432,7 +1432,7 @@ character.refresh={
trigger.untrigger();
trigger.finish();
event.cards=get.cards(4);
player.chooseCardButton(event.cards,2,'选择获得两张牌').set('ai',ai.get.buttonValue);
player.chooseCardButton(event.cards,2,'选择获得两张牌').set('ai',get.buttonValue);
"step 1"
if(result.bool){
var choice=[];
@ -1456,8 +1456,8 @@ character.refresh={
event.player.isAlive()&&event.source.isAlive()&&event.source!=event.player;
},
check:function(event,player){
if(event.player==player) return ai.get.attitude(player,event.source)>-3;
return ai.get.attitude(player,event.player)>-3;
if(event.player==player) return get.attitude(player,event.source)>-3;
return get.attitude(player,event.player)>-3;
},
logTarget:function(event,player){
if(event.player==player) return event.source;

View File

@ -90,9 +90,9 @@ character.shenhua={
'step 0'
player.discardPlayerCard(trigger.target,get.prompt('jianchu',trigger.target)).set('ai',function(button){
if(!_status.event.att) return 0;
if(get.position(button.link)=='e') return ai.get.value(button.link);
if(get.position(button.link)=='e') return get.value(button.link);
return 1;
}).set('logSkill',['jianchu',trigger.target]).set('att',ai.get.attitude(player,trigger.target)<=0);
}).set('logSkill',['jianchu',trigger.target]).set('att',get.attitude(player,trigger.target)<=0);
'step 1'
if(result.bool&&result.links&&result.links.length){
if(get.type(result.links[0])=='equip'){
@ -159,7 +159,7 @@ character.shenhua={
'step 1'
if(event.dialog.buttons.length>1){
var next=event.current.chooseButton(true,function(button){
return ai.get.value(button.link,_status.event.player);
return get.value(button.link,_status.event.player);
});
next.set('dialog',event.dialog.videoId);
next.set('closeDialog',false);
@ -247,11 +247,11 @@ character.shenhua={
targetprompt:['先拿牌','后拿牌'],
find:function(type){
var list=game.filterPlayer(function(current){
return current!=player&&ai.get.attitude(player,current)>3;
return current!=player&&get.attitude(player,current)>3;
});
var player=_status.event.player;
var num=player.countCards('he',function(card){
return ai.get.value(card)<7;
return get.value(card)<7;
});
var count=null;
var from,nh;
@ -264,7 +264,7 @@ character.shenhua={
nh=from.countCards('h');
list=game.filterPlayer(function(current){
return current!=player&&ai.get.attitude(player,current)<1;
return current!=player&&get.attitude(player,current)<1;
});
if(list.length==0) return null;
list.sort(function(a,b){
@ -283,7 +283,7 @@ character.shenhua={
check:function(card){
var count=lib.skill.redimeng.find(3);
if(count==null) return -1;
if(ui.selected.cards.length<count) return 7-ai.get.value(card);
if(ui.selected.cards.length<count) return 7-get.value(card);
return -1;
},
ai:{
@ -315,7 +315,7 @@ character.shenhua={
filterCard:{suit:'club'},
viewAs:{name:'tiesuo'},
prompt:'将一张梅花牌当铁锁连环使用',
check:function(card){return 6-ai.get.value(card)},
check:function(card){return 6-get.value(card)},
ai:{
order:7.5,
result:{
@ -348,7 +348,7 @@ character.shenhua={
},
selectCard:2,
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
ai:{
basic:{
@ -471,7 +471,7 @@ character.shenhua={
return (current.hp<=mindist-1&&
get.distance(player,current,'attack')<=mindist&&
player.canUse(card,current,false)&&
ai.get.effect(current,card,player,player)>0);
get.effect(current,card,player,player)>0);
})){
return 1;
}
@ -528,7 +528,7 @@ character.shenhua={
trigger:{player:'shaBegin'},
logTarget:'target',
check:function(event,player){
return ai.get.attitude(player,event.target)<=0;
return get.attitude(player,event.target)<=0;
},
filter:function(event,player){
if(event.target.countCards('h')<=player.countCards('h')) return true;
@ -632,12 +632,12 @@ character.shenhua={
},
content:function(){
"step 0"
var eff=ai.get.effect(player,trigger.card,trigger.player,trigger.player);
var eff=get.effect(player,trigger.card,trigger.player,trigger.player);
trigger.player.chooseToDiscard('享乐:弃置一张基本牌,否则杀对'+get.translation(player)+'无效',function(card){
return get.type(card)=='basic';
}).set('ai',function(card){
if(_status.event.eff>0){
return 10-ai.get.value(card);
return 10-get.value(card);
}
return 0;
}).set('eff',eff);
@ -657,7 +657,7 @@ character.shenhua={
if(player.hasSkill('jiu')||player.hasSkill('tianxianjiu')) return;
if(bs.length<=3&&player.countCards('h','sha')<=1){
for(var i=0;i<bs.length;i++){
if(bs[i].name!='sha'&&ai.get.value(bs[i])<7){
if(bs[i].name!='sha'&&get.value(bs[i])<7){
return [1,0,1,-0.5];
}
}
@ -684,7 +684,7 @@ character.shenhua={
}).set('ai',function(target){
if(!_status.event.fang) return -1;
if(target.hasJudge('lebu')) return -1;
return ai.get.attitude(player,target)-4;
return get.attitude(player,target)-4;
}).set('fang',fang);
"step 1"
if(result.bool){
@ -780,7 +780,7 @@ character.shenhua={
}
else{
var next=player.chooseToDiscard('是否发动巧变跳过判定阶段?');
next.set('ai',ai.get.unuseful2);
next.set('ai',get.unuseful2);
next.set('logSkill','qiaobian');
}
"step 1"
@ -802,7 +802,7 @@ character.shenhua={
var check,i,num=0,num2=0,players=game.filterPlayer();
for(i=0;i<players.length;i++){
if(player!=players[i]&&players[i].countCards('h')){
var att=ai.get.attitude(player,players[i]);
var att=get.attitude(player,players[i]);
if(att<=0){
num++;
}
@ -817,12 +817,12 @@ character.shenhua={
ai1:function(card){
var evt=_status.event;
if(!evt.check) return 0;
return 6-ai.get.useful(card);
return 6-get.useful(card);
},
ai2:function(target){
var evt=_status.event;
if(!evt.check) return 0;
return 1-ai.get.attitude(evt.player,target);
return 1-get.attitude(evt.player,target);
},
filterTarget:function(card,player,target){
return target.countCards('h')>0;
@ -863,7 +863,7 @@ character.shenhua={
content:function(){
"step 0"
var check=game.hasPlayer(function(current){
return ai.get.attitude(player,current)>0&&current.countCards('j');
return get.attitude(player,current)>0&&current.countCards('j');
});
if(!check){
if(player.countCards('h')>player.hp+1){
@ -879,28 +879,28 @@ character.shenhua={
player.chooseCardTarget({
ai1:function(card){
if(!_status.event.check) return 0;
return 7-ai.get.useful(card);
return 7-get.useful(card);
},
ai2:function(target){
if(!_status.event.check) return 0;
var player=_status.event.player;
if(ui.selected.targets.length==0){
if(target.countCards('j')&&ai.get.attitude(player,target)>0) return 10;
if(ai.get.attitude(player,target)<0){
if(target.countCards('j')&&get.attitude(player,target)>0) return 10;
if(get.attitude(player,target)<0){
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(ai.get.attitude(player,players[i])>0){
if(get.attitude(player,players[i])>0){
if((target.getEquip(1)&&!players[i].getEquip(1))||
(target.getEquip(2)&&!players[i].getEquip(2))||
(target.getEquip(3)&&!players[i].getEquip(3))||
(target.getEquip(4)&&!players[i].getEquip(4))||
(target.getEquip(5)&&!players[i].getEquip(5))) return -ai.get.attitude(player,target);
(target.getEquip(5)&&!players[i].getEquip(5))) return -get.attitude(player,target);
}
}
}
return 0;
}
return -ai.get.attitude(player,target)*ai.get.attitude(player,ui.selected.targets[0]);
return -get.attitude(player,target)*get.attitude(player,ui.selected.targets[0]);
},
multitarget:true,
filterTarget:function(card,player,target){
@ -948,12 +948,12 @@ character.shenhua={
var player=_status.event.player;
var targets0=_status.event.targets0;
var targets1=_status.event.targets1;
if(ai.get.attitude(player,targets0)>ai.get.attitude(player,targets1)){
if(get.attitude(player,targets0)>get.attitude(player,targets1)){
return get.position(button.link)=='j'?10:0;
}
else{
if(get.position(button.link)=='j') return -10;
return ai.get.equipValue(button.link);
return get.equipValue(button.link);
}
},targets[0]).set('targets0',targets[0]).set('targets1',targets[1]).set('filterButton',function(button){
var targets1=_status.event.targets1;
@ -1002,7 +1002,7 @@ character.shenhua={
next.logSkill='qiaobian';
next.ai=function(card){
if(discard){
return 100-ai.get.useful(card);
return 100-get.useful(card);
}
else{
return -1;
@ -1084,7 +1084,7 @@ character.shenhua={
}
}
else if(get.tag(card,'respondSha')||get.tag(card,'respondShan')){
if(ai.get.attitude(player,target)>0&&card.name=='juedou') return;
if(get.attitude(player,target)>0&&card.name=='juedou') return;
if(get.tag(card,'damage')&&target.hasSkillTag('maixie')) return;
if(target.countCards('h')==0) return 2;
if(target.hasSkill('ziliang')) return 0.7;
@ -1238,7 +1238,7 @@ character.shenhua={
content:function(){
"step 0"
if(target.storage.hunzi){
target.chooseControl('拒绝','不拒绝').set('prompt','是否拒绝制霸拼点?').set('choice',ai.get.attitude(target,player)<=0);
target.chooseControl('拒绝','不拒绝').set('prompt','是否拒绝制霸拼点?').set('choice',get.attitude(target,player)<=0);
}
else{
event.forced=true;
@ -1254,7 +1254,7 @@ character.shenhua={
if(card.name=='du') return 20;
var player=get.owner(card);
var target=_status.event.getParent().target;
if(player!=target&&ai.get.attitude(player,target)>0){
if(player!=target&&get.attitude(player,target)>0){
return -get.number(card);
}
return get.number(card);
@ -1272,7 +1272,7 @@ character.shenhua={
expose:0.2,
result:{
target:function(player,target){
if(player.countCards('h','du')&&ai.get.attitude(player,target)<0) return -1;
if(player.countCards('h','du')&&get.attitude(player,target)<0) return -1;
if(player.countCards('h')<=player.hp) return 0;
var maxnum=0;
var cards2=target.getCards('h');
@ -1304,9 +1304,9 @@ character.shenhua={
check:function(card){
var player=_status.currentPhase;
if(player.countCards('he',{subtype:get.subtype(card)})>1){
return 11-ai.get.equipValue(card);
return 11-get.equipValue(card);
}
return 6-ai.get.value(card);
return 6-get.value(card);
},
filterTarget:function(card,player,target){
if(target.isMin()) return false;
@ -1357,7 +1357,7 @@ character.shenhua={
}
}
}
if(ai.get.attitude(player,event.player)>0){
if(get.attitude(player,event.player)>0){
if(du&&num<=3){
return false;
}
@ -1382,7 +1382,7 @@ character.shenhua={
var check=lib.skill.guzheng.checkx(trigger,player);
player.chooseCardButton(event.cards,'固政:选择令'+get.translation(trigger.player)+'收回的牌').set('ai',function(button){
if(_status.event.check){
return 20-ai.get.value(button.link);
return 20-get.value(button.link);
}
return 0;
}).set('check',check);
@ -1416,8 +1416,8 @@ character.shenhua={
},
direct:true,
checkx:function(event,player){
var att1=ai.get.attitude(player,event.player);
var att2=ai.get.attitude(player,event.source);
var att1=get.attitude(player,event.player);
var att2=get.attitude(player,event.source);
return att1>0&&att2<=0;
},
content:function(){
@ -1425,7 +1425,7 @@ character.shenhua={
var next=player.chooseToDiscard('he',get.prompt('beige'));
var check=lib.skill.beige.checkx(trigger,player);
next.set('ai',function(card){
if(_status.event.goon) return 8-ai.get.value(card);
if(_status.event.goon) return 8-get.value(card);
return 0;
});
next.set('logSkill','beige');
@ -1876,7 +1876,7 @@ character.shenhua={
event.player.countCards('h')&&player.countCards('h'))&&event.player!=player;
},
check:function(event,player){
return ai.get.attitude(player,event.player)<0&&player.countCards('h')>1;
return get.attitude(player,event.player)<0&&player.countCards('h')>1;
},
priority:5,
content:function(){
@ -1925,8 +1925,8 @@ character.shenhua={
return player!=target
}).ai=function(target){
var player=_status.event.player;
if(ai.get.attitude(_status.event.player,target)==0) return 0;
if(ai.get.attitude(_status.event.player,target)>0){
if(get.attitude(_status.event.player,target)==0) return 0;
if(get.attitude(_status.event.player,target)>0){
if(target.classList.contains('turnedover')) return 1000-target.countCards('h');
if(player.maxHp-player.hp<3) return -1;
return 100-target.countCards('h');
@ -1957,15 +1957,15 @@ character.shenhua={
var turnfriend=false;
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(ai.get.attitude(target,players[i])<0&&!players[i].isTurnedOver()){
if(get.attitude(target,players[i])<0&&!players[i].isTurnedOver()){
hastarget=true;
}
if(ai.get.attitude(target,players[i])>0&&players[i].isTurnedOver()){
if(get.attitude(target,players[i])>0&&players[i].isTurnedOver()){
hastarget=true;
turnfriend=true;
}
}
if(ai.get.attitude(player,target)>0&&!hastarget) return;
if(get.attitude(player,target)>0&&!hastarget) return;
if(turnfriend||target.hp==target.maxHp) return [0.5,1];
if(target.hp>1) return [1,0.5];
}
@ -2000,7 +2000,7 @@ character.shenhua={
if(event.list.length){
var current=event.list.shift();
event.current=current;
player.chooseBool(get.prompt('songwei',current)).set('choice',ai.get.attitude(player,current)>0);
player.chooseBool(get.prompt('songwei',current)).set('choice',get.attitude(player,current)>0);
}
else{
event.finish();
@ -2032,7 +2032,7 @@ character.shenhua={
position:'he',
viewAs:{name:'bingliang'},
prompt:'将一黑色的基本牌或装备牌当兵粮寸断使用',
check:function(card){return 6-ai.get.value(card)},
check:function(card){return 6-get.value(card)},
ai:{
order:9
}
@ -2066,7 +2066,7 @@ character.shenhua={
}
}
for(var i=0;i<min.length;i++){
if(ai.get.attitude(player,min[i])>0) return true;
if(get.attitude(player,min[i])>0) return true;
}
return false;
},
@ -2105,7 +2105,7 @@ character.shenhua={
},
forced:true,
ai2:function(target){
return ai.get.attitude(_status.event.player,target);
return get.attitude(_status.event.player,target);
}
});
"step 1"
@ -2144,7 +2144,7 @@ character.shenhua={
var count;
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i]!=player&&ai.get.attitude(player,players[i])>3) list.push(players[i]);
if(players[i]!=player&&get.attitude(player,players[i])>3) list.push(players[i]);
}
list.sort(function(a,b){
return a.countCards('h')-b.countCards('h');
@ -2154,7 +2154,7 @@ character.shenhua={
list.length=0;
for(var i=0;i<players.length;i++){
if(players[i]!=player&&ai.get.attitude(player,players[i])<1) list.push(players[i]);
if(players[i]!=player&&get.attitude(player,players[i])<1) list.push(players[i]);
}
if(list.length==0) return -1;
list.sort(function(a,b){
@ -2167,7 +2167,7 @@ character.shenhua={
}
}
if(count<2&&from.countCards('h')>=2) return -1;
if(ui.selected.cards.length<count) return 11-ai.get.value(card);
if(ui.selected.cards.length<count) return 11-get.value(card);
return -1;
},
ai:{
@ -2181,29 +2181,29 @@ character.shenhua={
var players=game.filterPlayer();
if(ui.selected.targets.length==0){
for(var i=0;i<players.length;i++){
if(players[i]!=player&&ai.get.attitude(player,players[i])>3) list.push(players[i]);
if(players[i]!=player&&get.attitude(player,players[i])>3) list.push(players[i]);
}
list.sort(function(a,b){
return a.countCards('h')-b.countCards('h');
});
if(target==list[0]) return ai.get.attitude(player,target);
return -ai.get.attitude(player,target);
if(target==list[0]) return get.attitude(player,target);
return -get.attitude(player,target);
}
else{
var from=ui.selected.targets[0];
for(var i=0;i<players.length;i++){
if(players[i]!=player&&ai.get.attitude(player,players[i])<1) list.push(players[i]);
if(players[i]!=player&&get.attitude(player,players[i])<1) list.push(players[i]);
}
list.sort(function(a,b){
return b.countCards('h')-a.countCards('h');
});
if(from.countCards('h')>=list[0].countCards('h')) return -ai.get.attitude(player,target);
if(from.countCards('h')>=list[0].countCards('h')) return -get.attitude(player,target);
for(var i=0;i<list.length&&from.countCards('h')<list[i].countCards('h');i++){
if(list[i].countCards('h')-from.countCards('h')<=num){
var count=list[i].countCards('h')-from.countCards('h');
if(count<2&&from.countCards('h')>=2) return -ai.get.attitude(player,target);
if(target==list[i]) return ai.get.attitude(player,target);
return -ai.get.attitude(player,target);
if(count<2&&from.countCards('h')>=2) return -get.attitude(player,target);
if(target==list[i]) return get.attitude(player,target);
return -get.attitude(player,target);
}
}
}
@ -2228,8 +2228,8 @@ character.shenhua={
if(player.maxHp-player.hp==1&&target.countCards('he')==0){
return 0;
}
if(ai.get.attitude(_status.event.player,target)>0){
return 10+ai.get.attitude(_status.event.player,target);
if(get.attitude(_status.event.player,target)>0){
return 10+get.attitude(_status.event.player,target);
}
if(player.maxHp-player.hp==1){
return -1;
@ -2252,7 +2252,7 @@ character.shenhua={
var str2='摸一弃'+get.cnNumber(event.num,true);
player.chooseControl(str1,str2,function(event,player){
return _status.event.choice;
}).set('choice',ai.get.attitude(player,event.target)>0?str1:str2);
}).set('choice',get.attitude(player,event.target)>0?str1:str2);
event.str=str1;
}
}
@ -2305,8 +2305,8 @@ character.shenhua={
if(player.maxHp-player.hp==1&&target.countCards('he')==0){
return 0;
}
if(ai.get.attitude(_status.event.player,target)>0){
return 10+ai.get.attitude(_status.event.player,target);
if(get.attitude(_status.event.player,target)>0){
return 10+get.attitude(_status.event.player,target);
}
if(player.maxHp-player.hp==1){
return -1;
@ -2326,7 +2326,7 @@ character.shenhua={
var str2='摸一弃'+get.cnNumber(event.num,true);
player.chooseControl(str1,str2,function(event,player){
return _status.event.choice;
}).set('choice',ai.get.attitude(player,event.target)>0?str1:str2);
}).set('choice',get.attitude(player,event.target)>0?str1:str2);
event.str=str1;
}
}
@ -2375,7 +2375,7 @@ character.shenhua={
prompt:'将一张黑桃手牌当酒使用',
check:function(card){
if(_status.event.type=='dying') return 1;
return 4-ai.get.value(card);
return 4-get.value(card);
},
ai:{
skillTagFilter:function(player){
@ -2405,7 +2405,7 @@ character.shenhua={
next.autochoose=lib.filter.autoRespondShan;
next.ai=function(card){
if(trigger.target.countCards('h','shan')>1){
return ai.get.unuseful2(card);
return get.unuseful2(card);
}
return -1;
};
@ -2471,7 +2471,7 @@ character.shenhua={
if(event.list.length){
var current=event.list.shift();
event.current=current;
player.chooseBool(get.prompt('baonue',current)).set('choice',ai.get.attitude(player,current)>0);
player.chooseBool(get.prompt('baonue',current)).set('choice',get.attitude(player,current)>0);
}
else{
event.finish();
@ -2552,7 +2552,7 @@ character.shenhua={
var num=0;
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
var att=ai.get.attitude(player,players[i]);
var att=get.attitude(player,players[i]);
if(att>0) att=1;
if(att<0) att=-1;
if(players[i]!=player&&players[i].hp<=3){
@ -2609,9 +2609,9 @@ character.shenhua={
check:function(card){
var player=_status.currentPhase;
if(player.countCards('h')>player.hp){
return 6-ai.get.value(card);
return 6-get.value(card);
}
return 4-ai.get.value(card)
return 4-get.value(card)
}
},
bazhen:{
@ -2626,7 +2626,7 @@ character.shenhua={
effect:{
target:function(card,player,target){
if(player==target&&get.subtype(card)=='equip2'){
if(ai.get.equipValue(card)<=7.5) return 0;
if(get.equipValue(card)<=7.5) return 0;
}
if(target.getEquip(2)) return;
return lib.skill.bagua_skill.ai.effect.target.apply(this,arguments);
@ -2645,7 +2645,7 @@ character.shenhua={
},
viewAs:{name:'wuxie'},
prompt:'将一张黑色手牌当无懈可击使用',
check:function(card){return 8-ai.get.value(card)},
check:function(card){return 8-get.value(card)},
threaten:1.2
},
lianhuan:{
@ -2662,7 +2662,7 @@ character.shenhua={
},
viewAs:{name:'tiesuo'},
prompt:'将一张梅花牌当铁锁连环使用',
check:function(card){return 4-ai.get.value(card)}
check:function(card){return 4-get.value(card)}
},
lianhuan2:{
audio:2,
@ -2674,7 +2674,7 @@ character.shenhua={
return get.suit(card)=='club';
},
check:function(card){
return 5-ai.get.useful(card);
return 5-get.useful(card);
},
content:function(){
player.draw();
@ -2828,7 +2828,7 @@ character.shenhua={
var source=_status.event.source;
return target!=source&&get.distance(source,target,'attack')<=1;
},true).set('ai',function(target){
return ai.get.damageEffect(target,_status.event.source,player);
return get.damageEffect(target,_status.event.source,player);
}).set('source',target);
}
else{
@ -2849,14 +2849,14 @@ character.shenhua={
order:0.5,
result:{
target:function(player,target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
var oc=(target.countCards('h')==1);
if(att>0&&oc) return 0;
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i]!=target&&players[i]!=player&&
get.distance(target,players[i],'attack')<=1){
if(ai.get.damageEffect(players[i],target,player)>0){
if(get.damageEffect(players[i],target,player)>0){
return att>0?att/2:att-(oc?5:0);
}
}
@ -2874,7 +2874,7 @@ character.shenhua={
var max=player.maxHp-hs.length;
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(ai.get.attitude(player,players[i])>2){
if(get.attitude(player,players[i])>2){
max=Math.max(Math.min(5,players[i].hp)-players[i].countCards('h'),max);
}
}
@ -2899,7 +2899,7 @@ character.shenhua={
player.chooseTarget(get.prompt('jieming'),[1,trigger.num],function(card,player,target){
return target.countCards('h')<Math.min(target.maxHp,5);
}).set('ai',function(target){
var att=ai.get.attitude(_status.event.player,target);
var att=get.attitude(_status.event.player,target);
if(att>2){
return Math.min(5,target.maxHp)-target.countCards('h');
}
@ -2923,7 +2923,7 @@ character.shenhua={
var max=0;
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(ai.get.attitude(target,players[i])>0){
if(get.attitude(target,players[i])>0){
max=Math.max(Math.min(5,players[i].hp)-players[i].countCards('h'),max);
}
}
@ -2961,7 +2961,7 @@ character.shenhua={
target.damage();
},
check:function(card){
return 10-ai.get.value(card);
return 10-get.value(card);
},
position:'he',
ai:{
@ -2979,7 +2979,7 @@ character.shenhua={
if(player.hp==2&&target.hp>=2) return 0;
if(target.hp>player.hp) return 0;
}
return ai.get.damageEffect(target,player);
return get.damageEffect(target,player);
}
}
},
@ -3027,7 +3027,7 @@ character.shenhua={
target.damage();
},
check:function(card){
return 10-ai.get.value(card);
return 10-get.value(card);
},
position:'he',
ai:{
@ -3038,7 +3038,7 @@ character.shenhua={
if(player.hp<2) return 0;
if(target.hp>=player.hp) return 0;
}
return ai.get.damageEffect(target,player);
return get.damageEffect(target,player);
}
}
},
@ -3074,11 +3074,11 @@ character.shenhua={
return 1;
}
for(var i=0;i<cards.length;i++){
if(cards[i].name!='sha'&&cards[i].number>11&&ai.get.value(cards[i])<7){
if(cards[i].name!='sha'&&cards[i].number>11&&get.value(cards[i])<7){
return 9;
}
}
return ai.get.order({name:'sha'})-1;
return get.order({name:'sha'})-1;
},
result:{
player:function(player){
@ -3145,7 +3145,7 @@ character.shenhua={
return get.color(card)!=player.storage.shuangxiong;
},
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
ai:{
basic:{
@ -3172,7 +3172,7 @@ character.shenhua={
selectCard:2,
complexCard:true,
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
ai:{
basic:{
@ -3201,7 +3201,7 @@ character.shenhua={
return event.target.countCards('he')>0;
},
check:function(event,player){
return ai.get.attitude(player,event.target)<0;
return get.attitude(player,event.target)<0;
},
content:function(){
player.discardPlayerCard('he',trigger.target,true);
@ -3241,10 +3241,10 @@ character.shenhua={
});
next.set('ai',function(target){
if(type=='equip'){
return -ai.get.attitude(player,target);
return -get.attitude(player,target);
}
else{
return ai.get.attitude(player,target);
return get.attitude(player,target);
}
});
next.set('type',type);
@ -3280,7 +3280,7 @@ character.shenhua={
"step 0";
player.chooseTarget(get.prompt('releiji')).ai=function(target){
if(target.hasSkill('hongyan')) return 0;
return ai.get.damageEffect(target,_status.event.player,_status.event.player,'thunder');
return get.damageEffect(target,_status.event.player,_status.event.player,'thunder');
};
"step 1"
if(result.bool){
@ -3311,7 +3311,7 @@ character.shenhua={
target:function(card,player,target,current){
if(get.tag(card,'respondShan')){
var hastarget=game.hasPlayer(function(current){
return ai.get.attitude(target,current)<0;
return get.attitude(target,current)<0;
});
var be=target.countCards('e',{color:'black'});
if(target.countCards('h','shan')&&be){
@ -3356,7 +3356,7 @@ character.shenhua={
return player.canUse({name:'sha'},target,false);
}).set('check',check).set('ai',function(target){
if(!_status.event.check) return 0;
return ai.get.effect(target,{name:'sha'},_status.event.player);
return get.effect(target,{name:'sha'},_status.event.player);
});
"step 1"
if(result.bool){
@ -3389,11 +3389,11 @@ character.shenhua={
},
ai1:function(card){
if(_status.event.check) return 0;
return 6-ai.get.value(card);
return 6-get.value(card);
},
ai2:function(target){
if(_status.event.check) return 0;
return ai.get.effect(target,{name:'sha'},_status.event.player);
return get.effect(target,{name:'sha'},_status.event.player);
},
check:check
});
@ -3419,7 +3419,7 @@ character.shenhua={
return player.canUse({name:'sha'},target,false);
}).set('check',check).set('ai',function(target){
if(!_status.event.check) return 0;
return ai.get.effect(target,{name:'sha'},_status.event.player);
return get.effect(target,{name:'sha'},_status.event.player);
});
"step 1"
if(result.bool){
@ -3450,7 +3450,7 @@ character.shenhua={
audio:2,
trigger:{player:'shaBegin'},
check:function(event,player){
return ai.get.attitude(player,event.target)<=0;
return get.attitude(player,event.target)<=0;
},
logTarget:'target',
filter:function(event,player){
@ -3494,10 +3494,10 @@ character.shenhua={
return player!=target;
},
ai1:function(card){
return 10-ai.get.value(card);
return 10-get.value(card);
},
ai2:function(target){
var att=ai.get.attitude(_status.event.player,target);
var att=get.attitude(_status.event.player,target);
var trigger=_status.event.getTrigger();
var da=0;
if(_status.event.player.hp==1){
@ -3507,7 +3507,7 @@ character.shenhua={
if(target.maxHp>5&&target.hp>1) return -att/10+da;
return -att+da;
}
var eff=ai.get.damageEffect(target,trigger.source,target,trigger.nature);
var eff=get.damageEffect(target,trigger.source,target,trigger.nature);
if(att==0) return 0.1+da;
if(eff>=0&&trigger.num==1){
return att+da;
@ -3586,10 +3586,10 @@ character.shenhua={
},
position:'he',
ai1:function(card){
return 10-ai.get.value(card);
return 10-get.value(card);
},
ai2:function(target){
var att=ai.get.attitude(_status.event.player,target);
var att=get.attitude(_status.event.player,target);
var trigger=_status.event.getTrigger();
var da=0;
if(_status.event.player.hp==1){
@ -3599,7 +3599,7 @@ character.shenhua={
if(target.maxHp>5&&target.hp>1) return -att/10+da;
return -att+da;
}
var eff=ai.get.damageEffect(target,trigger.source,target,trigger.nature);
var eff=get.damageEffect(target,trigger.source,target,trigger.nature);
if(att==0) return 0.1+da;
if(eff>=0&&trigger.num==1){
return att+da;
@ -3662,7 +3662,7 @@ character.shenhua={
var num=player.maxHp-player.hp||0;
var str1='令'+get.translation(player)+'摸'+get.cnNumber(num)+'张牌';
var str2='令'+get.translation(player)+'防止造成和受到的所有伤害且天香失效直到你下一回合开始';
var att=ai.get.attitude(source,player);
var att=get.attitude(source,player);
var choice='选项一';
if(att<0){
if(num>=2){
@ -3907,7 +3907,7 @@ character.shenhua={
return false;
},
check:function(event,player){
return ai.get.attitude(player,event.player)>2;
return get.attitude(player,event.player)>2;
},
content:function(){
"step 0"
@ -3928,7 +3928,7 @@ character.shenhua={
"step 0";
player.chooseTarget(get.prompt('leiji')).ai=function(target){
if(target.hasSkill('hongyan')) return 0;
return ai.get.damageEffect(target,_status.event.player,_status.event.player,'thunder');
return get.damageEffect(target,_status.event.player,_status.event.player,'thunder');
};
"step 1"
if(result.bool){
@ -3954,7 +3954,7 @@ character.shenhua={
target:function(card,player,target,current){
if(get.tag(card,'respondShan')){
var hastarget=game.hasPlayer(function(current){
return ai.get.attitude(target,current)<0;
return get.attitude(target,current)<0;
});
if(target.countCards('h','shan')&&target.countCards('e',{suit:'spade'})){
return [0,hastarget?target.countCards('he')/2:0];
@ -3985,7 +3985,7 @@ character.shenhua={
var player=_status.event.player;
var judging=_status.event.judging;
var result=trigger.judge(card)-trigger.judge(judging);
var attitude=ai.get.attitude(player,trigger.player);
var attitude=get.attitude(player,trigger.player);
if(attitude==0||result==0) return 0;
if(attitude>0){
return result;
@ -4079,7 +4079,7 @@ character.shenhua={
var cards=player.getCards('h');
if(cards.length>=3&&player.hp>=3) return 0;
for(var i=0;i<cards.length;i++){
num+=Math.max(0,ai.get.value(cards[i],player,'raw'));
num+=Math.max(0,get.value(cards[i],player,'raw'));
}
num/=cards.length;
num*=Math.min(cards.length,player.hp);

File diff suppressed because it is too large Load Diff

View File

@ -87,7 +87,7 @@ character.standard={
});
},
check:function(event,player){
if(ai.get.damageEffect(player,event.player,player)>=0) return false;
if(get.damageEffect(player,event.player,player)>=0) return false;
return true;
},
content:function(){
@ -98,13 +98,13 @@ character.standard={
}
else if(event.current.group=='wei'){
if((event.current==game.me&&!_status.auto)||(
ai.get.attitude(event.current,player)>2)||
get.attitude(event.current,player)>2)||
event.current.isOnline()){
player.storage.hujiaing=true;
var next=event.current.chooseToRespond('是否替'+get.translation(player)+'打出一张闪?',{name:'shan'});
next.set('ai',function(){
var event=_status.event;
return (ai.get.attitude(event.player,event.source)-2);
return (get.attitude(event.player,event.source)-2);
});
next.autochoose=lib.filter.autoRespondShan;
next.set('source',player);
@ -157,14 +157,14 @@ character.standard={
return (event.source&&event.source.countCards('he')&&event.source!=player);
},
content:function(){
player.gainPlayerCard(get.prompt('fankui',trigger.source),trigger.source,ai.get.buttonValue,'he').set('logSkill',['fankui',trigger.source]);
player.gainPlayerCard(get.prompt('fankui',trigger.source),trigger.source,get.buttonValue,'he').set('logSkill',['fankui',trigger.source]);
},
ai:{
effect:{
target:function(card,player,target){
if(player.countCards('he')>1&&get.tag(card,'damage')){
if(player.hasSkillTag('jueqing')) return [1,-1.5];
if(ai.get.attitude(target,player)<0) return [1,1];
if(get.attitude(target,player)<0) return [1,1];
}
}
}
@ -185,13 +185,13 @@ character.standard={
var player=_status.event.player;
var judging=_status.event.judging;
var result=trigger.judge(card)-trigger.judge(judging);
var attitude=ai.get.attitude(player,trigger.player);
var attitude=get.attitude(player,trigger.player);
if(attitude==0||result==0) return 0;
if(attitude>0){
return result-ai.get.value(card)/2;
return result-get.value(card)/2;
}
else{
return -result-ai.get.value(card)/2;
return -result-get.value(card)/2;
}
}).set('judging',trigger.player.judging[0]);
"step 1"
@ -235,7 +235,7 @@ character.standard={
return (event.source!=undefined);
},
check:function(event,player){
return (ai.get.attitude(player,event.source)<=0);
return (get.attitude(player,event.source)<=0);
},
content:function(){
"step 0"
@ -250,7 +250,7 @@ character.standard={
trigger.source.chooseToDiscard(2).set('ai',function(card){
if(card.name=='tao') return -10;
if(card.name=='jiu'&&_status.event.player.hp==1) return -10;
return ai.get.unuseful(card)+2.5*(5-get.owner(card).hp);
return get.unuseful(card)+2.5*(5-get.owner(card).hp);
});
"step 2"
if(result.bool==false){
@ -261,7 +261,7 @@ character.standard={
result:{
target:function(card,player,target){
if(player.hasSkillTag('jueqing')) return [1,-1];
if(get.tag(card,'damage')&&ai.get.damageEffect(target,player,player)>0) return [1,0,0,-1.5];
if(get.tag(card,'damage')&&get.damageEffect(target,player,player)>0) return [1,0,0,-1.5];
}
}
}
@ -274,14 +274,14 @@ character.standard={
"step 0"
var check;
var i,num=game.countPlayer(function(current){
return current!=player&&current.countCards('h')&&ai.get.attitude(player,current)<=0;
return current!=player&&current.countCards('h')&&get.attitude(player,current)<=0;
});
check=(num>=2);
player.chooseTarget(get.prompt('tuxi'),[1,2],function(card,player,target){
return target.countCards('h')>0&&player!=target;
},function(target){
if(!_status.event.aicheck) return 0;
var att=ai.get.attitude(_status.event.player,target);
var att=get.attitude(_status.event.player,target);
if(target.hasSkill('tuntian')) return att/10;
return 1-att;
}).set('aicheck',check);
@ -310,7 +310,7 @@ character.standard={
if(player.countCards('h')<3) return false;
if(!player.hasSha()) return false;
return game.hasPlayer(function(current){
return ai.get.attitude(player,current)<0&&player.canUse('sha',current);
return get.attitude(player,current)<0&&player.canUse('sha',current);
});
},
content:function(){
@ -377,7 +377,7 @@ character.standard={
return (_status.event.player.countCards('h')-_status.event.player.hp);
},
ai2:function(target){
var att=ai.get.attitude(_status.event.player,target);
var att=get.attitude(_status.event.player,target);
if(ui.selected.cards.length&&ui.selected.cards[0].name=='du'){
if(target.hasSkillTag('nodu')) return 0;
return 1-att;
@ -507,16 +507,16 @@ character.standard={
if(players[i].hasSkill('haoshi')&&
!players[i].isTurnedOver()&&
!players[i].hasJudge('lebu')&&
ai.get.attitude(player,players[i])>=3&&
ai.get.attitude(players[i],player)>=3){
return 11-ai.get.value(card);
get.attitude(player,players[i])>=3&&
get.attitude(players[i],player)>=3){
return 11-get.value(card);
}
}
if(player.countCards('h')>player.hp) return 10-ai.get.value(card);
if(player.countCards('h')>2) return 6-ai.get.value(card);
if(player.countCards('h')>player.hp) return 10-get.value(card);
if(player.countCards('h')>2) return 6-get.value(card);
return -1;
}
return 10-ai.get.value(card);
return 10-get.value(card);
},
content:function(){
target.gain(cards,player);
@ -559,7 +559,7 @@ character.standard={
if(player.countCards('e',{subtype:get.subtype(card)})){
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i]!=player&&ai.get.attitude(player,players[i])>0){
if(players[i]!=player&&get.attitude(player,players[i])>0){
return 0;
}
}
@ -608,7 +608,7 @@ character.standard={
var next=event.current.chooseToRespond('是否替'+get.translation(player)+'打出一张杀?',{name:'sha'});
next.set('ai',function(){
var event=_status.event;
return (ai.get.attitude(event.player,event.source)-2);
return (get.attitude(event.player,event.source)-2);
});
next.set('source',player);
next.autochoose=lib.filter.autoRespondSha;
@ -672,7 +672,7 @@ character.standard={
});
next.set('ai',function(card){
var event=_status.event;
return ai.get.effect(event.target,card,event.source,event.player);
return get.effect(event.target,card,event.source,event.player);
});
next.set('source',player);
next.set('target',target);
@ -705,11 +705,11 @@ character.standard={
result:{
target:function(player,target){
if(player.hasSkill('jijiang3')) return 0;
return ai.get.effect(target,{name:'sha'},player,target);
return get.effect(target,{name:'sha'},player,target);
}
},
order:function(){
return ai.get.order({name:'sha'})-0.1;
return get.order({name:'sha'})-0.1;
},
}
},
@ -743,7 +743,7 @@ character.standard={
}
},
prompt:'将一张红色牌当杀使用或打出',
check:function(card){return 4-ai.get.value(card)},
check:function(card){return 4-get.value(card)},
ai:{
skillTagFilter:function(player){
if(get.zhu(player,'shouyue')){
@ -811,10 +811,10 @@ character.standard={
var bottom;
if(!stopped){
cards.sort(function(a,b){
return ai.get.value(b,player)-ai.get.value(a,player);
return get.value(b,player)-get.value(a,player);
});
while(cards.length){
if(ai.get.value(cards[0],player)<=5) break;
if(get.value(cards[0],player)<=5) break;
top.unshift(cards.shift());
}
}
@ -1031,7 +1031,7 @@ character.standard={
if(!player.countCards('h','shan')) return false;
},
order:function(){
return ai.get.order({name:'sha'})+0.1;
return get.order({name:'sha'})+0.1;
},
useful:-1,
value:-1
@ -1082,7 +1082,7 @@ character.standard={
audio:2,
trigger:{player:'shaBegin'},
check:function(event,player){
return ai.get.attitude(player,event.target)<=0;
return get.attitude(player,event.target)<=0;
},
logTarget:'target',
content:function(){
@ -1135,7 +1135,7 @@ character.standard={
selectCard:[1,Infinity],
prompt:'弃置任意张牌并摸等量的牌',
check:function(card){
return 6-ai.get.value(card)
return 6-get.value(card)
},
content:function(){
player.draw(cards.length);
@ -1177,7 +1177,7 @@ character.standard={
if(!player.countCards('he',{color:'black'})) return false;
},
prompt:'将一张黑色牌当过河拆桥使用',
check:function(card){return 4-ai.get.value(card)}
check:function(card){return 4-get.value(card)}
},
keji:{
audio:4,
@ -1259,12 +1259,12 @@ character.standard={
order:1,
result:{
target:function(player,target){
var eff=ai.get.damageEffect(target,player);
var eff=get.damageEffect(target,player);
if(eff>=0) return 1+eff;
var value=0,i;
var cards=player.getCards('h');
for(i=0;i<cards.length;i++){
value+=ai.get.value(cards[i]);
value+=get.value(cards[i]);
}
value/=player.countCards('h');
if(target.hp==1) return Math.min(0,value-7);
@ -1285,7 +1285,7 @@ character.standard={
position:'he',
viewAs:{name:'lebu'},
prompt:'将一张方片牌当乐不思蜀使用',
check:function(card){return 6-ai.get.value(card)},
check:function(card){return 6-get.value(card)},
ai:{
threaten:1.5
}
@ -1316,20 +1316,20 @@ character.standard={
return false;
},
ai1:function(card){
return ai.get.unuseful(card)+9;
return get.unuseful(card)+9;
},
ai2:function(target){
if(_status.event.player.countCards('h','shan')){
return -ai.get.attitude(_status.event.player,target);
return -get.attitude(_status.event.player,target);
}
if(ai.get.attitude(_status.event.player,target)<5){
return 6-ai.get.attitude(_status.event.player,target);
if(get.attitude(_status.event.player,target)<5){
return 6-get.attitude(_status.event.player,target);
}
if(_status.event.player.hp==1&&player.countCards('h','shan')==0){
return 10-ai.get.attitude(_status.event.player,target);
return 10-get.attitude(_status.event.player,target);
}
if(_status.event.player.hp==2&&player.countCards('h','shan')==0){
return 8-ai.get.attitude(_status.event.player,target);
return 8-get.attitude(_status.event.player,target);
}
return -1;
},
@ -1358,15 +1358,15 @@ character.standard={
if(target.countCards('he')==0) return;
if(card.name!='sha') return;
var min=1;
var friend=ai.get.attitude(player,target)>0;
var friend=get.attitude(player,target)>0;
var vcard={name:'shacopy',nature:card.nature,suit:card.suit};
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(player!=players[i]&&
ai.get.attitude(target,players[i])<0&&
get.attitude(target,players[i])<0&&
target.canUse(card,players[i])){
if(!friend) return 0;
if(ai.get.effect(players[i],vcard,player,player)>0){
if(get.effect(players[i],vcard,player,player)>0){
if(!player.canUse(card,players[0])){
return [0,0.1];
}
@ -1450,10 +1450,10 @@ character.standard={
check:function(card){
var player=get.owner(card);
if(player.countCards('h')>player.hp)
return 8-ai.get.value(card)
return 8-get.value(card)
if(player.hp<player.maxHp)
return 6-ai.get.value(card)
return 4-ai.get.value(card)
return 6-get.value(card)
return 4-get.value(card)
},
filterTarget:function(card,player,target){
@ -1485,7 +1485,7 @@ character.standard={
filterCard:true,
usable:1,
check:function(card){
return 9-ai.get.value(card)
return 9-get.value(card)
},
filterTarget:function(card,player,target){
if(target.hp>=target.maxHp) return false;
@ -1518,7 +1518,7 @@ character.standard={
position:'he',
viewAs:{name:'tao'},
prompt:'将一张红色牌当桃使用',
check:function(card){return 15-ai.get.value(card)},
check:function(card){return 15-get.value(card)},
ai:{
skillTagFilter:function(player){
return player.countCards('he',{color:'red'})>0&&_status.currentPhase!=player;
@ -1544,7 +1544,7 @@ character.standard={
next.autochoose=lib.filter.autoRespondShan;
next.set('ai',function(card){
if(_status.event.player.countCards('h','shan')>1){
return ai.get.unuseful2(card);
return get.unuseful2(card);
}
return -1;
});
@ -1569,8 +1569,8 @@ character.standard={
next.set('ai',function(card){
var player=_status.event.player;
var trigger=_status.event.getTrigger();
if(ai.get.attitude(trigger.turn,player)<0&&trigger.turn.countCards('h','sha')>1){
return ai.get.unuseful2(card);
if(get.attitude(trigger.turn,player)<0&&trigger.turn.countCards('h','sha')>1){
return get.unuseful2(card);
}
return -1;
});
@ -1596,7 +1596,7 @@ character.standard={
return current!=player&&current.sex=='male';
})>1;
},
check:function(card){return 10-ai.get.value(card)},
check:function(card){return 10-get.value(card)},
filterCard:true,
position:'he',
filterTarget:function(card,player,target){
@ -1622,7 +1622,7 @@ character.standard={
return -3;
}
else{
return ai.get.effect(target,{name:'juedou'},ui.selected.targets[0],target);
return get.effect(target,{name:'juedou'},ui.selected.targets[0],target);
}
}
},

File diff suppressed because it is too large Load Diff

View File

@ -12,8 +12,8 @@ character.xiake={
trigger:{source:'damageBegin'},
logTarget:'player',
check:function(event,player){
if(ai.get.damageEffect(event.player,player,player)>0&&
ai.get.attitude(player,event.player)<0){
if(get.damageEffect(event.player,player,player)>0&&
get.attitude(player,event.player)<0){
return player.hp>event.player.hp&&player.hp>=2;
}
return false;
@ -39,11 +39,11 @@ character.xiake={
discard:false,
delay:0.5,
check:function(card,player){
var val=ai.get.equipValue(card);
var val=get.equipValue(card);
var player=_status.event.player;
var cards=player.getCards('h',{subtype:get.subtype(card)});
for(var i=0;i<cards.length;i++){
if(ai.get.equipValue(cards[i])>=val){
if(get.equipValue(cards[i])>=val){
return 1;
}
}

View File

@ -99,7 +99,7 @@ character.xianjian={
check:function(event,player){
if(player.hp==1&&player.hujia==0) return false;
var num=game.countPlayer(function(current){
var eff=get.sgn(ai.get.damageEffect(current,player,player,'fire'));
var eff=get.sgn(get.damageEffect(current,player,player,'fire'));
if(current.hp==1&&current.hujia==0) eff*=1.5;
return eff;
});
@ -129,8 +129,8 @@ character.xianjian={
},
filterCard:{color:'red'},
check:function(card){
if(get.suit(card)=='heart') return 7-ai.get.value(card);
return 5-ai.get.value(card);
if(get.suit(card)=='heart') return 7-get.value(card);
return 5-get.value(card);
},
onuse:function(result){
if(result.targets){
@ -142,7 +142,7 @@ character.xianjian={
group:'yanzhan2',
ai:{
order:function(){
return ai.get.order({name:'sha'})+0.15;
return get.order({name:'sha'})+0.15;
},
},
},
@ -197,7 +197,7 @@ character.xianjian={
return player.countCards('he',{color:'red'})>0;
},
check:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
content:function(){
var targets=player.getEnemies();
@ -243,7 +243,7 @@ character.xianjian={
trigger.target.chooseTarget(function(card,player,target){
return target!=player&&target!=_status.event.parent.player&&target.countCards('he')>0;
},'选择一名角色并令'+get.translation(player)+'弃置其一张牌').ai=function(target){
return -ai.get.attitude(_status.event.player,target);
return -get.attitude(_status.event.player,target);
};
}
else{
@ -367,7 +367,7 @@ character.xianjian={
return event.target.countCards('h')>player.countCards('h');
},
check:function(event,player){
return ai.get.attitude(player,event.target)<0;
return get.attitude(player,event.target)<0;
},
logTarget:'target',
content:function(){
@ -407,7 +407,7 @@ character.xianjian={
return type=='basic'||type=='equip'||type=='trick';
},
check:function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
},
filter:function(event,player){
return player.countCards('h')>0;
@ -465,7 +465,7 @@ character.xianjian={
player.storage.danqing.length=0;
player.updateMarks();
player.chooseTarget(get.prompt('danqing'),[1,get.is.altered('danqing')?2:4]).ai=function(target){
return ai.get.attitude(player,target);
return get.attitude(player,target);
}
'step 1'
if(result.bool){
@ -520,7 +520,7 @@ character.xianjian={
player.chooseTarget('令一名角色摸一张牌',function(card,player,target){
return !event.targets.contains(target);
}).ai=function(target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(att>0){
return att+1/Math.sqrt(1+target.countCards('h'));
}
@ -538,7 +538,7 @@ character.xianjian={
player.chooseTarget('令一名角色获得一点护甲',function(card,player,target){
return !event.targets.contains(target);
}).ai=function(target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(att>0){
return att+1/Math.sqrt(1+target.hp);
}
@ -562,7 +562,7 @@ character.xianjian={
player.chooseTarget('令一名角色装备一件随机装备',function(card,player,target){
return !event.targets.contains(target);
}).ai=function(target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(att>0&&!target.getEquip(5)){
return att;
}
@ -594,7 +594,7 @@ character.xianjian={
player.chooseTarget('令一名角色获得潜行',function(card,player,target){
return !event.targets.contains(target);
}).ai=function(target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(att>0){
return att+1/Math.sqrt(1+target.hp);
}
@ -649,11 +649,11 @@ character.xianjian={
},
check:function(event,player){
if(player.isUnseen()) return false;
if(ai.get.attitude(player,event.player)>=0) return false;
if(get.attitude(player,event.player)>=0) return false;
var hs=player.getCards('h');
if(hs.length<event.player.countCards('h')) return false;
for(var i=0;i<hs.length;i++){
var val=ai.get.value(hs[0]);
var val=get.value(hs[0]);
if(hs[i].number>=10&&val<=6) return true;
if(hs[i].number>=8&&val<=3) return true;
}
@ -712,7 +712,7 @@ character.xianjian={
usable:1,
content:function(){
"step 0"
var goon=(ai.get.damageEffect(player,trigger.player,player)<=0);
var goon=(get.damageEffect(player,trigger.player,player)<=0);
player.chooseCard(get.prompt('zhangmu'),{name:'shan'}).ai=function(){
return goon?1:0;
}
@ -775,7 +775,7 @@ character.xianjian={
var num2=0;
for(var i=0;i<player.storage.leiyu.length;i++){
if(!player.storage.leiyu[i].isIn()) continue;
var eff=ai.get.effect(player.storage.leiyu[i],{name:'jingleishan',nature:'thunder'},player,player);
var eff=get.effect(player.storage.leiyu[i],{name:'jingleishan',nature:'thunder'},player,player);
num+=eff;
if(eff>0){
num2++;
@ -787,7 +787,7 @@ character.xianjian={
var next=player.chooseToDiscard(get.prompt('leiyu',player.storage.leiyu),{color:'black'});
next.ai=function(card){
if(num>0&&num2>=2){
return 7-ai.get.value(card);
return 7-get.value(card);
}
return 0;
};
@ -873,7 +873,7 @@ character.xianjian={
});
for(var i=0;i<players.length;i++){
if(player!=players[i]&&target!=players[i]&&player.canUse('sha',players[i],false)){
num+=ai.get.effect(players[i],{name:'sha'},player,player);
num+=get.effect(players[i],{name:'sha'},player,player);
}
}
return num>0;
@ -924,7 +924,7 @@ character.xianjian={
return player.countCards('h',{color:'black'});
},
check:function(card){
return 5-ai.get.value(card);
return 5-get.value(card);
},
content:function(){
target.addSkill('guijiang2');
@ -1042,7 +1042,7 @@ character.xianjian={
player.chooseTarget('灵愈:令一名其他角色回复一点体力',function(card,player,target){
return target!=player&&target.hp<target.maxHp;
}).ai=function(target){
return ai.get.recoverEffect(target,player,player);
return get.recoverEffect(target,player,player);
};
'step 1'
if(result.bool){
@ -1065,7 +1065,7 @@ character.xianjian={
'step 0'
if(player.countCards('h')){
player.chooseCardButton('读心',target.getCards('h')).ai=function(button){
return ai.get.value(button.link)-5;
return get.value(button.link)-5;
}
}
else{
@ -1076,7 +1076,7 @@ character.xianjian={
if(result.bool){
event.card=result.links[[0]];
player.chooseCard('h',true,'用一张手牌替换'+get.translation(event.card)).ai=function(card){
return -ai.get.value(card);
return -get.value(card);
};
}
else{
@ -1108,7 +1108,7 @@ character.xianjian={
return event.card&&event.card.name=='shan';
},
check:function(event,player){
return ai.get.attitude(player,event.player)>0;
return get.attitude(player,event.player)>0;
},
logTarget:'player',
content:function(){
@ -1224,9 +1224,9 @@ character.xianjian={
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(lib.filter.targetEnabled({name:'sha'},player,players[i])&&
ai.get.effect(players[i],{name:'sha'},player)>0){
get.effect(players[i],{name:'sha'},player)>0){
num++;
if(num>1) return 8-ai.get.value(card);
if(num>1) return 8-get.value(card);
}
}
return 0;
@ -1238,7 +1238,7 @@ character.xianjian={
},
ai:{
order:function(){
return ai.get.order({name:'sha'})+0.1;
return get.order({name:'sha'})+0.1;
},
effect:{
player:function(card,player){
@ -1249,7 +1249,7 @@ character.xianjian={
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(lib.filter.targetEnabled({name:'sha'},player,players[i])&&
ai.get.attitude(player,players[i])<0){
get.attitude(player,players[i])<0){
num++;
if(num>1) return [0,0,0,0];
}
@ -1284,8 +1284,8 @@ character.xianjian={
return target!=player&&!target.hasSkill('ctianfu2');
},
check:function(card){
if(_status.event.player.hp>=3) return 8-ai.get.value(card);
return 7-ai.get.value(card);
if(_status.event.player.hp>=3) return 8-get.value(card);
return 7-get.value(card);
},
content:function(){
target.storage.ctianfu2=cards[0];
@ -1297,9 +1297,9 @@ character.xianjian={
order:2,
result:{
target:function(player,target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(att>=0) return 0;
return ai.get.damageEffect(target,player,target,'thunder');
return get.damageEffect(target,player,target,'thunder');
}
},
expose:0.2
@ -1381,7 +1381,7 @@ character.xianjian={
player.chooseCard(get.prompt('shuiyun'),function(card){
return !types.contains(get.type(card,'trick'));
}).ai=function(card){
return 11-ai.get.value(card);
return 11-get.value(card);
};
"step 1"
if(result.bool){
@ -1442,7 +1442,7 @@ character.xianjian={
content:function(){
"step 0"
player.chooseCardButton(player.storage.shuiyun,get.prompt('shuiyun',trigger.player)).ai=function(button){
return ai.get.attitude(player,trigger.player)>2?1:0;
return get.attitude(player,trigger.player)>2?1:0;
}
"step 1"
if(result.bool){
@ -1490,7 +1490,7 @@ character.xianjian={
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].hasSkill('wangyou3')){
var att=ai.get.attitude(player,players[i]);
var att=get.attitude(player,players[i]);
if(att>0) num++;
else if(att<0) num--;
targets.push(players[i]);
@ -1502,9 +1502,9 @@ character.xianjian={
next.ai=function(card){
if(num<=0) return 0;
switch(num){
case 1:return 5-ai.get.value(card);
case 2:return 7-ai.get.value(card);
default:return 8-ai.get.value(card);
case 1:return 5-get.value(card);
case 2:return 7-get.value(card);
default:return 8-get.value(card);
}
}
"step 1"
@ -1546,7 +1546,7 @@ character.xianjian={
player.chooseTarget(get.prompt('changnian'),function(card,player,target){
return player!=target;
}).ai=function(target){
return ai.get.attitude(player,target);
return get.attitude(player,target);
};
"step 1"
if(result.bool){
@ -1597,9 +1597,9 @@ character.xianjian={
check:function(card){
var player=_status.currentPhase;
if(player.countCards('h')>player.hp){
return 7-ai.get.value(card);
return 7-get.value(card);
}
return 4-ai.get.value(card);
return 4-get.value(card);
},
content:function(){
"step 0"
@ -1616,7 +1616,7 @@ character.xianjian={
order:3,
result:{
target:function(player,target){
return ai.get.recoverEffect(target);
return get.recoverEffect(target);
}
},
threaten:1.5
@ -1672,7 +1672,7 @@ character.xianjian={
player.chooseTarget(get.prompt('duci'),function(card,player,target){
return player!=target&&get.distance(player,target)<=1;
}).ai=function(target){
return ai.get.damageEffect(target,player,player);
return get.damageEffect(target,player,player);
};
"step 1"
if(result.bool){
@ -1689,7 +1689,7 @@ character.xianjian={
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(player!=players[i]&&get.distance(player,players[i])<=1&&
ai.get.damageEffect(players[i],player,player)>0){
get.damageEffect(players[i],player,player)>0){
return [1,3];
}
}
@ -1793,7 +1793,7 @@ character.xianjian={
player.chooseTarget([1,trigger.cards.length],get.prompt('qijian'),function(card,player,target){
return player.canUse({name:'sha'},target,false);
}).ai=function(target){
return ai.get.effect(target,{name:'sha'},player);
return get.effect(target,{name:'sha'},player);
};
"step 1"
if(result.bool){
@ -1809,11 +1809,11 @@ character.xianjian={
return event.player.hp<=0&&player.countCards('h',{color:'red'});
},
check:function(event,player){
if(ai.get.attitude(player,event.player)<=0) return false;
if(get.attitude(player,event.player)<=0) return false;
var cards=player.getCards('h',{color:'red'});
for(var i=0;i<cards.length;i++){
if(cards[i].name=='tao') return false;
if(ai.get.value(cards[i])>7&&cards.length>2) return false;
if(get.value(cards[i])>7&&cards.length>2) return false;
}
},
content:function(){
@ -1848,7 +1848,7 @@ character.xianjian={
for(var i=0;i<players.length;i++){
if(players[i]!=player&&!players[i].isOut()&&
lib.filter.targetEnabled({name:'wanjian'},player,players[i])){
ainum+=ai.get.effect(players[i],{name:'wanjian'});
ainum+=get.effect(players[i],{name:'wanjian'});
event.targets.push(players[i]);
}
}
@ -1857,9 +1857,9 @@ character.xianjian={
next.ai=function(card){
if(ainum>=0){
switch(num){
case 1:return 8-ai.get.value(card);
case 2:return 6-ai.get.value(card);
case 3:return 4-ai.get.value(card);
case 1:return 8-get.value(card);
case 2:return 6-get.value(card);
case 3:return 4-get.value(card);
}
}
return -1;
@ -1965,7 +1965,7 @@ character.xianjian={
usable:1,
locked:false,
check:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
multitarget:true,
multiline:true,
@ -2081,7 +2081,7 @@ character.xianjian={
return !player.storage.guanri&&player.countCards('h',{color:'red'})>=2;
},
check:function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
},
filterCard:function(card){
return get.color(card)=='red';
@ -2109,7 +2109,7 @@ character.xianjian={
order:1,
result:{
target:function(player,target){
var eff=ai.get.damageEffect(target,player,target,'fire');
var eff=get.damageEffect(target,player,target,'fire');
if(player.hp>2) return eff;
if(player.hp==2&&target.hp==2) return eff;
return 0;
@ -2165,7 +2165,7 @@ character.xianjian={
player.chooseTarget(get.prompt('runxin'),function(card,player,target){
return target.hp<target.maxHp
}).ai=function(target){
var num=ai.get.attitude(player,target);
var num=get.attitude(player,target);
if(num>0){
if(noneed&&player==target){
num=0.5;
@ -2203,7 +2203,7 @@ character.xianjian={
player.chooseTarget(get.prompt('zhimeng'),function(card,player,target){
return player!=target;
}).ai=function(target){
var num=ai.get.attitude(player,target);
var num=get.attitude(player,target);
if(num>0){
if(player==target){
num++;
@ -2308,12 +2308,12 @@ character.xianjian={
check:function(card){
var player=_status.currentPhase;
if(player.countCards('h',{subtype:get.subtype(card)})>1){
return 11-ai.get.equipValue(card);
return 11-get.equipValue(card);
}
if(player.countCards('h')<player.hp){
return 6-ai.get.value(card);
return 6-get.value(card);
}
return 2-ai.get.equipValue(card);
return 2-get.equipValue(card);
},
mod:{
targetInRange:function(card,player,target,now){
@ -2345,7 +2345,7 @@ character.xianjian={
return game.players.length>3&&(event.player==player.next||event.player==player.previous);
},
check:function(event,player){
return ai.get.effect(player,event.card,event.player,player)<0
return get.effect(player,event.card,event.player,player)<0
},
changeSeat:true,
trigger:{target:'useCardToBefore'},
@ -2380,7 +2380,7 @@ character.xianjian={
},
filterCard:true,
check:function(card){
return 4-ai.get.value(card);
return 4-get.value(card);
},
content:function(){
while(player.next!=target){
@ -2391,9 +2391,9 @@ character.xianjian={
order:5,
result:{
player:function(player,target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(target==player.previous&&att>0) return 1;
if(target==player.next.next&&ai.get.attitude(player,player.next)<0) return 1;
if(target==player.next.next&&get.attitude(player,player.next)<0) return 1;
return 0;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -154,7 +154,7 @@ character.yxs={
return event.source&&event.source.isIn()&&event.source!=player&&!event.source.hasJudge('lebu');
},
check:function(event,player){
return ai.get.attitude(player,event.source)<=0;
return get.attitude(player,event.source)<=0;
},
logTarget:'source',
content:function(){
@ -177,13 +177,13 @@ character.yxs={
order:function(){
var player=_status.event.player;
if(player.hasCard(function(card){
return ai.get.value(card)>=8;
return get.value(card)>=8;
})){
return 0;
}
var nh=player.countCards('h');
if(game.hasPlayer(function(current){
return ai.get.attitude(player,current)<=0&&current.countCards('h')==nh+1;
return get.attitude(player,current)<=0&&current.countCards('h')==nh+1;
})){
return 9;
}
@ -191,10 +191,10 @@ character.yxs={
},
result:{
player:function(player,target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(att>0) return 0;
if(player.hasCard(function(card){
return ai.get.value(card)>=8;
return get.value(card)>=8;
})){
return 0;
}
@ -236,7 +236,7 @@ character.yxs={
order:8,
result:{
target:function(player,target){
return ai.get.damageEffect(target,player,target);
return get.damageEffect(target,player,target);
}
}
}
@ -251,8 +251,8 @@ character.yxs={
'step 0'
var next=player.chooseToDiscard('e',get.prompt('wlianhuan',trigger.player),'弃置一张装备区内的牌使伤害+1');
next.ai=function(card){
if(ai.get.attitude(player,trigger.player)<0){
return 7-ai.get.value(card);
if(get.attitude(player,trigger.player)<0){
return 7-get.value(card);
}
return 0;
}
@ -270,7 +270,7 @@ character.yxs={
return get.distance(player,target)<=1&&lib.filter.cardEnabled({name:'tao'},target,target);
},
check:function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
},
discard:false,
filter:function(event,player){
@ -287,7 +287,7 @@ character.yxs={
order:9.5,
result:{
target:function(player,target){
return ai.get.recoverEffect(target,player,target);
return get.recoverEffect(target,player,target);
}
},
threaten:1.6
@ -314,7 +314,7 @@ character.yxs={
position:'he',
selectCard:2,
check:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
content:function(){
player.awakenSkill('yixin');
@ -330,7 +330,7 @@ character.yxs={
result:{
target:function(player,target){
if(target.hp==1&&target.maxHp>=3){
return ai.get.recoverEffect(target,player,player);
return get.recoverEffect(target,player,player);
}
return 0;
}
@ -382,7 +382,7 @@ character.yxs={
return (_status.event.player.countCards('h')-_status.event.player.hp);
},
ai2:function(target){
var att=ai.get.attitude(_status.event.player,target);
var att=get.attitude(_status.event.player,target);
if(ui.selected.cards.length&&ui.selected.cards[0].name=='du'){
return 1-att;
}
@ -463,7 +463,7 @@ character.yxs={
return (_status.event.player.countCards('h')-_status.event.player.hp);
},
ai2:function(target){
var att=ai.get.attitude(_status.event.player,target);
var att=get.attitude(_status.event.player,target);
if(ui.selected.cards.length&&ui.selected.cards[0].name=='du'){
return 1-att;
}
@ -499,7 +499,7 @@ character.yxs={
player.chooseTarget(get.prompt('yaoyi'),[1,2],function(card,player,target){
return target.countCards('h')&&target.group!='qun'&&target!=player;
}).set('ai',function(target){
return 0.5-ai.get.attitude(_status.event.player,target);
return 0.5-get.attitude(_status.event.player,target);
});
'step 1'
if(result.bool){
@ -513,7 +513,7 @@ character.yxs={
if(event.targets&&event.targets.length){
event.target=event.targets.shift();
event.target.chooseCard('交给'+get.translation(player)+'一张手牌',true).ai=function(card){
return -ai.get.value(card);
return -get.value(card);
}
}
else{
@ -538,7 +538,7 @@ character.yxs={
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].group!='qun'&&
ai.get.attitude(player,players[i])<=0&&players[i]!=player){
get.attitude(player,players[i])<=0&&players[i]!=player){
if(target.hp>=4) return [1,get.tag(card,'damage')*2];
if(target.hp==3) return [1,get.tag(card,'damage')*1.5];
if(target.hp==2) return [1,get.tag(card,'damage')*0.5];
@ -556,7 +556,7 @@ character.yxs={
return event.player!=player&&event.player.hp<=0&&event.player.group=='qun';
},
check:function(event,player){
return ai.get.attitude(player,event.player)<0;
return get.attitude(player,event.player)<0;
},
forced:true,
logTarget:'player',
@ -657,7 +657,7 @@ character.yxs={
filterCard:true,
position:'he',
check:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
content:function(){
player.setAvatar('yxs_luobinhan','yxs_luobinhan');
@ -689,7 +689,7 @@ character.yxs={
viewAs:{name:'wuzhong'},
filterCard:{suit:'heart'},
check:function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
}
},
dili:{
@ -745,7 +745,7 @@ character.yxs={
usable:1,
selectCard:2,
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
filterTarget:function(card,player,target){
return target.hp<target.maxHp;
@ -788,7 +788,7 @@ character.yxs={
}
},
check:function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
},
ai:{
order:1,
@ -817,7 +817,7 @@ character.yxs={
target.link();
},
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
ai:{
order:2,
@ -876,7 +876,7 @@ character.yxs={
return (_status.event.player.countCards('h')-_status.event.player.hp);
},
ai2:function(target){
return ai.get.attitude(_status.event.player,target)-4;
return get.attitude(_status.event.player,target)-4;
},
prompt:'请选择要送人的卡牌'
});
@ -935,7 +935,7 @@ character.yxs={
ai:{
result:{
target:function(player,target){
return ai.get.damageEffect(target,player,target);
return get.damageEffect(target,player,target);
}
}
}
@ -970,7 +970,7 @@ character.yxs={
return !event.directHit;
},
check:function(event,player){
if(ai.get.attitude(player,event.target)>=0) return false;
if(get.attitude(player,event.target)>=0) return false;
if(event.target.getEquip('bagua')) return false;
if(event.target.hasSkillTag('respondShan')&&event.target.countCards('h')>=3) return false;
return true;
@ -981,7 +981,7 @@ character.yxs={
var next=trigger.target.chooseToRespond({name:'shan'});
next.autochoose=lib.filter.autoRespondShan;
next.ai=function(card){
return ai.get.unuseful2(card);
return get.unuseful2(card);
};
player.storage.sanbanfu=false;
player.storage.sanbanfu2=false;
@ -1032,7 +1032,7 @@ character.yxs={
complexCard:true,
selectCard:2,
check:function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
},
filterTarget:function(card,player,target){
if(target.hp==Infinity) return false;
@ -1083,7 +1083,7 @@ character.yxs={
return target.countCards('h')>0&&get.distance(player,target)<=2;
},
check:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
position:'he',
content:function(){
@ -1102,7 +1102,7 @@ character.yxs={
player.chooseTarget('选择一个目标送出'+get.translation(event.card),function(card,player,target){
return target!=player;
}).ai=function(target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(att>3&&player.countCards('h')>target.countCards('h')){
return att;
}
@ -1121,7 +1121,7 @@ character.yxs={
result:{
target:-1,
player:function(player,target){
if(ai.get.attitude(player,target)>0){
if(get.attitude(player,target)>0){
return 0;
}
return 1;
@ -1279,10 +1279,10 @@ character.yxs={
return player.canUse({name:'lebu'},target);
},
ai1:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
ai2:function(target){
return ai.get.effect(target,{name:'lebu'},player,player);
return get.effect(target,{name:'lebu'},player,player);
}
});
'step 1'
@ -1302,7 +1302,7 @@ character.yxs={
return event.target.countCards('he')>0;
},
check:function(event,player){
return ai.get.attitude(player,event.target)<0;
return get.attitude(player,event.target)<0;
},
content:function(){
'step 0'
@ -1356,12 +1356,12 @@ character.yxs={
content:function(){
'step 0'
var nh=trigger.player.countCards('h');
var att=ai.get.attitude(player,trigger.player);
var att=get.attitude(player,trigger.player);
player.chooseTarget(get.prompt('xiadao'),function(card,player,target){
return target!=player&&target!=trigger.player&&target.countCards('h')<=nh;
}).ai=function(target){
if(att>0) return 0;
return ai.get.attitude(player,target);
return get.attitude(player,target);
}
'step 1'
if(result.bool){
@ -1404,7 +1404,7 @@ character.yxs={
player.chooseTarget(get.prompt('lzhangyi'),function(card,player,target){
return player!=target
}).set('du',(trigger.cards.length==1&&trigger.cards[0].name=='du')).ai=function(target){
var att=ai.get.attitude(_status.event.player,target);
var att=get.attitude(_status.event.player,target);
if(_status.event.du) return -att;
return att;
};
@ -1461,7 +1461,7 @@ character.yxs={
},
ai1:function(card){
if(player.additionalSkills.yizhuang&&player.additionalSkills.yizhuang.length>0) return 0;
return 7-ai.get.value(card);
return 7-get.value(card);
},
ai2:function(target){
if(target.isMin()) return 0;
@ -1565,7 +1565,7 @@ character.yxs={
direct:true,
content:function(){
'step 0'
var goon=(ai.get.attitude(player,trigger.player)<0);
var goon=(get.attitude(player,trigger.player)<0);
var next=player.chooseToDiscard('鸠杀:是否弃置一张酒或两张黑色手牌令'+get.translation(trigger.player)+'立即死亡?');
next.ai=function(card){
if(ui.selected.cards.length){
@ -1615,7 +1615,7 @@ character.yxs={
forceunique:true,
check:function(card){
if(_status.event.player.countCards('h')>=3){
return 5-ai.get.value(card);
return 5-get.value(card);
}
return 0;
},
@ -1748,7 +1748,7 @@ character.yxs={
return 0;
}
else{
return ai.get.damageEffect(target,player,target);
return get.damageEffect(target,player,target);
}
}
}
@ -1766,12 +1766,12 @@ character.yxs={
check:function(card){
var player=_status.currentPhase;
if(player.countCards('he',{subtype:get.subtype(card)})>1){
return 11-ai.get.equipValue(card);
return 11-get.equipValue(card);
}
if(player.countCards('h')<player.hp){
return 6-ai.get.value(card);
return 6-get.value(card);
}
return 2-ai.get.equipValue(card);
return 2-get.equipValue(card);
},
ai:{
order:9,
@ -1835,7 +1835,7 @@ character.yxs={
return player!=target;
},
check:function(card){
return 8-ai.get.value(card);
return 8-get.value(card);
},
content:function(){
target.draw(2);
@ -1852,7 +1852,7 @@ character.yxs={
trigger:{player:'phaseDrawBegin'},
check:function(event,player){
return game.hasPlayer(function(current){
return ai.get.attitude(player,current)<0&&current.countCards('h');
return get.attitude(player,current)<0&&current.countCards('h');
});
},
content:function(){
@ -1872,7 +1872,7 @@ character.yxs={
player.chooseTarget('婉歌:获得至多'+get.cnNumber(num)+'名角色的一张手牌',[1,num],function(card,player,target){
return target.countCards('h')&&target!=player;
}).ai=function(target){
return -ai.get.attitude(player,target);
return -get.attitude(player,target);
};
player.removeSkill('wange2');
"step 1"
@ -1952,7 +1952,7 @@ character.yxs={
var effect=0;
for(var i=0;i<players.length;i++){
if(players[i].sex=='male'&&players[i]!=target&&players[i]!=player&&players[i].countCards('he'))
effect+=ai.get.effect(target,{name:'sha'},players[i],target);
effect+=get.effect(target,{name:'sha'},players[i],target);
}
return effect;
}
@ -2173,7 +2173,7 @@ character.yxs={
return (event.source&&event.source.countCards('he'));
},
check:function(event,player){
return ai.get.attitude(player,event.source)<0;
return get.attitude(player,event.source)<0;
},
content:function(){
trigger.source.chooseToDiscard(2,'he',true);
@ -2185,7 +2185,7 @@ character.yxs={
target:function(card,player,target){
if(player.countCards('he')>1&&get.tag(card,'damage')){
if(player.hasSkillTag('jueqing')) return [1,-1];
if(ai.get.attitude(target,player)<0) return [1,0,0,-1.5];
if(get.attitude(target,player)<0) return [1,0,0,-1.5];
}
}
}
@ -2200,7 +2200,7 @@ character.yxs={
},
filterCard:{color:'black'},
check:function(card){
return 4-ai.get.value(card);
return 4-get.value(card);
},
content:function(){
game.swapSeat(player,target);
@ -2209,10 +2209,10 @@ character.yxs={
order:5,
result:{
player:function(player,target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(target==player.previous&&att>0) return att;
if(target==player.next&&att<0) return -att;
var att2=ai.get.attitude(player,player.next);
var att2=get.attitude(player,player.next);
if(target==player.next.next&&att<0&&att2<0) return -att-att2;
return 0;
}
@ -2234,7 +2234,7 @@ character.yxs={
next.autochoose=lib.filter.autoRespondShan;
next.ai=function(card){
if(trigger.target.countCards('h','shan')>1){
return ai.get.unuseful2(card);
return get.unuseful2(card);
}
return -1;
};
@ -2256,8 +2256,8 @@ character.yxs={
var next=trigger.turn.chooseToRespond({name:'sha'});
next.autochoose=lib.filter.autoRespondSha;
next.ai=function(card){
if(ai.get.attitude(trigger.turn,player)<0&&trigger.turn.countCards('h','sha')>1){
return ai.get.unuseful2(card);
if(get.attitude(trigger.turn,player)<0&&trigger.turn.countCards('h','sha')>1){
return get.unuseful2(card);
}
return -1;
};
@ -2295,7 +2295,7 @@ character.yxs={
"step 0"
var effect=0;
for(var i=0;i<trigger.targets.length;i++){
effect+=ai.get.effect(trigger.targets[i],trigger.card,trigger.player,player);
effect+=get.effect(trigger.targets[i],trigger.card,trigger.player,player);
}
var str='非攻:是否弃置一张杀令'+get.translation(trigger.player);
if(trigger.targets&&trigger.targets.length){
@ -2307,7 +2307,7 @@ character.yxs={
}
player.chooseToDiscard('h',{name:'sha'},str).ai=function(card){
if(effect<0){
return 9-ai.get.value(card);
return 9-get.value(card);
}
return -1;
}
@ -2326,7 +2326,7 @@ character.yxs={
feiming:{
trigger:{player:'damageEnd'},
check:function(event,player){
return ai.get.attitude(player,event.source)<=0;
return get.attitude(player,event.source)<=0;
},
filter:function(event,player){
return event.source&&event.source!=player;
@ -2336,7 +2336,7 @@ character.yxs={
trigger.source.chooseCard('交出一张红桃牌或流失一点体力',function(card){
return get.suit(card)=='heart';
}).ai=function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
};
"step 1"
if(result.bool){
@ -2373,10 +2373,10 @@ character.yxs={
eff+=0.5;
}
}
if(ai.get.attitude(player,players[i])>0){
if(get.attitude(player,players[i])>0){
num+=eff;
}
else if(ai.get.attitude(player,players[i])<0){
else if(get.attitude(player,players[i])<0){
num-=eff;
}
}
@ -2408,7 +2408,7 @@ character.yxs={
"step 0"
var next=player.chooseToDiscard('he','是否弃置一张黑色牌并收回'+get.translation(trigger.card)+'',{color:'black'});
next.ai=function(card){
return ai.get.value(trigger.card)-ai.get.value(card);
return get.value(trigger.card)-get.value(card);
}
next.logSkill='jieyong';
"step 1"
@ -2450,12 +2450,12 @@ character.yxs={
},
content:function(){
"step 0"
var val=ai.get.value(trigger.card);
var val=get.value(trigger.card);
var suit=get.suit(trigger.card);
var next=player.chooseToDiscard('he','逐鹿:是否弃置一张'+get.translation(suit)+
'牌并获得'+get.translation(trigger.card)+'',{suit:suit});
next.ai=function(card){
return val-ai.get.value(card);
return val-get.value(card);
};
next.logSkill='zhulu';
"step 1"
@ -2475,7 +2475,7 @@ character.yxs={
filterCard:true,
selectCard:2,
check:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
multitarget:true,
targetprompt:['被移走','移动目标'],
@ -2503,12 +2503,12 @@ character.yxs={
"step 0"
if(targets.length==2){
player.choosePlayerCard('ej',function(button){
if(ai.get.attitude(player,targets[0])>ai.get.attitude(player,targets[1])){
if(get.attitude(player,targets[0])>get.attitude(player,targets[1])){
return get.position(button.link)=='j'?10:0;
}
else{
if(get.position(button.link)=='j') return -10;
return ai.get.equipValue(button.link);
return get.equipValue(button.link);
}
},targets[0]);
}
@ -2535,11 +2535,11 @@ character.yxs={
result:{
target:function(player,target){
if(ui.selected.targets.length==0){
if(target.countCards('j')&&ai.get.attitude(player,target)>0) return 1;
if(ai.get.attitude(player,target)<0){
if(target.countCards('j')&&get.attitude(player,target)>0) return 1;
if(get.attitude(player,target)<0){
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(ai.get.attitude(player,players[i])>0){
if(get.attitude(player,players[i])>0){
if((target.getEquip(1)&&!players[i].getEquip(1))||
(target.getEquip(2)&&!players[i].getEquip(2))||
(target.getEquip(3)&&!players[i].getEquip(3))||
@ -2552,7 +2552,7 @@ character.yxs={
return 0;
}
else{
return ai.get.attitude(player,ui.selected.targets[0])>0?-1:1;
return get.attitude(player,ui.selected.targets[0])>0?-1:1;
}
},
},
@ -2584,7 +2584,7 @@ character.yxs={
cike:{
trigger:{player:'shaBegin'},
check:function(event,player){
return ai.get.attitude(player,event.target)<=0;
return get.attitude(player,event.target)<=0;
},
logTarget:'target',
content:function(){
@ -2695,7 +2695,7 @@ character.yxs={
},'e');
},
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
filterCard:function(card){
var info=lib.card[card.name];
@ -2707,7 +2707,7 @@ character.yxs={
content:function(){
'step 0'
var next=player.choosePlayerCard(target,'e',true);
next.ai=ai.get.buttonValue;
next.ai=get.buttonValue;
next.filterButton=function(button){
return !get.info(button.link).unique;
}
@ -2719,7 +2719,7 @@ character.yxs={
return !target.isMin();
}).ai=function(target){
if(!target.countCards('e',{subtype:get.subtype(event.card)})){
return ai.get.attitude(player,target);
return get.attitude(player,target);
}
return 0;
}

View File

@ -82,7 +82,7 @@ character.zhuogui={
enable:'phaseUse',
usable:1,
filterCard:{color:'red'},
check:function(card){return 6-ai.get.value(card)},
check:function(card){return 6-get.value(card)},
filterTarget:true,
selectTarget:-1,
line:'fire',
@ -95,7 +95,7 @@ character.zhuogui={
var eff=0;
for(var i=0;i<game.players.length;i++){
if(!game.players[i].isOut()){
eff+=ai.get.damageEffect(game.players[i],player,player,'fire');
eff+=get.damageEffect(game.players[i],player,player,'fire');
}
}
return eff;
@ -164,7 +164,7 @@ character.zhuogui={
players.sort(function(a,b){
return b.hp-a.hp;
});
return ai.get.damageEffect(players[0],player,player,'fire')>0;
return get.damageEffect(players[0],player,player,'fire')>0;
},
prompt:function(){
var players=game.players.slice(0);
@ -220,7 +220,7 @@ character.zhuogui={
player.chooseTarget('获得一名角色的一张手牌',true,function(card,player,target){
return player!=target&&target.countCards('h')>0;
}).ai=function(target){
return -ai.get.attitude(player,target);
return -get.attitude(player,target);
};
"step 1"
if(result.targets&&result.targets.length){
@ -280,9 +280,9 @@ character.zhuogui={
},
check:function(card){
if(_status.event.player.hp==_status.event.player.maxHp){
return 5-ai.get.value(card);
return 5-get.value(card);
}
return 10-ai.get.value(card);
return 10-get.value(card);
},
content:function(){
"step 0"
@ -294,7 +294,7 @@ character.zhuogui={
order:9.5,
result:{
target:function(player,target){
return ai.get.damageEffect(target,player);
return get.damageEffect(target,player);
}
},
expose:0.2

View File

@ -71,7 +71,7 @@ play.wuxing={
case 'wood':
if(player.countCards('he')){
game.log(player,'被'+get.translation(trigger.card.wunature)+'属性的卡牌克制');
player.chooseToDiscard('你被金属性卡牌克制,需弃置一张牌',true,'he').ai=ai.get.disvalue;player.popup('金克木')};return;
player.chooseToDiscard('你被金属性卡牌克制,需弃置一张牌',true,'he').ai=get.disvalue;player.popup('金克木')};return;
case 'water':
game.log(player,'得到'+get.translation(trigger.card.wunature)+'属性卡牌的加成');
player.draw();player.popup('金生水');
@ -83,7 +83,7 @@ play.wuxing={
case 'soil':
if(player.countCards('he')){
game.log(player,'被'+get.translation(trigger.card.wunature)+'属性的卡牌克制');
player.chooseToDiscard('你被木属性卡牌克制,需弃置一张牌',true,'he').ai=ai.get.disvalue;player.popup('木克土')};return;
player.chooseToDiscard('你被木属性卡牌克制,需弃置一张牌',true,'he').ai=get.disvalue;player.popup('木克土')};return;
case 'fire':
game.log(player,'得到'+get.translation(trigger.card.wunature)+'属性卡牌的加成');
player.draw();player.popup('木生火');
@ -95,7 +95,7 @@ play.wuxing={
case 'fire':
if(player.countCards('he')){
game.log(player,'被'+get.translation(trigger.card.wunature)+'属性的卡牌克制');
player.chooseToDiscard('你被水属性卡牌克制,需弃置一张牌',true,'he').ai=ai.get.disvalue;player.popup('水克火')};return;
player.chooseToDiscard('你被水属性卡牌克制,需弃置一张牌',true,'he').ai=get.disvalue;player.popup('水克火')};return;
case 'wood':
game.log(player,'得到'+get.translation(trigger.card.wunature)+'属性卡牌的加成');
player.draw();player.popup('水生木');
@ -107,7 +107,7 @@ play.wuxing={
case 'metal':
if(player.countCards('he')){
game.log(player,'被'+get.translation(trigger.card.wunature)+'属性的卡牌克制');
player.chooseToDiscard('你被火属性卡牌克制,需弃置一张牌',true,'he').ai=ai.get.disvalue;player.popup('火克金')};return;
player.chooseToDiscard('你被火属性卡牌克制,需弃置一张牌',true,'he').ai=get.disvalue;player.popup('火克金')};return;
case 'soil':
game.log(player,'得到'+get.translation(trigger.card.wunature)+'属性卡牌的加成');
player.draw();player.popup('火生土');
@ -119,7 +119,7 @@ play.wuxing={
case 'water':
if(player.countCards('he')){
game.log(player,'被'+get.translation(trigger.card.wunature)+'属性的卡牌克制');
player.chooseToDiscard('你被土属性卡牌克制,需弃置一张牌',true,'he').ai=ai.get.disvalue;player.popup('土克水')};return;
player.chooseToDiscard('你被土属性卡牌克制,需弃置一张牌',true,'he').ai=get.disvalue;player.popup('土克水')};return;
case 'metal':
game.log(player,'得到'+get.translation(trigger.card.wunature)+'属性卡牌的加成');
player.draw();player.popup('土生金');

File diff suppressed because it is too large Load Diff

View File

@ -915,8 +915,8 @@ mode.boss={
direct:true,
content:function(){
'step 0'
var att1=ai.get.attitude(player,trigger.player);
var att2=ai.get.attitude(player,trigger.source);
var att1=get.attitude(player,trigger.player);
var att2=get.attitude(player,trigger.source);
var targets=player.getEnemies();
var stop=false;
for(var i=0;i<targets.length;i++){
@ -958,8 +958,8 @@ mode.boss={
'若判定结果为红色,'+playername+'回复一点体力,否则'+sourcename+'回复一点体力'
]);
'step 1'
var att1=ai.get.attitude(player,trigger.player);
var att2=ai.get.attitude(player,trigger.source);
var att1=get.attitude(player,trigger.player);
var att2=get.attitude(player,trigger.source);
if(result.control=='选项一'){
event.type=1;
player.judge(function(card){
@ -1101,7 +1101,7 @@ mode.boss={
global:'boss_zhangwu_ai',
trigger:{player:'damageEnd'},
check:function(event,player){
return event.source&&ai.get.damageEffect(event.source,player,player)>0;
return event.source&&get.damageEffect(event.source,player,player)>0;
},
filter:function(event){
return event.source&&event.source.isAlive();
@ -1116,7 +1116,7 @@ mode.boss={
}
else{
target.chooseControl('discard_card','get_damage',function(){
if(ai.get.damageEffect(target,player,target)>=0) return 'get_damage';
if(get.damageEffect(target,player,target)>=0) return 'get_damage';
var nh=target.countCards('h');
if(nh<=3||target.hp<=3||target.hasSkillTag('noh')) return 'discard_card';
return 'get_damage';
@ -1142,7 +1142,7 @@ mode.boss={
target:function(card,player,target){
if(get.tag(card,'recover')&&card.name!='recover'){
for(var i=0;i<game.players.length;i++){
if(game.players[i].hasSkill('xiaoxiong')&&ai.get.attitude(target,game.players[i])<0){
if(game.players[i].hasSkill('xiaoxiong')&&get.attitude(target,game.players[i])<0){
return 'zeroplayertarget';
}
}
@ -1331,7 +1331,7 @@ mode.boss={
var next=player.chooseTarget('选择'+get.translation(name)+'的目标');
next._get_card=card;
next.filterTarget=lib.filter.filterTarget;
next.ai=ai.get.effect;
next.ai=get.effect;
if(typeof info.selectTarget=='function'){
next.selectTarget=info.selectTarget;
}
@ -1368,10 +1368,10 @@ mode.boss={
"step 0"
event.cards=get.cards(7);
player.chooseCardButton(true,event.cards,'改命:选择一张牌作为你的'+trigger.judgestr+'判定结果').ai=function(button){
if(ai.get.attitude(player,trigger.player)>0){
if(get.attitude(player,trigger.player)>0){
return 1+trigger.judge(button.link);
}
if(ai.get.attitude(player,trigger.player)<0){
if(get.attitude(player,trigger.player)<0){
return 1-trigger.judge(button.link);
}
return 0;
@ -1454,7 +1454,7 @@ mode.boss={
var trigger=_status.event.parent._trigger;
var player=_status.event.player;
var result=trigger.judge(card)-trigger.judge(trigger.player.judging[0]);
var attitude=ai.get.attitude(player,trigger.player);
var attitude=get.attitude(player,trigger.player);
if(attitude==0||result==0) return 0;
if(attitude>0){
return result;
@ -1507,7 +1507,7 @@ mode.boss={
discard:false,
filterCard:true,
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
content:function(){
"step 0"
@ -1547,7 +1547,7 @@ mode.boss={
return !target.hasSkill('mazui2');
},
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
discard:false,
prepare:'give',
@ -1745,7 +1745,7 @@ mode.boss={
}
next.selectCard=[num,num];
next.ai=function(card){
return ai.get.value(card);
return get.value(card);
};
'step 1'
if(result.bool){
@ -2063,7 +2063,7 @@ mode.boss={
player.chooseTarget(true,'选择一个目标对其造成两点火焰伤害',function(card,player,target){
return player!=target;
}).ai=function(target){
return ai.get.damageEffect(target,player,player,'fire');
return get.damageEffect(target,player,player,'fire');
}
}
else{
@ -2161,7 +2161,7 @@ mode.boss={
player.chooseTarget(get.prompt('boss_xixing'),function(card,player,target){
return player!=target&&target.isLinked();
}).ai=function(target){
return ai.get.damageEffect(target,player,player,'thunder');
return get.damageEffect(target,player,player,'thunder');
}
"step 1"
if(result.bool){
@ -2187,7 +2187,7 @@ mode.boss={
player.chooseTarget(get.prompt('boss_suoming'),[1,num],function(card,player,target){
return !target.isLinked()&&player!=target;
}).ai=function(target){
return -ai.get.attitude(player,target);
return -get.attitude(player,target);
}
"step 1"
if(result.bool){
@ -2228,7 +2228,7 @@ mode.boss={
player.chooseTarget(get.prompt('boss_xiaoshou'),function(card,player,target){
return player!=target&&target.hp>=player.hp;
}).ai=function(target){
return ai.get.damageEffect(target,player,player,'fire');
return get.damageEffect(target,player,player,'fire');
}
"step 1"
if(result.bool){
@ -2351,7 +2351,7 @@ mode.boss={
player.chooseTarget(get.prompt('boss_guihuo'),function(card,player,target){
return player!=target;
}).ai=function(target){
return ai.get.damageEffect(target,player,player,'fire');
return get.damageEffect(target,player,player,'fire');
}
"step 1"
if(result.bool){
@ -2368,7 +2368,7 @@ mode.boss={
player.chooseTarget(get.prompt('boss_luolei'),function(card,player,target){
return player!=target;
}).ai=function(target){
return ai.get.damageEffect(target,player,player,'thunder');
return get.damageEffect(target,player,player,'thunder');
}
"step 1"
if(result.bool){
@ -2423,7 +2423,7 @@ mode.boss={
player.chooseTarget(get.prompt('boss_didong'),function(card,player,target){
return target.isEnemyOf(player);
}).ai=function(target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(target.isTurnedOver()){
if(att>0){
return att+5;
@ -2519,7 +2519,7 @@ mode.boss={
content:function(){
"step 0";
player.chooseTarget(get.prompt('boss_leiji')).ai=function(target){
return ai.get.damageEffect(target,player,player,'thunder');
return get.damageEffect(target,player,player,'thunder');
};
"step 1"
if(result.bool){
@ -2548,7 +2548,7 @@ mode.boss={
if(get.tag(card,'respondShan')){
var hastarget=false,players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(ai.get.attitude(target,players[i])<0){
if(get.attitude(target,players[i])<0){
hastarget=true;break;
}
}
@ -2819,7 +2819,7 @@ mode.boss={
player.chooseTarget(get.prompt('jidian'),function(card,player,target){
return get.distance(trigger.player,target)<=1&&trigger.player!=target;
}).ai=function(target){
return ai.get.damageEffect(target,player,player,'thunder')+0.1;
return get.damageEffect(target,player,player,'thunder')+0.1;
}
"step 1"
if(result.bool){
@ -2864,7 +2864,7 @@ mode.boss={
},
filterCard:lib.filter.cardDiscardable,
ai1:function(card){
return ai.get.unuseful(card)+9;
return get.unuseful(card)+9;
},
ai2:function(target){
if(target.storage.boss_hujia) return Math.max(1,10-target.maxHp);
@ -3260,7 +3260,7 @@ mode.boss={
next.ai=function(button){
var card=button.link;
if(get.position(card)=='h'){
return 11-ai.get.value(card);
return 11-get.value(card);
}
if(card.name=='lebu') return 5;
if(card.name=='bingliang') return 4;
@ -3471,7 +3471,7 @@ mode.boss={
player.chooseTarget(get.prompt('jizhen'),[1,2],function(card,player,target){
return target.hp<target.maxHp&&player!=target;
}).ai=function(target){
return ai.get.attitude(player,target);
return get.attitude(player,target);
}
"step 1"
if(result.bool){
@ -3517,7 +3517,7 @@ mode.boss={
},
filterCard:true,
check:function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
},
content:function(){
'step 0'
@ -3537,7 +3537,7 @@ mode.boss={
if(list.contains('wansha')||list.contains('qiangxi')){
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].hp==1&&ai.get.attitude(player,players[i])<0){
if(players[i].hp==1&&get.attitude(player,players[i])<0){
if(list.contains('wansha')) return 'wansha';
if(list.contains('qiangxi')) return 'qiangxi';
}
@ -3562,7 +3562,7 @@ mode.boss={
if(player.hasSkill('wansha')) return 1;
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].hp==1&&ai.get.attitude(player,players[i])<0) return 10;
if(players[i].hp==1&&get.attitude(player,players[i])<0) return 10;
}
}
return 1;
@ -3574,7 +3574,7 @@ mode.boss={
if(!player.hasSkill('wansha')||!player.hasSkill('qiangxi')){
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].hp==1&&ai.get.attitude(player,players[i])<0) return 1;
if(players[i].hp==1&&get.attitude(player,players[i])<0) return 1;
}
}
}
@ -3846,11 +3846,9 @@ mode.boss={
mode_boss_character_config:'挑战武将',
},
ai:{
get:{
rawAttitude:function(from,to){
return (from.side===to.side?6:-6);
}
get:{
rawAttitude:function(from,to){
return (from.side===to.side?6:-6);
}
},
}
}

View File

@ -4593,7 +4593,7 @@ mode.chess={
complexCard:true,
selectCard:4,
check:function(card){
return 10-ai.get.value(card);
return 10-get.value(card);
},
filterTarget:function(card,player,target){
return player!=target;
@ -4612,7 +4612,7 @@ mode.chess={
player:function(card,player){
var num=0;
for(var i=0;i<game.players.length;i++){
if(ai.get.attitude(player,game.players[i])<0){
if(get.attitude(player,game.players[i])<0){
num++;
if(num>1) break;
}
@ -4632,7 +4632,7 @@ mode.chess={
target:function(player){
var num=0;
for(var i=0;i<game.players.length;i++){
if(ai.get.attitude(player,game.players[i])<0){
if(get.attitude(player,game.players[i])<0){
num++;
if(num>1) break;
}
@ -4737,7 +4737,7 @@ mode.chess={
var targets=lib.skill.guanchuan.getTargets(player,event.targets[0]);
var eff=0;
for(var i=0;i<targets.length;i++){
eff+=ai.get.effect(targets[i],event.card,player,player);
eff+=get.effect(targets[i],event.card,player,player);
}
return eff>0;
},
@ -4761,9 +4761,9 @@ mode.chess={
var player=_status.event.player;
for(var i=0;i<game.players.length;i++){
if(lib.filter.targetEnabled({name:'sha'},player,game.players[i])&&
ai.get.effect(game.players[i],{name:'sha'},player)>0){
get.effect(game.players[i],{name:'sha'},player)>0){
num++;
if(num>1) return 8-ai.get.value(card);
if(num>1) return 8-get.value(card);
}
}
return 0;
@ -4782,11 +4782,11 @@ mode.chess={
multitarget:true,
ai:{
order:function(){
return ai.get.order({name:'sha'})+0.1;
return get.order({name:'sha'})+0.1;
},
result:{
target:function(player,target){
return ai.get.effect(target,{name:'sha'},player,target);
return get.effect(target,{name:'sha'},player,target);
}
},
effect:{
@ -4797,7 +4797,7 @@ mode.chess={
var player=_status.event.player;
for(var i=0;i<game.players.length;i++){
if(lib.filter.targetEnabled({name:'sha'},player,game.players[i])&&
ai.get.attitude(player,game.players[i])<0){
get.attitude(player,game.players[i])<0){
num++;
if(num>1) return [0,0,0,0];
}
@ -5091,7 +5091,7 @@ mode.chess={
usable:1,
filterCard:{color:'red'},
nodelay:true,
check:function(card){return 8-ai.get.value(card);},
check:function(card){return 8-get.value(card);},
filterTarget:function(card,player,target){
return get.distance(player,target)<=5&&player!=target;
},
@ -5107,7 +5107,7 @@ mode.chess={
order:1,
result:{
target:function(player,target){
return ai.get.damageEffect(target,player,target,'fire');
return get.damageEffect(target,player,target,'fire');
}
}
}
@ -5123,9 +5123,9 @@ mode.chess={
check:function(card){
var player=_status.currentPhase;
if(player.countCards('he',{subtype:get.subtype(card)})>1){
return 12-ai.get.equipValue(card);
return 12-get.equipValue(card);
}
return 8-ai.get.equipValue(card);
return 8-get.equipValue(card);
},
filter:function(event,player){
return player.countCards('he',{type:'equip'});
@ -5140,7 +5140,7 @@ mode.chess={
order:9,
result:{
target:function(player,target){
return ai.get.damageEffect(target,player,target,'fire');
return get.damageEffect(target,player,target,'fire');
}
}
}
@ -5432,12 +5432,8 @@ mode.chess={
var txy=to.getXY();
return Math.abs(fxy[0]-txy[0])+Math.abs(fxy[1]-txy[1]);
},
},
ai:{
get:{
rawAttitude:function(from,to){
return (from.side===to.side?6:-6);
}
rawAttitude:function(from,to){
return (from.side===to.side?6:-6);
}
},
card:{

View File

@ -362,7 +362,7 @@ mode.guozhan={
return false;
},
order:function(){
return ai.get.order({name:'sha'})-0.1;
return get.order({name:'sha'})-0.1;
},
result:{
player:function(player){
@ -429,7 +429,7 @@ mode.guozhan={
filterCard:{color:'red'},
position:'he',
check:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
filter:function(event,player){
for(var i=0;i<ui.discardPile.childElementCount;i++){
@ -506,7 +506,7 @@ mode.guozhan={
num+=player.storage.huangjintianbingfu.length;
}
player.chooseCardButton(num,true,get.cards(num),'按顺将卡牌置于牌堆顶(先选择的在上)').set('ai',function(button){
return ai.get.value(button.link);
return get.value(button.link);
});
'step 1'
if(result.bool){
@ -852,7 +852,7 @@ mode.guozhan={
content:function(){
'step 0'
player.chooseCardButton(get.prompt('ziliang',trigger.player),player.storage.tuntian).set('ai',function(button){
return ai.get.value(button.link);
return get.value(button.link);
});
'step 1'
if(result.bool){
@ -894,10 +894,10 @@ mode.guozhan={
return !target.getEquip(card);
},
ai1:function(card){
return 6-ai.get.value(card);
return 6-get.value(card);
},
ai2:function(target){
return ai.get.attitude(_status.event.player,target)-3;
return get.attitude(_status.event.player,target)-3;
},
prompt:get.prompt('yuanhu')
});
@ -915,7 +915,7 @@ mode.guozhan={
var source=_status.event.source;
return get.distance(source,target)<=1&&source!=target&&target.countCards('he');
}).set('ai',function(target){
return -ai.get.attitude(_status.event.player,target);
return -get.attitude(_status.event.player,target);
}).set('source',target);
}
else{
@ -1028,7 +1028,7 @@ mode.guozhan={
next.autochoose=lib.filter.autoRespondShan;
next.set('ai',function(card){
if(_status.event.player.countCards('h','shan')>1){
return ai.get.unuseful2(card);
return get.unuseful2(card);
}
return -1;
});
@ -1257,7 +1257,7 @@ mode.guozhan={
player.chooseTarget(function(card,player,target){
return player!=target&&get.distance(player,target)<=1;
},true).set('ai',function(target){
return -ai.get.attitude(_status.event.player,target);
return -get.attitude(_status.event.player,target);
});
"step 2"
if(result.bool&&result.targets.length){
@ -1342,7 +1342,7 @@ mode.guozhan={
forced:true,
priority:15,
check:function(event,player){
return ai.get.effect(event.target,event.card,event.player,player)<0;
return get.effect(event.target,event.card,event.player,player)<0;
},
filter:function(event,player){
return get.type(event.card,'trick')=='trick'&&get.color(event.card)=='black';
@ -1365,7 +1365,7 @@ mode.guozhan={
forced:true,
priority:15,
check:function(event,player){
return ai.get.effect(event.target,event.card,event.player,player)<0;
return get.effect(event.target,event.card,event.player,player)<0;
},
filter:function(event,player){
return event.card.name=='shunshou'||event.card.name=='lebu';
@ -1388,7 +1388,7 @@ mode.guozhan={
forced:true,
priority:15,
check:function(event,player){
return ai.get.effect(event.target,event.card,event.player,player)<0;
return get.effect(event.target,event.card,event.player,player)<0;
},
filter:function(event,player){
return player.countCards('h')==0&&(event.card.name=='sha'||event.card.name=='juedou');
@ -1436,16 +1436,16 @@ mode.guozhan={
if(players[i].hasSkill('haoshi')&&
!players[i].isTurnedOver()&&
!players[i].hasJudge('lebu')&&
ai.get.attitude(player,players[i])>=3&&
ai.get.attitude(players[i],player)>=3){
return 11-ai.get.value(card);
get.attitude(player,players[i])>=3&&
get.attitude(players[i],player)>=3){
return 11-get.value(card);
}
}
if(player.countCards('h')>player.hp) return 10-ai.get.value(card);
if(player.countCards('h')>2) return 6-ai.get.value(card);
if(player.countCards('h')>player.hp) return 10-get.value(card);
if(player.countCards('h')>2) return 6-get.value(card);
return -1;
}
return 10-ai.get.value(card);
return 10-get.value(card);
},
content:function(){
target.gain(cards,player);
@ -1487,7 +1487,7 @@ mode.guozhan={
if(player.countCards('e',{subtype:get.subtype(card)})){
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i]!=player&&ai.get.attitude(player,players[i])>0){
if(players[i]!=player&&get.attitude(player,players[i])>0){
return 0;
}
}
@ -1548,7 +1548,7 @@ mode.guozhan={
return !target.isUnseen(2);
},
check:function(card){
return 6-ai.get.value(card,_status.event.player);
return 6-get.value(card,_status.event.player);
},
content:function(){
'step 0'
@ -1590,7 +1590,7 @@ mode.guozhan={
if(target.hp<=0) return -5;
if(player.getStat().skill.qingcheng) return 0;
if(!target.hasSkillTag('maixie')) return 0;
if(ai.get.attitude(player,target)>=0) return 0;
if(get.attitude(player,target)>=0) return 0;
if(player.hasCard(function(card){
return get.tag(card,'damage')&&player.canUse(card,target,true,true);
})){
@ -1620,33 +1620,33 @@ mode.guozhan={
return player.countCards('h',{color:'red'})>0;
},
check:function(card){
return 5-ai.get.value(card);
return 5-get.value(card);
}
},
gzxiaoguo:{
inherit:'xiaoguo',
content:function(){
"step 0"
var nono=(Math.abs(ai.get.attitude(player,trigger.player))<3);
if(ai.get.damageEffect(trigger.player,player,player)<=0){
var nono=(Math.abs(get.attitude(player,trigger.player))<3);
if(get.damageEffect(trigger.player,player,player)<=0){
nono=true;
}
var next=player.chooseToDiscard(get.prompt('gzxiaoguo',trigger.player),{type:'basic'});
next.set('ai',function(card){
if(_status.event.nono) return 0;
return 8-ai.get.useful(card);
return 8-get.useful(card);
});
next.set('logSkill',['gzxiaoguo',trigger.player]);
next.set('nono',nono);
"step 1"
if(result.bool){
var nono=(ai.get.damageEffect(trigger.player,player,trigger.player)>=0);
var nono=(get.damageEffect(trigger.player,player,trigger.player)>=0);
trigger.player.chooseToDiscard('he',{type:'equip'}).set('ai',function(card){
if(_status.event.nono){
return 0;
}
if(_status.event.player.hp==1) return 10-ai.get.value(card);
return 9-ai.get.value(card);
if(_status.event.player.hp==1) return 10-get.value(card);
return 9-get.value(card);
}).set('nono',nono);
}
else{
@ -3514,7 +3514,7 @@ mode.guozhan={
else if(shown<0.4) c=0.5;
else if(shown<0.6) c=0.8;
else c=1;
effect+=ai.get.effect(targets[i],card,this)*c;
effect+=get.effect(targets[i],card,this)*c;
}
}
if(effect>0){
@ -3530,91 +3530,89 @@ mode.guozhan={
},
}
},
ai:{
get:{
realAttitude:function(from,toidentity,difficulty){
if(from.identity==toidentity&&toidentity!='ye'){
return 4+difficulty;
}
if(from.identity=='unknown'&&lib.character[from.name1][1]==toidentity){
if(from.wontYe()) return 4+difficulty;
}
var groups=[];
for(var i=0;i<lib.group.length;i++){
groups.push(get.population(lib.group[i]));
}
var max=Math.max.apply(this,groups);
if(max<=1) return -3;
var from_p=get.population(from.identity!='unknown'?from.identity:lib.character[from.name1][1]);
var to_p=get.population(toidentity);
if(from.identity=='ye') from_p=1;
if(toidentity=='ye') to_p=1;
get:{
realAttitude:function(from,toidentity,difficulty){
if(from.identity==toidentity&&toidentity!='ye'){
return 4+difficulty;
}
if(from.identity=='unknown'&&lib.character[from.name1][1]==toidentity){
if(from.wontYe()) return 4+difficulty;
}
var groups=[];
for(var i=0;i<lib.group.length;i++){
groups.push(get.population(lib.group[i]));
}
var max=Math.max.apply(this,groups);
if(max<=1) return -3;
var from_p=get.population(from.identity!='unknown'?from.identity:lib.character[from.name1][1]);
var to_p=get.population(toidentity);
if(from.identity=='ye') from_p=1;
if(toidentity=='ye') to_p=1;
if(to_p==max) return -5;
if(from_p==max) return -2-get.population(toidentity);
if(max>=game.players.length/2){
if(to_p<=from_p){
return 0.5;
}
if(to_p==max) return -5;
if(from_p==max) return -2-get.population(toidentity);
if(max>=game.players.length/2){
if(to_p<=from_p){
return 0.5;
}
return 0;
}
if(to_p<max-1) return 0;
return -0.5;
},
rawAttitude:function(from,to){
if(to.identity=='unknown'&&game.players.length==2) return -5;
if(_status.currentPhase==from&&from.ai.tempIgnore&&
from.ai.tempIgnore.contains(to)&&to.identity=='unknown'&&
(!from.storage.zhibi||!from.storage.zhibi.contains(to))) return 0;
var difficulty=0;
if(to==game.me) difficulty=(2-get.difficulty())*1.5;
if(from==to) return 5+difficulty;
if(from.identity==to.identity&&from.identity!='unknown'&&from.identity!='ye') return 5+difficulty;
if(from.identity=='unknown'&&lib.character[from.name1][1]==to.identity){
if(from.wontYe()) return 4+difficulty;
}
var toidentity=to.identity;
if(toidentity=='unknown'){
toidentity=lib.character[to.name1][1];
if(get.population(toidentity)>=get.population()-2){
toidentity='ye';
}
}
var att=get.realAttitude(from,toidentity,difficulty);
if(from.storage.zhibi&&from.storage.zhibi.contains(to)){
return att;
}
if(to.ai.shown>=0.5) return att*to.ai.shown;
var nshown=0;
for(var i=0;i<game.players.length;i++){
if(game.players[i]!=from&&game.players[i].identity=='unknown'){
nshown++;
}
}
if(to.ai.shown==0){
if(nshown>=game.players.length/2&&att>=0){
return 0;
}
if(to_p<max-1) return 0;
return -0.5;
},
rawAttitude:function(from,to){
if(to.identity=='unknown'&&game.players.length==2) return -5;
if(_status.currentPhase==from&&from.ai.tempIgnore&&
from.ai.tempIgnore.contains(to)&&to.identity=='unknown'&&
(!from.storage.zhibi||!from.storage.zhibi.contains(to))) return 0;
var difficulty=0;
if(to==game.me) difficulty=(2-get.difficulty())*1.5;
if(from==to) return 5+difficulty;
if(from.identity==to.identity&&from.identity!='unknown'&&from.identity!='ye') return 5+difficulty;
if(from.identity=='unknown'&&lib.character[from.name1][1]==to.identity){
if(from.wontYe()) return 4+difficulty;
}
var toidentity=to.identity;
if(toidentity=='unknown'){
toidentity=lib.character[to.name1][1];
if(get.population(toidentity)>=get.population()-2){
toidentity='ye';
}
}
var att=ai.get.realAttitude(from,toidentity,difficulty);
if(from.storage.zhibi&&from.storage.zhibi.contains(to)){
return att;
}
if(to.ai.shown>=0.5) return att*to.ai.shown;
var nshown=0;
for(var i=0;i<game.players.length;i++){
if(game.players[i]!=from&&game.players[i].identity=='unknown'){
nshown++;
}
}
if(to.ai.shown==0){
if(nshown>=game.players.length/2&&att>=0){
return 0;
}
return Math.min(0,Math.random()-0.5)+difficulty;
}
if(to.ai.shown>=0.2){
if(att>2){
return Math.max(0,Math.random()-0.5)+difficulty;
}
if(att>=0){
return 0;
}
return Math.min(0,Math.random()-0.7)+difficulty;
}
return Math.min(0,Math.random()-0.5)+difficulty;
}
if(to.ai.shown>=0.2){
if(att>2){
return Math.max(0,Math.random()-0.7)+difficulty;
return Math.max(0,Math.random()-0.5)+difficulty;
}
if(att>=0){
return Math.min(0,Math.random()-0.3)+difficulty;
return 0;
}
return Math.min(0,Math.random()-0.5)+difficulty;
},
}
},
return Math.min(0,Math.random()-0.7)+difficulty;
}
if(att>2){
return Math.max(0,Math.random()-0.7)+difficulty;
}
if(att>=0){
return Math.min(0,Math.random()-0.3)+difficulty;
}
return Math.min(0,Math.random()-0.5)+difficulty;
},
}
}

View File

@ -1477,7 +1477,7 @@ mode.identity={
else if(shown<0.4) c=0.5;
else if(shown<0.6) c=0.8;
else c=1;
var eff=ai.get.effect(targets[i],card,this);
var eff=get.effect(targets[i],card,this);
effect+=eff*c;
if(eff==0&&shown==0&&this.identity=='zhong'&&targets[i]!=this){
effect+=0.1;
@ -1538,7 +1538,7 @@ mode.identity={
else if(shown<0.4) c=0.5;
else if(shown<0.6) c=0.8;
else c=1;
effect+=ai.get.effect(targets[i],card,this,zhu)*c;
effect+=get.effect(targets[i],card,this,zhu)*c;
}
}
if(this.identity=='nei'){
@ -1578,286 +1578,281 @@ mode.identity={
},
}
},
ai:{
get:{
rawAttitude:function(from,to){
var x=0,num=0,temp,i;
if(_status.ai.customAttitude){
for(i=0;i<_status.ai.customAttitude.length;i++){
temp=_status.ai.customAttitude[i](from,to);
if(temp!=undefined){
x+=temp;
num++;
}
get:{
rawAttitude:function(from,to){
var x=0,num=0,temp,i;
if(_status.ai.customAttitude){
for(i=0;i<_status.ai.customAttitude.length;i++){
temp=_status.ai.customAttitude[i](from,to);
if(temp!=undefined){
x+=temp;
num++;
}
}
if(num){
return x/num;
}
var difficulty=0;
if(to==game.me) difficulty=2-get.difficulty();
if(from==to||to.identityShown||(from.storage.dongcha==to)){
return ai.get.realAttitude(from,to)+difficulty*1.5;
}
else{
if(from.identity=='zhong'&&to.ai.shown==0&&from.ai.tempIgnore&&
!from.ai.tempIgnore.contains(to)){
for(var i=0;i<game.players.length;i++){
if(game.players[i].ai.shown==0&&game.players[i].identity=='fan'){
return -0.1+difficulty*1.5;
}
}
}
var aishown=to.ai.shown;
if(to.identity=='nei'&&to.ai.shown<1&&(to.ai.identity_mark=='fan'||to.ai.identity_mark=='zhong')){
aishown=0.5;
}
else if(aishown==0&&to.identity!='fan'&&to.identity!='zhu'){
var fanshown=true;
for(var i=0;i<game.players.length;i++){
if(game.players[i].identity=='fan'&&game.players[i].ai.shown==0&&game.players[i]!=from){
fanshown=false;break;
}
}
if(fanshown) aishown=0.3;
}
return ai.get.realAttitude(from,to)*aishown+difficulty*1.5;
}
},
realAttitude:function(from,to){
if(!game.zhu){
if(from.identity=='nei'||to.identity=='nei') return -1;
if(from.identity==to.identity) return 6;
return -6;
}
var situation=ai.get.situation();
var identity=from.identity;
var identity2=to.identity;
if(identity2=='zhu'&&!to.isZhu){
identity2='zhong';
if(from==to) return 10;
}
if(from!=to&&to.identity=='nei'&&to.ai.shown<1&&(to.ai.identity_mark=='fan'||to.ai.identity_mark=='zhong')){
identity2=to.ai.identity_mark;
}
if(from.identity!='nei'&&from!=to&&get.population('fan')==0&&identity2=='zhong'){
for(var i=0;i<game.players.length;i++){
if(game.players[i].identity=='nei'&&
game.players[i].ai.identity_mark=='zhong'&&
game.players[i].ai.shown<1){
identity2='nei';break;
}
}
}
var zhongmode=false;
if(!game.zhu.isZhu){
zhongmode=true;
}
switch(identity){
case 'zhu':
switch(identity2){
case 'zhu': return 10;
case 'zhong':case 'mingzhong': return 6;
case 'nei':
if(game.players.length==2) return -10;
if(to.identity=='zhong') return 0;
if(get.population('fan')==0){
if(to.ai.identity_mark=='zhong'&&to.ai.shown<1) return 0;
return -0.5;
}
if(zhongmode&&to.ai.sizhong&&to.ai.shown<1) return 6;
if(get.population('fan')==1&&get.population('nei')==1&&game.players.length==3){
var fan;
for(var i=0;i<game.players.length;i++){
if(game.players[i].identity=='fan'){
fan=game.players[i];break;
}
}
if(fan){
if(to.hp>1&&to.hp>fan.hp&&to.countCards('he')>fan.countCards('he')){
return -3;
}
}
return 0;
}
if(situation>1) return 0;
return Math.min(3,get.population('fan'));
case 'fan':
if(get.population('fan')==1&&get.population('nei')==1&&game.players.length==3){
var nei;
for(var i=0;i<game.players.length;i++){
if(game.players[i].identity=='nei'){
nei=game.players[i];break;
}
}
if(nei){
if(nei.hp>1&&nei.hp>to.hp&&nei.countCards('he')>to.countCards('he')){
return 0;
}
}
return -3;
}
return -4;
}
break;
case 'zhong':case 'mingzhong':
switch(identity2){
case 'zhu': return 10;
case 'zhong':case 'mingzhong': return 4;
case 'nei':
if(get.population('fan')==0) return -2;
if(zhongmode&&to.ai.sizhong&&to.ai.shown<1) return 6;
return Math.min(3,-situation);
case 'fan': return -8;
}
break;
case 'nei':
if(identity2=='zhu'&&game.players.length==2) return -10;
var strategy=get.aiStrategy();
if(strategy==4){
if(from==to) return 10;
return 0;
}
var num;
switch(identity2){
case 'zhu':
if(strategy==6) return -1;
if(strategy==5) return 10;
if(to.hp<=0) return 10;
if(get.population('fan')==1){
var fan;
for(var i=0;i<game.players.length;i++){
if(game.players[i].identity=='fan'){
fan=game.players[i];break;
}
}
if(fan){
if(to.hp>1&&to.hp>fan.hp&&to.countCards('he')>fan.countCards('he')){
return -3;
}
}
return 0;
}
else{
if(situation>1||get.population('fan')==0) num=0;
else num=get.population('fan')+Math.max(0,3-game.zhu.hp);
}
if(strategy==2) num--;
if(strategy==3) num++;
return num;
case 'zhong':
if(strategy==5) return Math.min(0,-situation);
if(strategy==6) return Math.max(-1,-situation);
if(get.population('fan')==0) num=-5;
else if(situation<=0) num=0;
else if(game.zhu&&game.zhu.hp<2) num=0;
else if(game.zhu&&game.zhu.hp==2) num=-1;
else if(game.zhu&&game.zhu.hp<=2&&situation>1) num=-1;
else num=-2;
if(zhongmode&&situation<2){
num=4;
}
if(strategy==2) num--;
if(strategy==3) num++;
return num;
case 'mingzhong':
if(zhongmode){
if(from.ai.sizhong==undefined){
from.ai.sizhong=(Math.random()<0.5);
}
if(from.ai.sizhong) return 6;
}
if(strategy==5) return Math.min(0,-situation);
if(strategy==6) return Math.max(-1,-situation);
if(get.population('fan')==0) num=-5;
else if(situation<=0) num=0;
else num=-3;
if(strategy==2) num--;
if(strategy==3) num++;
return num;
case 'nei':
if(from==to) return 10;
if(from.ai.friend.contains(to)) return 5;
if(get.population('fan')+get.population('zhong')>0) return 0;
return -5;
case 'fan':
if(strategy==5) return Math.max(-1,situation);
if(strategy==6) return Math.min(0,situation);
if((game.zhu&&game.zhu.hp<=2&&situation<0)||situation<-1) num=-3;
else if(situation<0||get.population('zhong')+get.population('mingzhong')==0) num=-2;
else if((game.zhu&&game.zhu.hp>=4&&situation>0)||situation>1) num=1;
else num=0;
if(strategy==2) num++;
if(strategy==3) num--;
return num;
}
break;
case 'fan':
switch(identity2){
case 'zhu':
if(get.population('nei')>0){
if(situation==1) return -6;
if(situation>1) return -5;
}
return -8;
case 'zhong':
if(!zhongmode&&game.zhu.hp>=3&&to.hp==1){
return -10;
}
return -7;
case 'mingzhong':return -5;
case 'nei':
if(zhongmode&&to.ai.sizhong) return -7;
if(get.population('fan')==1) return 0;
if(get.population('zhong')+get.population('mingzhong')==0) return -7;
if(game.zhu&&game.zhu.hp<=2) return -1;
return Math.min(3,situation);
case 'fan': return 5;
}
}
},
situation:function(absolute){
var i,j,player;
var zhuzhong=0,total=0,zhu,fan=0;
for(i=0;i<game.players.length;i++){
player=game.players[i];
var php=player.hp;
if(player.hasSkill('benghuai')&&php>4){
php=4;
}
else if(php>6){
php=6;
}
j=player.countCards('h')+player.countCards('e')*1.5+php*2;
if(player.identity=='zhu'){
zhuzhong+=j*1.2+5;
total+=j*1.2+5;
zhu=j;
}
else if(player.identity=='zhong'||player.identity=='mingzhong'){
zhuzhong+=j*0.8+3;
total+=j*0.8+3;
}
else if(player.identity=='fan'){
zhuzhong-=j+4;
total+=j+4;
fan+=j+4;
}
}
if(absolute) return zhuzhong;
var result=parseInt(10*Math.abs(zhuzhong/total));
if(zhuzhong<0) result=-result;
if(!game.zhong){
if(zhu<12&&fan>30) result--;
if(zhu<6&&fan>15) result--;
if(zhu<4) result--;
}
return result;
},
population:function(identity){
return get.population(identity);
}
}
if(num){
return x/num;
}
var difficulty=0;
if(to==game.me) difficulty=2-get.difficulty();
if(from==to||to.identityShown||(from.storage.dongcha==to)){
return get.realAttitude(from,to)+difficulty*1.5;
}
else{
if(from.identity=='zhong'&&to.ai.shown==0&&from.ai.tempIgnore&&
!from.ai.tempIgnore.contains(to)){
for(var i=0;i<game.players.length;i++){
if(game.players[i].ai.shown==0&&game.players[i].identity=='fan'){
return -0.1+difficulty*1.5;
}
}
}
var aishown=to.ai.shown;
if(to.identity=='nei'&&to.ai.shown<1&&(to.ai.identity_mark=='fan'||to.ai.identity_mark=='zhong')){
aishown=0.5;
}
else if(aishown==0&&to.identity!='fan'&&to.identity!='zhu'){
var fanshown=true;
for(var i=0;i<game.players.length;i++){
if(game.players[i].identity=='fan'&&game.players[i].ai.shown==0&&game.players[i]!=from){
fanshown=false;break;
}
}
if(fanshown) aishown=0.3;
}
return get.realAttitude(from,to)*aishown+difficulty*1.5;
}
},
realAttitude:function(from,to){
if(!game.zhu){
if(from.identity=='nei'||to.identity=='nei') return -1;
if(from.identity==to.identity) return 6;
return -6;
}
var situation=get.situation();
var identity=from.identity;
var identity2=to.identity;
if(identity2=='zhu'&&!to.isZhu){
identity2='zhong';
if(from==to) return 10;
}
if(from!=to&&to.identity=='nei'&&to.ai.shown<1&&(to.ai.identity_mark=='fan'||to.ai.identity_mark=='zhong')){
identity2=to.ai.identity_mark;
}
if(from.identity!='nei'&&from!=to&&get.population('fan')==0&&identity2=='zhong'){
for(var i=0;i<game.players.length;i++){
if(game.players[i].identity=='nei'&&
game.players[i].ai.identity_mark=='zhong'&&
game.players[i].ai.shown<1){
identity2='nei';break;
}
}
}
var zhongmode=false;
if(!game.zhu.isZhu){
zhongmode=true;
}
switch(identity){
case 'zhu':
switch(identity2){
case 'zhu': return 10;
case 'zhong':case 'mingzhong': return 6;
case 'nei':
if(game.players.length==2) return -10;
if(to.identity=='zhong') return 0;
if(get.population('fan')==0){
if(to.ai.identity_mark=='zhong'&&to.ai.shown<1) return 0;
return -0.5;
}
if(zhongmode&&to.ai.sizhong&&to.ai.shown<1) return 6;
if(get.population('fan')==1&&get.population('nei')==1&&game.players.length==3){
var fan;
for(var i=0;i<game.players.length;i++){
if(game.players[i].identity=='fan'){
fan=game.players[i];break;
}
}
if(fan){
if(to.hp>1&&to.hp>fan.hp&&to.countCards('he')>fan.countCards('he')){
return -3;
}
}
return 0;
}
if(situation>1) return 0;
return Math.min(3,get.population('fan'));
case 'fan':
if(get.population('fan')==1&&get.population('nei')==1&&game.players.length==3){
var nei;
for(var i=0;i<game.players.length;i++){
if(game.players[i].identity=='nei'){
nei=game.players[i];break;
}
}
if(nei){
if(nei.hp>1&&nei.hp>to.hp&&nei.countCards('he')>to.countCards('he')){
return 0;
}
}
return -3;
}
return -4;
}
break;
case 'zhong':case 'mingzhong':
switch(identity2){
case 'zhu': return 10;
case 'zhong':case 'mingzhong': return 4;
case 'nei':
if(get.population('fan')==0) return -2;
if(zhongmode&&to.ai.sizhong&&to.ai.shown<1) return 6;
return Math.min(3,-situation);
case 'fan': return -8;
}
break;
case 'nei':
if(identity2=='zhu'&&game.players.length==2) return -10;
var strategy=get.aiStrategy();
if(strategy==4){
if(from==to) return 10;
return 0;
}
var num;
switch(identity2){
case 'zhu':
if(strategy==6) return -1;
if(strategy==5) return 10;
if(to.hp<=0) return 10;
if(get.population('fan')==1){
var fan;
for(var i=0;i<game.players.length;i++){
if(game.players[i].identity=='fan'){
fan=game.players[i];break;
}
}
if(fan){
if(to.hp>1&&to.hp>fan.hp&&to.countCards('he')>fan.countCards('he')){
return -3;
}
}
return 0;
}
else{
if(situation>1||get.population('fan')==0) num=0;
else num=get.population('fan')+Math.max(0,3-game.zhu.hp);
}
if(strategy==2) num--;
if(strategy==3) num++;
return num;
case 'zhong':
if(strategy==5) return Math.min(0,-situation);
if(strategy==6) return Math.max(-1,-situation);
if(get.population('fan')==0) num=-5;
else if(situation<=0) num=0;
else if(game.zhu&&game.zhu.hp<2) num=0;
else if(game.zhu&&game.zhu.hp==2) num=-1;
else if(game.zhu&&game.zhu.hp<=2&&situation>1) num=-1;
else num=-2;
if(zhongmode&&situation<2){
num=4;
}
if(strategy==2) num--;
if(strategy==3) num++;
return num;
case 'mingzhong':
if(zhongmode){
if(from.ai.sizhong==undefined){
from.ai.sizhong=(Math.random()<0.5);
}
if(from.ai.sizhong) return 6;
}
if(strategy==5) return Math.min(0,-situation);
if(strategy==6) return Math.max(-1,-situation);
if(get.population('fan')==0) num=-5;
else if(situation<=0) num=0;
else num=-3;
if(strategy==2) num--;
if(strategy==3) num++;
return num;
case 'nei':
if(from==to) return 10;
if(from.ai.friend.contains(to)) return 5;
if(get.population('fan')+get.population('zhong')>0) return 0;
return -5;
case 'fan':
if(strategy==5) return Math.max(-1,situation);
if(strategy==6) return Math.min(0,situation);
if((game.zhu&&game.zhu.hp<=2&&situation<0)||situation<-1) num=-3;
else if(situation<0||get.population('zhong')+get.population('mingzhong')==0) num=-2;
else if((game.zhu&&game.zhu.hp>=4&&situation>0)||situation>1) num=1;
else num=0;
if(strategy==2) num++;
if(strategy==3) num--;
return num;
}
break;
case 'fan':
switch(identity2){
case 'zhu':
if(get.population('nei')>0){
if(situation==1) return -6;
if(situation>1) return -5;
}
return -8;
case 'zhong':
if(!zhongmode&&game.zhu.hp>=3&&to.hp==1){
return -10;
}
return -7;
case 'mingzhong':return -5;
case 'nei':
if(zhongmode&&to.ai.sizhong) return -7;
if(get.population('fan')==1) return 0;
if(get.population('zhong')+get.population('mingzhong')==0) return -7;
if(game.zhu&&game.zhu.hp<=2) return -1;
return Math.min(3,situation);
case 'fan': return 5;
}
}
},
situation:function(absolute){
var i,j,player;
var zhuzhong=0,total=0,zhu,fan=0;
for(i=0;i<game.players.length;i++){
player=game.players[i];
var php=player.hp;
if(player.hasSkill('benghuai')&&php>4){
php=4;
}
else if(php>6){
php=6;
}
j=player.countCards('h')+player.countCards('e')*1.5+php*2;
if(player.identity=='zhu'){
zhuzhong+=j*1.2+5;
total+=j*1.2+5;
zhu=j;
}
else if(player.identity=='zhong'||player.identity=='mingzhong'){
zhuzhong+=j*0.8+3;
total+=j*0.8+3;
}
else if(player.identity=='fan'){
zhuzhong-=j+4;
total+=j+4;
fan+=j+4;
}
}
if(absolute) return zhuzhong;
var result=parseInt(10*Math.abs(zhuzhong/total));
if(zhuzhong<0) result=-result;
if(!game.zhong){
if(zhu<12&&fan>30) result--;
if(zhu<6&&fan>15) result--;
if(zhu<4) result--;
}
return result;
},
},
skill:{
dongcha:{
@ -1871,7 +1866,7 @@ mode.identity={
return target.countCards('hej')>0;
}).set('ai',function(target){
var player=_status.event.player;
return ai.get.attitude(player,target)*lib.card.guohe.ai.result.target(player,target);
return get.attitude(player,target)*lib.card.guohe.ai.result.target(player,target);
});
'step 1'
if(result.bool){

View File

@ -1680,6 +1680,16 @@ mode.stone={
},
},
get:{
rawAttitude:function(from,to){
var num;
if(to.isMin()&&!to.hasSkill('chaofeng')){
num=5;
}
else{
num=6;
}
return num*(from.side==to.side?1:-1);
},
stonecard:function(type,career){
var list=[];
for(var i in lib.card){
@ -2422,7 +2432,7 @@ mode.stone={
if(player.hasFellowSkill('priest_hunwu')){
return -2
}
return ai.get.recoverEffect(target,player,target);
return get.recoverEffect(target,player,target);
}
}
}
@ -3668,7 +3678,7 @@ mode.stone={
if(player.hasFellowSkill('priest_hunwu')){
return -2
}
return ai.get.recoverEffect(target,player,target);
return get.recoverEffect(target,player,target);
}
}
}
@ -3704,7 +3714,7 @@ mode.stone={
if(player.hasFellowSkill('priest_hunwu')){
return -1;
}
return ai.get.recoverEffect(target,player,target);
return get.recoverEffect(target,player,target);
}
}
}
@ -4460,7 +4470,7 @@ mode.stone={
'step 0'
if(player.countCards('e')){
player.chooseToDiscard('e','是否弃置一张装备区内的牌令伤害+1').ai=function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
}
}
else{
@ -5966,7 +5976,7 @@ mode.stone={
event.chooser.chooseTarget('陪练:令一名随从获得嘲讽',function(card,playerx,target){
return player!=target&&target.isMin()&&!target.hasSkill('chaofeng');
}).ai=function(target){
return ai.get.attitude(event.chooser,target)*target.hp;
return get.attitude(event.chooser,target)*target.hp;
};
player.line(event.chooser);
"step 1"
@ -6032,7 +6042,7 @@ mode.stone={
event.chooser.chooseTarget('普照:选择一名己方随从增加两点体力和体力上限',function(card,playerx,target){
return player!=target&&player.side==target.side&&target.isMin();
}).ai=function(target){
return ai.get.attitude(event.chooser,target)*Math.max(1,10-target.hp);
return get.attitude(event.chooser,target)*Math.max(1,10-target.hp);
};
player.line(event.chooser);
"step 1"
@ -6060,7 +6070,7 @@ mode.stone={
event.chooser.chooseTarget('缩小:令一名随从减少两点体力上限',function(card,playerx,target){
return player!=target&&target.isMin()&&target.maxHp>1;
}).ai=function(target){
if(ai.get.attitude(player,target)>=0) return 0;
if(get.attitude(player,target)>=0) return 0;
if(target.hp==1) return 0.01;
if(target.maxHp-target.hp>=2) return 0.01;
if(target.maxHp-target.hp==1){
@ -6281,7 +6291,7 @@ mode.stone={
'he',function(card){
return get.type(card)=='equip';
}).ai=function(card){
return 7-ai.get.value(card);
return 7-get.value(card);
};
"step 1"
if(result.bool){
@ -6478,9 +6488,9 @@ mode.stone={
return player!=target&&target.isMin()&&(target.hp!=2||target.maxHp!=2);
}).ai=function(target){
if(target.hp==2&&target.maxHp>2){
return ai.get.attitude(event.chooser,target)*(2-target.maxHp)/100;
return get.attitude(event.chooser,target)*(2-target.maxHp)/100;
}
return ai.get.attitude(event.chooser,target)*(2-target.hp);
return get.attitude(event.chooser,target)*(2-target.hp);
};
player.line(event.chooser);
"step 1"
@ -6509,7 +6519,7 @@ mode.stone={
event.chooser.chooseTarget('保卫:令一名友方随从获得一点护甲',function(card,playerx,target){
return player!=target&&player.side==target.side&&target.isMin();
}).ai=function(target){
return ai.get.attitude(event.chooser,target);
return get.attitude(event.chooser,target);
};
player.line(event.chooser);
"step 1"
@ -7369,10 +7379,10 @@ mode.stone={
},
filterCard:true,
ai1:function(card){
return 9-ai.get.value(card);
return 9-get.value(card);
},
ai2:function(target){
return ai.get.damageEffect(target,player,player);
return get.damageEffect(target,player,player);
},
prompt:'偷袭:弃置一张装备区内的牌并对一名敌方角色一点伤害'
});
@ -7524,7 +7534,7 @@ mode.stone={
event.chooser.chooseTarget('监工:对一名随从造成一点伤害然后令其摸两张牌',function(card,playerx,target){
return player!=target&&target.isMin();
}).ai=function(target){
var att=ai.get.attitude(event.chooser,target);
var att=get.attitude(event.chooser,target);
if(target.hp==1) return -att;
if(target.hp==2) return 0;
return att;
@ -7854,7 +7864,7 @@ mode.stone={
event.chooser.chooseTarget('驯兽:选择一名己方随从增加一点体力和体力上限并摸两张牌',function(card,playerx,target){
return player!=target&&player.side==target.side&&target.isMin();
}).ai=function(target){
return ai.get.attitude(event.chooser,target);
return get.attitude(event.chooser,target);
};
player.line(event.chooser);
"step 1"
@ -8198,7 +8208,7 @@ mode.stone={
if(player.hasFellowSkill('priest_hunwu')){
return -1;
}
return ai.get.recoverEffect(target,player,target);
return get.recoverEffect(target,player,target);
}
}
}
@ -8230,7 +8240,7 @@ mode.stone={
order:2,
result:{
target:function(player,target){
return ai.get.damageEffect(target,player,target);
return get.damageEffect(target,player,target);
}
}
}
@ -8257,7 +8267,7 @@ mode.stone={
order:2,
result:{
target:function(player,target){
return ai.get.damageEffect(target,player,target,'fire');
return get.damageEffect(target,player,target,'fire');
}
}
}
@ -8345,7 +8355,7 @@ mode.stone={
order:2,
result:{
target:function(player,target){
return ai.get.damageEffect(target,player,target);
return get.damageEffect(target,player,target);
}
}
}
@ -8448,11 +8458,11 @@ mode.stone={
},
ai:{
order:function(){
return ai.get.order({name:'sha'})-0.1;
return get.order({name:'sha'})-0.1;
},
result:{
target:function(player,target){
return ai.get.effect(target,{name:'sha'},player,target);
return get.effect(target,{name:'sha'},player,target);
}
}
}
@ -8763,7 +8773,7 @@ mode.stone={
event.chooser.chooseTarget('暗影:选择敌方一名角色视为对其使用一张杀',function(card,player,target){
return lib.filter.targetEnabled({name:'sha'},event.chooser,target);
}).ai=function(target){
return ai.get.effect(target,{name:'sha'},event.chooser);
return get.effect(target,{name:'sha'},event.chooser);
}
player.line(event.chooser);
"step 1"
@ -8790,7 +8800,7 @@ mode.stone={
event.chooser.chooseTarget('发明:选择己方一名角色摸一张牌',function(card,playerx,target){
return player!=target&&player.side==target.side;
}).ai=function(target){
return ai.get.attitude(event.chooser,target);
return get.attitude(event.chooser,target);
};
player.line(event.chooser);
"step 1"
@ -10198,20 +10208,6 @@ mode.stone={
mode_stone_card_config:'炉石模式',
mode_stone_character_config:'炉石模式',
},
ai:{
get:{
rawAttitude:function(from,to){
var num;
if(to.isMin()&&!to.hasSkill('chaofeng')){
num=5;
}
else{
num=6;
}
return num*(from.side==to.side?1:-1);
}
}
},
help:{
'炉石模式':
'<div style="margin:10px">构筑</div><ul style="margin-top:0"><li>点击右上角的卡组管理构建卡组<li>一套卡组共30张牌由法术和随从牌构成每个同名卡牌最多带两张'+

View File

@ -20,7 +20,7 @@ mode.tafang={
}
}
get.chessDistance=lib.init.eval(result.get.chessDistance);
ai.get.rawAttitude=lib.init.eval(result.ai.get.rawAttitude);
get.rawAttitude=lib.init.eval(result.get.rawAttitude);
var toLoad=['addChessPlayer','addObstacle','removeObstacle','isChessNeighbour',
'draw2','updateCanvas2','setChessInfo','modeSwapPlayer'];
for(var i=0;i<toLoad.length;i++){

View File

@ -3272,7 +3272,7 @@ mode.versus={
player.chooseTarget(get.prompt('boss_didongjg'),function(card,player,target){
return target.isEnemyOf(player);
}).ai=function(target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(target.isTurnedOver()){
if(att>0){
return att+5;
@ -3345,7 +3345,7 @@ mode.versus={
player.chooseTarget(get.prompt('boss_qiwu'),function(card,player,target){
return target.hp<target.maxHp&&target.isFriendOf(player);
}).ai=function(target){
var num=ai.get.attitude(player,target);
var num=get.attitude(player,target);
if(num>0){
if(noneed&&player==target){
num=0.5;
@ -3428,7 +3428,7 @@ mode.versus={
return !target.isFriendOf(player);
}).ai=function(target){
if(target.isTurnedOver()) return 0;
return -ai.get.attitude(player,target);
return -get.attitude(player,target);
};
"step 1"
if(result.bool){
@ -3449,7 +3449,7 @@ mode.versus={
player.chooseTarget(get.prompt('boss_chuanyun'),function(card,player,target){
return player.hp<target.hp;
}).ai=function(target){
return ai.get.damageEffect(target,player,player);
return get.damageEffect(target,player,player);
}
"step 1"
if(result.bool){
@ -3471,7 +3471,7 @@ mode.versus={
if(target==trigger.player) return false;
return target.isEnemyOf(player);
}).ai=function(target){
return ai.get.damageEffect(target,player,player,'thunder');
return get.damageEffect(target,player,player,'thunder');
}
"step 1"
if(result.bool){
@ -3494,7 +3494,7 @@ mode.versus={
if(target.isFriendOf(player)) return false;
return lib.filter.targetEnabled({name:'sha'},player,target);
}).ai=function(target){
return ai.get.effect(target,{name:'sha'},player);
return get.effect(target,{name:'sha'},player);
}
"step 1"
if(result.bool){
@ -3617,7 +3617,7 @@ mode.versus={
var num=0,players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].hp<players[i].maxHp&&
players[i].isFriendOf(player)&&ai.get.recoverEffect(players[i])>0){
players[i].isFriendOf(player)&&get.recoverEffect(players[i])>0){
if(players[i].hp==1){
return true;
}
@ -3861,7 +3861,7 @@ mode.versus={
},
logTarget:'player',
check:function(event,player){
return ai.get.attitude(player,event.player)<0;
return get.attitude(player,event.player)<0;
},
content:function(){
player.line(trigger.player,'green');
@ -3907,7 +3907,7 @@ mode.versus={
return target.isFriendOf(player);
});
next.ai=function(target){
var att=ai.get.attitude(player,target);
var att=get.attitude(player,target);
if(att>0&&target.hasJudge('lebu')){
return 0.1;
}
@ -4086,7 +4086,7 @@ mode.versus={
player.chooseTarget('是否令一名敌方角色失去1点体力',function(card,player,target){
return !target.isFriendOf(player);
}).ai=function(target){
return -ai.get.attitude(player,target);
return -get.attitude(player,target);
}
}
"step 2"
@ -4132,8 +4132,8 @@ mode.versus={
return target.isEnemyOf(player);
}).ai=function(target){
if(player.hp<=1) return 0;
if(ai.get.attitude(player,target)>-3) return 0;
var eff=ai.get.damageEffect(target,player,player,'fire');
if(get.attitude(player,target)>-3) return 0;
var eff=get.damageEffect(target,player,player,'fire');
if(eff>0){
return eff+target.countCards('e')/2;
}
@ -4767,33 +4767,31 @@ mode.versus={
}
}
},
ai:{
get:{
rawAttitude:function(from,to){
if(from.side==to.side){
if(to.identity=='zhu'){
if(_status.connectMode){
if(_status.mode=='4v4') return 10;
}
else{
if(lib.storage.main_zhu||_status.mode=='four') return 10;
}
get:{
rawAttitude:function(from,to){
if(from.side==to.side){
if(to.identity=='zhu'){
if(_status.connectMode){
if(_status.mode=='4v4') return 10;
}
return 6;
}
else{
if(to.identity=='zhu'){
if(_status.connectMode){
if(_status.mode=='4v4') return -10;
}
else{
if(lib.storage.main_zhu||_status.mode=='four') return -10;
}
else{
if(lib.storage.main_zhu||_status.mode=='four') return 10;
}
return -6;
}
},
}
return 6;
}
else{
if(to.identity=='zhu'){
if(_status.connectMode){
if(_status.mode=='4v4') return -10;
}
else{
if(lib.storage.main_zhu||_status.mode=='four') return -10;
}
}
return -6;
}
},
},
help:{
'对决模式':