commit
608b1e700d
|
@ -2494,7 +2494,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
icesha_skill:{
|
icesha_skill:{
|
||||||
inherit:'hanbing_skill',
|
inherit:'hanbing_skill',
|
||||||
trigger:{source:'damageBegin2'},
|
trigger:{source:'damageBegin3'},
|
||||||
equipSkill:false,
|
equipSkill:false,
|
||||||
ruleSkill:true,
|
ruleSkill:true,
|
||||||
filter:function(event){
|
filter:function(event){
|
||||||
|
|
|
@ -5337,10 +5337,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
check:function(event,player){
|
check:function(event,player){
|
||||||
var num=player.getDamagedHp()-1;
|
var num=player.getDamagedHp()-1;
|
||||||
if(num<=0) return false;
|
if(num<=0) return false;
|
||||||
var list=game.filterPlayer().map(target=>{
|
return game.hasPlayer(target=>{
|
||||||
return get.attitude(player,target)*Math.pow(Math.max(0,target.maxHp-target.countCards('h')-1),2);
|
return get.attitude(player,target)>0&&target.maxHp-target.countCards('h')>1;
|
||||||
}).sort((a,b)=>b-a);
|
});
|
||||||
return list.slice(0,num).reduce((p,c)=>p+c,0)>0;
|
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
|
@ -5348,7 +5347,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
'step 1'
|
'step 1'
|
||||||
var num=player.getDamagedHp();
|
var num=player.getDamagedHp();
|
||||||
if(!player.isIn()||!num) event.finish();
|
if(!player.isIn()||!num) event.finish();
|
||||||
else player.chooseTarget('御关:令'+get.cnNumber(num)+'名角色将手牌摸至体力上限',Math.min(game.countPlayer(),num),true).set('ai',target=>{
|
else player.chooseTarget('御关:令'+get.cnNumber(num)+'名角色将手牌摸至体力上限',Math.min(game.countPlayer(),[1,num]),true).set('ai',target=>{
|
||||||
return get.attitude(_status.event.player,target)*Math.max(0.1,target.maxHp-target.countCards('h'));
|
return get.attitude(_status.event.player,target)*Math.max(0.1,target.maxHp-target.countCards('h'));
|
||||||
});
|
});
|
||||||
'step 2'
|
'step 2'
|
||||||
|
@ -12716,7 +12715,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
xingchong:'幸宠',
|
xingchong:'幸宠',
|
||||||
xingchong_info:'一轮游戏开始时,你可声明两个自然数X和Y,且(X+Y)≤min(5, 你的体力上限)。你摸X张牌并展示Y张手牌。若如此做,当你于本轮内失去一张以此法展示的牌后,你摸两张牌。',
|
xingchong_info:'一轮游戏开始时,你可声明两个自然数X和Y,且(X+Y)≤min(5, 你的体力上限)。你摸X张牌并展示Y张手牌。若如此做,当你于本轮内失去一张以此法展示的牌后,你摸两张牌。',
|
||||||
liunian:'流年',
|
liunian:'流年',
|
||||||
liunian_info:'锁定技。回合结束时,若本回合内进行了本次游戏的第一次洗牌,则你加1点体力上限;若本回合内进行了本次游戏的第二次洗牌,则你于本回合结束时回复1点体力,且本局游戏内的手牌上限+10。',
|
liunian_info:'锁定技。一名角色的回合结束时,若本回合内进行了本次游戏的第一次洗牌,则你加1点体力上限;若本回合内进行了本次游戏的第二次洗牌,则你于本回合结束时回复1点体力,且本局游戏内的手牌上限+10。',
|
||||||
caimaozhangyun:'蔡瑁张允',
|
caimaozhangyun:'蔡瑁张允',
|
||||||
lianzhou:'连舟',
|
lianzhou:'连舟',
|
||||||
lianzhou_info:'锁定技。准备阶段,你横置你的武将牌。然后你可横置任意名体力值等于你的角色。',
|
lianzhou_info:'锁定技。准备阶段,你横置你的武将牌。然后你可横置任意名体力值等于你的角色。',
|
||||||
|
@ -12828,7 +12827,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
dcxuewei:'血卫',
|
dcxuewei:'血卫',
|
||||||
dcxuewei_info:'结束阶段,你可以选择一名体力值不大于你的角色,然后你获得如下效果直到你的下回合开始时:当其受到伤害时,防止此伤害,然后你失去1点体力,你与其各摸一张牌(若该角色为你,则改为你摸一张牌)。',
|
dcxuewei_info:'结束阶段,你可以选择一名体力值不大于你的角色,然后你获得如下效果直到你的下回合开始时:当其受到伤害时,防止此伤害,然后你失去1点体力,你与其各摸一张牌(若该角色为你,则改为你摸一张牌)。',
|
||||||
dcyuguan:'御关',
|
dcyuguan:'御关',
|
||||||
dcyuguan_info:'一名角色的回合结束时,若你已损失的体力值为全场最多,你可以减1点体力上限,然后令X名角色将手牌摸至体力上限(X为你已损失的体力值)。',
|
dcyuguan_info:'一名角色的回合结束时,若你已损失的体力值为全场最多,你可以减1点体力上限,然后令至多X名角色将手牌摸至体力上限(X为你已损失的体力值)。',
|
||||||
qinlang:'秦朗',
|
qinlang:'秦朗',
|
||||||
dchaochong:'昊宠',
|
dchaochong:'昊宠',
|
||||||
dchaochong_info:'当你使用牌后,你可以将手牌摸至或弃置至你的手牌上限数(至多摸五张)。然后若你以此法:得到牌,你的手牌上限-1;失去牌,你的手牌上限+1。',
|
dchaochong_info:'当你使用牌后,你可以将手牌摸至或弃置至你的手牌上限数(至多摸五张)。然后若你以此法:得到牌,你的手牌上限-1;失去牌,你的手牌上限+1。',
|
||||||
|
|
199
character/sb.js
199
character/sb.js
|
@ -754,12 +754,61 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
content:'mark',
|
content:'mark',
|
||||||
},
|
},
|
||||||
ai:{threaten:2.5},
|
ai:{threaten:2.5},
|
||||||
|
getNum(num){
|
||||||
|
if(typeof num!='number'||Array.from({length:8}).map((_,i)=>i+1).includes(num)) return 0;
|
||||||
|
return [1,2,3,4,2,2,3,3][num-1];
|
||||||
|
},
|
||||||
|
getEffect(player,num){
|
||||||
|
if(!player||typeof num!='number') return 0;
|
||||||
|
switch(num){
|
||||||
|
//行殇四个选项
|
||||||
|
case 1://-1,重置武将牌
|
||||||
|
if(game.hasPlayer(target=>{
|
||||||
|
return get.attitude(player,target)>0&&target.isTurnedOver();
|
||||||
|
})) return 10;
|
||||||
|
return 0;
|
||||||
|
case 2://-2,摸min(5,max(1,阵亡角色数))的牌
|
||||||
|
return Math.min(5,(Math.max(1,game.dead.length)));
|
||||||
|
case 3://-3,加上限加血+复原装备栏
|
||||||
|
if(!game.hasPlayer(target=>{
|
||||||
|
return get.attitude(player,target)>0&&target.maxHp<10;
|
||||||
|
})) return 0;
|
||||||
|
return 2+(game.hasPlayer(target=>{
|
||||||
|
return get.attitude(player,target)>0&&target.hasDisabledSlot();
|
||||||
|
})?1:0);
|
||||||
|
case 4://-4,劝封/化萍
|
||||||
|
return 0;
|
||||||
|
//放逐四个选项
|
||||||
|
case 5://-2,白板到结束
|
||||||
|
if(game.hasPlayer(target=>{
|
||||||
|
if(target.hasSkill('sbfangzhu_ban')||target.hasSkill('fengyin')||target.hasSkill('baiban')) return false;
|
||||||
|
return get.attitude(player,target)<0&&['name','name1','name2'].reduce((sum,name)=>{
|
||||||
|
if(target[name]&&(name!='name1'||target.name!=target.name1)){
|
||||||
|
if(get.character(target[name])) sum+get.rank(target[name],true);
|
||||||
|
}
|
||||||
|
return sum;
|
||||||
|
},0)>5;
|
||||||
|
})) return 6;
|
||||||
|
return 0;
|
||||||
|
case 6://-2,强命到结束
|
||||||
|
return 0;
|
||||||
|
case 7://-3,翻面
|
||||||
|
if(game.hasPlayer(target=>{
|
||||||
|
return get.attitude(player,target)<0&&!target.isTurnedOver();
|
||||||
|
})) return 8;
|
||||||
|
return 0;
|
||||||
|
case 8://-3,定向鸡肋
|
||||||
|
return 0;
|
||||||
|
default://其他
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
},
|
||||||
group:'sbxingshang_use',
|
group:'sbxingshang_use',
|
||||||
subSkill:{
|
subSkill:{
|
||||||
use:{
|
use:{
|
||||||
audio:'sbxingshang',
|
audio:'sbxingshang',
|
||||||
enable:'phaseUse',
|
enable:'phaseUse',
|
||||||
filter:function(event,player){
|
filter(event,player){
|
||||||
return game.hasPlayer(target=>{
|
return game.hasPlayer(target=>{
|
||||||
if(player.countMark('sbxingshang')>1) return true;
|
if(player.countMark('sbxingshang')>1) return true;
|
||||||
return player.countMark('sbxingshang')&&(target.isLinked()||target.isTurnedOver());
|
return player.countMark('sbxingshang')&&(target.isLinked()||target.isTurnedOver());
|
||||||
|
@ -767,7 +816,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
usable:1,
|
usable:1,
|
||||||
chooseButton:{
|
chooseButton:{
|
||||||
dialog:function(){
|
dialog(){
|
||||||
var dialog=ui.create.dialog(
|
var dialog=ui.create.dialog(
|
||||||
'行殇:请选择你要执行的一项',
|
'行殇:请选择你要执行的一项',
|
||||||
[[
|
[[
|
||||||
|
@ -783,7 +832,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
);
|
);
|
||||||
return dialog;
|
return dialog;
|
||||||
},
|
},
|
||||||
filter:function(button,player){
|
filter(button,player){
|
||||||
if(button.link>player.countMark('sbxingshang')) return false;
|
if(button.link>player.countMark('sbxingshang')) return false;
|
||||||
switch(button.link){
|
switch(button.link){
|
||||||
case 1:
|
case 1:
|
||||||
|
@ -796,39 +845,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return game.dead.length;
|
return game.dead.length;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
check:function(button){
|
check(button){
|
||||||
let player=_status.event.player;
|
const player=get.event('player'),info=get.info('sbxingshang');
|
||||||
switch(button.link){
|
let list=Array.from({length:4}).map((_,i)=>i+1);
|
||||||
case 1:
|
list=list.filter(num=>player.countMark('sbxingshang')>=info.getNum(num));
|
||||||
return game.filterPlayer(current=>get.attitude(player,current)>0).reduce((list,target)=>{
|
const num=list.sort((a,b)=>info.getEffect(player,b)-info.getEffect(player,a))[0];
|
||||||
let num=0;
|
return (button.link==num)?10:0;
|
||||||
if(target.isLinked()) num+=0.5;
|
|
||||||
if(target.isTurnedOver()) num+=10;
|
|
||||||
list.push(num);
|
|
||||||
return list;
|
|
||||||
},[]).sort((a,b)=>b-a)[0];
|
|
||||||
case 2:
|
|
||||||
return Math.min(5,Math.max(1,game.dead.length));
|
|
||||||
case 3:
|
|
||||||
return game.filterPlayer().reduce((list,target)=>{
|
|
||||||
list.push(get.recoverEffect(target,player,player));
|
|
||||||
return list;
|
|
||||||
},[]).sort((a,b)=>b-a)[0];
|
|
||||||
case 4:
|
|
||||||
return game.dead.reduce((list,target)=>{
|
|
||||||
let num=0;
|
|
||||||
if(target.name&&lib.character[target.name]) num+=get.rank(target.name,true);
|
|
||||||
if(target.name2&&lib.character[target.name2]) num+=get.rank(target.name2,true);
|
|
||||||
list.push(num);
|
|
||||||
return list;
|
|
||||||
},[]).sort((a,b)=>b-a)[0];
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
backup:function(links,player){
|
backup(links,player){
|
||||||
return {
|
return {
|
||||||
num:links[0],
|
num:links[0],
|
||||||
audio:'sbxingshang',
|
audio:'sbxingshang',
|
||||||
filterTarget:function(card,player,target){
|
filterTarget(card,player,target){
|
||||||
switch(lib.skill.sbxingshang_use_backup.num){
|
switch(lib.skill.sbxingshang_use_backup.num){
|
||||||
case 1:
|
case 1:
|
||||||
return target=>target.isLinked()||target.isTurnedOver();
|
return target=>target.isLinked()||target.isTurnedOver();
|
||||||
|
@ -889,17 +917,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
result:{
|
result:{
|
||||||
target:function(player,target){
|
target(player,target){
|
||||||
switch(lib.skill.sbxingshang_use_backup.num){
|
switch(lib.skill.sbxingshang_use_backup.num){
|
||||||
case 1:
|
case 1:
|
||||||
let num=0;
|
let num=0;
|
||||||
if(target.isLinked()) num+=0.5;
|
if(target.isLinked()&&!target.hasSkill('nzry_jieying')) num+=0.5;
|
||||||
if(target.isTurnedOver()) num+=10;
|
if(target.isTurnedOver()) num+=10;
|
||||||
return num;
|
return num;
|
||||||
case 2:
|
case 2:
|
||||||
return 1;
|
return get.effect(target,{name:'draw'},player,player);
|
||||||
case 3:
|
case 3:
|
||||||
return get.recoverEffect(target,player,player);
|
return Math.max(0,get.recoverEffect(target,player,player))+get.attitude(player,target);
|
||||||
case 4:
|
case 4:
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -908,21 +936,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
prompt:function(links,player){
|
prompt(links,player){
|
||||||
|
const str='###行殇###';
|
||||||
switch(links[0]){
|
switch(links[0]){
|
||||||
case 1:
|
case 1:
|
||||||
return '复原一名角色的武将牌';
|
return str+'复原一名角色的武将牌';
|
||||||
case 2:
|
case 2:
|
||||||
return '令一名角色摸'+get.cnNumber(Math.min(5,Math.max(1,game.dead.length)))+'张牌';
|
return str+'令一名角色摸'+get.cnNumber(Math.min(5,Math.max(1,game.dead.length)))+'张牌';
|
||||||
case 3:
|
case 3:
|
||||||
return '令一名体力上限小于10的角色加1点体力上限并回复1点体力,然后随机恢复一个被废除的装备栏';
|
return str+'令一名体力上限小于10的角色加1点体力上限并回复1点体力,然后随机恢复一个被废除的装备栏';
|
||||||
case 4:
|
case 4:
|
||||||
return '获得一名已阵亡角色的所有技能,然后失去武将牌上的所有技能';
|
return str+'获得一名已阵亡角色的所有技能,然后失去武将牌上的所有技能';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
order:9,
|
order(_,player){
|
||||||
|
const info=get.info('sbxingshang');
|
||||||
|
const goon=(player.hasSkill('sbfangzhu')&&!player.getStat('skill').sbfangzhu);
|
||||||
|
let list=Array.from({length:goon?8:4}).map((_,i)=>i+1);
|
||||||
|
list=list.filter(num=>player.countMark('sbxingshang')>=info.getNum(num));
|
||||||
|
list.sort((a,b)=>info.getEffect(player,b)-info.getEffect(player,a));
|
||||||
|
return (Array.from({length:4}).map((_,i)=>i+1).includes(list[0])&&info.getEffect(player,list[0])>0)?1:0;
|
||||||
|
},
|
||||||
result:{player:1},
|
result:{player:1},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -932,12 +968,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sbfangzhu:{
|
sbfangzhu:{
|
||||||
audio:2,
|
audio:2,
|
||||||
enable:'phaseUse',
|
enable:'phaseUse',
|
||||||
filter:function(event,player){
|
filter(event,player){
|
||||||
return player.countMark('sbxingshang')>1;
|
return player.countMark('sbxingshang')>1;
|
||||||
},
|
},
|
||||||
usable:1,
|
usable:1,
|
||||||
chooseButton:{
|
chooseButton:{
|
||||||
dialog:function(){
|
dialog(){
|
||||||
var dialog=ui.create.dialog('放逐:请选择你要执行的一项','hidden');
|
var dialog=ui.create.dialog('放逐:请选择你要执行的一项','hidden');
|
||||||
dialog.add([[
|
dialog.add([[
|
||||||
[1,'移去2个“颂”标记,令一名其他角色的非Charlotte技能失效直到其回合结束'],
|
[1,'移去2个“颂”标记,令一名其他角色的非Charlotte技能失效直到其回合结束'],
|
||||||
|
@ -947,40 +983,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
],'textbutton']);
|
],'textbutton']);
|
||||||
return dialog;
|
return dialog;
|
||||||
},
|
},
|
||||||
filter:function(button,player){
|
filter(button,player){
|
||||||
if(button.link>2&&player.countMark('sbxingshang')<3) return false;
|
if(button.link>2&&player.countMark('sbxingshang')<3) return false;
|
||||||
if(button.link==4) return game.hasPlayer(target=>target!=player&&!target.hasSkill('sbfangzhu_ban'));
|
if(button.link==4) return game.hasPlayer(target=>target!=player&&!target.hasSkill('sbfangzhu_ban'));
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
check:function(button){
|
check(button){
|
||||||
let player=_status.event.player;
|
const player=get.event('player'),info=get.info('sbxingshang');
|
||||||
switch(button.link){
|
let list=Array.from({length:4}).map((_,i)=>i+1);
|
||||||
case 1:
|
list=list.filter(num=>player.countMark('sbxingshang')>=info.getNum(num+4));
|
||||||
return game.filterPlayer(current=>get.attitude(player,current)<0).reduce((list,target)=>{
|
const num=list.sort((a,b)=>info.getEffect(player,b+4)-info.getEffect(player,a+4))[0]-4;
|
||||||
let num=0;
|
return (button.link==num)?10:0;
|
||||||
if(target.name&&lib.character[target.name]) num+=get.rank(target.name,true);
|
|
||||||
if(target.name2&&lib.character[target.name2]) num+=get.rank(target.name2,true);
|
|
||||||
list.push(num);
|
|
||||||
return list;
|
|
||||||
},[]).sort((a,b)=>b-a)[0];
|
|
||||||
case 2:
|
|
||||||
return 0;
|
|
||||||
case 3:
|
|
||||||
return game.filterPlayer(target=>target!=player&&!target.hasSkill('sbfangzhu_ban')).reduce((list,target)=>{
|
|
||||||
if(get.attitude(player,target)>0&&target.isTurnedOver()) list.push(10*target.countCards('hs')+1);
|
|
||||||
else if(get.attitude(player,target)<0&&!target.isTurnedOver()) list.push(5*target.countCards('hs')+1);
|
|
||||||
else list.push(0);
|
|
||||||
return list;
|
|
||||||
},[]).sort((a,b)=>b-a)[0];
|
|
||||||
case 4:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
backup:function(links,player){
|
backup(links,player){
|
||||||
return {
|
return {
|
||||||
num:links[0],
|
num:links[0],
|
||||||
audio:'sbfangzhu',
|
audio:'sbfangzhu',
|
||||||
filterTarget:lib.filter.notMe,
|
filterTarget(card,player,target){
|
||||||
|
if(target==player) return false;
|
||||||
|
if(lib.skill.sbfangzhu_backup.num==4) return !target.hasSkill('sbfangzhu_ban');
|
||||||
|
return true;
|
||||||
|
},
|
||||||
async content(event,trigger,player){
|
async content(event,trigger,player){
|
||||||
const target=event.target;
|
const target=event.target;
|
||||||
const num=lib.skill.sbfangzhu_backup.num;
|
const num=lib.skill.sbfangzhu_backup.num;
|
||||||
|
@ -1008,7 +1031,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
result:{
|
result:{
|
||||||
target:function(player,target){
|
target(player,target){
|
||||||
switch(lib.skill.sbfangzhu_backup.num){
|
switch(lib.skill.sbfangzhu_backup.num){
|
||||||
case 1:
|
case 1:
|
||||||
let num=0;
|
let num=0;
|
||||||
|
@ -1029,21 +1052,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
prompt:function(links,player){
|
prompt(links,player){
|
||||||
|
const str='###放逐###';
|
||||||
switch(links[0]){
|
switch(links[0]){
|
||||||
case 1:
|
case 1:
|
||||||
return '移去2个“颂”标记,令一名其他角色的非Charlotte技能失效直到其回合结束';
|
return str+'移去2个“颂”标记,令一名其他角色的非Charlotte技能失效直到其回合结束';
|
||||||
case 2:
|
case 2:
|
||||||
return '移去2个“颂”标记,令一名其他角色不能响应除其外的角色使用的牌直到其回合结束';
|
return str+'移去2个“颂”标记,令一名其他角色不能响应除其外的角色使用的牌直到其回合结束';
|
||||||
case 3:
|
case 3:
|
||||||
return '移去3个“颂”标记,令一名其他角色将武将牌翻面';
|
return str+'移去3个“颂”标记,令一名其他角色将武将牌翻面';
|
||||||
case 4:
|
case 4:
|
||||||
return '移去3个“颂”标记,令一名其他角色只能使用你选择的一种类型的牌直到其回合结束';
|
return str+'移去3个“颂”标记,令一名其他角色只能使用你选择的一种类型的牌直到其回合结束';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
order:9,
|
order(_,player){
|
||||||
|
const info=get.info('sbxingshang');
|
||||||
|
const goon=(player.hasSkill('sbxingshang')&&!player.getStat('skill').sbxingshang_use);
|
||||||
|
let list=Array.from({length:goon?8:4}).map((_,i)=>i+(goon?1:5));
|
||||||
|
list=list.filter(num=>player.countMark('sbxingshang')>=info.getNum(num));
|
||||||
|
list.sort((a,b)=>info.getEffect(player,b)-info.getEffect(player,a));
|
||||||
|
return (Array.from({length:4}).map((_,i)=>i+5).includes(list[0])&&info.getEffect(player,list[0])>0)?1:0;
|
||||||
|
},
|
||||||
result:{player:1},
|
result:{player:1},
|
||||||
},
|
},
|
||||||
subSkill:{
|
subSkill:{
|
||||||
|
@ -1054,7 +1085,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
marktext:'禁',
|
marktext:'禁',
|
||||||
intro:{content:'不能响应其他角色使用的牌'},
|
intro:{content:'不能响应其他角色使用的牌'},
|
||||||
trigger:{global:'useCard1'},
|
trigger:{global:'useCard1'},
|
||||||
filter:function(event,player){
|
filter(event,player){
|
||||||
return event.player!=player;
|
return event.player!=player;
|
||||||
},
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
|
@ -1073,10 +1104,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
content:'只能使用$牌',
|
content:'只能使用$牌',
|
||||||
},
|
},
|
||||||
mod:{
|
mod:{
|
||||||
cardEnabled:function(card,player){
|
cardEnabled(card,player){
|
||||||
if(!player.getStorage('sbfangzhu_ban').includes(get.type2(card))) return false;
|
if(!player.getStorage('sbfangzhu_ban').includes(get.type2(card))) return false;
|
||||||
},
|
},
|
||||||
cardSavable:function(card,player){
|
cardSavable(card,player){
|
||||||
if(!player.getStorage('sbfangzhu_ban').includes(get.type2(card))) return false;
|
if(!player.getStorage('sbfangzhu_ban').includes(get.type2(card))) return false;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -1089,7 +1120,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.addSkill('sbsongwei_delete');
|
player.addSkill('sbsongwei_delete');
|
||||||
},
|
},
|
||||||
trigger:{player:'phaseUseBegin'},
|
trigger:{player:'phaseUseBegin'},
|
||||||
filter:function(event,player){
|
filter(event,player){
|
||||||
return game.hasPlayer(target=>target.group=='wei'&&target!=player);
|
return game.hasPlayer(target=>target.group=='wei'&&target!=player);
|
||||||
},
|
},
|
||||||
zhuSkill:true,
|
zhuSkill:true,
|
||||||
|
@ -1102,10 +1133,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
delete:{
|
delete:{
|
||||||
audio:'sbsongwei',
|
audio:'sbsongwei',
|
||||||
enable:'phaseUse',
|
enable:'phaseUse',
|
||||||
filter:function(event,player){
|
filter(event,player){
|
||||||
return game.hasPlayer(target=>lib.skill.sbsongwei.subSkill.delete.filterTarget(null,player,target));
|
return game.hasPlayer(target=>lib.skill.sbsongwei.subSkill.delete.filterTarget(null,player,target));
|
||||||
},
|
},
|
||||||
filterTarget:function(card,player,target){
|
filterTarget(card,player,target){
|
||||||
return target!=player&&target.group=='wei'&&target.getStockSkills(false,true).length;
|
return target!=player&&target.group=='wei'&&target.getStockSkills(false,true).length;
|
||||||
},
|
},
|
||||||
skillAnimation:true,
|
skillAnimation:true,
|
||||||
|
@ -1117,7 +1148,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ai:{
|
ai:{
|
||||||
order:13,
|
order:13,
|
||||||
result:{
|
result:{
|
||||||
target:function(player,target){
|
target(player,target){
|
||||||
return -target.getStockSkills(false,true).length;
|
return -target.getStockSkills(false,true).length;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -11484,7 +11484,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
quanjiu_info:'锁定技。①你手牌区中的【酒】的牌名视为【杀】。②你使用对应的实体牌为一张【酒】的非转化【杀】不计入次数限制。',
|
quanjiu_info:'锁定技。①你手牌区中的【酒】的牌名视为【杀】。②你使用对应的实体牌为一张【酒】的非转化【杀】不计入次数限制。',
|
||||||
re_pangdegong:'庞德公',
|
re_pangdegong:'庞德公',
|
||||||
heqia:'和洽',
|
heqia:'和洽',
|
||||||
heqia_info:'出牌阶段开始时,你可选择一项:①将任意张牌交给一名其他角色。②令一名有手牌的其他角色交给你任意张牌。然后以此法得到牌的角色可以视为使用一张基本牌,且当其声明使用此牌后,可以为此牌增加至至多X个目标(X为以此法移动的牌数)。',
|
heqia_info:'出牌阶段开始时,你可选择一项:①将任意张牌交给一名其他角色。②令一名有手牌的其他角色交给你任意张牌。然后以此法得到牌的角色可以将一张手牌当作任意基本牌使用,且当其声明使用此牌后,可以为此牌增加至至多X个目标(X为以此法移动的牌数)。',
|
||||||
yinyi:'隐逸',
|
yinyi:'隐逸',
|
||||||
yinyi_info:'锁定技。每回合限一次,当你受到非属性伤害时,若你的手牌数和体力值与伤害来源均不相同,则你防止此伤害。',
|
yinyi_info:'锁定技。每回合限一次,当你受到非属性伤害时,若你的手牌数和体力值与伤害来源均不相同,则你防止此伤害。',
|
||||||
haomeng:'郝萌',
|
haomeng:'郝萌',
|
||||||
|
@ -11492,7 +11492,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
xiongmang_info:'你可将任意张花色各不相同的手牌当做目标数上限为X的【杀】使用(X为此【杀】对应的实体牌数)。此【杀】使用结算结束后,若你未造成过渠道为此牌的伤害,则你减1点体力上限。',
|
xiongmang_info:'你可将任意张花色各不相同的手牌当做目标数上限为X的【杀】使用(X为此【杀】对应的实体牌数)。此【杀】使用结算结束后,若你未造成过渠道为此牌的伤害,则你减1点体力上限。',
|
||||||
yanfuren:'严夫人',
|
yanfuren:'严夫人',
|
||||||
channi:'谗逆',
|
channi:'谗逆',
|
||||||
channi_info:'出牌阶段限一次。你可将任意张手牌交给一名其他角色,然后其可以将等量的手牌当做【决斗】使用。若其因此【决斗】造成了伤害,则其摸X张牌(X为此【决斗】对应的实体牌数)。若其因此【决斗】受到过伤害,则你弃置所有手牌。',
|
channi_info:'出牌阶段限一次。你可将任意张手牌交给一名其他角色,然后其可以将至多等量的手牌当做【决斗】使用。若其因此【决斗】造成了伤害,则其摸X张牌(X为此【决斗】对应的实体牌数)。若其因此【决斗】受到过伤害,则你弃置所有手牌。',
|
||||||
nifu:'匿伏',
|
nifu:'匿伏',
|
||||||
nifu_info:'锁定技。一名角色的回合结束时,你将手牌摸至或弃置至三张。',
|
nifu_info:'锁定技。一名角色的回合结束时,你将手牌摸至或弃置至三张。',
|
||||||
licaiwei:'李采薇',
|
licaiwei:'李采薇',
|
||||||
|
|
Loading…
Reference in New Issue