This commit is contained in:
parent
6e8185616d
commit
ffde185827
|
@ -667,11 +667,9 @@ card.gujian={
|
|||
return target!=player&&target.num('he')>0;
|
||||
},
|
||||
changeTarget:function(player,targets){
|
||||
game.countPlayer(function(current){
|
||||
if(get.distance(targets[0],current,'pure')==1&¤t.num('he')){
|
||||
targets.push(current);
|
||||
}
|
||||
});
|
||||
game.filterPlayer(function(current){
|
||||
return get.distance(targets[0],current,'pure')==1&¤t.num('he');
|
||||
},targets);
|
||||
},
|
||||
content:function(){
|
||||
var he=target.get('he');
|
||||
|
|
136
card/guozhan.js
136
card/guozhan.js
|
@ -89,21 +89,18 @@ card.guozhan={
|
|||
fullskin:true,
|
||||
type:'trick',
|
||||
enable:function(card,player){
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].isMajor()) return true;
|
||||
}
|
||||
return false;
|
||||
return game.hasPlayer(function(current){
|
||||
return current.isMajor();
|
||||
});
|
||||
},
|
||||
mode:['guozhan'],
|
||||
filterTarget:true,
|
||||
chongzhu:true,
|
||||
changeTarget:function(player,targets){
|
||||
var target=targets[0];
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].isMajor()==target.isMajor()&&game.players[i]!=target){
|
||||
targets.push(game.players[i]);
|
||||
}
|
||||
}
|
||||
game.filterPlayer(function(current){
|
||||
return current.isMajor()==target.isMajor()&¤t!=target;
|
||||
},targets);
|
||||
},
|
||||
content:function(){
|
||||
if(target.isLinked()){
|
||||
|
@ -122,18 +119,16 @@ card.guozhan={
|
|||
},
|
||||
result:{
|
||||
player:function(player,target){
|
||||
var num=0;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(target.isMajor()==game.players[i].isMajor()){
|
||||
if(game.players[i].isLinked()){
|
||||
num+=ai.get.attitude(player,target);
|
||||
return game.countPlayer(function(current){
|
||||
if(target.isMajor()==current.isMajor()){
|
||||
if(current.isLinked()){
|
||||
return ai.get.attitude(player,target);
|
||||
}
|
||||
else{
|
||||
num-=ai.get.attitude(player,target)*0.8;
|
||||
return -ai.get.attitude(player,target)*0.8;
|
||||
}
|
||||
}
|
||||
}
|
||||
return num;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -152,11 +147,9 @@ card.guozhan={
|
|||
var target=targets[0];
|
||||
targets.push(player);
|
||||
if(target.identity!='ye'){
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(target!=game.players[i]&&target.identity==game.players[i].identity){
|
||||
targets.push(game.players[i]);
|
||||
}
|
||||
}
|
||||
game.filterPlayer(function(current){
|
||||
return target!=current&&target.identity==current.identity;
|
||||
},targets);
|
||||
}
|
||||
},
|
||||
content:function(){
|
||||
|
@ -264,16 +257,15 @@ card.guozhan={
|
|||
player:function(player,target){
|
||||
var att=ai.get.attitude(player,target);
|
||||
if(target.hp==1&&att<0) return 0;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]==target) continue;
|
||||
if(ai.get.attitude(player,game.players[i])<att){
|
||||
if(game.hasPlayer(function(current){
|
||||
return ai.get.attitude(player,current)<att;
|
||||
})){
|
||||
var num=1;
|
||||
if(target==player.next||target==player.previous){
|
||||
num+=0.5;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -301,36 +293,28 @@ card.guozhan={
|
|||
return target==next||target.inline(next);
|
||||
}
|
||||
if(player==target) return false;
|
||||
var link=false;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].isLinked()&&game.players[i]!=player){
|
||||
link=true;break;
|
||||
}
|
||||
}
|
||||
if(link){
|
||||
if(game.hasPlayer(function(current){
|
||||
return current.isLinked()&¤t!=player;
|
||||
})){
|
||||
if(!target.isLinked()) return false;
|
||||
var distance=get.distance(player,target,'absolute');
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(target!=game.players[i]&&
|
||||
game.players[i]!=player&&
|
||||
game.players[i].isLinked()){
|
||||
if(get.distance(player,game.players[i],'absolute')<distance){
|
||||
return false;
|
||||
}
|
||||
if(get.distance(player,game.players[i],'absolute')==distance&&
|
||||
parseInt(game.players[i].dataset.position)<parseInt(target.dataset.position)){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return !game.hasPlayer(function(current){
|
||||
if(target!=current&¤t!=player&¤t.isLinked()){
|
||||
var dist=get.distance(player,current,'absolute');
|
||||
if(dist<distance){
|
||||
return true;
|
||||
}
|
||||
if(dist==distance&&parseInt(current.dataset.position)<parseInt(target.dataset.position)){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
else{
|
||||
var dist=get.distance(player,target);
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]!=player&&get.distance(player,game.players[i])<dist) return false;
|
||||
}
|
||||
return true;
|
||||
return !game.hasPlayer(function(current){
|
||||
return current!=player&&get.distance(player,current)<dist
|
||||
});
|
||||
}
|
||||
},
|
||||
enable:true,
|
||||
|
@ -353,19 +337,11 @@ card.guozhan={
|
|||
if(!target.isLinked()){
|
||||
return ai.get.damageEffect(target,player,target,'fire');
|
||||
}
|
||||
var num=0;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].isLinked()){
|
||||
var eff=ai.get.damageEffect(game.players[i],player,target,'fire');
|
||||
if(eff>0){
|
||||
num++;
|
||||
return game.countPlayer(function(current){
|
||||
if(current.isLinked()){
|
||||
return get.sgn(ai.get.damageEffect(current,player,target,'fire'));
|
||||
}
|
||||
else if(eff<0){
|
||||
num--;
|
||||
}
|
||||
}
|
||||
}
|
||||
return num;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -527,11 +503,9 @@ card.guozhan={
|
|||
basic:{
|
||||
equipValue:function(card,player){
|
||||
if(player.identity=='unknown'||player.identity=='ye') return 2.5;
|
||||
var num=2;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].identity==player.identity) num+=0.5;
|
||||
}
|
||||
return num;
|
||||
return 2+game.countPlayer(function(current){
|
||||
return current.identity==player.identity;
|
||||
})/2;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -574,10 +548,9 @@ card.guozhan={
|
|||
trigger:{player:'phaseUseBegin'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(player.canUse({name:'zhibi'},game.players[i])) return true;
|
||||
}
|
||||
return false;
|
||||
return game.hasPlayer(function(current){
|
||||
return player.canUse('zhibi',current);
|
||||
});
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
|
@ -810,13 +783,12 @@ card.guozhan={
|
|||
_wuliu_skill2:{
|
||||
mod:{
|
||||
attackFrom:function(from,to,distance){
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]==from) continue;
|
||||
if(game.players[i].identity=='unknown'||game.players[i].identity=='ye') continue;
|
||||
if(game.players[i].identity!=from.identity) continue;
|
||||
if(game.players[i].num('e','wuliu')) distance--;
|
||||
}
|
||||
return distance;
|
||||
return distance-game.countPlayer(function(current){
|
||||
if(current==from) return false;
|
||||
if(current.identity=='unknown'||current.identity=='ye') return false;
|
||||
if(current.identity!=from.identity) return false;
|
||||
if(current.hasSkill('wuliu_skill')) return true;
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -828,11 +800,9 @@ card.guozhan={
|
|||
if(player.num('h')==0) return false;
|
||||
if(!event.card) return false;
|
||||
if(event.card.name!='sha') return false;
|
||||
var num=0;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]!=event.player&&get.distance(event.player,game.players[i])<=1) num++;
|
||||
}
|
||||
return num>0;
|
||||
return game.hasPlayer(function(current){
|
||||
return current!=event.player&&get.distance(event.player,current)<=1;
|
||||
});
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
|
|
|
@ -423,7 +423,7 @@ card.hearth={
|
|||
content:function(){
|
||||
'step 0'
|
||||
event.current=target;
|
||||
event.num=game.players.length;
|
||||
event.num=game.countPlayer(lib.filter.all);
|
||||
if(event.num%2==0){
|
||||
event.num--;
|
||||
}
|
||||
|
@ -619,11 +619,7 @@ card.hearth={
|
|||
result:{
|
||||
target:function(player,target){
|
||||
if(target.hasSkillTag('nothunder')) return 0;
|
||||
var num=0;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].ai.shown==0) num++;
|
||||
}
|
||||
if(num>1) return 0;
|
||||
if(player.hasUnknown()) return 0;
|
||||
var nh=target.num('he');
|
||||
if(target==player) nh--;
|
||||
if(nh==2) return -2.5;
|
||||
|
|
32
card/sp.js
32
card/sp.js
|
@ -68,7 +68,7 @@ card.sp={
|
|||
fullskin:true,
|
||||
enable:true,
|
||||
chongzhu:function(){
|
||||
return game.players.length<=2;
|
||||
return game.countPlayer(lib.filter.all)<=2;
|
||||
},
|
||||
singleCard:true,
|
||||
type:'trick',
|
||||
|
@ -200,25 +200,23 @@ card.sp={
|
|||
},
|
||||
result:{
|
||||
player:function(player,target){
|
||||
var num=0;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(get.distance(target,game.players[i])<=1&&game.players[i]!=target){
|
||||
var att=ai.get.attitude(player,game.players[i]);
|
||||
return game.countPlayer(function(current){
|
||||
if(get.distance(target,current)<=1&¤t!=target){
|
||||
var att=ai.get.attitude(player,current);
|
||||
if(att>3){
|
||||
num+=1.1;
|
||||
return 1.1;
|
||||
}
|
||||
else if(att>0){
|
||||
num++;
|
||||
return 1;
|
||||
}
|
||||
else if(att<-3){
|
||||
num-=1.1;
|
||||
return -1.1;
|
||||
}
|
||||
else if(att<0){
|
||||
num--;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return num;
|
||||
});
|
||||
},
|
||||
target:-1
|
||||
},
|
||||
|
@ -304,14 +302,12 @@ card.sp={
|
|||
game.broadcast(function(muniu,cards){
|
||||
muniu.cards=cards;
|
||||
},muniu,muniu.cards);
|
||||
var players=[];
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(!game.players[i].get('e','5')&&game.players[i]!=player&&
|
||||
!game.players[i].isTurnedOver()&&
|
||||
ai.get.attitude(player,game.players[i])>=3&&ai.get.attitude(game.players[i],player)>=3){
|
||||
players.push(game.players[i]);
|
||||
}
|
||||
var players=game.filterPlayer(function(current){
|
||||
if(!current.get('e','5')&¤t!=player&&!current.isTurnedOver()&&
|
||||
ai.get.attitude(player,current)>=3&&ai.get.attitude(current,player)>=3){
|
||||
return true;
|
||||
}
|
||||
});
|
||||
players.sort(lib.sort.seat);
|
||||
var choice=players[0];
|
||||
var next=player.chooseTarget('是否移动木牛流马?',function(card,player,target){
|
||||
|
|
|
@ -74,7 +74,6 @@ window.characterRank={
|
|||
'hs_laxiao',
|
||||
'hs_shaku',
|
||||
'hs_fandral',
|
||||
'hs_totemic',
|
||||
'sundeng',
|
||||
'hs_xialikeer',
|
||||
'hs_sainaliusi',
|
||||
|
@ -144,6 +143,7 @@ window.characterRank={
|
|||
],
|
||||
am:[
|
||||
'old_wangyi',
|
||||
'hs_totemic',
|
||||
'swd_duanmeng',
|
||||
'pal_wenhui',
|
||||
'gjqt_xunfang',
|
||||
|
|
13
game/game.js
13
game/game.js
|
@ -22687,12 +22687,14 @@
|
|||
}
|
||||
return num;
|
||||
},
|
||||
filterPlayer:function(func){
|
||||
var list=[];
|
||||
filterPlayer:function(func,list){
|
||||
if(!Array.isArray(list)){
|
||||
list=[];
|
||||
}
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].isOut()) continue;
|
||||
if(func(game.players[i])){
|
||||
list.push(game.players[i]);
|
||||
list.add(game.players[i]);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
|
@ -33150,6 +33152,11 @@
|
|||
return false;
|
||||
},
|
||||
},
|
||||
sgn:function(num){
|
||||
if(num>0) return 1;
|
||||
if(num<0) return -1;
|
||||
return 0;
|
||||
},
|
||||
rand:function(num,num2){
|
||||
if(typeof num2=='number'){
|
||||
return num+Math.floor(Math.random()*(num2-num+1));
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 7.9 KiB |
|
@ -752,7 +752,7 @@ table {
|
|||
opacity: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
#arena.auto #me .card{
|
||||
#arena.auto #me .handcards{
|
||||
opacity: 0.5
|
||||
}
|
||||
#autonode>div {
|
||||
|
|
Loading…
Reference in New Issue