commit
d2eefa9852
|
@ -208,12 +208,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(name=='sha'&&get.type(trigger.card.name)!='trick') continue;
|
if(name=='sha'&&get.type(trigger.card.name)!='trick') continue;
|
||||||
if(!player.canUse(get.autoViewAs({name:name},[]),target)) continue;
|
if(!player.canUse(get.autoViewAs({name:name},[]),target)) continue;
|
||||||
list.push([get.translation(get.type(name)),'',name]);
|
list.push([get.translation(get.type(name)),'',name]);
|
||||||
if(name=='sha'){
|
|
||||||
for(var nature of lib.inpile_nature){
|
|
||||||
if(!player.canUse(get.autoViewAs({name:name,nature:nature},[]),target)) continue;
|
|
||||||
list.push([get.translation(get.type(name)),'',name,nature]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if(!list.length) event.goto(3);
|
if(!list.length) event.goto(3);
|
||||||
else{
|
else{
|
||||||
|
|
|
@ -41,7 +41,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
shen_taishici:['male','shen',4,['dulie','tspowei'],['wu']],
|
shen_taishici:['male','shen',4,['dulie','tspowei'],['wu']],
|
||||||
shen_guojia:['male','shen',3,['reshuishi','stianyi','resghuishi'],['wei']],
|
shen_guojia:['male','shen',3,['reshuishi','stianyi','resghuishi'],['wei']],
|
||||||
shen_diaochan:['female','shen',3,['meihun','huoxin'],['qun']],
|
shen_diaochan:['female','shen',3,['meihun','huoxin'],['qun']],
|
||||||
shen_guanyu:['male','shen',5,['new_wuhun','wushen'],['shu']],
|
shen_guanyu:['male','shen',5,['wushen','new_wuhun'],['shu']],
|
||||||
shen_zhaoyun:['male','shen',2,['xinjuejing','relonghun'],['shu']],
|
shen_zhaoyun:['male','shen',2,['xinjuejing','relonghun'],['shu']],
|
||||||
shen_zhugeliang:['male','shen',3,['qixing','kuangfeng','dawu'],['shu']],
|
shen_zhugeliang:['male','shen',3,['qixing','kuangfeng','dawu'],['shu']],
|
||||||
shen_lvmeng:['male','shen',3,['shelie','gongxin'],['wu']],
|
shen_lvmeng:['male','shen',3,['shelie','gongxin'],['wu']],
|
||||||
|
@ -4414,98 +4414,75 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
wuhun2:{audio:2},
|
wuhun2:{audio:2},
|
||||||
wuhun21:{
|
new_wuhun:{
|
||||||
audio:true,
|
audio:'wuhun2',
|
||||||
skillAnimation:true,
|
trigger:{player:'damageEnd'},
|
||||||
animationColor:'soil',
|
filter:function(event,player){
|
||||||
},
|
return event.source&&event.source.isIn();
|
||||||
wuhun22:{
|
|
||||||
audio:true,
|
|
||||||
skillAnimation:true,
|
|
||||||
animationColor:'soil',
|
|
||||||
},
|
|
||||||
wuhun23:{
|
|
||||||
audio:true,
|
|
||||||
skillAnimation:true,
|
|
||||||
animationColor:'soil',
|
|
||||||
},
|
|
||||||
"new_wuhun":{
|
|
||||||
audio:"wuhun2",
|
|
||||||
group:["new_wuhun_mark","new_wuhun_die","wuhun22","wuhun23"],
|
|
||||||
trigger:{
|
|
||||||
player:"damageEnd",
|
|
||||||
},
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
filter:function (event,player){
|
logTarget:'source',
|
||||||
return event.source!=undefined;
|
content:function(){
|
||||||
|
trigger.source.addMark('new_wuhun',trigger.num);
|
||||||
},
|
},
|
||||||
content:function (){
|
group:'new_wuhun_die',
|
||||||
trigger.source.addMark('new_wuhun_mark',trigger.num);
|
ai:{
|
||||||
|
threaten:0.01,
|
||||||
|
notemp:true,
|
||||||
|
},
|
||||||
|
marktext:'魇',
|
||||||
|
intro:{
|
||||||
|
name:'梦魇',
|
||||||
|
content:'mark',
|
||||||
|
onunmark:true,
|
||||||
},
|
},
|
||||||
subSkill:{
|
subSkill:{
|
||||||
die:{
|
die:{
|
||||||
//audio:"wuhun2",
|
audio:'wuhun2',
|
||||||
skillAnimation:true,
|
trigger:{player:'die'},
|
||||||
animationColor:'soil',
|
filter:function(event,player){
|
||||||
trigger:{
|
|
||||||
player:"die",
|
|
||||||
},
|
|
||||||
forced:true,
|
|
||||||
forceDie:true,
|
|
||||||
direct:true,
|
|
||||||
filter:function (event,player){
|
|
||||||
return game.hasPlayer(function(current){
|
return game.hasPlayer(function(current){
|
||||||
return current!=player&¤t.hasMark('new_wuhun_mark');
|
return current!=player&¤t.hasMark('new_wuhun');
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
content:function (){
|
forced:true,
|
||||||
"step 0"
|
direct:true,
|
||||||
|
forceDie:true,
|
||||||
|
skillAnimation:true,
|
||||||
|
animationColor:'soil',
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
var num=0;
|
var num=0;
|
||||||
for(var i=0;i<game.players.length;i++){
|
for(var i=0;i<game.players.length;i++){
|
||||||
var current=game.players[i];
|
var current=game.players[i];
|
||||||
if(current!=player&¤t.countMark('new_wuhun_mark')>num){
|
if(current!=player&¤t.countMark('new_wuhun')>num){
|
||||||
num=current.countMark('new_wuhun_mark');
|
num=current.countMark('new_wuhun');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
player.chooseTarget(true,'请选择【武魂】的目标',function(card,player,target){
|
player.chooseTarget(true,'请选择【武魂】的目标','令其进行判定,若判定结果不为【桃】或【桃园结义】,则其死亡',function(card,player,target){
|
||||||
return target!=player&&target.countMark('new_wuhun_mark')==_status.event.num;
|
return target!=player&&target.countMark('new_wuhun')==_status.event.num;
|
||||||
}).set('ai',function(target){
|
}).set('ai',function(target){
|
||||||
return -get.attitude(_status.event.player,target);
|
return -get.attitude(_status.event.player,target);
|
||||||
}).set('forceDie',true).set('num',num);
|
}).set('forceDie',true).set('num',num);
|
||||||
"step 1"
|
'step 1'
|
||||||
if(result.bool&&result.targets&&result.targets.length){
|
if(result.bool){
|
||||||
var target=result.targets[0];
|
var target=result.targets[0];
|
||||||
event.target=target;
|
event.target=target;
|
||||||
player.logSkill(Math.random()<0.5?'wuhun21':'wuhun22',target);
|
player.logSkill('new_wuhun_die',target);
|
||||||
player.line(target,{color:[255, 255, 0]});
|
player.line(target,{color:[255, 255, 0]});
|
||||||
game.delay(2);
|
game.delay(2);
|
||||||
}
|
}
|
||||||
"step 2"
|
'step 2'
|
||||||
target.judge(function(card){
|
target.judge(function(card){
|
||||||
if(['tao','taoyuan'].contains(card.name)) return 10;
|
if(['tao','taoyuan'].contains(card.name)) return 10;
|
||||||
return -10;
|
return -10;
|
||||||
}).judge2=function(result){
|
}).judge2=function(result){
|
||||||
return result.bool==false?true:false;
|
return result.bool==false?true:false;
|
||||||
};
|
};
|
||||||
"step 3"
|
'step 3'
|
||||||
if(!result.bool){
|
if(!result.bool) target.die();
|
||||||
lib.element.Player.prototype.die.apply(target,[]);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
sub:true,
|
|
||||||
},
|
},
|
||||||
mark:{
|
|
||||||
marktext:"魇",
|
|
||||||
intro:{
|
|
||||||
name:"梦魇",
|
|
||||||
content:"mark",
|
|
||||||
},
|
|
||||||
sub:true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
ai:{
|
|
||||||
threaten:0.01,
|
|
||||||
notemp:true,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"new_guixin":{
|
"new_guixin":{
|
||||||
|
@ -5335,161 +5312,39 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
wuhun:{
|
wuhun:{
|
||||||
trigger:{
|
audio:'wuhun2',
|
||||||
player:"damageEnd",
|
trigger:{player:'die'},
|
||||||
},
|
|
||||||
//alter:true,
|
|
||||||
filter:function (event,player){
|
|
||||||
if(event.source==undefined) return false;
|
|
||||||
if(!get.is.altered('wuhun')) return false
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
forced:true,
|
|
||||||
content:function (){
|
|
||||||
if(!trigger.source.storage.wuhun_mark){
|
|
||||||
trigger.source.storage.wuhun_mark=0;
|
|
||||||
}
|
|
||||||
trigger.source.storage.wuhun_mark+=trigger.num;
|
|
||||||
trigger.source.syncStorage('wuhun_mark');
|
|
||||||
trigger.source.markSkill('wuhun_mark');
|
|
||||||
},
|
|
||||||
global:["wuhun_mark"],
|
|
||||||
subSkill:{
|
|
||||||
mark:{
|
|
||||||
marktext:"魇",
|
|
||||||
intro:{
|
|
||||||
content:"mark",
|
|
||||||
},
|
|
||||||
sub:true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
group:["wuhun2","wuhun4","wuhun5"],
|
|
||||||
},
|
|
||||||
wuhun2:{
|
|
||||||
trigger:{
|
|
||||||
player:'dieBegin',
|
|
||||||
},
|
|
||||||
forced:true,
|
|
||||||
popup:false,
|
|
||||||
filter:function (event,player){
|
|
||||||
for(var i=0;i<game.players.length;i++){
|
|
||||||
if(game.players[i].storage.wuhun_mark) return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
content:function (){
|
|
||||||
"step 0"
|
|
||||||
player.chooseTarget(true,get.prompt('wuhun2'),function(card,player,target){
|
|
||||||
if(player==target) return false;
|
|
||||||
if(!target.storage.wuhun_mark) return false;
|
|
||||||
for(var i=0;i<game.players.length;i++){
|
|
||||||
if(game.players[i].storage.wuhun_mark>target.storage.wuhun_mark){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}).set('ai',function(target){
|
|
||||||
return -ai.get.attitude(_status.event.player,target);
|
|
||||||
});
|
|
||||||
"step 1"
|
|
||||||
player.line(result.targets[0],'fire');
|
|
||||||
result.targets[0].addSkill('wuhun3')
|
|
||||||
},
|
|
||||||
ai:{
|
|
||||||
threaten:0.5,
|
|
||||||
effect:{
|
|
||||||
target:function (card,player,target,current){
|
|
||||||
if(get.tag(card,'damage')){
|
|
||||||
if(player.hasSkill('jueqing')) return [1,-5];
|
|
||||||
var hasfriend=false;
|
|
||||||
for(var i=0;i<game.players.length;i++){
|
|
||||||
if(game.players[i]!=target&&ai.get.attitude(game.players[i],target)>=0){
|
|
||||||
hasfriend=true;break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!hasfriend) return;
|
|
||||||
if(player.hp>2&&ai.get.attitude(player,target)<=0) return [0,2];
|
|
||||||
return [1,0,0,-player.hp];
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
wuhun3:{
|
|
||||||
audio:3,
|
|
||||||
trigger:{
|
|
||||||
global:'dieAfter',
|
|
||||||
},
|
|
||||||
forced:true,
|
|
||||||
content:function (){
|
|
||||||
"step 0"
|
|
||||||
player.judge(function(card){
|
|
||||||
if(card.name=='tao'||card.name=='taoyuan') return 2;
|
|
||||||
return -2;
|
|
||||||
})
|
|
||||||
"step 1"
|
|
||||||
if(result.judge==-2){
|
|
||||||
player.die();
|
|
||||||
}
|
|
||||||
player.removeSkill('wuhun3');
|
|
||||||
},
|
|
||||||
},
|
|
||||||
wuhun4:{
|
|
||||||
trigger:{
|
|
||||||
player:'dieAfter',
|
|
||||||
},
|
|
||||||
forced:true,
|
|
||||||
popup:false,
|
|
||||||
content:function (){
|
|
||||||
for(var i=0;i<game.players.length;i++){
|
|
||||||
if(game.players[i].storage.wuhun_mark){
|
|
||||||
game.players[i].storage.wuhun_mark=0;
|
|
||||||
game.players[i].unmarkSkill('wuhun_mark');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
wuhun5:{
|
|
||||||
trigger:{player:'dieBegin'},
|
|
||||||
forced:true,
|
|
||||||
popup:false,
|
|
||||||
filter:function(event){
|
filter:function(event){
|
||||||
if(event.source!=player&&event.source!=undefined&&!get.is.altered('wuhun')) return true
|
return event.source&&event.source.isIn();
|
||||||
return false;
|
|
||||||
},
|
},
|
||||||
|
forced:true,
|
||||||
|
forceDie:true,
|
||||||
|
skillAnimation:true,
|
||||||
|
animationColor:'soil',
|
||||||
|
logTarget:'source',
|
||||||
content:function(){
|
content:function(){
|
||||||
trigger.source.addSkill('wuhun6');
|
var num=trigger.source.getHp();
|
||||||
|
if(num>0) trigger.source.loseHp(num);
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
threaten:function(player,target){
|
threaten:function(player,target){
|
||||||
if(target.hp==1) return 0.5;
|
if(target.hp==1){
|
||||||
|
if(player.getHp()<=0) return 100;
|
||||||
|
return 0.2;
|
||||||
|
}
|
||||||
|
return 0.8;
|
||||||
},
|
},
|
||||||
effect:{
|
effect:{
|
||||||
target:function(card,player,target,current){
|
target:function(card,player,target,current){
|
||||||
if(target.hp<=1&&get.tag(card,'damage')){
|
if(player.getHp()<=0) return;
|
||||||
if(player.hasSkillTag('jueqing',false,target)) return [1,-5];
|
if(!target.hasFriend()) return;
|
||||||
if(!target.hasFriend()) return;
|
if(target.hp<=1&&get.tag(card,'damage')) return [1,0,0,-2];
|
||||||
if(player.hp>2&&get.attitude(player,target)<=0) return [0,2];
|
},
|
||||||
return [1,0,0,-player.hp];
|
},
|
||||||
}
|
},
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
wuhun6:{
|
|
||||||
audio:3,
|
|
||||||
trigger:{global:'dieAfter'},
|
|
||||||
forced:true,
|
|
||||||
content:function(){
|
|
||||||
if(player.hp<Infinity){
|
|
||||||
player.loseHp(player.hp);
|
|
||||||
}
|
|
||||||
player.removeSkill('wuhun6');
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
guixin:{
|
guixin:{
|
||||||
audio:2,
|
audio:2,
|
||||||
// alter:true,
|
|
||||||
trigger:{player:'damageEnd'},
|
trigger:{player:'damageEnd'},
|
||||||
check:function(event,player){
|
check:function(event,player){
|
||||||
if(player.isTurnedOver()||event.num>1) return true;
|
if(player.isTurnedOver()||event.num>1) return true;
|
||||||
|
@ -5504,59 +5359,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return num>=2;
|
return num>=2;
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
"step 0"
|
'step 0'
|
||||||
var targets=game.filterPlayer();
|
|
||||||
targets.remove(player);
|
|
||||||
targets.sort(lib.sort.seat);
|
|
||||||
event.targets=targets;
|
|
||||||
event.count=trigger.num;
|
event.count=trigger.num;
|
||||||
"step 1"
|
'step 1'
|
||||||
event.num=0;
|
var targets=game.filterPlayer(current=>current!=player).sortBySeat();
|
||||||
player.line(targets,'green');
|
player.line(targets);
|
||||||
"step 2"
|
player.gainMultiple(targets,'hej');
|
||||||
if(num<event.targets.length){
|
'step 2'
|
||||||
if(!get.is.altered('guixin')){
|
|
||||||
if(event.targets[num].countGainableCards(player,'hej')){
|
|
||||||
player.gainPlayerCard(event.targets[num],true,'hej');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
var hej=event.targets[num].getCards('hej')
|
|
||||||
if(hej.length){
|
|
||||||
var card=hej.randomGet();
|
|
||||||
player.gain(card,event.targets[num]);
|
|
||||||
if(get.position(card)=='h'){
|
|
||||||
event.targets[num].$giveAuto(card,player);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
event.targets[num].$give(card,player);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
event.num++;
|
|
||||||
event.redo();
|
|
||||||
}
|
|
||||||
"step 3"
|
|
||||||
player.turnOver();
|
player.turnOver();
|
||||||
"step 4"
|
'step 3'
|
||||||
event.count--;
|
event.count--;
|
||||||
if(event.count&&player.hasSkill('guixin')){
|
if(event.count&&player.hasSkill('guixin')){
|
||||||
player.chooseBool(get.prompt2('guixin'));
|
player.chooseBool(get.prompt2('guixin'));
|
||||||
}
|
}
|
||||||
else{
|
else event.finish();
|
||||||
event.finish();
|
'step 4'
|
||||||
}
|
if(event.count&&result.bool) event.goto(1);
|
||||||
"step 5"
|
|
||||||
if(event.count&&result.bool){
|
|
||||||
event.goto(1);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
maixie:true,
|
maixie:true,
|
||||||
maixie_hp:true,
|
maixie_hp:true,
|
||||||
threaten:function(player,target){
|
threaten:function(player,target){
|
||||||
if(target.hp==1) return 2.5;
|
if(target.hp==1) return 2.5;
|
||||||
return 1;
|
return 0.5;
|
||||||
},
|
},
|
||||||
effect:{
|
effect:{
|
||||||
target:function(card,player,target){
|
target:function(card,player,target){
|
||||||
|
@ -7495,14 +7320,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
longhun_info:'你可以将同花色的X张牌按下列规则使用或打出:红桃当【桃】,方块当具火焰伤害的【杀】,梅花当【闪】,黑桃当【无懈可击】(X为你当前的体力值且至少为1)。',
|
longhun_info:'你可以将同花色的X张牌按下列规则使用或打出:红桃当【桃】,方块当具火焰伤害的【杀】,梅花当【闪】,黑桃当【无懈可击】(X为你当前的体力值且至少为1)。',
|
||||||
juejing_info:'锁定技。①摸牌阶段,你令额定摸牌数+X(X为你已损失的体力值)。②你的手牌上限+2。',
|
juejing_info:'锁定技。①摸牌阶段,你令额定摸牌数+X(X为你已损失的体力值)。②你的手牌上限+2。',
|
||||||
wushen:'武神',
|
wushen:'武神',
|
||||||
wushen_info:'锁定技,你的红桃手牌均视为【杀】;锁定技,你使用红桃【杀】无距离和次数限制且不可被响应。',
|
wushen_info:'锁定技。①你的红桃手牌均视为【杀】。②你使用红桃【杀】无距离和次数限制且不可被响应。',
|
||||||
wuhun:'武魂',
|
wuhun:'武魂',
|
||||||
wuhun21:'武魂',
|
|
||||||
wuhun22:'武魂',
|
|
||||||
wuhun23:'武魂',
|
|
||||||
wuhun2:'武魂',
|
|
||||||
wuhun3:'武魂',
|
|
||||||
wuhun_info_alter:'锁定技,当你受到1点伤害后,你令伤害来源获得1枚“梦魇”标记;当你死亡时,你令拥有最多“梦魇”标记的一名其他角色判定,若结果不为【桃】或【桃园结义】,则该角色死亡。',
|
|
||||||
wuhun_info:'锁定技,杀死你的角色立即进入濒死状态。',
|
wuhun_info:'锁定技,杀死你的角色立即进入濒死状态。',
|
||||||
shelie:'涉猎',
|
shelie:'涉猎',
|
||||||
gongxin:'攻心',
|
gongxin:'攻心',
|
||||||
|
@ -7562,8 +7381,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ol_wuqian_info:'出牌阶段,你可以弃置2枚“暴怒”标记并选择一名本回合内未选择过的其他角色,你获得技能〖无双〗并令其防具无效直到回合结束。',
|
ol_wuqian_info:'出牌阶段,你可以弃置2枚“暴怒”标记并选择一名本回合内未选择过的其他角色,你获得技能〖无双〗并令其防具无效直到回合结束。',
|
||||||
ol_shenfen:'神愤',
|
ol_shenfen:'神愤',
|
||||||
ol_shenfen_info:'出牌阶段限一次,你可以弃置6枚“暴怒”标记并选择所有其他角色,对这些角色各造成1点伤害。然后这些角色先各弃置其装备区里的牌,再各弃置四张手牌。最后你将你的武将牌翻面。',
|
ol_shenfen_info:'出牌阶段限一次,你可以弃置6枚“暴怒”标记并选择所有其他角色,对这些角色各造成1点伤害。然后这些角色先各弃置其装备区里的牌,再各弃置四张手牌。最后你将你的武将牌翻面。',
|
||||||
"new_wuhun":"武魂",
|
new_wuhun:'武魂',
|
||||||
"new_wuhun_info":"锁定技,当你受到伤害后,伤害来源获得X个“梦魇”标记(X为伤害点数)。锁定技,当你死亡时,你选择一名“梦魇”标记数量最多的其他角色。该角色进行判定:若判定结果不为【桃】或【桃园结义】,则该角色死亡。",
|
new_wuhun_info:'锁定技,当你受到伤害后,伤害来源获得X个“梦魇”标记(X为伤害点数)。锁定技,当你死亡时,你选择一名“梦魇”标记数量最多的其他角色。该角色进行判定:若判定结果不为【桃】或【桃园结义】,则该角色死亡。',
|
||||||
"new_guixin":"归心",
|
"new_guixin":"归心",
|
||||||
"new_guixin_info":"当你受到1点伤害后,你可以按照你选择的区域优先度随机获得每名其他角色区域里的一张牌,然后你翻面。",
|
"new_guixin_info":"当你受到1点伤害后,你可以按照你选择的区域优先度随机获得每名其他角色区域里的一张牌,然后你翻面。",
|
||||||
ol_zhangliao:'OL神张辽',
|
ol_zhangliao:'OL神张辽',
|
||||||
|
|
Loading…
Reference in New Issue