This commit is contained in:
parent
5898a646c8
commit
0fa6033d5d
|
@ -45,12 +45,10 @@ card.hearth={
|
||||||
selectTarget:-1,
|
selectTarget:-1,
|
||||||
content:function(){
|
content:function(){
|
||||||
target.skip('phaseDiscard');
|
target.skip('phaseDiscard');
|
||||||
if(target.num('h')<=target.hp){
|
target.draw();
|
||||||
target.draw();
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
order:1,
|
order:10,
|
||||||
result:{
|
result:{
|
||||||
target:1
|
target:1
|
||||||
}
|
}
|
||||||
|
@ -656,7 +654,7 @@ card.hearth={
|
||||||
zhaomingdan:'照明弹',
|
zhaomingdan:'照明弹',
|
||||||
zhaomingdan_info:'弃置一名其他角色判定区内的所有牌,然后摸一张牌',
|
zhaomingdan_info:'弃置一名其他角色判定区内的所有牌,然后摸一张牌',
|
||||||
jihuocard:'激活',
|
jihuocard:'激活',
|
||||||
jihuocard_info:'跳过本回合的弃牌阶段,若你手牌数不大于当前体力值,则摸一张牌',
|
jihuocard_info:'跳过本回合的弃牌阶段,摸一张牌',
|
||||||
},
|
},
|
||||||
list:[
|
list:[
|
||||||
['heart',2,'shenenshu'],
|
['heart',2,'shenenshu'],
|
||||||
|
|
|
@ -1223,6 +1223,15 @@ character.hearth={
|
||||||
player.storage.fenlie++;
|
player.storage.fenlie++;
|
||||||
player.gain(cards,'draw');
|
player.gain(cards,'draw');
|
||||||
},
|
},
|
||||||
|
ai:{
|
||||||
|
effect:{
|
||||||
|
target:function(card){
|
||||||
|
if(card.name=='toulianghuanzhu'){
|
||||||
|
return [1,2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
group:'fenlie2'
|
group:'fenlie2'
|
||||||
},
|
},
|
||||||
fenlie2:{
|
fenlie2:{
|
||||||
|
@ -1671,14 +1680,13 @@ character.hearth={
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
"step 0"
|
"step 0"
|
||||||
var noneed=(trigger.card.name=='tao'&&trigger.targets[0]==player&&player.hp==player.maxHp-1);
|
|
||||||
player.chooseTarget('是否发动【灵咒】?').ai=function(target){
|
player.chooseTarget('是否发动【灵咒】?').ai=function(target){
|
||||||
var num=ai.get.attitude(player,target);
|
var num=ai.get.attitude(player,target);
|
||||||
if(num>0){
|
if(num>0){
|
||||||
if(noneed&&player==target){
|
if(target==player){
|
||||||
num=0.5;
|
num++;
|
||||||
}
|
}
|
||||||
else if(target.hp==1){
|
if(target.hp==1){
|
||||||
num+=3;
|
num+=3;
|
||||||
}
|
}
|
||||||
else if(target.hp==2){
|
else if(target.hp==2){
|
||||||
|
@ -2980,7 +2988,7 @@ character.hearth={
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
jihuo:{
|
jihuo:{
|
||||||
trigger:{player:'phaseEnd'},
|
trigger:{player:'phaseAfter'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return !player.storage.jihuo&&player.num('h')>0;
|
return !player.storage.jihuo&&player.num('h')>0;
|
||||||
},
|
},
|
||||||
|
@ -4532,7 +4540,7 @@ character.hearth={
|
||||||
hongxi:'虹吸',
|
hongxi:'虹吸',
|
||||||
hongxi_info:'锁定技,每当有一名角色死亡,你将体力回复至体力上限',
|
hongxi_info:'锁定技,每当有一名角色死亡,你将体力回复至体力上限',
|
||||||
jihuo:'激活',
|
jihuo:'激活',
|
||||||
jihuo_info:'回合结束阶段,你可以弃置一张手牌并进行一个额外的回合',
|
jihuo_info:'在你的回合结束后,你可以弃置一张手牌并进行一个额外的回合',
|
||||||
jianren:'剑刃',
|
jianren:'剑刃',
|
||||||
jianren_info:'出牌阶段限一次,你可以弃置装备区内的武器牌,对所有其他角色造成一点伤害',
|
jianren_info:'出牌阶段限一次,你可以弃置装备区内的武器牌,对所有其他角色造成一点伤害',
|
||||||
mengun:'闷棍',
|
mengun:'闷棍',
|
||||||
|
|
472
character/ow.js
472
character/ow.js
|
@ -3,11 +3,11 @@ character.ow={
|
||||||
character:{
|
character:{
|
||||||
ow_liekong:['female','shu',3,['shanxian','shanhui']],
|
ow_liekong:['female','shu',3,['shanxian','shanhui']],
|
||||||
// ow_heibaihe:['female','shu',3,[]],
|
// ow_heibaihe:['female','shu',3,[]],
|
||||||
ow_sishen:['female','shu',3,[]],
|
ow_sishen:['male','shu',3,['hongxi','anying']],
|
||||||
ow_tianshi:['female','shu',3,[]],
|
ow_tianshi:['female','qun',3,['shouhu','ziyu','feiying']],
|
||||||
ow_falaozhiying:['female','shu',3,[]],
|
ow_falaozhiying:['female','shu',3,['dangji','huoyu','feiying']],
|
||||||
ow_zhixuzhiguang:['female','shu',3,[]],
|
ow_zhixuzhiguang:['female','qun',3,['guangshu']],
|
||||||
ow_luxiao:['female','shu',3,[]],
|
ow_luxiao:['male','wu',3,['yuedong','kuoyin','huhuan']],
|
||||||
ow_shibing:['female','shu',3,[]],
|
ow_shibing:['female','shu',3,[]],
|
||||||
ow_yuanshi:['female','shu',3,[]],
|
ow_yuanshi:['female','shu',3,[]],
|
||||||
// ow_mei:['female','shu',3,[]],
|
// ow_mei:['female','shu',3,[]],
|
||||||
|
@ -15,6 +15,448 @@ character.ow={
|
||||||
ow_chanyata:['female','shu',3,[]],
|
ow_chanyata:['female','shu',3,[]],
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
huoyu:{
|
||||||
|
enable:'phaseUse',
|
||||||
|
unique:true,
|
||||||
|
mark:true,
|
||||||
|
skillAnimation:true,
|
||||||
|
animationColor:'fire',
|
||||||
|
init:function(player){
|
||||||
|
player.storage.huoyu=false;
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(player.storage.huoyu) return false;
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
filterTarget:function(card,player,target){
|
||||||
|
return player.canUse('chiyuxi',target);
|
||||||
|
},
|
||||||
|
filterCard:{color:'red'},
|
||||||
|
selectCard:2,
|
||||||
|
position:'he',
|
||||||
|
check:function(card){
|
||||||
|
return 7-ai.get.value(card);
|
||||||
|
},
|
||||||
|
selectTarget:-1,
|
||||||
|
multitarget:true,
|
||||||
|
multiline:true,
|
||||||
|
line:'fire',
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
targets.sort(lib.sort.seat);
|
||||||
|
player.unmarkSkill('huoyu');
|
||||||
|
player.storage.huoyu=true;
|
||||||
|
player.useCard({name:'chiyuxi'},targets).animate=false;
|
||||||
|
'step 1'
|
||||||
|
player.useCard({name:'chiyuxi'},targets).animate=false;
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
order:5,
|
||||||
|
result:{
|
||||||
|
target:function(player,target){
|
||||||
|
if(player.hasUnknown()) return 0;
|
||||||
|
return ai.get.effect(target,{name:'chiyuxi'},player,target);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
intro:{
|
||||||
|
content:'limited'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dangji:{
|
||||||
|
trigger:{source:'damageAfter'},
|
||||||
|
direct:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
if(player.num('he')==0) return false;
|
||||||
|
if(!event.card) return false;
|
||||||
|
if(event.card.name!='sha') return false;
|
||||||
|
for(var i=0;i<game.players.length;i++){
|
||||||
|
if(game.players[i]!=event.player&&get.distance(event.player,game.players[i])<=1) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
var eff=0;
|
||||||
|
var targets=[];
|
||||||
|
event.targets=targets;
|
||||||
|
for(var i=0;i<game.players.length;i++){
|
||||||
|
if(game.players[i]!=trigger.player&&get.distance(trigger.player,game.players[i])<=1){
|
||||||
|
eff+=ai.get.damageEffect(game.players[i],player,player);
|
||||||
|
targets.push(game.players[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
player.chooseToDiscard('是否发动【荡击】?').set('ai',function(card){
|
||||||
|
if(eff>0) return 7-ai.get.value(card);
|
||||||
|
return 0;
|
||||||
|
}).set('logSkill',['dangji',targets]);
|
||||||
|
"step 1"
|
||||||
|
if(result.bool){
|
||||||
|
event.targets.sort(lib.sort.seat);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
event.finish();
|
||||||
|
}
|
||||||
|
"step 2"
|
||||||
|
if(event.targets.length){
|
||||||
|
event.targets.shift().damage();
|
||||||
|
event.redo();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mod:{
|
||||||
|
targetInRange:function(card,player,target){
|
||||||
|
if(card.name=='sha'){
|
||||||
|
if(get.distance(player,target)<=1) return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
yuedong:{
|
||||||
|
trigger:{player:'phaseEnd'},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var num=1+player.storage.yuedong_num;
|
||||||
|
player.chooseTarget('是否发动【乐动】?',[1,num],function(card,player,target){
|
||||||
|
if(player.storage.yuedong_recover){
|
||||||
|
return target.hp<target.maxHp;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}).set('ai',function(target){
|
||||||
|
if(player.storage.yuedong_recover){
|
||||||
|
return ai.get.recoverEffect(target,player,player);
|
||||||
|
}
|
||||||
|
return ai.get.attitude(player,target)/Math.sqrt(2+target.num('h'));
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
player.logSkill('yuedong',result.targets);
|
||||||
|
var eff=1+player.storage.yuedong_eff;
|
||||||
|
if(player.storage.yuedong_recover){
|
||||||
|
result.targets.sort(lib.sort.seat);
|
||||||
|
for(var i=0;i<result.targets.length;i++){
|
||||||
|
result.targets[i].recover(eff);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
game.asyncDraw(result.targets,eff);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.2,
|
||||||
|
threaten:1.6
|
||||||
|
}
|
||||||
|
},
|
||||||
|
huhuan:{
|
||||||
|
enable:'phaseUse',
|
||||||
|
filterCard:true,
|
||||||
|
selectCard:2,
|
||||||
|
position:'he',
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.num('he')>1&&!player.storage.yuedong_recover;
|
||||||
|
},
|
||||||
|
check:function(card){
|
||||||
|
return 6-ai.get.value(card);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
player.storage.yuedong_recover=true;
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
order:10.2,
|
||||||
|
result:{
|
||||||
|
player:function(player){
|
||||||
|
var num1=0,num2=0;
|
||||||
|
for(var i=0;i<game.players.length;i++){
|
||||||
|
if(ai.get.attitude(player,game.players[i])>0){
|
||||||
|
num2++;
|
||||||
|
if(game.players[i].hp<=2&&game.players[i].maxHp>2){
|
||||||
|
num1++;
|
||||||
|
if(game.players[i].hp==1){
|
||||||
|
num1++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(num1>=3){
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
kuoyin:{
|
||||||
|
enable:'phaseUse',
|
||||||
|
filterCard:true,
|
||||||
|
selectCard:function(){
|
||||||
|
if(_status.event.player.storage.yuedong_eff) return 1;
|
||||||
|
return [1,2];
|
||||||
|
},
|
||||||
|
position:'he',
|
||||||
|
filter:function(event,player){
|
||||||
|
if(player.storage.yuedong_eff&&player.storage.yuedong_num) return false;
|
||||||
|
return player.num('he')>0;
|
||||||
|
},
|
||||||
|
check:function(card){
|
||||||
|
var player=_status.event.player;
|
||||||
|
var num1=0,num2=0;
|
||||||
|
for(var i=0;i<game.players.length;i++){
|
||||||
|
if(ai.get.attitude(player,game.players[i])>0){
|
||||||
|
num2++;
|
||||||
|
if(game.players[i].hp<=2&&game.players[i].maxHp>2){
|
||||||
|
num1++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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 0;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(num2>1&&!player.storage.yuedong_num){
|
||||||
|
if(ui.selected.cards.length) return 0;
|
||||||
|
return 7-ai.get.value(card);
|
||||||
|
}
|
||||||
|
if(num2>2){
|
||||||
|
return 6-ai.get.value(card);
|
||||||
|
}
|
||||||
|
return 5-ai.get.value(card);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
if(cards.length==1){
|
||||||
|
player.storage.yuedong_num+=2;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
player.storage.yuedong_eff++;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
threaten:1.6,
|
||||||
|
order:10.1,
|
||||||
|
result:{
|
||||||
|
player:1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
group:'kuoyin2'
|
||||||
|
},
|
||||||
|
kuoyin2:{
|
||||||
|
trigger:{player:'phaseBegin'},
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
silent:true,
|
||||||
|
content:function(){
|
||||||
|
player.storage.yuedong_recover=false;
|
||||||
|
player.storage.yuedong_num=0;
|
||||||
|
player.storage.yuedong_eff=0;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
guangshu:{
|
||||||
|
enable:'phaseUse',
|
||||||
|
check:function(card){
|
||||||
|
var suit=get.suit(card);
|
||||||
|
if(suit=='heart'){
|
||||||
|
for(var i=0;i<game.players.length;i++){
|
||||||
|
if(game.players[i].hp==1&&ai.get.attitude(player,game.players[i])>0){
|
||||||
|
return 8-ai.get.value(card);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(suit=='spade'){
|
||||||
|
return 7-ai.get.value(card);
|
||||||
|
}
|
||||||
|
return 6-ai.get.value(card);
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.num('he')>0;
|
||||||
|
},
|
||||||
|
filterTarget:function(card,player,target){
|
||||||
|
return !target.hasSkill('guangshu_heart')&&
|
||||||
|
!target.hasSkill('guangshu_spade')&&
|
||||||
|
!target.hasSkill('guangshu_club')&&
|
||||||
|
!target.hasSkill('guangshu_diamond');
|
||||||
|
},
|
||||||
|
filterCard:true,
|
||||||
|
position:'he',
|
||||||
|
content:function(){
|
||||||
|
target.addSkill('guangshu_'+get.suit(cards[0]));
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
expose:0.2,
|
||||||
|
threaten:1.6,
|
||||||
|
order:5,
|
||||||
|
result:{
|
||||||
|
target:function(player,target){
|
||||||
|
if(!ui.selected.cards.length) return 0;
|
||||||
|
switch(get.suit(ui.selected.cards[0])){
|
||||||
|
case 'heart':if(target.hp==1) return 1;return 0.1;
|
||||||
|
case 'diamond':return 1+Math.sqrt(target.num('h'));
|
||||||
|
case 'club':return -target.num('h')-Math.sqrt(target.num('h','sha'));
|
||||||
|
case 'spade':return ai.get.damageEffect(target,player,target,'thunder');
|
||||||
|
default:return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
guangshu_diamond:{
|
||||||
|
mark:true,
|
||||||
|
intro:{
|
||||||
|
content:'下次造成伤害时摸两张牌'
|
||||||
|
},
|
||||||
|
trigger:{source:'damageEnd'},
|
||||||
|
forced:true,
|
||||||
|
content:function(){
|
||||||
|
player.draw(2);
|
||||||
|
player.removeSkill('guangshu_diamond');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
guangshu_heart:{
|
||||||
|
mark:true,
|
||||||
|
intro:{
|
||||||
|
content:'进入濒死状态时回复一点体力'
|
||||||
|
},
|
||||||
|
trigger:{player:'dying'},
|
||||||
|
priority:6,
|
||||||
|
forced:true,
|
||||||
|
content:function(){
|
||||||
|
player.recover();
|
||||||
|
player.removeSkill('guangshu_heart');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
guangshu_club:{
|
||||||
|
mark:true,
|
||||||
|
intro:{
|
||||||
|
content:'无法使用杀直到下一回合结束'
|
||||||
|
},
|
||||||
|
trigger:{player:'phaseEnd'},
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
content:function(){
|
||||||
|
player.removeSkill('guangshu_club');
|
||||||
|
},
|
||||||
|
mod:{
|
||||||
|
cardEnabled:function(card){
|
||||||
|
if(card.name=='sha') return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
guangshu_spade:{
|
||||||
|
mark:true,
|
||||||
|
intro:{
|
||||||
|
content:'下个回合结束阶段受到一点无来源的雷电伤害'
|
||||||
|
},
|
||||||
|
trigger:{player:'phaseEnd'},
|
||||||
|
forced:true,
|
||||||
|
content:function(){
|
||||||
|
player.damage('thunder','nosource');
|
||||||
|
player.removeSkill('guangshu_spade');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ziyu:{
|
||||||
|
trigger:{global:'phaseEnd'},
|
||||||
|
direct:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return game.phaseNumber%4==0;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
var controls=['draw_card'];
|
||||||
|
if(player.hp<player.maxHp){
|
||||||
|
controls.push('recover_hp');
|
||||||
|
}
|
||||||
|
controls.push('cancel');
|
||||||
|
player.chooseControl(controls).set('prompt','是否发动【自愈】?').set('ai',function(event,player){
|
||||||
|
if(player.hp<player.maxHp) return 'recover_hp';
|
||||||
|
return 'draw_card';
|
||||||
|
});
|
||||||
|
"step 1"
|
||||||
|
if(result.control!='cancel'){
|
||||||
|
player.logSkill('ziyu');
|
||||||
|
if(result.control=='draw_card'){
|
||||||
|
player.draw();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
player.recover();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ziyu_old:{
|
||||||
|
trigger:{global:'phaseBegin'},
|
||||||
|
direct:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.player.hasSkill('ziyu3');
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
var controls=['draw_card'];
|
||||||
|
if(player.hp<player.maxHp){
|
||||||
|
controls.push('recover_hp');
|
||||||
|
}
|
||||||
|
controls.push('cancel');
|
||||||
|
player.chooseControl(controls).set('prompt','是否发动【自愈】?').set('ai',function(event,player){
|
||||||
|
if(player.hp<player.maxHp) return 'recover_hp';
|
||||||
|
return 'draw_card';
|
||||||
|
});
|
||||||
|
"step 1"
|
||||||
|
if(result.control!='cancel'){
|
||||||
|
player.logSkill('ziyu');
|
||||||
|
if(result.control=='draw_card'){
|
||||||
|
player.draw();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
player.recover();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
group:'ziyu2'
|
||||||
|
},
|
||||||
|
ziyu2:{
|
||||||
|
trigger:{global:'recoverEnd'},
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
silent:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.source==player&&event.player!=player;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
trigger.player.addTempSkill('ziyu3',{player:'phaseEnd'});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ziyu3:{},
|
||||||
|
shouhu:{
|
||||||
|
mod:{
|
||||||
|
cardEnabled:function(card){
|
||||||
|
if(card.name=='sha') return false;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
enable:'phaseUse',
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.num('h','sha')>0;
|
||||||
|
},
|
||||||
|
filterTarget:function(card,player,target){
|
||||||
|
return target.hp<target.maxHp&&target!=player;
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
target.recover();
|
||||||
|
},
|
||||||
|
filterCard:{name:'sha'},
|
||||||
|
ai:{
|
||||||
|
order:7,
|
||||||
|
threaten:2,
|
||||||
|
result:{
|
||||||
|
target:function(player,target){
|
||||||
|
return ai.get.recoverEffect(target,player,target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
shanxian:{
|
shanxian:{
|
||||||
trigger:{global:'phaseBefore'},
|
trigger:{global:'phaseBefore'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
|
@ -107,6 +549,26 @@ character.ow={
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
translate:{
|
translate:{
|
||||||
|
dangji:'荡击',
|
||||||
|
dangji_info:'你的杀只能对距离1以外的角色使用;每当你使用杀造成伤害后,你可以弃置一张牌对距离目标1以内的其他角色各造成一点伤害',
|
||||||
|
huoyu:'火雨',
|
||||||
|
huoyu_info:'限定技,出牌阶段,你可以弃置两张红色牌,视为使用两张炽羽袭',
|
||||||
|
yuedong:'乐动',
|
||||||
|
yuedong_info:'回合结束阶段,你可以令一名角色摸一张牌',
|
||||||
|
kuoyin:'扩音',
|
||||||
|
kuoyin_info:'出牌阶段,你可以弃置一张牌令本回合乐动的目标数改为3,或弃置两张牌令本回合乐动的摸牌或治疗量改为2',
|
||||||
|
huhuan:'互换',
|
||||||
|
huhuan_info:'出牌阶段,你可以弃置两张牌令本回合乐动的摸牌效果改回复体力',
|
||||||
|
guangshu:'光枢',
|
||||||
|
guangshu_heart:'光盾',
|
||||||
|
guangshu_spade:'光塔',
|
||||||
|
guangshu_club:'光井',
|
||||||
|
guangshu_diamond:'光流',
|
||||||
|
guangshu_info:'出牌阶段,你可以弃置一张牌,并指定一名角色,根据弃置牌的花色执行如下效果:♥该角色进入濒死状态时回复一点体力;♦︎该角色下次造成伤害时摸两张牌;♣该角色无法使用杀直到下一回合结束;♠该角色于下个回合结束阶段受到一点无来源的雷电伤害',
|
||||||
|
ziyu:'自愈',
|
||||||
|
ziyu_info:'在一名角色的回合结束阶段,你可以回复一点体力或摸一张牌,每隔四回合发动一次',
|
||||||
|
shouhu:'守护',
|
||||||
|
shouhu_info:'你不能使用杀;出牌阶段,你可以弃置一张杀令一名其他角色回复一点体力',
|
||||||
shanxian:'闪现',
|
shanxian:'闪现',
|
||||||
shanxian_info:'在一名其他角色的回合开始前,若你的武将牌正面朝上,你可以进行一个额外回合,并在回合结束后将武将牌翻至背面。若如此做,你对其使用卡牌无视距离直到回合结束。',
|
shanxian_info:'在一名其他角色的回合开始前,若你的武将牌正面朝上,你可以进行一个额外回合,并在回合结束后将武将牌翻至背面。若如此做,你对其使用卡牌无视距离直到回合结束。',
|
||||||
shanhui:'闪回',
|
shanhui:'闪回',
|
||||||
|
|
|
@ -3073,7 +3073,8 @@ character.swd={
|
||||||
target:function(card){
|
target:function(card){
|
||||||
if(card.name=='guohe'||card.name=='liuxinghuoyu') return 0.5;
|
if(card.name=='guohe'||card.name=='liuxinghuoyu') return 0.5;
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
noh:true,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
miejing:{
|
miejing:{
|
||||||
|
@ -7078,7 +7079,10 @@ character.swd={
|
||||||
if(player.isTurnedOver()){
|
if(player.isTurnedOver()){
|
||||||
return 5-att;
|
return 5-att;
|
||||||
}
|
}
|
||||||
return -att;
|
if(att<=-3){
|
||||||
|
return -att;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
};
|
};
|
||||||
"step 1"
|
"step 1"
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
|
|
|
@ -442,7 +442,7 @@ character.yijiang={
|
||||||
}
|
}
|
||||||
var forced=false;
|
var forced=false;
|
||||||
var str='获得其中一张牌并防止伤害';
|
var str='获得其中一张牌并防止伤害';
|
||||||
if(trigger.source.num('he')<num){
|
if(trigger.source.num('he')<event.num){
|
||||||
forced=true;
|
forced=true;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -989,18 +989,12 @@ character.yijiang={
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
fulin:{
|
fulin:{
|
||||||
mod:{
|
trigger:{player:'phaseDiscardBegin'},
|
||||||
maxHandcard:function(player,num){
|
forced:true,
|
||||||
if(player.storage.fulin&&player.storage.fulin.length){
|
popup:false,
|
||||||
var hs=player.get('h');
|
silent:true,
|
||||||
for(var i=0;i<player.storage.fulin.length;i++){
|
content:function(){
|
||||||
if(hs.contains(player.storage.fulin[i])){
|
player.addTempSkill('fulin2','phaseDiscardAfter');
|
||||||
num++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return num;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
group:['fulin_count','fulin_reset'],
|
group:['fulin_count','fulin_reset'],
|
||||||
subSkill:{
|
subSkill:{
|
||||||
|
@ -1033,6 +1027,21 @@ character.yijiang={
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
fulin2:{
|
||||||
|
mod:{
|
||||||
|
maxHandcard:function(player,num){
|
||||||
|
if(player.storage.fulin&&player.storage.fulin.length){
|
||||||
|
var hs=player.get('h');
|
||||||
|
for(var i=0;i<player.storage.fulin.length;i++){
|
||||||
|
if(hs.contains(player.storage.fulin[i])){
|
||||||
|
num++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
duliang:{
|
duliang:{
|
||||||
enable:'phaseUse',
|
enable:'phaseUse',
|
||||||
usable:1,
|
usable:1,
|
||||||
|
|
|
@ -1444,6 +1444,7 @@ character.yxs={
|
||||||
trigger.source.chooseToDiscard(2,'he',true);
|
trigger.source.chooseToDiscard(2,'he',true);
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
|
expose:0.3,
|
||||||
result:{
|
result:{
|
||||||
target:function(card,player,target){
|
target:function(card,player,target){
|
||||||
if(player.num('he')>1&&get.tag(card,'damage')){
|
if(player.num('he')>1&&get.tag(card,'damage')){
|
||||||
|
|
13
game/game.js
13
game/game.js
|
@ -9818,6 +9818,17 @@
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
hasUnknown:function(){
|
||||||
|
var mode=get.mode();
|
||||||
|
if(mode=='identity'||mode=='guozhan'){
|
||||||
|
for(var i=0;i<game.players.length;i++){
|
||||||
|
if(game.players[i].ai.shown==0&&game.players[i]!=this){
|
||||||
|
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);
|
||||||
|
@ -25338,7 +25349,7 @@
|
||||||
else if(_status.event.skill&&!get.info(_status.event.skill).viewAs){
|
else if(_status.event.skill&&!get.info(_status.event.skill).viewAs){
|
||||||
targetprompt=get.info(_status.event.skill).targetprompt;
|
targetprompt=get.info(_status.event.skill).targetprompt;
|
||||||
}
|
}
|
||||||
else{
|
else if(_status.event.name=='chooseToUse'){
|
||||||
var currentcard=get.card();
|
var currentcard=get.card();
|
||||||
if(currentcard){
|
if(currentcard){
|
||||||
targetprompt=get.info(currentcard).targetprompt;
|
targetprompt=get.info(currentcard).targetprompt;
|
||||||
|
|
|
@ -6,7 +6,10 @@ window.noname_update={
|
||||||
files:{
|
files:{
|
||||||
global:[
|
global:[
|
||||||
'character/ow.js',
|
'character/ow.js',
|
||||||
|
'character/swd.js',
|
||||||
'character/gujian.js',
|
'character/gujian.js',
|
||||||
|
'character/hearth.js',
|
||||||
|
'character/yxs.js',
|
||||||
'card/swd.js',
|
'card/swd.js',
|
||||||
'card/hearth.js',
|
'card/hearth.js',
|
||||||
'card/shenqi.js',
|
'card/shenqi.js',
|
||||||
|
|
Loading…
Reference in New Issue