Merge pull request #855 from PZ157/PR-Branch

技能调整,bug修复
This commit is contained in:
Spmario233 2024-01-26 22:21:15 +08:00 committed by GitHub
commit 0e77a2c76b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 27 additions and 24 deletions

View File

@ -455,7 +455,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true,
content:function*(event,map){
var player=map.player;
var result=yield player.chooseTarget(get.prompt('sbwusheng'),'选择一名非主公的其他角色,本阶段对其使用【杀】无距离和次数限制,使用【杀】指定其为目标后摸一张牌,对其使用三张【杀】后不能对其使用【杀】',(card,player,target)=>{
var result=yield player.chooseTarget(get.prompt('sbwusheng'),'选择一名非主公的其他角色,本阶段对其使用【杀】无距离和次数限制,使用【杀】指定其为目标后摸一张牌,对其使用'+(get.mode()==='identity'?'五':'')+'张【杀】后不能对其使用【杀】',(card,player,target)=>{
return target!=player&&!target.isZhu2();
}).set('ai',target=>{
var player=_status.event.player;
@ -558,7 +558,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
playerEnabled:function(card,player,target){
if(card.name!='sha'||typeof player.storage.sbwusheng_effect[target.playerid]!='number') return;
if(player.storage.sbwusheng_effect[target.playerid]>=3) return false;
if(player.storage.sbwusheng_effect[target.playerid]>=(get.mode()==='identity'?5:3)) return false;
},
},
audio:'sbwusheng',
@ -6358,6 +6358,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sbwusheng:'武圣',
sbwusheng_wusheng_backup:'武圣',
sbwusheng_info:'你可以将一张手牌当作任意【杀】使用或打出。出牌阶段开始时,你可以选择一名非主公的其他角色,本阶段对其使用【杀】无距离和次数限制,使用【杀】指定其为目标后摸一张牌,对其使用三张【杀】后不能对其使用【杀】。',
sbwusheng_info_identity:'你可以将一张手牌当作任意【杀】使用或打出。出牌阶段开始时,你可以选择一名非主公的其他角色,本阶段对其使用【杀】无距离和次数限制,使用【杀】指定其为目标后摸一张牌,对其使用五张【杀】后不能对其使用【杀】。',
sbyijue:'义绝',
sbyijue_info:'锁定技,每名角色每局游戏限一次,当你对一名角色造成大于等于其体力值的伤害时,你防止此伤害,且本回合你使用牌指定其为目标后,取消之。',
sb_caopi:'谋曹丕',

View File

@ -655,12 +655,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var str;
if(storage) str='令'+get.translation(target)+'打出至多'+get.cnNumber(num)+'张【杀】然后其失去Y点体力。Y为'+num+'-其打出【杀】数)';
else str='令'+get.translation(target)+'使用至多'+get.cnNumber(num)+'张【杀】其每以此法造成1点伤害其回复1点体力';
result=yield player.chooseBool(get.prompt('dcsbmengmou',target),str).set('choice',(storage?check_true(player,target):check_false(player,target))>0);
result=yield player.chooseBool(get.prompt('dcsbmengmou',target),str).set('choice',(storage?check_false(player,target):check_true(player,target))>0);
}
else{
result=yield player.chooseTarget(get.prompt('dcsbmengmou'),lib.skill.dcsbmengmou.intro.content(storage),(card,player,target)=>_status.event.targets.includes(target)).set('ai',target=>{
return _status.event.check(_status.event.player,target);
}).set('targets',targets).set('check',storage?check_true:check_false).set('ainmate',false);
}).set('targets',targets).set('check',storage?check_false:check_true).set('ainmate',false);
}
if(result.bool){
if(!target) target=result.targets[0];
@ -1790,7 +1790,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
cards.addArray(Array.from(ui.discardPile.childNodes));
game.countPlayer(current=>cards.addArray(current.getCards('hejxs')));
for(var name of lib.inpile){
if(!get.tag({name:name},'damage')) continue;
if(!get.tag({name:name},'damage')||get.type(new lib.element.VCard({name:name}))==='delay') continue;
let same=cards.filter(card=>get.name(card,false)==name&&!get.natureList(card,false).length);
if(same.length){
for(var suit of suits){
@ -1883,29 +1883,30 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
if(!event.target) event.target=trigger.player;
player.judge();
player.addTempSkill('dcxiaoren_dying');
event.target=trigger.player;
'step 1'
player.judge();
'step 2'
if(result.color=='red') player.chooseTarget('绡刃是否令一名角色回复1点体力若回满则额外摸一张牌').set('ai',target=>{
let rec=get.recoverEffect(target,_status.event.player,_status.event.player);
if(target.getDamagedHp()<=1) return rec+get.effect(target,{name:'draw'},target,_status.event.player);
return rec;
});
else if(result.color!='black'||!trigger.player.isIn()||game.countPlayer()<2) event.goto(8);
else event.goto(4);
'step 2'
else if(result.color!='black'||!trigger.player.isIn()||game.countPlayer()<2) event.goto(9);
else event.goto(5);
'step 3'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.line(target);
target.recover();
}
else event.goto(8);
'step 3'
if(event.target.isHealthy()) event.target.draw();
player.removeSkill('dcxiaoren_dying');
event.goto(8);
else event.goto(9);
'step 4'
if(event.target.isHealthy()) event.target.draw();
event.goto(9);
'step 5'
var targets=[].addArray([target.getPrevious(),target.getNext()]);
if(targets.length>1) player.chooseTarget('绡刃对其中一名角色造成1点伤害',(card,player,target)=>{
return _status.event.targets.includes(target);
@ -1914,25 +1915,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return get.damageEffect(target,player,player);
}).set('targets',targets);
else if(targets.length) event._result={bool:true,targets:targets};
'step 5'
'step 6'
if(result.bool){
let target=result.targets[0];
event.target=target;
player.line(target);
target.damage('nocard');
}
else event.goto(8);
'step 6'
else event.goto(9);
'step 7'
if(player.storage.dcxiaoren_dying||get.is.blocked(event.name,player)) event._result={bool:false};
else if(event.frequent) event._result={bool:true};
else player.chooseBool('绡刃:是否再次进行判定并执行对应效果直到未能执行此项或有角色进入濒死状态?').set('ai',function(){
return _status.event.bool;
}).set('frequentSkill','dcxiaoren').set('bool',lib.skill.dcxiaoren.check({player:event.target},player));
'step 7'
if(result.bool){
player.addTempSkill('dcxiaoren_dying');
event.goto(0);
}
}).set('bool',lib.skill.dcxiaoren.check({player:event.target},player));
'step 8'
if(result.bool){
event.frequent=true;
event.goto(1);
}
'step 9'
player.removeSkill('dcxiaoren_dying');
},
subSkill:{