att
This commit is contained in:
parent
e00fe6ff94
commit
cfabbaad0f
|
@ -57,38 +57,55 @@ card.hearth={
|
|||
zhaomingdan:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
chongzhu:true,
|
||||
enable:function(card,player){
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]!=player&&game.players[i].num('j')) return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
enable:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return player!=target&&target.num('j')>0;
|
||||
return player!=target&&target.num('hej')>0;
|
||||
},
|
||||
content:function(){
|
||||
target.discard(target.get('j'));
|
||||
'step 0'
|
||||
if(target.num('hej')){
|
||||
player.choosePlayerCard('hej','重铸'+get.translation(target)+'的一张牌',target,true).visible=true;
|
||||
}
|
||||
else{
|
||||
event.goto(2);
|
||||
}
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
target.$throw(result.links,1000);
|
||||
target.lose(result.links);
|
||||
game.delay(0.5);
|
||||
}
|
||||
'step 2'
|
||||
target.draw(false);
|
||||
target.$draw();
|
||||
game.delay(0.5);
|
||||
'step 3'
|
||||
player.draw();
|
||||
},
|
||||
ai:{
|
||||
order:9.5,
|
||||
value:1,
|
||||
value:6,
|
||||
useful:3,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
var es=target.get('e');
|
||||
var nh=target.num('h');
|
||||
var noe=(es.length==0||target.hasSkillTag('noe'));
|
||||
var noe2=(es.length==1&&es[0].name=='baiyin'&&target.hp<target.maxHp);
|
||||
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.num('he'))?-1.5:1.5;
|
||||
var js=target.get('j');
|
||||
var num=0;
|
||||
for(var i=0;i<js.length;i++){
|
||||
var jj=js[i].viewAs?{name:js[i].viewAs}:js[i];
|
||||
if(jj.name=='zhaomingdan') num++;
|
||||
else if(js.length==1&&ai.get.effect(target,jj,target,target)>=0){
|
||||
num--;
|
||||
}
|
||||
else{
|
||||
num++;
|
||||
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){
|
||||
return -1.5;
|
||||
}
|
||||
return 3;
|
||||
}
|
||||
return num;
|
||||
return -1.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -670,7 +687,7 @@ card.hearth={
|
|||
shijieshu:'视界术',
|
||||
shijieshu_info:'目标随机装备牌堆中的两张装备牌,然后弃置一张手牌',
|
||||
zhaomingdan:'照明弹',
|
||||
zhaomingdan_info:'弃置一名其他角色判定区内的所有牌,然后摸一张牌',
|
||||
zhaomingdan_info:'观看一名其他角色的手牌,并重置其区域内的一张牌,然后摸一张牌',
|
||||
jihuocard:'激活',
|
||||
jihuocard_info:'跳过本回合的弃牌阶段,摸一张牌',
|
||||
},
|
||||
|
@ -688,8 +705,8 @@ card.hearth={
|
|||
['club',3,'shandianjian','thunder'],
|
||||
['spade',1,'shandianjian','thunder'],
|
||||
['spade',7,'shijieshu'],
|
||||
// ['diamond',5,'zhaomingdan'],
|
||||
// ['heart',10,'zhaomingdan'],
|
||||
['diamond',5,'zhaomingdan'],
|
||||
['heart',10,'zhaomingdan'],
|
||||
['diamond',2,'jihuocard'],
|
||||
['diamond',1,'linghunzhihuo'],
|
||||
],
|
||||
|
|
18
card/swd.js
18
card/swd.js
|
@ -277,6 +277,7 @@ card.swd={
|
|||
player.draw();
|
||||
},
|
||||
ai:{
|
||||
value:6,
|
||||
result:{
|
||||
target:1
|
||||
},
|
||||
|
@ -724,7 +725,14 @@ card.swd={
|
|||
useful:6,
|
||||
value:6,
|
||||
result:{
|
||||
player:1
|
||||
player:function(){
|
||||
var cardname=_status.event.cardname;
|
||||
if(cardname=='tiesuo') return 0;
|
||||
if(cardname=='jiu') return 0;
|
||||
if(cardname=='tianxianjiu') return 0;
|
||||
if(cardname=='toulianghuanzhu') return 0;
|
||||
return 1;
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
|
@ -1775,13 +1783,7 @@ card.swd={
|
|||
var mod=game.checkMod(card,player,'unchanged','cardEnabled',player.get('s'));
|
||||
if(mod!='unchanged') return mod;
|
||||
return true;
|
||||
},trigger.player,-1).set('ai',function(){
|
||||
if(trigger.card.name=='tiesuo') return 0;
|
||||
if(trigger.card.name=='jiu') return 0;
|
||||
if(trigger.card.name=='tianxianjiu') return 0;
|
||||
if(trigger.card.name=='toulianghuanzhu') return 0;
|
||||
return 1;
|
||||
}).targetRequired=true;
|
||||
},trigger.player,-1).set('cardname',trigger.card.name).targetRequired=true;
|
||||
'step 1'
|
||||
delete player.storage.shenmiguo;
|
||||
}
|
||||
|
|
100
character/swd.js
100
character/swd.js
|
@ -9,7 +9,7 @@ character.swd={
|
|||
// swd_miles:['male','qun',4,['aojian','miles_xueyi','mohua2']],
|
||||
swd_nicole:['female','qun',3,['huanjian','lingwu','minjing']],
|
||||
swd_wangsiyue:['female','wei',3,['duishi','biyue']],
|
||||
swd_weida:['female','qun',3,['yueren','zhenlie']],
|
||||
swd_weida:['female','qun',3,['yueren','duijue']],
|
||||
swd_xuanyuanjianxian:['male','qun',4,['pozhou','huajian']],
|
||||
|
||||
swd_chenjingchou:['male','wu',3,['youyin','yihua']],
|
||||
|
@ -7039,7 +7039,10 @@ character.swd={
|
|||
},
|
||||
duijue:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
mark:true,
|
||||
unique:true,
|
||||
forceunique:true,
|
||||
skillAnimation:true,
|
||||
filter:function(event,player){
|
||||
return !player.storage.duijue;
|
||||
},
|
||||
|
@ -7047,39 +7050,96 @@ character.swd={
|
|||
return player!=target&&target!=game.zhu;
|
||||
},
|
||||
content:function(){
|
||||
var players=game.players.concat(game.dead);
|
||||
players.remove(player);
|
||||
players.remove(target);
|
||||
for(var i=0;i<players.length;i++){
|
||||
players[i].classList.add('out');
|
||||
players[i].storage.duijue2=true;
|
||||
}
|
||||
player.addSkill('duijue2');
|
||||
target.addSkill('duijue2');
|
||||
player.storage.duijue=true;
|
||||
player.unmarkSkill('duijue');
|
||||
var evt=_status.event;
|
||||
for(var i=0;i<10;i++){
|
||||
if(evt&&evt.getParent){
|
||||
evt=evt.getParent();
|
||||
}
|
||||
if(evt.name=='phaseUse'){
|
||||
evt.skipped=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
player.storage.duijue3=target;
|
||||
player.addSkill('duijue3');
|
||||
},
|
||||
init:function(player){
|
||||
player.storage.duijue=false;
|
||||
},
|
||||
intro:{
|
||||
content:'limited'
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target.hp==1&&player.hp>=3) return -1;
|
||||
if(target.hp<player.hp&&target.num('h')<=player.num('h')) return -1;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
duijue2:{
|
||||
trigger:{global:'dieAfter'},
|
||||
duijue3:{
|
||||
trigger:{player:'phaseAfter'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
content:function(){
|
||||
var players=game.players.concat(game.dead);
|
||||
for(var i=0;i<players.length;i++){
|
||||
if(players[i].storage.duijue2&&players[i].isOut()){
|
||||
players[i].classList.remove('out');
|
||||
delete players[i].storage.duijue2;
|
||||
'step 0'
|
||||
event.target=player.storage.duijue3;
|
||||
delete player.storage.duijue3;
|
||||
player.removeSkill('duijue3');
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]!=player&&game.players[i]!=event.target){
|
||||
game.players[i].addSkill('duijue2');
|
||||
}
|
||||
}
|
||||
'step 1'
|
||||
target.phase();
|
||||
'step 2'
|
||||
if(target.isAlive()){
|
||||
player.phase();
|
||||
}
|
||||
else{
|
||||
event.goto(4);
|
||||
}
|
||||
'step 3'
|
||||
if(target.isAlive()){
|
||||
event.goto(1);
|
||||
}
|
||||
'step 4'
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]!=player&&game.players[i]!=target){
|
||||
game.players[i].removeSkill('duijue2');
|
||||
}
|
||||
players[i].removeSkill('duijue2');
|
||||
}
|
||||
}
|
||||
},
|
||||
duijue2:{
|
||||
mod:{
|
||||
cardEnabled:function(){
|
||||
return false;
|
||||
},
|
||||
cardSavable:function(){
|
||||
return false;
|
||||
},
|
||||
targetEnabled:function(){
|
||||
return false;
|
||||
}
|
||||
},
|
||||
init:function(player){
|
||||
player.classList.add('transparent');
|
||||
},
|
||||
onremove:function(player){
|
||||
player.classList.remove('transparent');
|
||||
},
|
||||
intro:{
|
||||
content:'不计入距离的计算且不能使用牌且不是牌的合法目标'
|
||||
},
|
||||
group:'undist'
|
||||
},
|
||||
yueren:{
|
||||
trigger:{player:'shaBegin'},
|
||||
filter:function(event,player){
|
||||
|
@ -8432,7 +8492,7 @@ character.swd={
|
|||
xuying_info:'锁定技,每当你即将受到伤害,你防止此伤害,若你此时有手牌,你流失一点体力',
|
||||
yinguo_info:'除你之外的任意一名角色即将受到受到伤害时,若有伤害来源,你可以弃置一张牌将伤害来源和目标对调',
|
||||
yueren_info:'每当你使用一张杀,可以进行一次判定,若结果为黑色,你弃置目标一张牌,若结果为红色,你将此杀收回,每回合限发动一次',
|
||||
duijue_info:'限定技,出牌阶段,你可以指定一名角色与其单挑,直到一方死亡为止',
|
||||
duijue_info:'限定技,出牌阶段,你可以指定一名非主公的其他角色,你结束出牌阶段,然后该角色与你轮流进行回合,直到一方死亡为止;在此之前,所有其他角色不计入距离的计算且不能使用牌且不是牌的合法目标',
|
||||
wuying_info:'锁定技,你的杀和单体x锦囊目标锁定为范围内的所有角色',
|
||||
xiehun_info:'锁定技,受到来自你伤害的角色进入混乱状态,行为不受控制,且会攻击队友,直到你的下一回合开始',
|
||||
jumo_info:'锁定技,回合结束阶段,你摸X-1张牌,X为未进入混乱状态的角色数与进入混乱状态的角色数之差(若为双将则改为X)',
|
||||
|
|
|
@ -32969,6 +32969,13 @@
|
|||
}
|
||||
},
|
||||
get:{
|
||||
attitude:function(from,to){
|
||||
if(!from||!to) return 0;
|
||||
var att=ai.get.rawAttitude.apply(this,arguments);
|
||||
if(from.isMad()) return -att;
|
||||
if(to.isMad()) return 0;
|
||||
return att;
|
||||
},
|
||||
useful:function(card){
|
||||
if(get.position(card)=='j') return -1;
|
||||
if(get.position(card)=='e') return ai.get.equipValue(card);
|
||||
|
|
|
@ -38,5 +38,13 @@ window.noname_update={
|
|||
|
||||
// 'character/ow.js',
|
||||
// 'character/sp.js',
|
||||
// 'character/swd.js',
|
||||
// 'character/rank.js',
|
||||
// 'card/swd.js',
|
||||
// 'card/hearth.js',
|
||||
// 'mode/boss.js',
|
||||
// 'mode/chess.js',
|
||||
// 'mode/guozhan.js',
|
||||
// 'mode/identity.js',
|
||||
// 'mode/stone.js',
|
||||
// 'mode/versus.js',
|
||||
|
|
12
mode/boss.js
12
mode/boss.js
|
@ -3023,16 +3023,8 @@ mode.boss={
|
|||
},
|
||||
ai:{
|
||||
get:{
|
||||
attitude:function(from,to){
|
||||
if(!from||!to) return 0;
|
||||
var t=(from.side===to.side?1:-1);
|
||||
if(from.isMad()){
|
||||
t=-t;
|
||||
}
|
||||
else if(to.isMad()){
|
||||
t=0;
|
||||
}
|
||||
return 6*t;
|
||||
rawAttitude:function(from,to){
|
||||
return (from.side===to.side?6:-6);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -5257,16 +5257,8 @@ mode.chess={
|
|||
},
|
||||
ai:{
|
||||
get:{
|
||||
attitude:function(from,to){
|
||||
if(!from||!to) return 0;
|
||||
var t=(from.side===to.side?1:-1);
|
||||
if(from.isMad()){
|
||||
t=-t;
|
||||
}
|
||||
else if(to.isMad()){
|
||||
t=0;
|
||||
}
|
||||
return 6*t;
|
||||
rawAttitude:function(from,to){
|
||||
return (from.side===to.side?6:-6);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -1258,13 +1258,7 @@ mode.guozhan={
|
|||
if(to_p<max-1) return 0;
|
||||
return -0.5;
|
||||
},
|
||||
attitude:function(from){
|
||||
var att=ai.get.rawAttitude.apply(this,arguments);
|
||||
if(from&&from.isMad()) return -att;
|
||||
return att;
|
||||
},
|
||||
rawAttitude:function(from,to){
|
||||
if(!from||!to) return 0;
|
||||
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'&&
|
||||
|
|
|
@ -1433,13 +1433,7 @@ mode.identity={
|
|||
},
|
||||
ai:{
|
||||
get:{
|
||||
attitude:function(from){
|
||||
var att=ai.get.rawAttitude.apply(this,arguments);
|
||||
if(from&&from.isMad()) return -att;
|
||||
return att;
|
||||
},
|
||||
rawAttitude:function(from,to){
|
||||
if(!from||!to) return 0;
|
||||
var x=0,num=0,temp,i;
|
||||
if(_status.ai.customAttitude){
|
||||
for(i=0;i<_status.ai.customAttitude.length;i++){
|
||||
|
|
|
@ -10159,8 +10159,7 @@ mode.stone={
|
|||
},
|
||||
ai:{
|
||||
get:{
|
||||
attitude:function(from,to){
|
||||
if(!from||!to) return 0;
|
||||
rawAttitude:function(from,to){
|
||||
var num;
|
||||
if(to.isMin()&&!to.hasSkill('chaofeng')){
|
||||
num=5;
|
||||
|
@ -10168,9 +10167,6 @@ mode.stone={
|
|||
else{
|
||||
num=6;
|
||||
}
|
||||
if(from&&from.isMad()){
|
||||
num=-num;
|
||||
}
|
||||
return num*(from.side==to.side?1:-1);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3970,13 +3970,7 @@ mode.versus={
|
|||
},
|
||||
ai:{
|
||||
get:{
|
||||
attitude:function(from){
|
||||
var att=ai.get.rawAttitude.apply(this,arguments);
|
||||
if(from&&from.isMad()) return -att;
|
||||
return att;
|
||||
},
|
||||
rawAttitude:function(from,to){
|
||||
if(!from||!to) return 0;
|
||||
if(from.side==to.side){
|
||||
if(to.identity=='zhu'){
|
||||
if(_status.connectMode){
|
||||
|
|
Loading…
Reference in New Issue