This commit is contained in:
parent
44fc8fca1f
commit
7b5207de7e
|
@ -847,6 +847,9 @@ card.standard={
|
||||||
enable:true,
|
enable:true,
|
||||||
range:{global:1},
|
range:{global:1},
|
||||||
selectTarget:1,
|
selectTarget:1,
|
||||||
|
postAi:function(targets){
|
||||||
|
return targets.length==1&&targets[0].num('j');
|
||||||
|
},
|
||||||
filterTarget:function(card,player,target){
|
filterTarget:function(card,player,target){
|
||||||
if(player==target) return false;
|
if(player==target) return false;
|
||||||
return (target.num('hej')>0);
|
return (target.num('hej')>0);
|
||||||
|
@ -912,6 +915,9 @@ card.standard={
|
||||||
type:'trick',
|
type:'trick',
|
||||||
enable:true,
|
enable:true,
|
||||||
selectTarget:1,
|
selectTarget:1,
|
||||||
|
postAi:function(targets){
|
||||||
|
return targets.length==1&&targets[0].num('j');
|
||||||
|
},
|
||||||
filterTarget:function(card,player,target){
|
filterTarget:function(card,player,target){
|
||||||
if(player==target) return false;
|
if(player==target) return false;
|
||||||
return (target.num('hej')>0);
|
return (target.num('hej')>0);
|
||||||
|
@ -1480,6 +1486,12 @@ card.standard={
|
||||||
return state*ai.get.attitude(_status.event.player,source);
|
return state*ai.get.attitude(_status.event.player,source);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
var triggerevent=_status.event.getTrigger();
|
||||||
|
if(triggerevent&&triggerevent.parent&&
|
||||||
|
triggerevent.parent.postAi&&
|
||||||
|
triggerevent.player.isUnknown(_status.event.player)){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
var info=get.info(card);
|
var info=get.info(card);
|
||||||
if(info.ai&&info.ai.wuxie){
|
if(info.ai&&info.ai.wuxie){
|
||||||
var aiii=info.ai.wuxie(target,card,source,_status.event.player,state);
|
var aiii=info.ai.wuxie(target,card,source,_status.event.player,state);
|
||||||
|
|
|
@ -159,10 +159,11 @@ character.ow={
|
||||||
current.removeSkill('xie2');
|
current.removeSkill('xie2');
|
||||||
}
|
}
|
||||||
target.addSkill('xie2');
|
target.addSkill('xie2');
|
||||||
target.storage.xie=0;
|
target.storage.xie='now';
|
||||||
target.storage.xie2=player;
|
target.storage.xie2=player;
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
|
expose:0.2,
|
||||||
order:9.1,
|
order:9.1,
|
||||||
threaten:2,
|
threaten:2,
|
||||||
result:{
|
result:{
|
||||||
|
@ -180,32 +181,42 @@ character.ow={
|
||||||
},
|
},
|
||||||
xie2:{
|
xie2:{
|
||||||
mark:true,
|
mark:true,
|
||||||
trigger:{player:'phaseEnd'},
|
trigger:{global:'phaseEnd'},
|
||||||
forced:true,
|
forced:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return player.storage.xie%2==1&&player.hp<player.maxHp;
|
if(player.storage.xie=='now'){
|
||||||
|
return event.player==player;
|
||||||
|
}
|
||||||
|
var num=game.phaseNumber-player.storage.xie;
|
||||||
|
return num&&num%6==0;
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
|
if(player.storage.xie=='now'){
|
||||||
|
player.storage.xie=game.phaseNumber;
|
||||||
|
}
|
||||||
player.recover();
|
player.recover();
|
||||||
},
|
},
|
||||||
intro:{
|
intro:{
|
||||||
content:function(storage){
|
content:function(storage,player){
|
||||||
return '每隔两轮回复一点体力,直到'+get.translation(storage)+'死亡';
|
var str='每隔六回合回复一点体力,直到'+get.translation(storage)+'死亡';
|
||||||
|
if(typeof player.storage.xie=='number'){
|
||||||
|
var num=game.phaseNumber-player.storage.xie;
|
||||||
|
num=num%6;
|
||||||
|
if(num==0){
|
||||||
|
str+='(下次生效于本回合)'
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
str+='(下次生效于'+(6-num)+'回合后)'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return str;
|
||||||
},
|
},
|
||||||
onunmark:function(storage,player){
|
onunmark:function(storage,player){
|
||||||
delete player.storage.xie;
|
delete player.storage.xie;
|
||||||
delete player.storage.xie2;
|
delete player.storage.xie2;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
group:['xie3','xie4']
|
group:['xie4']
|
||||||
},
|
|
||||||
xie3:{
|
|
||||||
trigger:{player:'phaseBegin'},
|
|
||||||
forced:true,
|
|
||||||
popup:false,
|
|
||||||
content:function(){
|
|
||||||
player.storage.xie++;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
xie4:{
|
xie4:{
|
||||||
trigger:{global:'dieAfter'},
|
trigger:{global:'dieAfter'},
|
||||||
|
@ -239,10 +250,11 @@ character.ow={
|
||||||
current.removeSkill('luan2');
|
current.removeSkill('luan2');
|
||||||
}
|
}
|
||||||
target.addSkill('luan2');
|
target.addSkill('luan2');
|
||||||
target.storage.luan=0;
|
target.storage.luan='now';
|
||||||
target.storage.luan2=player;
|
target.storage.luan2=player;
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
|
expose:0.2,
|
||||||
order:9.1,
|
order:9.1,
|
||||||
threaten:2,
|
threaten:2,
|
||||||
result:{
|
result:{
|
||||||
|
@ -260,32 +272,42 @@ character.ow={
|
||||||
},
|
},
|
||||||
luan2:{
|
luan2:{
|
||||||
mark:true,
|
mark:true,
|
||||||
trigger:{player:'phaseEnd'},
|
trigger:{global:'phaseEnd'},
|
||||||
forced:true,
|
forced:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return player.storage.luan%2==1;
|
if(player.storage.luan=='now'){
|
||||||
|
return event.player==player;
|
||||||
|
}
|
||||||
|
var num=game.phaseNumber-player.storage.luan;
|
||||||
|
return num&&num%6==0;
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
|
if(player.storage.luan=='now'){
|
||||||
|
player.storage.luan=game.phaseNumber;
|
||||||
|
}
|
||||||
player.loseHp();
|
player.loseHp();
|
||||||
},
|
},
|
||||||
intro:{
|
intro:{
|
||||||
content:function(storage){
|
content:function(storage,player){
|
||||||
return '每隔两轮失去一点体力,直到'+get.translation(storage)+'死亡';
|
var str='每隔六回合失去一点体力,直到'+get.translation(storage)+'死亡';
|
||||||
|
if(typeof player.storage.luan=='number'){
|
||||||
|
var num=game.phaseNumber-player.storage.luan;
|
||||||
|
num=num%6;
|
||||||
|
if(num==0){
|
||||||
|
str+='(下次生效于本回合)'
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
str+='(下次生效于'+(6-num)+'回合后)'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return str;
|
||||||
},
|
},
|
||||||
onunmark:function(storage,player){
|
onunmark:function(storage,player){
|
||||||
delete player.storage.luan;
|
delete player.storage.luan;
|
||||||
delete player.storage.luan2;
|
delete player.storage.luan2;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
group:['luan3','luan4']
|
group:['luan4']
|
||||||
},
|
|
||||||
luan3:{
|
|
||||||
trigger:{player:'phaseBegin'},
|
|
||||||
forced:true,
|
|
||||||
popup:false,
|
|
||||||
content:function(){
|
|
||||||
player.storage.luan++;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
luan4:{
|
luan4:{
|
||||||
trigger:{global:'dieAfter'},
|
trigger:{global:'dieAfter'},
|
||||||
|
@ -979,10 +1001,10 @@ character.ow={
|
||||||
zhanlong_info:'限定技,回合开始阶段,若你体力值为1,你可以弃置所有牌(至少一张),然后将三张杀置入你的手牌,若如此做,你本回合使用杀无次数限制',
|
zhanlong_info:'限定技,回合开始阶段,若你体力值为1,你可以弃置所有牌(至少一张),然后将三张杀置入你的手牌,若如此做,你本回合使用杀无次数限制',
|
||||||
xie:'谐',
|
xie:'谐',
|
||||||
xie2:'谐',
|
xie2:'谐',
|
||||||
xie_info:'出牌阶段,你可以弃置一张红桃手牌并指定一名角色,该角色每隔两轮于回合结束阶段回复一点体力,直到你死亡。同一时间只能对一人发动',
|
xie_info:'出牌阶段,你可以弃置一张红桃手牌并指定一名角色,该角色自其下一回合开始每隔六回合回复一点体力,直到你死亡。同一时间只能对一人发动',
|
||||||
luan:'乱',
|
luan:'乱',
|
||||||
luan2:'乱',
|
luan2:'乱',
|
||||||
luan_info:'出牌阶段,你可以弃置一张黑桃手牌并指定一名角色,该角色每隔两轮于回合结束阶段失去一点体力,直到你死亡。同一时间只能对一人发动',
|
luan_info:'出牌阶段,你可以弃置一张黑桃手牌并指定一名角色,该角色自其下一回合开始每隔六回合失去一点体力,直到你死亡。同一时间只能对一人发动',
|
||||||
sheng:'圣',
|
sheng:'圣',
|
||||||
sheng_info:'限定技,出牌阶段,你可以将你的武将牌翻面,然后令任意名角色回复一点体力,若如此做,你不能成为其他角色的卡牌目标直到下一回合开始',
|
sheng_info:'限定技,出牌阶段,你可以将你的武将牌翻面,然后令任意名角色回复一点体力,若如此做,你不能成为其他角色的卡牌目标直到下一回合开始',
|
||||||
xiandan:'霰弹',
|
xiandan:'霰弹',
|
||||||
|
|
|
@ -104,6 +104,8 @@ window.characterRank={
|
||||||
'hs_shanlingjuren',
|
'hs_shanlingjuren',
|
||||||
'hs_tgolem',
|
'hs_tgolem',
|
||||||
'zhangrang',
|
'zhangrang',
|
||||||
|
'ow_chanyata',
|
||||||
|
'ow_tianshi',
|
||||||
],
|
],
|
||||||
am:[
|
am:[
|
||||||
'guohuanghou',
|
'guohuanghou',
|
||||||
|
@ -111,9 +113,7 @@ window.characterRank={
|
||||||
'hs_blingtron',
|
'hs_blingtron',
|
||||||
'ow_shibing',
|
'ow_shibing',
|
||||||
'hs_kcthun',
|
'hs_kcthun',
|
||||||
'ow_tianshi',
|
|
||||||
'ow_zhixuzhiguang',
|
'ow_zhixuzhiguang',
|
||||||
'ow_chanyata',
|
|
||||||
'ow_falaozhiying',
|
'ow_falaozhiying',
|
||||||
'hs_bolvar',
|
'hs_bolvar',
|
||||||
'lifeng',
|
'lifeng',
|
||||||
|
|
|
@ -2756,7 +2756,7 @@ character.yijiang={
|
||||||
if(!player.storage.jijianging){
|
if(!player.storage.jijianging){
|
||||||
for(var i=0;i<game.players.length;i++){
|
for(var i=0;i<game.players.length;i++){
|
||||||
var nh=game.players[i].num('h');
|
var nh=game.players[i].num('h');
|
||||||
if(ai.get.attitude(game.players[i],player)>1&&(nh>=4||(nh>=3&&game.players[i].num('h','sha')))){
|
if(game.players[i].group=='shu'&&ai.get.attitude(game.players[i],player)>1&&(nh>=4||(nh>=3&&game.players[i].num('h','sha')))){
|
||||||
yep=true;break;
|
yep=true;break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2829,7 +2829,7 @@ character.yijiang={
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
for(var i=0;i<game.players.length;i++){
|
for(var i=0;i<game.players.length;i++){
|
||||||
var nh=game.players[i].num('h');
|
var nh=game.players[i].num('h');
|
||||||
if(ai.get.attitude(game.players[i],player)>1&&(nh>=4||(nh>=3&&game.players[i].num('h','sha')))){
|
if(game.players[i].group=='shu'&&ai.get.attitude(game.players[i],player)>1&&(nh>=4||(nh>=3&&game.players[i].num('h','sha')))){
|
||||||
return 5-ai.get.value(card);
|
return 5-ai.get.value(card);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
31
game/game.js
31
game/game.js
|
@ -6161,6 +6161,9 @@
|
||||||
next.preResult=event.preResult;
|
next.preResult=event.preResult;
|
||||||
}
|
}
|
||||||
"step 5"
|
"step 5"
|
||||||
|
if(event.postAi){
|
||||||
|
event.player.logAi(event.targets,event.card);
|
||||||
|
}
|
||||||
if(event._result){
|
if(event._result){
|
||||||
event.result=event._result;
|
event.result=event._result;
|
||||||
}
|
}
|
||||||
|
@ -8668,7 +8671,13 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(typeof this.logAi=='function'){
|
if(typeof this.logAi=='function'){
|
||||||
this.logAi(next.targets,next.card);
|
var postAi=get.info(next.card).postAi;
|
||||||
|
if(postAi&&postAi(next.targets)){
|
||||||
|
next.postAi=true;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
this.logAi(next.targets,next.card);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
next.content=lib.element.playerproto.useCard;
|
next.content=lib.element.playerproto.useCard;
|
||||||
return next;
|
return next;
|
||||||
|
@ -9065,6 +9074,14 @@
|
||||||
unMad:function(){
|
unMad:function(){
|
||||||
this.removeSkill('mad');
|
this.removeSkill('mad');
|
||||||
},
|
},
|
||||||
|
addExpose:function(num){
|
||||||
|
if(typeof this.ai.shown=='number'&&!this.identityShown){
|
||||||
|
this.ai.shown+=num;
|
||||||
|
if(this.ai.shown>1){
|
||||||
|
this.ai.shown=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
equip:function(card){
|
equip:function(card){
|
||||||
var next=game.createEvent('equip');
|
var next=game.createEvent('equip');
|
||||||
next.card=card;
|
next.card=card;
|
||||||
|
@ -9733,6 +9750,9 @@
|
||||||
isDamaged:function(){
|
isDamaged:function(){
|
||||||
return this.hp<this.maxHp;
|
return this.hp<this.maxHp;
|
||||||
},
|
},
|
||||||
|
isHealthy:function(){
|
||||||
|
return this.hp==this.maxHp;
|
||||||
|
},
|
||||||
isLinked:function(){
|
isLinked:function(){
|
||||||
return this.classList.contains('linked');
|
return this.classList.contains('linked');
|
||||||
},
|
},
|
||||||
|
@ -9836,6 +9856,15 @@
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
isUnknown:function(player){
|
||||||
|
var mode=get.mode();
|
||||||
|
if(mode=='identity'||mode=='guozhan'){
|
||||||
|
if(this.ai.shown==0&&this!=player){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
hasWuxie:function(){
|
hasWuxie:function(){
|
||||||
if(this.num('h','wuxie')) return true;
|
if(this.num('h','wuxie')) return true;
|
||||||
var skills=this.get('s',true).concat(lib.skill.global);
|
var skills=this.get('s',true).concat(lib.skill.global);
|
||||||
|
|
|
@ -7,9 +7,11 @@ window.noname_update={
|
||||||
global:[
|
global:[
|
||||||
'character/rank.js',
|
'character/rank.js',
|
||||||
'character/ow.js',
|
'character/ow.js',
|
||||||
|
'character/yijiang.js',
|
||||||
'mode/chess.js',
|
'mode/chess.js',
|
||||||
'game/game.js',
|
'game/game.js',
|
||||||
'card/swd.js',
|
'card/swd.js',
|
||||||
|
'card/standard.js',
|
||||||
],
|
],
|
||||||
'1.8.15':[]
|
'1.8.15':[]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue