Merge branch 'PR-Branch' of github.com:libccy/noname into PR-Branch
|
@ -2,16 +2,19 @@
|
||||||
"extends": "eslint:recommended",
|
"extends": "eslint:recommended",
|
||||||
"env": {
|
"env": {
|
||||||
"browser": true,
|
"browser": true,
|
||||||
"node": true,
|
|
||||||
"es6": true,
|
"es6": true,
|
||||||
|
"node": true,
|
||||||
|
"serviceworker": true,
|
||||||
"worker": true
|
"worker": true
|
||||||
},
|
},
|
||||||
"rules": {
|
"rules": {
|
||||||
"no-console": 0,
|
"no-console": 0,
|
||||||
"no-unused-vars": 0,
|
"no-constant-condition": [
|
||||||
"no-undef": 0,
|
"error",
|
||||||
"no-redeclare": 0,
|
{
|
||||||
"require-yield": 0,
|
"checkLoops": false
|
||||||
|
}
|
||||||
|
],
|
||||||
"no-irregular-whitespace": [
|
"no-irregular-whitespace": [
|
||||||
"error",
|
"error",
|
||||||
{
|
{
|
||||||
|
@ -19,13 +22,13 @@
|
||||||
"skipTemplates": true
|
"skipTemplates": true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"no-constant-condition": [
|
"no-redeclare": 0,
|
||||||
"error",
|
"no-undef": 0,
|
||||||
{
|
"no-unused-vars": 0,
|
||||||
"checkLoops": false
|
"require-yield": 0
|
||||||
}
|
},
|
||||||
] /* ,
|
"parserOptions": {
|
||||||
"comma-dangle": ["error", "only-multiline"],
|
"ecmaVersion": 13,
|
||||||
"complexity": ["error",100] */
|
"sourceType": "module"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,10 +1,25 @@
|
||||||
|
!extension/boss
|
||||||
|
!extension/cardpile
|
||||||
|
!extension/coin
|
||||||
|
!extension/wuxing
|
||||||
|
!node_modules/options
|
||||||
|
!node_modules/ultron
|
||||||
|
!node_modules/ws
|
||||||
|
._*
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.DS_Store?
|
.DS_Store?
|
||||||
._*
|
.idea
|
||||||
.Spotlight-V100
|
.Spotlight-V100
|
||||||
.Trashes
|
.Trashes
|
||||||
ehthumbs.db
|
|
||||||
Thumbs.db
|
|
||||||
localStorage.json
|
|
||||||
.vscode
|
.vscode
|
||||||
.idea
|
app
|
||||||
|
app.html
|
||||||
|
ehthumbs.db
|
||||||
|
extension
|
||||||
|
jsconfig.json
|
||||||
|
localStorage.json
|
||||||
|
main.js
|
||||||
|
node_modules
|
||||||
|
noname.ico
|
||||||
|
package.json
|
||||||
|
Thumbs.db
|
||||||
|
|
|
@ -123,31 +123,43 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
return 0;
|
return 0;
|
||||||
},
|
},
|
||||||
result:{
|
result:{
|
||||||
target:(player,target)=>{
|
target:(player,target,card)=>{
|
||||||
if(target&&target.isDying()) return 2;
|
if(target&&target.isDying()) return 2;
|
||||||
if(!target || target._jiu_temp || !target.isPhaseUsing()) return 0;
|
if(!target || target._jiu_temp || !target.isPhaseUsing()) return 0;
|
||||||
if(!target.getCardUsable('sha') || lib.config.mode==='stone'&&!player.isMin()&&player.getActCount()+1>=player.actcount) return 0;
|
let usable=target.getCardUsable('sha');
|
||||||
let shas = player.getCards('hs',card=>get.name(card)==='sha'&&!ui.selected.cards.includes(card)), card;
|
if(!usable || lib.config.mode==='stone'&&!player.isMin()&&player.getActCount()+1>=player.actcount || !target.mayHaveSha(player,'use',card)) return 0;
|
||||||
if(!shas.length || !target.hasSha() || shas.length>1&&(target.getCardUsable('sha')>1 || target.countCards('hs','zhuge'))) return 0;
|
let effs={order:0},temp;
|
||||||
target._jiu_temp = true;
|
target.getCards('hs',i=>{
|
||||||
shas.sort((a,b)=>get.order(b)-get.order(a));
|
if(get.name(i)!=='sha' || ui.selected.cards.includes(i)) return false;
|
||||||
for(let i=0; i<shas.length; i++){
|
temp=get.order(i,target);
|
||||||
let tars = [];
|
if(temp<effs.order) return false;
|
||||||
if(lib.filter.filterCard(shas[i],target)) tars = game.filterPlayer(current=>{
|
if(temp>effs.order) effs={order:temp};
|
||||||
return get.attitude(target,current)<0&&target.canUse(shas[i],current,null,true)&&!current.hasSkillTag('filterDamage',null,{
|
effs[i.cardid]={
|
||||||
|
card:i,
|
||||||
|
target:null,
|
||||||
|
eff:0
|
||||||
|
};
|
||||||
|
});
|
||||||
|
delete effs.order;
|
||||||
|
for(let i in effs){
|
||||||
|
if(!lib.filter.filterCard(effs[i].card,target)) continue;
|
||||||
|
game.filterPlayer(current=>{
|
||||||
|
if(get.attitude(target,current)>=0 || !target.canUse(effs[i].card,current,null,true) || current.hasSkillTag('filterDamage',null,{
|
||||||
player:target,
|
player:target,
|
||||||
card:shas[i],
|
card:effs[i].card,
|
||||||
jiu:true
|
jiu:true
|
||||||
})&&get.effect(current,shas[i],target)>0;
|
})) return false;
|
||||||
|
temp=get.effect(current,effs[i].card,target,player);
|
||||||
|
if(temp<=effs[i].eff) return false;
|
||||||
|
effs[i].target=current;
|
||||||
|
effs[i].eff=temp;
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
if(!tars.length) continue;
|
if(!effs[i].target) continue;
|
||||||
tars.sort((a,b)=>{
|
if(target.hasSkillTag('directHit_ai',true,{
|
||||||
return get.effect(b,shas[i],target)-get.effect(a,shas[i],target);
|
target:effs[i].target,
|
||||||
});
|
card:i
|
||||||
if(!tars[0].mayHaveShan(player,'use') || target.hasSkillTag('directHit_ai',true,{
|
},true) || usable===1&&(target.needsToDiscard()>Math.max(0,3-target.hp) || !effs[i].target.mayHaveShan(player,'use'))){
|
||||||
target:tars[0],
|
|
||||||
card:shas[i]
|
|
||||||
},true) || target.needsToDiscard()>Math.max(0,3-target.hp)){
|
|
||||||
delete target._jiu_temp;
|
delete target._jiu_temp;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -192,6 +204,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
game.addVideo('cardDialog',null,[get.translation(target)+'展示的手牌',get.cardsInfo(result.cards),event.videoId]);
|
game.addVideo('cardDialog',null,[get.translation(target)+'展示的手牌',get.cardsInfo(result.cards),event.videoId]);
|
||||||
event.card2=result.cards[0];
|
event.card2=result.cards[0];
|
||||||
game.log(target,'展示了',event.card2);
|
game.log(target,'展示了',event.card2);
|
||||||
|
game.addCardKnower(result.cards, 'everyone');
|
||||||
event._result={};
|
event._result={};
|
||||||
player.chooseToDiscard({suit:get.suit(event.card2)},function(card){
|
player.chooseToDiscard({suit:get.suit(event.card2)},function(card){
|
||||||
var evt=_status.event.getParent();
|
var evt=_status.event.getParent();
|
||||||
|
@ -218,10 +231,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
value:[3,1],
|
value:[3,1],
|
||||||
useful:1,
|
useful:1,
|
||||||
},
|
},
|
||||||
wuxie:function(target,card,player,viewer,state){
|
wuxie:function(target,card,player,viewer,status){
|
||||||
let att=get.attitude(viewer,target), eff=get.effect(target,card,player,target);
|
if(get.attitude(viewer,player._trueMe||player)>0) return 0;
|
||||||
if(status*get.attitude(viewer,player)>0&&!player.isMad() || status*eff*att>=0) return 0;
|
if(status*get.attitude(viewer,target)*get.effect(target,card,player,target)>=0) return 0;
|
||||||
if(get.attitude(viewer,player)>=0 || _status.event.getRand('huogong_wuxie')*4>player.countCards('h')) return 0;
|
if(_status.event.getRand('huogong_wuxie')*4>player.countCards('h')) return 0;
|
||||||
},
|
},
|
||||||
result:{
|
result:{
|
||||||
player:function(player){
|
player:function(player){
|
||||||
|
@ -290,7 +303,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
recastable:true,
|
recastable:true,
|
||||||
ai:{
|
ai:{
|
||||||
wuxie:(target,card,player,viewer, status)=>{
|
wuxie:(target,card,player,viewer, status)=>{
|
||||||
if(status*get.attitude(viewer,player)>0&&!player.isMad() || target.hasSkillTag('nodamage') || target.hasSkillTag('nofire') || target.hasSkillTag('nothunder') || get.attitude(viewer,player)>0 || (1+target.countCards('hs'))*_status.event.getRand()>1.57) return 0;
|
if(status*get.attitude(viewer,player._trueMe||player)>0 || target.hasSkillTag('nodamage') || target.hasSkillTag('nofire') || target.hasSkillTag('nothunder') || get.attitude(viewer,player)>0 || (1+target.countCards('hs'))*_status.event.getRand()>1.57) return 0;
|
||||||
},
|
},
|
||||||
basic:{
|
basic:{
|
||||||
order:(item,player)=>{
|
order:(item,player)=>{
|
||||||
|
|
|
@ -1793,88 +1793,88 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
translate:{
|
translate:{
|
||||||
jinlianzhu:'金莲珠',
|
jinlianzhu:'金莲珠',
|
||||||
jinlianzhu_info:'对一名即将受到伤害的角色使用,防止此伤害,并令伤害来源摸一张牌',
|
jinlianzhu_info:'对一名即将受到伤害的角色使用,防止此伤害,并令伤害来源摸一张牌。',
|
||||||
shihuifen:'石灰粉',
|
shihuifen:'石灰粉',
|
||||||
shihuifen_info:'在一名其他角色的出牌阶段开始时对其使用,目标需打出一张闪,否则此阶段使用卡牌无法指定其他角色为目标',
|
shihuifen_info:'在一名其他角色的出牌阶段开始时对其使用,目标需打出一张闪,否则此阶段使用卡牌无法指定其他角色为目标。',
|
||||||
liufengsan:'流风散',
|
liufengsan:'流风散',
|
||||||
liufengsan_info:'出牌阶段对一名角色使用,目标获得两张闪',
|
liufengsan_info:'出牌阶段对一名角色使用,目标获得两张闪。',
|
||||||
liutouge:'六骰格',
|
liutouge:'六骰格',
|
||||||
liutouge_info:'出牌阶段对一名角色使用,若目标是敌人,对目标施加一个随机的负面效果;否则对目标施加一个随机的正面效果',
|
liutouge_info:'出牌阶段对一名角色使用,若目标是敌人,对目标施加一个随机的负面效果;否则对目标施加一个随机的正面效果。',
|
||||||
longxugou:'龙须钩',
|
longxugou:'龙须钩',
|
||||||
longxugou_info:'出牌阶段对一名装备区内有牌的其他角色使用,获得其装备区内的一张牌并装备之',
|
longxugou_info:'出牌阶段对一名装备区内有牌的其他角色使用,获得其装备区内的一张牌并装备之。',
|
||||||
mianlijinzhen:'棉里针',
|
mianlijinzhen:'棉里针',
|
||||||
mianlijinzhen_info:'出牌阶段对一名体力值不小于你的角色使用,目标摸一张牌然后失去1点体力',
|
mianlijinzhen_info:'出牌阶段对一名体力值不小于你的角色使用,目标摸一张牌然后失去1点体力。',
|
||||||
shenhuofeiya:'神火飞鸦',
|
shenhuofeiya:'神火飞鸦',
|
||||||
shenhuofeiya_info:'出牌阶段对一名其他角色和其相邻角色使用,目标需打出一张闪,否则受到1点火属性伤害',
|
shenhuofeiya_info:'出牌阶段对一名其他角色和其相邻角色使用,目标需打出一张闪,否则受到1点火属性伤害。',
|
||||||
// tuhunsha:'土魂砂',
|
// tuhunsha:'土魂砂',
|
||||||
// tuhunsha_info:'土魂砂',
|
// tuhunsha_info:'土魂砂',
|
||||||
// wenhuangsan:'瘟癀伞',
|
// wenhuangsan:'瘟癀伞',
|
||||||
// wenhuangsan_info:'瘟癀伞',
|
// wenhuangsan_info:'瘟癀伞',
|
||||||
qiankunbiao:'乾坤镖',
|
qiankunbiao:'乾坤镖',
|
||||||
qiankunbiao_info:'随机弃置一名其他角色和其相邻角色的一张牌',
|
qiankunbiao_info:'随机弃置一名其他角色和其相邻角色的一张牌。',
|
||||||
|
|
||||||
bingpotong:'天女散花',
|
bingpotong:'天女散花',
|
||||||
bingpotong_ab:'散花',
|
bingpotong_ab:'散花',
|
||||||
bingpotong_info:'出牌阶段对至多3名角色使用,你与每个目标依次同时展示一张手牌,若颜色相同,你弃置展示的手牌,目标失去1点体力并终止结算',
|
bingpotong_info:'出牌阶段对至多3名角色使用,你与每个目标依次同时展示一张手牌,若颜色相同,你弃置展示的手牌,目标失去1点体力并终止结算。',
|
||||||
feibiao:'飞镖',
|
feibiao:'飞镖',
|
||||||
feibiao_info:'出牌阶段,对一名距离1以外的角色使用,令其弃置一张黑色手牌或失去1点体力',
|
feibiao_info:'出牌阶段,对一名距离1以外的角色使用,令其弃置一张黑色手牌或失去1点体力。',
|
||||||
|
|
||||||
dinvxuanshuang:'帝女玄霜',
|
dinvxuanshuang:'帝女玄霜',
|
||||||
dinvxuanshuang_skill:'帝女玄霜',
|
dinvxuanshuang_skill:'帝女玄霜',
|
||||||
dinvxuanshuang_info:'对一名濒死状态的角色使用,目标回复1点体力,然后可以弃置任意张牌并摸等量的牌',
|
dinvxuanshuang_info:'对一名濒死状态的角色使用,目标回复1点体力,然后可以弃置任意张牌并摸等量的牌。',
|
||||||
yunvyuanshen:'玉女元参',
|
yunvyuanshen:'玉女元参',
|
||||||
yunvyuanshen_skill:'玉女元参',
|
yunvyuanshen_skill:'玉女元参',
|
||||||
yunvyuanshen_info:'出牌阶段对一名角色使用,目标在下一次进入濒死状态时回复1点体力',
|
yunvyuanshen_info:'出牌阶段对一名角色使用,目标在下一次进入濒死状态时回复1点体力。',
|
||||||
ziyangdan:'紫阳丹',
|
ziyangdan:'紫阳丹',
|
||||||
ziyangdan_info:'出牌阶段对一名角色使用,目标获得3点护甲,此后每个准备阶段失去1点护甲,直到首次失去所有护甲或累计以此法失去3点护甲',
|
ziyangdan_info:'出牌阶段对一名角色使用,目标获得3点护甲,此后每个准备阶段失去1点护甲,直到首次失去所有护甲或累计以此法失去3点护甲。',
|
||||||
gjyuheng:'玉衡',
|
gjyuheng:'玉衡',
|
||||||
gjyuheng_plus:'玉衡',
|
gjyuheng_plus:'玉衡',
|
||||||
gjyuheng_pro:'玉衡',
|
gjyuheng_pro:'玉衡',
|
||||||
gjyuheng_skill:'玉衡',
|
gjyuheng_skill:'玉衡',
|
||||||
gjyuheng_plus_skill:'玉衡',
|
gjyuheng_plus_skill:'玉衡',
|
||||||
gjyuheng_pro_skill:'玉衡',
|
gjyuheng_pro_skill:'玉衡',
|
||||||
gjyuheng_info:'出牌阶段限一次,若敌方角色有黑桃手牌,你可以弃置一张黑桃手牌,然后获得一名随机敌方角色的一张随机黑桃手牌(此牌在本局游戏中第三次和第七次发动效果后,分别自动获得一次强化)',
|
gjyuheng_info:'出牌阶段限一次,若敌方角色有黑桃手牌,你可以弃置一张黑桃手牌,然后获得一名随机敌方角色的一张随机黑桃手牌(此牌在本局游戏中第三次和第七次发动效果后,分别自动获得一次强化)。',
|
||||||
gjyuheng_plus_info:'由普通玉衡强化得到,将玉衡技能描述中的“弃置一张黑桃手牌”改为“弃置一张黑色手牌”',
|
gjyuheng_plus_info:'由普通玉衡强化得到,将玉衡技能描述中的“弃置一张黑桃手牌”改为“弃置一张黑色手牌”。',
|
||||||
gjyuheng_pro_info:'由普通玉衡二次强化得到,将玉横技能描述中的“弃置一张黑桃手牌”改为“弃置一张黑色手牌”,并去掉使用次数限制',
|
gjyuheng_pro_info:'由普通玉衡二次强化得到,将玉横技能描述中的“弃置一张黑桃手牌”改为“弃置一张黑色手牌”,并去掉使用次数限制。',
|
||||||
gjyuheng_skill_info:'出牌阶段限一次,若敌方角色有黑桃手牌,你可以弃置一张黑桃手牌,然后获得一名随机敌方角色的一张随机黑桃手牌',
|
gjyuheng_skill_info:'出牌阶段限一次,若敌方角色有黑桃手牌,你可以弃置一张黑桃手牌,然后获得一名随机敌方角色的一张随机黑桃手牌。',
|
||||||
gjyuheng_plus_skill_info:'出牌阶段限一次,若敌方角色有黑桃手牌,你可以弃置一张黑色手牌,然后获得一名随机敌方角色的一张随机黑桃手牌',
|
gjyuheng_plus_skill_info:'出牌阶段限一次,若敌方角色有黑桃手牌,你可以弃置一张黑色手牌,然后获得一名随机敌方角色的一张随机黑桃手牌。',
|
||||||
gjyuheng_pro_skill_info:'出牌阶段限,若敌方角色有黑桃手牌,你可以弃置一张黑色手牌,然后获得一名随机敌方角色的一张随机黑桃手牌',
|
gjyuheng_pro_skill_info:'出牌阶段限,若敌方角色有黑桃手牌,你可以弃置一张黑色手牌,然后获得一名随机敌方角色的一张随机黑桃手牌。',
|
||||||
shujinsan:'舒筋散',
|
shujinsan:'舒筋散',
|
||||||
shujinsan_info:'出牌阶段对任意角色使用,目标可弃置任意张牌,并摸等量的牌',
|
shujinsan_info:'出牌阶段对任意角色使用,目标可弃置任意张牌,并摸等量的牌。',
|
||||||
mutoumianju:'木头面具',
|
mutoumianju:'木头面具',
|
||||||
mutoumianju_info:'出牌阶段限一次,你可以将一张手牌当作杀使用',
|
mutoumianju_info:'出牌阶段限一次,你可以将一张手牌当作杀使用。',
|
||||||
mutoumianju_skill:'木杀',
|
mutoumianju_skill:'木杀',
|
||||||
mutoumianju_skill_info:'出牌阶段限一次,你可以将一张手牌当作杀使用',
|
mutoumianju_skill_info:'出牌阶段限一次,你可以将一张手牌当作杀使用。',
|
||||||
heilonglinpian:'黑龙鳞片',
|
heilonglinpian:'黑龙鳞片',
|
||||||
heilonglinpian_info:'出牌阶段对自己使用,获得1点护甲,直到下一回合开始,你的防御距离+1',
|
heilonglinpian_info:'出牌阶段对自己使用,获得1点护甲,直到下一回合开始,你的防御距离+1。',
|
||||||
shatang:'沙棠',
|
shatang:'沙棠',
|
||||||
shatang_info:'出牌阶段对一名角色使用,对目标造成1点火焰伤害,然后目标获得1点护甲',
|
shatang_info:'出牌阶段对一名角色使用,对目标造成1点火焰伤害,然后目标获得1点护甲。',
|
||||||
|
|
||||||
food:'食物',
|
food:'食物',
|
||||||
chunbing:'春饼',
|
chunbing:'春饼',
|
||||||
chunbing_info:'你的手牌上限+1,持续五回合',
|
chunbing_info:'你的手牌上限+1,持续五回合。',
|
||||||
gudonggeng:'骨董羹',
|
gudonggeng:'骨董羹',
|
||||||
gudonggeng_info:'当你下一次受到杀造成的伤害时,令伤害-1,持续三回合',
|
gudonggeng_info:'当你下一次受到杀造成的伤害时,令伤害-1,持续三回合。',
|
||||||
yougeng:'酉羹',
|
yougeng:'酉羹',
|
||||||
yougeng_info:'准备阶段,若你的体力值为全场最少或之一,你回复1点体力,持续两回合',
|
yougeng_info:'准备阶段,若你的体力值为全场最少或之一,你回复1点体力,持续两回合。',
|
||||||
liyutang:'鲤鱼汤',
|
liyutang:'鲤鱼汤',
|
||||||
liyutang_info:'结束阶段,若你的体力值为全场最少或之一,你获得1点护甲,持续两回合',
|
liyutang_info:'结束阶段,若你的体力值为全场最少或之一,你获得1点护甲,持续两回合。',
|
||||||
mizhilianou:'蜜汁藕',
|
mizhilianou:'蜜汁藕',
|
||||||
mizhilianou_info:'你可以将一张红桃牌当作桃使用,持续四回合',
|
mizhilianou_info:'你可以将一张红桃牌当作桃使用,持续四回合。',
|
||||||
xiajiao:'虾饺',
|
xiajiao:'虾饺',
|
||||||
xiajiao_info:'你在摸牌阶段额外摸一张牌,然后弃置一张牌,持续三回合',
|
xiajiao_info:'你在摸牌阶段额外摸一张牌,然后弃置一张牌,持续三回合。',
|
||||||
tanhuadong:'昙花冻',
|
tanhuadong:'昙花冻',
|
||||||
tanhuadong_info:'出牌阶段结束时,你摸一张牌,持续三回合',
|
tanhuadong_info:'出牌阶段结束时,你摸一张牌,持续三回合。',
|
||||||
qingtuan:'青团',
|
qingtuan:'青团',
|
||||||
qingtuan_info:'你在回合内使用首张杀时摸一张牌,持续两回合',
|
qingtuan_info:'你在回合内使用首张杀时摸一张牌,持续两回合。',
|
||||||
luyugeng:'鲈鱼羹',
|
luyugeng:'鲈鱼羹',
|
||||||
luyugeng_info:'出牌阶段限一次,你可以弃置一张基本牌并发现一张牌,持续三回合',
|
luyugeng_info:'出牌阶段限一次,你可以弃置一张基本牌并发现一张牌,持续三回合。',
|
||||||
yuanbaorou:'元宝肉',
|
yuanbaorou:'元宝肉',
|
||||||
yuanbaorou_info:'你在出牌阶段可以额外使用一张杀,持续四回合',
|
yuanbaorou_info:'你在出牌阶段可以额外使用一张杀,持续四回合。',
|
||||||
molicha:'茉莉茶',
|
molicha:'茉莉茶',
|
||||||
molicha_info:'你不能成为其他角色的黑色牌的目标,持续四回合',
|
molicha_info:'你不能成为其他角色的黑色牌的目标,持续四回合。',
|
||||||
mapodoufu:'麻婆豆腐',
|
mapodoufu:'麻婆豆腐',
|
||||||
mapodoufu_info:'结束阶段,你弃置一名随机敌人的一张随机牌,持续两回合',
|
mapodoufu_info:'结束阶段,你弃置一名随机敌人的一张随机牌,持续两回合。',
|
||||||
},
|
},
|
||||||
list:[
|
list:[
|
||||||
['spade',2,'tanhuadong'],
|
['spade',2,'tanhuadong'],
|
||||||
|
|
|
@ -225,7 +225,20 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
player.chooseControl().set('prompt','文和乱武:请选择一项').set('choiceList',[
|
player.chooseControl().set('prompt','文和乱武:请选择一项').set('choiceList',[
|
||||||
'令'+str+'弃置两张类型不同的手牌',
|
'令'+str+'弃置两张类型不同的手牌',
|
||||||
'弃置'+str+'的一张手牌',
|
'弃置'+str+'的一张手牌',
|
||||||
]);
|
]).set('ai',()=>{
|
||||||
|
let target=_status.event.getParent().target,hs=target.getCards('h'),type=[],att=get.attitude(_status.event.player,target);
|
||||||
|
if(hs.length<2) return att>0?1:0;
|
||||||
|
hs.forEach(i=>{
|
||||||
|
type.add(get.type2(i,target));
|
||||||
|
});
|
||||||
|
if(target.identity!=='qun'){
|
||||||
|
if(Boolean(att>0)===Boolean(type.length>1)) return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if(type.length<2||target.hp<3) return att>0?1:0;
|
||||||
|
if(hs.length===2) return att>0?0:1;
|
||||||
|
return att>0?1:0;
|
||||||
|
});
|
||||||
'step 2'
|
'step 2'
|
||||||
if(result.index==0){
|
if(result.index==0){
|
||||||
var list=[],hs=target.getCards('h');
|
var list=[],hs=target.getCards('h');
|
||||||
|
@ -1331,6 +1344,19 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
})){
|
})){
|
||||||
return [0,0,0,0];
|
return [0,0,0,0];
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
target:(card,player,target)=>{
|
||||||
|
if(target._g_taipingyaoshu_temp) return;
|
||||||
|
if(get.subtype(card)==='equip2'&&target.getEquip('taipingyaoshu')&&!target.countEmpty(2)){
|
||||||
|
target._g_taipingyaoshu_temp=true;
|
||||||
|
let lose=get.effect(target,{name:'losehp'},target,target),
|
||||||
|
draw=2*get.effect(target,{name:'draw'},target,target);
|
||||||
|
delete target._g_taipingyaoshu_temp;
|
||||||
|
if(lose<0&&target.hp<=1&&!target.hasCard(i=>{
|
||||||
|
return get.name(i)==='tao'&&lib.filter.cardEnabled(i,target,'forceEnable');
|
||||||
|
})) draw=0;
|
||||||
|
return [1,(lose+draw)/get.attitude(target,target)];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1401,10 +1401,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
result:{
|
result:{
|
||||||
target:function(player,current){
|
target:function(player,current){
|
||||||
if(current.hasSkill('gw_qinpendayu')) return 0;
|
if(current.hasSkill('gw_qinpendayu')) return 0;
|
||||||
if(current.needsToDiscard()) return -1;
|
return Math.max(-1,-0.1-0.3*current.needsToDiscard(2));
|
||||||
if(current.needsToDiscard(1)) return -0.7;
|
|
||||||
if(current.needsToDiscard(2)) return -0.4;
|
|
||||||
return -0.1;
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
order:1.2,
|
order:1.2,
|
||||||
|
@ -2204,22 +2201,22 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
|
|
||||||
gw_youlanzhimeng:'幽蓝之梦',
|
gw_youlanzhimeng:'幽蓝之梦',
|
||||||
gw_guaiwuchaoxue:'怪物巢穴',
|
gw_guaiwuchaoxue:'怪物巢穴',
|
||||||
gw_guaiwuchaoxue_info:'出牌阶段限用一次,随机获得一个卖血技能直到下一回合开始;令一名随机敌方角色对你造成1点伤害,然后你回复1点体力',
|
gw_guaiwuchaoxue_info:'出牌阶段限用一次,随机获得一个卖血技能直到下一回合开始;令一名随机敌方角色对你造成1点伤害,然后你回复1点体力。',
|
||||||
gw_baobaoshu:'雹暴术',
|
gw_baobaoshu:'雹暴术',
|
||||||
gw_baobaoshu_info:'天气牌,出牌阶段对至多两名角色使用,目标每使用一张基本牌或锦囊牌,需弃置一张牌,直到下一回合结束',
|
gw_baobaoshu_info:'天气牌,出牌阶段对至多两名角色使用,目标每使用一张基本牌或锦囊牌,需弃置一张牌,直到下一回合结束。',
|
||||||
gw_baishuang:'白霜',
|
gw_baishuang:'白霜',
|
||||||
gw_baishuang_info:'天气牌,出牌阶段对至多三名角色使用,目标下个摸牌阶段摸牌数-1',
|
gw_baishuang_info:'天气牌,出牌阶段对至多三名角色使用,目标下个摸牌阶段摸牌数-1。',
|
||||||
gw_nuhaifengbao:'怒海风暴',
|
gw_nuhaifengbao:'怒海风暴',
|
||||||
gw_nuhaifengbao_bg:'海',
|
gw_nuhaifengbao_bg:'海',
|
||||||
gw_nuhaifengbao_info:'天气牌,出牌阶段对一名角色使用,目标在结束阶段随机弃置一张牌,持续2回合',
|
gw_nuhaifengbao_info:'天气牌,出牌阶段对一名角色使用,目标在结束阶段随机弃置一张牌,持续2回合。',
|
||||||
gw_ganhan:'干旱',
|
gw_ganhan:'干旱',
|
||||||
gw_ganhan_info:'所有角色减少1点体力上限(不触发技能),然后结束出牌阶段',
|
gw_ganhan_info:'所有角色减少1点体力上限(不触发技能),然后结束出牌阶段。',
|
||||||
gw_huangjiashenpan:'皇家审判',
|
gw_huangjiashenpan:'皇家审判',
|
||||||
gw_huangjiashenpan_info:'获得任意一张金卡法术(皇家审判除外),然后结束出牌阶段',
|
gw_huangjiashenpan_info:'获得任意一张金卡法术(皇家审判除外),然后结束出牌阶段。',
|
||||||
gw_chongci:'冲刺',
|
gw_chongci:'冲刺',
|
||||||
gw_chongci_info:'弃置所有牌并随机获得一张非金法术牌,每弃置一张手牌,便随机获得一张类别相同的牌;每弃置一张装备区内的牌,随机装备一件类别相同的装备;获得潜行直到下一回合开始,然后结束出牌阶段',
|
gw_chongci_info:'弃置所有牌并随机获得一张非金法术牌,每弃置一张手牌,便随机获得一张类别相同的牌;每弃置一张装备区内的牌,随机装备一件类别相同的装备;获得潜行直到下一回合开始,然后结束出牌阶段。',
|
||||||
gw_tunshi:'吞噬',
|
gw_tunshi:'吞噬',
|
||||||
gw_tunshi_info:'随机移除一名敌方角色的一个随机技能,你获得此技能并减少1点体力和体力上限,被移除技能的角色增加1点体力和体力上限,然后结束出牌阶段',
|
gw_tunshi_info:'随机移除一名敌方角色的一个随机技能,你获得此技能并减少1点体力和体力上限,被移除技能的角色增加1点体力和体力上限,然后结束出牌阶段。',
|
||||||
gw_dieyi:'蝶翼',
|
gw_dieyi:'蝶翼',
|
||||||
gw_dieyi_equip1:'蝶翼·器',
|
gw_dieyi_equip1:'蝶翼·器',
|
||||||
gw_dieyi_equip2:'蝶翼·衣',
|
gw_dieyi_equip2:'蝶翼·衣',
|
||||||
|
@ -2227,73 +2224,73 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
gw_dieyi_equip4:'蝶翼·防',
|
gw_dieyi_equip4:'蝶翼·防',
|
||||||
gw_dieyi_equip5:'蝶翼·宝',
|
gw_dieyi_equip5:'蝶翼·宝',
|
||||||
gw_dieyi_judge:'蝶翼·判',
|
gw_dieyi_judge:'蝶翼·判',
|
||||||
gw_dieyi_equip1_info:'在你从装备区中失去此牌后,你获得一枚“蝶翼”标记;在任意角色的结束阶段,你移去所有“蝶翼”标记,并随机弃置等量的牌',
|
gw_dieyi_equip1_info:'在你从装备区中失去此牌后,你获得一枚“蝶翼”标记;在任意角色的结束阶段,你移去所有“蝶翼”标记,并随机弃置等量的牌。',
|
||||||
gw_dieyi_equip2_info:'在你从装备区中失去此牌后,你获得一枚“蝶翼”标记;在任意角色的结束阶段,你移去所有“蝶翼”标记,并随机弃置等量的牌',
|
gw_dieyi_equip2_info:'在你从装备区中失去此牌后,你获得一枚“蝶翼”标记;在任意角色的结束阶段,你移去所有“蝶翼”标记,并随机弃置等量的牌。',
|
||||||
gw_dieyi_equip3_info:'在你从装备区中失去此牌后,你获得一枚“蝶翼”标记;在任意角色的结束阶段,你移去所有“蝶翼”标记,并随机弃置等量的牌',
|
gw_dieyi_equip3_info:'在你从装备区中失去此牌后,你获得一枚“蝶翼”标记;在任意角色的结束阶段,你移去所有“蝶翼”标记,并随机弃置等量的牌。',
|
||||||
gw_dieyi_equip4_info:'在你从装备区中失去此牌后,你获得一枚“蝶翼”标记;在任意角色的结束阶段,你移去所有“蝶翼”标记,并随机弃置等量的牌',
|
gw_dieyi_equip4_info:'在你从装备区中失去此牌后,你获得一枚“蝶翼”标记;在任意角色的结束阶段,你移去所有“蝶翼”标记,并随机弃置等量的牌。',
|
||||||
gw_dieyi_equip5_info:'在你从装备区中失去此牌后,你获得一枚“蝶翼”标记;在任意角色的结束阶段,你移去所有“蝶翼”标记,并随机弃置等量的牌',
|
gw_dieyi_equip5_info:'在你从装备区中失去此牌后,你获得一枚“蝶翼”标记;在任意角色的结束阶段,你移去所有“蝶翼”标记,并随机弃置等量的牌。',
|
||||||
gw_dieyi_judge_info:'你在判定阶段移去此牌,并获得一枚“蝶翼”标记;在任意角色的结束阶段,你移去所有“蝶翼”标记,并随机弃置等量的牌',
|
gw_dieyi_judge_info:'你在判定阶段移去此牌,并获得一枚“蝶翼”标记;在任意角色的结束阶段,你移去所有“蝶翼”标记,并随机弃置等量的牌。',
|
||||||
gw_hudiewu:'蝴蝶舞',
|
gw_hudiewu:'蝴蝶舞',
|
||||||
gw_hudiewu_info:'将其他角色在场上的所有牌替换为蝶翼(每当你失去一张蝶翼,你获得一枚“蝶翼”标记;在任意角色的结束阶段,你移去所有“蝶翼”标记,并随机弃置等量的牌),然后结束出牌阶段',
|
gw_hudiewu_info:'将其他角色在场上的所有牌替换为蝶翼(每当你失去一张蝶翼,你获得一枚“蝶翼”标记;在任意角色的结束阶段,你移去所有“蝶翼”标记,并随机弃置等量的牌),然后结束出牌阶段。',
|
||||||
gw_yigeniyin:'伊格尼印',
|
gw_yigeniyin:'伊格尼印',
|
||||||
gw_yigeniyin_info:'对敌方角色中体力值最高的一名随机角色造成1点火焰伤害,然后对场上体力值最高的所有角色各造成1点火焰伤害,然后结束出牌阶段',
|
gw_yigeniyin_info:'对敌方角色中体力值最高的一名随机角色造成1点火焰伤害,然后对场上体力值最高的所有角色各造成1点火焰伤害,然后结束出牌阶段。',
|
||||||
gw_leizhoushu:'雷咒术',
|
gw_leizhoushu:'雷咒术',
|
||||||
gw_leizhoushu_info:'获得技能雷咒术(在每个准备阶段令全场牌数最多的所有其他角色各随机弃置一张牌,若目标不包含敌方角色,将一名随机敌方角色追加为额外目标,结算X次,X为本局获得此技能的次数),然后结束出牌阶段',
|
gw_leizhoushu_info:'获得技能雷咒术(在每个准备阶段令全场牌数最多的所有其他角色各随机弃置一张牌,若目标不包含敌方角色,将一名随机敌方角色追加为额外目标,结算X次,X为本局获得此技能的次数),然后结束出牌阶段。',
|
||||||
gw_aerdeyin:'阿尔德印',
|
gw_aerdeyin:'阿尔德印',
|
||||||
gw_aerdeyin_bg:'印',
|
gw_aerdeyin_bg:'印',
|
||||||
gw_aerdeyin_info:'对一名随机敌方角色造成1点伤害,若目标武将牌正面朝上,则将其翻面;新的一轮开始时,若目标武将牌正面朝上,则在当前回合结束后进行一个额外回合,否则将武将牌翻回正面',
|
gw_aerdeyin_info:'对一名随机敌方角色造成1点伤害,若目标武将牌正面朝上,则将其翻面;新的一轮开始时,若目标武将牌正面朝上,则在当前回合结束后进行一个额外回合,否则将武将牌翻回正面。',
|
||||||
gw_xinsheng:'新生',
|
gw_xinsheng:'新生',
|
||||||
gw_xinsheng_info:'选择一名角色,随机观看12张武将牌,选择一张替代其武将牌,并令其增加1点体力,然后结束出牌阶段',
|
gw_xinsheng_info:'选择一名角色,随机观看12张武将牌,选择一张替代其武将牌,并令其增加1点体力,然后结束出牌阶段。',
|
||||||
gw_zhongmozhizhan:'终末之战',
|
gw_zhongmozhizhan:'终末之战',
|
||||||
gw_zhongmozhizhan_info:'将所有角色区域内的所有牌置入弃牌堆(不触发技能),然后结束出牌阶段',
|
gw_zhongmozhizhan_info:'将所有角色区域内的所有牌置入弃牌堆(不触发技能),然后结束出牌阶段。',
|
||||||
gw_butianshu:'卜天术',
|
gw_butianshu:'卜天术',
|
||||||
gw_butianshu_info:'出牌阶段对任意角色使用,将任意一张延时锦囊牌置入其判定区',
|
gw_butianshu_info:'出牌阶段对任意角色使用,将任意一张延时锦囊牌置入其判定区。',
|
||||||
gw_zhihuanjun:'致幻菌',
|
gw_zhihuanjun:'致幻菌',
|
||||||
gw_zhihuanjun_info:'出牌阶段对一名已受伤角色使用,令其减少1点体力上限;若该角色仍处于受伤状态且手牌数小于体力上限,则重复此结算',
|
gw_zhihuanjun_info:'出牌阶段对一名已受伤角色使用,令其减少1点体力上限;若该角色仍处于受伤状态且手牌数小于体力上限,则重复此结算。',
|
||||||
gw_niuquzhijing:'纽曲之镜',
|
gw_niuquzhijing:'纽曲之镜',
|
||||||
gw_niuquzhijing_info:'令全场体力最多的角色减少1点体力和体力上限,体力最少的角色增加1点体力和体力上限(不触发技能),然后结束出牌阶段',
|
gw_niuquzhijing_info:'令全场体力最多的角色减少1点体力和体力上限,体力最少的角色增加1点体力和体力上限(不触发技能),然后结束出牌阶段。',
|
||||||
gw_ansha:'暗杀',
|
gw_ansha:'暗杀',
|
||||||
gw_ansha_info:'令一名体力为1的随机敌方角立即死亡,然后结束出牌阶段',
|
gw_ansha_info:'令一名体力为1的随机敌方角立即死亡,然后结束出牌阶段。',
|
||||||
gw_shizizhaohuan:'十字召唤',
|
gw_shizizhaohuan:'十字召唤',
|
||||||
gw_shizizhaohuan_info:'从牌堆中获得一张杀以及决斗、火攻、火烧连营、南蛮入侵四张牌中的随机一张',
|
gw_shizizhaohuan_info:'从牌堆中获得一张杀以及决斗、火攻、火烧连营、南蛮入侵四张牌中的随机一张。',
|
||||||
gw_zuihouyuanwang:'最后愿望',
|
gw_zuihouyuanwang:'最后愿望',
|
||||||
gw_zuihouyuanwang_info:'摸X张牌并弃置X张牌,X为存活角色数',
|
gw_zuihouyuanwang_info:'摸X张牌并弃置X张牌,X为存活角色数。',
|
||||||
gw_zirankuizeng:'自然馈赠',
|
gw_zirankuizeng:'自然馈赠',
|
||||||
gw_zirankuizeng_info:'选择任意一张铜卡法术使用',
|
gw_zirankuizeng_info:'选择任意一张铜卡法术使用。',
|
||||||
gw_poxiao:'破晓',
|
gw_poxiao:'破晓',
|
||||||
gw_poxiao_info:'选择一项:解除任意名角色的天气效果并移除其判定区内的牌,或随机获得一张铜卡法术(破晓除外)并展示之',
|
gw_poxiao_info:'选择一项:解除任意名角色的天气效果并移除其判定区内的牌,或随机获得一张铜卡法术(破晓除外)并展示之。',
|
||||||
gw_zumoshoukao:'阻魔手铐',
|
gw_zumoshoukao:'阻魔手铐',
|
||||||
gw_zumoshoukao_info:'令一名角色非锁定技失效直到下一回合结束',
|
gw_zumoshoukao_info:'令一名角色非锁定技失效直到下一回合结束。',
|
||||||
gw_aozuzhilei:'奥祖之雷',
|
gw_aozuzhilei:'奥祖之雷',
|
||||||
gw_aozuzhilei_info:'对一名体力值不小于你的角色造成1点雷属性伤害,然后该角色摸一张牌',
|
gw_aozuzhilei_info:'对一名体力值不小于你的角色造成1点雷属性伤害,然后该角色摸一张牌。',
|
||||||
gw_zhuoshao:'灼烧',
|
gw_zhuoshao:'灼烧',
|
||||||
gw_zhuoshao_info:'对任意名体力值为全场最高的角色使用,造成1点火属性伤害',
|
gw_zhuoshao_info:'对任意名体力值为全场最高的角色使用,造成1点火属性伤害。',
|
||||||
gw_fuyuan:'复原',
|
gw_fuyuan:'复原',
|
||||||
gw_fuyuan_info:'对一名濒死状态角色使用,目标回复1点体力并摸一张牌',
|
gw_fuyuan_info:'对一名濒死状态角色使用,目标回复1点体力并摸一张牌。',
|
||||||
gw_youer:'诱饵',
|
gw_youer:'诱饵',
|
||||||
gw_youer_bg:'饵',
|
gw_youer_bg:'饵',
|
||||||
gw_youer_info:'将一名其他角色的所有手牌移出游戏,然后摸一张牌,当前回合结束后该角色将以此法失去的牌收回手牌',
|
gw_youer_info:'将一名其他角色的所有手牌移出游戏,然后摸一张牌,当前回合结束后该角色将以此法失去的牌收回手牌。',
|
||||||
gw_tongdi:'通敌',
|
gw_tongdi:'通敌',
|
||||||
gw_tongdi_info:'观看一名其他角色的手牌并获得其中一张,然后令目标获得一张杀',
|
gw_tongdi_info:'观看一名其他角色的手牌并获得其中一张,然后令目标获得一张杀。',
|
||||||
gw_baoxueyaoshui:'暴雪药水',
|
gw_baoxueyaoshui:'暴雪药水',
|
||||||
gw_baoxueyaoshui_info:'令一名角色弃置两张手牌并摸一张牌',
|
gw_baoxueyaoshui_info:'令一名角色弃置两张手牌并摸一张牌。',
|
||||||
gw_birinongwu:'蔽日浓雾',
|
gw_birinongwu:'蔽日浓雾',
|
||||||
gw_birinongwu_bg:'雾',
|
gw_birinongwu_bg:'雾',
|
||||||
gw_birinongwu_info:'天气牌,出牌阶段对一名角色及其相邻角色使用,目标不能使用杀直到下一个出牌阶段结束',
|
gw_birinongwu_info:'天气牌,出牌阶段对一名角色及其相邻角色使用,目标不能使用杀直到下一个出牌阶段结束。',
|
||||||
gw_qinpendayu:'倾盆大雨',
|
gw_qinpendayu:'倾盆大雨',
|
||||||
gw_qinpendayu_bg:'雨',
|
gw_qinpendayu_bg:'雨',
|
||||||
gw_qinpendayu_info:'天气牌,出牌阶段对一名角色及其相邻角色使用,目标手牌上限-1直到下一个弃牌阶段结束',
|
gw_qinpendayu_info:'天气牌,出牌阶段对一名角色及其相邻角色使用,目标手牌上限-1直到下一个弃牌阶段结束。',
|
||||||
gw_ciguhanshuang:'刺骨寒霜',
|
gw_ciguhanshuang:'刺骨寒霜',
|
||||||
gw_ciguhanshuang_bg:'霜',
|
gw_ciguhanshuang_bg:'霜',
|
||||||
gw_ciguhanshuang_info:'天气牌,出牌阶段对一名角色及其相邻角色使用,目标下个摸牌阶段摸牌数-1',
|
gw_ciguhanshuang_info:'天气牌,出牌阶段对一名角色及其相邻角色使用,目标下个摸牌阶段摸牌数-1。',
|
||||||
gw_wenyi:'瘟疫',
|
gw_wenyi:'瘟疫',
|
||||||
gw_wenyi_info:'令所有体力值为全场最少的角色随机弃置一张手牌;若没有手牌,改为失去1点体力',
|
gw_wenyi_info:'令所有体力值为全场最少的角色随机弃置一张手牌;若没有手牌,改为失去1点体力。',
|
||||||
gw_yanziyaoshui:'燕子药水',
|
gw_yanziyaoshui:'燕子药水',
|
||||||
gw_yanziyaoshui_info:'令一名角色摸一张牌,若其手牌数为全场最少或之一,改为摸两张',
|
gw_yanziyaoshui_info:'令一名角色摸一张牌,若其手牌数为全场最少或之一,改为摸两张。',
|
||||||
gw_shanbengshu:'山崩术',
|
gw_shanbengshu:'山崩术',
|
||||||
gw_shanbengshu_info:'出牌阶段对自己使用,随机弃置两件敌方角色场上的装备',
|
gw_shanbengshu_info:'出牌阶段对自己使用,随机弃置两件敌方角色场上的装备。',
|
||||||
gw_kunenfayin:'昆恩法印',
|
gw_kunenfayin:'昆恩法印',
|
||||||
gw_kunenfayin_info:'出牌阶段对一名角色使用,目标防止所有非属性伤害,持续X个角色的回合(X为存活角色数且最多为5)',
|
gw_kunenfayin_info:'出牌阶段对一名角色使用,目标防止所有非属性伤害,持续X个角色的回合(X为存活角色数且最多为5)。',
|
||||||
},
|
},
|
||||||
cardType:{
|
cardType:{
|
||||||
spell:0.5,
|
spell:0.5,
|
||||||
|
|
|
@ -690,33 +690,33 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
translate:{
|
translate:{
|
||||||
linghunzhihuo:'灵魂之火',
|
linghunzhihuo:'灵魂之火',
|
||||||
linghunzhihuo_info:'对一名角色造成1点火焰伤害,然后随机弃置一张手牌',
|
linghunzhihuo_info:'对一名角色造成1点火焰伤害,然后随机弃置一张手牌。',
|
||||||
shenenshu:'神恩术',
|
shenenshu:'神恩术',
|
||||||
shenenshu_info:'出牌阶段对自己使用,将所有手牌(含此张)替换为基本牌',
|
shenenshu_info:'出牌阶段对自己使用,将所有手牌(含此张)替换为基本牌。',
|
||||||
zhiliaobo:'治疗波',
|
zhiliaobo:'治疗波',
|
||||||
zhiliaobo_info:'出牌阶段对一名受伤角色使用,目标进行一次判定,若结果为红色,则回复1点体力,否则获得1点护甲',
|
zhiliaobo_info:'出牌阶段对一名受伤角色使用,目标进行一次判定,若结果为红色,则回复1点体力,否则获得1点护甲。',
|
||||||
yuansuhuimie:'元素毁灭',
|
yuansuhuimie:'元素毁灭',
|
||||||
yuansuhuimie_info:'对所有角色使用,令目标弃置0~2张牌,并受到2-X点雷电伤害,X为其弃置的手牌数',
|
yuansuhuimie_info:'对所有角色使用,令目标弃置0~2张牌,并受到2-X点雷电伤害,X为其弃置的手牌数。',
|
||||||
xingjiegoutong:'星界沟通',
|
xingjiegoutong:'星界沟通',
|
||||||
xingjiegoutong_info:'增加1点体力上限并回复1点体力,弃置你的所有手牌',
|
xingjiegoutong_info:'增加1点体力上限并回复1点体力,弃置你的所有手牌。',
|
||||||
tanshezhiren:'弹射之刃',
|
tanshezhiren:'弹射之刃',
|
||||||
tanshezhiren_info:'出牌阶段对自己使用,依次按敌方-友方-敌方-的顺序随机弃置阵营内一名随机角色的一张牌(目标不包含你),共结算X次,X为存活角色数,若X为偶数,改为X-1',
|
tanshezhiren_info:'出牌阶段对自己使用,依次按敌方-友方-敌方-的顺序随机弃置阵营内一名随机角色的一张牌(目标不包含你),共结算X次,X为存活角色数,若X为偶数,改为X-1。',
|
||||||
chuansongmen:'传送门',
|
chuansongmen:'传送门',
|
||||||
chuansongmen_info:'摸一张牌并展示,若发生在出牌阶段,你可以立即使用摸到的牌,若如此做,你将传送门收回手牌(每阶段最多收回2张传送门)',
|
chuansongmen_info:'摸一张牌并展示,若发生在出牌阶段,你可以立即使用摸到的牌,若如此做,你将传送门收回手牌(每阶段最多收回2张传送门)。',
|
||||||
dunpaigedang:'盾牌格挡',
|
dunpaigedang:'盾牌格挡',
|
||||||
dunpaigedang_info:'获得1点护甲值,摸一张牌,然后弃置一张牌',
|
dunpaigedang_info:'获得1点护甲值,摸一张牌,然后弃置一张牌。',
|
||||||
siwangchanrao:'死亡缠绕',
|
siwangchanrao:'死亡缠绕',
|
||||||
siwangchanrao_infox:'弃置一名其他角色的一张手牌,若其此时没有手牌,则你摸一张牌',
|
siwangchanrao_infox:'弃置一名其他角色的一张手牌,若其此时没有手牌,则你摸一张牌。',
|
||||||
shihuawuqi:'石化武器',
|
shihuawuqi:'石化武器',
|
||||||
shihuawuqi_infox:'本回合内攻击范围+1;若你手牌中没有杀,则从牌堆中获得一张杀',
|
shihuawuqi_infox:'本回合内攻击范围+1;若你手牌中没有杀,则从牌堆中获得一张杀。',
|
||||||
shandianjian:'闪电箭',
|
shandianjian:'闪电箭',
|
||||||
shandianjian_info:'目标角色展示一张手牌,然后若你能弃掉一张与所展示牌相同花色的手牌,则对该角色造成1点雷电伤害。',
|
shandianjian_info:'目标角色展示一张手牌,然后若你能弃掉一张与所展示牌相同花色的手牌,则对该角色造成1点雷电伤害。',
|
||||||
shijieshu:'视界术',
|
shijieshu:'视界术',
|
||||||
shijieshu_info:'目标从牌堆或弃牌堆中随机装备两张类别不同的装备牌,然后弃置一张牌',
|
shijieshu_info:'目标从牌堆或弃牌堆中随机装备两张类别不同的装备牌,然后弃置一张牌。',
|
||||||
zhaomingdan:'照明弹',
|
zhaomingdan:'照明弹',
|
||||||
zhaomingdan_info:'观看一名其他角色的手牌,并弃置其区域内的一张牌,然后其与你各摸一张牌',
|
zhaomingdan_info:'观看一名其他角色的手牌,并弃置其区域内的一张牌,然后其与你各摸一张牌。',
|
||||||
jihuocard:'激活',
|
jihuocard:'激活',
|
||||||
jihuocard_info:'摸一张牌,本回合手牌上限+2',
|
jihuocard_info:'摸一张牌,本回合手牌上限+2。',
|
||||||
},
|
},
|
||||||
list:[
|
list:[
|
||||||
['heart',2,'shenenshu'],
|
['heart',2,'shenenshu'],
|
||||||
|
|
|
@ -197,6 +197,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
return lib.card.shandian.ai.result.target(player,target);
|
return lib.card.shandian.ai.result.target(player,target);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
tag:{
|
||||||
|
damage:0.25,
|
||||||
|
natureDamage:0.25,
|
||||||
|
thunderDamage:0.25,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
qibaodao:{
|
qibaodao:{
|
||||||
|
|
|
@ -14,6 +14,16 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
draw:{
|
||||||
|
ai:{
|
||||||
|
result:{
|
||||||
|
target:1
|
||||||
|
},
|
||||||
|
tag:{
|
||||||
|
draw:1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
losehp:{
|
losehp:{
|
||||||
ai:{
|
ai:{
|
||||||
result:{
|
result:{
|
||||||
|
@ -138,25 +148,18 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
next.set('prompt2','(在此之后仍需弃置一张手牌)');
|
next.set('prompt2','(在此之后仍需弃置一张手牌)');
|
||||||
}
|
}
|
||||||
next.set('ai1',function(card){
|
next.set('ai1',function(card){
|
||||||
var target=_status.event.player;
|
if(_status.event.useShan) return get.order(card);
|
||||||
var evt=_status.event.getParent();
|
|
||||||
var bool=true;
|
|
||||||
if(_status.event.shanRequired>1&&!get.is.object(card)&&target.countCards('h','shan')<_status.event.shanRequired-(_status.event.shanIgnored||0)){
|
|
||||||
bool=false;
|
|
||||||
}
|
|
||||||
else if(target.hasSkillTag('useShan')){
|
|
||||||
bool=true;
|
|
||||||
}
|
|
||||||
else if(target.hasSkillTag('noShan')){
|
|
||||||
bool=false;
|
|
||||||
}
|
|
||||||
else if(get.damageEffect(target,evt.player,target,evt.card.nature)>=0) bool=false;
|
|
||||||
if(bool){
|
|
||||||
return get.order(card);
|
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}).set('shanRequired',event.shanRequired);
|
}).set('shanRequired',event.shanRequired);
|
||||||
next.set('respondTo',[player,card]);
|
next.set('respondTo',[player,card]);
|
||||||
|
next.set('useShan',(()=>{
|
||||||
|
if(target.hasSkillTag('noShan',null,event)) return false;
|
||||||
|
if(target.hasSkillTag('useShan',null,event)) return true;
|
||||||
|
if(event.baseDamage+event.extraDamage<=0 || get.attitude(target,player._trueMe||player)>0) bool=false;
|
||||||
|
if(event.shanRequired>1&&target.countCards('h','shan')<event.shanRequired-(event.shanIgnored||0)) return false;
|
||||||
|
if(get.damageEffect(target,player,target,get.nature(event.card))>=0) return false;
|
||||||
|
return true;
|
||||||
|
})());
|
||||||
//next.autochoose=lib.filter.autoRespondShan;
|
//next.autochoose=lib.filter.autoRespondShan;
|
||||||
}
|
}
|
||||||
"step 2"
|
"step 2"
|
||||||
|
@ -228,7 +231,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
if(get.cardtag(card,'yingbian_hit')){
|
if(get.cardtag(card,'yingbian_hit')){
|
||||||
hit=true;
|
hit=true;
|
||||||
if(targets.some(target=>{
|
if(targets.some(target=>{
|
||||||
return target.mayHaveShan(viewer)&&get.attitude(viewer,target)<0&&get.damageEffect(target,player,viewer,get.natureList(card))>0;
|
return target.mayHaveShan(viewer,'use')&&get.attitude(viewer,target)<0&&get.damageEffect(target,player,viewer,get.natureList(card))>0;
|
||||||
})) base+=5;
|
})) base+=5;
|
||||||
}
|
}
|
||||||
if(get.cardtag(card,'yingbian_add')){
|
if(get.cardtag(card,'yingbian_add')){
|
||||||
|
@ -238,7 +241,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
if(get.cardtag(card,'yingbian_damage')){
|
if(get.cardtag(card,'yingbian_damage')){
|
||||||
if(targets.some(target=>{
|
if(targets.some(target=>{
|
||||||
return get.attitude(player,target)<0&&(hit||!target.mayHaveShan(viewer)||player.hasSkillTag('directHit_ai',true,{
|
return get.attitude(player,target)<0&&(hit||!target.mayHaveShan(viewer,'use')||player.hasSkillTag('directHit_ai',true,{
|
||||||
target:target,
|
target:target,
|
||||||
card:card,
|
card:card,
|
||||||
},true))&&!target.hasSkillTag('filterDamage',null,{
|
},true))&&!target.hasSkillTag('filterDamage',null,{
|
||||||
|
@ -252,10 +255,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
canLink:function(player,target,card){
|
canLink:function(player,target,card){
|
||||||
if(!target.isLinked()&&!player.hasSkill('wutiesuolian_skill')) return false;
|
if(!target.isLinked()&&!player.hasSkill('wutiesuolian_skill')) return false;
|
||||||
if(target.mayHaveShan()&&!player.hasSkillTag('directHit_ai',true,{
|
|
||||||
target:target,
|
|
||||||
card:card,
|
|
||||||
},true)) return false;
|
|
||||||
if(player.hasSkill('jueqing')||player.hasSkill('gangzhi')||target.hasSkill('gangzhi')) return false;
|
if(player.hasSkill('jueqing')||player.hasSkill('gangzhi')||target.hasSkill('gangzhi')) return false;
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
|
@ -265,7 +264,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
order:function(item,player){
|
order:function(item,player){
|
||||||
if(player.hasSkillTag('presha',true,null,true)) return 10;
|
if(player.hasSkillTag('presha',true,null,true)) return 10;
|
||||||
if(game.hasNature(item,'linked')){
|
if(typeof item==='object'&&game.hasNature(item,'linked')){
|
||||||
if(game.hasPlayer(function(current){
|
if(game.hasPlayer(function(current){
|
||||||
return current!=player&¤t.isLinked()&&player.canUse(item,current,null,true)&&get.effect(current,item,player,player)>0&&lib.card.sha.ai.canLink(player,current,item);
|
return current!=player&¤t.isLinked()&&player.canUse(item,current,null,true)&&get.effect(current,item,player,player)>0&&lib.card.sha.ai.canLink(player,current,item);
|
||||||
})&&game.countPlayer(function(current){
|
})&&game.countPlayer(function(current){
|
||||||
|
@ -295,7 +294,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
return -1.5;
|
return -1.5;
|
||||||
}();
|
}();
|
||||||
if(!isLink&&target.mayHaveShan()&&!player.hasSkillTag('directHit_ai',true,{
|
if(!isLink&&target.mayHaveShan(player,'use')&&!player.hasSkillTag('directHit_ai',true,{
|
||||||
target:target,
|
target:target,
|
||||||
card:card,
|
card:card,
|
||||||
},true)) return eff/1.2;
|
},true)) return eff/1.2;
|
||||||
|
@ -457,7 +456,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
if(target.hp>0){
|
if(target.hp>0){
|
||||||
if(!player.isPhaseUsing()) return 0;
|
if(!player.isPhaseUsing()) return 0;
|
||||||
let min = 7.2-4*player.hp/player.maxHp,
|
let min = 7.2-4*player.hp/player.maxHp,
|
||||||
nd = player.needsToDiscard(-player.countCards('h',i=>!taos.includes(i)&&get.value(i)<min)),
|
nd = player.needsToDiscard(0,(i,player)=>{
|
||||||
|
return !player.canIgnoreHandcard(i)&&(taos.includes(i)||get.value(i)>=min);
|
||||||
|
}),
|
||||||
keep = nd?0:2;
|
keep = nd?0:2;
|
||||||
if(nd>2 || taos.length>1&&(nd>1||nd&&player.hp<1+taos.length) || target.identity==='zhu'&&(nd||target.hp<3)&&(mode==='identity'||mode==='versus'||mode==='chess') || !player.hasFriend()) return 2;
|
if(nd>2 || taos.length>1&&(nd>1||nd&&player.hp<1+taos.length) || target.identity==='zhu'&&(nd||target.hp<3)&&(mode==='identity'||mode==='versus'||mode==='chess') || !player.hasFriend()) return 2;
|
||||||
if(game.hasPlayer(current=>{
|
if(game.hasPlayer(current=>{
|
||||||
|
@ -1232,10 +1233,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
event._result={};
|
event._result={};
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
wuxie:function(target,card,player,viewer){
|
wuxie:function(target,card,player,viewer,status){
|
||||||
if(player==game.me&&get.attitude(viewer,player)>0){
|
if(player===game.me&&get.attitude(viewer,player._trueMe||player)>0) return 0;
|
||||||
return 0;
|
if(status*get.attitude(viewer,target)*get.effect(target,card,player,target)>=0) return 0;
|
||||||
}
|
|
||||||
},
|
},
|
||||||
basic:{
|
basic:{
|
||||||
order:5,
|
order:5,
|
||||||
|
@ -1299,9 +1299,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
wuxie:function(target,card,player,viewer){
|
wuxie:function(target,card,player,viewer){
|
||||||
if(get.attitude(viewer,player)>0&&get.attitude(viewer,target)>0){
|
if(get.attitude(viewer,player._trueMe||player)>0) return 0;
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
basic:{
|
basic:{
|
||||||
order:7.5,
|
order:7.5,
|
||||||
|
@ -1578,7 +1576,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
wuxie:(target,card,player,viewer,status)=>{
|
wuxie:(target,card,player,viewer,status)=>{
|
||||||
if(status*get.attitude(viewer,player)>0&&!player.isMad() || target.hp>2&&!target.hasCard(i=>{
|
if(status*get.attitude(viewer,player._trueMe||player)>0 || target.hp>2&&!target.hasCard(i=>{
|
||||||
let val=get.value(i,target),subtypes=get.subtypes(i);
|
let val=get.value(i,target),subtypes=get.subtypes(i);
|
||||||
if(val<8&&target.hp<2&&!subtypes.includes('equip2')&&!subtypes.includes('equip5')) return false;
|
if(val<8&&target.hp<2&&!subtypes.includes('equip2')&&!subtypes.includes('equip5')) return false;
|
||||||
return val>3+Math.min(5,target.hp);
|
return val>3+Math.min(5,target.hp);
|
||||||
|
@ -1828,9 +1826,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
wuxie:function(target,card,player,viewer){
|
wuxie:function(target,card,player,viewer){
|
||||||
if(player==game.me&&get.attitude(viewer,player)>0){
|
if(player==game.me&&get.attitude(viewer,player._trueMe||player)>0) return 0;
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
basic:{
|
basic:{
|
||||||
order:8,
|
order:8,
|
||||||
|
@ -1844,12 +1840,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
return num+get.value(i,player);
|
return num+get.value(i,player);
|
||||||
},0);
|
},0);
|
||||||
},
|
},
|
||||||
target:(player,target)=>{
|
target:(player,target,card)=>{
|
||||||
let targets=get.copy(ui.selected.targets);
|
let targets=get.copy(ui.selected.targets);
|
||||||
if(_status.event.preTarget) targets.add(_status.event.preTarget);
|
if(_status.event.preTarget) targets.add(_status.event.preTarget);
|
||||||
if(targets.length){
|
if(targets.length){
|
||||||
let preTarget=targets.lastItem,pre=_status.event.getTempCache('jiedao_result',preTarget);
|
let preTarget=targets.lastItem,pre=_status.event.getTempCache('jiedao_result',preTarget.playerid);
|
||||||
if(pre&&pre.target.isIn()) return target===pre.target?pre.eff:0;
|
if(pre&&pre.card===card&&pre.target.isIn()) return target===pre.target?pre.eff:0;
|
||||||
return get.effect(target,{name:'sha'},preTarget,player)/get.attitude(player,target);
|
return get.effect(target,{name:'sha'},preTarget,player)/get.attitude(player,target);
|
||||||
}
|
}
|
||||||
let arms=(target.hasSkillTag('noe')?0.32:-0.15)*target.getEquips(1).reduce((num,i)=>{
|
let arms=(target.hasSkillTag('noe')?0.32:-0.15)*target.getEquips(1).reduce((num,i)=>{
|
||||||
|
@ -1865,7 +1861,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
},-100);
|
},-100);
|
||||||
if(!addTar) return arms;
|
if(!addTar) return arms;
|
||||||
sha/=get.attitude(player,target);
|
sha/=get.attitude(player,target);
|
||||||
_status.event.putTempCache('jiedao_result',target,{
|
_status.event.putTempCache('jiedao_result',target.playerid,{
|
||||||
|
card:card,
|
||||||
target:addTar,
|
target:addTar,
|
||||||
eff:sha
|
eff:sha
|
||||||
});
|
});
|
||||||
|
@ -2040,7 +2037,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
result:{
|
result:{
|
||||||
target:function(player,target){
|
target:function(player,target){
|
||||||
var num=game.countPlayer(function(current){
|
var num=game.countPlayer(function(current){
|
||||||
var skills=current.getSkills();
|
//var skills=current.getSkills();
|
||||||
for(var j=0;j<current.skills.length;j++){
|
for(var j=0;j<current.skills.length;j++){
|
||||||
var rejudge=get.tag(current.skills[j],'rejudge',current);
|
var rejudge=get.tag(current.skills[j],'rejudge',current);
|
||||||
if(rejudge!=undefined){
|
if(rejudge!=undefined){
|
||||||
|
@ -2085,9 +2082,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
tag:{
|
tag:{
|
||||||
// damage:1,
|
damage:0.16,
|
||||||
// natureDamage:1,
|
natureDamage:0.16,
|
||||||
// thunderDamage:1,
|
thunderDamage:0.16,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
398
card/swd.js
|
@ -4952,340 +4952,340 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
g_hufu_sha:'符杀',
|
g_hufu_sha:'符杀',
|
||||||
g_hufu_shan:'符闪',
|
g_hufu_shan:'符闪',
|
||||||
g_hufu_jiu:'符酒',
|
g_hufu_jiu:'符酒',
|
||||||
hufu_info:'你可以将一张玉符当作杀、闪或酒使用或打出',
|
hufu_info:'你可以将一张玉符当作杀、闪或酒使用或打出。',
|
||||||
// yihuajiemu:'移花接木',
|
// yihuajiemu:'移花接木',
|
||||||
// yihuajiemu_info:'对一名装备区内有宝物的角色使用,将其宝物牌转移至另一名角色',
|
// yihuajiemu_info:'对一名装备区内有宝物的角色使用,将其宝物牌转移至另一名角色。',
|
||||||
liuxinghuoyu:'流星火羽',
|
liuxinghuoyu:'流星火羽',
|
||||||
liuxinghuoyu_info:'出牌阶段,对一名角色使用,令目标弃置两张牌,或受到1点火焰伤害',
|
liuxinghuoyu_info:'出牌阶段,对一名角色使用,令目标弃置两张牌,或受到1点火焰伤害。',
|
||||||
g_yuchan_equip:'玉蝉',
|
g_yuchan_equip:'玉蝉',
|
||||||
yuchanqian_duanzao:'玉蝉',
|
yuchanqian_duanzao:'玉蝉',
|
||||||
yuchanqian_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanqian_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanqian_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanqian_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanqian_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanqian_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanqian_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanqian_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanqian_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanqian_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchankun_duanzao:'玉蝉',
|
yuchankun_duanzao:'玉蝉',
|
||||||
yuchankun_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchankun_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchankun_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchankun_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchankun_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchankun_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchankun_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchankun_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchankun_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchankun_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanzhen_duanzao:'玉蝉',
|
yuchanzhen_duanzao:'玉蝉',
|
||||||
yuchanzhen_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanzhen_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanzhen_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanzhen_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanzhen_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanzhen_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanzhen_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanzhen_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanzhen_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanzhen_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanxun_duanzao:'玉蝉',
|
yuchanxun_duanzao:'玉蝉',
|
||||||
yuchanxun_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanxun_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanxun_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanxun_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanxun_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanxun_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanxun_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanxun_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanxun_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanxun_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchankan_duanzao:'玉蝉',
|
yuchankan_duanzao:'玉蝉',
|
||||||
yuchankan_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchankan_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchankan_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchankan_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchankan_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchankan_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchankan_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchankan_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchankan_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchankan_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanli_duanzao:'玉蝉',
|
yuchanli_duanzao:'玉蝉',
|
||||||
yuchanli_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanli_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanli_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanli_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanli_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanli_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanli_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanli_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanli_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchanli_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchangen_duanzao:'玉蝉',
|
yuchangen_duanzao:'玉蝉',
|
||||||
yuchangen_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchangen_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchangen_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchangen_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchangen_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchangen_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchangen_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchangen_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchangen_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchangen_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchandui_duanzao:'玉蝉',
|
yuchandui_duanzao:'玉蝉',
|
||||||
yuchandui_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchandui_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchandui_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchandui_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchandui_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchandui_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchandui_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchandui_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchandui_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌',
|
yuchandui_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌。',
|
||||||
yuchanqian:'乾玉蝉',
|
yuchanqian:'乾玉蝉',
|
||||||
yuchanqian_info:'在你行动时可当作杀使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态',
|
yuchanqian_info:'在你行动时可当作杀使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态。',
|
||||||
yuchankun:'坤玉蝉',
|
yuchankun:'坤玉蝉',
|
||||||
yuchankun_info:'在你行动时可当作草药使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态',
|
yuchankun_info:'在你行动时可当作草药使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态。',
|
||||||
yuchanzhen:'震玉蝉',
|
yuchanzhen:'震玉蝉',
|
||||||
yuchanzhen_info:'在你行动时可当作酒使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态',
|
yuchanzhen_info:'在你行动时可当作酒使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态。',
|
||||||
yuchanxun:'巽玉蝉',
|
yuchanxun:'巽玉蝉',
|
||||||
yuchanxun_info:'在你行动时可当作桃使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态',
|
yuchanxun_info:'在你行动时可当作桃使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态。',
|
||||||
yuchankan:'坎玉蝉',
|
yuchankan:'坎玉蝉',
|
||||||
yuchankan_info:'在你行动时可当作神秘果使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态',
|
yuchankan_info:'在你行动时可当作神秘果使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态。',
|
||||||
yuchanli:'离玉蝉',
|
yuchanli:'离玉蝉',
|
||||||
yuchanli_info:'在你行动时可当作天仙酒使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态',
|
yuchanli_info:'在你行动时可当作天仙酒使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态。',
|
||||||
yuchangen:'艮玉蝉',
|
yuchangen:'艮玉蝉',
|
||||||
yuchangen_info:'在你行动时可当作封印之蛋使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态',
|
yuchangen_info:'在你行动时可当作封印之蛋使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态。',
|
||||||
yuchandui:'兑玉蝉',
|
yuchandui:'兑玉蝉',
|
||||||
yuchandui_info:'在你行动时可当作雪肌冰鲍使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态',
|
yuchandui_info:'在你行动时可当作雪肌冰鲍使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态。',
|
||||||
yangpijuan:'羊皮卷',
|
yangpijuan:'羊皮卷',
|
||||||
yangpijuan_info:'出牌阶段对自己使用,选择一种卡牌类别,发现一张该类别的卡牌',
|
yangpijuan_info:'出牌阶段对自己使用,选择一种卡牌类别,发现一张该类别的卡牌。',
|
||||||
// pantao:'蟠桃',
|
// pantao:'蟠桃',
|
||||||
// pantao_info:'出牌阶段对自己使用,或对濒死角色使用,目标回复2点体力并获得1点护甲',
|
// pantao_info:'出牌阶段对自己使用,或对濒死角色使用,目标回复2点体力并获得1点护甲。',
|
||||||
shencaojie:'神草结',
|
shencaojie:'神草结',
|
||||||
shencaojie_info:'你的锦囊牌即将造成伤害时对目标使用,令此伤害+1;你即将受到锦囊牌伤害时对自己使用,令此伤害-1',
|
shencaojie_info:'你的锦囊牌即将造成伤害时对目标使用,令此伤害+1;你即将受到锦囊牌伤害时对自己使用,令此伤害-1。',
|
||||||
yuruyi:'玉如意',
|
yuruyi:'玉如意',
|
||||||
yuruyi_ab:'如意',
|
yuruyi_ab:'如意',
|
||||||
yuruyi_info:'你有更高的机率摸到好牌',
|
yuruyi_info:'你有更高的机率摸到好牌。',
|
||||||
fengyinzhidan:'封印之蛋',
|
fengyinzhidan:'封印之蛋',
|
||||||
fengyinzhidan_info:'随机使用两张普通锦囊牌(随机指定目标)',
|
fengyinzhidan_info:'随机使用两张普通锦囊牌(随机指定目标)。',
|
||||||
shuchui:'鼠槌',
|
shuchui:'鼠槌',
|
||||||
shuchui_info:'出牌阶段限一次,你可以指定一名攻击范围内的角色,依次将手牌中的至多3张杀对该角色使用,若杀造成了伤害,你摸一张牌',
|
shuchui_info:'出牌阶段限一次,你可以指定一名攻击范围内的角色,依次将手牌中的至多3张杀对该角色使用,若杀造成了伤害,你摸一张牌。',
|
||||||
zhiluxiaohu:'指路小狐',
|
zhiluxiaohu:'指路小狐',
|
||||||
zhiluxiaohu_info:'出牌阶段对自己使用,视为对一名随机敌方角色使用一张杀,若此杀造成伤害,你摸一张牌',
|
zhiluxiaohu_info:'出牌阶段对自己使用,视为对一名随机敌方角色使用一张杀,若此杀造成伤害,你摸一张牌。',
|
||||||
xuejibingbao:'雪肌冰鲍',
|
xuejibingbao:'雪肌冰鲍',
|
||||||
xuejibingbao_info:'出牌阶段对一名角色使用,该角色摸牌阶段摸牌数+1,持续2个回合',
|
xuejibingbao_info:'出牌阶段对一名角色使用,该角色摸牌阶段摸牌数+1,持续2个回合。',
|
||||||
gouhunluo:'勾魂锣',
|
gouhunluo:'勾魂锣',
|
||||||
gouhunluo_info:'出牌阶段对一名角色使用,在3轮后你的准备阶段令该角色失去1点体力并弃置所有手牌',
|
gouhunluo_info:'出牌阶段对一名角色使用,在3轮后你的准备阶段令该角色失去1点体力并弃置所有手牌。',
|
||||||
jiguan:'机关',
|
jiguan:'机关',
|
||||||
jiqi:'祭器',
|
jiqi:'祭器',
|
||||||
qinglongzhigui:'青龙之圭',
|
qinglongzhigui:'青龙之圭',
|
||||||
g_qinglongzhigui:'青龙之圭',
|
g_qinglongzhigui:'青龙之圭',
|
||||||
qinglongzhigui_info:'可用于煅造装备;此牌在你手牌中时,准备阶段,你摸两张牌然后弃置一张牌',
|
qinglongzhigui_info:'可用于煅造装备;此牌在你手牌中时,准备阶段,你摸两张牌然后弃置一张牌。',
|
||||||
qinglongzhigui_duanzao:'云屏',
|
qinglongzhigui_duanzao:'云屏',
|
||||||
qinglongzhigui_equip1_info:'结束阶段,你摸一张牌',
|
qinglongzhigui_equip1_info:'结束阶段,你摸一张牌。',
|
||||||
qinglongzhigui_equip2_info:'结束阶段,你摸一张牌',
|
qinglongzhigui_equip2_info:'结束阶段,你摸一张牌。',
|
||||||
qinglongzhigui_equip3_info:'结束阶段,你摸一张牌',
|
qinglongzhigui_equip3_info:'结束阶段,你摸一张牌。',
|
||||||
qinglongzhigui_equip4_info:'结束阶段,你摸一张牌',
|
qinglongzhigui_equip4_info:'结束阶段,你摸一张牌。',
|
||||||
qinglongzhigui_equip5_info:'结束阶段,你摸一张牌',
|
qinglongzhigui_equip5_info:'结束阶段,你摸一张牌。',
|
||||||
baishouzhihu:'白兽之琥',
|
baishouzhihu:'白兽之琥',
|
||||||
g_baishouzhihu:'白兽之琥',
|
g_baishouzhihu:'白兽之琥',
|
||||||
baishouzhihu_info:'可用于煅造装备;此牌在你手牌中时,每当你弃置卡牌,你可以弃置一名其他角色的一张随机牌',
|
baishouzhihu_info:'可用于煅造装备;此牌在你手牌中时,每当你弃置卡牌,你可以弃置一名其他角色的一张随机牌。',
|
||||||
baishouzhihu_duanzao:'风牙',
|
baishouzhihu_duanzao:'风牙',
|
||||||
baishouzhihu_equip1_info:'结束阶段,你可以弃置一名其他角色的一张随机牌',
|
baishouzhihu_equip1_info:'结束阶段,你可以弃置一名其他角色的一张随机牌。',
|
||||||
baishouzhihu_equip2_info:'结束阶段,你可以弃置一名其他角色的一张随机牌',
|
baishouzhihu_equip2_info:'结束阶段,你可以弃置一名其他角色的一张随机牌。',
|
||||||
baishouzhihu_equip3_info:'结束阶段,你可以弃置一名其他角色的一张随机牌',
|
baishouzhihu_equip3_info:'结束阶段,你可以弃置一名其他角色的一张随机牌。',
|
||||||
baishouzhihu_equip4_info:'结束阶段,你可以弃置一名其他角色的一张随机牌',
|
baishouzhihu_equip4_info:'结束阶段,你可以弃置一名其他角色的一张随机牌。',
|
||||||
baishouzhihu_equip5_info:'结束阶段,你可以弃置一名其他角色的一张随机牌',
|
baishouzhihu_equip5_info:'结束阶段,你可以弃置一名其他角色的一张随机牌。',
|
||||||
zhuquezhizhang:'朱雀之璋',
|
zhuquezhizhang:'朱雀之璋',
|
||||||
g_zhuquezhizhang:'朱雀之璋',
|
g_zhuquezhizhang:'朱雀之璋',
|
||||||
zhuquezhizhang_info:'可用于煅造装备;此牌在你手牌中时,每当你受到其他角色造成的伤害,你对伤害来源造成1点火属性伤害',
|
zhuquezhizhang_info:'可用于煅造装备;此牌在你手牌中时,每当你受到其他角色造成的伤害,你对伤害来源造成1点火属性伤害。',
|
||||||
zhuquezhizhang_duanzao:'炽翎',
|
zhuquezhizhang_duanzao:'炽翎',
|
||||||
zhuquezhizhang_equip1_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成1点火属性伤害',
|
zhuquezhizhang_equip1_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成1点火属性伤害。',
|
||||||
zhuquezhizhang_equip2_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成1点火属性伤害',
|
zhuquezhizhang_equip2_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成1点火属性伤害。',
|
||||||
zhuquezhizhang_equip3_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成1点火属性伤害',
|
zhuquezhizhang_equip3_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成1点火属性伤害。',
|
||||||
zhuquezhizhang_equip4_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成1点火属性伤害',
|
zhuquezhizhang_equip4_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成1点火属性伤害。',
|
||||||
zhuquezhizhang_equip5_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成1点火属性伤害',
|
zhuquezhizhang_equip5_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成1点火属性伤害。',
|
||||||
xuanwuzhihuang:'玄武之璜',
|
xuanwuzhihuang:'玄武之璜',
|
||||||
g_xuanwuzhihuang:'玄武之璜',
|
g_xuanwuzhihuang:'玄武之璜',
|
||||||
xuanwuzhihuang_duanzao:'寒晶',
|
xuanwuzhihuang_duanzao:'寒晶',
|
||||||
xuanwuzhihuang_info:'可用于煅造装备;此牌在你手牌中时,每当你造成伤害,你回复等量的体力',
|
xuanwuzhihuang_info:'可用于煅造装备;此牌在你手牌中时,每当你造成伤害,你回复等量的体力。',
|
||||||
xuanwuzhihuang_equip1_info:'结束阶段,你可以弃置一张红色牌并回复1点体力',
|
xuanwuzhihuang_equip1_info:'结束阶段,你可以弃置一张红色牌并回复1点体力。',
|
||||||
xuanwuzhihuang_equip2_info:'结束阶段,你可以弃置一张红色牌并回复1点体力',
|
xuanwuzhihuang_equip2_info:'结束阶段,你可以弃置一张红色牌并回复1点体力。',
|
||||||
xuanwuzhihuang_equip3_info:'结束阶段,你可以弃置一张红色牌并回复1点体力',
|
xuanwuzhihuang_equip3_info:'结束阶段,你可以弃置一张红色牌并回复1点体力。',
|
||||||
xuanwuzhihuang_equip4_info:'结束阶段,你可以弃置一张红色牌并回复1点体力',
|
xuanwuzhihuang_equip4_info:'结束阶段,你可以弃置一张红色牌并回复1点体力。',
|
||||||
xuanwuzhihuang_equip5_info:'结束阶段,你可以弃置一张红色牌并回复1点体力',
|
xuanwuzhihuang_equip5_info:'结束阶段,你可以弃置一张红色牌并回复1点体力。',
|
||||||
huanglinzhicong:'黄麟之琮',
|
huanglinzhicong:'黄麟之琮',
|
||||||
g_huanglinzhicong:'黄麟之琮',
|
g_huanglinzhicong:'黄麟之琮',
|
||||||
huanglinzhicong_duanzao:'玄甲',
|
huanglinzhicong_duanzao:'玄甲',
|
||||||
huanglinzhicong_info:'可用于煅造装备;此牌在你手牌中时,准备阶段,若你没有护甲,你获得1点护甲',
|
huanglinzhicong_info:'可用于煅造装备;此牌在你手牌中时,准备阶段,若你没有护甲,你获得1点护甲。',
|
||||||
huanglinzhicong_equip1_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得1点护甲',
|
huanglinzhicong_equip1_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得1点护甲。',
|
||||||
huanglinzhicong_equip2_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得1点护甲',
|
huanglinzhicong_equip2_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得1点护甲。',
|
||||||
huanglinzhicong_equip3_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得1点护甲',
|
huanglinzhicong_equip3_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得1点护甲。',
|
||||||
huanglinzhicong_equip4_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得1点护甲',
|
huanglinzhicong_equip4_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得1点护甲。',
|
||||||
huanglinzhicong_equip5_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得1点护甲',
|
huanglinzhicong_equip5_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得1点护甲。',
|
||||||
cangchizhibi:'苍螭之璧',
|
cangchizhibi:'苍螭之璧',
|
||||||
g_cangchizhibi:'苍螭之璧',
|
g_cangchizhibi:'苍螭之璧',
|
||||||
cangchizhibi_duanzao:'灵枢',
|
cangchizhibi_duanzao:'灵枢',
|
||||||
cangchizhibi_info:'可用于煅造装备;此牌在你手牌中时,准备阶段,你可以选择至多3名角色横置或重置之',
|
cangchizhibi_info:'可用于煅造装备;此牌在你手牌中时,准备阶段,你可以选择至多3名角色横置或重置之。',
|
||||||
cangchizhibi_equip1_info:'结束阶段,你可以横置或重置一名角色',
|
cangchizhibi_equip1_info:'结束阶段,你可以横置或重置一名角色。',
|
||||||
cangchizhibi_equip2_info:'结束阶段,你可以横置或重置一名角色',
|
cangchizhibi_equip2_info:'结束阶段,你可以横置或重置一名角色。',
|
||||||
cangchizhibi_equip3_info:'结束阶段,你可以横置或重置一名角色',
|
cangchizhibi_equip3_info:'结束阶段,你可以横置或重置一名角色。',
|
||||||
cangchizhibi_equip4_info:'结束阶段,你可以横置或重置一名角色',
|
cangchizhibi_equip4_info:'结束阶段,你可以横置或重置一名角色。',
|
||||||
cangchizhibi_equip5_info:'结束阶段,你可以横置或重置一名角色',
|
cangchizhibi_equip5_info:'结束阶段,你可以横置或重置一名角色。',
|
||||||
|
|
||||||
guisheqi:'龟蛇旗',
|
guisheqi:'龟蛇旗',
|
||||||
guisheqi_info:'出牌阶段对一名角色使用,目标获得1点护甲',
|
guisheqi_info:'出牌阶段对一名角色使用,目标获得1点护甲。',
|
||||||
jiguanfeng:'机关蜂',
|
jiguanfeng:'机关蜂',
|
||||||
jiguanfeng_info:'出牌阶段对一名其他角色使用,目标需打出一张闪,否则非锁定技失效直到下一回合开始,并受到1点伤害',
|
jiguanfeng_info:'出牌阶段对一名其他角色使用,目标需打出一张闪,否则非锁定技失效直到下一回合开始,并受到1点伤害。',
|
||||||
jiguanyuan:'机关鸢',
|
jiguanyuan:'机关鸢',
|
||||||
jiguanyuan_info:'出牌阶段对一名其他角色使用,你将此牌和一张其它牌置于一名其他角色的武将牌上,然后摸一张牌;该角色于下一结束阶段获得武将牌上的牌',
|
jiguanyuan_info:'出牌阶段对一名其他角色使用,你将此牌和一张其它牌置于一名其他角色的武将牌上,然后摸一张牌;该角色于下一结束阶段获得武将牌上的牌。',
|
||||||
jiguantong:'机关火筒',
|
jiguantong:'机关火筒',
|
||||||
jiguantong_ab:'火筒',
|
jiguantong_ab:'火筒',
|
||||||
jiguantong_info:'出牌阶段对所有其他角色使用,目标弃置一张手牌,或受到1点火焰伤害;若没有人选择受到伤害,使用者摸一张牌',
|
jiguantong_info:'出牌阶段对所有其他角色使用,目标弃置一张手牌,或受到1点火焰伤害;若没有人选择受到伤害,使用者摸一张牌。',
|
||||||
jiutiansuanchi:'九天算尺',
|
jiutiansuanchi:'九天算尺',
|
||||||
jiutiansuanchi_info:'每当你使用杀造成伤害,你可以弃置一张牌并展示受伤害角色的一张手牌,若此牌与你弃置的牌花色或点数相同,此杀的伤害+2',
|
jiutiansuanchi_info:'每当你使用杀造成伤害,你可以弃置一张牌并展示受伤害角色的一张手牌,若此牌与你弃置的牌花色或点数相同,此杀的伤害+2。',
|
||||||
shenmiguo:'神秘果',
|
shenmiguo:'神秘果',
|
||||||
shenmiguo_info:'出牌阶段内,当你使用一张基本牌或普通锦囊牌后使用,令此牌再结算一次。每阶段限用一次',
|
shenmiguo_info:'出牌阶段内,当你使用一张基本牌或普通锦囊牌后使用,令此牌再结算一次。每阶段限用一次。',
|
||||||
qinglianxindeng:'青莲心灯',
|
qinglianxindeng:'青莲心灯',
|
||||||
qinglianxindeng_info:'你防止锦囊牌造成的伤害',
|
qinglianxindeng_info:'你防止锦囊牌造成的伤害。',
|
||||||
hslingjian_xuanfengzhiren_duanzao:'风刃',
|
hslingjian_xuanfengzhiren_duanzao:'风刃',
|
||||||
hslingjian_xuanfengzhiren_duanzao2:'风',
|
hslingjian_xuanfengzhiren_duanzao2:'风',
|
||||||
hslingjian_xuanfengzhiren_equip1_info:'每当你用杀造成一次伤害,受伤害角色随机弃置一张牌',
|
hslingjian_xuanfengzhiren_equip1_info:'每当你用杀造成一次伤害,受伤害角色随机弃置一张牌。',
|
||||||
hslingjian_xuanfengzhiren_equip2_info:'每当你受到杀造成的伤害,伤害来源随机弃置一张牌',
|
hslingjian_xuanfengzhiren_equip2_info:'每当你受到杀造成的伤害,伤害来源随机弃置一张牌。',
|
||||||
hslingjian_xuanfengzhiren_equip3_info:'当你于回合外失去牌后,你本回合的防御距离+1',
|
hslingjian_xuanfengzhiren_equip3_info:'当你于回合外失去牌后,你本回合的防御距离+1。',
|
||||||
hslingjian_xuanfengzhiren_equip4_info:'当你于回合内失去牌后,你本回合的进攻距离+1',
|
hslingjian_xuanfengzhiren_equip4_info:'当你于回合内失去牌后,你本回合的进攻距离+1。',
|
||||||
hslingjian_xuanfengzhiren_equip5_info:'出牌阶段限一次,你可以弃置一张牌,然后随机弃置一名其他角色的一张牌',
|
hslingjian_xuanfengzhiren_equip5_info:'出牌阶段限一次,你可以弃置一张牌,然后随机弃置一名其他角色的一张牌。',
|
||||||
hslingjian_zhongxinghujia_duanzao:'重甲',
|
hslingjian_zhongxinghujia_duanzao:'重甲',
|
||||||
hslingjian_zhongxinghujia_duanzao2:'护',
|
hslingjian_zhongxinghujia_duanzao2:'护',
|
||||||
hslingjian_zhongxinghujia_equip1_info:'每当你用杀造成一次伤害,你可以随机装备一件防具牌',
|
hslingjian_zhongxinghujia_equip1_info:'每当你用杀造成一次伤害,你可以随机装备一件防具牌。',
|
||||||
hslingjian_zhongxinghujia_equip2_info:'每当你受到杀造成的伤害,你可以弃置伤害来源的防具牌',
|
hslingjian_zhongxinghujia_equip2_info:'每当你受到杀造成的伤害,你可以弃置伤害来源的防具牌。',
|
||||||
hslingjian_zhongxinghujia_equip3_info:'当你的装备区内有防具牌时,你的防御距离+1',
|
hslingjian_zhongxinghujia_equip3_info:'当你的装备区内有防具牌时,你的防御距离+1。',
|
||||||
hslingjian_zhongxinghujia_equip4_info:'当你的装备区内有防具牌时,你的进攻距离+1',
|
hslingjian_zhongxinghujia_equip4_info:'当你的装备区内有防具牌时,你的进攻距离+1。',
|
||||||
hslingjian_zhongxinghujia_equip5_info:'出牌阶段限一次,你可以弃置两张牌,然后令一名角色随机装备一件防具',
|
hslingjian_zhongxinghujia_equip5_info:'出牌阶段限一次,你可以弃置两张牌,然后令一名角色随机装备一件防具。',
|
||||||
hslingjian_jinjilengdong_duanzao:'冰冻',
|
hslingjian_jinjilengdong_duanzao:'冰冻',
|
||||||
hslingjian_jinjilengdong_duanzao2:'冰',
|
hslingjian_jinjilengdong_duanzao2:'冰',
|
||||||
hslingjian_jinjilengdong_equip1_info:'每当你用杀造成一次伤害,你可以令目标摸两张牌并翻面',
|
hslingjian_jinjilengdong_equip1_info:'每当你用杀造成一次伤害,你可以令目标摸两张牌并翻面。',
|
||||||
hslingjian_jinjilengdong_equip2_info:'每当你受到杀造成的伤害,你可以令伤害来源摸两张牌并翻面',
|
hslingjian_jinjilengdong_equip2_info:'每当你受到杀造成的伤害,你可以令伤害来源摸两张牌并翻面。',
|
||||||
hslingjian_jinjilengdong_equip3_info:'你的武将牌背面朝上时防御距离+2',
|
hslingjian_jinjilengdong_equip3_info:'你的武将牌背面朝上时防御距离+2。',
|
||||||
hslingjian_jinjilengdong_equip4_info:'你的武将牌背面朝上时进攻距离+2',
|
hslingjian_jinjilengdong_equip4_info:'你的武将牌背面朝上时进攻距离+2。',
|
||||||
hslingjian_jinjilengdong_equip5_info:'回合结束后,若你的武将牌正面朝上,你可以与一名武将牌正面朝上的其他角色同时翻面,然后各摸两张牌',
|
hslingjian_jinjilengdong_equip5_info:'回合结束后,若你的武将牌正面朝上,你可以与一名武将牌正面朝上的其他角色同时翻面,然后各摸两张牌。',
|
||||||
hslingjian_yinmilichang_duanzao:'隐力',
|
hslingjian_yinmilichang_duanzao:'隐力',
|
||||||
hslingjian_yinmilichang_duanzao2:'隐',
|
hslingjian_yinmilichang_duanzao2:'隐',
|
||||||
hslingjian_yinmilichang_equip1_info:'每当你用杀造成一次伤害,你可以令一名其他角色获得潜行直到其下一回合开始',
|
hslingjian_yinmilichang_equip1_info:'每当你用杀造成一次伤害,你可以令一名其他角色获得潜行直到其下一回合开始。',
|
||||||
hslingjian_yinmilichang_equip2_info:'每当你受到一次伤害,你本回合内获得潜行',
|
hslingjian_yinmilichang_equip2_info:'每当你受到一次伤害,你本回合内获得潜行。',
|
||||||
hslingjian_yinmilichang_equip3_info:'当你的体力值为1时,你的防御距离+1',
|
hslingjian_yinmilichang_equip3_info:'当你的体力值为1时,你的防御距离+1。',
|
||||||
hslingjian_yinmilichang_equip4_info:'当你的体力值为1时,你的进攻距离+1',
|
hslingjian_yinmilichang_equip4_info:'当你的体力值为1时,你的进攻距离+1。',
|
||||||
hslingjian_yinmilichang_equip5_info:'当你没有手牌时,你不能成为杀或决斗的目标',
|
hslingjian_yinmilichang_equip5_info:'当你没有手牌时,你不能成为杀或决斗的目标。',
|
||||||
hslingjian_xingtigaizao_duanzao:'移形',
|
hslingjian_xingtigaizao_duanzao:'移形',
|
||||||
hslingjian_xingtigaizao_duanzao2:'形',
|
hslingjian_xingtigaizao_duanzao2:'形',
|
||||||
hslingjian_xingtigaizao_equip1_info:'每当你用杀造成一次伤害,你摸一张牌',
|
hslingjian_xingtigaizao_equip1_info:'每当你用杀造成一次伤害,你摸一张牌。',
|
||||||
hslingjian_xingtigaizao_equip2_info:'每当你受到杀造成的伤害,你摸一张牌',
|
hslingjian_xingtigaizao_equip2_info:'每当你受到杀造成的伤害,你摸一张牌。',
|
||||||
hslingjian_xingtigaizao_equip3_info:'你的防御距离+1,进攻距离-1',
|
hslingjian_xingtigaizao_equip3_info:'你的防御距离+1,进攻距离-1。',
|
||||||
hslingjian_xingtigaizao_equip4_info:'你的防御距离-1,进攻距离+1',
|
hslingjian_xingtigaizao_equip4_info:'你的防御距离-1,进攻距离+1。',
|
||||||
hslingjian_xingtigaizao_equip5_info:'你于摸牌阶段额外摸一张牌;你的手牌上限-1',
|
hslingjian_xingtigaizao_equip5_info:'你于摸牌阶段额外摸一张牌;你的手牌上限-1。',
|
||||||
hslingjian_shengxiuhaojiao_duanzao:'号角',
|
hslingjian_shengxiuhaojiao_duanzao:'号角',
|
||||||
hslingjian_shengxiuhaojiao_duanzao2:'角',
|
hslingjian_shengxiuhaojiao_duanzao2:'角',
|
||||||
hslingjian_shengxiuhaojiao_equip1_info:'有嘲讽的角色不能闪避你的杀',
|
hslingjian_shengxiuhaojiao_equip1_info:'有嘲讽的角色不能闪避你的杀。',
|
||||||
hslingjian_shengxiuhaojiao_equip2_info:'有嘲讽的角色不能对你使用杀',
|
hslingjian_shengxiuhaojiao_equip2_info:'有嘲讽的角色不能对你使用杀。',
|
||||||
hslingjian_shengxiuhaojiao_equip3_info:'若你的手牌数大于你的体力值,你的防御距离+1',
|
hslingjian_shengxiuhaojiao_equip3_info:'若你的手牌数大于你的体力值,你的防御距离+1。',
|
||||||
hslingjian_shengxiuhaojiao_equip4_info:'若你的手牌数大于你的体力值,你的进攻距离+1',
|
hslingjian_shengxiuhaojiao_equip4_info:'若你的手牌数大于你的体力值,你的进攻距离+1。',
|
||||||
hslingjian_shengxiuhaojiao_equip5_info:'出牌阶段限一次,你可以弃置两张牌,然后令一名角色获得或解除嘲讽',
|
hslingjian_shengxiuhaojiao_equip5_info:'出牌阶段限一次,你可以弃置两张牌,然后令一名角色获得或解除嘲讽。',
|
||||||
hslingjian_shijianhuisu_duanzao:'回溯',
|
hslingjian_shijianhuisu_duanzao:'回溯',
|
||||||
hslingjian_shijianhuisu_duanzao2:'溯',
|
hslingjian_shijianhuisu_duanzao2:'溯',
|
||||||
hslingjian_shijianhuisu_equip1_info:'当你装备一张防具牌时,你摸一张牌',
|
hslingjian_shijianhuisu_equip1_info:'当你装备一张防具牌时,你摸一张牌。',
|
||||||
hslingjian_shijianhuisu_equip2_info:'当你装备一张武器牌时,你摸一张牌',
|
hslingjian_shijianhuisu_equip2_info:'当你装备一张武器牌时,你摸一张牌。',
|
||||||
hslingjian_shijianhuisu_equip3_info:'当你的装备区内没有其他牌时,你的防御距离+1',
|
hslingjian_shijianhuisu_equip3_info:'当你的装备区内没有其他牌时,你的防御距离+1。',
|
||||||
hslingjian_shijianhuisu_equip4_info:'当你的装备区内没有其他牌时,你的进攻距离+1',
|
hslingjian_shijianhuisu_equip4_info:'当你的装备区内没有其他牌时,你的进攻距离+1。',
|
||||||
hslingjian_shijianhuisu_equip5_info:'出牌阶段限一次,你可以弃置一张牌,然后令一名其他角色将其装备区内的牌收回手牌',
|
hslingjian_shijianhuisu_equip5_info:'出牌阶段限一次,你可以弃置一张牌,然后令一名其他角色将其装备区内的牌收回手牌。',
|
||||||
_lingjianduanzao:'煅造',
|
_lingjianduanzao:'煅造',
|
||||||
_lingjianduanzao_info:'出牌阶段,你可以将一张装备牌和一张可煅造的牌合成为一件强化装备,并装备给距离1以内的一名角色',
|
_lingjianduanzao_info:'出牌阶段,你可以将一张装备牌和一张可煅造的牌合成为一件强化装备,并装备给距离1以内的一名角色。',
|
||||||
jiguanshu:'机关鼠',
|
jiguanshu:'机关鼠',
|
||||||
jiguanshu_info:'出牌阶段对自己使用,用随机祭器强化装备区内的一张随机装备,然后用随机零件强化其余的装备',
|
jiguanshu_info:'出牌阶段对自己使用,用随机祭器强化装备区内的一张随机装备,然后用随机零件强化其余的装备。',
|
||||||
lingjiandai:'零件袋',
|
lingjiandai:'零件袋',
|
||||||
lingjiandai_info:'出牌阶段对自己使用,获得3张随机零件',
|
lingjiandai_info:'出牌阶段对自己使用,获得3张随机零件。',
|
||||||
mujiaren:'木甲人',
|
mujiaren:'木甲人',
|
||||||
mujiaren_info:'出牌阶段限用一次,将你手牌中的非基本牌(含此张)替换为随机的机关牌',
|
mujiaren_info:'出牌阶段限用一次,将你手牌中的非基本牌(含此张)替换为随机的机关牌。',
|
||||||
jiguanyaoshu:'机关要术',
|
jiguanyaoshu:'机关要术',
|
||||||
jiguanyaoshu_skill:'巧匠',
|
jiguanyaoshu_skill:'巧匠',
|
||||||
jiguanyaoshu_skill_info:'每当你于回合外失去装备区内的牌,你获得一个随机零件',
|
jiguanyaoshu_skill_info:'每当你于回合外失去装备区内的牌,你获得一个随机零件。',
|
||||||
jiguanyaoshu_info:'出牌阶段对距离1以内的一名角色使用,目标随机装备一件装备牌并获得技能巧匠(每当你于回合外失去装备区内的牌,你获得一个随机零件)',
|
jiguanyaoshu_info:'出牌阶段对距离1以内的一名角色使用,目标随机装备一件装备牌并获得技能巧匠(每当你于回合外失去装备区内的牌,你获得一个随机零件)。',
|
||||||
hslingjian:'零件',
|
hslingjian:'零件',
|
||||||
hslingjian_xuanfengzhiren:'旋风之刃',
|
hslingjian_xuanfengzhiren:'旋风之刃',
|
||||||
hslingjian_xuanfengzhiren_info:'可用于煅造装备;随机弃置一名角色的一张牌',
|
hslingjian_xuanfengzhiren_info:'可用于煅造装备;随机弃置一名角色的一张牌。',
|
||||||
hslingjian_zhongxinghujia:'重型护甲',
|
hslingjian_zhongxinghujia:'重型护甲',
|
||||||
hslingjian_zhongxinghujia_info:'可用于煅造装备;令一名角色装备一件随机防具,然后随机弃置其一张手牌',
|
hslingjian_zhongxinghujia_info:'可用于煅造装备;令一名角色装备一件随机防具,然后随机弃置其一张手牌。',
|
||||||
hslingjian_jinjilengdong:'紧急冷冻',
|
hslingjian_jinjilengdong:'紧急冷冻',
|
||||||
hslingjian_jinjilengdong_bg:'冻',
|
hslingjian_jinjilengdong_bg:'冻',
|
||||||
hslingjian_jinjilengdong_info:'可用于煅造装备;令一名武将牌正面朝上的其他角色获得2点护甲并翻面,该角色不能使用卡牌,也不能成为卡牌的目标直到武将牌翻回正面',
|
hslingjian_jinjilengdong_info:'可用于煅造装备;令一名武将牌正面朝上的其他角色获得2点护甲并翻面,该角色不能使用卡牌,也不能成为卡牌的目标直到武将牌翻回正面。',
|
||||||
hslingjian_yinmilichang:'隐秘力场',
|
hslingjian_yinmilichang:'隐秘力场',
|
||||||
hslingjian_yinmilichang_info:'可用于煅造装备;令一名其他角色获得技能潜行,直到其下一回合开始',
|
hslingjian_yinmilichang_info:'可用于煅造装备;令一名其他角色获得技能潜行,直到其下一回合开始。',
|
||||||
hslingjian_xingtigaizao:'型体改造',
|
hslingjian_xingtigaizao:'型体改造',
|
||||||
hslingjian_xingtigaizao_info:'可用于煅造装备;摸一张牌,本回合手牌上限-1',
|
hslingjian_xingtigaizao_info:'可用于煅造装备;摸一张牌,本回合手牌上限-1。',
|
||||||
hslingjian_shengxiuhaojiao:'生锈号角',
|
hslingjian_shengxiuhaojiao:'生锈号角',
|
||||||
hslingjian_shengxiuhaojiao_info:'可用于煅造装备;令一名角色获得技能嘲讽,直到其下一回合开始',
|
hslingjian_shengxiuhaojiao_info:'可用于煅造装备;令一名角色获得技能嘲讽,直到其下一回合开始。',
|
||||||
hslingjian_shijianhuisu:'时间回溯',
|
hslingjian_shijianhuisu:'时间回溯',
|
||||||
hslingjian_shijianhuisu_info:'可用于煅造装备;令一名其他角色将其装备牌收回手牌',
|
hslingjian_shijianhuisu_info:'可用于煅造装备;令一名其他角色将其装备牌收回手牌。',
|
||||||
hslingjian_chaofeng:'嘲讽',
|
hslingjian_chaofeng:'嘲讽',
|
||||||
hslingjian_chaofeng_info:'锁定技,与你相邻的角色只能选择你为出杀目标',
|
hslingjian_chaofeng_info:'锁定技,与你相邻的角色只能选择你为出杀目标。',
|
||||||
qinglonglingzhu:'青龙灵珠',
|
qinglonglingzhu:'青龙灵珠',
|
||||||
qinglonglingzhu_ab:'灵珠',
|
qinglonglingzhu_ab:'灵珠',
|
||||||
qinglonglingzhu_info:'每当你造成一次属性伤害,你可以获得对方的一张牌',
|
qinglonglingzhu_info:'每当你造成一次属性伤害,你可以获得对方的一张牌。',
|
||||||
xingjunyan:'星君眼',
|
xingjunyan:'星君眼',
|
||||||
xingjunyan_info:'你的杀造成的伤害+1;杀对你造成的伤害+1',
|
xingjunyan_info:'你的杀造成的伤害+1;杀对你造成的伤害+1。',
|
||||||
guiyanfadao:'鬼眼法刀',
|
guiyanfadao:'鬼眼法刀',
|
||||||
guiyanfadao_bg:'眼',
|
guiyanfadao_bg:'眼',
|
||||||
guiyanfadao_info:'每当你使用杀命中目标,你可以防止伤害,改为令目标失去1点体力',
|
guiyanfadao_info:'每当你使用杀命中目标,你可以防止伤害,改为令目标失去1点体力。',
|
||||||
tianxianjiu:'天仙酒',
|
tianxianjiu:'天仙酒',
|
||||||
tianxianjiu_bg:'仙',
|
tianxianjiu_bg:'仙',
|
||||||
tianxianjiu_info:'出牌阶段对自己使用,你使用的下一张杀造成伤害后可以摸两张牌;濒死阶段,对自己使用,回复1点体力',
|
tianxianjiu_info:'出牌阶段对自己使用,你使用的下一张杀造成伤害后可以摸两张牌;濒死阶段,对自己使用,回复1点体力。',
|
||||||
// xiangyuye:'翔羽叶',
|
// xiangyuye:'翔羽叶',
|
||||||
// xiangyuye_info:'出牌阶段,对一名攻击范围外的角色使用,令其弃置一张黑色手牌或失去1点体力',
|
// xiangyuye_info:'出牌阶段,对一名攻击范围外的角色使用,令其弃置一张黑色手牌或失去1点体力。',
|
||||||
// huanpodan:'还魄丹',
|
// huanpodan:'还魄丹',
|
||||||
// huanpodan_bg:'魄',
|
// huanpodan_bg:'魄',
|
||||||
// huanpodan_info:'出牌阶段对一名角色使用,在目标即将死亡时防止其死亡,改为令其弃置所有牌,将体力值回复至1并摸一张牌',
|
// huanpodan_info:'出牌阶段对一名角色使用,在目标即将死亡时防止其死亡,改为令其弃置所有牌,将体力值回复至1并摸一张牌。',
|
||||||
// huanpodan_skill:'还魄丹',
|
// huanpodan_skill:'还魄丹',
|
||||||
// huanpodan_skill_bg:'丹',
|
// huanpodan_skill_bg:'丹',
|
||||||
// huanpodan_skill_info:'防止一次死亡,改为弃置所有牌,将体力值变为1并摸一张牌',
|
// huanpodan_skill_info:'防止一次死亡,改为弃置所有牌,将体力值变为1并摸一张牌。',
|
||||||
ximohu:'吸魔壶',
|
ximohu:'吸魔壶',
|
||||||
ximohu_bg:'魔',
|
ximohu_bg:'魔',
|
||||||
// ximohu_info:'锁定技,你将即将受到的雷属性伤害转化为你的体力值',
|
// ximohu_info:'锁定技,你将即将受到的雷属性伤害转化为你的体力值。',
|
||||||
sadengjinhuan:'萨登荆环',
|
sadengjinhuan:'萨登荆环',
|
||||||
sadengjinhuan_ab:'荆环',
|
sadengjinhuan_ab:'荆环',
|
||||||
sadengjinhuan_info:'当你的杀被闪避后,可以进行一次判定,若结果为红色目标需再打出一张闪',
|
sadengjinhuan_info:'当你的杀被闪避后,可以进行一次判定,若结果为红色目标需再打出一张闪。',
|
||||||
sadengjinhuan_bg:'荆',
|
sadengjinhuan_bg:'荆',
|
||||||
qipoguyu:'奇魄古玉',
|
qipoguyu:'奇魄古玉',
|
||||||
xujin:'蓄劲',
|
xujin:'蓄劲',
|
||||||
xujin2:'蓄劲',
|
xujin2:'蓄劲',
|
||||||
// qipoguyu_info:'装备后获得蓄劲技能',
|
// qipoguyu_info:'装备后获得蓄劲技能。',
|
||||||
xujin_info:'回合开始前,若你的蓄劲标记数小于当前的体力值,你可以跳过此回合,并获得一枚蓄劲标记。锁定技,每当你即将造成伤害,你令此伤害+X,然后弃置一枚蓄劲标记,X为你拥有的蓄劲标记数',
|
xujin_info:'回合开始前,若你的蓄劲标记数小于当前的体力值,你可以跳过此回合,并获得一枚蓄劲标记。锁定技,每当你即将造成伤害,你令此伤害+X,然后弃置一枚蓄劲标记,X为你拥有的蓄劲标记数。',
|
||||||
guilingzhitao:'归灵指套',
|
guilingzhitao:'归灵指套',
|
||||||
nigong:'逆攻',
|
nigong:'逆攻',
|
||||||
nigong2:'逆攻',
|
nigong2:'逆攻',
|
||||||
nigong3:'逆攻',
|
nigong3:'逆攻',
|
||||||
nigong4:'逆攻',
|
nigong4:'逆攻',
|
||||||
guilingzhitao_info:'每当你受到1点伤害,你获得一个逆攻标记,标记数不能超过4。出牌阶段,你可以弃置所有逆攻标记并令对一名其他角色造成标记数一半的伤害(若非整数则向下取整并摸一张牌)',
|
guilingzhitao_info:'每当你受到1点伤害,你获得一个逆攻标记,标记数不能超过4。出牌阶段,你可以弃置所有逆攻标记并令对一名其他角色造成标记数一半的伤害(若非整数则向下取整并摸一张牌)。',
|
||||||
nigong_info:'每当你受到1点伤害,你获得一个逆攻标记,标记数不能超过4。出牌阶段,你可以弃置所有逆攻标记并令对一名其他角色造成标记数一半的伤害(若非整数则向下取整并摸一张牌)',
|
nigong_info:'每当你受到1点伤害,你获得一个逆攻标记,标记数不能超过4。出牌阶段,你可以弃置所有逆攻标记并令对一名其他角色造成标记数一半的伤害(若非整数则向下取整并摸一张牌)。',
|
||||||
baihupifeng:'白狐披风',
|
baihupifeng:'白狐披风',
|
||||||
baihupifeng_bg:'狐',
|
baihupifeng_bg:'狐',
|
||||||
baihupifeng_info:'结束阶段,若你的体力值是全场最小的之一,你可以回复1点体力',
|
baihupifeng_info:'结束阶段,若你的体力值是全场最小的之一,你可以回复1点体力。',
|
||||||
fengxueren:'封雪刃',
|
fengxueren:'封雪刃',
|
||||||
fengxueren_bg:'雪',
|
fengxueren_bg:'雪',
|
||||||
fengxueren_info:'你使用杀击中目标后,若目标武将牌正面朝上,你可以防止伤害,然后令目标摸一张牌并翻面',
|
fengxueren_info:'你使用杀击中目标后,若目标武将牌正面朝上,你可以防止伤害,然后令目标摸一张牌并翻面。',
|
||||||
chilongya:'赤龙牙',
|
chilongya:'赤龙牙',
|
||||||
chilongya_info:'锁定技,你的火属性伤害+1',
|
chilongya_info:'锁定技,你的火属性伤害+1。',
|
||||||
daihuofenglun:'带火风轮',
|
daihuofenglun:'带火风轮',
|
||||||
daihuofenglun_ab:'风轮',
|
daihuofenglun_ab:'风轮',
|
||||||
daihuofenglun_bg:'轮',
|
daihuofenglun_bg:'轮',
|
||||||
daihuofenglun_info:'你的进攻距离+2,你的防御距离-1',
|
daihuofenglun_info:'你的进攻距离+2,你的防御距离-1。',
|
||||||
xiayuncailing:'霞云彩绫',
|
xiayuncailing:'霞云彩绫',
|
||||||
xiayuncailing_ab:'彩绫',
|
xiayuncailing_ab:'彩绫',
|
||||||
xiayuncailing_bg:'云',
|
xiayuncailing_bg:'云',
|
||||||
xiayuncailing_info:'你的进攻距离-1,你的防御距离+2',
|
xiayuncailing_info:'你的进攻距离-1,你的防御距离+2。',
|
||||||
shentoumianju:'神偷面具',
|
shentoumianju:'神偷面具',
|
||||||
shentoumianju_bg:'偷',
|
shentoumianju_bg:'偷',
|
||||||
shentoumianju_info:'出牌阶段,你可以指定一名手牌比你多的角色,弃置一张手牌并进行一次判定,若结果不为梅花,你获得其一张手牌',
|
shentoumianju_info:'出牌阶段,你可以指定一名手牌比你多的角色,弃置一张手牌并进行一次判定,若结果不为梅花,你获得其一张手牌。',
|
||||||
shentou:'神偷',
|
shentou:'神偷',
|
||||||
shentou_info:'出牌阶段,你可以进行一次判定,若结果不为梅花,你获得任意一名角色的一张手牌',
|
shentou_info:'出牌阶段,你可以进行一次判定,若结果不为梅花,你获得任意一名角色的一张手牌。',
|
||||||
xianluhui:'仙炉灰',
|
xianluhui:'仙炉灰',
|
||||||
xianluhui_info:'令所有已受伤角色获得1点护甲',
|
xianluhui_info:'令所有已受伤角色获得1点护甲。',
|
||||||
caoyao:'草药',
|
caoyao:'草药',
|
||||||
caoyao_info:'出牌阶段,对距离为1以内的角色使用,回复1点体力。',
|
caoyao_info:'出牌阶段,对距离为1以内的角色使用,回复1点体力。',
|
||||||
langeguaiyi:'蓝格怪衣',
|
langeguaiyi:'蓝格怪衣',
|
||||||
langeguaiyi_bg:'格',
|
langeguaiyi_bg:'格',
|
||||||
langeguaiyi_info:'出牌阶段限一次,你可以进行一次判定,然后按花色执行以下效果。红桃:你回复1点体力;方片:你摸一张牌;梅花:你令一名随机敌方角色随机弃置一张牌;黑桃:无事发生',
|
langeguaiyi_info:'出牌阶段限一次,你可以进行一次判定,然后按花色执行以下效果。红桃:你回复1点体力;方片:你摸一张牌;梅花:你令一名随机敌方角色随机弃置一张牌;黑桃:无事发生。',
|
||||||
longfan:'龙帆',
|
longfan:'龙帆',
|
||||||
longfan_info:'出牌阶段限一次,你可以进行一次判定,然后按花色执行以下效果。红桃:你回复1点体力;方片:你摸一张牌;梅花:你令一名随机敌方角色随机弃置一张牌;黑桃:无事发生',
|
longfan_info:'出牌阶段限一次,你可以进行一次判定,然后按花色执行以下效果。红桃:你回复1点体力;方片:你摸一张牌;梅花:你令一名随机敌方角色随机弃置一张牌;黑桃:无事发生。',
|
||||||
// longfan_info:'0000:翻面;1111:弃手牌;2222:弃装备牌;3333:受伤害;4444:失去体力;5555:连环;6666:摸牌;7777:回复体力;8888:弃置判定牌;9999:置衡',
|
// longfan_info:'0000:翻面;1111:弃手牌;2222:弃装备牌;3333:受伤害;4444:失去体力;5555:连环;6666:摸牌;7777:回复体力;8888:弃置判定牌;9999:置衡。',
|
||||||
guiyoujie:'鬼幽结',
|
guiyoujie:'鬼幽结',
|
||||||
guiyoujie_bg:'结',
|
guiyoujie_bg:'结',
|
||||||
guiyoujie_info:'出牌阶段,对一名其他角色使用。若判定结果为黑色,其失去1点体力并随机弃置一张牌',
|
guiyoujie_info:'出牌阶段,对一名其他角色使用。若判定结果为黑色,其失去1点体力并随机弃置一张牌。',
|
||||||
yufulu:'御夫录',
|
yufulu:'御夫录',
|
||||||
yufulu_info:'出牌阶段,可弃置一张武器牌令一名角色受到1点伤害,然后该角色获得此武器牌',
|
yufulu_info:'出牌阶段,可弃置一张武器牌令一名角色受到1点伤害,然后该角色获得此武器牌。',
|
||||||
touzhi:'投掷',
|
touzhi:'投掷',
|
||||||
touzhi_info:'出牌阶段,可弃置一张武器牌令一名角色受到1点伤害,然后该角色获得此武器牌',
|
touzhi_info:'出牌阶段,可弃置一张武器牌令一名角色受到1点伤害,然后该角色获得此武器牌。',
|
||||||
xixueguizhihuan:'吸血鬼指环',
|
xixueguizhihuan:'吸血鬼指环',
|
||||||
xixueguizhihuan_ab:'血环',
|
xixueguizhihuan_ab:'血环',
|
||||||
xixueguizhihuan_info:'锁定技,每当你使用杀造成1点伤害,你回复1点体力',
|
xixueguizhihuan_info:'锁定技,每当你使用杀造成1点伤害,你回复1点体力。',
|
||||||
xixue:'吸血',
|
xixue:'吸血',
|
||||||
xixue_info:'锁定技,每当你使用杀造成1点伤害,你回复1点体力',
|
xixue_info:'锁定技,每当你使用杀造成1点伤害,你回复1点体力。',
|
||||||
zhufangshenshi:'祠符',
|
zhufangshenshi:'祠符',
|
||||||
zhufangshenshi_info:'出牌阶段,对一名其他角色使用,本回合内对其使用卡牌无视距离,结算后摸一张牌',
|
zhufangshenshi_info:'出牌阶段,对一名其他角色使用,本回合内对其使用卡牌无视距离,结算后摸一张牌。',
|
||||||
jingleishan:'惊雷闪',
|
jingleishan:'惊雷闪',
|
||||||
jingleishan_info:'出牌阶段,对所有其他角色使用。每名目标角色需打出一张【杀】,否则受到1点雷电伤害。',
|
jingleishan_info:'出牌阶段,对所有其他角色使用。每名目标角色需打出一张【杀】,否则受到1点雷电伤害。',
|
||||||
chiyuxi:'炽羽袭',
|
chiyuxi:'炽羽袭',
|
||||||
chiyuxi_info:'出牌阶段,对所有其他角色使用。每名目标角色需打出一张【闪】,否则受到1点火焰伤害。',
|
chiyuxi_info:'出牌阶段,对所有其他角色使用。每名目标角色需打出一张【闪】,否则受到1点火焰伤害。',
|
||||||
guangshatianyi:'光纱天衣',
|
guangshatianyi:'光纱天衣',
|
||||||
guangshatianyi_bg:'纱',
|
guangshatianyi_bg:'纱',
|
||||||
guangshatianyi_info:'锁定技,每当你即将受到伤害,有三分之一的概率令伤害减一',
|
guangshatianyi_info:'锁定技,每当你即将受到伤害,有三分之一的概率令伤害减一。',
|
||||||
sifeizhenmian:'四非真面',
|
sifeizhenmian:'四非真面',
|
||||||
sifeizhenmian_info:'出牌阶段限一次,你可以令一名有手牌的其他角色进行一次判定,若结果为不为红桃且目标有可用的手牌,目标随机使用一张手牌(随机指定目标)',
|
sifeizhenmian_info:'出牌阶段限一次,你可以令一名有手牌的其他角色进行一次判定,若结果为不为红桃且目标有可用的手牌,目标随机使用一张手牌(随机指定目标)。',
|
||||||
yiluan:'意乱',
|
yiluan:'意乱',
|
||||||
yiluan_info:'出牌阶段限一次,你可以令一名有手牌的其他角色进行一次判定,若结果为不为红桃且目标有可用的手牌,目标随机使用一张手牌(随机指定目标)',
|
yiluan_info:'出牌阶段限一次,你可以令一名有手牌的其他角色进行一次判定,若结果为不为红桃且目标有可用的手牌,目标随机使用一张手牌(随机指定目标)。',
|
||||||
donghuangzhong:'东皇钟',
|
donghuangzhong:'东皇钟',
|
||||||
xuanyuanjian:'轩辕剑',
|
xuanyuanjian:'轩辕剑',
|
||||||
xuanyuanjian2:'轩辕剑',
|
xuanyuanjian2:'轩辕剑',
|
||||||
|
@ -5310,21 +5310,21 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
kongxin:'控心',
|
kongxin:'控心',
|
||||||
lianhua:'炼化',
|
lianhua:'炼化',
|
||||||
// dujian:'毒箭',
|
// dujian:'毒箭',
|
||||||
// dujian_info:'出牌阶段,对一名有手牌或装备牌的角色使用,令其展示一张手牌,若与你选择的手牌颜色相同,其失去1点体力',
|
// dujian_info:'出牌阶段,对一名有手牌或装备牌的角色使用,令其展示一张手牌,若与你选择的手牌颜色相同,其失去1点体力。',
|
||||||
lianhua_info:'出牌阶段限一次,你可以弃置两张炼妖壶中的牌,从牌堆中获得一张与弃置的牌类别均不相同的牌',
|
lianhua_info:'出牌阶段限一次,你可以弃置两张炼妖壶中的牌,从牌堆中获得一张与弃置的牌类别均不相同的牌。',
|
||||||
shouna:'收纳',
|
shouna:'收纳',
|
||||||
shouna_info:'出牌阶段限一次,你可以弃置一张手牌,并将一名其他角色的一张手牌置入炼妖壶',
|
shouna_info:'出牌阶段限一次,你可以弃置一张手牌,并将一名其他角色的一张手牌置入炼妖壶。',
|
||||||
donghuangzhong_info:'结束阶段,你可以弃置一张红色手牌,并选择一名角色将一张随机单体延时锦囊置入其判定区',
|
donghuangzhong_info:'结束阶段,你可以弃置一张红色手牌,并选择一名角色将一张随机单体延时锦囊置入其判定区。',
|
||||||
xuanyuanjian_info:'装备时获得1点护甲;每当你即将造成一次伤害,你令此伤害加一并变为雷属性,并在伤害结算后失去1点体力。任何时候,若你体力值不超过2,则立即失去轩辕剑',
|
xuanyuanjian_info:'装备时获得1点护甲;每当你即将造成一次伤害,你令此伤害加一并变为雷属性,并在伤害结算后失去1点体力。任何时候,若你体力值不超过2,则立即失去轩辕剑。',
|
||||||
pangufu_info:'锁定技,每当你造成一次伤害,受伤角色须弃置一张牌',
|
pangufu_info:'锁定技,每当你造成一次伤害,受伤角色须弃置一张牌。',
|
||||||
haotianta_info:'锁定技,任意一名角色进行判定前,你观看牌堆顶的2张牌,并选择一张作为判定结果,此结果不可被更改,也不能触发技能',
|
haotianta_info:'锁定技,任意一名角色进行判定前,你观看牌堆顶的2张牌,并选择一张作为判定结果,此结果不可被更改,也不能触发技能。',
|
||||||
shennongding_info:'出牌阶段,你可以弃置两张手牌,然后回复1点体力。每阶段限一次',
|
shennongding_info:'出牌阶段,你可以弃置两张手牌,然后回复1点体力。每阶段限一次。',
|
||||||
kongdongyin_info:'令你抵挡一次死亡,将体力回复至1,并摸一张牌,发动后进入弃牌堆',
|
kongdongyin_info:'令你抵挡一次死亡,将体力回复至1,并摸一张牌,发动后进入弃牌堆。',
|
||||||
kunlunjingc_info:'出牌阶段限一次,你可以观看牌堆顶的三张牌,然后用一张手牌替换其中的一张',
|
kunlunjingc_info:'出牌阶段限一次,你可以观看牌堆顶的三张牌,然后用一张手牌替换其中的一张。',
|
||||||
nvwashi_info:'当一名角色濒死时,若你的体力值大于1,你可以失去1点体力并令其回复1点体力',
|
nvwashi_info:'当一名角色濒死时,若你的体力值大于1,你可以失去1点体力并令其回复1点体力。',
|
||||||
kongxin_info:'出牌阶段限一次,你可以与一名其他角色进行拼点,若你赢,你可以指定另一名角色视为对方对该角色使用一张杀,否则对方可弃置你一张牌',
|
kongxin_info:'出牌阶段限一次,你可以与一名其他角色进行拼点,若你赢,你可以指定另一名角色视为对方对该角色使用一张杀,否则对方可弃置你一张牌。',
|
||||||
fuxiqin_info:'出牌阶段限一次,你可以与一名其他角色进行拼点,若你赢,你可以指定另一名角色视为对方对该角色使用一张杀,否则对方可弃置你一张牌',
|
fuxiqin_info:'出牌阶段限一次,你可以与一名其他角色进行拼点,若你赢,你可以指定另一名角色视为对方对该角色使用一张杀,否则对方可弃置你一张牌。',
|
||||||
lianyaohu_info:'出牌阶段各限一次,你可以选择一项:1.弃置一张手牌,并将一名其他角色的一张手牌置入炼妖壶;2.弃置两张炼妖壶中的牌,从牌堆中获得一张与弃置的牌类别均不相同的牌',
|
lianyaohu_info:'出牌阶段各限一次,你可以选择一项:1.弃置一张手牌,并将一名其他角色的一张手牌置入炼妖壶;2.弃置两张炼妖壶中的牌,从牌堆中获得一张与弃置的牌类别均不相同的牌。',
|
||||||
},
|
},
|
||||||
list:[
|
list:[
|
||||||
['heart',1,'hufu'],
|
['heart',1,'hufu'],
|
||||||
|
|
|
@ -28,7 +28,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
wuxie:function(target,card,player,viewer,status){
|
wuxie:function(target,card,player,viewer,status){
|
||||||
if(status*get.attitude(viewer,player)>0&&!player.isMad()) return 0;
|
if(get.attitude(viewer,player._trueMe||player)>0) return 0;
|
||||||
if(!card.yingbian_all&&get.distance(player,target)>1&&!target.hasCard(i=>{
|
if(!card.yingbian_all&&get.distance(player,target)>1&&!target.hasCard(i=>{
|
||||||
let val=get.value(i,target),subtypes=get.subtypes(i);
|
let val=get.value(i,target),subtypes=get.subtypes(i);
|
||||||
if(val<8&&target.hp<2&&!subtypes.includes('equip2')&&!subtypes.includes('equip5')) return false;
|
if(val<8&&target.hp<2&&!subtypes.includes('equip2')&&!subtypes.includes('equip5')) return false;
|
||||||
|
|
|
@ -162,11 +162,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
ai:{
|
ai:{
|
||||||
order:9,
|
order:9,
|
||||||
value:function(card,player){
|
value:function(card,player){
|
||||||
if(player.getEquips(1).contains(card)) return 0;
|
if(player.getEquips(1).contains(card)) return 0.4;
|
||||||
return 4;
|
return 4;
|
||||||
},
|
},
|
||||||
equipValue:function(card,player){
|
equipValue:function(card,player){
|
||||||
if(player.getCards('e').contains(card)) return 0;
|
if(player.getCards('e').contains(card)) return 0.4;
|
||||||
return -get.value(player.getCards('e'));
|
return -get.value(player.getCards('e'));
|
||||||
},
|
},
|
||||||
basic:{
|
basic:{
|
||||||
|
@ -226,11 +226,17 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
ai:{
|
ai:{
|
||||||
order:9,
|
order:9,
|
||||||
equipValue:function(card,player){
|
equipValue:function(card,player){
|
||||||
if(get.position(card)=='e') return -2;
|
if(get.position(card)=='e'){
|
||||||
|
if(player.hasSex('male')) return -7;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
return 2;
|
return 2;
|
||||||
},
|
},
|
||||||
value:function(card,player){
|
value:function(card,player){
|
||||||
if(player.getEquips(2).contains(card)) return -3;
|
if(player.getEquips(2).contains(card)){
|
||||||
|
if(player.hasSex('male')) return -8;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
return 3;
|
return 3;
|
||||||
},
|
},
|
||||||
basic:{
|
basic:{
|
||||||
|
@ -260,11 +266,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
ai:{
|
ai:{
|
||||||
order:9,
|
order:9,
|
||||||
equipValue:function(card,player){
|
equipValue:function(card,player){
|
||||||
if(get.position(card)=='e') return -1;
|
if(get.position(card)=='e') return -8;
|
||||||
return 1;
|
return 1;
|
||||||
},
|
},
|
||||||
value:function(card,player){
|
value:function(card,player){
|
||||||
if(player.getEquips(2).contains(card)) return -2.5;
|
if(player.getEquips(2).contains(card)) return -10;
|
||||||
return 2.5;
|
return 2.5;
|
||||||
},
|
},
|
||||||
basic:{
|
basic:{
|
||||||
|
|
|
@ -397,7 +397,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
return 2;
|
return 2;
|
||||||
},
|
},
|
||||||
value:function(card,player){
|
value:function(card,player){
|
||||||
if(player.getEquips(1).contains(card)) return -1.5;
|
if(player.getEquips(1).contains(card)){
|
||||||
|
if(player.hasSkillTag('noh')) return 0;
|
||||||
|
return -3.5;
|
||||||
|
}
|
||||||
return 1.5;
|
return 1.5;
|
||||||
},
|
},
|
||||||
basic:{
|
basic:{
|
||||||
|
@ -436,7 +439,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
return 2;
|
return 2;
|
||||||
},
|
},
|
||||||
value:function(card,player){
|
value:function(card,player){
|
||||||
if(player.getEquips(1).contains(card)) return -3;
|
if(player.getEquips(1).contains(card)) return -3.5;
|
||||||
return 3;
|
return 3;
|
||||||
},
|
},
|
||||||
basic:{
|
basic:{
|
||||||
|
@ -471,11 +474,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
ai:{
|
ai:{
|
||||||
order:9,
|
order:9,
|
||||||
equipValue:function(card,player){
|
equipValue:function(card,player){
|
||||||
if(get.position(card)=='e') return -1;
|
if(get.position(card)=='e') return -7;
|
||||||
return 1;
|
return 1;
|
||||||
},
|
},
|
||||||
value:function(card,player){
|
value:function(card,player){
|
||||||
if(player.getEquips(2).contains(card)) return -2.5;
|
if(player.getEquips(2).contains(card)) return -9;
|
||||||
return 2.5;
|
return 2.5;
|
||||||
},
|
},
|
||||||
basic:{
|
basic:{
|
||||||
|
|
|
@ -272,6 +272,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return get.cardNameLength(event.card)==player.getHistory('useCard').indexOf(event.getParent())+1;
|
return get.cardNameLength(event.card)==player.getHistory('useCard').indexOf(event.getParent())+1;
|
||||||
},
|
},
|
||||||
direct:true,
|
direct:true,
|
||||||
|
locked:false,
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
var num=get.cardNameLength(trigger.card);
|
var num=get.cardNameLength(trigger.card);
|
||||||
|
@ -1397,9 +1398,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
target.classList.remove('linked2');
|
target.classList.remove('linked2');
|
||||||
var eff=cards[0][1];
|
var eff=cards[0][1];
|
||||||
if(eff>0) return eff;
|
if(eff>0) return eff;
|
||||||
return Math.max((get.effect(target,{name:'wuzhong'},player,player)+get.effect(player,{name:'wuzhong'},player,player)/3),get.recoverEffect(target,player,player));
|
return Math.max((2*get.effect(target,{name:'draw'},player,player)+0.6*get.effect(player,{name:'draw'},player,player)),get.recoverEffect(target,player,player));
|
||||||
}
|
}
|
||||||
return Math.max((get.effect(target,{name:'wuzhong'},player,player)+get.effect(player,{name:'wuzhong'},player,player)/3),get.recoverEffect(target,player,player));
|
return Math.max((2*get.effect(target,{name:'draw'},player,player)+0.6*get.effect(player,{name:'draw'},player,player)),get.recoverEffect(target,player,player));
|
||||||
}).set('goon',player.countCards('hs',card=>{
|
}).set('goon',player.countCards('hs',card=>{
|
||||||
return get.name(card)=='jiu'&&player.hasUseTarget(card);
|
return get.name(card)=='jiu'&&player.hasUseTarget(card);
|
||||||
})&&player.countCards('hs',card=>{
|
})&&player.countCards('hs',card=>{
|
||||||
|
@ -1424,7 +1425,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var player=_status.event.player,target=_status.event.getParent().target;
|
var player=_status.event.player,target=_status.event.getParent().target;
|
||||||
if(!target.isDamaged()) return 0;
|
if(!target.isDamaged()) return 0;
|
||||||
if(get.attitude(player,target)<=0&&player.countCards('he',card=>get.value(card)<0)>=2) return 0;
|
if(get.attitude(player,target)<=0&&player.countCards('he',card=>get.value(card)<0)>=2) return 0;
|
||||||
return (get.effect(target,{name:'wuzhong'},player,player)+get.effect(player,{name:'wuzhong'},player,player)/3)>get.recoverEffect(target,player,player)?0:1;
|
return (2*get.effect(target,{name:'draw'},player,player)+0.6*get.effect(player,{name:'draw'},player,player))>get.recoverEffect(target,player,player)?0:1;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else event.finish();
|
else event.finish();
|
||||||
|
|
|
@ -95,34 +95,33 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(player._dcsantou_temp) return;
|
if(player._dcsantou_temp) return;
|
||||||
if(get.tag(card,'damage')){
|
if(get.tag(card,'damage')){
|
||||||
const hp=target.getHp();
|
const hp=target.getHp();
|
||||||
if(hp>=3){
|
|
||||||
if(target.hasHistory('useSkill',evt=>evt.skill=='dcsantou'&&evt.event.getTrigger().source==player)) return [1,-2];
|
|
||||||
else if(get.attitude(player,target)<0){
|
|
||||||
if(card.name=='sha') return;
|
|
||||||
let sha=false;
|
|
||||||
player._dcsantou_temp=true;
|
player._dcsantou_temp=true;
|
||||||
let num=player.countCards('h',card=>{
|
const losehp=get.effect(target,{name:'losehp'},target,target)/get.attitude(target,target);
|
||||||
if(card.name=='sha'){
|
|
||||||
if(sha) return false;
|
|
||||||
else sha=true;
|
|
||||||
}
|
|
||||||
return get.tag(card,'damage')&&player.canUse(card,target)&&get.effect(target,card,player,player)>0;
|
|
||||||
});
|
|
||||||
delete player._dcsantou_temp;
|
delete player._dcsantou_temp;
|
||||||
if(player.hasSkillTag('damage')){
|
if(hp>=3){
|
||||||
num++;
|
if(target.hasHistory('useSkill',evt=>evt.skill=='dcsantou'&&evt.event.getTrigger().source==player)) return [0,losehp,0,0];
|
||||||
|
else if(get.attitude(player,target)<0){
|
||||||
|
let hs=player.getCards('hs',i=>{
|
||||||
|
return i!==card&&(!card.cards||!card.cards.includes(i));
|
||||||
|
}),num=player.getCardUsable('sha');
|
||||||
|
if(card.name==='sha') num--;
|
||||||
|
hs=hs.filter(i=>{
|
||||||
|
if(!player.canUse(i,target)) return false;
|
||||||
|
if(get.tag(card,'damage')&&get.name(i,player)!=='sha') return true;
|
||||||
|
if(num){
|
||||||
|
num--;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
if(num<2){
|
return false;
|
||||||
var enemies=player.getEnemies();
|
}).length;
|
||||||
if(enemies.length==1&&enemies[0]==target&&player.needsToDiscard()){
|
if(player.hasSkillTag('damage',null,{target:target})) hs++;
|
||||||
return;
|
if(!hs) return 'zeroplayertarget';
|
||||||
}
|
num=1-2/3/hs;
|
||||||
return 0;
|
return [num,0,num,0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
if(hp==2&&get.tag(card,'natureDamage')||hp==1&&typeof card=='object'&&get.color(card)=='red') return [0,losehp,0,0];
|
||||||
else if(hp==2&&get.tag(card,'natureDamage')||hp==1&&get.color(card)=='red'&&get.itemtype(card)=='card') return [1,-2];
|
return 'zeroplayertarget';
|
||||||
else return 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -160,6 +159,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else event.finish();
|
else event.finish();
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
reverseEquip:true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//隅泣曹操
|
//隅泣曹操
|
||||||
|
@ -254,9 +256,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
var card={name:button.link[2],nature:button.link[3],isCard:true};
|
var card={name:button.link[2],nature:button.link[3],isCard:true};
|
||||||
if(card.name=='tao'){
|
if(card.name=='tao'){
|
||||||
if(player.hp==1||(player.hp==2&&!player.hasShan())||player.needsToDiscard()){
|
if(player.hp==1||(player.hp==2&&!player.hasShan())||player.needsToDiscard()) return 5;
|
||||||
return 5;
|
|
||||||
}
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if(card.name=='sha'){
|
if(card.name=='sha'){
|
||||||
|
@ -372,10 +372,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
order:1,
|
order:function(item,player){
|
||||||
|
if(player.hasCard((i)=>{
|
||||||
|
return get.value(i)>Math.max(6,9-player.hp);
|
||||||
|
},'he')) return 1;
|
||||||
|
return 10;
|
||||||
|
},
|
||||||
result:{
|
result:{
|
||||||
player:1
|
player:1
|
||||||
},
|
},
|
||||||
|
nokeep:true,
|
||||||
|
skillTagFilter:function(player,tag,arg){
|
||||||
|
if(tag==='nokeep') return (!arg||arg&&arg.card&&get.name(arg.card)==='tao')&&player.isPhaseUsing()&&player.countSkill('dczhiheng')<1+player.getStorage('dczhiheng_hit').length&&player.hasCard((card)=>{
|
||||||
|
return get.name(card)!=='tao';
|
||||||
|
},'h');
|
||||||
|
},
|
||||||
threaten:1.55
|
threaten:1.55
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -794,7 +794,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return get.color(card)==color;
|
return get.color(card)==color;
|
||||||
},'h')){
|
},'h')){
|
||||||
if(color=='red') return get.recoverEffect(player,player,player)+2/Math.max(2,get.value(button.link));
|
if(color=='red') return get.recoverEffect(player,player,player)+2/Math.max(2,get.value(button.link));
|
||||||
if(color=='black') return get.effect(target,{name:'wuzhong'},target,player)+2/Math.max(2,get.value(button.link));
|
if(color=='black') return 2*get.effect(target,{name:'draw'},target,player)+2/Math.max(2,get.value(button.link));
|
||||||
}
|
}
|
||||||
return get.value(button.link)/3;
|
return get.value(button.link)/3;
|
||||||
})
|
})
|
||||||
|
@ -828,7 +828,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var prompt2='用'+get.translation(event.card1)+'交换对方的'+get.translation(event.card2);
|
var prompt2='用'+get.translation(event.card1)+'交换对方的'+get.translation(event.card2);
|
||||||
if(color=='black'){
|
if(color=='black'){
|
||||||
prompt2+=',然后对方摸两张牌';
|
prompt2+=',然后对方摸两张牌';
|
||||||
next.set('goon',get.effect(target,{name:'wuzhong'},target,player)>0);
|
next.set('goon',2*get.effect(target,{name:'draw'},target,player)>0);
|
||||||
}
|
}
|
||||||
else if(color=='red'&&player.isDamaged()){
|
else if(color=='red'&&player.isDamaged()){
|
||||||
prompt2+=',然后你回复1点体力';
|
prompt2+=',然后你回复1点体力';
|
||||||
|
@ -1105,7 +1105,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
'step 1'
|
'step 1'
|
||||||
player.chooseTarget('是否令一名其他角色摸等量的牌?',lib.filter.notMe).set('ai',target=>{
|
player.chooseTarget('是否令一名其他角色摸等量的牌?',lib.filter.notMe).set('ai',target=>{
|
||||||
var player=get.player();
|
var player=get.player();
|
||||||
return get.effect(target,{name:'wuzhong'},player,player);
|
return get.effect(target,{name:'draw'},player,player);
|
||||||
});
|
});
|
||||||
'step 2'
|
'step 2'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
|
@ -1676,7 +1676,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return player.countCards('h')==target.countCards('h')&&player!=target;
|
return player.countCards('h')==target.countCards('h')&&player!=target;
|
||||||
}).set('ai',target=>{
|
}).set('ai',target=>{
|
||||||
var player=get.player();
|
var player=get.player();
|
||||||
return Math.max(get.effect(target,{name:'wuzhong'},player,player),get.effect(target,{name:'guohe'},player,player)/2);
|
return Math.max(get.effect(target,{name:'draw'},player,player),get.effect(target,{name:'guohe'},player,player)/2);
|
||||||
});
|
});
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
var target=result.targets[0];
|
var target=result.targets[0];
|
||||||
|
@ -1729,7 +1729,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
})){
|
})){
|
||||||
player.chooseTarget('整军:是否令一名角色摸一张牌?').set('ai',function(target){
|
player.chooseTarget('整军:是否令一名角色摸一张牌?').set('ai',function(target){
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
return get.effect(target,{name:'wuzhong'},player,player);
|
return get.effect(target,{name:'draw'},player,player);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else event.goto(2);
|
else event.goto(2);
|
||||||
|
@ -5078,12 +5078,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(!target.hasFriend()) return;
|
if(!target.hasFriend()) return;
|
||||||
var num=1;
|
var num=1;
|
||||||
if(get.attitude(player,target)>0){
|
if(get.attitude(player,target)>0){
|
||||||
if(player.needsToDiscard()){
|
if(player.needsToDiscard()) num=0.7;
|
||||||
num=0.7;
|
else num=0.5;
|
||||||
}
|
|
||||||
else{
|
|
||||||
num=0.5;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if(target.hp>=4) return [1,num*2.5];
|
if(target.hp>=4) return [1,num*2.5];
|
||||||
if(target.hp==3) return [1,num*1.5];
|
if(target.hp==3) return [1,num*1.5];
|
||||||
|
|
202
character/diy.js
|
@ -1414,7 +1414,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var player=_status.event.player,target=_status.event.getParent().target;
|
var player=_status.event.player,target=_status.event.getParent().target;
|
||||||
switch(button.link){
|
switch(button.link){
|
||||||
case 'damage':return get.damageEffect(target,player,player);
|
case 'damage':return get.damageEffect(target,player,player);
|
||||||
case 'draw':return get.effect(player,{name:'wuzhong'},player,player)
|
case 'draw':return 2*get.effect(player,{name:'draw'},player,player)
|
||||||
case 'discard':return get.effect(target,{name:'guohe_copy2'},player,player)*Math.min(1.6,target.countCards('he'));
|
case 'discard':return get.effect(target,{name:'guohe_copy2'},player,player)*Math.min(1.6,target.countCards('he'));
|
||||||
case 'use':return _status.event.getRand('minagi_peiquan')*4;
|
case 'use':return _status.event.getRand('minagi_peiquan')*4;
|
||||||
}
|
}
|
||||||
|
@ -1447,7 +1447,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return baseEffect+Math.max(...choices.map(choice=>{
|
return baseEffect+Math.max(...choices.map(choice=>{
|
||||||
switch(choice){
|
switch(choice){
|
||||||
case 'damage':return get.damageEffect(target,player,player);
|
case 'damage':return get.damageEffect(target,player,player);
|
||||||
case 'draw':return get.effect(player,{name:'wuzhong'},player,player);
|
case 'draw':return 2*get.effect(player,{name:'draw'},player,player);
|
||||||
case 'discard':return get.effect(target,{name:'guohe_copy2'},player,player)*Math.min(1.6,target.countCards('he'));
|
case 'discard':return get.effect(target,{name:'guohe_copy2'},player,player)*Math.min(1.6,target.countCards('he'));
|
||||||
case 'use':return _status.event.getRand('minagi_peiquan')*4;
|
case 'use':return _status.event.getRand('minagi_peiquan')*4;
|
||||||
}
|
}
|
||||||
|
@ -2643,7 +2643,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.chooseTarget('退论:是否令一名角色摸一张牌或弃置一张牌?').set('ai',function(target){
|
player.chooseTarget('退论:是否令一名角色摸一张牌或弃置一张牌?').set('ai',function(target){
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
var att=get.attitude(player,target);
|
var att=get.attitude(player,target);
|
||||||
if(att>0||target.countCards('he')==0) return get.effect(target,{name:'wuzhong'},player,player)/2;
|
if(att>0||target.countCards('he')==0) return get.effect(target,{name:'draw'},player,player);
|
||||||
return get.effect(target,{name:'guohe_copy2'},target,player);
|
return get.effect(target,{name:'guohe_copy2'},target,player);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -3513,7 +3513,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
list.remove(player.storage.kyou_zhidian);
|
list.remove(player.storage.kyou_zhidian);
|
||||||
player.chooseControl(list).set('prompt','掷典:请为'+get.translation(trigger.card)+'选择一种效果').set('choice',function(){
|
player.chooseControl(list).set('prompt','掷典:请为'+get.translation(trigger.card)+'选择一种效果').set('choice',function(){
|
||||||
if(list.contains('不计入次数')&&player.hasSha()) return '不计入次数';
|
if(list.contains('不计入次数')&&player.hasSha()) return '不计入次数';
|
||||||
if(list.contains('不可被响应')&&trigger.target.mayHaveShan()) return '不可被响应';
|
if(list.contains('不可被响应')&&trigger.target.mayHaveShan(_status.event.player,'use')) return '不可被响应';
|
||||||
if(list.contains('伤害+1')) return '伤害+1';
|
if(list.contains('伤害+1')) return '伤害+1';
|
||||||
return list.randomGet();
|
return list.randomGet();
|
||||||
}()).set('ai',()=>_status.event.choice);
|
}()).set('ai',()=>_status.event.choice);
|
||||||
|
@ -7778,7 +7778,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
mod:{
|
mod:{
|
||||||
globalFrom:function(from,to,num){
|
globalFrom:function(from,to,num){
|
||||||
return num-game.countPlayer(function(current){
|
return num-game.countPlayer(function(current){
|
||||||
return current!=from&¤t.isFriendOf(from)&¤t.hasSkill('yuzuru_bujin');
|
return current!=from&¤t.hasSkill('yuzuru_bujin')&¤t.isFriendOf(from);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -11916,6 +11916,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
nslongyue:{
|
nslongyue:{
|
||||||
|
init:()=>{
|
||||||
|
game.addGlobalSkill('nslongyue_ai');
|
||||||
|
},
|
||||||
|
onremove:()=>{
|
||||||
|
if(!game.hasPlayer(i=>i.hasSkill('nslongyue'),true)) game.removeGlobalSkill('nslongyue_ai');
|
||||||
|
},
|
||||||
trigger:{global:'useCard'},
|
trigger:{global:'useCard'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return get.type(event.card,'trick')=='trick'&&event.player.getHistory('useCard').indexOf(event)==0;
|
return get.type(event.card,'trick')=='trick'&&event.player.getHistory('useCard').indexOf(event)==0;
|
||||||
|
@ -11929,8 +11935,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
expose:0.2,
|
expose:0.2,
|
||||||
},
|
}
|
||||||
global:'nslongyue_ai',
|
|
||||||
},
|
},
|
||||||
nslongyue_ai:{
|
nslongyue_ai:{
|
||||||
mod:{
|
mod:{
|
||||||
|
@ -11940,6 +11945,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
})) return num+6;
|
})) return num+6;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
trigger:{player:'dieAfter'},
|
||||||
|
filter:()=>{
|
||||||
|
return !game.hasPlayer(i=>i.hasSkill('nslongyue'),true);
|
||||||
|
},
|
||||||
|
silent:true,
|
||||||
|
forceDie:true,
|
||||||
|
content:()=>{
|
||||||
|
game.removeGlobalSkill('nslongyue_ai');
|
||||||
|
}
|
||||||
},
|
},
|
||||||
nszhenyin:{
|
nszhenyin:{
|
||||||
trigger:{global:'judge'},
|
trigger:{global:'judge'},
|
||||||
|
@ -12458,7 +12472,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
choicex=choices.slice(0);
|
choicex=choices.slice(0);
|
||||||
var getx=function(a){
|
var getx=function(a){
|
||||||
switch(a){
|
switch(a){
|
||||||
case 'draw':return get.effect(player,{name:'wuzhong'},player,player);
|
case 'draw':return 2*get.effect(player,{name:'draw'},player,player);
|
||||||
case 'damage':return get.damageEffect(_status.event.getParent().target,player,player);
|
case 'damage':return get.damageEffect(_status.event.getParent().target,player,player);
|
||||||
default:return 0;
|
default:return 0;
|
||||||
}
|
}
|
||||||
|
@ -12637,10 +12651,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(player.getStorage('junktaoluan2').includes(get.suit(card))) return false;
|
if(player.getStorage('junktaoluan2').includes(get.suit(card))) return false;
|
||||||
if(player.getStorage('junktaoluan').includes(name)) return false;
|
if(player.getStorage('junktaoluan').includes(name)) return false;
|
||||||
if(get.type(name)!='basic'&&get.type(name)!='trick') return false;
|
if(get.type(name)!='basic'&&get.type(name)!='trick') return false;
|
||||||
if(event.filterCard({name:name,isCard:true,cards:[card]})) return true;
|
if(event.filterCard({name:name,isCard:true,cards:[card]},player,event)) return true;
|
||||||
if(name=='sha'){
|
if(name=='sha'){
|
||||||
for(var nature of lib.inpile_nature){
|
for(var nature of lib.inpile_nature){
|
||||||
if(event.filterCard({name:name,nature:nature,isCard:true,cards:[card]})) return true;
|
if(event.filterCard({name:name,nature:nature,isCard:true,cards:[card]},player,event)) return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -18139,7 +18153,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
umi_qihuan:'七幻',
|
umi_qihuan:'七幻',
|
||||||
umi_qihuan_info:'限定技,当你处于濒死状态时,你可以移去此武将牌。若如此做,你回复X点体力(X为场上势力数)。然后,你可获得场上已死亡角色武将牌上的至多两个技能。',
|
umi_qihuan_info:'限定技,当你处于濒死状态时,你可以移去此武将牌。若如此做,你回复X点体力(X为场上势力数)。然后,你可获得场上已死亡角色武将牌上的至多两个技能。',
|
||||||
komari_tiankou:'甜口',
|
komari_tiankou:'甜口',
|
||||||
komari_tiankou_info:'锁定技,当你使用红色的非伤害性基本牌/锦囊牌选择目标时,或成为其他角色使用的这些牌的目标时,你选择一项:1.摸一张牌;2.为此牌增加一个目标',
|
komari_tiankou_info:'锁定技,当你使用红色的非伤害性基本牌/锦囊牌选择目标时,或成为其他角色使用的这些牌的目标时,你选择一项:1.摸一张牌;2.为此牌增加一个目标。',
|
||||||
komari_xueshang:'血殇',
|
komari_xueshang:'血殇',
|
||||||
komari_xueshang_info:'锁定技,蓄能技,当有角色死亡时,你对自己造成<span class=yellowtext>1</span>点伤害,然后对所有其他角色依次造成<span class=firetext>1</span>点伤害。当有角色因此法进入濒死状态时,你加1点体力上限并回复1点体力,然后失去此技能并终止此技能的所有后续结算。',
|
komari_xueshang_info:'锁定技,蓄能技,当有角色死亡时,你对自己造成<span class=yellowtext>1</span>点伤害,然后对所有其他角色依次造成<span class=firetext>1</span>点伤害。当有角色因此法进入濒死状态时,你加1点体力上限并回复1点体力,然后失去此技能并终止此技能的所有后续结算。',
|
||||||
yukine_wenzhou:'问咒',
|
yukine_wenzhou:'问咒',
|
||||||
|
@ -18224,7 +18238,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
rin_baoqiu:'暴球',
|
rin_baoqiu:'暴球',
|
||||||
rin_baoqiu_info:'锁定技,你的攻击范围+2。当你使用【杀】指定目标后,你进行判定。若结果:为红色,此【杀】对其的伤害值基数+1;为黑色,其无法闪避此【杀】;为♠/♥,此【杀】不计入使用次数限制且你摸一张牌;为♦/♣,目标角色的所有非锁定技失效直到回合结束,且你弃置其一张牌。',
|
rin_baoqiu_info:'锁定技,你的攻击范围+2。当你使用【杀】指定目标后,你进行判定。若结果:为红色,此【杀】对其的伤害值基数+1;为黑色,其无法闪避此【杀】;为♠/♥,此【杀】不计入使用次数限制且你摸一张牌;为♦/♣,目标角色的所有非锁定技失效直到回合结束,且你弃置其一张牌。',
|
||||||
sasami_miaobian:'喵变',
|
sasami_miaobian:'喵变',
|
||||||
sasami_miaobian_info:'当你的体力值变为:3以下时,你获得技能〖公清〗,2以下时,你获得技能〖复难〗,1以下时,你获得技能〖暴球〗',
|
sasami_miaobian_info:'当你的体力值变为:3以下时,你获得技能〖公清〗,2以下时,你获得技能〖复难〗,1以下时,你获得技能〖暴球〗。',
|
||||||
sasami_gongqing:"公清",
|
sasami_gongqing:"公清",
|
||||||
sasami_gongqing_info:"锁定技。当你受到伤害时,若伤害来源的攻击范围:<3,则你令此伤害的数值减为1。>3,你令此伤害+1。",
|
sasami_gongqing_info:"锁定技。当你受到伤害时,若伤害来源的攻击范围:<3,则你令此伤害的数值减为1。>3,你令此伤害+1。",
|
||||||
sasami_funan:'复难',
|
sasami_funan:'复难',
|
||||||
|
@ -18232,7 +18246,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sasami_baoqiu:'暴球',
|
sasami_baoqiu:'暴球',
|
||||||
sasami_baoqiu_info:'锁定技,你的攻击范围+2。当你使用【杀】指定目标后,你进行判定。若结果:为红色,此【杀】对其的伤害值基数+1;为黑色,其无法闪避此【杀】;为♠/♥,此【杀】不计入使用次数限制且你摸一张牌;为♦/♣,目标角色的所有非锁定技失效直到回合结束,且你弃置其一张牌。',
|
sasami_baoqiu_info:'锁定技,你的攻击范围+2。当你使用【杀】指定目标后,你进行判定。若结果:为红色,此【杀】对其的伤害值基数+1;为黑色,其无法闪避此【杀】;为♠/♥,此【杀】不计入使用次数限制且你摸一张牌;为♦/♣,目标角色的所有非锁定技失效直到回合结束,且你弃置其一张牌。',
|
||||||
akane_jugu:'巨贾',
|
akane_jugu:'巨贾',
|
||||||
akane_jugu_info:'锁定技,1.你的手牌上限+X。2.游戏开始时,你摸X张牌(X为你的体力上限)',
|
akane_jugu_info:'锁定技,1.你的手牌上限+X。2.游戏开始时,你摸X张牌(X为你的体力上限)。',
|
||||||
akane_quanqing:'权倾',
|
akane_quanqing:'权倾',
|
||||||
akane_quanqing_info:'出牌阶段,你可选择:1.弃置一张点数大于10的牌并对攻击范围内的一名其他角色造成1点伤害;2.弃置一张点数大于6的牌并弃置攻击范围内的一名其他角色区域内的一张牌。3.弃置一张牌并令攻击范围内的一名其他角色摸一张牌。',
|
akane_quanqing_info:'出牌阶段,你可选择:1.弃置一张点数大于10的牌并对攻击范围内的一名其他角色造成1点伤害;2.弃置一张点数大于6的牌并弃置攻击范围内的一名其他角色区域内的一张牌。3.弃置一张牌并令攻击范围内的一名其他角色摸一张牌。',
|
||||||
akane_yifu:'蚁附',
|
akane_yifu:'蚁附',
|
||||||
|
@ -18381,7 +18395,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
kotori_skill_wu:'吴耀',
|
kotori_skill_wu:'吴耀',
|
||||||
kotori_skill_wu_info:'回合结束时,若你的手牌数不等于你的体力值,则你摸一张牌。',
|
kotori_skill_wu_info:'回合结束时,若你的手牌数不等于你的体力值,则你摸一张牌。',
|
||||||
kotori_skill_qun:'群心',
|
kotori_skill_qun:'群心',
|
||||||
kotori_skill_qun_info:'锁定技,弃牌阶段开始时,若你的手牌数比体力值多2或更多,你本回合手牌上限+1;若你已损失体力值大于1,你手牌上限+1',
|
kotori_skill_qun_info:'锁定技,弃牌阶段开始时,若你的手牌数比体力值多2或更多,你本回合手牌上限+1;若你已损失体力值大于1,你手牌上限+1。',
|
||||||
kotori_skill_key:'键魂',
|
kotori_skill_key:'键魂',
|
||||||
kotori_skill_key_info:'出牌阶段限一次,你可以摸一张牌并获得1点护甲。若如此做,你于当前回合结束时失去1点体力。',
|
kotori_skill_key_info:'出牌阶段限一次,你可以摸一张牌并获得1点护甲。若如此做,你于当前回合结束时失去1点体力。',
|
||||||
kotori_skill_jin:'晋势',
|
kotori_skill_jin:'晋势',
|
||||||
|
@ -18395,7 +18409,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
kotori_huazhan:'花绽',
|
kotori_huazhan:'花绽',
|
||||||
kotori_huazhan_info:'每回合每种魔物限一次,你可将一个蓝色/红色/绿色/黄色/紫色/灰色魔物当做【树上开花】使用。',
|
kotori_huazhan_info:'每回合每种魔物限一次,你可将一个蓝色/红色/绿色/黄色/紫色/灰色魔物当做【树上开花】使用。',
|
||||||
jojiro_shensu:'神速',
|
jojiro_shensu:'神速',
|
||||||
jojiro_shensu_info:'你可以选择一至三项:1. 跳过判定阶段和摸牌阶段;2. 跳过出牌阶段并弃置一张装备牌;3. 跳过弃牌阶段并将你的武将牌翻面。你每选择一项,视为你对一名其他角色使用一张没有距离限制的【杀】',
|
jojiro_shensu_info:'你可以选择一至三项:1. 跳过判定阶段和摸牌阶段;2. 跳过出牌阶段并弃置一张装备牌;3. 跳过弃牌阶段并将你的武将牌翻面。你每选择一项,视为你对一名其他角色使用一张没有距离限制的【杀】。',
|
||||||
jojiro_shensu1:'神速',
|
jojiro_shensu1:'神速',
|
||||||
jojiro_shensu2:'神速',
|
jojiro_shensu2:'神速',
|
||||||
jojiro_shensu4:'神速',
|
jojiro_shensu4:'神速',
|
||||||
|
@ -18591,7 +18605,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
minagi_peiquan:'配券',
|
minagi_peiquan:'配券',
|
||||||
minagi_peiquan_info:'锁定技。①游戏开始时,你将你所有的手牌记录为“米券”。②出牌阶段,你可以赠予一张“米券”,然后执行一项本回合内未被选择过的效果:⒈对其造成1点伤害;⒉摸两张牌;⒊弃置其的两张牌;⒋亮出牌堆顶的一张牌,然后你可以使用之。',
|
minagi_peiquan_info:'锁定技。①游戏开始时,你将你所有的手牌记录为“米券”。②出牌阶段,你可以赠予一张“米券”,然后执行一项本回合内未被选择过的效果:⒈对其造成1点伤害;⒉摸两张牌;⒊弃置其的两张牌;⒋亮出牌堆顶的一张牌,然后你可以使用之。',
|
||||||
minagi_huanliu:'幻流',
|
minagi_huanliu:'幻流',
|
||||||
minagi_huanliu_info:'准备阶段开始时,你可与一名其他角色进行协力,并获得“远野小满”的所有技能直到目标角色的结束阶段开始。若“协力”成功,则你可以将所有手牌记录为“米券”',
|
minagi_huanliu_info:'准备阶段开始时,你可与一名其他角色进行协力,并获得“远野小满”的所有技能直到目标角色的结束阶段开始。若“协力”成功,则你可以将所有手牌记录为“米券”。',
|
||||||
key_michiru:'远野小满',
|
key_michiru:'远野小满',
|
||||||
michiru_sheyuan:'舍愿',
|
michiru_sheyuan:'舍愿',
|
||||||
michiru_sheyuan_info:'每轮限一次。若你没有“米券”,则你可以将所有手牌当做任意基本牌或普通锦囊牌使用,然后摸等量的牌。',
|
michiru_sheyuan_info:'每轮限一次。若你没有“米券”,则你可以将所有手牌当做任意基本牌或普通锦囊牌使用,然后摸等量的牌。',
|
||||||
|
@ -18710,111 +18724,111 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
nsjuanli:'狷戾',
|
nsjuanli:'狷戾',
|
||||||
nsjuanli_info:'出牌阶段限一次,你可以和一名有手牌的其他角色进行赌牌,若你赢,目标角色失去1点体力且该角色与你距离-1直到与你下次赌牌,若你没赢,目标角色回复1点体力,且该角色与你距离+1直到与你的下次赌牌。(赌牌:赌牌的两名角色分别亮开一张手牌,若花色相同则赌牌平局,若花色不同,则依次展示牌堆顶的牌直到翻开的牌与其中一人亮出牌的花色相同,则该角色获得赌牌的胜利)',
|
nsjuanli_info:'出牌阶段限一次,你可以和一名有手牌的其他角色进行赌牌,若你赢,目标角色失去1点体力且该角色与你距离-1直到与你下次赌牌,若你没赢,目标角色回复1点体力,且该角色与你距离+1直到与你的下次赌牌。(赌牌:赌牌的两名角色分别亮开一张手牌,若花色相同则赌牌平局,若花色不同,则依次展示牌堆顶的牌直到翻开的牌与其中一人亮出牌的花色相同,则该角色获得赌牌的胜利)',
|
||||||
nsyuanchou:'远筹',
|
nsyuanchou:'远筹',
|
||||||
nsyuanchou_info:'锁定技,当你成为锦囊牌的目标时,若来源角色与你的距离大于1,则取消之',
|
nsyuanchou_info:'锁定技,当你成为锦囊牌的目标时,若来源角色与你的距离大于1,则取消之。',
|
||||||
nsguhuo:'蛊惑',
|
nsguhuo:'蛊惑',
|
||||||
nsguhuo_info:'锁定技,你在一个回合中使用前两张牌时,你对一名随机角色从牌堆(牌堆无则从弃牌堆)随机使用一张同类别卡牌',
|
nsguhuo_info:'锁定技,你在一个回合中使用前两张牌时,你对一名随机角色从牌堆(牌堆无则从弃牌堆)随机使用一张同类别卡牌。',
|
||||||
nsqinxue:'勤学',
|
nsqinxue:'勤学',
|
||||||
nsqinxue_info:'每个效果每回合只能使用一次。①当你使用一张基本牌时,你从牌堆随机获得一张锦囊牌;②当你使用一张锦囊牌时,你从牌堆随机获得一张装备牌;③当你使用一张装备牌时,你从牌堆随机获得一张基本牌',
|
nsqinxue_info:'每个效果每回合只能使用一次。①当你使用一张基本牌时,你从牌堆随机获得一张锦囊牌;②当你使用一张锦囊牌时,你从牌堆随机获得一张装备牌;③当你使用一张装备牌时,你从牌堆随机获得一张基本牌。',
|
||||||
nsbaiyi:'白衣',
|
nsbaiyi:'白衣',
|
||||||
nsbaiyi_info:'锁定技,若你本回合发动过勤学,你跳过弃牌阶段,改为弃置X张牌(X为本回合发动勤学次数);若你弃置了3张类别不同的牌,你获得一个额外回合(不可连续获得回合),否则你观看牌堆顶的X张牌并获得其中一张',
|
nsbaiyi_info:'锁定技,若你本回合发动过勤学,你跳过弃牌阶段,改为弃置X张牌(X为本回合发动勤学次数);若你弃置了3张类别不同的牌,你获得一个额外回合(不可连续获得回合),否则你观看牌堆顶的X张牌并获得其中一张。',
|
||||||
nsbaiming:'百鸣',
|
nsbaiming:'百鸣',
|
||||||
nsbaiming_info:'当你使用【杀】时,你可以获得一项未获得过且与杀或伤害相关的技能,此【杀】结算完毕后,你失去以此法获得的技能',
|
nsbaiming_info:'当你使用【杀】时,你可以获得一项未获得过且与杀或伤害相关的技能,此【杀】结算完毕后,你失去以此法获得的技能。',
|
||||||
nsfuge:'覆戈',
|
nsfuge:'覆戈',
|
||||||
nsfuge_info:'你的回合结束后,你可以执行一个额外的回合,此回合的摸牌阶段,你于摸牌阶段额外摸X张牌(X为你已损失的体力值);若如此做,直到洗牌前,你不能再发动此技能',
|
nsfuge_info:'你的回合结束后,你可以执行一个额外的回合,此回合的摸牌阶段,你于摸牌阶段额外摸X张牌(X为你已损失的体力值);若如此做,直到洗牌前,你不能再发动此技能。',
|
||||||
nstanbing:'谈兵',
|
nstanbing:'谈兵',
|
||||||
nstanbing_info:'摸牌阶段开始时,你可弃置一张手牌,然后摸X张牌(X为你弃置牌的名称字数),若如此做,本回合你不可使用或打出【杀】',
|
nstanbing_info:'摸牌阶段开始时,你可弃置一张手牌,然后摸X张牌(X为你弃置牌的名称字数),若如此做,本回合你不可使用或打出【杀】。',
|
||||||
nsxinzhan:'心战',
|
nsxinzhan:'心战',
|
||||||
nsxinzhan_info:'出牌阶段限一次,你可将任意张手牌交给一名其他角色,若如此做,该角色失去X点体力(X为你交给其的牌张数的一半,向下取整),若你给的牌达到六张,则改为该角色失去1点体力上限',
|
nsxinzhan_info:'出牌阶段限一次,你可将任意张手牌交给一名其他角色,若如此做,该角色失去X点体力(X为你交给其的牌张数的一半,向下取整),若你给的牌达到六张,则改为该角色失去1点体力上限。',
|
||||||
nsfuhuo:'符火',
|
nsfuhuo:'符火',
|
||||||
nsfuhuo2:'符火',
|
nsfuhuo2:'符火',
|
||||||
nsfuhuo_info:'出牌阶段限一次,你可将一张手牌置于一名武将牌上没有“符”的角色的武将牌上,称为“符”,若如此做,其回合外使用或打出【闪】时,你可令其判定,若结果为:红桃,你对其造成2点火焰伤害;方块,你弃置其一张手牌,然后对其造成1点火焰伤害。你的下个回合开始时,你获得其武将牌上的“符”',
|
nsfuhuo_info:'出牌阶段限一次,你可将一张手牌置于一名武将牌上没有“符”的角色的武将牌上,称为“符”,若如此做,其回合外使用或打出【闪】时,你可令其判定,若结果为:红桃,你对其造成2点火焰伤害;方块,你弃置其一张手牌,然后对其造成1点火焰伤害。你的下个回合开始时,你获得其武将牌上的“符”。',
|
||||||
nswangfeng:'望风',
|
nswangfeng:'望风',
|
||||||
nswangfeng_info:'在判定牌生效前,你可以打出一张红色牌替换之',
|
nswangfeng_info:'在判定牌生效前,你可以打出一张红色牌替换之。',
|
||||||
nshunji:'混击',
|
nshunji:'混击',
|
||||||
nshunji_info:'出牌阶段限一次,你可以摸一张牌,视为使用一张【万箭齐发】。此【万箭齐发】造成伤害时,受伤害角色选择一项:①弃置你一张牌;②摸一张牌',
|
nshunji_info:'出牌阶段限一次,你可以摸一张牌,视为使用一张【万箭齐发】。此【万箭齐发】造成伤害时,受伤害角色选择一项:①弃置你一张牌;②摸一张牌。',
|
||||||
nscuanquan:'篡权',
|
nscuanquan:'篡权',
|
||||||
nscuanquan_info:'锁定技,如果你的身份为忠臣,则在受伤三次后与主公,互换身份和体力上限',
|
nscuanquan_info:'锁定技,如果你的身份为忠臣,则在受伤三次后与主公,互换身份和体力上限。',
|
||||||
nsjianning:'奸佞',
|
nsjianning:'奸佞',
|
||||||
nsjianning_info:'出牌阶段限一次,如果你的身份为内奸,你可以与一名手牌数比你少的角色交换手牌,并对其造成1点伤害',
|
nsjianning_info:'出牌阶段限一次,如果你的身份为内奸,你可以与一名手牌数比你少的角色交换手牌,并对其造成1点伤害。',
|
||||||
nschangshi:'常仕',
|
nschangshi:'常仕',
|
||||||
nschangshi_info:'出牌阶段限一次,如果你的身份为反贼,你可以指定两名其他角色互换体力;如果两名角色体力之差等于1,你失去1点体力',
|
nschangshi_info:'出牌阶段限一次,如果你的身份为反贼,你可以指定两名其他角色互换体力;如果两名角色体力之差等于1,你失去1点体力。',
|
||||||
nsbaquan:'霸权',
|
nsbaquan:'霸权',
|
||||||
nsbaquan_info:'回合结束时,你可以弃置所有手牌,并获得相应点数的护甲,你的新一回合开始时清除所有护甲',
|
nsbaquan_info:'回合结束时,你可以弃置所有手牌,并获得相应点数的护甲,你的新一回合开始时清除所有护甲。',
|
||||||
nsbugua:'卜卦',
|
nsbugua:'卜卦',
|
||||||
nsbugua_use_info:'弃置一张牌,并将牌堆顶的六张牌反面朝上逐张按先后顺序排放,然后抛骰子,展示牌序号与骰子显示的点数一致的牌,然后你根据这张牌的花色、点数随机获得牌堆中相应的一张牌',
|
nsbugua_use_info:'弃置一张牌,并将牌堆顶的六张牌反面朝上逐张按先后顺序排放,然后抛骰子,展示牌序号与骰子显示的点数一致的牌,然后你根据这张牌的花色、点数随机获得牌堆中相应的一张牌。',
|
||||||
nsbugua_info:'出牌阶段限一次,你可以弃置一张牌,并将牌堆顶的六张牌反面朝上逐张按先后顺序排放,然后抛骰子,展示牌序号与骰子显示的点数一致的牌,然后你根据这张牌的花色、点数按以下规则随机获得牌堆中相应的一张牌:乾(红桃偶数):无中生有;坤(黑桃奇数):决斗;震(黑桃偶数):南蛮入侵;巽(红桃奇数):万箭齐发;坎(梅花偶数):过河拆桥、兑(梅花奇数):借刀杀人、艮(方片偶数):顺手牵羊、离(方片奇数):火攻。若牌堆中无此牌则摸一张牌,然后你观看未展示的另外五张牌并按任意顺序将其置于牌堆顶。',
|
nsbugua_info:'出牌阶段限一次,你可以弃置一张牌,并将牌堆顶的六张牌反面朝上逐张按先后顺序排放,然后抛骰子,展示牌序号与骰子显示的点数一致的牌,然后你根据这张牌的花色、点数按以下规则随机获得牌堆中相应的一张牌:乾(红桃偶数):无中生有;坤(黑桃奇数):决斗;震(黑桃偶数):南蛮入侵;巽(红桃奇数):万箭齐发;坎(梅花偶数):过河拆桥、兑(梅花奇数):借刀杀人、艮(方片偶数):顺手牵羊、离(方片奇数):火攻。若牌堆中无此牌则摸一张牌,然后你观看未展示的另外五张牌并按任意顺序将其置于牌堆顶。',
|
||||||
nstuiyan:'推演',
|
nstuiyan:'推演',
|
||||||
nstuiyan_info:'出牌阶段,若你使用的牌点数比上一张使用的牌点数大,你可以摸一张牌,反之你本回合不能再以此法摸牌;当你使用的牌点数首次达到8的倍数时,你可以在结算后立即发动一次【卜卦】',
|
nstuiyan_info:'出牌阶段,若你使用的牌点数比上一张使用的牌点数大,你可以摸一张牌,反之你本回合不能再以此法摸牌;当你使用的牌点数首次达到8的倍数时,你可以在结算后立即发动一次【卜卦】。',
|
||||||
nstianji:'天机',
|
nstianji:'天机',
|
||||||
nstianji_info:'限定技,当一名其他角色进入濒死状态,你可自减1点体力上限,令其回复体力至1并增加1点体力上限',
|
nstianji_info:'限定技,当一名其他角色进入濒死状态,你可自减1点体力上限,令其回复体力至1并增加1点体力上限。',
|
||||||
nszhaoxin:'昭心',
|
nszhaoxin:'昭心',
|
||||||
nszhaoxin_info:'锁定技,你始终展示手牌',
|
nszhaoxin_info:'锁定技,你始终展示手牌。',
|
||||||
nsxiuxin:'修穆',
|
nsxiuxin:'修穆',
|
||||||
nsxiuxin_info:'锁定技,若你没有某种花色的手牌,你不能成为这种花色的牌的目标',
|
nsxiuxin_info:'锁定技,若你没有某种花色的手牌,你不能成为这种花色的牌的目标。',
|
||||||
nsshijun:'弑君',
|
nsshijun:'弑君',
|
||||||
nsshijun_info:'锁定技,你造成伤害时,你令此伤害+1,并在结算后失去1点体力',
|
nsshijun_info:'锁定技,你造成伤害时,你令此伤害+1,并在结算后失去1点体力。',
|
||||||
nshunyou:'魂佑',
|
nshunyou:'魂佑',
|
||||||
nshunyou_info:'出阶段限一次,你可以弃置一张基本牌,获得弃牌堆底的一张装备牌和一张锦囊牌,然后你可以将那张装备牌装备给一名角色(允许替换)。如果弃牌堆没有装备以及锦囊牌,则改为摸X张牌,X为损失的体力加一(最多3张)',
|
nshunyou_info:'出阶段限一次,你可以弃置一张基本牌,获得弃牌堆底的一张装备牌和一张锦囊牌,然后你可以将那张装备牌装备给一名角色(允许替换)。如果弃牌堆没有装备以及锦囊牌,则改为摸X张牌,X为损失的体力加一(最多3张)。',
|
||||||
nswulie:'武烈',
|
nswulie:'武烈',
|
||||||
nswulie_info:'限定技,准备阶段,你可以失去1点体力上限,从弃牌堆选择最多三张牌以任意顺序放置于牌堆顶。若如此做,此回合的结束阶段,你可以重复此操作',
|
nswulie_info:'限定技,准备阶段,你可以失去1点体力上限,从弃牌堆选择最多三张牌以任意顺序放置于牌堆顶。若如此做,此回合的结束阶段,你可以重复此操作。',
|
||||||
nscangxi:'藏玺',
|
nscangxi:'藏玺',
|
||||||
nscangxi2:'藏玺',
|
nscangxi2:'藏玺',
|
||||||
nscangxi_info:'主公技,其他吴势力角色的弃牌阶段结束时,若其弃置了至少两张牌,则可以选择判定,若是黑色,则其选择一项,1,令主公摸一张并且展示;2,主公手牌上限永久加一;3,额外弃置一张牌,令主公获得本回合进入弃牌堆的一张牌',
|
nscangxi_info:'主公技,其他吴势力角色的弃牌阶段结束时,若其弃置了至少两张牌,则可以选择判定,若是黑色,则其选择一项,1,令主公摸一张并且展示;2,主公手牌上限永久加一;3,额外弃置一张牌,令主公获得本回合进入弃牌堆的一张牌。',
|
||||||
nsdongcha:'洞察',
|
nsdongcha:'洞察',
|
||||||
nsdongcha_info:'锁定技,单体锦囊牌无法对你造成伤害。其它角色于其回合内第二次使用锦囊牌指定你为目标时,取消之',
|
nsdongcha_info:'锁定技,单体锦囊牌无法对你造成伤害。其它角色于其回合内第二次使用锦囊牌指定你为目标时,取消之。',
|
||||||
nscaijian:'才鉴',
|
nscaijian:'才鉴',
|
||||||
nscaijian_info:'出牌阶段限一次,若你的手牌数不大于你的体力上限,则你可以展示你的手牌,观看牌堆顶相同数量的牌并以任意方式交换之',
|
nscaijian_info:'出牌阶段限一次,若你的手牌数不大于你的体力上限,则你可以展示你的手牌,观看牌堆顶相同数量的牌并以任意方式交换之。',
|
||||||
nsgongjian:'恭俭',
|
nsgongjian:'恭俭',
|
||||||
nsgongjian_info:'锁定技,弃牌阶段,你须将弃牌交给一名体力值大于你的其它角色',
|
nsgongjian_info:'锁定技,弃牌阶段,你须将弃牌交给一名体力值大于你的其它角色。',
|
||||||
nsjianxiong:'奸雄',
|
nsjianxiong:'奸雄',
|
||||||
nsjianxiong_info:'当你成为一名角色牌的目标后你可以对该角色使用一张牌,若此牌对其造成伤害,则该角色的牌失效。若失效的为黑色牌,则你摸一张牌',
|
nsjianxiong_info:'当你成为一名角色牌的目标后你可以对该角色使用一张牌,若此牌对其造成伤害,则该角色的牌失效。若失效的为黑色牌,则你摸一张牌。',
|
||||||
nsxionglue:'雄略',
|
nsxionglue:'雄略',
|
||||||
nsxionglue_info:'出牌阶段限一次,你可以弃置一张黑色手牌,然后发现一张锦囊牌',
|
nsxionglue_info:'出牌阶段限一次,你可以弃置一张黑色手牌,然后发现一张锦囊牌。',
|
||||||
nsyaowang:'妖妄',
|
nsyaowang:'妖妄',
|
||||||
nsyaowang_info:'回合开始阶段你可以选择一名角色然后获得其其中一项技能直到回合结束,然后该角色随机获得一项未上场武将的其中一项技能直到其回合结束',
|
nsyaowang_info:'回合开始阶段你可以选择一名角色然后获得其其中一项技能直到回合结束,然后该角色随机获得一项未上场武将的其中一项技能直到其回合结束。',
|
||||||
nshuanhuo:'幻惑',
|
nshuanhuo:'幻惑',
|
||||||
nshuanhuo_info:'每当你失去1点体力或受到一次大于2的伤害时,你可以交换除你之外的两名角色的武将牌(体力及体力上限不变)',
|
nshuanhuo_info:'每当你失去1点体力或受到一次大于2的伤害时,你可以交换除你之外的两名角色的武将牌(体力及体力上限不变)。',
|
||||||
nsjianshu:'剑术',
|
nsjianshu:'剑术',
|
||||||
nsjianshu_info:'锁定技:每当你的装备区有武器时,你使用【杀】指定一个目标后,该角色需要依次使用两张【闪】才能抵消此【杀】',
|
nsjianshu_info:'锁定技:每当你的装备区有武器时,你使用【杀】指定一个目标后,该角色需要依次使用两张【闪】才能抵消此【杀】。',
|
||||||
nscangjian:'藏剑',
|
nscangjian:'藏剑',
|
||||||
nscangjian_info:'每当你对一名角色造成伤害,你可以获得其装备区一张牌',
|
nscangjian_info:'每当你对一名角色造成伤害,你可以获得其装备区一张牌。',
|
||||||
nsyunxing:'陨星',
|
nsyunxing:'陨星',
|
||||||
nsyunxing_info:'锁定技,当场上一名角色死亡,若为蜀,你失去1点体力;若为吴,你回复1点体力;若为魏,你摸一张牌并弃置一名角色的手牌;若为群,你强制结束当前回合;若为你,你可以使一名角色翻面',
|
nsyunxing_info:'锁定技,当场上一名角色死亡,若为蜀,你失去1点体力;若为吴,你回复1点体力;若为魏,你摸一张牌并弃置一名角色的手牌;若为群,你强制结束当前回合;若为你,你可以使一名角色翻面。',
|
||||||
nsguanxing:'观星',
|
nsguanxing:'观星',
|
||||||
nsguanxing_info:'锁定技,准备阶段,你观看牌堆的X张牌(X为场上存活人数)并且任意移动Y张牌(Y为你当前体力值)',
|
nsguanxing_info:'锁定技,准备阶段,你观看牌堆的X张牌(X为场上存活人数)并且任意移动Y张牌(Y为你当前体力值)。',
|
||||||
nscaiyi:'猜疑',
|
nscaiyi:'猜疑',
|
||||||
nscaiyi_info:'其他角色摸牌后,你可以观看其摸到的牌,若其中有【杀】,则视为你对其使用一张【杀】,若其中没有【杀】,则视为其对你使用一张【杀】(计入出杀次数)',
|
nscaiyi_info:'其他角色摸牌后,你可以观看其摸到的牌,若其中有【杀】,则视为你对其使用一张【杀】,若其中没有【杀】,则视为其对你使用一张【杀】(计入出杀次数)。',
|
||||||
nsgefa:'割发',
|
nsgefa:'割发',
|
||||||
nsgefa_info:'当你的体力值等于0或更低时,你可以将任意一张♣牌当【桃】使用',
|
nsgefa_info:'当你的体力值等于0或更低时,你可以将任意一张♣牌当【桃】使用。',
|
||||||
nshaoling:'号令',
|
nshaoling:'号令',
|
||||||
nshaoling_info:'限定技,出牌阶段,你可以指定一名其他角色,令另外所有其他角色角色选择一项:1、对该角色使用一张【杀】;2、交给你一张牌,然后视为你对其使用一张【杀】',
|
nshaoling_info:'限定技,出牌阶段,你可以指定一名其他角色,令另外所有其他角色角色选择一项:1、对该角色使用一张【杀】;2、交给你一张牌,然后视为你对其使用一张【杀】。',
|
||||||
nspinmin:'拼命',
|
nspinmin:'拼命',
|
||||||
nspinmin_info:'锁定技,当你于回合内死亡时,你不死亡并增加1点体力上限(每回合最多增加1点且不能超过4);当你于回合外死亡时,你不死亡并减少1点体力上限(体力上限为0会导致你死亡)',
|
nspinmin_info:'锁定技,当你于回合内死亡时,你不死亡并增加1点体力上限(每回合最多增加1点且不能超过4);当你于回合外死亡时,你不死亡并减少1点体力上限(体力上限为0会导致你死亡)。',
|
||||||
nsshishou:'失手',
|
nsshishou:'失手',
|
||||||
nsshishou_info:'锁定技,当你于回合内失去手牌时,你失去1点体力并摸一张牌;你回合内使用的牌数不能超过4',
|
nsshishou_info:'锁定技,当你于回合内失去手牌时,你失去1点体力并摸一张牌;你回合内使用的牌数不能超过4。',
|
||||||
nsduijue:'对决',
|
nsduijue:'对决',
|
||||||
nsduijue_info:'出牌阶段开始时,你可以弃置一张手牌,若如此做,此阶段你可以将一张与此牌颜色不同的手牌当作[决斗]使用(限2次)',
|
nsduijue_info:'出牌阶段开始时,你可以弃置一张手牌,若如此做,此阶段你可以将一张与此牌颜色不同的手牌当作【决斗】使用(限2次)。',
|
||||||
nsshuangxiong:'双雄',
|
nsshuangxiong:'双雄',
|
||||||
nsshuangxiong_info:'当你使用[决斗]或被使用[决斗]时,你可以将武将牌翻面',
|
nsshuangxiong_info:'当你使用【决斗】或被使用【决斗】时,你可以将武将牌翻面。',
|
||||||
nsshuangxiong_append:'背面武将:文丑,2体力,你可以将一张牌当[杀]打出',
|
nsshuangxiong_append:'背面武将:文丑,2体力,你可以将一张牌当【杀】打出。',
|
||||||
nsguanyong:'冠勇',
|
nsguanyong:'冠勇',
|
||||||
nsguanyong_info:'你可以将一张手牌当[杀]打出',
|
nsguanyong_info:'你可以将一张手牌当【杀】打出。',
|
||||||
nsjihui:'急恚',
|
nsjihui:'急恚',
|
||||||
nsjihui_info:'锁定技,每当一名角色一次弃置了三张或更多的牌,你获得一个额外回合;你的额外回合内,你使用牌只能指定你与上一回合角色为目标',
|
nsjihui_info:'锁定技,每当一名角色一次弃置了三张或更多的牌,你获得一个额外回合;你的额外回合内,你使用牌只能指定你与上一回合角色为目标。',
|
||||||
nsmouyun:'谋运',
|
nsmouyun:'谋运',
|
||||||
nsmouyun_info:'每两轮限一次,你可以弃置场上体力值最少的一名其他角色区域内的X张牌。(X为其损失的体力值)',
|
nsmouyun_info:'每两轮限一次,你可以弃置场上体力值最少的一名其他角色区域内的X张牌。(X为其损失的体力值)',
|
||||||
nscongjun:'从军',
|
nscongjun:'从军',
|
||||||
nscongjun_info:'锁定技,游戏开始时,你变身为一名随机男性角色;当一名敌方角色使用无懈可击时,你有小概率亮出此武将并变回花木兰,然后对该角色造成2点伤害',
|
nscongjun_info:'锁定技,游戏开始时,你变身为一名随机男性角色;当一名敌方角色使用无懈可击时,你有小概率亮出此武将并变回花木兰,然后对该角色造成2点伤害。',
|
||||||
nshuanxian:'幻仙',
|
nshuanxian:'幻仙',
|
||||||
nshuanxian_info:'锁定技,游戏开始时,你获得随从“幻身·右”,当你首次受到伤害时,你获得随从“幻身·左”(体力上限2,初始手牌2);你与幻身在摸牌阶段均少摸一张牌;在你的回合中(如果有对应幻身),你以【幻身·左-本体-幻身·右】的顺序进行3个连续回合',
|
nshuanxian_info:'锁定技,游戏开始时,你获得随从“幻身·右”,当你首次受到伤害时,你获得随从“幻身·左”(体力上限2,初始手牌2);你与幻身在摸牌阶段均少摸一张牌;在你的回合中(如果有对应幻身),你以【幻身·左-本体-幻身·右】的顺序进行3个连续回合。',
|
||||||
nstaiping_nh:'太平',
|
nstaiping_nh:'太平',
|
||||||
nstaiping_nh_info:'当你受到1点伤害后(首次伤害除外),你可以选择一项: ①令一个“幻身”增加1点体力上限。②令一个“幻身”回复1点体力。',
|
nstaiping_nh_info:'当你受到1点伤害后(首次伤害除外),你可以选择一项: ①令一个“幻身”增加1点体力上限。②令一个“幻身”回复1点体力。',
|
||||||
nsshoudao:'授道',
|
nsshoudao:'授道',
|
||||||
nsshoudao_info:'当左右“幻身”全部死亡时,你获得技能“雷击”和“鬼道”。当你死亡时,若此时有两个“幻身”,你可以令一名其他角色获得技能“雷击”和“鬼道”。若有一个“幻身”,你可以令一名其他角色获得技能“雷击”或“鬼道”。(杀死你的角色除外)',
|
nsshoudao_info:'当左右“幻身”全部死亡时,你获得技能“雷击”和“鬼道”。当你死亡时,若此时有两个“幻身”,你可以令一名其他角色获得技能“雷击”和“鬼道”。若有一个“幻身”,你可以令一名其他角色获得技能“雷击”或“鬼道”。(杀死你的角色除外)',
|
||||||
nsnongquan:'弄权',
|
nsnongquan:'弄权',
|
||||||
nsnongquan_info:'出牌阶段,你可以将最后一张手牌当作【无中生有】使用',
|
nsnongquan_info:'出牌阶段,你可以将最后一张手牌当作【无中生有】使用。',
|
||||||
nsdufu:'毒妇',
|
nsdufu:'毒妇',
|
||||||
nsdufu_info:'每当你即将造成一次伤害时,你可以为此伤害重新指定伤害来源',
|
nsdufu_info:'每当你即将造成一次伤害时,你可以为此伤害重新指定伤害来源。',
|
||||||
yiesheng:'回雪',
|
yiesheng:'回雪',
|
||||||
yiesheng_info:'出牌阶段,你可以弃置任意数量的黑色手牌,然后摸等量的牌。',
|
yiesheng_info:'出牌阶段,你可以弃置任意数量的黑色手牌,然后摸等量的牌。',
|
||||||
liangji:'环计',
|
liangji:'环计',
|
||||||
|
@ -18824,36 +18838,36 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
jugong:'居功',
|
jugong:'居功',
|
||||||
jugong_info:'回合外每名角色的回合限一次,每当场上有角色因受到【杀】或【决斗】造成的伤害,你可以摸一张牌并且将一张手牌置于你的武将牌上,称之为“功”。在你即将受到伤害时,你可以弃置两张“功”,防止此伤害。',
|
jugong_info:'回合外每名角色的回合限一次,每当场上有角色因受到【杀】或【决斗】造成的伤害,你可以摸一张牌并且将一张手牌置于你的武将牌上,称之为“功”。在你即将受到伤害时,你可以弃置两张“功”,防止此伤害。',
|
||||||
nsxinsheng:'新生',
|
nsxinsheng:'新生',
|
||||||
nsxinsheng_info:'每当你对其他角色造成伤害后,若你未受伤,则你可以增加X点体力上限并摸X张牌,X为伤害点数',
|
nsxinsheng_info:'每当你对其他角色造成伤害后,若你未受伤,则你可以增加X点体力上限并摸X张牌,X为伤害点数。',
|
||||||
nsdunxing:'遁形',
|
nsdunxing:'遁形',
|
||||||
nsdunxing_info:'每当你即将受到其他角色造成的伤害时,若你已受伤,则你可以防止此伤害,改为失去X点体力上限并摸X张牌,X为伤害点数',
|
nsdunxing_info:'每当你即将受到其他角色造成的伤害时,若你已受伤,则你可以防止此伤害,改为失去X点体力上限并摸X张牌,X为伤害点数。',
|
||||||
liangce:'粮策',
|
liangce:'粮策',
|
||||||
liangce_info:'①出牌阶段限一次,你可以将一张基本牌当【五谷丰登】使用。②当因执行【五谷丰登】的效果而亮出的牌因效果执行完毕而置入弃牌堆后,你可以选择一名角色,令该角色获取之',
|
liangce_info:'①出牌阶段限一次,你可以将一张基本牌当【五谷丰登】使用。②当因执行【五谷丰登】的效果而亮出的牌因效果执行完毕而置入弃牌堆后,你可以选择一名角色,令该角色获取之。',
|
||||||
jianbi:'坚壁',
|
jianbi:'坚壁',
|
||||||
jianbi_info:'当你成为锦囊牌的目标时,若此牌的目标包括其他角色,你可以令此牌对1个目标无效',
|
jianbi_info:'当你成为锦囊牌的目标时,若此牌的目标包括其他角色,你可以令此牌对1个目标无效。',
|
||||||
diyjuntun:'军屯',
|
diyjuntun:'军屯',
|
||||||
diyjuntun_info:'出牌阶段,你可以重铸装备牌',
|
diyjuntun_info:'出牌阶段,你可以重铸装备牌。',
|
||||||
choudu:'筹度',
|
choudu:'筹度',
|
||||||
choudu_info:'出牌阶段限一次,你可以弃置一张牌,并指定一名角色视为其使用一张调兵遣将',
|
choudu_info:'出牌阶段限一次,你可以弃置一张牌,并指定一名角色视为其使用一张调兵遣将。',
|
||||||
liduan:'立断',
|
liduan:'立断',
|
||||||
liduan_info:'当一名其他角色于其回合外得到牌后,若其此次得到的牌数为1且为装备牌(无论是否可见),你可以令该角色选择一项:1.使用此牌;2.将一张手牌交给你',
|
liduan_info:'当一名其他角色于其回合外得到牌后,若其此次得到的牌数为1且为装备牌(无论是否可见),你可以令该角色选择一项:1.使用此牌;2.将一张手牌交给你。',
|
||||||
fuchou:'负仇',
|
fuchou:'负仇',
|
||||||
fuchou2:'负仇',
|
fuchou2:'负仇',
|
||||||
fuchou_info:'当你成为【杀】的目标时,你可以将一张牌交给此【杀】的使用者,令此【杀】对你无效且你到其的距离于当前回合内视为1,若如此做,此回合的结束阶段开始时,其令你摸一张牌,然后你需对其使用【杀】,否则失去1点体力',
|
fuchou_info:'当你成为【杀】的目标时,你可以将一张牌交给此【杀】的使用者,令此【杀】对你无效且你到其的距离于当前回合内视为1,若如此做,此回合的结束阶段开始时,其令你摸一张牌,然后你需对其使用【杀】,否则失去1点体力。',
|
||||||
jinyan:'噤言',
|
jinyan:'噤言',
|
||||||
jinyan_info:'锁定技。若你的体力值不大于2,你的黑色锦囊牌视为【杀】',
|
jinyan_info:'锁定技。若你的体力值不大于2,你的黑色锦囊牌视为【杀】。',
|
||||||
chezhen:'车阵',
|
chezhen:'车阵',
|
||||||
chezhen_info:'锁定技。若你的装备区里:没有牌,你的防御距离+1;有牌,你的进攻距离+1',
|
chezhen_info:'锁定技。若你的装备区里:没有牌,你的防御距离+1;有牌,你的进攻距离+1。',
|
||||||
youzhan:'诱战',
|
youzhan:'诱战',
|
||||||
youzhan_info:'当以你距离不大于1的角色为目标的【杀】的使用结算开始时,你可以弃置一张装备牌,令该角色视为使用【诱敌深入】',
|
youzhan_info:'当以你距离不大于1的角色为目标的【杀】的使用结算开始时,你可以弃置一张装备牌,令该角色视为使用【诱敌深入】。',
|
||||||
kangyin:'亢音',
|
kangyin:'亢音',
|
||||||
kangyin2:'亢音',
|
kangyin2:'亢音',
|
||||||
kangyin_info:'出牌阶段限一次,你可以失去1点体力并选择一名其他角色,弃置该角色的一张牌。若此牌:为基本牌,你可以令一至X名角色各摸一张牌;不为基本牌,于此回合内:你的进攻距离+X,且你使用【杀】的额外目标数上限+X。(X为你已损失的体力值)',
|
kangyin_info:'出牌阶段限一次,你可以失去1点体力并选择一名其他角色,弃置该角色的一张牌。若此牌:为基本牌,你可以令一至X名角色各摸一张牌;不为基本牌,于此回合内:你的进攻距离+X,且你使用【杀】的额外目标数上限+X。(X为你已损失的体力值)',
|
||||||
zhucheng:'筑城',
|
zhucheng:'筑城',
|
||||||
zhucheng2:'筑城',
|
zhucheng2:'筑城',
|
||||||
zhucheng_info:'①结束阶段开始时,若没有“筑”,你可以将牌堆顶的X张牌置于你的武将牌上〔称为“筑”〕(X为你已损失的体力值与1中的较大值),否则你可以获取所有“筑”。②当你成为【杀】的目标时,若有“筑”,你可以令此杀的使用者弃置X张牌(X为“筑”的数量),否则杀对你无效',
|
zhucheng_info:'①结束阶段开始时,若没有“筑”,你可以将牌堆顶的X张牌置于你的武将牌上〔称为“筑”〕(X为你已损失的体力值与1中的较大值),否则你可以获取所有“筑”。②当你成为【杀】的目标时,若有“筑”,你可以令此杀的使用者弃置X张牌(X为“筑”的数量),否则杀对你无效。',
|
||||||
duoqi:'夺气',
|
duoqi:'夺气',
|
||||||
duoqi_info:'当一名角色于除你之外的角色的出牌阶段内因弃置而失去牌后,你可以移去一张“筑”,并结束此出牌阶段',
|
duoqi_info:'当一名角色于除你之外的角色的出牌阶段内因弃置而失去牌后,你可以移去一张“筑”,并结束此出牌阶段。',
|
||||||
|
|
||||||
siji:'伺机',
|
siji:'伺机',
|
||||||
ciqiu:'刺酋',
|
ciqiu:'刺酋',
|
||||||
|
@ -18881,30 +18895,30 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
diy_jiaoxia:'皎霞',
|
diy_jiaoxia:'皎霞',
|
||||||
yaliang:'雅量',
|
yaliang:'雅量',
|
||||||
yaliang_info:'每当你对其他角色造成1点伤害后,或受到其他角色造成的1点伤害后,你可与该角色各摸一张牌。',
|
yaliang_info:'每当你对其他角色造成1点伤害后,或受到其他角色造成的1点伤害后,你可与该角色各摸一张牌。',
|
||||||
diy_jiaoxia_info:'每当你成为红色牌的目标,你可以摸一张牌',
|
diy_jiaoxia_info:'每当你成为红色牌的目标,你可以摸一张牌。',
|
||||||
zaiqix_info:'摸牌阶段,若你已受伤,你可以改为展示牌堆顶的X+1张牌,X为你已损失的体力值,其中每有一张♥牌,你回复1点体力,然后弃掉这些♥牌,将其余的牌收入手牌。',
|
zaiqix_info:'摸牌阶段,若你已受伤,你可以改为展示牌堆顶的X+1张牌,X为你已损失的体力值,其中每有一张♥牌,你回复1点体力,然后弃掉这些♥牌,将其余的牌收入手牌。',
|
||||||
batu_info:'结束阶段,你可以将手牌数补至X,X为现存的势力数',
|
batu_info:'结束阶段,你可以将手牌数补至X,X为现存的势力数。',
|
||||||
diyzaiqi_info:'锁定技,你摸牌阶段额外摸X张牌,X为你已损失的体力值',
|
diyzaiqi_info:'锁定技,你摸牌阶段额外摸X张牌,X为你已损失的体力值。',
|
||||||
diykuanggu_info:'锁定技,每当你造成1点伤害,你在其攻击范围内,你回复1点体力,否则你摸一张牌',
|
diykuanggu_info:'锁定技,每当你造成1点伤害,你在其攻击范围内,你回复1点体力,否则你摸一张牌。',
|
||||||
diyqiangxi_info:'出牌阶段,你可以自减1点体力或弃一张武器牌,然后你对你攻击范围内的一名角色造成1点伤害并弃置其一张牌,每回合限一次。',
|
diyqiangxi_info:'出牌阶段,你可以自减1点体力或弃一张武器牌,然后你对你攻击范围内的一名角色造成1点伤害并弃置其一张牌,每回合限一次。',
|
||||||
diyduanliang_info:'出牌阶段限一次,你可以将一张黑色的基本牌当兵粮寸断对一名角色使用,然后摸一张牌。你的兵粮寸断可以指定距离2以内的角色作为目标',
|
diyduanliang_info:'出牌阶段限一次,你可以将一张黑色的基本牌当兵粮寸断对一名角色使用,然后摸一张牌。你的兵粮寸断可以指定距离2以内的角色作为目标。',
|
||||||
guihan_info:'限定技,当你进入濒死状态时,可以指定一名男性角色与其各回复1点体力并摸两张牌',
|
guihan_info:'限定技,当你进入濒死状态时,可以指定一名男性角色与其各回复1点体力并摸两张牌。',
|
||||||
luweiyan_info:'出牌阶段限一次,你可以将一张非基本牌当作水攻使用;结算后你可以视为对其中一个目标使用一张不计入出杀次数的杀',
|
luweiyan_info:'出牌阶段限一次,你可以将一张非基本牌当作水攻使用;结算后你可以视为对其中一个目标使用一张不计入出杀次数的【杀】。',
|
||||||
xiongzi_info:'锁定技,你于摸牌阶段额外摸X+1张牌,X为你装备区牌数的一半,向下取整',
|
xiongzi_info:'锁定技,你于摸牌阶段额外摸X+1张牌,X为你装备区牌数的一半,向下取整。',
|
||||||
honglian_info:'每当你受到来自其他角色的伤害,可以弃置伤害来源的所有红色牌',
|
honglian_info:'每当你受到来自其他角色的伤害,可以弃置伤害来源的所有红色牌。',
|
||||||
jieyan_info:'出牌阶段限一次,你可以弃置一张红色手牌令场上所有角色受到1点火焰伤害',
|
jieyan_info:'出牌阶段限一次,你可以弃置一张红色手牌令场上所有角色受到1点火焰伤害。',
|
||||||
diyguhuo_info:'锁定技,准备阶段,你摸两张牌,然后弃置区域内的两张牌',
|
diyguhuo_info:'锁定技,准备阶段,你摸两张牌,然后弃置区域内的两张牌。',
|
||||||
diychanyuan_info:'锁定技,杀死你的角色失去1点体力上限',
|
diychanyuan_info:'锁定技,杀死你的角色失去1点体力上限。',
|
||||||
zonghuo_info:'你可弃置一张牌将你即将造成的伤害变为火焰伤害',
|
zonghuo_info:'你可弃置一张牌将你即将造成的伤害变为火焰伤害。',
|
||||||
shaoying_info:'每当你造成一次火焰伤害,可指定距离受伤害角色1以内的另一名角色,并展示牌堆顶的一张牌,若此牌为红色,该角色受到1点火焰伤害',
|
shaoying_info:'每当你造成一次火焰伤害,可指定距离受伤害角色1以内的另一名角色,并展示牌堆顶的一张牌,若此牌为红色,该角色受到1点火焰伤害。',
|
||||||
juedao_info:'出牌阶段,你可以弃置一张手牌,横置你的武将牌;锁定技,若你的武将牌横置,则你计算至其他角色的距离和其他角色计算至你的距离均+1。',
|
juedao_info:'出牌阶段,你可以弃置一张手牌,横置你的武将牌;锁定技,若你的武将牌横置,则你计算至其他角色的距离和其他角色计算至你的距离均+1。',
|
||||||
geju_info:'准备阶段开始时,你可以摸X张牌(X为攻击范围内不含有你的势力数)。',
|
geju_info:'准备阶段开始时,你可以摸X张牌(X为攻击范围内不含有你的势力数)。',
|
||||||
siji_info:'弃牌阶段结束后,你可以摸2X张牌(X为你于此阶段内弃置的【杀】的数量)。',
|
siji_info:'弃牌阶段结束后,你可以摸2X张牌(X为你于此阶段内弃置的【杀】的数量)。',
|
||||||
ciqiu_info:'锁定技,每当你使用【杀】对目标角色造成伤害时,若该角色未受伤,你令此伤害+1;若其因此进入濒死状态,你令其死亡,然后你失去“刺酋”。',
|
ciqiu_info:'锁定技,每当你使用【杀】对目标角色造成伤害时,若该角色未受伤,你令此伤害+1;若其因此进入濒死状态,你令其死亡,然后你失去“刺酋”。',
|
||||||
nsshuaiyan_info:'每当其他角色于你的回合外回复体力后,你可以令该角色选择一项:1.令你摸一张牌;2.令你弃置其一张牌。',
|
nsshuaiyan_info:'每当其他角色于你的回合外回复体力后,你可以令该角色选择一项:1.令你摸一张牌;2.令你弃置其一张牌。',
|
||||||
moshou_info:'锁定技,你不能成为乐不思蜀和兵粮寸断的目标。',
|
moshou_info:'锁定技,你不能成为乐不思蜀和兵粮寸断的目标。',
|
||||||
xicai_info:'你可以立即获得对你造成伤害的牌',
|
xicai_info:'你可以立即获得对你造成伤害的牌。',
|
||||||
diyjianxiong_info:'锁定技,在身份局中,在你回合内死亡的角色均视为反贼,国战中,在你回合内死亡的角色若与你势力相同则随机改为另一个势力',
|
diyjianxiong_info:'锁定技,在身份局中,在你回合内死亡的角色均视为反贼,国战中,在你回合内死亡的角色若与你势力相同则随机改为另一个势力。',
|
||||||
|
|
||||||
ns_zanghong:'臧洪',
|
ns_zanghong:'臧洪',
|
||||||
nsshimeng:'誓盟',
|
nsshimeng:'誓盟',
|
||||||
|
|
|
@ -100,7 +100,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
filterTarget:function(card,player,target){
|
filterTarget:function(card,player,target){
|
||||||
return !target.hasSkill('wuling_wuqinxi');
|
return !target.hasSkill('wuling_wuqinxi');
|
||||||
},
|
},
|
||||||
usable:1,
|
usable:2,
|
||||||
prompt:'选择一名角色,向其传授“五禽戏”',
|
prompt:'选择一名角色,向其传授“五禽戏”',
|
||||||
group:'wuling_die',
|
group:'wuling_die',
|
||||||
content:function(){
|
content:function(){
|
||||||
|
@ -154,9 +154,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
wuqinxiMap:[
|
wuqinxiMap:[
|
||||||
'虎:当你使用指定唯一目标的牌对目标角色造成伤害时,此伤害+1。',
|
'虎:当你使用指定唯一目标的牌对目标角色造成伤害时,此伤害+1。',
|
||||||
'鹿:①当你获得此效果时,你回复1点体力并弃置判定区的所有牌。②你不能成为延时锦囊牌的目标。',
|
'鹿:①当你获得此效果时,你回复1点体力并弃置判定区的所有牌。②你不能成为延时锦囊牌的目标。',
|
||||||
'熊:当你受到伤害时,此伤害-1。',
|
'熊:每回合限一次,当你受到伤害时,此伤害-1。',
|
||||||
'猿:出牌阶段开始时,你选择一名角色,随机获得其装备区里的一张牌。',
|
'猿:出牌阶段开始时,你选择一名角色,随机获得其装备区里的一张牌。',
|
||||||
'鹤:出牌阶段开始时,你摸两张牌。',
|
'鹤:出牌阶段开始时,你摸三张牌。',
|
||||||
],
|
],
|
||||||
updateMark:function(player){
|
updateMark:function(player){
|
||||||
var wuqinxi=player.storage.wuling_wuqinxi;
|
var wuqinxi=player.storage.wuling_wuqinxi;
|
||||||
|
@ -226,7 +226,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var evt=event.getParent('useCard');
|
var evt=event.getParent('useCard');
|
||||||
return evt.targets&&evt.targets.length==1&&evt.targets.includes(event.player);
|
return evt.targets&&evt.targets.length==1&&evt.targets.includes(event.player);
|
||||||
case 'damageBegin4':
|
case 'damageBegin4':
|
||||||
return wuqinxi=='熊';
|
return wuqinxi=='熊'&&!player.hasSkill('wuling_xiong');
|
||||||
default:
|
default:
|
||||||
if(wuqinxi=='鹤') return true;
|
if(wuqinxi=='鹤') return true;
|
||||||
if(wuqinxi!='猿') return false;
|
if(wuqinxi!='猿') return false;
|
||||||
|
@ -251,12 +251,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
event.finish();
|
event.finish();
|
||||||
break;
|
break;
|
||||||
case 'damageBegin4':
|
case 'damageBegin4':
|
||||||
|
player.addTempSkill('wuling_xiong');
|
||||||
trigger.num--;
|
trigger.num--;
|
||||||
event.finish();
|
event.finish();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if(wuqinxi=='鹤'){
|
if(wuqinxi=='鹤'){
|
||||||
player.draw(2);
|
player.draw(3);
|
||||||
event.finish();
|
event.finish();
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -290,7 +291,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
const curWuqinxi=wuqinxi[0];
|
const curWuqinxi=wuqinxi[0];
|
||||||
const nextWuqinxi=wuqinxi[1];
|
const nextWuqinxi=wuqinxi[1];
|
||||||
if(nextWuqinxi=='鹿'&&get.type(card)=='delay') return 'zerotarget';
|
if(nextWuqinxi=='鹿'&&get.type(card)=='delay') return 'zerotarget';
|
||||||
if(curWuqinxi!='熊') return;
|
if(curWuqinxi!='熊'||player.hasSkill('wuling_xiong')) return;
|
||||||
if(player.hasSkillTag('jueqing',false,target)) return;
|
if(player.hasSkillTag('jueqing',false,target)) return;
|
||||||
var num=get.tag(card,'damage');
|
var num=get.tag(card,'damage');
|
||||||
if(num){
|
if(num){
|
||||||
|
@ -301,6 +302,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
xiong:{charlotte:true},
|
||||||
die:{
|
die:{
|
||||||
trigger:{player:'die'},
|
trigger:{player:'die'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
|
@ -374,6 +376,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
//神贾诩
|
//神贾诩
|
||||||
jxlianpo:{
|
jxlianpo:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
init:()=>{
|
||||||
|
game.addGlobalSkill('jxlianpo_global');
|
||||||
|
},
|
||||||
|
onremove:()=>{
|
||||||
|
if(!game.hasPlayer(i=>i.hasSkill('jxlianpo'),true)) game.removeGlobalSkill('jxlianpo_global');
|
||||||
|
},
|
||||||
trigger:{global:'dieAfter'},
|
trigger:{global:'dieAfter'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(lib.skill.jxlianpo.getMax().length<=1) return false;
|
if(lib.skill.jxlianpo.getMax().length<=1) return false;
|
||||||
|
@ -381,7 +389,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
logTarget:'source',
|
logTarget:'source',
|
||||||
global:'jxlianpo_global',
|
|
||||||
getMax:()=>{
|
getMax:()=>{
|
||||||
const map={
|
const map={
|
||||||
zhu:game.countPlayer(current=>{
|
zhu:game.countPlayer(current=>{
|
||||||
|
@ -521,20 +528,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
cardSavable:function(card,player,target){
|
cardSavable:function(card,player,target){
|
||||||
if(card.name=='tao'){
|
if(card.name=='tao'&&!player.hasSkill('jxlianpo')){
|
||||||
if(!lib.skill.jxlianpo.getMax().includes('zhu')) return;
|
if(!lib.skill.jxlianpo.getMax().includes('zhu')) return;
|
||||||
if(player==target) return;
|
if(player==target) return;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
playerEnabled:function(card,player,target){
|
playerEnabled:function(card,player,target){
|
||||||
if(card.name=='tao'){
|
if(card.name=='tao'&&!player.hasSkill('jxlianpo')){
|
||||||
if(!lib.skill.jxlianpo.getMax().includes('zhu')) return;
|
if(!lib.skill.jxlianpo.getMax().includes('zhu')) return;
|
||||||
if(player==target) return;
|
if(player==target) return;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
trigger:{player:'dieAfter'},
|
||||||
|
filter:()=>{
|
||||||
|
return !game.hasPlayer(i=>i.hasSkill('jxlianpo'),true);
|
||||||
|
},
|
||||||
|
silent:true,
|
||||||
|
forceDie:true,
|
||||||
|
content:()=>{
|
||||||
|
game.removeGlobalSkill('jxlianpo_global');
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -996,7 +1012,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var hasRuanshizi=game.hasPlayer(function(target){
|
var hasRuanshizi=game.hasPlayer(function(target){
|
||||||
return target!=player&&player.canUse('sha',target,null,true)&&!target.mayHaveShan()&&get.attitude(player,target)<0&&get.effect(target,{name:'sha'},player,player)>0;
|
return target!=player&&player.canUse('sha',target,null,true)&&!target.mayHaveShan(player,'use')&&get.attitude(player,target)<0&&get.effect(target,{name:'sha'},player,player)>0;
|
||||||
})
|
})
|
||||||
for(var card of hs){
|
for(var card of hs){
|
||||||
var name=get.name(card);
|
var name=get.name(card);
|
||||||
|
@ -1992,6 +2008,30 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
ai:{
|
||||||
|
notemp:true,
|
||||||
|
maixie_defend:true,
|
||||||
|
effect:{
|
||||||
|
target:(card,player,target)=>{
|
||||||
|
if(!get.tag(card,'damage')||!target.hasFriend()) return;
|
||||||
|
let die=[],extra=[null,0],temp;
|
||||||
|
game.filterPlayer(i=>{
|
||||||
|
if(!i.hasMark('twwuhun')) return false;
|
||||||
|
temp=get.attitude(target,i);
|
||||||
|
if(temp<0) die.push(i);
|
||||||
|
else{
|
||||||
|
temp=Math.sqrt(att)*i.countMark('twwuhun');
|
||||||
|
if(!extra[0]||temp<extra[1]) extra=[i,temp];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(extra[0]&&!die.length) die.push(extra[0]);
|
||||||
|
if(target.hp+target.hujia>1&&(!die.length||get.attitude(player,target)<=0)) die.add(player);
|
||||||
|
if(die.length) return [1,0,1,die.reduce((num,i)=>{
|
||||||
|
return num-=2*get.sgnAttitude(player,i);
|
||||||
|
},0)];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
shouli:{
|
shouli:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -2169,6 +2209,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
intro:{
|
intro:{
|
||||||
content:'受到的伤害+1且改为雷属性',
|
content:'受到的伤害+1且改为雷属性',
|
||||||
},
|
},
|
||||||
|
ai:{
|
||||||
|
effect:{
|
||||||
|
target:(card,player,target)=>{
|
||||||
|
if(!get.tag(card,'damage')) return;
|
||||||
|
if(target.hasSkillTag('nodamage')||target.hasSkillTag('nothunder')) return 'zeroplayertarget';
|
||||||
|
if(target.hasSkillTag('filterDamage',null,{
|
||||||
|
player:player,
|
||||||
|
card:new lib.element.VCard({
|
||||||
|
name:card.name,
|
||||||
|
nature:'thunder'
|
||||||
|
},[card])
|
||||||
|
})) return;
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
init:{
|
init:{
|
||||||
audio:'shouli',
|
audio:'shouli',
|
||||||
|
@ -2249,6 +2305,32 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
});
|
});
|
||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
ai:{
|
||||||
|
effect:{
|
||||||
|
player:(card,player,target)=>{
|
||||||
|
if(typeof card!=='object') return;
|
||||||
|
let suit=get.suit(card);
|
||||||
|
if(!lib.suit.contains(suit)||player.hasCard(function(i){
|
||||||
|
return get.suit(i,player)==suit;
|
||||||
|
},'h')) return;
|
||||||
|
return [1,0.8*game.countPlayer(current=>{
|
||||||
|
return current.countCards('e',card=>{
|
||||||
|
return get.suit(card,current)==suit;
|
||||||
|
});
|
||||||
|
})];
|
||||||
|
},
|
||||||
|
target:(card,player,target)=>{
|
||||||
|
if(card.name==='sha'&&!player.hasSkillTag('directHit_ai',true,{
|
||||||
|
target:target,
|
||||||
|
card:card
|
||||||
|
},true)&&game.hasPlayer(current=>{
|
||||||
|
return current.hasCard(cardx=>{
|
||||||
|
return get.subtype(cardx)==='equip3';
|
||||||
|
},'e');
|
||||||
|
})) return [0, -0.5];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
changandajian_equip5:{
|
changandajian_equip5:{
|
||||||
equipSkill:true,
|
equipSkill:true,
|
||||||
|
@ -3214,7 +3296,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ai:{
|
ai:{
|
||||||
effect:{
|
effect:{
|
||||||
target:function(card,player,target){
|
target:function(card,player,target){
|
||||||
if(card&&card.name=='qizhengxiangsheng') return 'zerotarget';
|
if(card&&card.name=='qizhengxiangsheng') return 'zeroplayertarget';
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -3293,18 +3375,42 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(!map[id]) map[id]={};
|
if(!map[id]) map[id]={};
|
||||||
map[id].qizheng_name=result.control;
|
map[id].qizheng_name=result.control;
|
||||||
map[id].qizheng_aibuff=get.attitude(player,target)>0;
|
map[id].qizheng_aibuff=get.attitude(player,target)>0;
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
lingce:{
|
lingce:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
init:(player)=>{
|
||||||
|
game.addGlobalSkill('lingce_global');
|
||||||
|
},
|
||||||
trigger:{global:'useCard'},
|
trigger:{global:'useCard'},
|
||||||
forced:true,
|
forced:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return (event.card.name=='qizhengxiangsheng'||get.zhinangs().contains(event.card.name)||player.getStorage('dinghan').contains(event.card.name))&&event.card.isCard&&event.cards.length==1;
|
return (event.card.name=='qizhengxiangsheng'||get.zhinangs().contains(event.card.name)||player.getStorage('dinghan').contains(event.card.name))&&event.card.isCard&&event.cards.length==1;
|
||||||
},
|
},
|
||||||
content:function(){player.draw()},
|
content:function(){
|
||||||
|
player.draw();
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
global:{
|
||||||
|
ai:{
|
||||||
|
effect:{
|
||||||
|
player:(card,player,target)=>{
|
||||||
|
let num=0,nohave=true;
|
||||||
|
game.countPlayer(i=>{
|
||||||
|
if(i.hasSkill('lingce')){
|
||||||
|
nohave=false;
|
||||||
|
if(i.isIn()&&lib.skill.lingce.filter({card:card},i)) num+=get.sgnAttitude(player,i);
|
||||||
|
}
|
||||||
|
},true);
|
||||||
|
if(nohave) game.removeGlobalSkill('lingce_global');
|
||||||
|
else return [1,0.8*num];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
dinghan:{
|
dinghan:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -4710,8 +4816,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
group:'new_wuhun_die',
|
group:'new_wuhun_die',
|
||||||
ai:{
|
ai:{
|
||||||
threaten:0.01,
|
|
||||||
notemp:true,
|
notemp:true,
|
||||||
|
effect:{
|
||||||
|
target:(card,player,target)=>{
|
||||||
|
if(!get.tag(card,'damage')||!target.hasFriend()) return;
|
||||||
|
if(player.hasSkillTag('jueqing',null,target)) return 1.7;
|
||||||
|
let die=[null,1],temp;
|
||||||
|
game.filterPlayer(i=>{
|
||||||
|
temp=i.countMark('new_wuhun');
|
||||||
|
if(i===player&&target.hp+target.hujia>1) temp++;
|
||||||
|
if(temp>=die[1]){
|
||||||
|
if(!die[0]) die=[i,temp];
|
||||||
|
else{
|
||||||
|
let att=get.attitude(player,i);
|
||||||
|
if(att<die[1]) die=[i,temp];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(die[0]) return [1,0,1,-6*get.sgnAttitude(player,die[0])/Math.max(1,target.hp)];
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
marktext:'魇',
|
marktext:'魇',
|
||||||
intro:{
|
intro:{
|
||||||
|
@ -5440,7 +5564,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
effect:{
|
effect:{
|
||||||
player:(card,player,target)=>{
|
player:(card,player,target)=>{
|
||||||
if(player.hasSkill('rewansha')&&target.hp<=1&&get.tag(card,'damage')) return [1,0,1.5,-1.5];
|
if(target&&player.hasSkill('rewansha')&&target.hp<=1&&get.tag(card,'damage')) return [1,0,1.5,-1.5];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7875,14 +7999,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
shen_huatuo:'神华佗',
|
shen_huatuo:'神华佗',
|
||||||
shen_huatuo_prefix:'神',
|
shen_huatuo_prefix:'神',
|
||||||
wuling:'五灵',
|
wuling:'五灵',
|
||||||
wuling_info:'①出牌阶段限一次。你可以选择一名没有“五禽戏”的角色,按照你选择的顺序向其传授“五禽戏”,且其获得如下效果:其获得你选择的第一种“五禽戏”的效果,并在其每个准备阶段移除当前“五禽戏”的效果并切换为下一种。②当你死亡时,你令场上的角色失去你传授的“五禽戏”。',
|
wuling_info:'①出牌阶段限两次。你可以选择一名没有“五禽戏”的角色,按照你选择的顺序向其传授“五禽戏”,且其获得如下效果:其获得你选择的第一种“五禽戏”的效果,并在其每个准备阶段移除当前“五禽戏”的效果并切换为下一种。②当你死亡时,你令场上的角色失去你传授的“五禽戏”。',
|
||||||
wuling_wuqinxi:'五禽戏',
|
wuling_wuqinxi:'五禽戏',
|
||||||
wuling_wuqinxi_info:'<br><li>“五禽戏”分为“虎、鹿、熊、猿、鹤”五个不同的效果:'+
|
wuling_wuqinxi_info:'<br><li>“五禽戏”分为“虎、鹿、熊、猿、鹤”五个不同的效果:'+
|
||||||
'<br><li>虎:当你使用指定唯一目标的牌对目标角色造成伤害时,此伤害+1。'+
|
'<br><li>虎:当你使用指定唯一目标的牌对目标角色造成伤害时,此伤害+1。'+
|
||||||
'<br><li>鹿:①当你获得此效果时,你回复1点体力并弃置判定区的所有牌。②你不能成为延时锦囊牌的目标。'+
|
'<br><li>鹿:①当你获得此效果时,你回复1点体力并弃置判定区的所有牌。②你不能成为延时锦囊牌的目标。'+
|
||||||
'<br><li>熊:当你受到伤害时,此伤害-1。'+
|
'<br><li>熊:每回合限一次,当你受到伤害时,此伤害-1。'+
|
||||||
'<br><li>猿:出牌阶段开始时,你选择一名角色,随机获得其装备区里的一张牌。'+
|
'<br><li>猿:出牌阶段开始时,你选择一名角色,随机获得其装备区里的一张牌。'+
|
||||||
'<br><li>鹤:出牌阶段开始时,你摸两张牌。',
|
'<br><li>鹤:出牌阶段开始时,你摸三张牌。',
|
||||||
youyi:'游医',
|
youyi:'游医',
|
||||||
youyi_info:'①弃牌阶段结束时,你可以将所有于此阶段弃置的牌置入仁区。②出牌阶段限一次。你可以将仁区的所有牌置入弃牌堆,令所有角色各回复1点体力。',
|
youyi_info:'①弃牌阶段结束时,你可以将所有于此阶段弃置的牌置入仁区。②出牌阶段限一次。你可以将仁区的所有牌置入弃牌堆,令所有角色各回复1点体力。',
|
||||||
|
|
||||||
|
|
|
@ -1638,11 +1638,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
meiying:{
|
meiying:{
|
||||||
global:'meiying2',
|
|
||||||
globalSilent:true,
|
globalSilent:true,
|
||||||
trigger:{global:'phaseEnd'},
|
trigger:{global:'phaseEnd'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return event.player!=player&&!event.player.tempSkills.meiying3&&event.player.isAlive()&&player.countCards('he',{color:'red'})>0;
|
return event.player!=player&&event.player.isAlive()&&player.countCards('he',{color:'red'})&&event.player.getHistory('useCard',evt=>{
|
||||||
|
return evt.targets&&evt.targets.some(i=>i!==event.player);
|
||||||
|
}).length===0;
|
||||||
},
|
},
|
||||||
direct:true,
|
direct:true,
|
||||||
content:function(){
|
content:function(){
|
||||||
|
@ -1665,18 +1666,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
expose:0.1
|
expose:0.1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
meiying2:{
|
|
||||||
trigger:{player:'useCard'},
|
|
||||||
filter:function(event,player){
|
|
||||||
return _status.currentPhase==player&&event.targets&&(event.targets.length>1||event.targets[0]!=player);
|
|
||||||
},
|
|
||||||
forced:true,
|
|
||||||
popup:false,
|
|
||||||
content:function(){
|
|
||||||
player.addTempSkill('meiying3');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
meiying3:{},
|
|
||||||
jianwu:{
|
jianwu:{
|
||||||
trigger:{player:'shaBegin'},
|
trigger:{player:'shaBegin'},
|
||||||
forced:true,
|
forced:true,
|
||||||
|
@ -2644,120 +2633,120 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
gjqt_cenying:'岑缨',
|
gjqt_cenying:'岑缨',
|
||||||
|
|
||||||
yunyou:'云游',
|
yunyou:'云游',
|
||||||
yunyou_info:'每两轮限一次,出牌阶段,你可以发现一张地图牌本局未使用过的地图牌并使用之',
|
yunyou_info:'每两轮限一次,出牌阶段,你可以发现一张地图牌本局未使用过的地图牌并使用之。',
|
||||||
xuanzhen:'玄阵',
|
xuanzhen:'玄阵',
|
||||||
// xuanzhen_bg:'阵',
|
// xuanzhen_bg:'阵',
|
||||||
xuanzhen_info:'每轮限一次,当你成为一名其他角色的卡牌惟一目标时,你可以发现一张牌代替此牌',
|
xuanzhen_info:'每轮限一次,当你成为一名其他角色的卡牌惟一目标时,你可以发现一张牌代替此牌。',
|
||||||
qingshu:'青书',
|
qingshu:'青书',
|
||||||
qingshu_info:'结束阶段,你可以令一名角色永久获得一个你使用过且不是当前地图的地图牌效果(每个地图最多发动一次)',
|
qingshu_info:'结束阶段,你可以令一名角色永久获得一个你使用过且不是当前地图的地图牌效果(每个地图最多发动一次)。',
|
||||||
yanjiadan_heart:'偃甲蛋',
|
yanjiadan_heart:'偃甲蛋',
|
||||||
yanjiadan_heart_info:'可以当作紫阳丹、玉女元参或沙棠使用',
|
yanjiadan_heart_info:'可以当作紫阳丹、玉女元参或沙棠使用。',
|
||||||
yanjiadan_diamond:'偃甲蛋',
|
yanjiadan_diamond:'偃甲蛋',
|
||||||
yanjiadan_diamond_info:'可以当作流风散、舒筋散或神火飞鸦使用',
|
yanjiadan_diamond_info:'可以当作流风散、舒筋散或神火飞鸦使用。',
|
||||||
yanjiadan_club:'偃甲蛋',
|
yanjiadan_club:'偃甲蛋',
|
||||||
yanjiadan_club_info:'可以当作天女散花、六骰格或锦里针使用',
|
yanjiadan_club_info:'可以当作天女散花、六骰格或锦里针使用。',
|
||||||
yanjiadan_spade:'偃甲蛋',
|
yanjiadan_spade:'偃甲蛋',
|
||||||
yanjiadan_spade_info:'可以当作飞镖、乾坤镖或龙须钩使用',
|
yanjiadan_spade_info:'可以当作飞镖、乾坤镖或龙须钩使用。',
|
||||||
lingyan:'灵偃',
|
lingyan:'灵偃',
|
||||||
lingyan_bg:'偃',
|
lingyan_bg:'偃',
|
||||||
lingyan_info:'出牌阶段限一次,你可以将一张点数与武将牌上的牌均不同的手牌置于武将牌上,然后获得与其花色对应的一枚偃甲蛋',
|
lingyan_info:'出牌阶段限一次,你可以将一张点数与武将牌上的牌均不同的手牌置于武将牌上,然后获得与其花色对应的一枚偃甲蛋。',
|
||||||
xunjian:'寻剑',
|
xunjian:'寻剑',
|
||||||
xunjian_info:'锁定技,每当你使用或打出一张牌,若牌堆中有同名牌,你有X的机率获得之,X为你的“灵偃”牌数/13',
|
xunjian_info:'锁定技,每当你使用或打出一张牌,若牌堆中有同名牌,你有X的机率获得之,X为你的“灵偃”牌数/13。',
|
||||||
xunjian_old_info:'觉醒技,结束阶段,若你武将牌上有十三张牌,你失去技能灵偃并获得技能通天',
|
xunjian_old_info:'觉醒技,结束阶段,若你武将牌上有十三张牌,你失去技能灵偃并获得技能通天。',
|
||||||
tongtian:'通天',
|
tongtian:'通天',
|
||||||
tongtian_info:'锁定技,在你使用或打出一张牌后,若敌方角色手中有同名牌,你随机获得其中一张',
|
tongtian_info:'锁定技,在你使用或打出一张牌后,若敌方角色手中有同名牌,你随机获得其中一张。',
|
||||||
xianju:'仙居',
|
xianju:'仙居',
|
||||||
xianju_info:'锁定技,奇数游戏轮次开始时,你获得潜行直到下一轮开始;偶数游戏轮次开始时,你随机获得一张机关牌',
|
xianju_info:'锁定技,奇数游戏轮次开始时,你获得潜行直到下一轮开始;偶数游戏轮次开始时,你随机获得一张机关牌。',
|
||||||
xuanci:'旋刺',
|
xuanci:'旋刺',
|
||||||
xuanci_info:'出牌阶段限一次,你可以将一张梅花牌当作飞镖使用;锁定技,你使用飞镖无距离限制,你使用飞镖后对目标结算后视为对目标使用一张杀',
|
xuanci_info:'出牌阶段限一次,你可以将一张梅花牌当作飞镖使用;锁定技,你使用飞镖无距离限制,你使用飞镖后对目标结算后视为对目标使用一张杀。',
|
||||||
humeng:'湖梦',
|
humeng:'湖梦',
|
||||||
humeng_sub:'偃甲谢衣',
|
humeng_sub:'偃甲谢衣',
|
||||||
humeng_info:'觉醒技,当你使用过4种不同的偃甲蛋后,你获得替身偃甲谢衣;觉醒技,当你进入濒死状态时,你弃置所有牌,摸四张牌,变身为初七并激活偃甲谢衣',
|
humeng_info:'觉醒技,当你使用过4种不同的偃甲蛋后,你获得替身偃甲谢衣;觉醒技,当你进入濒死状态时,你弃置所有牌,摸四张牌,变身为初七并激活偃甲谢衣。',
|
||||||
yange:'魇歌',
|
yange:'魇歌',
|
||||||
yange_info:'游戏开始时,你获得数量等于敌方角色数的“魇”标记;准备阶段开始时,你可以移去一枚“魇”标记并变为一名其他存活角色的复制,此回合结束后你变回原角色',
|
yange_info:'游戏开始时,你获得数量等于敌方角色数的“魇”标记;准备阶段开始时,你可以移去一枚“魇”标记并变为一名其他存活角色的复制,此回合结束后你变回原角色。',
|
||||||
woxue:'卧雪',
|
woxue:'卧雪',
|
||||||
woxue_info:'每当你于回合外使用或打出一张牌,你可以视为对当前回合角色使用【白霜】',
|
woxue_info:'每当你于回合外使用或打出一张牌,你可以视为对当前回合角色使用【白霜】。',
|
||||||
lingnu:'灵怒',
|
lingnu:'灵怒',
|
||||||
lingnu_info:'锁定技,每当你造成1点伤害,你随机获得一个与杀相关的技能,技能在你行动3回合后消失(同一时间最多拥有3个以此法获得的技能)',
|
lingnu_info:'锁定技,每当你造成1点伤害,你随机获得一个与杀相关的技能,技能在你行动3回合后消失(同一时间最多拥有3个以此法获得的技能)。',
|
||||||
zhenying:'振影',
|
zhenying:'振影',
|
||||||
zhenying_info:'每当你使用或打出一张非转化的黑色牌(装备或延时锦囊牌除外),你可以获得一张此牌的“替身”;你使用或打出“替身”牌后需弃置一张牌(没有则不弃);当前回合结束后,“替身”牌消失',
|
zhenying_info:'每当你使用或打出一张非转化的黑色牌(装备或延时锦囊牌除外),你可以获得一张此牌的“替身”;你使用或打出“替身”牌后需弃置一张牌(没有则不弃);当前回合结束后,“替身”牌消失。',
|
||||||
cihong:'刺鸿',
|
cihong:'刺鸿',
|
||||||
cihong_bg:'鸿',
|
cihong_bg:'鸿',
|
||||||
cihong_info:'每三轮限一次,结束阶段,你可以指定一名其他角色并可以依次选择:1. 弃置一张红色牌;2. 失去1点体力;3. 将武将牌翻至背面;每选择一项,视为对目标使用一张杀',
|
cihong_info:'每三轮限一次,结束阶段,你可以指定一名其他角色并可以依次选择:1. 弃置一张红色牌;2. 失去1点体力;3. 将武将牌翻至背面;每选择一项,视为对目标使用一张杀。',
|
||||||
lianjing:'莲境',
|
lianjing:'莲境',
|
||||||
lianjing_info:'每两轮限一次,回合结束后,你可以选择至多2名其他角色,将其他角色移出游戏,然后你与所选的角色依次进行一个回合',
|
lianjing_info:'每两轮限一次,回合结束后,你可以选择至多2名其他角色,将其他角色移出游戏,然后你与所选的角色依次进行一个回合。',
|
||||||
zuiji:'醉饮',
|
zuiji:'醉饮',
|
||||||
zuiji_info:'出牌阶段,你可以将一张手牌或装备牌当作酒使用',
|
zuiji_info:'出牌阶段,你可以将一张手牌或装备牌当作酒使用。',
|
||||||
manwu:'曼舞',
|
manwu:'曼舞',
|
||||||
manwu_info:'在一名角色的结束阶段,若其手牌数为全场最少或之一,你可以令其摸一张牌',
|
manwu_info:'在一名角色的结束阶段,若其手牌数为全场最少或之一,你可以令其摸一张牌。',
|
||||||
xfanghua:'芳华',
|
xfanghua:'芳华',
|
||||||
xfanghua_info:'在你成为红色牌的目标后,你可以回复1点体力',
|
xfanghua_info:'在你成为红色牌的目标后,你可以回复1点体力。',
|
||||||
yunyin:'云音',
|
yunyin:'云音',
|
||||||
yunyin_info:'结束阶段,你可以弃置一张与本回合使用过的卡牌花色均不相同的手牌,视为使用一张基本牌或普通锦囊牌',
|
yunyin_info:'结束阶段,你可以弃置一张与本回合使用过的卡牌花色均不相同的手牌,视为使用一张基本牌或普通锦囊牌。',
|
||||||
shishui:'逝水',
|
shishui:'逝水',
|
||||||
shishui_info:'锁定技,每当你使用一张红色牌,你令目标失去1点体力',
|
shishui_info:'锁定技,每当你使用一张红色牌,你令目标失去1点体力。',
|
||||||
duhun:'渡魂',
|
duhun:'渡魂',
|
||||||
duhun_info:'濒死阶段,你可以与一名体力值不超过你的体力上限的角色拼点,若你赢,你失去1点体力上限并与该角色交换体力值;若你没赢,你立即死亡',
|
duhun_info:'濒死阶段,你可以与一名体力值不超过你的体力上限的角色拼点,若你赢,你失去1点体力上限并与该角色交换体力值;若你没赢,你立即死亡。',
|
||||||
duhun_info_alter:'濒死阶段,你可以与一名体力值不超过你的体力上限的角色拼点,若你赢,你失去1点体力上限并将体力值回复至与该角色相同;若你没赢,你立即死亡',
|
duhun_info_alter:'濒死阶段,你可以与一名体力值不超过你的体力上限的角色拼点,若你赢,你失去1点体力上限并将体力值回复至与该角色相同;若你没赢,你立即死亡。',
|
||||||
chizhen:'驰阵',
|
chizhen:'驰阵',
|
||||||
chizhen_info:'出牌阶段开始时,你可以摸X张牌并弃置X张牌,若你弃置了杀,可以视为使用一张决斗(X为你已损失的体力值且至少为1)',
|
chizhen_info:'出牌阶段开始时,你可以摸X张牌并弃置X张牌,若你弃置了杀,可以视为使用一张决斗(X为你已损失的体力值且至少为1)。',
|
||||||
xidie:'戏蝶',
|
xidie:'戏蝶',
|
||||||
xidie2:'戏蝶',
|
xidie2:'戏蝶',
|
||||||
xidie_info:'准备阶段,若你的手牌数大于体力值,可以弃置至多X张牌,并于结束阶段摸等量的牌,X为你的体力值与手牌数之差且不超过3',
|
xidie_info:'准备阶段,若你的手牌数大于体力值,可以弃置至多X张牌,并于结束阶段摸等量的牌,X为你的体力值与手牌数之差且不超过3。',
|
||||||
meihu:'魅狐',
|
meihu:'魅狐',
|
||||||
meihu2:'魅狐',
|
meihu2:'魅狐',
|
||||||
meihu_info:'当你受到伤害后,可令伤害来源交给你一张手牌',
|
meihu_info:'当你受到伤害后,可令伤害来源交给你一张手牌。',
|
||||||
jianwu:'剑舞',
|
jianwu:'剑舞',
|
||||||
jianwu_info:'锁定技,攻击范围不含你的角色无法闪避你的杀',
|
jianwu_info:'锁定技,攻击范围不含你的角色无法闪避你的杀。',
|
||||||
meiying:'魅影',
|
meiying:'魅影',
|
||||||
meiying_info:'一名其他角色的回合结束时,若其未于此回合内使用过指定另一名角色为目标的牌,你可以弃置一张红色牌视为对其使用一张杀',
|
meiying_info:'一名其他角色的回合结束时,若其未于此回合内使用过指定另一名角色为目标的牌,你可以弃置一张红色牌视为对其使用一张杀。',
|
||||||
zuizhan:'乱斩',
|
zuizhan:'乱斩',
|
||||||
zuizhan_info:'每当你使用一张杀,可以摸一张牌,然后此杀随机增加一个额外目标',
|
zuizhan_info:'每当你使用一张杀,可以摸一张牌,然后此杀随机增加一个额外目标。',
|
||||||
xlqianhuan:'千幻',
|
xlqianhuan:'千幻',
|
||||||
xlqianhuan_info:'回合结束后,若你已受伤,你可以回复1点体力并将武将牌翻面。若你的武将牌背面朝上,你不能使用卡牌,也不能成为卡牌的目标',
|
xlqianhuan_info:'回合结束后,若你已受伤,你可以回复1点体力并将武将牌翻面。若你的武将牌背面朝上,你不能使用卡牌,也不能成为卡牌的目标。',
|
||||||
fumo:'伏魔',
|
fumo:'伏魔',
|
||||||
fumo_info:'每当你受到一次伤害,可以弃置两张颜色相同的手牌并对伤害来源造成1点雷电伤害',
|
fumo_info:'每当你受到一次伤害,可以弃置两张颜色相同的手牌并对伤害来源造成1点雷电伤害。',
|
||||||
fanyin:'梵音',
|
fanyin:'梵音',
|
||||||
fanyin_info:'结束阶段,你可以令一名角色复原武将牌并移除判定区内的牌;若其体力值是全场最少的之一,其回复1点体力',
|
fanyin_info:'结束阶段,你可以令一名角色复原武将牌并移除判定区内的牌;若其体力值是全场最少的之一,其回复1点体力。',
|
||||||
mingkong:'明空',
|
mingkong:'明空',
|
||||||
mingkong_info:'锁定技,若你没有手牌,你受到的伤害-1,然后伤害来源摸一张牌',
|
mingkong_info:'锁定技,若你没有手牌,你受到的伤害-1,然后伤害来源摸一张牌。',
|
||||||
qinglan:'晴岚',
|
qinglan:'晴岚',
|
||||||
qinglan_info:'每当有一名角色即将受到属性伤害,你可以弃置一张牌令其防止此伤害,然后伤害来源摸一张牌并回复1点体力',
|
qinglan_info:'每当有一名角色即将受到属性伤害,你可以弃置一张牌令其防止此伤害,然后伤害来源摸一张牌并回复1点体力。',
|
||||||
yuehua:'月华',
|
yuehua:'月华',
|
||||||
yuehua_info:'每当你于回合外使用、打出或弃置红色牌,你可以摸一张牌',
|
yuehua_info:'每当你于回合外使用、打出或弃置红色牌,你可以摸一张牌。',
|
||||||
xuelu:'血戮',
|
xuelu:'血戮',
|
||||||
xuelu_info:'结束阶段,若你已受伤,你可以弃置一张红色牌并对一名其他角色造成1点火焰伤害;若你已损失体力值不少于3,改为造成2点火焰伤害',
|
xuelu_info:'结束阶段,若你已受伤,你可以弃置一张红色牌并对一名其他角色造成1点火焰伤害;若你已损失体力值不少于3,改为造成2点火焰伤害。',
|
||||||
xuelu_info_alter:'结束阶段,若你已受伤,你可以弃置一张红色牌并对一名其他角色造成1点火焰伤害',
|
xuelu_info_alter:'结束阶段,若你已受伤,你可以弃置一张红色牌并对一名其他角色造成1点火焰伤害。',
|
||||||
fanshi:'反噬',
|
fanshi:'反噬',
|
||||||
fanshi_info:'锁定技,弃牌阶段结束时,若你本回合内造成过伤害,你失去1点体力并摸一张牌',
|
fanshi_info:'锁定技,弃牌阶段结束时,若你本回合内造成过伤害,你失去1点体力并摸一张牌。',
|
||||||
shahun:'煞魂',
|
shahun:'煞魂',
|
||||||
shahun2:'煞魂',
|
shahun2:'煞魂',
|
||||||
shahun_info:'限定技,濒死阶段,你可以复原武将牌,弃置所有牌并摸三张牌,然后将体力回复至1;若如此做,你失去技能〖反噬〗,获得技能〖绝境〗,并于两回合后立即死亡',
|
shahun_info:'限定技,濒死阶段,你可以复原武将牌,弃置所有牌并摸三张牌,然后将体力回复至1;若如此做,你失去技能〖反噬〗,获得技能〖绝境〗,并于两回合后立即死亡。',
|
||||||
shahun_info_alter:'限定技,濒死阶段,你可以复原武将牌,弃置所有牌并摸三张牌,然后将体力回复至1;若如此做,你失去技能〖反噬〗,获得技能〖绝境〗,并于两回合后立即死亡',
|
shahun_info_alter:'限定技,濒死阶段,你可以复原武将牌,弃置所有牌并摸三张牌,然后将体力回复至1;若如此做,你失去技能〖反噬〗,获得技能〖绝境〗,并于两回合后立即死亡。',
|
||||||
|
|
||||||
yanjia:'偃甲',
|
yanjia:'偃甲',
|
||||||
yanjia_info:'出牌阶段,你可以将两张非特殊装备牌合成为一张强化装备',
|
yanjia_info:'出牌阶段,你可以将两张非特殊装备牌合成为一张强化装备。',
|
||||||
xiuhua:'袖花',
|
xiuhua:'袖花',
|
||||||
xiuhua_info:'每当一件其他角色的装备因被替换或弃置进入弃牌堆,你可以获得之',
|
xiuhua_info:'每当一件其他角色的装备因被替换或弃置进入弃牌堆,你可以获得之。',
|
||||||
liuying:'流影',
|
liuying:'流影',
|
||||||
liuying_info:'每当你使用一张杀结算完毕后,你可以指定一名本回合未成为过你的杀的目标的角色,并亮出牌堆顶的一张牌,若为黑色,你对该角色使用一张杀',
|
liuying_info:'每当你使用一张杀结算完毕后,你可以指定一名本回合未成为过你的杀的目标的角色,并亮出牌堆顶的一张牌,若为黑色,你对该角色使用一张杀。',
|
||||||
boyun:'拨云',
|
boyun:'拨云',
|
||||||
boyun1:'拨云',
|
boyun1:'拨云',
|
||||||
boyun2:'拨云',
|
boyun2:'拨云',
|
||||||
boyun_info:'在你的回合内,你可以弃置一张装备牌,并展示牌堆顶的一张牌,若其为装备牌,你须将其交给任意一张角色并对其造成1点伤害,否则你摸一张牌',
|
boyun_info:'在你的回合内,你可以弃置一张装备牌,并展示牌堆顶的一张牌,若其为装备牌,你须将其交给任意一张角色并对其造成1点伤害,否则你摸一张牌。',
|
||||||
jizhan:'疾战',
|
jizhan:'疾战',
|
||||||
jizhan_info:'出牌阶段限一次,你可以将移动到任意一名角色的前一位,视为对其使用了一张不计入出杀次数的杀',
|
jizhan_info:'出牌阶段限一次,你可以将移动到任意一名角色的前一位,视为对其使用了一张不计入出杀次数的杀。',
|
||||||
qianjun:'千军',
|
qianjun:'千军',
|
||||||
qianjun_info:'每当你使用一张杀,你可以弃置一张牌,令距离目标1以内的所有角色成为额外目标',
|
qianjun_info:'每当你使用一张杀,你可以弃置一张牌,令距离目标1以内的所有角色成为额外目标。',
|
||||||
xuanning:'玄凝',
|
xuanning:'玄凝',
|
||||||
xuanning1:'玄凝',
|
xuanning1:'玄凝',
|
||||||
xuanning2:'玄凝',
|
xuanning2:'玄凝',
|
||||||
liuguang:'流光',
|
liuguang:'流光',
|
||||||
yangming:'养命',
|
yangming:'养命',
|
||||||
yangming2:'养命',
|
yangming2:'养命',
|
||||||
xuanning_info:'出牌阶段,你可以弃置一基本牌,获得至多3个玄凝标记。当你受到伤害时,你失去一枚玄凝标记,伤害来源随机弃置一张牌',
|
xuanning_info:'出牌阶段,你可以弃置一基本牌,获得至多3个玄凝标记。当你受到伤害时,你失去一枚玄凝标记,伤害来源随机弃置一张牌。',
|
||||||
liuguang_info:'准备阶段,若你有玄凝标记,你可以弃置一枚玄凝标记,选择至多三名角色依次令其选择一项:弃置一张牌,或受到1点伤害,并终止流光结算',
|
liuguang_info:'准备阶段,若你有玄凝标记,你可以弃置一枚玄凝标记,选择至多三名角色依次令其选择一项:弃置一张牌,或受到1点伤害,并终止流光结算。',
|
||||||
yangming_info:'出牌阶段,你可以弃置一张红色牌,并在下个出牌阶段结束时令距离1以内的任意名角色回复1点体力,在此之前不可再次发动',
|
yangming_info:'出牌阶段,你可以弃置一张红色牌,并在下个出牌阶段结束时令距离1以内的任意名角色回复1点体力,在此之前不可再次发动。',
|
||||||
zhaolu:'朝露',
|
zhaolu:'朝露',
|
||||||
jiehuo:'劫火',
|
jiehuo:'劫火',
|
||||||
yuling:'御灵',
|
yuling:'御灵',
|
||||||
|
@ -2765,10 +2754,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
yuling2:'御灵',
|
yuling2:'御灵',
|
||||||
yuling3:'御灵',
|
yuling3:'御灵',
|
||||||
yuling4:'御灵',
|
yuling4:'御灵',
|
||||||
zhaolu_info:'锁定技,每隔X回合,你失去1点体力上限,每当你受到1点伤害或有人死亡,视为减少两个回合,X为现存角色数且至多为5',
|
zhaolu_info:'锁定技,每隔X回合,你失去1点体力上限,每当你受到1点伤害或有人死亡,视为减少两个回合,X为现存角色数且至多为5。',
|
||||||
jiehuo_info:'限定技,出牌阶段,你可以对一名其他角色造成2点火焰伤害,然后死亡',
|
jiehuo_info:'限定技,出牌阶段,你可以对一名其他角色造成2点火焰伤害,然后死亡。',
|
||||||
yuling_info:'锁定技,你没有摸牌和弃牌阶段,你的手牌数始终为5,你在一个出牌阶段最多使用X+2张牌,X为你的体力上限',
|
yuling_info:'锁定技,你没有摸牌和弃牌阶段,你的手牌数始终为5,你在一个出牌阶段最多使用X+2张牌,X为你的体力上限。',
|
||||||
yuling_info_alter:'锁定技,你没有摸牌和弃牌阶段,你的手牌数始终为5,你在一个出牌阶段最多使用X+1张牌,X为你的体力上限',
|
yuling_info_alter:'锁定技,你没有摸牌和弃牌阶段,你的手牌数始终为5,你在一个出牌阶段最多使用X+1张牌,X为你的体力上限。',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
@ -4519,186 +4519,186 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
// sqlongyin:'龙影',
|
// sqlongyin:'龙影',
|
||||||
// sqlongyin_info:'',
|
// sqlongyin_info:'',
|
||||||
sqlongnu:'龙怒',
|
sqlongnu:'龙怒',
|
||||||
sqlongnu_info:'准备阶段,你可以发现一张牌堆中的牌,若你手牌中有同名牌,你可以改为造成1点火属性伤害锁定技。准备阶段开始时,你随机切换至一种形态',
|
sqlongnu_info:'准备阶段,你可以发现一张牌堆中的牌,若你手牌中有同名牌,你可以改为造成1点火属性伤害锁定技。准备阶段开始时,你随机切换至一种形态。',
|
||||||
sqlonghuo:'龙火',
|
sqlonghuo:'龙火',
|
||||||
sqlonghuo_info:'出牌阶段限一次,你可以弃置所有手牌并摸等量的牌,若敌方角色手牌中与你弃置的牌同名的牌,则随机弃置其中一张。准备阶段开始时,你随机切换至一种形态',
|
sqlonghuo_info:'出牌阶段限一次,你可以弃置所有手牌并摸等量的牌,若敌方角色手牌中与你弃置的牌同名的牌,则随机弃置其中一张。准备阶段开始时,你随机切换至一种形态。',
|
||||||
sqlongwu:'龙舞',
|
sqlongwu:'龙舞',
|
||||||
sqlongwu_info:'结束阶段,你可以摸X张牌,然后可以使用一张牌,X为手牌中同名牌数最多的牌的数量。准备阶段开始时,你随机切换至一种形态',
|
sqlongwu_info:'结束阶段,你可以摸X张牌,然后可以使用一张牌,X为手牌中同名牌数最多的牌的数量。准备阶段开始时,你随机切换至一种形态。',
|
||||||
kuanglie:'狂猎',
|
kuanglie:'狂猎',
|
||||||
kuanglie_info:'锁定技,每当你使用黑色牌指定其他角色为目标后,目标随机弃置一张牌;每当你以此法累计弃置两张牌后,你摸一张牌',
|
kuanglie_info:'锁定技,每当你使用黑色牌指定其他角色为目标后,目标随机弃置一张牌;每当你以此法累计弃置两张牌后,你摸一张牌。',
|
||||||
// kuanglie_info:'锁定技,每当一名敌方角色成为你的黑色牌的目标,你视为对其使用【刺骨寒霜】;在一名角色受到【刺骨寒霜】的影响后,你随机获得一张【狂猎】牌',
|
// kuanglie_info:'锁定技,每当一名敌方角色成为你的黑色牌的目标,你视为对其使用【刺骨寒霜】;在一名角色受到【刺骨寒霜】的影响后,你随机获得一张【狂猎】牌。',
|
||||||
lingshuang:'凛霜',
|
lingshuang:'凛霜',
|
||||||
lingshuang_info:'每当你失去最后一张基本牌,你可以视为对距离2以内的所有敌方角色使用【刺骨寒霜】;在一名角色受到【刺骨寒霜】影响时,你可以弃置一张手牌将其效果改为“摸牌数-2”',
|
lingshuang_info:'每当你失去最后一张基本牌,你可以视为对距离2以内的所有敌方角色使用【刺骨寒霜】;在一名角色受到【刺骨寒霜】影响时,你可以弃置一张手牌将其效果改为“摸牌数-2”。',
|
||||||
gwshuangwu:'霜舞',
|
gwshuangwu:'霜舞',
|
||||||
gwshuangwu_info:'锁定技,每当你造成一次伤害,你视为对目标使用刺骨寒霜;你对处于刺骨寒霜的角色造成的伤害+1',
|
gwshuangwu_info:'锁定技,每当你造成一次伤害,你视为对目标使用刺骨寒霜;你对处于刺骨寒霜的角色造成的伤害+1。',
|
||||||
gwhuanshuang:'幻霜',
|
gwhuanshuang:'幻霜',
|
||||||
gwhuanshuang_info:'准备或结束阶段,你可以发现一张铜卡法术并使用之,此牌结算两次',
|
gwhuanshuang_info:'准备或结束阶段,你可以发现一张铜卡法术并使用之,此牌结算两次。',
|
||||||
gwjinli:'金醴',
|
gwjinli:'金醴',
|
||||||
gwjinli_jiu:'先祖麦酒',
|
gwjinli_jiu:'先祖麦酒',
|
||||||
gwjinli_info:'出牌阶段限一次,你可以弃置一张手牌,并将一张先祖麦酒置于一名角色的武将牌上',
|
gwjinli_info:'出牌阶段限一次,你可以弃置一张手牌,并将一张先祖麦酒置于一名角色的武将牌上。',
|
||||||
gw_xianzumaijiu:'先祖麦酒',
|
gw_xianzumaijiu:'先祖麦酒',
|
||||||
gw_xianzumaijiu_info:'出牌阶段对自己使用,你使用下一张杀造成伤害后,令所有友方角色摸一张牌;濒死阶段,对自己使用,回复1点体力',
|
gw_xianzumaijiu_info:'出牌阶段对自己使用,你使用下一张杀造成伤害后,令所有友方角色摸一张牌;濒死阶段,对自己使用,回复1点体力。',
|
||||||
gwliaotian:'燎天',
|
gwliaotian:'燎天',
|
||||||
gwliaotian_info:'出牌阶段限2次,若你有至少两张手牌且颜色均相同,你可以重铸你的全部手牌,并视为对一名随机敌方角色使用一张不计入出杀次数的杀',
|
gwliaotian_info:'出牌阶段限2次,若你有至少两张手牌且颜色均相同,你可以重铸你的全部手牌,并视为对一名随机敌方角色使用一张不计入出杀次数的杀。',
|
||||||
gwmaoxian_yioufeisi:'伊欧菲斯',
|
gwmaoxian_yioufeisi:'伊欧菲斯',
|
||||||
gwmaoxian_yioufeisi_info:'选择两名角色,令目标依次视为对对方使用一张杀,然后结束出牌阶段',
|
gwmaoxian_yioufeisi_info:'选择两名角色,令目标依次视为对对方使用一张杀,然后结束出牌阶段。',
|
||||||
gwmaoxian_luoqi:'罗契',
|
gwmaoxian_luoqi:'罗契',
|
||||||
gwmaoxian_luoqi_info:'选择一名角色视为对其使用一张不计入出杀次数的杀,然后所有其他角色可以对目标使用一张杀,然后结束出牌阶段',
|
gwmaoxian_luoqi_info:'选择一名角色视为对其使用一张不计入出杀次数的杀,然后所有其他角色可以对目标使用一张杀,然后结束出牌阶段。',
|
||||||
gwmaoxian_jieluote:'杰洛特',
|
gwmaoxian_jieluote:'杰洛特',
|
||||||
gwmaoxian_jieluote_info:'对一名角色造成1点伤害,若目标体力值大于2且为全场最多,改为造成2点伤害,然后结束出牌阶段',
|
gwmaoxian_jieluote_info:'对一名角色造成1点伤害,若目标体力值大于2且为全场最多,改为造成2点伤害,然后结束出牌阶段。',
|
||||||
gwmaoxian_yenaifa:'叶奈法',
|
gwmaoxian_yenaifa:'叶奈法',
|
||||||
gwmaoxian_yenaifa_info:'对至多3名随机敌方角色施加一个随机负面效果,然后结束出牌阶段',
|
gwmaoxian_yenaifa_info:'对至多3名随机敌方角色施加一个随机负面效果,然后结束出牌阶段。',
|
||||||
gwmaoxian_telisi:'特丽斯',
|
gwmaoxian_telisi:'特丽斯',
|
||||||
gwmaoxian_telisi_info:'对至多3名随机友方角色施加一个随机正面效果,然后结束出牌阶段',
|
gwmaoxian_telisi_info:'对至多3名随机友方角色施加一个随机正面效果,然后结束出牌阶段。',
|
||||||
gwmaoxian_hengsaite:'亨赛特',
|
gwmaoxian_hengsaite:'亨赛特',
|
||||||
gwmaoxian_hengsaite_info:'视为使用一张万箭齐发,每当有一名角色因此受到伤害,你获得一张杀,然后结束出牌阶段',
|
gwmaoxian_hengsaite_info:'视为使用一张万箭齐发,每当有一名角色因此受到伤害,你获得一张杀,然后结束出牌阶段。',
|
||||||
gwmaoxian_fuertaisite:'弗尔泰斯特',
|
gwmaoxian_fuertaisite:'弗尔泰斯特',
|
||||||
gwmaoxian_fuertaisite_info:'令至多两名角色各获得1点护甲,然后结束出牌阶段',
|
gwmaoxian_fuertaisite_info:'令至多两名角色各获得1点护甲,然后结束出牌阶段。',
|
||||||
gwmaoxian_laduoweide:'拉多维德',
|
gwmaoxian_laduoweide:'拉多维德',
|
||||||
gwmaoxian_laduoweide_info:'令一名角色的非锁定技失效直到其下一回合结束,并对其造成1点伤害,然后结束出牌阶段',
|
gwmaoxian_laduoweide_info:'令一名角色的非锁定技失效直到其下一回合结束,并对其造成1点伤害,然后结束出牌阶段。',
|
||||||
gwmaoxian_enxier:'恩希尔',
|
gwmaoxian_enxier:'恩希尔',
|
||||||
gwmaoxian_enxier_info:'与一名手牌并不超过1的其他角色交换手牌,然后结束出牌阶段',
|
gwmaoxian_enxier_info:'与一名手牌并不超过1的其他角色交换手牌,然后结束出牌阶段。',
|
||||||
gwmaoxian_fulisi:'符里斯',
|
gwmaoxian_fulisi:'符里斯',
|
||||||
gwmaoxian_fulisi_info:'选择至多三名角色,观看目标的手牌并可以弃置其中1~2张,然后结束出牌阶段',
|
gwmaoxian_fulisi_info:'选择至多三名角色,观看目标的手牌并可以弃置其中1~2张,然后结束出牌阶段。',
|
||||||
gwmaoxian_kaerweite:'卡尔维特',
|
gwmaoxian_kaerweite:'卡尔维特',
|
||||||
gwmaoxian_kaerweite_info:'获得至多两名角色各一张手牌,然后结束出牌阶段',
|
gwmaoxian_kaerweite_info:'获得至多两名角色各一张手牌,然后结束出牌阶段。',
|
||||||
gwmaoxian_bulanwang:'布兰王',
|
gwmaoxian_bulanwang:'布兰王',
|
||||||
gwmaoxian_bulanwang_info:'弃置至多两张牌并摸数量等于弃牌数2倍的牌,跳过弃牌阶段,然后结束出牌阶段',
|
gwmaoxian_bulanwang_info:'弃置至多两张牌并摸数量等于弃牌数2倍的牌,跳过弃牌阶段,然后结束出牌阶段。',
|
||||||
gwmaoxian_kuite:'奎特',
|
gwmaoxian_kuite:'奎特',
|
||||||
gwmaoxian_kuite_info:'视为对一名手牌数不小于你的角色连续使用2张决斗,然后结束出牌阶段',
|
gwmaoxian_kuite_info:'视为对一名手牌数不小于你的角色连续使用2张决斗,然后结束出牌阶段。',
|
||||||
gwmaoxian_haluo:'哈洛',
|
gwmaoxian_haluo:'哈洛',
|
||||||
gwmaoxian_haluo_info:'对所有体力值全场最少的角色造成1点伤害,然后结束出牌阶段',
|
gwmaoxian_haluo_info:'对所有体力值全场最少的角色造成1点伤害,然后结束出牌阶段。',
|
||||||
gwmaoxian_dagong:'达贡',
|
gwmaoxian_dagong:'达贡',
|
||||||
gwmaoxian_dagong_info:'视为同时使用刺骨寒霜、蔽日浓雾和倾盆大雨,然后结束出牌阶段',
|
gwmaoxian_dagong_info:'视为同时使用刺骨寒霜、蔽日浓雾和倾盆大雨,然后结束出牌阶段。',
|
||||||
gwmaoxian_gaier:'盖尔',
|
gwmaoxian_gaier:'盖尔',
|
||||||
gwmaoxian_gaier_info:'令一名角色增加或减少1点体力和体力上限,然后结束出牌阶段',
|
gwmaoxian_gaier_info:'令一名角色增加或减少1点体力和体力上限,然后结束出牌阶段。',
|
||||||
gwmaoxian_airuiting:'艾瑞汀',
|
gwmaoxian_airuiting:'艾瑞汀',
|
||||||
gwmaoxian_airuiting_info:'令所有其他角色选择一项:使用一张杀,或失去1点体力,然后结束出牌阶段',
|
gwmaoxian_airuiting_info:'令所有其他角色选择一项:使用一张杀,或失去1点体力,然后结束出牌阶段。',
|
||||||
gwmaoxian_aisinie:'埃丝涅',
|
gwmaoxian_aisinie:'埃丝涅',
|
||||||
gwmaoxian_aisinie_info:'回复1点体力并获得任意一张银卡法术,然后结束出牌阶段',
|
gwmaoxian_aisinie_info:'回复1点体力并获得任意一张银卡法术,然后结束出牌阶段。',
|
||||||
gwmaoxian_falanxisika:'法兰茜斯卡',
|
gwmaoxian_falanxisika:'法兰茜斯卡',
|
||||||
gwmaoxian_falanxisika_info:'随机观看3张金卡法术并使用其中一张,然后结束出牌阶段',
|
gwmaoxian_falanxisika_info:'随机观看3张金卡法术并使用其中一张,然后结束出牌阶段。',
|
||||||
gwmaoxian_huoge:'霍格',
|
gwmaoxian_huoge:'霍格',
|
||||||
gwmaoxian_huoge_info:'观看牌堆顶的六张牌,使用至多两张,然后弃掉其余的牌,然后结束出牌阶段',
|
gwmaoxian_huoge_info:'观看牌堆顶的六张牌,使用至多两张,然后弃掉其余的牌,然后结束出牌阶段。',
|
||||||
gwmaoxian:'冒险',
|
gwmaoxian:'冒险',
|
||||||
gwhuanbi:'幻笔',
|
gwhuanbi:'幻笔',
|
||||||
gwhuanbi_info:'出牌阶段限一次,你可以弃置一张牌,并创造一张冒险牌,然后随机选择一名有手牌的角色,被选中的角色可以交给你一张手牌并获得一张该牌的复制',
|
gwhuanbi_info:'出牌阶段限一次,你可以弃置一张牌,并创造一张冒险牌,然后随机选择一名有手牌的角色,被选中的角色可以交给你一张手牌并获得一张该牌的复制。',
|
||||||
gwminxiang:'冥想',
|
gwminxiang:'冥想',
|
||||||
gwminxiang_old_info:'结束阶段,你可以选择一张本回合使用过的基本牌或普通锦囊牌并选择两名其他角色,令目标分别视为对对方使用一张此牌的复制',
|
gwminxiang_old_info:'结束阶段,你可以选择一张本回合使用过的基本牌或普通锦囊牌并选择两名其他角色,令目标分别视为对对方使用一张此牌的复制。',
|
||||||
gwminxiang_info:'出牌阶段限一次,你可以弃置一张基本牌或普通锦囊牌并摸一张牌,然后选择其他两名角色,令目标分别视为对对方使用一张你弃置的牌的同名牌',
|
gwminxiang_info:'出牌阶段限一次,你可以弃置一张基本牌或普通锦囊牌并摸一张牌,然后选择其他两名角色,令目标分别视为对对方使用一张你弃置的牌的同名牌。',
|
||||||
gwlangshi:'狼噬',
|
gwlangshi:'狼噬',
|
||||||
gwlangshi_info:'每当你造成一次伤害,你可以对一名体力值不小于受伤害角色的其他角色造1点伤害',
|
gwlangshi_info:'每当你造成一次伤害,你可以对一名体力值不小于受伤害角色的其他角色造1点伤害。',
|
||||||
gwjingshi:'血契',
|
gwjingshi:'血契',
|
||||||
gwjingshi_info:'出牌阶段限一次,你可以猜测手牌中黑色牌最多的角色是谁,若猜对,你可以观看所有其他角色的手牌并获得任意一张',
|
gwjingshi_info:'出牌阶段限一次,你可以猜测手牌中黑色牌最多的角色是谁,若猜对,你可以观看所有其他角色的手牌并获得任意一张。',
|
||||||
gwjingtian:'经天',
|
gwjingtian:'经天',
|
||||||
gwjingtian_info:'锁定技,牌堆顶的九张牌对你始终可见;你始终跳过摸牌阶段,改为获得3枚“经天”标记;每名角色的回合限一次,你可以在任意时间点移去一枚“经天”标记,然后获得牌堆顶的一张牌',
|
gwjingtian_info:'锁定技,牌堆顶的九张牌对你始终可见;你始终跳过摸牌阶段,改为获得3枚“经天”标记;每名角色的回合限一次,你可以在任意时间点移去一枚“经天”标记,然后获得牌堆顶的一张牌。',
|
||||||
gwweitu:'卫土',
|
gwweitu:'卫土',
|
||||||
gwweitu_info:'锁定技,每当你弃置牌,若你的护甲数小于3,你获得1点护甲;每当你的护甲为你累计抵消3次伤害,你获得一张随机银卡法术',
|
gwweitu_info:'锁定技,每当你弃置牌,若你的护甲数小于3,你获得1点护甲;每当你的护甲为你累计抵消3次伤害,你获得一张随机银卡法术。',
|
||||||
gwzhongmo:'终末',
|
gwzhongmo:'终末',
|
||||||
gwzhongmo_info:'锁定技,你跳过摸牌阶段,改为获得两张随机的稀有度不同的法术牌',
|
gwzhongmo_info:'锁定技,你跳过摸牌阶段,改为获得两张随机的稀有度不同的法术牌。',
|
||||||
gwfutian:'覆天',
|
gwfutian:'覆天',
|
||||||
gwfutian_info:'锁定技,你防止一切伤害;准备阶段,你须弃置一名其他角色的一张手牌;若你以此法累计弃置弃置的总点数达到了24,你变身为汉姆多尔',
|
gwfutian_info:'锁定技,你防止一切伤害;准备阶段,你须弃置一名其他角色的一张手牌;若你以此法累计弃置弃置的总点数达到了24,你变身为汉姆多尔。',
|
||||||
gwgouhun:'勾魂',
|
gwgouhun:'勾魂',
|
||||||
gwgouhun_info:'出牌阶段限一次,你可以交给一名有手牌的其他角色一张手牌,然后令其选择一项:1. 将手牌中与此牌花色相同的牌(至少一张)交给你;2. 弃置手牌中与此牌花色不同的牌(至少一张);3. 进入混乱状态直到下一回合结束',
|
gwgouhun_info:'出牌阶段限一次,你可以交给一名有手牌的其他角色一张手牌,然后令其选择一项:1. 将手牌中与此牌花色相同的牌(至少一张)交给你;2. 弃置手牌中与此牌花色不同的牌(至少一张);3. 进入混乱状态直到下一回合结束。',
|
||||||
gw_wuyao:'雾妖',
|
gw_wuyao:'雾妖',
|
||||||
gw_wuyao_info:'在你行动时可当作杀使用;回合结束后,从手牌中消失',
|
gw_wuyao_info:'在你行动时可当作杀使用;回合结束后,从手牌中消失。',
|
||||||
gw_lang:'狼',
|
gw_lang:'狼',
|
||||||
gw_lang_info:'在你行动时可当作酒使用;回合结束后,从手牌中消失',
|
gw_lang_info:'在你行动时可当作酒使用;回合结束后,从手牌中消失。',
|
||||||
gwyewu:'叶舞',
|
gwyewu:'叶舞',
|
||||||
gwyewu_info:'出牌阶段限一次,你可以弃置一张手牌,并弃置一名随机敌人的一张随机牌;若目标弃置的牌与你弃置的牌颜色相同,则重复发动;每以此法弃置一张敌方角色的手牌,你获得一张【雾妖】;每以此法弃置一张敌方角色的手牌,你获得一张【狼】',
|
gwyewu_info:'出牌阶段限一次,你可以弃置一张手牌,并弃置一名随机敌人的一张随机牌;若目标弃置的牌与你弃置的牌颜色相同,则重复发动;每以此法弃置一张敌方角色的手牌,你获得一张【雾妖】;每以此法弃置一张敌方角色的手牌,你获得一张【狼】。',
|
||||||
shuangxi:'霜袭',
|
shuangxi:'霜袭',
|
||||||
shuangxi_info:'每两轮限一次,出牌阶段,你可以视为使用一张【刺骨寒霜】;若你在本回合造成过伤害,改为使用【白霜】',
|
shuangxi_info:'每两轮限一次,出牌阶段,你可以视为使用一张【刺骨寒霜】;若你在本回合造成过伤害,改为使用【白霜】。',
|
||||||
gwfengshi:'风蚀',
|
gwfengshi:'风蚀',
|
||||||
gwfengshi_info:'结束阶段,你可以选择一项:1. 为自己施加一个随机负面效果,并对两名随机敌人施加一个随机负面效果;2. 为自己施加两个随机正面效果,并对一名随机敌人施加一个随机正面效果',
|
gwfengshi_info:'结束阶段,你可以选择一项:1. 为自己施加一个随机负面效果,并对两名随机敌人施加一个随机负面效果;2. 为自己施加两个随机正面效果,并对一名随机敌人施加一个随机正面效果。',
|
||||||
yangfan:'扬帆',
|
yangfan:'扬帆',
|
||||||
yangfan_info:'锁定技,每当你使用一张非装备牌,你随机重铸一张与其花色相同的手牌;若没有花色相同的手牌,改为随机重铸一张与其颜色相同的手牌',
|
yangfan_info:'锁定技,每当你使用一张非装备牌,你随机重铸一张与其花色相同的手牌;若没有花色相同的手牌,改为随机重铸一张与其颜色相同的手牌。',
|
||||||
gwchenshui:'沉睡',
|
gwchenshui:'沉睡',
|
||||||
gwchenshui_bg:'睡',
|
gwchenshui_bg:'睡',
|
||||||
gwchenshui_info:'锁定技,你防止即将造成或受到的伤害,改为令伤害来随机源获得对方一张牌;结束阶段,若你自上次沉睡起累计发动了至少3次沉睡效果,你解除沉睡状态,对所有敌方角色造成1点伤害,然后切换至觉醒状态',
|
gwchenshui_info:'锁定技,你防止即将造成或受到的伤害,改为令伤害来随机源获得对方一张牌;结束阶段,若你自上次沉睡起累计发动了至少3次沉睡效果,你解除沉睡状态,对所有敌方角色造成1点伤害,然后切换至觉醒状态。',
|
||||||
gwliedi:'裂地',
|
gwliedi:'裂地',
|
||||||
gwliedi_info:'锁定技,你造成的伤害+X,X为你到该角色距离的一半,向下取整;结束阶段,若你连续两轮未造成伤害,你切换至沉睡状态',
|
gwliedi_info:'锁定技,你造成的伤害+X,X为你到该角色距离的一半,向下取整;结束阶段,若你连续两轮未造成伤害,你切换至沉睡状态。',
|
||||||
julian:'巨敛',
|
julian:'巨敛',
|
||||||
julian_info:'出牌阶段开始时,你可以摸若干张牌直到你的手牌数为全场最多或之一',
|
julian_info:'出牌阶段开始时,你可以摸若干张牌直到你的手牌数为全场最多或之一。',
|
||||||
gwfusheng:'复生',
|
gwfusheng:'复生',
|
||||||
gwfusheng_info:'当一名未翻面的角色进入濒死状态时,你可以令其翻面并回复1点体力,然后你与其各摸一张牌',
|
gwfusheng_info:'当一名未翻面的角色进入濒死状态时,你可以令其翻面并回复1点体力,然后你与其各摸一张牌。',
|
||||||
gwqinwu:'琴舞',
|
gwqinwu:'琴舞',
|
||||||
gwqinwu2:'琴舞',
|
gwqinwu2:'琴舞',
|
||||||
gwqinwu_info:'出牌阶段限一次,每当你使用一张基本牌,你可以令一名角色摸一张牌并获得技能〖琴舞〗直到其下一回合结束',
|
gwqinwu_info:'出牌阶段限一次,每当你使用一张基本牌,你可以令一名角色摸一张牌并获得技能〖琴舞〗直到其下一回合结束。',
|
||||||
huanshu:'幻术',
|
huanshu:'幻术',
|
||||||
huanshu2:'幻术',
|
huanshu2:'幻术',
|
||||||
huanshu3:'幻术',
|
huanshu3:'幻术',
|
||||||
huanshu_info:'结束阶段,你可以将一张手牌背面朝上置于你的武将牌上;当一名敌方角色使用一张与之颜色相同的锦囊牌时,你展示并移去此牌,取消锦囊的效果,然后摸两张牌;准备阶段,你移去武将牌上的“幻术”牌',
|
huanshu_info:'结束阶段,你可以将一张手牌背面朝上置于你的武将牌上;当一名敌方角色使用一张与之颜色相同的锦囊牌时,你展示并移去此牌,取消锦囊的效果,然后摸两张牌;准备阶段,你移去武将牌上的“幻术”牌。',
|
||||||
gwjieyin:'结印',
|
gwjieyin:'结印',
|
||||||
gwjieyin_info:'出牌阶段,你可以视为使用瘟疫、燕子药水或昆恩法印(不能重复使用同一法术),技能两轮重置一次',
|
gwjieyin_info:'出牌阶段,你可以视为使用瘟疫、燕子药水或昆恩法印(不能重复使用同一法术),技能两轮重置一次。',
|
||||||
zhengjun:'整军',
|
zhengjun:'整军',
|
||||||
zhengjun_info:'锁定技,每当你使用或打出一张卡牌,若这是你在本局游戏中使用或打出的第二张与之同名的牌,你增加1点体力和体力上限;结束阶段,你可以观看牌堆顶的X张牌并获得其中一张,X为你以此法增加的体力上限数',
|
zhengjun_info:'锁定技,每当你使用或打出一张卡牌,若这是你在本局游戏中使用或打出的第二张与之同名的牌,你增加1点体力和体力上限;结束阶段,你可以观看牌堆顶的X张牌并获得其中一张,X为你以此法增加的体力上限数。',
|
||||||
gwxuezhan:'血战',
|
gwxuezhan:'血战',
|
||||||
gwxuezhan_info:'准备阶段,若你的手牌数为全场最少或之一,你可以获得一张十字召唤',
|
gwxuezhan_info:'准备阶段,若你的手牌数为全场最少或之一,你可以获得一张十字召唤。',
|
||||||
jielue:'劫掠',
|
jielue:'劫掠',
|
||||||
jielue_info:'锁定技,出牌阶段开始时,你从两个随机队友处各获得一张可使用的牌并依次使用之,然后被拿牌的队友摸一张牌',
|
jielue_info:'锁定技,出牌阶段开始时,你从两个随机队友处各获得一张可使用的牌并依次使用之,然后被拿牌的队友摸一张牌。',
|
||||||
jielue_old_info:'当你于回合内首次使用基本牌时,你可以获得两张该牌的复制(使用复制的牌时不触发此技能)',
|
jielue_old_info:'当你于回合内首次使用基本牌时,你可以获得两张该牌的复制(使用复制的牌时不触发此技能)。',
|
||||||
gwfengchi:'风驰',
|
gwfengchi:'风驰',
|
||||||
gwfengchi_info:'锁定技,出牌阶段开始时,你随机观看3个可以在出牌阶段使用的技能,并获得其中一个技能直到此阶段结束',
|
gwfengchi_info:'锁定技,出牌阶段开始时,你随机观看3个可以在出牌阶段使用的技能,并获得其中一个技能直到此阶段结束。',
|
||||||
gwjushi:'巨噬',
|
gwjushi:'巨噬',
|
||||||
gwjushi2:'巨噬',
|
gwjushi2:'巨噬',
|
||||||
gwjushi_info:'出牌阶段限一次,你可以将一名距离1以内的其他角色的一张随机牌置于你的武将牌上;当你受到伤害后,令“巨噬”牌回到原来的位置;准备阶段,你获得武将牌上的“巨噬”牌',
|
gwjushi_info:'出牌阶段限一次,你可以将一名距离1以内的其他角色的一张随机牌置于你的武将牌上;当你受到伤害后,令“巨噬”牌回到原来的位置;准备阶段,你获得武将牌上的“巨噬”牌。',
|
||||||
bolang:'搏浪',
|
bolang:'搏浪',
|
||||||
bolang_info:'准备阶段,你可以观看牌堆顶的六张牌,然后将其中至多3张移入弃牌堆;每当你造成一次伤害,你可以从弃牌堆中获得一张以此法移入弃牌堆的牌(每回合限发动一次)',
|
bolang_info:'准备阶段,你可以观看牌堆顶的六张牌,然后将其中至多3张移入弃牌堆;每当你造成一次伤害,你可以从弃牌堆中获得一张以此法移入弃牌堆的牌(每回合限发动一次)。',
|
||||||
lingji:'灵计',
|
lingji:'灵计',
|
||||||
lingji_info:'出牌阶段限一次,你可以摸两张牌并弃置两张牌,若弃置的牌花色相同,你获得一张随机铜卡并展示;若弃置的牌点数相同,你获得一张随机银卡并展示',
|
lingji_info:'出牌阶段限一次,你可以摸两张牌并弃置两张牌,若弃置的牌花色相同,你获得一张随机铜卡并展示;若弃置的牌点数相同,你获得一张随机银卡并展示。',
|
||||||
gwjinyan:'金焰',
|
gwjinyan:'金焰',
|
||||||
gwjinyan_info:'锁定技,准备阶段,若游戏轮数为3的倍数,你获得一张随机金卡;当游戏轮数不是3的倍数时,你防止所有伤害',
|
gwjinyan_info:'锁定技,准备阶段,若游戏轮数为3的倍数,你获得一张随机金卡;当游戏轮数不是3的倍数时,你防止所有伤害。',
|
||||||
gwshenyu:'神愈',
|
gwshenyu:'神愈',
|
||||||
gwshenyu_info:'准备阶段,你可以令一名角色选择一项:回复1点体力,或从弃牌堆中获得一张非金法术牌(直到洗牌入牌堆前该牌不能再以此法获得)',
|
gwshenyu_info:'准备阶段,你可以令一名角色选择一项:回复1点体力,或从弃牌堆中获得一张非金法术牌(直到洗牌入牌堆前该牌不能再以此法获得)。',
|
||||||
junchi:'骏驰',
|
junchi:'骏驰',
|
||||||
junchi_info:'每当一名其他角色使用一张杀,若目标不是你,你可以对杀的目标使用一张牌,并摸一张牌,每回合限一次',
|
junchi_info:'每当一名其他角色使用一张杀,若目标不是你,你可以对杀的目标使用一张牌,并摸一张牌,每回合限一次。',
|
||||||
junchi_old_info:'当一名其他角色使用杀对一个目标结算后,该角色可以交给你一张牌,然后你可以对杀的目标使用一张牌,若如此做,你回复1点体力,杀的使用者摸一张牌',
|
junchi_old_info:'当一名其他角色使用杀对一个目标结算后,该角色可以交给你一张牌,然后你可以对杀的目标使用一张牌,若如此做,你回复1点体力,杀的使用者摸一张牌。',
|
||||||
gw_dudayuanshuai1:'杜达元帅',
|
gw_dudayuanshuai1:'杜达元帅',
|
||||||
gw_dudayuanshuai1_info:'当你成为其他角色使用牌的目标时,你可以使用此牌取消之,然后获得对你使用的牌',
|
gw_dudayuanshuai1_info:'当你成为其他角色使用牌的目标时,你可以使用此牌取消之,然后获得对你使用的牌。',
|
||||||
gw_dudayuanshuai2:'杜达元帅',
|
gw_dudayuanshuai2:'杜达元帅',
|
||||||
gw_dudayuanshuai2_info:'你不能使用、打出或弃置此牌;结束阶段,若此牌在你手牌中,你弃置之并随机弃置一张手牌',
|
gw_dudayuanshuai2_info:'你不能使用、打出或弃置此牌;结束阶段,若此牌在你手牌中,你弃置之并随机弃置一张手牌。',
|
||||||
hupeng:'呼朋',
|
hupeng:'呼朋',
|
||||||
hupeng_info:'出牌阶段限一次,你可以弃置一张牌并将一张杜达元帅置入一名角色的手牌',
|
hupeng_info:'出牌阶段限一次,你可以弃置一张牌并将一张杜达元帅置入一名角色的手牌。',
|
||||||
shuijian:'水箭',
|
shuijian:'水箭',
|
||||||
shuijian_info:'准备阶段,你可以弃置一张手牌视为对所有敌方角色使用一张万箭齐发',
|
shuijian_info:'准备阶段,你可以弃置一张手牌视为对所有敌方角色使用一张万箭齐发。',
|
||||||
yunhuo:'陨火',
|
yunhuo:'陨火',
|
||||||
yunhuo_info:'锁定技,准备阶段,若游戏轮数为4的倍数,你令所有敌方角色随机弃置一张手牌(若没有手牌改为受到1点火焰伤害),然后在此回合结束后获得一个额外回合',
|
yunhuo_info:'锁定技,准备阶段,若游戏轮数为4的倍数,你令所有敌方角色随机弃置一张手牌(若没有手牌改为受到1点火焰伤害),然后在此回合结束后获得一个额外回合。',
|
||||||
yinzhang:'银杖',
|
yinzhang:'银杖',
|
||||||
yinzhang_info:'出牌阶段限一次,你可以弃置一张牌,然后发现一张银卡法术',
|
yinzhang_info:'出牌阶段限一次,你可以弃置一张牌,然后发现一张银卡法术。',
|
||||||
gwtianbian:'天变',
|
gwtianbian:'天变',
|
||||||
gwtianbian_info:'出牌阶段开始时,你可以选择一项:随机使用一张对全场有正面效果的牌;或随机使用一张对全场有负面效果的牌',
|
gwtianbian_info:'出牌阶段开始时,你可以选择一项:随机使用一张对全场有正面效果的牌;或随机使用一张对全场有负面效果的牌。',
|
||||||
gwxiaoshou:'枭首',
|
gwxiaoshou:'枭首',
|
||||||
gwxiaoshou_info:'出牌阶段限两次,你可以弃置一张牌对场上体力值最高(或之一)的一名角色造成1点伤害',
|
gwxiaoshou_info:'出牌阶段限两次,你可以弃置一张牌对场上体力值最高(或之一)的一名角色造成1点伤害。',
|
||||||
gwjiquan:'集权',
|
gwjiquan:'集权',
|
||||||
gwjiquan_info:'出牌阶段限一次,你可以从任意名角色处各获得一张牌,每拿一张牌,被拿牌的角色视为对你使用一张杀',
|
gwjiquan_info:'出牌阶段限一次,你可以从任意名角色处各获得一张牌,每拿一张牌,被拿牌的角色视为对你使用一张杀。',
|
||||||
nuhou:'怒吼',
|
nuhou:'怒吼',
|
||||||
nuhou_info:'每当你受到一次伤害,你可以弃置一张牌,然后对一名随机敌人造成1点伤害并随机弃置其一张牌',
|
nuhou_info:'每当你受到一次伤害,你可以弃置一张牌,然后对一名随机敌人造成1点伤害并随机弃置其一张牌。',
|
||||||
shewu:'蛇舞',
|
shewu:'蛇舞',
|
||||||
shewu_info:'出牌阶段限一次,你可以弃置至多三张牌然后摸三张牌;若你弃置了至少两张牌,你本回合使用牌无视距离;若你弃置了三张牌,你回复1点体力',
|
shewu_info:'出牌阶段限一次,你可以弃置至多三张牌然后摸三张牌;若你弃置了至少两张牌,你本回合使用牌无视距离;若你弃置了三张牌,你回复1点体力。',
|
||||||
gwzhanjiang:'斩将',
|
gwzhanjiang:'斩将',
|
||||||
gwzhanjiang_info:'每轮限一次,在一名角色的准备阶段,你可以弃置一张牌,然后所有角色可以对该角色使用一张杀,出杀的角色在响应时摸一张牌,当有至少两名角色响应后终止结算',
|
gwzhanjiang_info:'每轮限一次,在一名角色的准备阶段,你可以弃置一张牌,然后所有角色可以对该角色使用一张杀,出杀的角色在响应时摸一张牌,当有至少两名角色响应后终止结算。',
|
||||||
gwchuanxin:'穿心',
|
gwchuanxin:'穿心',
|
||||||
gwchuanxin_info:'你的攻击范围基数为你当前体力值;每当你对一名角色使用杀结算完毕后,你可以亮出牌堆顶的一张牌,若为黑色,视为对目标再使用一张杀',
|
gwchuanxin_info:'你的攻击范围基数为你当前体力值;每当你对一名角色使用杀结算完毕后,你可以亮出牌堆顶的一张牌,若为黑色,视为对目标再使用一张杀。',
|
||||||
fengjian:'风剑',
|
fengjian:'风剑',
|
||||||
fengjian_info:'每当你使用一张锦囊牌,你可以视为对一名不是此牌目标的角色使用一张雷杀,若如此做,你获得潜行直到下一回合开始',
|
fengjian_info:'每当你使用一张锦囊牌,你可以视为对一名不是此牌目标的角色使用一张雷杀,若如此做,你获得潜行直到下一回合开始。',
|
||||||
huandie:'幻蝶',
|
huandie:'幻蝶',
|
||||||
huandie_info:'准备阶段,你可以摸一张牌,并令任意名其他角色摸两张牌,若如此做,此回合结束时,所有手牌数大于体力值的角色需弃置两张手牌',
|
huandie_info:'准备阶段,你可以摸一张牌,并令任意名其他角色摸两张牌,若如此做,此回合结束时,所有手牌数大于体力值的角色需弃置两张手牌。',
|
||||||
xuezhou:'血咒',
|
xuezhou:'血咒',
|
||||||
xuezhou_info:'准备阶段,你可以选择一项效果直到下一回合开始:1. 每当一名其他角色在一个回合中首次受到伤害,该角色失去1点体力,你回复1点体力;2. 每当一名其他角色在一个回合中首次造成伤害,该角色失去1点体力,你(若不是受伤害角色)回复1点体力',
|
xuezhou_info:'准备阶段,你可以选择一项效果直到下一回合开始:1. 每当一名其他角色在一个回合中首次受到伤害,该角色失去1点体力,你回复1点体力;2. 每当一名其他角色在一个回合中首次造成伤害,该角色失去1点体力,你(若不是受伤害角色)回复1点体力。',
|
||||||
fayin:'法印',
|
fayin:'法印',
|
||||||
fayin_info:'每当你使用一张杀,你可以弃置一张牌并获得一个随机法印效果:1. 目标随机弃置两张牌;2. 目标进入混乱状态直到下一回合开始;3. 对目标造成1点火属性伤害;4. 获得1点护甲;5. 令目标翻面并摸一张牌',
|
fayin_info:'每当你使用一张杀,你可以弃置一张牌并获得一个随机法印效果:1. 目标随机弃置两张牌;2. 目标进入混乱状态直到下一回合开始;3. 对目标造成1点火属性伤害;4. 获得1点护甲;5. 令目标翻面并摸一张牌。',
|
||||||
gwbaquan:'霸权',
|
gwbaquan:'霸权',
|
||||||
gwbaquan_info:'出牌阶段限一次,你可以获得一名其他角色的所有牌,然后还给其等量的牌,若你归还的牌均为你得到的牌且该角色体力值不小于你,你对其造成1点伤害',
|
gwbaquan_info:'出牌阶段限一次,你可以获得一名其他角色的所有牌,然后还给其等量的牌,若你归还的牌均为你得到的牌且该角色体力值不小于你,你对其造成1点伤害。',
|
||||||
hunmo:'魂墨',
|
hunmo:'魂墨',
|
||||||
hunmo_info:'出牌阶段,若你手牌数少于2,你可以选择一名手牌数小于2的其他角色,观看牌堆顶的两张牌,你获得一张并交给其另一张;若你手牌数不少2,你可以选择一名手牌数不少于2的其他角色,你弃置一张手牌,然后观看并弃置其一张手牌。每回合对同一名角色最多发动一次',
|
hunmo_info:'出牌阶段,若你手牌数少于2,你可以选择一名手牌数小于2的其他角色,观看牌堆顶的两张牌,你获得一张并交给其另一张;若你手牌数不少2,你可以选择一名手牌数不少于2的其他角色,你弃置一张手牌,然后观看并弃置其一张手牌。每回合对同一名角色最多发动一次。',
|
||||||
huihun:'回魂',
|
huihun:'回魂',
|
||||||
huihun_info:'结束阶段,你可以从弃牌堆中获得本回合使用的前两张红色牌',
|
huihun_info:'结束阶段,你可以从弃牌堆中获得本回合使用的前两张红色牌。',
|
||||||
lanquan:'远略',
|
lanquan:'远略',
|
||||||
lanquan_backup:'远略',
|
lanquan_backup:'远略',
|
||||||
lanquan_info:'出牌阶段限一次,你可以观看牌堆顶的六张牌,并选择一张使用',
|
lanquan_info:'出牌阶段限一次,你可以观看牌堆顶的六张牌,并选择一张使用。',
|
||||||
|
|
||||||
chaoyong:'潮涌',
|
chaoyong:'潮涌',
|
||||||
chaoyong_info:'准备阶段,你可以弃置一张牌,视为对所有敌方角色使用一张南蛮入侵或万箭齐发',
|
chaoyong_info:'准备阶段,你可以弃置一张牌,视为对所有敌方角色使用一张南蛮入侵或万箭齐发。',
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
@ -804,7 +804,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return trigger.targets.contains(target);
|
return trigger.targets.contains(target);
|
||||||
},
|
},
|
||||||
ai1:function(card){
|
ai1:function(card){
|
||||||
if(!player.needsToDiscard(ui.selected.cards.length)) return 0;
|
if(!player.needsToDiscard(0,(i,player)=>{
|
||||||
|
return !ui.selected.cards.includes(i)&&!player.canIgnoreHandcard(i);
|
||||||
|
})) return 0;
|
||||||
if(ui.selected.cards.length>=num2) return 0;
|
if(ui.selected.cards.length>=num2) return 0;
|
||||||
return Math.max(5,get.value(trigger.card))-get.value(card)-1;
|
return Math.max(5,get.value(trigger.card))-get.value(card)-1;
|
||||||
},
|
},
|
||||||
|
@ -9635,64 +9637,64 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
hs_duyaxinshi:'渡鸦信使',
|
hs_duyaxinshi:'渡鸦信使',
|
||||||
|
|
||||||
hshuanyu:'幻羽',
|
hshuanyu:'幻羽',
|
||||||
hshuanyu_info:'每当你受到一次伤害,你获得发现一张炉石衍生牌',
|
hshuanyu_info:'每当你受到一次伤害,你获得发现一张炉石衍生牌。',
|
||||||
hsfashu:'法术',
|
hsfashu:'法术',
|
||||||
hsfashu_anyingjingxiang:'暗影镜像',
|
hsfashu_anyingjingxiang:'暗影镜像',
|
||||||
hsfashu_anyingjingxiang_info:'当你使用或打出一张牌后,暗影镜像变为该牌的复制',
|
hsfashu_anyingjingxiang_info:'当你使用或打出一张牌后,暗影镜像变为该牌的复制。',
|
||||||
hsfashu_buwendingyibian:'不稳定异变',
|
hsfashu_buwendingyibian:'不稳定异变',
|
||||||
hsfashu_buwendingyibian_info:'出牌阶段对一名角色使用,目标将一张手牌重铸为同类别的牌,本回合可重复使用此牌,最多使用X次,X为当前体力值',
|
hsfashu_buwendingyibian_info:'出牌阶段对一名角色使用,目标将一张手牌重铸为同类别的牌,本回合可重复使用此牌,最多使用X次,X为当前体力值。',
|
||||||
hualing:'化灵',
|
hualing:'化灵',
|
||||||
hualing_info:'每三轮限一次,你可以选择一名其他角色,获得其一项技能,然后将其随机变形为一名强度高一级的武将',
|
hualing_info:'每三轮限一次,你可以选择一名其他角色,获得其一项技能,然后将其随机变形为一名强度高一级的武将。',
|
||||||
yibian:'异变',
|
yibian:'异变',
|
||||||
yibian_info:'锁定技,出牌阶段开始时,若你没有不稳定异变,则将一张不稳定异变置于你的手牌',
|
yibian_info:'锁定技,出牌阶段开始时,若你没有不稳定异变,则将一张不稳定异变置于你的手牌。',
|
||||||
wxuying:'虚影',
|
wxuying:'虚影',
|
||||||
wxuying_info:'锁定技,准备阶段,你移去手牌中的暗影镜像,然后获得一张暗影镜像(当你使用或打出一张牌后,暗影镜像变为该牌的复制);当你回合内使用暗影镜像时,你摸一张牌;当你回合外使用暗影镜像时,你获得潜行直到下一回合开始',
|
wxuying_info:'锁定技,准备阶段,你移去手牌中的暗影镜像,然后获得一张暗影镜像(当你使用或打出一张牌后,暗影镜像变为该牌的复制);当你回合内使用暗影镜像时,你摸一张牌;当你回合外使用暗影镜像时,你获得潜行直到下一回合开始。',
|
||||||
zhoujiang:'咒降',
|
zhoujiang:'咒降',
|
||||||
zhoujiang_info:'锁定技,每当你使用一张普通锦囊牌,你将一张随机“诅咒”牌置于你的手牌',
|
zhoujiang_info:'锁定技,每当你使用一张普通锦囊牌,你将一张随机“诅咒”牌置于你的手牌。',
|
||||||
muyin:'暮隐',
|
muyin:'暮隐',
|
||||||
muyin_info:'锁定技,每当你失去最后一张手牌,你获得潜行直到下一回合开始',
|
muyin_info:'锁定技,每当你失去最后一张手牌,你获得潜行直到下一回合开始。',
|
||||||
tqchuanyue:'穿越',
|
tqchuanyue:'穿越',
|
||||||
tqchuanyue_info:'锁定技,准备阶段开始时,你随机选择一个被削弱过的炉石技能,获得其未削弱的版本,替换上一个以此法获得的技能',
|
tqchuanyue_info:'锁定技,准备阶段开始时,你随机选择一个被削弱过的炉石技能,获得其未削弱的版本,替换上一个以此法获得的技能。',
|
||||||
// hsxiujian:'袖箭',
|
// hsxiujian:'袖箭',
|
||||||
// hsxiujian_info:'锁定技,在你对一名敌方角色使用一张锦囊牌后,你视为对其使用一张杀',
|
// hsxiujian_info:'锁定技,在你对一名敌方角色使用一张锦囊牌后,你视为对其使用一张杀。',
|
||||||
// hsyingzong:'影踪',
|
// hsyingzong:'影踪',
|
||||||
// hsyingzong_info:'',
|
// hsyingzong_info:'',
|
||||||
hsxingyi:'星移',
|
hsxingyi:'星移',
|
||||||
hsxingyi_info:'锁定技,每当一名敌方角色于回合内使用主动技能,你获得此技能直到下一回合结束',
|
hsxingyi_info:'锁定技,每当一名敌方角色于回合内使用主动技能,你获得此技能直到下一回合结束。',
|
||||||
|
|
||||||
hshuanling:'幻灵',
|
hshuanling:'幻灵',
|
||||||
hshuanling_bg:'灵',
|
hshuanling_bg:'灵',
|
||||||
hshuanling_info:'结束阶段,你可以弃置至多X张牌(X为你装备区内的牌数且至少为1)并摸等量的牌,每弃置一张牌,你随机使用一张本局敌方角色使用过的单目标非转化普通锦囊牌,随机指定一个具有正收益的角色为目标',
|
hshuanling_info:'结束阶段,你可以弃置至多X张牌(X为你装备区内的牌数且至少为1)并摸等量的牌,每弃置一张牌,你随机使用一张本局敌方角色使用过的单目标非转化普通锦囊牌,随机指定一个具有正收益的角色为目标。',
|
||||||
// hshuanling_info:'锁定技,当你于回合内使用首张指定其他角色为惟一目标的锦囊牌后,你视为对其随机使用一张锦囊牌(此牌对你有正面效果)',
|
// hshuanling_info:'锁定技,当你于回合内使用首张指定其他角色为惟一目标的锦囊牌后,你视为对其随机使用一张锦囊牌(此牌对你有正面效果)。',
|
||||||
// hshuanling_info:'每当你使用一张基本牌或普通锦囊牌,你可以弃置任意张牌令其增加或减少等量的目标',
|
// hshuanling_info:'每当你使用一张基本牌或普通锦囊牌,你可以弃置任意张牌令其增加或减少等量的目标。',
|
||||||
huanfeng:'唤风',
|
huanfeng:'唤风',
|
||||||
huanfeng_info:'锁定技,准备阶段,若你有4个图腾,你失去所有图腾,然后获得并召唤随从奥拉基尔',
|
huanfeng_info:'锁定技,准备阶段,若你有4个图腾,你失去所有图腾,然后获得并召唤随从奥拉基尔。',
|
||||||
asyouzhang:'幽瘴',
|
asyouzhang:'幽瘴',
|
||||||
asyouzhang_info:'结束阶段,若你的手牌中没有基本牌/锦囊牌/装备牌,你可以获得牌堆顶的一张基本牌/锦囊牌/装备牌,并可以立即使用',
|
asyouzhang_info:'结束阶段,若你的手牌中没有基本牌/锦囊牌/装备牌,你可以获得牌堆顶的一张基本牌/锦囊牌/装备牌,并可以立即使用。',
|
||||||
ylyuchu:'育雏',
|
ylyuchu:'育雏',
|
||||||
ylyuchu_info:'锁定技,每当你回复1点体力,你获得一只雏龙随从(不超过3只);结束阶段,你每有一只雏龙,便随机选择一名其他角色,在该角色的下个回合开始前你切换至该雏龙,然后在此回合结束后进行一个额外回合并切换回本体',
|
ylyuchu_info:'锁定技,每当你回复1点体力,你获得一只雏龙随从(不超过3只);结束阶段,你每有一只雏龙,便随机选择一名其他角色,在该角色的下个回合开始前你切换至该雏龙,然后在此回合结束后进行一个额外回合并切换回本体。',
|
||||||
nsaiqi:'哀泣',
|
nsaiqi:'哀泣',
|
||||||
nsaiqi_info:'锁定技,每当你使用一张牌,你移除牌堆顶的三张牌;你的手牌上限始终+1',
|
nsaiqi_info:'锁定技,每当你使用一张牌,你移除牌堆顶的三张牌;你的手牌上限始终+1。',
|
||||||
nsbeiming:'悲鸣',
|
nsbeiming:'悲鸣',
|
||||||
nsbeiming_info:'锁定技,当你移除的牌不少于9张时,你摸一张牌,然后将移除的牌以任意顺序置于牌堆顶;当被移除过的牌在牌堆顶时(洗牌后重置),你的不能发动【哀泣】移除牌',
|
nsbeiming_info:'锁定技,当你移除的牌不少于9张时,你摸一张牌,然后将移除的牌以任意顺序置于牌堆顶;当被移除过的牌在牌堆顶时(洗牌后重置),你的不能发动【哀泣】移除牌。',
|
||||||
hstianqi_dalian:'达里安',
|
hstianqi_dalian:'达里安',
|
||||||
hstianqi_dalian_info:'每当你造成一次伤害,你回复等量的体力',
|
hstianqi_dalian_info:'每当你造成一次伤害,你回复等量的体力。',
|
||||||
hstianqi_shali:'莎莉',
|
hstianqi_shali:'莎莉',
|
||||||
hstianqi_shali_info:'每当你回复体力,你获得等量的护甲',
|
hstianqi_shali_info:'每当你回复体力,你获得等量的护甲。',
|
||||||
hstianqi_nazigelin:'纳兹戈林',
|
hstianqi_nazigelin:'纳兹戈林',
|
||||||
hstianqi_nazigelin_info:'当你装备此牌时,你获得1点护甲',
|
hstianqi_nazigelin_info:'当你装备此牌时,你获得1点护甲。',
|
||||||
hstianqi_suolasi:'索拉斯',
|
hstianqi_suolasi:'索拉斯',
|
||||||
hstianqi_suolasi_info:'当你失去此牌时,你回复1点体力',
|
hstianqi_suolasi_info:'当你失去此牌时,你回复1点体力。',
|
||||||
hschaoxi:'潮袭',
|
hschaoxi:'潮袭',
|
||||||
hschaoxi_info:'锁定技,每当你造成一次伤害,你获得两张随机鱼人牌',
|
hschaoxi_info:'锁定技,每当你造成一次伤害,你获得两张随机鱼人牌。',
|
||||||
hsnitai:'拟态',
|
hsnitai:'拟态',
|
||||||
hsnitai_info:'锁定技,出牌阶段开始时,你获得一张随机炉石角色的技能牌',
|
hsnitai_info:'锁定技,出牌阶段开始时,你获得一张随机炉石角色的技能牌。',
|
||||||
hstianqi:'天启',
|
hstianqi:'天启',
|
||||||
hstianqi_info:'出牌阶段限一次,你可以选择一项:弃置一张手牌并随机装备一件天启骑士(不能替换现有装备),或弃置一张装备区内的牌并摸两张牌;当你以此法弃置天启骑士时,若你武将牌上没有对应的天启骑士,你将其置于你的武将牌上;准备阶段,若你的武将牌上有4张天启骑士,你获得游戏胜利',
|
hstianqi_info:'出牌阶段限一次,你可以选择一项:弃置一张手牌并随机装备一件天启骑士(不能替换现有装备),或弃置一张装备区内的牌并摸两张牌;当你以此法弃置天启骑士时,若你武将牌上没有对应的天启骑士,你将其置于你的武将牌上;准备阶段,若你的武将牌上有4张天启骑士,你获得游戏胜利。',
|
||||||
hspuzhao:'普照',
|
hspuzhao:'普照',
|
||||||
hspuzhao_info:'出牌阶段限一次,你可以弃置一张红桃牌,然后令至多三名随机友方角色各摸一张牌(若你无其他队友,改为摸两张牌)',
|
hspuzhao_info:'出牌阶段限一次,你可以弃置一张红桃牌,然后令至多三名随机友方角色各摸一张牌(若你无其他队友,改为摸两张牌)。',
|
||||||
hsyanxin:'炎心',
|
hsyanxin:'炎心',
|
||||||
hsyanxin_info:'锁定技,在你摸牌时,若牌堆中有红色牌,你摸到的首张牌必为红色',
|
hsyanxin_info:'锁定技,在你摸牌时,若牌堆中有红色牌,你摸到的首张牌必为红色。',
|
||||||
ysjqisha:'七煞',
|
ysjqisha:'七煞',
|
||||||
ysjqisha_ju:'惧之煞',
|
ysjqisha_ju:'惧之煞',
|
||||||
ysjqisha_kuang:'狂之煞',
|
ysjqisha_kuang:'狂之煞',
|
||||||
|
@ -9701,457 +9703,457 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ysjqisha_wang:'惘之煞',
|
ysjqisha_wang:'惘之煞',
|
||||||
ysjqisha_hen:'恨之煞',
|
ysjqisha_hen:'恨之煞',
|
||||||
ysjqisha_ao:'傲之煞',
|
ysjqisha_ao:'傲之煞',
|
||||||
ysjqisha_info:'锁定技,每当你造成或受到伤害,你令对方随机获得一种消极状态直到下一回合结束',
|
ysjqisha_info:'锁定技,每当你造成或受到伤害,你令对方随机获得一种消极状态直到下一回合结束。',
|
||||||
zhaochao:'招潮',
|
zhaochao:'招潮',
|
||||||
zhaochao_info:'锁定技,结束阶段,你视为对一名随机敌人使用一张杀;若此杀被闪避,你视为对另一名随机敌人使用一张杀',
|
zhaochao_info:'锁定技,结束阶段,你视为对一名随机敌人使用一张杀;若此杀被闪避,你视为对另一名随机敌人使用一张杀。',
|
||||||
hllingxi:'灵息',
|
hllingxi:'灵息',
|
||||||
hllingxi_info:'出牌阶段,你可以令一名已受伤的其他角色弃置两张牌并回复1点体力(同阶段对一名角色限用一次);结束阶段,你可以回复1点体力',
|
hllingxi_info:'出牌阶段,你可以令一名已受伤的其他角色弃置两张牌并回复1点体力(同阶段对一名角色限用一次);结束阶段,你可以回复1点体力。',
|
||||||
xiyong:'汐涌',
|
xiyong:'汐涌',
|
||||||
xiyong_info:'结束阶段,你可以摸一张牌并可以使用之,若你使用了此牌,你再摸一张牌',
|
xiyong_info:'结束阶段,你可以摸一张牌并可以使用之,若你使用了此牌,你再摸一张牌。',
|
||||||
hsjixie:'机械',
|
hsjixie:'机械',
|
||||||
hsjixie_zhadan:'炸弹机器人',
|
hsjixie_zhadan:'炸弹机器人',
|
||||||
hsjixie_zhadan_pop:'炸弹',
|
hsjixie_zhadan_pop:'炸弹',
|
||||||
hsjixie_zhadan_info:'出牌阶段对自己使用,对一名随机敌人造成1点火属性伤害',
|
hsjixie_zhadan_info:'出牌阶段对自己使用,对一名随机敌人造成1点火属性伤害。',
|
||||||
yindan:'引弹',
|
yindan:'引弹',
|
||||||
yindan_info:'出牌阶段限一次,你可以弃置一张黑桃牌并失去1点体力,然后获得两张炸弹机器人',
|
yindan_info:'出牌阶段限一次,你可以弃置一张黑桃牌并失去1点体力,然后获得两张炸弹机器人。',
|
||||||
huanjue:'幻觉',
|
huanjue:'幻觉',
|
||||||
huanjue_info:'每当你使用一张牌,若此牌指定了惟一目标,你可以发现一张牌,然后可以代替此牌结算',
|
huanjue_info:'每当你使用一张牌,若此牌指定了惟一目标,你可以发现一张牌,然后可以代替此牌结算。',
|
||||||
oldhuanjue:'幻觉',
|
oldhuanjue:'幻觉',
|
||||||
oldhuanjue_info:'每回合限一次,当你成为一名其他角色的卡牌惟一目标时,你可以发现一张牌代替此牌',
|
oldhuanjue_info:'每回合限一次,当你成为一名其他角色的卡牌惟一目标时,你可以发现一张牌代替此牌。',
|
||||||
zhziwu:'紫雾',
|
zhziwu:'紫雾',
|
||||||
zhziwu_info:'每当你于回合外失去牌,你可以令当前回合角色不能使用杀直到回合结束',
|
zhziwu_info:'每当你于回合外失去牌,你可以令当前回合角色不能使用杀直到回合结束。',
|
||||||
huanjue_info_old:'每名角色的回合限一次,当你使用卡牌指定其他角色为惟一目标,或当其他角色使用卡牌指定你为惟一目标时,你可以发现一张牌代替此牌,然后该牌的使用者在结算后摸一张牌',
|
huanjue_info_old:'每名角色的回合限一次,当你使用卡牌指定其他角色为惟一目标,或当其他角色使用卡牌指定你为惟一目标时,你可以发现一张牌代替此牌,然后该牌的使用者在结算后摸一张牌。',
|
||||||
yinzong:'影踪',
|
yinzong:'影踪',
|
||||||
yinzong_info:'锁定技,每当你失去装备区内的牌,你获得一张闪',
|
yinzong_info:'锁定技,每当你失去装备区内的牌,你获得一张闪。',
|
||||||
tansuo:'探索',
|
tansuo:'探索',
|
||||||
tansuo_info:'出牌阶段限一次,你可以弃置一张牌,然后发现一张炉石衍生牌',
|
tansuo_info:'出牌阶段限一次,你可以弃置一张牌,然后发现一张炉石衍生牌。',
|
||||||
srjici:'棘刺',
|
srjici:'棘刺',
|
||||||
srjici_info:'锁定技,每当你造成一次伤害,你摸一张牌,受伤害角色随机弃置一张牌',
|
srjici_info:'锁定技,每当你造成一次伤害,你摸一张牌,受伤害角色随机弃置一张牌。',
|
||||||
lieqi:'猎奇',
|
lieqi:'猎奇',
|
||||||
lieqi_info:'准备和结束阶段,你可以指定一名角色,从一张该角色手牌与另外两张随机牌中猜测哪张为该角色手牌,若猜中,你获得一张该牌的复制(同一回合不能指定相同角色)',
|
lieqi_info:'准备和结束阶段,你可以指定一名角色,从一张该角色手牌与另外两张随机牌中猜测哪张为该角色手牌,若猜中,你获得一张该牌的复制(同一回合不能指定相同角色)。',
|
||||||
azaowu:'造物',
|
azaowu:'造物',
|
||||||
azaowu_backup:'造物',
|
azaowu_backup:'造物',
|
||||||
azaowu_info:'出牌阶段限一次,你可以将一张基本牌当作任意一张基本牌使用',
|
azaowu_info:'出牌阶段限一次,你可以将一张基本牌当作任意一张基本牌使用。',
|
||||||
shouwang:'守望',
|
shouwang:'守望',
|
||||||
shouwang2:'守望',
|
shouwang2:'守望',
|
||||||
shouwang_info:'每名角色每局限一次,当一名角色进入濒死状态时,你可以令其回复1点体力并获得1点护甲',
|
shouwang_info:'每名角色每局限一次,当一名角色进入濒死状态时,你可以令其回复1点体力并获得1点护甲。',
|
||||||
shouwang_info_alter:'每名角色每局限一次,当一名角色进入濒死状态时,你可以令其回复1点体力',
|
shouwang_info_alter:'每名角色每局限一次,当一名角色进入濒死状态时,你可以令其回复1点体力。',
|
||||||
qingtian:'擎天',
|
qingtian:'擎天',
|
||||||
qingtian_info:'锁定技,若你的体力值为全场最多,你受到的伤害始终+1',
|
qingtian_info:'锁定技,若你的体力值为全场最多,你受到的伤害始终+1。',
|
||||||
qianfu:'潜伏',
|
qianfu:'潜伏',
|
||||||
qianfu2:'潜伏',
|
qianfu2:'潜伏',
|
||||||
qianfu2_bg:'伏',
|
qianfu2_bg:'伏',
|
||||||
qianfu_info:'锁定技,在你死亡前,若你没有进入潜伏状态,你弃置所有牌并进入潜伏状态;当你体力值回复到3(或体力上限)时,你解除潜伏状态并摸三张牌',
|
qianfu_info:'锁定技,在你死亡前,若你没有进入潜伏状态,你弃置所有牌并进入潜伏状态;当你体力值回复到3(或体力上限)时,你解除潜伏状态并摸三张牌。',
|
||||||
shimo:'尸魔',
|
shimo:'尸魔',
|
||||||
shimo_info:'锁定技,距离你为1的角色受到伤害时,你回复1点体力,若你没受伤,改为摸一张牌',
|
shimo_info:'锁定技,距离你为1的角色受到伤害时,你回复1点体力,若你没受伤,改为摸一张牌。',
|
||||||
lieyang:'裂阳',
|
lieyang:'裂阳',
|
||||||
lieyang_info:'锁定技,每当你于回合内使用一张锦囊牌,你获得一张随机锦囊牌;当你发动三次此技能后,你本回合不能再使用锦囊牌',
|
lieyang_info:'锁定技,每当你于回合内使用一张锦囊牌,你获得一张随机锦囊牌;当你发动三次此技能后,你本回合不能再使用锦囊牌。',
|
||||||
zhuilie:'追猎',
|
zhuilie:'追猎',
|
||||||
zhuilie_info:'准备阶段,你可以弃置一张牌,然后将牌堆顶六张牌中的基本牌移至弃牌堆;若移入弃牌堆的牌超过三张,你摸一张牌',
|
zhuilie_info:'准备阶段,你可以弃置一张牌,然后将牌堆顶六张牌中的基本牌移至弃牌堆;若移入弃牌堆的牌超过三张,你摸一张牌。',
|
||||||
szbianshen:'变身',
|
szbianshen:'变身',
|
||||||
szbianshen_info:'限定技,回合开始时,若游戏轮数不少于3,你可以随机观看5张体力上限不小于5的武将牌,将武将牌替换为其中一张',
|
szbianshen_info:'限定技,回合开始时,若游戏轮数不少于3,你可以随机观看5张体力上限不小于5的武将牌,将武将牌替换为其中一张。',
|
||||||
kekao:'科考',
|
kekao:'科考',
|
||||||
kekao_info:'结束阶段,你可以发现一张延时锦囊牌',
|
kekao_info:'结束阶段,你可以发现一张延时锦囊牌。',
|
||||||
jinhua:'进化',
|
jinhua:'进化',
|
||||||
jinhua_info:'锁定技,每当你以自己为目标使用一张非转化的锦囊牌,你发现一个技能并获得之',
|
jinhua_info:'锁定技,每当你以自己为目标使用一张非转化的锦囊牌,你发现一个技能并获得之。',
|
||||||
hsqizhou:'祈咒',
|
hsqizhou:'祈咒',
|
||||||
hsqizhou_feng:'风之祈咒',
|
hsqizhou_feng:'风之祈咒',
|
||||||
hsqizhou_feng_info:'出牌阶段对自己使用,令所有目标的敌人打出一张杀或受到1点雷属性伤害',
|
hsqizhou_feng_info:'出牌阶段对自己使用,令所有目标的敌人打出一张杀或受到1点雷属性伤害。',
|
||||||
hsqizhou_shui:'水之祈咒',
|
hsqizhou_shui:'水之祈咒',
|
||||||
hsqizhou_shui_info:'出牌阶段对自己使用,回复2点体力',
|
hsqizhou_shui_info:'出牌阶段对自己使用,回复2点体力。',
|
||||||
hsqizhou_huo:'火之祈咒',
|
hsqizhou_huo:'火之祈咒',
|
||||||
hsqizhou_huo_info:'出牌阶段对任意角色使用,令目标受到1点火属性伤害',
|
hsqizhou_huo_info:'出牌阶段对任意角色使用,令目标受到1点火属性伤害。',
|
||||||
hsqizhou_tu:'土之祈咒',
|
hsqizhou_tu:'土之祈咒',
|
||||||
hsqizhou_tu_info:'出牌阶段对任意其他角色使用,令目标获得1点护甲',
|
hsqizhou_tu_info:'出牌阶段对任意其他角色使用,令目标获得1点护甲。',
|
||||||
kqizhou:'祈咒',
|
kqizhou:'祈咒',
|
||||||
kqizhou_info:'准备阶段,若你于上回合使用过锦囊牌,则可以获得一张元素祈咒',
|
kqizhou_info:'准备阶段,若你于上回合使用过锦囊牌,则可以获得一张元素祈咒。',
|
||||||
jingcu:'晶簇',
|
jingcu:'晶簇',
|
||||||
jingcu_info:'出牌阶段,你可以减少1点体力上限并摸两张牌',
|
jingcu_info:'出牌阶段,你可以减少1点体力上限并摸两张牌。',
|
||||||
shengzhang:'生长',
|
shengzhang:'生长',
|
||||||
shengzhang_info:'锁定技,若你于弃牌阶段弃置了牌,你增加1点体力上限',
|
shengzhang_info:'锁定技,若你于弃牌阶段弃置了牌,你增加1点体力上限。',
|
||||||
pyuhuo:'浴火',
|
pyuhuo:'浴火',
|
||||||
pyuhuo_info:'锁定技,在你首次进入濒死状态时,你弃置所有牌、重置武将牌、将体力和体力上限变为4并摸四张牌;在你第二次进入濒死状态时,你弃置所有牌、重置武将牌、将体力和体力上限变为6并摸六张牌',
|
pyuhuo_info:'锁定技,在你首次进入濒死状态时,你弃置所有牌、重置武将牌、将体力和体力上限变为4并摸四张牌;在你第二次进入濒死状态时,你弃置所有牌、重置武将牌、将体力和体力上限变为6并摸六张牌。',
|
||||||
mengye:'梦魇',
|
mengye:'梦魇',
|
||||||
mengye_info:'结束阶段,你可以选择一名有手牌的角色将其一张随机的非毒手牌转化为毒,然后令其获得1点护甲',
|
mengye_info:'结束阶段,你可以选择一名有手牌的角色将其一张随机的非毒手牌转化为毒,然后令其获得1点护甲。',
|
||||||
mengye_old:'梦魇',
|
mengye_old:'梦魇',
|
||||||
mengye_old2:'梦魇',
|
mengye_old2:'梦魇',
|
||||||
mengye_old_info:'回合结束后,你可以翻面并指定一名的非主公角色,由你控制其进行一个额外的回合。在此回合中,你的本体不参与游戏',
|
mengye_old_info:'回合结束后,你可以翻面并指定一名的非主公角色,由你控制其进行一个额外的回合。在此回合中,你的本体不参与游戏。',
|
||||||
fuhua:'腐化',
|
fuhua:'腐化',
|
||||||
fuhua2:'腐化',
|
fuhua2:'腐化',
|
||||||
fuhua_info:'出牌阶段,你可以将一张毒交给一名没有魔血技能的其他角色,该角色选择一项:1. 获得技能魔血,此后每个结束阶段需交给你一张手牌;2. 视为你对其使用一张决斗',
|
fuhua_info:'出牌阶段,你可以将一张毒交给一名没有魔血技能的其他角色,该角色选择一项:1. 获得技能魔血,此后每个结束阶段需交给你一张手牌;2. 视为你对其使用一张决斗。',
|
||||||
moxie:'魔血',
|
moxie:'魔血',
|
||||||
moxie_info:'锁定技,当你因【毒】失去体力时,你改为摸两张牌;结束阶段,你将一张随机手牌转化为毒。',
|
moxie_info:'锁定技,当你因【毒】失去体力时,你改为摸两张牌;结束阶段,你将一张随机手牌转化为毒。',
|
||||||
gfuhun:'附魂',
|
gfuhun:'附魂',
|
||||||
gfuhun_info:'结束阶段,若你未翻面,你可以和一名其他角色拼点,若你赢,你将武将牌翻至背面,该角色进入混乱状态直到下一回合结束',
|
gfuhun_info:'结束阶段,若你未翻面,你可以和一名其他角色拼点,若你赢,你将武将牌翻至背面,该角色进入混乱状态直到下一回合结束。',
|
||||||
hlongyi:'龙裔',
|
hlongyi:'龙裔',
|
||||||
hlongyi_info:'锁定技,你的黑色牌不占用手牌上限',
|
hlongyi_info:'锁定技,你的黑色牌不占用手牌上限。',
|
||||||
zhongji:'重击',
|
zhongji:'重击',
|
||||||
zhongji_info:'每当你即将造成伤害,可弃置一张黑色手牌令伤害+1',
|
zhongji_info:'每当你即将造成伤害,可弃置一张黑色手牌令伤害+1。',
|
||||||
fuwen:'符文',
|
fuwen:'符文',
|
||||||
fuwen_info:'若你弃牌阶段弃置了锦囊牌,你可以获得1点护甲',
|
fuwen_info:'若你弃牌阶段弃置了锦囊牌,你可以获得1点护甲。',
|
||||||
jinzhou:'禁咒',
|
jinzhou:'禁咒',
|
||||||
jinzhou_info:'结束阶段,若你手牌中有黑桃牌,你可以令一名其他角色的非锁定技失效直到其下一回合结束',
|
jinzhou_info:'结束阶段,若你手牌中有黑桃牌,你可以令一名其他角色的非锁定技失效直到其下一回合结束。',
|
||||||
midian:'秘典',
|
midian:'秘典',
|
||||||
midian_info:'出牌阶段限一次,你可以弃置一张锦囊牌,然后随机获得三张锦囊牌',
|
midian_info:'出牌阶段限一次,你可以弃置一张锦囊牌,然后随机获得三张锦囊牌。',
|
||||||
yuelu:'月露',
|
yuelu:'月露',
|
||||||
yuelu_info:'在一名角色的濒死阶段,你可以弃置一张黑色牌令其回复1点体力并获得1点护甲',
|
yuelu_info:'在一名角色的濒死阶段,你可以弃置一张黑色牌令其回复1点体力并获得1点护甲。',
|
||||||
yuelu_info_alter:'在一名角色的濒死阶段,你可以弃置一张黑色牌令其回复1点体力',
|
yuelu_info_alter:'在一名角色的濒死阶段,你可以弃置一张黑色牌令其回复1点体力。',
|
||||||
xingluo:'星落',
|
xingluo:'星落',
|
||||||
xingluo_info:'准备阶段,你可以令任意名手牌数多于你的角色各弃置一张手牌,然后你可以从弃置的牌中选择一张加入手牌',
|
xingluo_info:'准备阶段,你可以令任意名手牌数多于你的角色各弃置一张手牌,然后你可以从弃置的牌中选择一张加入手牌。',
|
||||||
yushou:'御兽',
|
yushou:'御兽',
|
||||||
yushou_info:'出牌阶段,你可以弃置一张牌并召唤一个随机的野兽宠物,回合开始阶段,你随机失去一个宠物',
|
yushou_info:'出牌阶段,你可以弃置一张牌并召唤一个随机的野兽宠物,回合开始阶段,你随机失去一个宠物。',
|
||||||
yushou_misha:'米莎',
|
yushou_misha:'米莎',
|
||||||
yushou_misha_info:'每当你受到一次伤害,你获得1点护甲',
|
yushou_misha_info:'每当你受到一次伤害,你获得1点护甲。',
|
||||||
yushou_huofu:'霍弗',
|
yushou_huofu:'霍弗',
|
||||||
yushou_huofu_info:'你可以将一张黑色牌当作决斗使用',
|
yushou_huofu_info:'你可以将一张黑色牌当作决斗使用。',
|
||||||
yushou_leiouke:'雷欧克',
|
yushou_leiouke:'雷欧克',
|
||||||
yushou_leiouke_info:'你每回合造成的首次伤害+1',
|
yushou_leiouke_info:'你每回合造成的首次伤害+1。',
|
||||||
hsqingyu_hufu:'青玉护符',
|
hsqingyu_hufu:'青玉护符',
|
||||||
hsqingyu_hufu_info:'令一名角色获得1点护甲',
|
hsqingyu_hufu_info:'令一名角色获得1点护甲。',
|
||||||
hsqingyu_zhao:'青玉之爪',
|
hsqingyu_zhao:'青玉之爪',
|
||||||
hsqingyu_zhao_info:'当你装备此装备时,摸一张牌',
|
hsqingyu_zhao_info:'当你装备此装备时,摸一张牌。',
|
||||||
hsqingyu_feibiao:'青玉飞镖',
|
hsqingyu_feibiao:'青玉飞镖',
|
||||||
hsqingyu_feibiao_info:'弃置一名角色的一张随机手牌和一张随机装备牌',
|
hsqingyu_feibiao_info:'弃置一名角色的一张随机手牌和一张随机装备牌。',
|
||||||
hsqingyu_shandian:'青玉闪电',
|
hsqingyu_shandian:'青玉闪电',
|
||||||
hsqingyu_shandian_info:'对一名角色造成1点雷电伤害',
|
hsqingyu_shandian_info:'对一名角色造成1点雷电伤害。',
|
||||||
hsqingyu_zhanfang:'青玉绽放',
|
hsqingyu_zhanfang:'青玉绽放',
|
||||||
hsqingyu_zhanfang_info:'令一名角色增加1点体力上限并摸一张牌',
|
hsqingyu_zhanfang_info:'令一名角色增加1点体力上限并摸一张牌。',
|
||||||
ayuling:'玉灵',
|
ayuling:'玉灵',
|
||||||
ayuling_info:'每当你受到一次伤害,你可以获得一张随机青玉牌',
|
ayuling_info:'每当你受到一次伤害,你可以获得一张随机青玉牌。',
|
||||||
qingzun:'青樽',
|
qingzun:'青樽',
|
||||||
qingzun_info:'本局对战中,每当你使用一张青玉牌,你的手牌上限+1;当你累计使用两张青玉牌后,你可以于准备阶段摸一张牌;当你累计使用六张青玉牌后,你可以于结束阶段摸一张牌',
|
qingzun_info:'本局对战中,每当你使用一张青玉牌,你的手牌上限+1;当你累计使用两张青玉牌后,你可以于准备阶段摸一张牌;当你累计使用六张青玉牌后,你可以于结束阶段摸一张牌。',
|
||||||
qingzun_info_alter:'本局对战中,每当你使用一张青玉牌,你的手牌上限+1;当你累计使用三张青玉牌后,你可以于准备阶段摸一张牌;当你累计使用九张青玉牌后,你可以于结束阶段摸一张牌',
|
qingzun_info_alter:'本局对战中,每当你使用一张青玉牌,你的手牌上限+1;当你累计使用三张青玉牌后,你可以于准备阶段摸一张牌;当你累计使用九张青玉牌后,你可以于结束阶段摸一张牌。',
|
||||||
lianjin:'炼金',
|
lianjin:'炼金',
|
||||||
lianjin_info:'出牌阶段限一次,你可以弃置一张牌并获得一张由三张随机牌组成的药水;当你因弃置而失去药水牌时,你随机获得药水的组成卡牌之一',
|
lianjin_info:'出牌阶段限一次,你可以弃置一张牌并获得一张由三张随机牌组成的药水;当你因弃置而失去药水牌时,你随机获得药水的组成卡牌之一。',
|
||||||
shouji:'收集',
|
shouji:'收集',
|
||||||
shouji_info:'每当你使用一张杀,你可以获得一张目标随机手牌的复制;每当你的杀被闪避,你可以获得一张目标随机非特殊装备牌的复制;每回合限各限一次',
|
shouji_info:'每当你使用一张杀,你可以获得一张目标随机手牌的复制;每当你的杀被闪避,你可以获得一张目标随机非特殊装备牌的复制;每回合限各限一次。',
|
||||||
guimou:'鬼谋',
|
guimou:'鬼谋',
|
||||||
guimou_info:'每当你受到一次伤害,你可以获得伤害来源的一张手牌,若此牌是黑色,你展示此牌并重复此过程',
|
guimou_info:'每当你受到一次伤害,你可以获得伤害来源的一张手牌,若此牌是黑色,你展示此牌并重复此过程。',
|
||||||
yingxi:'影袭',
|
yingxi:'影袭',
|
||||||
yingxi_info:'结束阶段,若你本回合未造成伤害,你可以将一张黑色牌当作杀对任意一名角色使用,若目标未受到伤害,此杀不可闪避',
|
yingxi_info:'结束阶段,若你本回合未造成伤害,你可以将一张黑色牌当作杀对任意一名角色使用,若目标未受到伤害,此杀不可闪避。',
|
||||||
peiyu:'培育',
|
peiyu:'培育',
|
||||||
peiyu_info:'准备阶段,你可以令一名没有图腾的角色获得一个随机图腾直到其首次受到伤害',
|
peiyu_info:'准备阶段,你可以令一名没有图腾的角色获得一个随机图腾直到其首次受到伤害。',
|
||||||
peiyu_old_info:'出牌阶段,你可以弃置一张牌令一名没有图腾的角色获得一个随机图腾,或令一名有图腾的角色替换一个图腾;你死亡时,其他角色失去以此法获得的图腾',
|
peiyu_old_info:'出牌阶段,你可以弃置一张牌令一名没有图腾的角色获得一个随机图腾,或令一名有图腾的角色替换一个图腾;你死亡时,其他角色失去以此法获得的图腾。',
|
||||||
wzhanyi:'战意',
|
wzhanyi:'战意',
|
||||||
wzhanyi_info:'你可以跳过出牌阶段,改为摸三张牌并展示之,将摸到的装备牌置于装备区,然后可以使用手牌中的杀',
|
wzhanyi_info:'你可以跳过出牌阶段,改为摸三张牌并展示之,将摸到的装备牌置于装备区,然后可以使用手牌中的杀。',
|
||||||
shengteng:'升腾',
|
shengteng:'升腾',
|
||||||
shengteng_info:'锁定技,每当你使用锦囊牌造成伤害,你增加1点体力上限并回复1点体力',
|
shengteng_info:'锁定技,每当你使用锦囊牌造成伤害,你增加1点体力上限并回复1点体力。',
|
||||||
yuansu:'寂灭',
|
yuansu:'寂灭',
|
||||||
yuansu_info:'出牌阶段限一次,若你已损失的体力值不少于3,你可以将体力上限降至与体力值相同,视为使用一张元素毁灭',
|
yuansu_info:'出牌阶段限一次,若你已损失的体力值不少于3,你可以将体力上限降至与体力值相同,视为使用一张元素毁灭。',
|
||||||
nuyan:'怒焰',
|
nuyan:'怒焰',
|
||||||
nuyan2:'怒焰',
|
nuyan2:'怒焰',
|
||||||
nuyan_backup:'怒焰',
|
nuyan_backup:'怒焰',
|
||||||
nuyan_info:'出牌阶段限一次,你可以将一张红色牌当作任意一张能造成伤害的牌使用(不得是你本局以此法使用过的牌)',
|
nuyan_info:'出牌阶段限一次,你可以将一张红色牌当作任意一张能造成伤害的牌使用(不得是你本局以此法使用过的牌)。',
|
||||||
nuyan2_info:'出牌阶段限三次,你可以失去1点体力,视为使用任意一张能造成伤害的牌”',
|
nuyan2_info:'出牌阶段限三次,你可以失去1点体力,视为使用任意一张能造成伤害的牌”。',
|
||||||
chouhuo:'仇火',
|
chouhuo:'仇火',
|
||||||
chouhuo_info:'觉醒技,出牌阶段开始时,若你的怒焰技能已将可用的牌用完,你失去1点体力上限,获得2点护甲,然后将怒焰的描述改为“出牌阶段限三次,你可以失去1点体力,视为使用任意一张能造成伤害的牌”',
|
chouhuo_info:'觉醒技,出牌阶段开始时,若你的怒焰技能已将可用的牌用完,你失去1点体力上限,获得2点护甲,然后将怒焰的描述改为“出牌阶段限三次,你可以失去1点体力,视为使用任意一张能造成伤害的牌”。',
|
||||||
hsdusu:'毒素',
|
hsdusu:'毒素',
|
||||||
hsdusu_xueji:'血蓟',
|
hsdusu_xueji:'血蓟',
|
||||||
hsdusu_xueji_info:'随机弃置一名角色的2张装备牌',
|
hsdusu_xueji_info:'随机弃置一名角色的2张装备牌。',
|
||||||
hsdusu_shinancao:'石楠草',
|
hsdusu_shinancao:'石楠草',
|
||||||
hsdusu_shinancao_info:'令一名角色下一次造成的伤害+1',
|
hsdusu_shinancao_info:'令一名角色下一次造成的伤害+1。',
|
||||||
hsdusu_kuyecao:'枯叶草',
|
hsdusu_kuyecao:'枯叶草',
|
||||||
hsdusu_kuyecao_info:'令一名角色获得技能潜行,直到其下一回合开始',
|
hsdusu_kuyecao_info:'令一名角色获得技能潜行,直到其下一回合开始。',
|
||||||
hsdusu_huoyanhua:'火焰花',
|
hsdusu_huoyanhua:'火焰花',
|
||||||
hsdusu_huoyanhua_info:'对攻击范围内的一名角色造成1点火焰伤害',
|
hsdusu_huoyanhua_info:'对攻击范围内的一名角色造成1点火焰伤害。',
|
||||||
hsdusu_huangxuecao:'皇血草',
|
hsdusu_huangxuecao:'皇血草',
|
||||||
hsdusu_huangxuecao_info:'摸两张牌',
|
hsdusu_huangxuecao_info:'摸两张牌。',
|
||||||
duxin:'毒心',
|
duxin:'毒心',
|
||||||
duxin_info:'准备阶段和结束阶段,若你的手中没有毒素牌,你可以获得一张随机毒素牌',
|
duxin_info:'准备阶段和结束阶段,若你的手中没有毒素牌,你可以获得一张随机毒素牌。',
|
||||||
oldduxin:'毒心',
|
oldduxin:'毒心',
|
||||||
oldduxin_info:'准备阶段和结束阶段,你可以获得一张随机毒素牌',
|
oldduxin_info:'准备阶段和结束阶段,你可以获得一张随机毒素牌。',
|
||||||
hstuteng:'图腾',
|
hstuteng:'图腾',
|
||||||
kuangluan:'狂乱',
|
kuangluan:'狂乱',
|
||||||
kuangluan2:'狂乱',
|
kuangluan2:'狂乱',
|
||||||
// kuangluan_info:'锁定技,每当你于回合内使用一张普通锦囊牌,便于出牌阶段结束时随机使用一张普通锦囊牌(随机指定目标)',
|
// kuangluan_info:'锁定技,每当你于回合内使用一张普通锦囊牌,便于出牌阶段结束时随机使用一张普通锦囊牌(随机指定目标)。',
|
||||||
kuangluan_info:'锁定技,每当一名其他角色对你造成伤害,该角色进入混乱状态直到当前回合结束',
|
kuangluan_info:'锁定技,每当一名其他角色对你造成伤害,该角色进入混乱状态直到当前回合结束。',
|
||||||
zengli:'赠礼',
|
zengli:'赠礼',
|
||||||
zengli_info:'出牌阶段限一次,你指定一名其他角色与你各装备一把武器',
|
zengli_info:'出牌阶段限一次,你指定一名其他角色与你各装备一把武器。',
|
||||||
xiubu:'修补',
|
xiubu:'修补',
|
||||||
xiubu_info:'每当你装备一把未强化的武器,你可以获得数量等同于武器攻击范围的随机零件',
|
xiubu_info:'每当你装备一把未强化的武器,你可以获得数量等同于武器攻击范围的随机零件。',
|
||||||
mobao:'魔爆',
|
mobao:'魔爆',
|
||||||
mobao_info:'出牌阶段限一次,你可以弃置至多三张黑色牌,然后对所有于上轮对你造成过伤害的角色造成等同于你弃牌数的雷电伤害',
|
mobao_info:'出牌阶段限一次,你可以弃置至多三张黑色牌,然后对所有于上轮对你造成过伤害的角色造成等同于你弃牌数的雷电伤害。',
|
||||||
xianji:'献祭',
|
xianji:'献祭',
|
||||||
xianji2:'献祭',
|
xianji2:'献祭',
|
||||||
xianji3:'献祭',
|
xianji3:'献祭',
|
||||||
xianji_info:'其他角色可以在其结束阶段弃置1~2张手牌并令你摸等量的牌,若如此做,直到其下一回合结束,每当你使用卡牌指定其为目标时,其摸一张牌',
|
xianji_info:'其他角色可以在其结束阶段弃置1~2张手牌并令你摸等量的牌,若如此做,直到其下一回合结束,每当你使用卡牌指定其为目标时,其摸一张牌。',
|
||||||
xueren:'血刃',
|
xueren:'血刃',
|
||||||
xueren_info:'每当你使用杀造成伤害,你可以令受伤害角色与你各失去1点体力,然后你摸两张牌',
|
xueren_info:'每当你使用杀造成伤害,你可以令受伤害角色与你各失去1点体力,然后你摸两张牌。',
|
||||||
maoxian:'奇旅',
|
maoxian:'奇旅',
|
||||||
maoxian2:'奇旅',
|
maoxian2:'奇旅',
|
||||||
maoxian_info:'出牌阶段限两次,你可以发现一个技能并获得之(替换此前发现的技能)',
|
maoxian_info:'出牌阶段限两次,你可以发现一个技能并获得之(替换此前发现的技能)。',
|
||||||
tanmi:'探秘',
|
tanmi:'探秘',
|
||||||
tanmi_info:'在一名其他角色的结束阶段,若你没有手牌,你可以摸两张牌并可以使用两张牌',
|
tanmi_info:'在一名其他角色的结束阶段,若你没有手牌,你可以摸两张牌并可以使用两张牌。',
|
||||||
yiwen:'轶闻',
|
yiwen:'轶闻',
|
||||||
yiwen_info:'锁定技,每当其他角色于回合内首次使用非特殊卡牌指定你为惟一目标,你获得一张此牌的复制',
|
yiwen_info:'锁定技,每当其他角色于回合内首次使用非特殊卡牌指定你为惟一目标,你获得一张此牌的复制。',
|
||||||
tanbao_old:'探宝',
|
tanbao_old:'探宝',
|
||||||
tanbao_old_info:'出牌阶段限一次,你可以弃置三张牌,然后展示牌堆顶的三张牌,然后获得其中任意张类别不同的牌;若三张牌类别均不相同,你回复全部体力值',
|
tanbao_old_info:'出牌阶段限一次,你可以弃置三张牌,然后展示牌堆顶的三张牌,然后获得其中任意张类别不同的牌;若三张牌类别均不相同,你回复全部体力值。',
|
||||||
qianghuax:'强化',
|
qianghuax:'强化',
|
||||||
qianghuax_info:'出牌阶段限一次,你可以弃置任意张不同类别的牌,然后展示并获得与弃置的牌类别相同且价值更高的牌',
|
qianghuax_info:'出牌阶段限一次,你可以弃置任意张不同类别的牌,然后展示并获得与弃置的牌类别相同且价值更高的牌。',
|
||||||
zhuizong:'追踪',
|
zhuizong:'追踪',
|
||||||
zhuizong_info:'出牌阶段限一次,你可以弃置任意张牌,观看牌堆顶的等同于弃牌数四倍的牌,然后获得其中的一张牌',
|
zhuizong_info:'出牌阶段限一次,你可以弃置任意张牌,观看牌堆顶的等同于弃牌数四倍的牌,然后获得其中的一张牌。',
|
||||||
xunbao:'寻宝',
|
xunbao:'寻宝',
|
||||||
xunbao2:'寻宝',
|
xunbao2:'寻宝',
|
||||||
xunbao_info:'准备阶段,若你的武将牌上没有藏宝图,你可以将一张藏宝图置于你的武将牌上;若你的武将牌上有藏宝图,你可以弃置一张与藏宝图点数相同的牌并获得此藏宝图',
|
xunbao_info:'准备阶段,若你的武将牌上没有藏宝图,你可以将一张藏宝图置于你的武将牌上;若你的武将牌上有藏宝图,你可以弃置一张与藏宝图点数相同的牌并获得此藏宝图。',
|
||||||
xieneng:'邪能',
|
xieneng:'邪能',
|
||||||
xieneng_info:'结束阶段,你可以选择一张神器牌并获得之',
|
xieneng_info:'结束阶段,你可以选择一张神器牌并获得之。',
|
||||||
fbeifa:'北伐',
|
fbeifa:'北伐',
|
||||||
fbeifa_info:'每当你失去最后一张手牌,你可以视为使用一张无视距离的杀,若此杀造成伤害,你摸一张牌,每回合最多发动3次',
|
fbeifa_info:'每当你失去最后一张手牌,你可以视为使用一张无视距离的杀,若此杀造成伤害,你摸一张牌,每回合最多发动3次。',
|
||||||
oldfbeifa:'北伐',
|
oldfbeifa:'北伐',
|
||||||
oldfbeifa_info:'每当你失去最后一张手牌,你可以视为使用一张无视距离的杀,若此杀造成伤害,你摸一张牌',
|
oldfbeifa_info:'每当你失去最后一张手牌,你可以视为使用一张无视距离的杀,若此杀造成伤害,你摸一张牌。',
|
||||||
yufa:'驭法',
|
yufa:'驭法',
|
||||||
yufa_info:'在任意一名其他角色的结束阶段,若你于此回合内受过其伤害,你可以将一张传送门交给除此角色外的任意一名角色',
|
yufa_info:'在任意一名其他角色的结束阶段,若你于此回合内受过其伤害,你可以将一张传送门交给除此角色外的任意一名角色。',
|
||||||
bingyan:'冰焰',
|
bingyan:'冰焰',
|
||||||
bingyan_info:'出牌阶段限一次,你可以将一张红色牌当作炽羽袭,或将一张黑色牌当作惊雷闪使用',
|
bingyan_info:'出牌阶段限一次,你可以将一张红色牌当作炽羽袭,或将一张黑色牌当作惊雷闪使用。',
|
||||||
hsshenqi:'神器',
|
hsshenqi:'神器',
|
||||||
hsshenqi_morijingxiang:'末日镜像',
|
hsshenqi_morijingxiang:'末日镜像',
|
||||||
hsshenqi_morijingxiang_info:'限武将牌正面朝上时使用,从所有其他角色的区域内各获得一张牌;使用后将武将牌翻至背面',
|
hsshenqi_morijingxiang_info:'限武将牌正面朝上时使用,从所有其他角色的区域内各获得一张牌;使用后将武将牌翻至背面。',
|
||||||
hsshenqi_kongbusangzhong:'恐怖丧钟',
|
hsshenqi_kongbusangzhong:'恐怖丧钟',
|
||||||
hsshenqi_kongbusangzhong_info:'限武将牌正面朝上时使用,对所有其他角色各造成1点伤害;使用后将武将牌翻至背面',
|
hsshenqi_kongbusangzhong_info:'限武将牌正面朝上时使用,对所有其他角色各造成1点伤害;使用后将武将牌翻至背面。',
|
||||||
hsshenqi_nengliangzhiguang:'能量之光',
|
hsshenqi_nengliangzhiguang:'能量之光',
|
||||||
hsshenqi_nengliangzhiguang_info:'限武将牌正面朝上时使用,令一名角色增加1点体力上限,回复1点体力,并摸四张牌;使用后将武将牌翻至背面',
|
hsshenqi_nengliangzhiguang_info:'限武将牌正面朝上时使用,令一名角色增加1点体力上限,回复1点体力,并摸四张牌;使用后将武将牌翻至背面。',
|
||||||
hsbaowu:'宝物',
|
hsbaowu:'宝物',
|
||||||
hsbaowu_huangjinyuanhou:'黄金猿猴',
|
hsbaowu_huangjinyuanhou:'黄金猿猴',
|
||||||
hsbaowu_huangjinyuanhou_info:'将你的手牌(含此张)替换为随机炉石衍生牌,并获得潜行直到下一回合开始',
|
hsbaowu_huangjinyuanhou_info:'将你的手牌(含此张)替换为随机炉石衍生牌,并获得潜行直到下一回合开始。',
|
||||||
hsbaowu_cangbaotu:'藏宝图',
|
hsbaowu_cangbaotu:'藏宝图',
|
||||||
hsbaowu_cangbaotu_info:'结束阶段,将一张黄金猿猴置入你的手牌;摸一张牌',
|
hsbaowu_cangbaotu_info:'结束阶段,将一张黄金猿猴置入你的手牌;摸一张牌。',
|
||||||
hsyaoshui:'药水',
|
hsyaoshui:'药水',
|
||||||
hsqingyu:'青玉',
|
hsqingyu:'青玉',
|
||||||
|
|
||||||
lianzhan:'连斩',
|
lianzhan:'连斩',
|
||||||
lianzhan_info:'每当你造成一次伤害,若此伤害是你本回合第一次造成伤害,你摸两张牌;否则你增加1点体力上限并回复1点体力',
|
lianzhan_info:'每当你造成一次伤害,若此伤害是你本回合第一次造成伤害,你摸两张牌;否则你增加1点体力上限并回复1点体力。',
|
||||||
shifa:'魔瘾',
|
shifa:'魔瘾',
|
||||||
shifa_info:'锁定技,每当你于回合内使用一张非转化的普通锦囊牌,你摸一张牌(每回合最多发动3次);出牌阶段开始时,你令你与一名随机敌人各获得一张随机普通锦囊牌',
|
shifa_info:'锁定技,每当你于回合内使用一张非转化的普通锦囊牌,你摸一张牌(每回合最多发动3次);出牌阶段开始时,你令你与一名随机敌人各获得一张随机普通锦囊牌。',
|
||||||
oldshifa:'魔瘾',
|
oldshifa:'魔瘾',
|
||||||
oldshifa_info:'锁定技,每当你于回合内使用一张非转化的普通锦囊牌,你摸一张牌;出牌阶段开始时,你令你与一名随机敌人各获得一张随机普通锦囊牌',
|
oldshifa_info:'锁定技,每当你于回合内使用一张非转化的普通锦囊牌,你摸一张牌;出牌阶段开始时,你令你与一名随机敌人各获得一张随机普通锦囊牌。',
|
||||||
yuanzheng:'远征',
|
yuanzheng:'远征',
|
||||||
yuanzheng_info:'每当你对距离1以外的角色使用一张牌,你可以弃置目标区域内的一张牌',
|
yuanzheng_info:'每当你对距离1以外的角色使用一张牌,你可以弃置目标区域内的一张牌。',
|
||||||
bzhuiji:'追击',
|
bzhuiji:'追击',
|
||||||
bzhuiji_info:'每当一名角色死亡,你可以摸两张牌,并视为对杀死该角色的人使用一张决斗',
|
bzhuiji_info:'每当一名角色死亡,你可以摸两张牌,并视为对杀死该角色的人使用一张决斗。',
|
||||||
byuhuo:'浴火',
|
byuhuo:'浴火',
|
||||||
byuhuo2:'浴火',
|
byuhuo2:'浴火',
|
||||||
byuhuo_info:'觉醒技,当你进入濒死状态时,你须将体力和体力上限变为2,并将武将牌翻至背面;在你的下一准备阶段,你对所有其他角色造成2点火焰伤害,在此之前,你不能成为其他角色的卡牌的目标',
|
byuhuo_info:'觉醒技,当你进入濒死状态时,你须将体力和体力上限变为2,并将武将牌翻至背面;在你的下一准备阶段,你对所有其他角色造成2点火焰伤害,在此之前,你不能成为其他角色的卡牌的目标。',
|
||||||
yulu:'雨露',
|
yulu:'雨露',
|
||||||
yulu_info:'出牌阶段限一次,你可以指定任意名角色各摸一张牌,然后各弃置区域内的一张牌',
|
yulu_info:'出牌阶段限一次,你可以指定任意名角色各摸一张牌,然后各弃置区域内的一张牌。',
|
||||||
oldyulu:'雨露',
|
oldyulu:'雨露',
|
||||||
oldyulu_info:'出牌阶段限一次,你可以指定任意名角色各摸两张牌,然后各弃置区域内的两张牌',
|
oldyulu_info:'出牌阶段限一次,你可以指定任意名角色各摸两张牌,然后各弃置区域内的两张牌。',
|
||||||
duzhang:'毒瘴',
|
duzhang:'毒瘴',
|
||||||
duzhang2:'毒瘴',
|
duzhang2:'毒瘴',
|
||||||
duzhang_info:'结束阶段,若你于本回合内未使用过锦囊牌,你可以指定一名其他角色令其下个回合无法使用锦囊牌',
|
duzhang_info:'结束阶段,若你于本回合内未使用过锦囊牌,你可以指定一名其他角色令其下个回合无法使用锦囊牌。',
|
||||||
hannu:'寒怒',
|
hannu:'寒怒',
|
||||||
hannu_info:'锁定技,每当你受到一次伤害,你将手牌数翻倍;若你的手牌数因此超过10张,你随机弃置若干张手牌直到手牌数等于你当前的体力值',
|
hannu_info:'锁定技,每当你受到一次伤害,你将手牌数翻倍;若你的手牌数因此超过10张,你随机弃置若干张手牌直到手牌数等于你当前的体力值。',
|
||||||
chuidiao:'垂钓',
|
chuidiao:'垂钓',
|
||||||
chuidiao_info:'锁定技,结束阶段,你随机摸0~2张牌',
|
chuidiao_info:'锁定技,结束阶段,你随机摸0~2张牌。',
|
||||||
fushi:'缚誓',
|
fushi:'缚誓',
|
||||||
fushi_info:'出牌阶段限一次,你可以令一名已受伤角色失去1点体力上限并回复1点体力',
|
fushi_info:'出牌阶段限一次,你可以令一名已受伤角色失去1点体力上限并回复1点体力。',
|
||||||
oldfushi:'缚誓',
|
oldfushi:'缚誓',
|
||||||
oldfushi_info:'出牌阶段,你可以令一名已受伤角色失去1点体力上限并回复1点体力',
|
oldfushi_info:'出牌阶段,你可以令一名已受伤角色失去1点体力上限并回复1点体力。',
|
||||||
hhudun:'护盾',
|
hhudun:'护盾',
|
||||||
hhudun_info:'锁定技,在每名角色的准备阶段,若你没有护甲,你获得1点护甲;每当你的护甲抵消一次伤害,你摸一张牌',
|
hhudun_info:'锁定技,在每名角色的准备阶段,若你没有护甲,你获得1点护甲;每当你的护甲抵消一次伤害,你摸一张牌。',
|
||||||
fenlie:'分裂',
|
fenlie:'分裂',
|
||||||
fenlie_info:'锁定技,每当你于摸牌阶段外获得非特殊卡牌,你获得一张此牌的复制,每回合最多发动两次',
|
fenlie_info:'锁定技,每当你于摸牌阶段外获得非特殊卡牌,你获得一张此牌的复制,每回合最多发动两次。',
|
||||||
oldfenlie:'分裂',
|
oldfenlie:'分裂',
|
||||||
oldfenlie_info:'锁定技,每当你于摸牌阶段外获得非特殊卡牌,你获得一张此牌的复制',
|
oldfenlie_info:'锁定技,每当你于摸牌阶段外获得非特殊卡牌,你获得一张此牌的复制。',
|
||||||
nianfu:'粘附',
|
nianfu:'粘附',
|
||||||
nianfu_info:'锁定技,每当你造成或受到伤害,你随机获得对方装备区内的一张牌',
|
nianfu_info:'锁定技,每当你造成或受到伤害,你随机获得对方装备区内的一张牌。',
|
||||||
xiaorong:'消融',
|
xiaorong:'消融',
|
||||||
xiaorong_info:'锁定技,你的装备牌不占用手牌上限;结束阶段,你将手牌中的每张装备牌转化为两张随机基本牌,每转化一张装备牌便回复1点体力',
|
xiaorong_info:'锁定技,你的装备牌不占用手牌上限;结束阶段,你将手牌中的每张装备牌转化为两张随机基本牌,每转化一张装备牌便回复1点体力。',
|
||||||
shixu:'时序',
|
shixu:'时序',
|
||||||
shixu_info:'锁定技,所有角色于出牌阶段每消耗3秒,便须于结束阶段弃置一张牌',
|
shixu_info:'锁定技,所有角色于出牌阶段每消耗3秒,便须于结束阶段弃置一张牌。',
|
||||||
qianghua:'绝手',
|
qianghua:'绝手',
|
||||||
qianghua_info:'出牌阶段内,你可以令一张你使用的基本牌或普通锦囊牌额外结算一次,每回合限一次',
|
qianghua_info:'出牌阶段内,你可以令一张你使用的基本牌或普通锦囊牌额外结算一次,每回合限一次。',
|
||||||
jixuan:'疾旋',
|
jixuan:'疾旋',
|
||||||
jixuan_info:'锁定技,回合结束后,你摸一张牌进行一个额外的回合',
|
jixuan_info:'锁定技,回合结束后,你摸一张牌进行一个额外的回合。',
|
||||||
biri:'蔽日',
|
biri:'蔽日',
|
||||||
biri_info:'每当距离你1以内的一名其他角色成为杀的惟一目标时,若杀的使用者不是你,你可以弃置一张闪取消之',
|
biri_info:'每当距离你1以内的一名其他角色成为杀的惟一目标时,若杀的使用者不是你,你可以弃置一张闪取消之。',
|
||||||
stuxi:'吐息',
|
stuxi:'吐息',
|
||||||
stuxi2:'吐息',
|
stuxi2:'吐息',
|
||||||
stuxi2_bg:'息',
|
stuxi2_bg:'息',
|
||||||
stuxi_info:'锁定技,结束阶段,你令一名随机敌人下一个摸牌阶段摸牌数-1',
|
stuxi_info:'锁定技,结束阶段,你令一名随机敌人下一个摸牌阶段摸牌数-1。',
|
||||||
bingdong:'冰冻',
|
bingdong:'冰冻',
|
||||||
bingdong_info:'锁定技,你在一个回合内首次造成伤害后,获得一个冰冻零件',
|
bingdong_info:'锁定技,你在一个回合内首次造成伤害后,获得一个冰冻零件。',
|
||||||
ronghuo:'熔火',
|
ronghuo:'熔火',
|
||||||
ronghuo_info:'锁定技,你的普通杀均视为火杀',
|
ronghuo_info:'锁定技,你的普通杀均视为火杀。',
|
||||||
luoshi:'落石',
|
luoshi:'落石',
|
||||||
luoshi_info:'锁定技,每当你受到一次伤害,你与伤害来源各随机弃置一张牌',
|
luoshi_info:'锁定技,每当你受到一次伤害,你与伤害来源各随机弃置一张牌。',
|
||||||
moyao:'魔曜',
|
moyao:'魔曜',
|
||||||
moyao_info:'锁定技,你不能成为其他角色的锦囊牌的目标',
|
moyao_info:'锁定技,你不能成为其他角色的锦囊牌的目标。',
|
||||||
jiaohui:'教诲',
|
jiaohui:'教诲',
|
||||||
jiaohui_info:'结束阶段,若你没有于本回合内造成伤害,你可以令一名角色摸一张牌或回复1点体力',
|
jiaohui_info:'结束阶段,若你没有于本回合内造成伤害,你可以令一名角色摸一张牌或回复1点体力。',
|
||||||
bimeng:'碧梦',
|
bimeng:'碧梦',
|
||||||
bimeng_info:'结束阶段,你可以将一张随机梦境牌加入你的手牌',
|
bimeng_info:'结束阶段,你可以将一张随机梦境牌加入你的手牌。',
|
||||||
hsmengjing:'梦境',
|
hsmengjing:'梦境',
|
||||||
hsmengjing_card_config:'梦境',
|
hsmengjing_card_config:'梦境',
|
||||||
hsmengjing_feicuiyoulong:'翡翠幼龙',
|
hsmengjing_feicuiyoulong:'翡翠幼龙',
|
||||||
hsmengjing_feicuiyoulong_info:'出牌阶段对任意一名角色使用,对目标造成1点伤害',
|
hsmengjing_feicuiyoulong_info:'出牌阶段对任意一名角色使用,对目标造成1点伤害。',
|
||||||
hsmengjing_huanxiaojiemei:'欢笑姐妹',
|
hsmengjing_huanxiaojiemei:'欢笑姐妹',
|
||||||
hsmengjing_huanxiaojiemei_info:'出牌阶段对一名已受伤角色使用,令目标恢复1点体力',
|
hsmengjing_huanxiaojiemei_info:'出牌阶段对一名已受伤角色使用,令目标恢复1点体力。',
|
||||||
hsmengjing_suxing:'苏醒',
|
hsmengjing_suxing:'苏醒',
|
||||||
hsmengjing_suxing_info:'令所有其他角色失去1点体力并随机弃置两张牌',
|
hsmengjing_suxing_info:'令所有其他角色失去1点体力并随机弃置两张牌。',
|
||||||
hsmengjing_mengye:'梦魇',
|
hsmengjing_mengye:'梦魇',
|
||||||
hsmengjing_mengye_info:'令一名角色摸一张牌,并在其下一个结束阶段弃置其所有牌',
|
hsmengjing_mengye_info:'令一名角色摸一张牌,并在其下一个结束阶段弃置其所有牌。',
|
||||||
hsmengjing_mengjing:'梦境',
|
hsmengjing_mengjing:'梦境',
|
||||||
hsmengjing_mengjing_info:'令一名角色将装备区内的所有牌收入手牌,并将一张乐不思蜀置于其判定区',
|
hsmengjing_mengjing_info:'令一名角色将装备区内的所有牌收入手牌,并将一张乐不思蜀置于其判定区。',
|
||||||
hszuzhou:'诅咒',
|
hszuzhou:'诅咒',
|
||||||
hszuzhou_nvwudeganguo:'女巫的钳锅',
|
hszuzhou_nvwudeganguo:'女巫的钳锅',
|
||||||
hszuzhou_nvwudeganguo_info:'出牌阶段对一名角色使用,目标弃置一张牌,然后随机获得一张炉石衍生牌',
|
hszuzhou_nvwudeganguo_info:'出牌阶段对一名角色使用,目标弃置一张牌,然后随机获得一张炉石衍生牌。',
|
||||||
hszuzhou_nvwudepingguo:'女巫的苹果',
|
hszuzhou_nvwudepingguo:'女巫的苹果',
|
||||||
hszuzhou_nvwudepingguo_info:'出牌阶段对一名角色使用,目标获得两张杀',
|
hszuzhou_nvwudepingguo_info:'出牌阶段对一名角色使用,目标获得两张杀。',
|
||||||
hszuzhou_nvwudexuetu:'女巫的学徒',
|
hszuzhou_nvwudexuetu:'女巫的学徒',
|
||||||
hszuzhou_nvwudexuetu_info:'出牌阶段对没有咒降技能的角色使用,令目标非锁定技失效,并获得技能咒降直到下一回合结束',
|
hszuzhou_nvwudexuetu_info:'出牌阶段对没有咒降技能的角色使用,令目标非锁定技失效,并获得技能咒降直到下一回合结束。',
|
||||||
hszuzhou_wushushike:'巫术时刻',
|
hszuzhou_wushushike:'巫术时刻',
|
||||||
hszuzhou_wushushike_info:'出牌阶段对所有角色使用,将手牌中的闪替换为杀',
|
hszuzhou_wushushike_info:'出牌阶段对所有角色使用,将手牌中的闪替换为杀。',
|
||||||
hszuzhou_guhuo:'蛊惑',
|
hszuzhou_guhuo:'蛊惑',
|
||||||
hszuzhou_guhuo_info:'出牌阶段对一名其他角色使用,令其交给你一张牌',
|
hszuzhou_guhuo_info:'出牌阶段对一名其他角色使用,令其交给你一张牌。',
|
||||||
xjumo:'聚魔',
|
xjumo:'聚魔',
|
||||||
xjumo_info:'锁定技,你的手牌上限+3;若你已受伤,改为+5',
|
xjumo_info:'锁定技,你的手牌上限+3;若你已受伤,改为+5。',
|
||||||
liehun:'裂魂',
|
liehun:'裂魂',
|
||||||
liehun_info:'锁定技,结束阶段,你获得手牌中所有非基本、非特殊牌的复制',
|
liehun_info:'锁定技,结束阶段,你获得手牌中所有非基本、非特殊牌的复制。',
|
||||||
malymowang:'魔网',
|
malymowang:'魔网',
|
||||||
malymowang_info:'锁定技,你的锦囊牌在每回合中造成的首次伤害+1;出牌阶段开始时,你发现一张普通锦囊牌',
|
malymowang_info:'锁定技,你的锦囊牌在每回合中造成的首次伤害+1;出牌阶段开始时,你发现一张普通锦囊牌。',
|
||||||
oldmalymowang:'魔网',
|
oldmalymowang:'魔网',
|
||||||
oldmalymowang_info:'锁定技,你的锦囊牌造成的伤害+1;出牌阶段开始时,你发现一张普通锦囊牌',
|
oldmalymowang_info:'锁定技,你的锦囊牌造成的伤害+1;出牌阶段开始时,你发现一张普通锦囊牌。',
|
||||||
lingzhou:'灵咒',
|
lingzhou:'灵咒',
|
||||||
lingzhou_info:'每当你使用一张非转化的锦囊牌,可令一名角色摸一张牌或回复1点体力',
|
lingzhou_info:'每当你使用一张非转化的锦囊牌,可令一名角色摸一张牌或回复1点体力。',
|
||||||
mieshi:'灭世',
|
mieshi:'灭世',
|
||||||
mieshi_info:'锁定技,结束阶段,你失去1点体力,并对一名随机的其他角色造成1点火焰伤害',
|
mieshi_info:'锁定技,结束阶段,你失去1点体力,并对一名随机的其他角色造成1点火焰伤害。',
|
||||||
xshixin:'蚀心',
|
xshixin:'蚀心',
|
||||||
xshixin_info:'锁定技,每当你对一名其他角色造成一次伤害,受伤害角色与你各失去1点体力',
|
xshixin_info:'锁定技,每当你对一名其他角色造成一次伤害,受伤害角色与你各失去1点体力。',
|
||||||
xshixin_info_alter:'锁定技,每当你对一名其他角色造成一次伤害,若受伤害角色体力值不小于你,其与你各失去1点体力',
|
xshixin_info_alter:'锁定技,每当你对一名其他角色造成一次伤害,若受伤害角色体力值不小于你,其与你各失去1点体力。',
|
||||||
xmojian:'魔箭',
|
xmojian:'魔箭',
|
||||||
xmojian_info:'每当你的武将牌翻至正面时,你可以指定一名角色视为对其使用了一张杀',
|
xmojian_info:'每当你的武将牌翻至正面时,你可以指定一名角色视为对其使用了一张杀。',
|
||||||
enze:'恩泽',
|
enze:'恩泽',
|
||||||
enze_info:'出牌阶段限一次,你可以指定一名角色令其手牌数与你相等(最多摸或弃三张牌)',
|
enze_info:'出牌阶段限一次,你可以指定一名角色令其手牌数与你相等(最多摸或弃三张牌)。',
|
||||||
oldenze:'恩泽',
|
oldenze:'恩泽',
|
||||||
oldenze_info:'出牌阶段限一次,你可以指定一名角色令其手牌数与你相等',
|
oldenze_info:'出牌阶段限一次,你可以指定一名角色令其手牌数与你相等。',
|
||||||
enze_info_alter:'出牌阶段限一次,你可以指定一名角色令其手牌数与你相等(最多摸或弃两张牌)',
|
enze_info_alter:'出牌阶段限一次,你可以指定一名角色令其手牌数与你相等(最多摸或弃两张牌)。',
|
||||||
chongsheng:'重生',
|
chongsheng:'重生',
|
||||||
chongsheng_bg:'生',
|
chongsheng_bg:'生',
|
||||||
chongsheng_info:'濒死阶段,你可弃置所有牌,将体力回复至2-X,并摸2-X张牌,X为你本局发动此技能的次数。每局最多发动2次',
|
chongsheng_info:'濒死阶段,你可弃置所有牌,将体力回复至2-X,并摸2-X张牌,X为你本局发动此技能的次数。每局最多发动2次。',
|
||||||
s_tuteng:'神谕',
|
s_tuteng:'神谕',
|
||||||
s_tuteng_info:'锁定技,准备阶段,你随机获得一个图腾,若你已有至少3个图腾,则改为随机替换一个图腾',
|
s_tuteng_info:'锁定技,准备阶段,你随机获得一个图腾,若你已有至少3个图腾,则改为随机替换一个图腾。',
|
||||||
guozai:'过载',
|
guozai:'过载',
|
||||||
guozai2:'过载',
|
guozai2:'过载',
|
||||||
guozai2_bg:'载',
|
guozai2_bg:'载',
|
||||||
guozai_info:'出牌阶段限一次,你可将手牌补至四张,并于此阶段结束时弃置等量的牌',
|
guozai_info:'出牌阶段限一次,你可将手牌补至四张,并于此阶段结束时弃置等量的牌。',
|
||||||
guozai_info_alter:'出牌阶段限一次,你可将手牌补至三张,并于此阶段结束时弃置等量的牌',
|
guozai_info_alter:'出牌阶段限一次,你可将手牌补至三张,并于此阶段结束时弃置等量的牌。',
|
||||||
guozaix:'过载',
|
guozaix:'过载',
|
||||||
guozaix2:'过载',
|
guozaix2:'过载',
|
||||||
guozaix2_bg:'载',
|
guozaix2_bg:'载',
|
||||||
guozaix_info:'出牌阶段限两次,你可将手牌补至四张,并于此阶段结束时弃置等量的牌',
|
guozaix_info:'出牌阶段限两次,你可将手牌补至四张,并于此阶段结束时弃置等量的牌。',
|
||||||
oldhanshuang:'寒霜',
|
oldhanshuang:'寒霜',
|
||||||
oldhanshuang_info:'锁定技,你使用黑色牌对一名未翻面角色造成伤害后,你令受伤害角色翻面',
|
oldhanshuang_info:'锁定技,你使用黑色牌对一名未翻面角色造成伤害后,你令受伤害角色翻面。',
|
||||||
hanshuang:'寒霜',
|
hanshuang:'寒霜',
|
||||||
hanshuang_info:'锁定技,你使用黑色牌对一名未翻面角色造成伤害后,你令受伤害角色翻面,然后你失去1点体力',
|
hanshuang_info:'锁定技,你使用黑色牌对一名未翻面角色造成伤害后,你令受伤害角色翻面,然后你失去1点体力。',
|
||||||
hanshuang_info_alter:'锁定技,你使用黑色牌对一名未翻面角色造成伤害后,你令受伤害角色翻面并摸一张牌,然后你失去1点体力',
|
hanshuang_info_alter:'锁定技,你使用黑色牌对一名未翻面角色造成伤害后,你令受伤害角色翻面并摸一张牌,然后你失去1点体力。',
|
||||||
bingshi:'冰噬',
|
bingshi:'冰噬',
|
||||||
bingshi_info:'锁定技,你死亡时,对所有其他角色造成1点伤害',
|
bingshi_info:'锁定技,你死亡时,对所有其他角色造成1点伤害。',
|
||||||
huanwu:'唤雾',
|
huanwu:'唤雾',
|
||||||
huanwu_info:'出牌阶段限一次,你可以令一名角色增加1点体力上限,回复1点体力,并摸两张牌(每名角色限发动一次)',
|
huanwu_info:'出牌阶段限一次,你可以令一名角色增加1点体力上限,回复1点体力,并摸两张牌(每名角色限发动一次)。',
|
||||||
fengnu:'风怒',
|
fengnu:'风怒',
|
||||||
fengnu_info:'锁定技,你使用的任何卡牌无数量及距离限制;当你于回合内重复使用同名卡牌时,你摸一张牌(每回合最多以此法摸三张牌)',
|
fengnu_info:'锁定技,你使用的任何卡牌无数量及距离限制;当你于回合内重复使用同名卡牌时,你摸一张牌(每回合最多以此法摸三张牌)。',
|
||||||
fengnu_info_alter:'锁定技,你使用的任何卡牌无数量限制;当你于回合内重复使用同名卡牌时,你摸一张牌(每回合最多以此法摸三张牌)',
|
fengnu_info_alter:'锁定技,你使用的任何卡牌无数量限制;当你于回合内重复使用同名卡牌时,你摸一张牌(每回合最多以此法摸三张牌)。',
|
||||||
shengdun:'圣盾',
|
shengdun:'圣盾',
|
||||||
shengdun2:'圣盾',
|
shengdun2:'圣盾',
|
||||||
shengdun_info:'锁定技,准备阶段,若你没有护甲,你获得1点护甲',
|
shengdun_info:'锁定技,准备阶段,若你没有护甲,你获得1点护甲。',
|
||||||
jingmeng:'镜梦',
|
jingmeng:'镜梦',
|
||||||
jingmeng_info:'每当你于回合内使用第一张牌时,你可以从牌堆中随机获得一张与之类型相同的牌',
|
jingmeng_info:'每当你于回合内使用第一张牌时,你可以从牌堆中随机获得一张与之类型相同的牌。',
|
||||||
kuixin:'窥心',
|
kuixin:'窥心',
|
||||||
kuixin_info:'结束阶段,你可以获得一名手牌数不少于你的角色的一张手牌',
|
kuixin_info:'结束阶段,你可以获得一名手牌数不少于你的角色的一张手牌。',
|
||||||
hswuji:'无羁',
|
hswuji:'无羁',
|
||||||
hswuji_info:'出牌阶段结束时,你可以摸X张牌,X为你本回合使用的卡牌数',
|
hswuji_info:'出牌阶段结束时,你可以摸X张牌,X为你本回合使用的卡牌数。',
|
||||||
yanshu:'炎舞',
|
yanshu:'炎舞',
|
||||||
yanshu_info:'每回合限一次,当你弃置非基本牌后,你可以获得一张流星火雨',
|
yanshu_info:'每回合限一次,当你弃置非基本牌后,你可以获得一张流星火雨。',
|
||||||
oldyanshu:'炎舞',
|
oldyanshu:'炎舞',
|
||||||
oldyanshu_info:'当你弃置非基本牌后,你可以获得一张流星火雨',
|
oldyanshu_info:'当你弃置非基本牌后,你可以获得一张流星火雨。',
|
||||||
bingshuang:'冰枪',
|
bingshuang:'冰枪',
|
||||||
bingshuang_info:'你使用锦囊牌造成伤害后,可令目标摸两张牌并翻面',
|
bingshuang_info:'你使用锦囊牌造成伤害后,可令目标摸两张牌并翻面。',
|
||||||
shengyan:'圣言',
|
shengyan:'圣言',
|
||||||
shengyan_info:'任意一名角色回复体力后,你可以令其额外回复1点体力,每回合限发动一次',
|
shengyan_info:'任意一名角色回复体力后,你可以令其额外回复1点体力,每回合限发动一次。',
|
||||||
qingliu:'清流',
|
qingliu:'清流',
|
||||||
qingliu_info:'锁定技,你防止即将受到的火焰伤害',
|
qingliu_info:'锁定技,你防止即将受到的火焰伤害。',
|
||||||
liechao:'猎潮',
|
liechao:'猎潮',
|
||||||
liechao_info:'出牌阶阶段限一次,若你的武将牌正面朝上且手牌数不大于当前体力值,你可以翻面并摸四张牌,若如此做,你跳过本回合的弃牌阶段',
|
liechao_info:'出牌阶阶段限一次,若你的武将牌正面朝上且手牌数不大于当前体力值,你可以翻面并摸四张牌,若如此做,你跳过本回合的弃牌阶段。',
|
||||||
liechao_info_alter:'出牌阶阶段限一次,若你的武将牌正面朝上且手牌数不大于当前体力值,你可以翻面并摸三张牌,若如此做,你跳过本回合的弃牌阶段',
|
liechao_info_alter:'出牌阶阶段限一次,若你的武将牌正面朝上且手牌数不大于当前体力值,你可以翻面并摸三张牌,若如此做,你跳过本回合的弃牌阶段。',
|
||||||
aoshu:'奥术',
|
aoshu:'奥术',
|
||||||
aoshu_info:'出牌阶段限一次,你可以将一张黑桃牌当作无中生有使用',
|
aoshu_info:'出牌阶段限一次,你可以将一张黑桃牌当作无中生有使用。',
|
||||||
|
|
||||||
qianhou:'千喉',
|
qianhou:'千喉',
|
||||||
qianhou_info:'锁定技,准备阶段,你视为使用一张随机普通锦囊牌(随机指定目标);若目标只有1人且不是你,你可以弃置一张手牌并获得此锦囊',
|
qianhou_info:'锁定技,准备阶段,你视为使用一张随机普通锦囊牌(随机指定目标);若目标只有1人且不是你,你可以弃置一张手牌并获得此锦囊。',
|
||||||
fengxing:'风行',
|
fengxing:'风行',
|
||||||
fengxing_info:'每当你于回合外首次失去牌,你可以弃置一张牌并摸两张牌',
|
fengxing_info:'每当你于回合外首次失去牌,你可以弃置一张牌并摸两张牌。',
|
||||||
xinci:'心刺',
|
xinci:'心刺',
|
||||||
xinci_bg:'暗',
|
xinci_bg:'暗',
|
||||||
xinci_info:'出牌阶段限一次,你可以弃置一张黑色牌令一名角色失去1点体力',
|
xinci_info:'出牌阶段限一次,你可以弃置一张黑色牌令一名角色失去1点体力。',
|
||||||
zhongjia:'战甲',
|
zhongjia:'战甲',
|
||||||
zhongjia_info:'锁定技,每当你受到一次伤害,你获得1点护甲;当你的体力值大于1且大于手牌数时,你的护甲不为你抵挡伤害',
|
zhongjia_info:'锁定技,每当你受到一次伤害,你获得1点护甲;当你的体力值大于1且大于手牌数时,你的护甲不为你抵挡伤害。',
|
||||||
dunji:'盾击',
|
dunji:'盾击',
|
||||||
dunji_info:'出牌阶段限一次,你可以对攻击范围内的至多X名其他角色各造成1点伤害,并失去等量的护甲,X为你的护甲数',
|
dunji_info:'出牌阶段限一次,你可以对攻击范围内的至多X名其他角色各造成1点伤害,并失去等量的护甲,X为你的护甲数。',
|
||||||
qiaodong:'巧动',
|
qiaodong:'巧动',
|
||||||
qiaodong_info:'你可以将一张装备牌当作闪使用或打出',
|
qiaodong_info:'你可以将一张装备牌当作闪使用或打出。',
|
||||||
fengxian:'奉献',
|
fengxian:'奉献',
|
||||||
fengxian_info:'出牌阶段限一次,你可以令场上所有角色各弃置一张手牌',
|
fengxian_info:'出牌阶段限一次,你可以令场上所有角色各弃置一张手牌。',
|
||||||
zhanhou:'战吼',
|
zhanhou:'战吼',
|
||||||
zhanhou_info:'出牌阶段限一次,你可以弃置一张防具牌并获得1点护甲',
|
zhanhou_info:'出牌阶段限一次,你可以弃置一张防具牌并获得1点护甲。',
|
||||||
oldzhanhou:'战吼',
|
oldzhanhou:'战吼',
|
||||||
oldzhanhou_info:'出牌阶段,你可以弃置一张防具牌并获得1点护甲',
|
oldzhanhou_info:'出牌阶段,你可以弃置一张防具牌并获得1点护甲。',
|
||||||
anying:'暗影',
|
anying:'暗影',
|
||||||
anying_info:'限定技,出牌阶段,你可以弃置一张黑色牌,失去技能圣光,并获得技能心刺',
|
anying_info:'限定技,出牌阶段,你可以弃置一张黑色牌,失去技能圣光,并获得技能心刺。',
|
||||||
shijie:'视界',
|
shijie:'视界',
|
||||||
shijie_info:'结束阶段,你可以获得一名其他角色的一张手牌,然后该角色摸一张牌',
|
shijie_info:'结束阶段,你可以获得一名其他角色的一张手牌,然后该角色摸一张牌。',
|
||||||
shengguang:'圣光',
|
shengguang:'圣光',
|
||||||
shengguang_info:'出牌阶段限一次,你可以弃置一张红色牌令一名角色回复1点体力',
|
shengguang_info:'出牌阶段限一次,你可以弃置一张红色牌令一名角色回复1点体力。',
|
||||||
bingjia:'冰甲',
|
bingjia:'冰甲',
|
||||||
bingjia2:'冰甲',
|
bingjia2:'冰甲',
|
||||||
bingjia_info:'出牌阶段,若你武将牌上没有牌,你可以将一张手牌背面朝上置于你的武将牌上,当你成为其他角色的与此牌花色相同的牌的目标时,你移去此牌,获得1点护甲,并且本回合内防止一切伤害',
|
bingjia_info:'出牌阶段,若你武将牌上没有牌,你可以将一张手牌背面朝上置于你的武将牌上,当你成为其他角色的与此牌花色相同的牌的目标时,你移去此牌,获得1点护甲,并且本回合内防止一切伤害。',
|
||||||
bianxing:'变形',
|
bianxing:'变形',
|
||||||
bianxing_info:'当一其他角色于回合内使用卡牌指定了惟一的其他目标后,你可以用一张合理的基本牌替代此牌,每名角色的回合限一次',
|
bianxing_info:'当一其他角色于回合内使用卡牌指定了惟一的其他目标后,你可以用一张合理的基本牌替代此牌,每名角色的回合限一次。',
|
||||||
xianzhi:'先知',
|
xianzhi:'先知',
|
||||||
xianzhi_info:'任意一名角色进行判定前,你可以观看牌堆顶的两张牌,并可以将其调换顺序',
|
xianzhi_info:'任意一名角色进行判定前,你可以观看牌堆顶的两张牌,并可以将其调换顺序。',
|
||||||
mdzhoufu:'缚魂',
|
mdzhoufu:'缚魂',
|
||||||
mdzhoufu2:'缚魂',
|
mdzhoufu2:'缚魂',
|
||||||
mdzhoufu_info:'出牌阶段,你可以将一张黑色手牌置于一名其他角色的武将牌上,在其判定时以此牌作为判定结果,然后你获得亮出的判定牌',
|
mdzhoufu_info:'出牌阶段,你可以将一张黑色手牌置于一名其他角色的武将牌上,在其判定时以此牌作为判定结果,然后你获得亮出的判定牌。',
|
||||||
zuzhou:'诅咒',
|
zuzhou:'诅咒',
|
||||||
zuzhou_info:'锁定技,准备阶段,若场上没有浮雷且你手牌中有黑桃牌,你将牌堆中的一张浮雷置于你的判定区;当一名角色受到浮雷伤害时,你移去此浮雷',
|
zuzhou_info:'锁定技,准备阶段,若场上没有浮雷且你手牌中有黑桃牌,你将牌堆中的一张浮雷置于你的判定区;当一名角色受到浮雷伤害时,你移去此浮雷。',
|
||||||
zuzhou_old_info:'每当你造成或受到一次伤害,你可以令伤害目标或来源进行一次判定,若结果为黑色,其失去1点体力',
|
zuzhou_old_info:'每当你造成或受到一次伤害,你可以令伤害目标或来源进行一次判定,若结果为黑色,其失去1点体力。',
|
||||||
jingxiang:'镜像',
|
jingxiang:'镜像',
|
||||||
jingxiang_info:'每回合限一次,当你需要打出卡牌时,你可以观看一名角色的手牌并将其视为你的手牌打出',
|
jingxiang_info:'每回合限一次,当你需要打出卡牌时,你可以观看一名角色的手牌并将其视为你的手牌打出。',
|
||||||
jingxiang_info_alter:'每回合限一次,当你需要打出卡牌时,你可以观看一名手牌数不多于你的角色的手牌并将其视为你的手牌打出',
|
jingxiang_info_alter:'每回合限一次,当你需要打出卡牌时,你可以观看一名手牌数不多于你的角色的手牌并将其视为你的手牌打出。',
|
||||||
tuteng:'图腾',
|
tuteng:'图腾',
|
||||||
tuteng_info:'出牌阶段,你可以获得一个随机基础图腾;每当你受到一次伤害,你随机失去一个图腾',
|
tuteng_info:'出牌阶段,你可以获得一个随机基础图腾;每当你受到一次伤害,你随机失去一个图腾。',
|
||||||
zuling:'祖灵',
|
zuling:'祖灵',
|
||||||
zuling_info:'觉醒技,准备阶段,若你拥有至少3个图腾,你失去1点体力上限,并将图腾描述中的“获得一个随机基础图腾”改为“获得任意一个图腾(若有4个图腾则改为替换一个图腾)”',
|
zuling_info:'觉醒技,准备阶段,若你拥有至少3个图腾,你失去1点体力上限,并将图腾描述中的“获得一个随机基础图腾”改为“获得任意一个图腾(若有4个图腾则改为替换一个图腾)”。',
|
||||||
tuteng1:'治疗图腾',
|
tuteng1:'治疗图腾',
|
||||||
tuteng1_info:'结束阶段,你回复1点体力',
|
tuteng1_info:'结束阶段,你回复1点体力。',
|
||||||
tuteng2:'灼热图腾',
|
tuteng2:'灼热图腾',
|
||||||
tuteng2_info:'每当你造成一次伤害,你摸一张牌',
|
tuteng2_info:'每当你造成一次伤害,你摸一张牌。',
|
||||||
tuteng3:'石爪图腾',
|
tuteng3:'石爪图腾',
|
||||||
tuteng3_info:'你受到下一次伤害时,令伤害-1,然后失去此图腾',
|
tuteng3_info:'你受到下一次伤害时,令伤害-1,然后失去此图腾。',
|
||||||
tuteng4:'空气图腾',
|
tuteng4:'空气图腾',
|
||||||
tuteng4_info:'在你的回合内,你的锦囊牌造成的首次伤害+1',
|
tuteng4_info:'在你的回合内,你的锦囊牌造成的首次伤害+1。',
|
||||||
tuteng5:'法潮图腾',
|
tuteng5:'法潮图腾',
|
||||||
tuteng5_info:'结束阶段,你摸一张牌',
|
tuteng5_info:'结束阶段,你摸一张牌。',
|
||||||
tuteng6:'火舌图腾',
|
tuteng6:'火舌图腾',
|
||||||
tuteng6_info:'在你的回合内,你的杀造成的首次伤害+1',
|
tuteng6_info:'在你的回合内,你的杀造成的首次伤害+1。',
|
||||||
tuteng7:'活力图腾',
|
tuteng7:'活力图腾',
|
||||||
tuteng7_info:'结束阶段,你令一名其他角色回复1点体力',
|
tuteng7_info:'结束阶段,你令一名其他角色回复1点体力。',
|
||||||
tuteng8:'图腾魔像',
|
tuteng8:'图腾魔像',
|
||||||
tuteng8_info:'你的进攻距离+1',
|
tuteng8_info:'你的进攻距离+1。',
|
||||||
tzhenji:'震击',
|
tzhenji:'震击',
|
||||||
tzhenji_info:'每当你因弃置而失去黑色牌,可对一名角色造成1点雷电伤害,并随机弃置其一张牌,每回合限发动一次',
|
tzhenji_info:'每当你因弃置而失去黑色牌,可对一名角色造成1点雷电伤害,并随机弃置其一张牌,每回合限发动一次。',
|
||||||
fenliu:'分流',
|
fenliu:'分流',
|
||||||
fenliu_info:'出牌阶段限一次,你可以失去1点体力并获得三张牌',
|
fenliu_info:'出牌阶段限一次,你可以失去1点体力并获得三张牌。',
|
||||||
hongxi:'虹吸',
|
hongxi:'虹吸',
|
||||||
hongxi_info:'锁定技,每当有一名角色死亡,你将体力回复至体力上限',
|
hongxi_info:'锁定技,每当有一名角色死亡,你将体力回复至体力上限。',
|
||||||
jihuo:'激活',
|
jihuo:'激活',
|
||||||
jihuo_info:'在你的回合结束后,你可以弃置一张手牌并进行一个额外的回合',
|
jihuo_info:'在你的回合结束后,你可以弃置一张手牌并进行一个额外的回合。',
|
||||||
jianren:'刃舞',
|
jianren:'刃舞',
|
||||||
jianren_info:'出牌阶段限一次,你可以弃置装备区内的武器牌,对所有其他角色造成1点伤害',
|
jianren_info:'出牌阶段限一次,你可以弃置装备区内的武器牌,对所有其他角色造成1点伤害。',
|
||||||
mengun:'闷棍',
|
mengun:'闷棍',
|
||||||
mengun2:'闷棍',
|
mengun2:'闷棍',
|
||||||
mengun_info:'每当一名其他角色于回合内使用基本牌,你可以弃置一张与之花色相同的牌令其收回此牌,且在本回合内不能再次使用,每回合限一次',
|
mengun_info:'每当一名其他角色于回合内使用基本牌,你可以弃置一张与之花色相同的牌令其收回此牌,且在本回合内不能再次使用,每回合限一次。',
|
||||||
wlianji:'连击',
|
wlianji:'连击',
|
||||||
wlianji_info:'结束阶段,若你本回合使用的卡牌数大于你当前的体力值,你可以摸两张牌',
|
wlianji_info:'结束阶段,若你本回合使用的卡牌数大于你当前的体力值,你可以摸两张牌。',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
@ -71,7 +71,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
zhanghu:['male','wei',4,['cuijian','zhtongyuan']],
|
zhanghu:['male','wei',4,['cuijian','zhtongyuan']],
|
||||||
luyusheng:['female','wu',3,['zhente','zhiwei']],
|
luyusheng:['female','wu',3,['zhente','zhiwei']],
|
||||||
huaxin:['male','wei',3,['spwanggui','xibing']],
|
huaxin:['male','wei',3,['spwanggui','xibing']],
|
||||||
mengyou:['male','qun',5,['hmmanyi','dcmanzhi']],
|
mengyou:['male','qun',5,['manyi','dcmanzhi']],
|
||||||
liuyong:['male','shu',3,['zhuning','fengxiang']],
|
liuyong:['male','shu',3,['zhuning','fengxiang']],
|
||||||
dc_sunru:['female','wu',3,['xiecui','youxu']],
|
dc_sunru:['female','wu',3,['xiecui','youxu']],
|
||||||
xiahoulingnv:['female','wei',4,['fuping','weilie']],
|
xiahoulingnv:['female','wei',4,['fuping','weilie']],
|
||||||
|
@ -1850,6 +1850,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
//裴元绍
|
//裴元绍
|
||||||
dcmoyu:{
|
dcmoyu:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
init:()=>{
|
||||||
|
game.addGlobalSkill('dcmoyu_ai');
|
||||||
|
},
|
||||||
|
onremove:()=>{
|
||||||
|
if(!game.hasPlayer(i=>i.hasSkill('dcmoyu'),true)) game.removeGlobalSkill('dcmoyu_ai');
|
||||||
|
},
|
||||||
enable:'phaseUse',
|
enable:'phaseUse',
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return !player.hasSkill('dcmoyu_ban')&&game.hasPlayer(current=>lib.skill.dcmoyu.filterTarget(null,player,current));
|
return !player.hasSkill('dcmoyu_ban')&&game.hasPlayer(current=>lib.skill.dcmoyu.filterTarget(null,player,current));
|
||||||
|
@ -1857,7 +1863,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
filterTarget:function(card,player,target){
|
filterTarget:function(card,player,target){
|
||||||
return player!=target&&!player.getStorage('dcmoyu_clear').contains(target)&&target.countGainableCards(player,'hej');
|
return player!=target&&!player.getStorage('dcmoyu_clear').contains(target)&&target.countGainableCards(player,'hej');
|
||||||
},
|
},
|
||||||
global:'dcmoyu_ai',
|
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.addTempSkill('dcmoyu_clear');
|
player.addTempSkill('dcmoyu_clear');
|
||||||
|
@ -1893,6 +1898,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
intro:{content:'偷马贼被反打了!'},
|
intro:{content:'偷马贼被反打了!'},
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
|
trigger:{player:'dieAfter'},
|
||||||
|
filter:()=>{
|
||||||
|
return !game.hasPlayer(i=>i.hasSkill('dcmoyu'),true);
|
||||||
|
},
|
||||||
|
silent:true,
|
||||||
|
forceDie:true,
|
||||||
|
content:()=>{
|
||||||
|
game.removeGlobalSkill('dcmoyu_ai');
|
||||||
|
},
|
||||||
ai:{
|
ai:{
|
||||||
effect:{
|
effect:{
|
||||||
target:function(card,player,target,current){
|
target:function(card,player,target,current){
|
||||||
|
@ -4568,7 +4582,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var d1=true;
|
var d1=true;
|
||||||
if(trigger.player.hasSkill('jueqing')||trigger.player.hasSkill('gangzhi')) d1=false
|
if(trigger.player.hasSkill('jueqing')||trigger.player.hasSkill('gangzhi')) d1=false
|
||||||
for(var target of trigger.targets){
|
for(var target of trigger.targets){
|
||||||
if(!target.mayHaveShan()||trigger.player.hasSkillTag('directHit_ai',true,{
|
if(!target.mayHaveShan(player,'use')||trigger.player.hasSkillTag('directHit_ai',true,{
|
||||||
target:target,
|
target:target,
|
||||||
card:trigger.card,
|
card:trigger.card,
|
||||||
},true)){
|
},true)){
|
||||||
|
@ -6164,7 +6178,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
logTarget:'player',
|
logTarget:'player',
|
||||||
check:function(event,player){
|
check:function(event,player){
|
||||||
var eff=get.effect(player,{name:'wuzhong'},player,player)/2;
|
var eff=get.effect(player,{name:'draw'},player,player);
|
||||||
if(player.countCards('h')+1<=event.player.countCards('h')&&event.player.countCards('he')>0) eff+=get.effect(event.player,{name:'guohe_copy2'},player,player);
|
if(player.countCards('h')+1<=event.player.countCards('h')&&event.player.countCards('he')>0) eff+=get.effect(event.player,{name:'guohe_copy2'},player,player);
|
||||||
return eff;
|
return eff;
|
||||||
},
|
},
|
||||||
|
@ -7513,7 +7527,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
result:{
|
result:{
|
||||||
player:function(player,target){
|
player:function(player,target){
|
||||||
var eff=get.recoverEffect(target,player,player);
|
var eff=get.recoverEffect(target,player,player);
|
||||||
if(target.getDamagedHp()>1) eff+=get.effect(target,{name:'wuzhong'},player,player)/2;
|
if(target.getDamagedHp()>1) eff+=get.effect(target,{name:'draw'},player,player);
|
||||||
return eff;
|
return eff;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -7974,9 +7988,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
init:function(player){
|
init:function(player){
|
||||||
game.addGlobalSkill('huguan_all');
|
game.addGlobalSkill('huguan_all');
|
||||||
},
|
},
|
||||||
onremove:function(player){
|
|
||||||
game.removeGlobalSkill('huguan_all');
|
|
||||||
},
|
|
||||||
trigger:{global:'useCard'},
|
trigger:{global:'useCard'},
|
||||||
direct:true,
|
direct:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
|
@ -8052,7 +8063,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
let num = -157;
|
let num = -157;
|
||||||
game.countPlayer(function (current){
|
game.countPlayer(function (current){
|
||||||
if(current.hasSkill('huguan')) num = Math.max(num, get.attitude(_status.event.player, current));
|
if(current.hasSkill('huguan')) num = Math.max(num, get.attitude(_status.event.player, current));
|
||||||
});
|
}, true);
|
||||||
if(num === -157) game.removeGlobalSkill('huguan_all');
|
if(num === -157) game.removeGlobalSkill('huguan_all');
|
||||||
else if(num === 0) player.storage.huguan_all = 6;
|
else if(num === 0) player.storage.huguan_all = 6;
|
||||||
else if(num > 0) player.storage.huguan_all = 9;
|
else if(num > 0) player.storage.huguan_all = 9;
|
||||||
|
@ -9168,7 +9179,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
game.addGlobalSkill('fengxiang_use');
|
game.addGlobalSkill('fengxiang_use');
|
||||||
},
|
},
|
||||||
onremove:function(player){
|
onremove:function(player){
|
||||||
game.removeGlobalSkill('fengxiang_use');
|
if(!game.hasPlayer(current=>current.hasSkill('fengxiang'),true)) game.removeGlobalSkill('fengxiang_use');
|
||||||
},
|
},
|
||||||
trigger:{player:'damageEnd'},
|
trigger:{player:'damageEnd'},
|
||||||
forced:true,
|
forced:true,
|
||||||
|
@ -9210,10 +9221,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
trigger:{player:'dieAfter'},
|
trigger:{player:'dieAfter'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
for(let i of game.players){
|
return !game.hasPlayer(current=>current.hasSkill('fengxiang'),true);
|
||||||
if(i.hasSkill('fengxiang')) return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
},
|
},
|
||||||
silent:true,
|
silent:true,
|
||||||
forceDie:true,
|
forceDie:true,
|
||||||
|
@ -10830,10 +10838,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(val<min) min=val;
|
if(val<min) min=val;
|
||||||
});
|
});
|
||||||
if(att>0&&min<=0) return target.hasSkillTag('noe')?3:1;
|
if(att>0&&min<=0) return target.hasSkillTag('noe')?3:1;
|
||||||
if(att<0&&max>0){
|
if(att<=0&&max>0){
|
||||||
if(target.hasSkillTag('noe')) return max>6?(-max/3):0;
|
if(target.hasSkillTag('noe')) return max>6?(-max/3):0;
|
||||||
return -max;
|
return -max;
|
||||||
}
|
}
|
||||||
|
if(player===target&&!player.hasSha()){
|
||||||
|
let ph=player.countCards('h');
|
||||||
|
if(game.hasPlayer(i=>{
|
||||||
|
if(!player.canUse('sha',i,true,true)||get.effect(i,{name:'sha'},player,player)<=0) return false;
|
||||||
|
return !ph||!i.mayHaveShan(player,'use');
|
||||||
|
})) return 1;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -678,13 +678,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
jsrgninghan:{
|
jsrgninghan:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
init:(player)=>{
|
||||||
|
game.addGlobalSkill('jsrgninghan_frozen');
|
||||||
|
},
|
||||||
|
onremove:(player)=>{
|
||||||
|
if(!game.hasPlayer(current=>current.hasSkill('jsrgninghan'),true)) game.removeGlobalSkill('jsrgninghan_frozen');
|
||||||
|
},
|
||||||
trigger:{global:'damageEnd'},
|
trigger:{global:'damageEnd'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(!event.hasNature('ice')) return false;
|
if(!event.hasNature('ice')) return false;
|
||||||
return event.cards&&event.cards.filterInD().length;
|
return event.cards&&event.cards.filterInD().length;
|
||||||
},
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
global:'jsrgninghan_frozen',
|
|
||||||
content:function(){
|
content:function(){
|
||||||
var cards=trigger.cards.filterInD();
|
var cards=trigger.cards.filterInD();
|
||||||
player.addToExpansion(cards,'gain2').gaintag.add('jsrgshacheng');
|
player.addToExpansion(cards,'gain2').gaintag.add('jsrgshacheng');
|
||||||
|
@ -701,6 +706,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(lg) return num+0.15*Math.sign(get.attitude(player,lg));
|
if(lg) return num+0.15*Math.sign(get.attitude(player,lg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
trigger:{player:'dieAfter'},
|
||||||
|
filter:(event,player)=>{
|
||||||
|
return !game.hasPlayer(current=>!current.hasSkill('jsrgninghan'),true);
|
||||||
|
},
|
||||||
|
silent:true,
|
||||||
|
forceDie:true,
|
||||||
|
content:()=>{
|
||||||
|
game.removeGlobalSkill('jsrgninghan_frozen');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -941,6 +955,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
limited:true,
|
limited:true,
|
||||||
skillAnimation:true,
|
skillAnimation:true,
|
||||||
animationColor:'orange',
|
animationColor:'orange',
|
||||||
|
locked:false,
|
||||||
chooseButton:{
|
chooseButton:{
|
||||||
dialog:function(event,player){
|
dialog:function(event,player){
|
||||||
var list=[];
|
var list=[];
|
||||||
|
@ -1320,6 +1335,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return (player.countCards('h')==0)^player.hasSkill('jsrgmanjuan_in');
|
return (player.countCards('h')==0)^player.hasSkill('jsrgmanjuan_in');
|
||||||
},
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
|
locked:false,
|
||||||
firstDo:true,
|
firstDo:true,
|
||||||
silent:true,
|
silent:true,
|
||||||
content:function(){
|
content:function(){
|
||||||
|
@ -1561,10 +1577,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
prompt2:`${undamaged.length?'选择一张牌弃置并选择一名未对你造成过伤害的角色,你对其造成1点伤害':''}${undamaged.length&&damaged.length?';<br>或':''}${damaged.length?'仅选择一名对你造成过伤害的角色,你令其摸两张牌':''}。`,
|
prompt2:`${undamaged.length?'选择一张牌弃置并选择一名未对你造成过伤害的角色,你对其造成1点伤害':''}${undamaged.length&&damaged.length?';<br>或':''}${damaged.length?'仅选择一名对你造成过伤害的角色,你令其摸两张牌':''}。`,
|
||||||
damaged:damaged,
|
damaged:damaged,
|
||||||
aiTarget:(()=>{
|
aiTarget:(()=>{
|
||||||
|
if(!undamaged.some(i=>{
|
||||||
|
if(get.attitude(player,i)>0) return true;
|
||||||
|
if(i.getHp(true)+i.hujia<2) return true;
|
||||||
|
return false;
|
||||||
|
})&&(player.hp>2||get.damageEffect(player,player,player)>=0)) return player;
|
||||||
var info=game.filterPlayer().map(current=>{
|
var info=game.filterPlayer().map(current=>{
|
||||||
var damage=undamaged.includes(current);
|
let damage=undamaged.includes(current),card={name:damage?'damage':'draw'};
|
||||||
var card={name:damage?'damage':'wuzhong'};
|
return [current,get.effect(current,card,player,player)*(damage?0.7:2)];
|
||||||
return [current,get.effect(current,card,player,player)/(damage?1.5:1)];
|
|
||||||
}).sort((a,b)=>b[1]-a[1])[0];
|
}).sort((a,b)=>b[1]-a[1])[0];
|
||||||
if(info[1]>0) return info[0];
|
if(info[1]>0) return info[0];
|
||||||
return null;
|
return null;
|
||||||
|
@ -1624,12 +1644,46 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
content:function(){
|
content:function(){
|
||||||
trigger.num++;
|
trigger.num++;
|
||||||
},
|
},
|
||||||
|
ai:{
|
||||||
|
damageBonus:true,
|
||||||
|
skillTagFilter:(player,tag,arg)=>{
|
||||||
|
if(tag==='damageBonus'&&arg&&arg.target){
|
||||||
|
const history=_status.globalHistory;
|
||||||
|
for(let i=history.length-1;i>=0;i--){
|
||||||
|
let evts=history[i]['useCard'];
|
||||||
|
for(let j=evts.length-1;j>=0;j--){
|
||||||
|
var evt=evts[j];
|
||||||
|
let card=evt.card,targets=evt.targets;
|
||||||
|
if(!get.tag(card,'damage')||!targets.includes(player)) continue;
|
||||||
|
return arg.target===evt.player;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
effect:{
|
||||||
|
player:(card,player,target)=>{
|
||||||
|
if(get.tag(card,'damage')&&target&&lib.skill.jsrghuchou.ai.skillTagFilter(player,'damageBonus',{
|
||||||
|
card:card,
|
||||||
|
target:target
|
||||||
|
})&&!target.hasSkillTag('filterDamage',null,{
|
||||||
|
player:player,
|
||||||
|
card:card
|
||||||
|
})) return [1,0,2,0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
jsrgjiemeng:{
|
jsrgjiemeng:{
|
||||||
audio:2,
|
audio:2,
|
||||||
zhuSkill:true,
|
zhuSkill:true,
|
||||||
forced:true,
|
forced:true,
|
||||||
global:'jsrgjiemeng_effect',
|
init:()=>{
|
||||||
|
game.addGlobalSkill('jsrgjiemeng_effect');
|
||||||
|
},
|
||||||
|
onremove:()=>{
|
||||||
|
if(!game.hasPlayer(i=>i.hasSkill('jsrgjiemeng'),true)) game.removeGlobalSkill('jsrgjiemeng_effect');
|
||||||
|
},
|
||||||
subSkill:{
|
subSkill:{
|
||||||
effect:{
|
effect:{
|
||||||
mod:{
|
mod:{
|
||||||
|
@ -1639,6 +1693,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return distance-game.countPlayer(current=>current.group=='qun');
|
return distance-game.countPlayer(current=>current.group=='qun');
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
trigger:{player:'dieAfter'},
|
||||||
|
filter:()=>{
|
||||||
|
return !game.hasPlayer(i=>i.hasSkill('jsrgjiemeng'),true);
|
||||||
|
},
|
||||||
|
silent:true,
|
||||||
|
forceDie:true,
|
||||||
|
content:()=>{
|
||||||
|
game.removeGlobalSkill('jsrgjiemeng_effect');
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -1710,6 +1773,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
jsrgrihui:{
|
jsrgrihui:{
|
||||||
audio:'dcrihui',
|
audio:'dcrihui',
|
||||||
|
locked:false,
|
||||||
trigger:{source:'damageSource'},
|
trigger:{source:'damageSource'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return event.getParent().type=='card'&&event.card&&event.card.name=='sha'&&game.hasPlayer(current=>{
|
return event.getParent().type=='card'&&event.card&&event.card.name=='sha'&&game.hasPlayer(current=>{
|
||||||
|
@ -2304,7 +2368,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
result:{
|
result:{
|
||||||
target:function(player,target){
|
target:function(player,target){
|
||||||
var eff=get.effect(target,{name:'sha',nature:'fire'},player,target)/30;
|
var eff=get.effect(target,{name:'sha',nature:'fire'},player,target)/30;
|
||||||
if(!target.mayHaveShan()) eff*=2;
|
if(!target.mayHaveShan(player,'use')) eff*=2;
|
||||||
var del=target.countCards('h')-player.countCards('h')+1.5;
|
var del=target.countCards('h')-player.countCards('h')+1.5;
|
||||||
eff*=Math.sqrt(del);
|
eff*=Math.sqrt(del);
|
||||||
return eff;
|
return eff;
|
||||||
|
@ -2444,6 +2508,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
audio:2,
|
audio:2,
|
||||||
trigger:{player:'useCard'},
|
trigger:{player:'useCard'},
|
||||||
forced:true,
|
forced:true,
|
||||||
|
locked:false,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(player.group!='shu') return false;
|
if(player.group!='shu') return false;
|
||||||
return game.hasPlayer(current=>{
|
return game.hasPlayer(current=>{
|
||||||
|
@ -3792,6 +3857,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sbpingjian:{
|
sbpingjian:{
|
||||||
trigger:{player:['useSkill','logSkillBegin']},
|
trigger:{player:['useSkill','logSkillBegin']},
|
||||||
forced:true,
|
forced:true,
|
||||||
|
locked:false,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
var skill=event.sourceSkill||event.skill;
|
var skill=event.sourceSkill||event.skill;
|
||||||
return player.invisibleSkills.contains(skill)&&lib.skill.sbyingmen.getSkills(player.getStorage('sbyingmen'),player).contains(skill);
|
return player.invisibleSkills.contains(skill)&&lib.skill.sbyingmen.getSkills(player.getStorage('sbyingmen'),player).contains(skill);
|
||||||
|
@ -3987,8 +4053,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.chooseToDiscard('h',2,get.prompt('jsrgfeiyang'),'弃置两张手牌并弃置判定区里的一张牌').set('logSkill','jsrgfeiyang').set('ai',function(card){
|
player.chooseToDiscard('h',2,get.prompt('jsrgfeiyang'),'弃置两张手牌并弃置判定区里的一张牌').set('logSkill','jsrgfeiyang').set('ai',function(card){
|
||||||
return 6-get.value(card);
|
if(_status.event.goon) return 6-get.value(card);
|
||||||
});
|
return 0;
|
||||||
|
}).set('goon',(()=>{
|
||||||
|
if(player.hasSkillTag('rejudge')&&player.countCards('j')<2) return false;
|
||||||
|
return player.hasCard(function(card){
|
||||||
|
if(get.tag(card,'damage')&&get.damageEffect(player,player,_status.event.player,get.natureList(card))>=0) return false;
|
||||||
|
return get.effect(player,{
|
||||||
|
name:card.viewAs||card.name,
|
||||||
|
cards:[card],
|
||||||
|
},player,player)<0;
|
||||||
|
},'j');
|
||||||
|
})());
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
player.discardPlayerCard(player,'j',true);
|
player.discardPlayerCard(player,'j',true);
|
||||||
|
@ -4217,7 +4293,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
direct:true,
|
direct:true,
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.chooseToDiscard(get.prompt('jsrgjuelie',trigger.target),'当你使用【杀】指定一名角色为目标后,你可以弃置任意张牌,然后弃置其等量的牌,然后若你的手牌数或体力值最小,此【杀】对其的伤害基数+1。',[1,Infinity],'he').set('ai',card=>{
|
player.chooseToDiscard(get.prompt('jsrgjuelie',trigger.target),'当你使用【杀】指定一名角色为目标后,你可以弃置任意张牌,然后弃置其等量的牌',[1,Infinity],'he').set('ai',card=>{
|
||||||
if(ui.selected.cards.length>=_status.event.max) return 0;
|
if(ui.selected.cards.length>=_status.event.max) return 0;
|
||||||
if(_status.event.goon) return 4.5-get.value(card);
|
if(_status.event.goon) return 4.5-get.value(card);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -4227,6 +4303,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var num=result.cards.length;
|
var num=result.cards.length;
|
||||||
if(trigger.target.countDiscardableCards(player,'he')) player.discardPlayerCard('平讨:弃置'+get.translation(trigger.target)+get.cnNumber(num)+'张牌',num,'he',trigger.target,true);
|
if(trigger.target.countDiscardableCards(player,'he')) player.discardPlayerCard('平讨:弃置'+get.translation(trigger.target)+get.cnNumber(num)+'张牌',num,'he',trigger.target,true);
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
else event.finish();
|
else event.finish();
|
||||||
'step 2'
|
'step 2'
|
||||||
if(player.isMinHandcard()||player.isMinHp()){
|
if(player.isMinHandcard()||player.isMinHp()){
|
||||||
|
@ -4238,6 +4315,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
map[id].extraDamage++;
|
map[id].extraDamage++;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
},
|
},
|
||||||
shaRelated:true,
|
shaRelated:true,
|
||||||
ai:{
|
ai:{
|
||||||
|
@ -4251,6 +4329,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
group:'jsrgjuelie_pojun',
|
||||||
|
subSkill:{
|
||||||
|
pojun:{
|
||||||
|
trigger:{source:'damageBegin1'},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(!player.isMinHandcard()&&!player.isMinHp()) return false;
|
||||||
|
return event.getParent().name=='sha';
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
locked:false,
|
||||||
|
logTarget:'player',
|
||||||
|
content:function(){
|
||||||
|
trigger.num++;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
//皇甫嵩
|
//皇甫嵩
|
||||||
jsrgguanhuo:{
|
jsrgguanhuo:{
|
||||||
|
@ -4966,12 +5060,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(!moveCard||!target.hasFriend()) return;
|
if(!moveCard||!target.hasFriend()) return;
|
||||||
var num=1;
|
var num=1;
|
||||||
if(get.attitude(player,target)>0){
|
if(get.attitude(player,target)>0){
|
||||||
if(player.needsToDiscard()){
|
if(player.needsToDiscard()) num=0.5;
|
||||||
num=0.5;
|
else num=0.3;
|
||||||
}
|
|
||||||
else{
|
|
||||||
num=0.3;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if(target.hp>=4) return [1,num*2];
|
if(target.hp>=4) return [1,num*2];
|
||||||
if(target.hp==3) return [1,num*1.5];
|
if(target.hp==3) return [1,num*1.5];
|
||||||
|
@ -5130,7 +5220,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(_status.event.all) return 1;
|
if(_status.event.all) return 1;
|
||||||
if(ui.selected.buttons.length) return 0;
|
if(ui.selected.buttons.length) return 0;
|
||||||
return Math.random();
|
return Math.random();
|
||||||
}).set('all',!target.mayHaveShan()&&Math.random()<0.75).set('forceAuto',true);
|
}).set('all',!target.mayHaveShan(player,'use')&&Math.random()<0.75).set('forceAuto',true);
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
var cards=result.cards;
|
var cards=result.cards;
|
||||||
|
@ -5312,7 +5402,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
onremove:true,
|
onremove:true,
|
||||||
prompt2:'失去1点体力并防止此伤害,然后你与其各摸一张牌',
|
prompt2:'失去1点体力并防止此伤害,然后你与其各摸一张牌',
|
||||||
check:function(event,player){
|
check:function(event,player){
|
||||||
return get.damageEffect(event.player,event.source,player,event.nature)*Math.sqrt(event.num)<=get.effect(player,{name:'losehp'},player,player);
|
return get.damageEffect(event.player,event.source,_status.event.player,event.nature)*event.num <
|
||||||
|
get.effect(player,{name:'losehp'},player,_status.event.player)+get.effect(player,{name:'draw'},player,_status.event.player)+get.effect(event.player,{name:'draw'},player,_status.event.player)/2;
|
||||||
},
|
},
|
||||||
group:'jsrgjishan_recover',
|
group:'jsrgjishan_recover',
|
||||||
content:function(){
|
content:function(){
|
||||||
|
@ -5372,23 +5463,23 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
// trigger.getParent().triggeredTargets4=trigger.getParent().triggeredTargets4.concat(trigger.targets);
|
// trigger.getParent().triggeredTargets4=trigger.getParent().triggeredTargets4.concat(trigger.targets);
|
||||||
trigger.getParent().effectCount++;
|
trigger.getParent().effectCount++;
|
||||||
},
|
},
|
||||||
ai:{
|
|
||||||
effect:{
|
|
||||||
target:function(card,player,target){
|
|
||||||
if(player._jsrgzhenqiao_aiChecking) return;
|
|
||||||
if(target==player&&get.subtype(card)=='equip1'&&!player.getEquip(1)){
|
|
||||||
player._jsrgzhenqiao_aiChecking=true;
|
|
||||||
var eff=get.effect(target,card,player,player);
|
|
||||||
delete player._jsrgzhenqiao_aiChecking;
|
|
||||||
if(eff<3) return 'zerotarget';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
mod:{
|
mod:{
|
||||||
attackRange:function(player,num){
|
attackRange:function(player,num){
|
||||||
return num+1;
|
return num+1;
|
||||||
},
|
},
|
||||||
|
aiOrder:(player,card,num)=>{
|
||||||
|
if(num>0&&get.itemtype(card)==='card'&&get.subtype(card)==='equip1'&&!player.getEquip(1)){
|
||||||
|
if(card.name!=='zhuge'||player.getCardUsable('sha')||!player.needsToDiscard()||player.countCards('hs',i=>{
|
||||||
|
return get.name(i)==='sha'&&lib.filter.cardEnabled(i,target);
|
||||||
|
})<2) return 0;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
aiValue:(player,card,num)=>{
|
||||||
|
if(num>0&&get.itemtype(card)==='card'&&card.name!=='zhuge'&&get.subtype(card)==='equip1'&&!player.getEquip(1)) return 0.01*num;
|
||||||
|
},
|
||||||
|
aiUseful:()=>{
|
||||||
|
return lib.skill.jsrgzhenqiao.mod.aiValue.apply(this,arguments);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//王允
|
//王允
|
||||||
|
@ -5709,14 +5800,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
audio:2,
|
audio:2,
|
||||||
forced:true,
|
forced:true,
|
||||||
trigger:{
|
trigger:{
|
||||||
player:'enterGame',
|
//player:'enterGame',
|
||||||
global:'phaseBefore',
|
//global:'phaseBefore',
|
||||||
|
global:'roundStart',
|
||||||
},
|
},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(game.hasPlayer(function(current){
|
if(game.hasPlayer(function(current){
|
||||||
return current.countCards('hej','taipingyaoshu');
|
return current.countCards('hej','taipingyaoshu');
|
||||||
})) return false;
|
})) return false;
|
||||||
return event.name!='phase'||game.phaseNumber==0;
|
return true;
|
||||||
|
//return event.name!='phase'||game.phaseNumber==0;
|
||||||
},
|
},
|
||||||
direct:true,
|
direct:true,
|
||||||
group:'jsrgshoushu_destroy',
|
group:'jsrgshoushu_destroy',
|
||||||
|
@ -5968,7 +6061,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
jsrgpingtao:'平讨',
|
jsrgpingtao:'平讨',
|
||||||
jsrgpingtao_info:'出牌阶段限一次。你可以令一名其他角色选择一项:1.交给你一张牌,然后你于此回合使用【杀】的次数上限+1;2.令你视为对其使用一张【杀】。',
|
jsrgpingtao_info:'出牌阶段限一次。你可以令一名其他角色选择一项:1.交给你一张牌,然后你于此回合使用【杀】的次数上限+1;2.令你视为对其使用一张【杀】。',
|
||||||
jsrgjuelie:'绝烈',
|
jsrgjuelie:'绝烈',
|
||||||
jsrgjuelie_info:'当你使用【杀】指定一名角色为目标后,你可以弃置任意张牌并弃置其等量的牌,然后若你的手牌数或体力值最小,此【杀】对其的伤害基数+1。',
|
jsrgjuelie_info:'①当你使用【杀】指定一名角色为目标后,你可以弃置任意张牌并弃置其等量的牌。②若你的手牌数或体力值为全场最小,则你使用【杀】造成的伤害+1。',
|
||||||
jsrg_huangfusong:'起皇甫嵩',
|
jsrg_huangfusong:'起皇甫嵩',
|
||||||
jsrg_huangfusong_prefix:'起',
|
jsrg_huangfusong_prefix:'起',
|
||||||
jsrgguanhuo:'观火',
|
jsrgguanhuo:'观火',
|
||||||
|
@ -6043,7 +6136,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
jsrg_nanhualaoxian:'起南华老仙',
|
jsrg_nanhualaoxian:'起南华老仙',
|
||||||
jsrg_nanhualaoxian_prefix:'起',
|
jsrg_nanhualaoxian_prefix:'起',
|
||||||
jsrgshoushu:'授术',
|
jsrgshoushu:'授术',
|
||||||
jsrgshoushu_info:'锁定技。①游戏开始时,若场上没有【太平要术】,你可以从游戏外将【太平要术】置于一名角色的装备区内。②当【太平要术】离开一名角色的装备区后,你令此牌销毁。',
|
jsrgshoushu_info:'锁定技。①一轮游戏开始时,若场上没有【太平要术】,你可以从游戏外将【太平要术】置于一名角色的装备区内。②当【太平要术】离开一名角色的装备区后,你令此牌销毁。',
|
||||||
jsrgxundao:'寻道',
|
jsrgxundao:'寻道',
|
||||||
jsrgxundao_info:'当你的判定牌生效前,你可以令至多两名角色依次弃置一张牌,然后你选择一张以此法弃置且位于弃牌堆中的牌代替此判定牌。',
|
jsrgxundao_info:'当你的判定牌生效前,你可以令至多两名角色依次弃置一张牌,然后你选择一张以此法弃置且位于弃牌堆中的牌代替此判定牌。',
|
||||||
jsrglinghua:'灵化',
|
jsrglinghua:'灵化',
|
||||||
|
|
|
@ -742,7 +742,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
target.line(event.togive);
|
target.line(event.togive);
|
||||||
event.togive.damage(Math.min(3,event.togive.countCards('h',{name:'sha'})),target);
|
event.togive.damage(Math.min(2,event.togive.countCards('h',{name:'sha'})),target);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
intro:{
|
intro:{
|
||||||
|
@ -816,30 +816,28 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
var num=Math.min(Math.max(1,player.getStorage('twjichou').length),5);
|
|
||||||
event.num=num;
|
|
||||||
var choices=['选项一'];
|
var choices=['选项一'];
|
||||||
var choiceList=[
|
var choiceList=[
|
||||||
'摸'+get.cnNumber(num)+'张牌',
|
'摸两张牌',
|
||||||
'获得一个“机论”标记',
|
'获得一个“机论”标记',
|
||||||
];
|
];
|
||||||
if(!player.getStorage('twjichou').length||!player.getStorage('twjichou').filter(function(name){
|
if(!player.getStorage('twjichou').length||!player.getStorage('twjichou').filter(function(name){
|
||||||
return !player.getStorage('jilun').contains(name)&&player.hasUseTarget({name:name});
|
return !player.getStorage('jilun').includes(name)&&player.hasUseTarget({name:name});
|
||||||
}).length) choiceList[1]='<span style="opacity:0.5">'+choiceList[1]+'</span>';
|
}).length) choiceList[1]='<span style="opacity:0.5">'+choiceList[1]+'</span>';
|
||||||
else choices.push('选项二');
|
else choices.push('选项二');
|
||||||
player.chooseControl(choices,'cancel2').set('choiceList',choiceList).set('prompt',get.prompt('jilun')).set('ai',()=>{
|
player.chooseControl(choices,'cancel2').set('choiceList',choiceList).set('prompt',get.prompt('jilun')).set('ai',()=>{
|
||||||
if(_status.event.choiceList.length==1||!player.getStorage('twjichou').length) return 0;
|
if(_status.event.choiceList.length==1||!player.getStorage('twjichou').length) return 0;
|
||||||
var val=_status.event.num>3?Math.min(1.5,1+(_status.event.num-3)*0.1):1;
|
var val=player.getUseValue({name:'wuzhong'});
|
||||||
for(var name of player.getStorage('twjichou')){
|
for(var name of player.getStorage('twjichou')){
|
||||||
if(player.getStorage('jilun').contains(name)) continue;
|
if(player.getStorage('jilun').includes(name)) continue;
|
||||||
if(player.getUseValue({name:name})>4*val) return 1;
|
if(player.getUseValue({name:name})>val) return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}).set('num',num);
|
});
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.control!='cancel2'){
|
if(result.control!='cancel2'){
|
||||||
player.logSkill('jilun');
|
player.logSkill('jilun');
|
||||||
if(result.control=='选项一') player.draw(num);
|
if(result.control=='选项一') player.draw(2);
|
||||||
else player.addMark('jilun_mark',1);
|
else player.addMark('jilun_mark',1);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -858,7 +856,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
if(!player.getStorage('twjichou').length||!player.getStorage('twjichou').filter(function(name){
|
if(!player.getStorage('twjichou').length||!player.getStorage('twjichou').filter(function(name){
|
||||||
return !player.getStorage('jilun').contains(name)&&player.hasUseTarget({name:name});
|
return !player.getStorage('jilun').includes(name)&&player.hasUseTarget({name:name});
|
||||||
}).length){
|
}).length){
|
||||||
if(player.hasMark('jilun_mark')) player.removeMark('jilun_mark',player.countMark('jilun_mark'));
|
if(player.hasMark('jilun_mark')) player.removeMark('jilun_mark',player.countMark('jilun_mark'));
|
||||||
event.finish();
|
event.finish();
|
||||||
|
@ -866,7 +864,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
var list=[];
|
var list=[];
|
||||||
for(var name of player.getStorage('twjichou')){
|
for(var name of player.getStorage('twjichou')){
|
||||||
if(!player.getStorage('jilun').contains(name)){
|
if(!player.getStorage('jilun').includes(name)){
|
||||||
list.push(['锦囊','',name]);
|
list.push(['锦囊','',name]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1195,7 +1193,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
]).set('prompt','雀颂:请选择一项').set('ai',()=>{
|
]).set('prompt','雀颂:请选择一项').set('ai',()=>{
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
var len=_status.event.len;
|
var len=_status.event.len;
|
||||||
return get.effect(player,{name:'wuzhong'},player,player)*len/2>=get.recoverEffect(player,player,player)?0:1;
|
return get.effect(player,{name:'draw'},player,player)*len>=get.recoverEffect(player,player,player)?0:1;
|
||||||
}).set('len',len);
|
}).set('len',len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2718,7 +2716,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
'step 0'
|
'step 0'
|
||||||
var trigger=event.getParent().getTrigger();
|
var trigger=event.getParent().getTrigger();
|
||||||
if(trigger.name=='useCard'){
|
if(trigger.name=='useCard'){
|
||||||
var target=lib.skill.chongzhen1.logTarget(trigger,player);
|
var target=lib.skill.chongzhen.logTarget(trigger,player);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
var target=trigger.source;
|
var target=trigger.source;
|
||||||
|
@ -3590,7 +3588,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
for(var card of cards){
|
for(var card of cards){
|
||||||
var num=i+1;
|
var num=i+1;
|
||||||
if(cards2.slice(0,num).contains(card)) continue;
|
if(cards2.slice(0,num).contains(card)) continue;
|
||||||
if(get.tag(card,'damage')&&i>0) count+=get.effect(player,{name:'wuzhong'},player)/2;
|
if(get.tag(card,'damage')&&i>0) count+=get.effect(player,{name:'draw'},player);
|
||||||
var targets2=targets.filter(current=>{
|
var targets2=targets.filter(current=>{
|
||||||
return player.canUse(card,current,false)&&get.distance(player,current)<=num&&get.effect(current,card,player,player)>0;
|
return player.canUse(card,current,false)&&get.distance(player,current)<=num&&get.effect(current,card,player,player)>0;
|
||||||
});
|
});
|
||||||
|
@ -3829,7 +3827,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
getValue:function(player,mark,target){
|
getValue:function(player,mark,target){
|
||||||
let dis=Math.sqrt(get.distance(player,target,'absolute'));
|
let dis=Math.sqrt(get.distance(player,target,'absolute'));
|
||||||
if(target.isTurnedOver()) dis++;
|
if(target.isTurnedOver()) dis++;
|
||||||
let draw=get.effect(target,{name:'wuzhong'},target,target)/2;
|
let draw=get.effect(target,{name:'draw'},target,target);
|
||||||
switch(mark.slice(6)){
|
switch(mark.slice(6)){
|
||||||
case 'wushi':
|
case 'wushi':
|
||||||
if(target.hasJudge('bingliang')) return 12/(1+target.getCardUsable('sha',true));
|
if(target.hasJudge('bingliang')) return 12/(1+target.getCardUsable('sha',true));
|
||||||
|
@ -4308,7 +4306,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
selectCard:(player.getStat('skill').buxu||0)+1,
|
selectCard:(player.getStat('skill').buxu||0)+1,
|
||||||
ai1:function(card){
|
ai1:function(card){
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
if(player.needsToDiscard()>ui.selected.cards.length) return 10/Math.max(0.1,get.value(card));
|
if(player.needsToDiscard(0,(i,player)=>{
|
||||||
|
return !ui.selected.cards.includes(i)&&!player.canIgnoreHandcard(i);
|
||||||
|
})) return 10/Math.max(0.1,get.value(card));
|
||||||
return 5-(player.getStat('skill').buxu||0)-get.value(card);
|
return 5-(player.getStat('skill').buxu||0)-get.value(card);
|
||||||
},
|
},
|
||||||
ai2:()=>1,
|
ai2:()=>1,
|
||||||
|
@ -4488,7 +4488,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var att=get.attitude(player,target),eff=[0,0];
|
var att=get.attitude(player,target),eff=[0,0];
|
||||||
var hs=player.countCards('h'),ht=target.countCards('h');
|
var hs=player.countCards('h'),ht=target.countCards('h');
|
||||||
if(hs>=ht){
|
if(hs>=ht){
|
||||||
eff[0]=get.effect(target,{name:'wuzhong'},player,player)/2;
|
eff[0]=get.effect(target,{name:'draw'},player,player);
|
||||||
if(player.storage.sbyaoming_status==0) eff[0]*=1.2;
|
if(player.storage.sbyaoming_status==0) eff[0]*=1.2;
|
||||||
}
|
}
|
||||||
if(hs<=ht){
|
if(hs<=ht){
|
||||||
|
@ -8445,7 +8445,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
]).set('ai',function(){
|
]).set('ai',function(){
|
||||||
var target=_status.event.getTrigger().target;
|
var target=_status.event.getTrigger().target;
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
var num=target.mayHaveShan()?0:1;
|
var num=target.mayHaveShan(player,'use')?0:1;
|
||||||
if(get.attitude(player,target)>0) num=1-num;
|
if(get.attitude(player,target)>0) num=1-num;
|
||||||
return num;
|
return num;
|
||||||
});
|
});
|
||||||
|
@ -9690,7 +9690,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
trigger:{source:'damage'},
|
trigger:{source:'damage'},
|
||||||
forced:true,
|
forced:true,
|
||||||
popup:false,
|
popup:false,
|
||||||
//locked:false,
|
locked:false,
|
||||||
audio:'jiuchi',
|
audio:'jiuchi',
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return event.card&&event.card.name=='sha'&&event.getParent(2).jiu==true&&!player.hasSkill('rejiuchi_air');
|
return event.card&&event.card.name=='sha'&&event.getParent(2).jiu==true&&!player.hasSkill('rejiuchi_air');
|
||||||
|
@ -11318,12 +11318,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(!target.hasFriend()) return;
|
if(!target.hasFriend()) return;
|
||||||
var num=1;
|
var num=1;
|
||||||
if(get.attitude(player,target)>0){
|
if(get.attitude(player,target)>0){
|
||||||
if(player.needsToDiscard()){
|
if(player.needsToDiscard()) num=0.7;
|
||||||
num=0.7;
|
else num=0.5;
|
||||||
}
|
|
||||||
else{
|
|
||||||
num=0.5;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if(target.hp>=4) return [1,num*2];
|
if(target.hp>=4) return [1,num*2];
|
||||||
if(target.hp==3) return [1,num*1.5];
|
if(target.hp==3) return [1,num*1.5];
|
||||||
|
@ -14166,7 +14162,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return !event.numFixed;
|
return !event.numFixed;
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
trigger.num+=1+Math.floor(player.countCards('e')/2);
|
trigger.num+=1+Math.ceil(player.countCards('e')/2);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
yingjian:{
|
yingjian:{
|
||||||
|
@ -14991,7 +14987,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
fenyin_info:'你的回合内,当你使用牌时,若此牌与你于此回合内使用的上一张牌的颜色不同,则你可以摸一张牌。',
|
fenyin_info:'你的回合内,当你使用牌时,若此牌与你于此回合内使用的上一张牌的颜色不同,则你可以摸一张牌。',
|
||||||
yingjian_info:'准备阶段开始时,你可以视为使用一张无距离限制的【杀】。',
|
yingjian_info:'准备阶段开始时,你可以视为使用一张无距离限制的【杀】。',
|
||||||
dujin:'独进',
|
dujin:'独进',
|
||||||
dujin_info:'摸牌阶段,你可以多摸X+1张牌。(X为你装备区里牌数的一半且向下取整)',
|
dujin_info:'摸牌阶段,你可以多摸X+1张牌(X为你装备区里牌数的一半且向上取整)。',
|
||||||
shixin:'释衅',
|
shixin:'释衅',
|
||||||
shixin_info:'锁定技,当你受到火属性伤害时,你防止此伤害。',
|
shixin_info:'锁定技,当你受到火属性伤害时,你防止此伤害。',
|
||||||
zhaohuo:'招祸',
|
zhaohuo:'招祸',
|
||||||
|
@ -15288,7 +15284,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
re_dongzhuo:'手杀界董卓',
|
re_dongzhuo:'手杀界董卓',
|
||||||
re_dongzhuo_prefix:'手杀界',
|
re_dongzhuo_prefix:'手杀界',
|
||||||
rejiuchi:'酒池',
|
rejiuchi:'酒池',
|
||||||
rejiuchi_info:'你可以将一张黑桃手牌当做【酒】使用。锁定技,当你于回合内使用带有【酒】效果的【杀】造成伤害时,你令你的【崩坏】失效直到回合结束。',
|
rejiuchi_info:'你可以将一张黑桃手牌当做【酒】使用。当你于回合内使用带有【酒】效果的【杀】造成伤害时,你令你的〖崩坏〗失效直到回合结束。',
|
||||||
furong:'手杀傅肜',
|
furong:'手杀傅肜',
|
||||||
furong_prefix:'手杀',
|
furong_prefix:'手杀',
|
||||||
xuewei:'血卫',
|
xuewei:'血卫',
|
||||||
|
@ -15760,12 +15756,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
old_yuanshu_prefix:'手杀',
|
old_yuanshu_prefix:'手杀',
|
||||||
baoxin:'鲍信',
|
baoxin:'鲍信',
|
||||||
mutao:'募讨',
|
mutao:'募讨',
|
||||||
mutao_info:'出牌阶段限一次。你可以选择一名角色,令其将手牌中所有的【杀】置于武将牌上,然后将这些牌依次随机交给其下家开始的每一名角色。然后其对最后一名以此法获得【杀】的角色A造成X点伤害(X为A手牌中【杀】的数量且至多为3)。',
|
mutao_info:'出牌阶段限一次。你可以选择一名角色,令其将手牌中所有的【杀】置于武将牌上,然后将这些牌依次随机交给其下家开始的每一名角色。然后其对最后一名以此法获得【杀】的角色A造成X点伤害(X为A手牌中【杀】的数量且至多为2)。',
|
||||||
yimou:'毅谋',
|
yimou:'毅谋',
|
||||||
yimou_info:'当一名角色受到伤害后,若其存活且你至其的距离不大于1,你可以选择一项:1.令其从牌堆中获得一张【杀】;2.令其将一张手牌交给另一名角色,然后摸一张牌。',
|
yimou_info:'当一名角色受到伤害后,若其存活且你至其的距离不大于1,你可以选择一项:1.令其从牌堆中获得一张【杀】;2.令其将一张手牌交给另一名角色,然后摸一张牌。',
|
||||||
jiangji:'蒋济',
|
jiangji:'蒋济',
|
||||||
jilun:'机论',
|
jilun:'机论',
|
||||||
jilun_info:'①当你受到伤害后,若你拥有技能〖急筹〗,则你可以一项:1.摸X张牌(X为〖急筹①〗记录数,且X且至少为1,至多为5)。2.获得1枚“机论”标记。②一名角色的结束阶段,若你拥有“机论”,则重复选择执行以下项直到你没有“机论”标记:1.失去1枚“机论”标记,视为使用一张〖急筹①〗记录过且未被〖机论②〗记录过的普通锦囊牌并记录此牌牌名。2.失去所有“机论”标记。',
|
jilun_info:'①当你受到伤害后,若你拥有技能〖急筹〗,则你可以一项:1.摸两张牌。2.获得1枚“机论”标记。②一名角色的结束阶段,若你拥有“机论”,则重复选择执行以下项直到你没有“机论”标记:1.失去1枚“机论”标记,视为使用一张〖急筹①〗记录过且未被〖机论②〗记录过的普通锦囊牌并记录此牌牌名。2.失去所有“机论”标记。',
|
||||||
liwei:'李遗',
|
liwei:'李遗',
|
||||||
jiaohua:'教化',
|
jiaohua:'教化',
|
||||||
jiaohua_backup:'教化',
|
jiaohua_backup:'教化',
|
||||||
|
|
|
@ -170,7 +170,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
d1=true;
|
d1=true;
|
||||||
if(trigger.player.hasSkill('jueqing')||trigger.player.hasSkill('gangzhi')) d1=false;
|
if(trigger.player.hasSkill('jueqing')||trigger.player.hasSkill('gangzhi')) d1=false;
|
||||||
for(var target of trigger.targets){
|
for(var target of trigger.targets){
|
||||||
if(!target.mayHaveShan()||trigger.player.hasSkillTag('directHit_ai',true,{
|
if(!target.mayHaveShan(player,'use')||trigger.player.hasSkillTag('directHit_ai',true,{
|
||||||
target:target,
|
target:target,
|
||||||
card:trigger.card,
|
card:trigger.card,
|
||||||
},true)){
|
},true)){
|
||||||
|
@ -299,7 +299,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var effect=0;
|
var effect=0;
|
||||||
for(var target of trigger.targets){
|
for(var target of trigger.targets){
|
||||||
var eff=get.effect(target,trigger.card,trigger.player,player);
|
var eff=get.effect(target,trigger.card,trigger.player,player);
|
||||||
if(!target.mayHaveShan()||trigger.player.hasSkillTag('directHit_ai',true,{
|
if(!target.mayHaveShan(player,'use')||trigger.player.hasSkillTag('directHit_ai',true,{
|
||||||
target:target,
|
target:target,
|
||||||
card:trigger.card,
|
card:trigger.card,
|
||||||
},true)){
|
},true)){
|
||||||
|
@ -758,6 +758,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
intro:{
|
intro:{
|
||||||
content:'受到的伤害+1且改为雷属性',
|
content:'受到的伤害+1且改为雷属性',
|
||||||
},
|
},
|
||||||
|
ai:{
|
||||||
|
effect:{
|
||||||
|
target:(card,player,target)=>{
|
||||||
|
if(!get.tag(card,'damage')) return;
|
||||||
|
if(target.hasSkillTag('nodamage')||target.hasSkillTag('nothunder')) return 'zeroplayertarget';
|
||||||
|
if(target.hasSkillTag('filterDamage',null,{
|
||||||
|
player:player,
|
||||||
|
card:new lib.element.VCard({
|
||||||
|
name:card.name,
|
||||||
|
nature:'thunder'
|
||||||
|
},[card])
|
||||||
|
})) return;
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
init:{
|
init:{
|
||||||
audio:'psshouli',
|
audio:'psshouli',
|
||||||
|
@ -900,6 +916,30 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ai:{
|
ai:{
|
||||||
threaten:100,
|
threaten:100,
|
||||||
reverseEquip:true,
|
reverseEquip:true,
|
||||||
|
effect:{
|
||||||
|
player:(card,player,target)=>{
|
||||||
|
if(typeof card!=='object') return;
|
||||||
|
let suit=get.suit(card);
|
||||||
|
if(!lib.suit.contains(suit)||player.hasCard(function(i){
|
||||||
|
return get.suit(i,player)==suit;
|
||||||
|
},'h')) return;
|
||||||
|
return [1,game.countPlayer(current=>{
|
||||||
|
return current.countCards('e',card=>{
|
||||||
|
return get.suit(card,current)==suit;
|
||||||
|
});
|
||||||
|
})];
|
||||||
|
},
|
||||||
|
target:(card,player,target)=>{
|
||||||
|
if(card.name==='sha'&&!player.hasSkillTag('directHit_ai',true,{
|
||||||
|
target:target,
|
||||||
|
card:card
|
||||||
|
},true)&&game.hasPlayer(current=>{
|
||||||
|
return current.hasCard(cardx=>{
|
||||||
|
return get.subtype(cardx)==='equip3';
|
||||||
|
},'e');
|
||||||
|
})) return [0, -0.5];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//战役篇田丰
|
//战役篇田丰
|
||||||
|
@ -3046,7 +3086,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.chooseTarget(get.prompt('zylianji'),'令一名角色摸一张牌').set('ai',target=>{
|
player.chooseTarget(get.prompt('zylianji'),'令一名角色摸一张牌').set('ai',target=>{
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
if(target==player&&player.needsToDiscard(1)) return 1;
|
if(target==player&&player.needsToDiscard(1)) return 1;
|
||||||
return get.effect(target,{name:'wuzhong'},player,player);
|
return get.effect(target,{name:'draw'},player,player);
|
||||||
});
|
});
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
|
@ -3689,7 +3729,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
yjdumou:{
|
yjdumou:{
|
||||||
audio:2,
|
audio:2,
|
||||||
forced:true,
|
forced:true,
|
||||||
global:'yjdumou_du',
|
|
||||||
mod:{
|
mod:{
|
||||||
cardname:function(card,player,name){
|
cardname:function(card,player,name){
|
||||||
if(player==_status.currentPhase&&card.name=='du') return 'guohe';
|
if(player==_status.currentPhase&&card.name=='du') return 'guohe';
|
||||||
|
@ -3698,6 +3737,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(card.name=='du') return get.value({name:'guohe'});
|
if(card.name=='du') return get.value({name:'guohe'});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
init:()=>{
|
||||||
|
game.addGlobalSkill('yjdumou_du');
|
||||||
|
},
|
||||||
|
onremove:()=>{
|
||||||
|
if(!game.hasPlayer(i=>i.hasSkill('yjdumou'),true)) game.removeGlobalSkill('yjdumou_du');
|
||||||
|
},
|
||||||
subSkill:{
|
subSkill:{
|
||||||
du:{
|
du:{
|
||||||
mod:{
|
mod:{
|
||||||
|
@ -3707,6 +3752,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
aiValue:function(player,card,num){
|
aiValue:function(player,card,num){
|
||||||
if(get.name(card)=='du'&&card.name!='du') return get.value({name:card.name});
|
if(get.name(card)=='du'&&card.name!='du') return get.value({name:card.name});
|
||||||
},
|
},
|
||||||
|
},
|
||||||
|
trigger:{player:'dieAfter'},
|
||||||
|
filter:()=>{
|
||||||
|
return !game.hasPlayer(i=>i.hasSkill('yjdumou'),true);
|
||||||
|
},
|
||||||
|
silent:true,
|
||||||
|
forceDie:true,
|
||||||
|
content:()=>{
|
||||||
|
game.removeGlobalSkill('yjdumou_du');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -4852,7 +4906,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
//护驾
|
//护驾
|
||||||
else if(!player.hasShan()&&game.hasPlayer(function(current){
|
else if(!player.hasShan()&&game.hasPlayer(function(current){
|
||||||
return current!=player&¤t.group=='wei'&¤t.mayHaveShan()&&get.attitude(player,current)>0&&get.attitude(current,player)>0;
|
return current!=player&¤t.group=='wei'&¤t.mayHaveShan(player,'respond')&&get.attitude(player,current)>0&&get.attitude(current,player)>0;
|
||||||
})) return 1;
|
})) return 1;
|
||||||
return -1;
|
return -1;
|
||||||
});
|
});
|
||||||
|
@ -4886,7 +4940,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
//护驾
|
//护驾
|
||||||
else if(!player.hasShan()&&game.hasPlayer(function(current){
|
else if(!player.hasShan()&&game.hasPlayer(function(current){
|
||||||
return current!=player&¤t.group=='wei'&¤t.mayHaveShan()&&get.attitude(player,current)>0&&get.attitude(current,player)>0;
|
return current!=player&¤t.group=='wei'&¤t.mayHaveShan(player,'respond')&&get.attitude(player,current)>0&&get.attitude(current,player)>0;
|
||||||
})) return 'hujia';
|
})) return 'hujia';
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,361 @@
|
||||||
|
'use strict';
|
||||||
|
game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
|
return {
|
||||||
|
name:'onlyOL',
|
||||||
|
connect:true,
|
||||||
|
character:{
|
||||||
|
ol_sb_jiangwei:['male','shu',4,['olsbzhuri','olsbranji']],
|
||||||
|
ol_caozhang:['male','wei',4,['oljiangchi']],
|
||||||
|
ol_jianyong:['male','shu',3,['olqiaoshui','jyzongshi'],['tempname:re_jianyong','die_audio:re_jianyong']],
|
||||||
|
ol_lingtong:['male','wu',4,['olxuanfeng'],['die_audio:re_lingtong']],
|
||||||
|
},
|
||||||
|
characterSort:{
|
||||||
|
onlyOL:{
|
||||||
|
onlyOL_yijiang1:['ol_caozhang','ol_jianyong','ol_lingtong'],
|
||||||
|
onlyOL_sb:['ol_sb_jiangwei'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
characterIntro:{
|
||||||
|
},
|
||||||
|
characterReplace:{
|
||||||
|
},
|
||||||
|
skill:{
|
||||||
|
//OL谋姜维
|
||||||
|
olsbzhuri:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:['phaseZhunbeiEnd','phaseJudgeEnd','phaseDrawEnd','phaseUseEnd','phaseDiscardEnd','phaseJieshuEnd']},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(player.hasSkill('olsbzhuri_block')) return false;
|
||||||
|
if(!game.hasPlayer(target=>player.canCompare(target))) return false;
|
||||||
|
return player.getHistory('gain',evt=>evt.getParent(event.name)==event).length+player.getHistory('lose',evt=>evt.getParent(event.name)==event&&evt.hs.length).length;
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
content:function*(event,map){
|
||||||
|
var player=map.player;
|
||||||
|
var trigger=map.trigger;
|
||||||
|
var result=yield player.chooseTarget(get.prompt('olsbzhuri'),'与一名角色进行拼点,若你赢,你可以使用其中的一张拼点牌;若你没赢,你失去1点体力或令此技能于本回合失效',(card,player,target)=>{
|
||||||
|
return player.canCompare(target);
|
||||||
|
}).set('ai',target=>{
|
||||||
|
var player=_status.event.player;
|
||||||
|
var ts=target.getCards('h').sort((a,b)=>get.number(a)-get.number(b));
|
||||||
|
if(get.attitude(player,target)<0){
|
||||||
|
var hs=player.getCards('h').sort((a,b)=>get.number(b)-get.number(a));
|
||||||
|
var ts=target.getCards('h').sort((a,b)=>get.number(b)-get.number(a));
|
||||||
|
if(get.number(hs[0])>get.number(ts[0])) return 1;
|
||||||
|
if(get.effect(player,{name:'losehp'},player,player)>0) return Math.random()+0.2;
|
||||||
|
if(player.getHp()>2) return Math.random()-0.5;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
player.logSkill('olsbzhuri',target);
|
||||||
|
var result2=yield player.chooseToCompare(target);
|
||||||
|
if(result2.bool){
|
||||||
|
var cards=[result2.player,result2.target].filterInD('d');
|
||||||
|
cards=cards.filter(card=>player.hasUseTarget(card));
|
||||||
|
if(cards.length){
|
||||||
|
var result3=yield player.chooseButton(['是否使用其中的牌?',cards]).set('ai',button=>_status.event.player.getUseValue(button.link));
|
||||||
|
if(result3.bool){
|
||||||
|
var card=result3.links[0];
|
||||||
|
player.$gain2(card,false);
|
||||||
|
game.delayx();
|
||||||
|
player.chooseUseTarget(true,card,false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
var list=lib.skill.olsbranji.getList(trigger);
|
||||||
|
var result3=yield player.chooseControl('失去体力','技能失效').set('prompt','逐日:失去1点体力,或令此技能于本回合失效').set('ai',()=>{
|
||||||
|
var player=_status.event.player;
|
||||||
|
if(player.getHp()>2){
|
||||||
|
var list=_status.event.list;
|
||||||
|
list.removeArray(player.skipList);
|
||||||
|
if(list.includes('phaseDraw')||list.includes('phaseUse')) return '失去体力';
|
||||||
|
}
|
||||||
|
if(get.effect(player,{name:'losehp'},player,player)>0) return '失去体力';
|
||||||
|
return '技能失效';
|
||||||
|
}).set('list',list.slice(trigger.getParent().num,list.length));
|
||||||
|
player[result3.control=='失去体力'?'loseHp':'addTempSkill'](result3.control=='失去体力'?1:'olsbzhuri_block');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
block:{
|
||||||
|
charlotte:true,
|
||||||
|
mark:true,
|
||||||
|
marktext:'<span style="text-decoration: line-through;">日</span>',
|
||||||
|
intro:{content:'追不动太阳了'},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
olsbranji:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'phaseJieshuBegin'},
|
||||||
|
prompt2:function(event,player){
|
||||||
|
var str='获得技能';
|
||||||
|
var num=lib.skill.olsbranji.getNum(event,player);
|
||||||
|
if(num>=player.getHp()) str+='【困奋】';
|
||||||
|
if(num==player.getHp()) str+='和';
|
||||||
|
if(num<=player.getHp()) str+='【诈降】';
|
||||||
|
str+=',然后';
|
||||||
|
var num1=(player.countCards('h')-player.getHandcardLimit());
|
||||||
|
if(num1||player.isDamaged()){
|
||||||
|
if(num1) str+=(num1<0?'摸'+get.cnNumber(-num1)+'张牌':'弃置'+get.cnNumber(num1)+'张牌');
|
||||||
|
if(num1&&player.isDamaged()) str+='或';
|
||||||
|
if(player.isDamaged()) str+=('回复'+player.getDamagedHp()+'点体力');
|
||||||
|
str+=',最后';
|
||||||
|
}
|
||||||
|
str+='你不能回复体力直到你杀死角色。';
|
||||||
|
return str;
|
||||||
|
},
|
||||||
|
check:function(event,player){
|
||||||
|
var num=lib.skill.olsbranji.getNum(event,player);
|
||||||
|
if(num==player.getHp()) return true;
|
||||||
|
return player.getHandcardLimit()-player.countCards('h')>=3||player.getDamagedHp()>=2;
|
||||||
|
},
|
||||||
|
limited:true,
|
||||||
|
skillAnimation:true,
|
||||||
|
animationColor:'fire',
|
||||||
|
content:function*(event,map){
|
||||||
|
var player=map.player;
|
||||||
|
var trigger=map.trigger;
|
||||||
|
player.awakenSkill('olsbranji');
|
||||||
|
var num=lib.skill.olsbranji.getNum(trigger,player);
|
||||||
|
if(num>=player.getHp()){
|
||||||
|
player.addSkillLog('kunfen');
|
||||||
|
player.storage.kunfen=true;
|
||||||
|
}
|
||||||
|
if(num<=player.getHp()) player.addSkillLog('zhaxiang');
|
||||||
|
if(player.countCards('h')!=player.getHandcardLimit()||player.isDamaged()){
|
||||||
|
var result,num1=player.countCards('h')-player.getHandcardLimit();
|
||||||
|
if(!num1) result={index:1};
|
||||||
|
else if(player.isHealthy()) result={index:0};
|
||||||
|
else{
|
||||||
|
result=yield player.chooseControl('手牌数','体力值').set('choiceList',[
|
||||||
|
num1<0?'摸'+get.cnNumber(-num1)+'张牌':'弃置'+get.cnNumber(num1)+'张牌',
|
||||||
|
'回复'+(player.getDamagedHp())+'点体力',
|
||||||
|
]).set('ai',()=>{
|
||||||
|
var player=_status.event.player;
|
||||||
|
var list=_status.event.list;
|
||||||
|
var num1=get.effect(player,{name:'draw'},player,player);
|
||||||
|
var num2=get.recoverEffect(player,player,player);
|
||||||
|
return num1*list[0]>num2*list[1]?0:1;
|
||||||
|
}).set('list',[-num1,player.getDamagedHp()]);
|
||||||
|
}
|
||||||
|
if(result.index==0){
|
||||||
|
if(num1<0) player.drawTo(player.getHandcardLimit());
|
||||||
|
else player.chooseToDiscard(num1,'h',true);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
player.recover(player.maxHp-player.hp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
player.when('olsbranjiAfter').then(()=>player.addSkill('olsbranji_norecover'));
|
||||||
|
player.when({source:'dieAfter'}).then(()=>player.removeSkill('olsbranji_norecover'));
|
||||||
|
},
|
||||||
|
derivation:['kunfenx','zhaxiang'],
|
||||||
|
getList:function(event){
|
||||||
|
return event.getParent().phaseList.map(list=>list.split('|')[0]);
|
||||||
|
},
|
||||||
|
getNum:function(event,player){
|
||||||
|
return lib.skill.olsbranji.getList(event).slice(0,event.getParent().num).filter(name=>player.getHistory('useCard',evt=>evt.getParent(name).name==name).length).length;
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
norecover:{
|
||||||
|
charlotte:true,
|
||||||
|
mark:true,
|
||||||
|
intro:{content:'不能回复体力'},
|
||||||
|
trigger:{player:'recoverBefore'},
|
||||||
|
forced:true,
|
||||||
|
firstDo:true,
|
||||||
|
content:function(){
|
||||||
|
trigger.cancel();
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
effect:{
|
||||||
|
target:function(card,player,target){
|
||||||
|
if(get.tag(card,'recover')) return 'zeroplayertarget';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
//界曹彰
|
||||||
|
oljiangchi:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'phaseDrawEnd'},
|
||||||
|
direct:true,
|
||||||
|
content:function*(event,map){
|
||||||
|
var player=map.player;
|
||||||
|
var choiceList=[
|
||||||
|
'摸一张牌,本回合使用【杀】的次数上限-1,且【杀】不计入手牌上限。',
|
||||||
|
'重铸一张牌,本回合使用【杀】无距离限制,且使用【杀】的次数上限+1。',
|
||||||
|
],list=['cancel2'];
|
||||||
|
if(player.countCards('he',card=>player.canRecast(card))) list.unshift('重铸,+1');
|
||||||
|
else choiceList[1]='<span style="opacity:0.5">'+choiceList[1]+'</span>';
|
||||||
|
list.unshift('摸牌,-1');
|
||||||
|
var result=yield player.chooseControl(list).set('ai',()=>{
|
||||||
|
var player=_status.event.player;
|
||||||
|
var controls=_status.event.controls.slice();
|
||||||
|
if(controls.includes('重铸,+1')&&player.countCards('hs',card=>get.name(card)=='sha'&&player.hasValueTarget(card))>=2) return '重铸,+1';
|
||||||
|
return '摸牌,-1';
|
||||||
|
}).set('choiceList',choiceList).set('prompt',get.prompt('oljiangchi'));
|
||||||
|
if(result.control!='cancel2'){
|
||||||
|
player.logSkill('oljiangchi');
|
||||||
|
if(result.control=='摸牌,-1'){
|
||||||
|
player.draw();
|
||||||
|
player.addTempSkill('oljiangchi_less');
|
||||||
|
player.addMark('oljiangchi_less',1,false);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
var result2=yield player.chooseCard('he','将驰:请重铸一张牌',true,(card,player)=>player.canRecast(card));
|
||||||
|
if(result2.bool){
|
||||||
|
player.recast(result2.cards);
|
||||||
|
player.addTempSkill('oljiangchi_more');
|
||||||
|
player.addMark('oljiangchi_more',1,false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
less:{
|
||||||
|
charlotte:true,
|
||||||
|
onremove:true,
|
||||||
|
mod:{
|
||||||
|
cardUsable:function(card,player,num){
|
||||||
|
if(card.name=='sha') return num-player.countMark('oljiangchi_less');
|
||||||
|
},
|
||||||
|
ignoredHandcard:function(card,player){
|
||||||
|
if(card.name=='sha') return true;
|
||||||
|
},
|
||||||
|
cardDiscardable:function(card,player,name){
|
||||||
|
if(name=='phaseDiscard'&&card.name=='sha') return false;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
more:{
|
||||||
|
charlotte:true,
|
||||||
|
onremove:true,
|
||||||
|
mod:{
|
||||||
|
cardUsable:function(card,player,num){
|
||||||
|
if(card.name=='sha') return num+player.countMark('oljiangchi_more');
|
||||||
|
},
|
||||||
|
targetInRange:function (card,player){
|
||||||
|
if(card.name=='sha') return true;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
//界简雍
|
||||||
|
olqiaoshui:{
|
||||||
|
audio:'reqiaoshui',
|
||||||
|
inherit:'reqiaoshui',
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.countCards('h')>0&&!player.hasSkill('olqiaoshui_used');
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.chooseToCompare(target);
|
||||||
|
'step 1'
|
||||||
|
if(result.bool) player.addTempSkill('qiaoshui3',{player:'phaseUseAfter'});
|
||||||
|
else{
|
||||||
|
player.addTempSkill('qiaoshui2');
|
||||||
|
player.addTempSkill('olqiaoshui_used');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
used:{
|
||||||
|
charlotte:true,
|
||||||
|
mark:true,
|
||||||
|
marktext:'<span style="text-decoration: line-through;">说</span>',
|
||||||
|
intro:{content:'被迫闭嘴'},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
//界凌统
|
||||||
|
olxuanfeng:{
|
||||||
|
audio:'xuanfeng',
|
||||||
|
audioname:['boss_lvbu3'],
|
||||||
|
audioname2:{
|
||||||
|
lingtong:'xuanfeng',
|
||||||
|
ol_lingtong:'xuanfeng_re_lingtong',
|
||||||
|
},
|
||||||
|
trigger:{
|
||||||
|
player:['loseAfter'],
|
||||||
|
global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter','addToExpansionAfter'],
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
var evt=event.getl(player);
|
||||||
|
return evt&&(evt.es.length||evt.cards2.length>1);
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
event.count=2;
|
||||||
|
event.logged=false;
|
||||||
|
'step 1'
|
||||||
|
player.chooseTarget(get.prompt('olxuanfeng'),'弃置一名其他角色的一张牌',function(card,player,target){
|
||||||
|
if(player==target) return false;
|
||||||
|
return target.countDiscardableCards(player,'he');
|
||||||
|
}).set('ai',function(target){
|
||||||
|
return -get.attitude(_status.event.player,target);
|
||||||
|
});
|
||||||
|
'step 2'
|
||||||
|
if(result.bool){
|
||||||
|
if(!event.logged){
|
||||||
|
player.logSkill('olxuanfeng',result.targets);
|
||||||
|
event.logged=true;
|
||||||
|
}
|
||||||
|
else player.line(result.targets[0],'green');
|
||||||
|
player.discardPlayerCard(result.targets[0],'he',true);
|
||||||
|
event.count--;
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 3'
|
||||||
|
if(event.count) event.goto(1);
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
reverseEquip:true,
|
||||||
|
noe:true,
|
||||||
|
effect:{
|
||||||
|
target:function(card,player,target,current){
|
||||||
|
if(get.type(card)=='equip'&&!get.cardtag(card,'gifts')) return [1,3];
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
xuanfeng_re_lingtong:{audio:2},
|
||||||
|
},
|
||||||
|
dynamicTranslate:{
|
||||||
|
},
|
||||||
|
translate:{
|
||||||
|
ol_lingtong:'OL界凌统',
|
||||||
|
ol_lingtong_prefix:'OL界',
|
||||||
|
olxuanfeng:'旋风',
|
||||||
|
olxuanfeng_info:'当你一次性失去至少两张牌后,或失去装备区的牌后,你可以依次弃置一至两名其他角色的共计两张牌。',
|
||||||
|
ol_jianyong:'OL界简雍',
|
||||||
|
ol_jianyong_prefix:'OL界',
|
||||||
|
olqiaoshui:'巧说',
|
||||||
|
olqiaoshui_info:'出牌阶段,你可与一名其他角色拼点。若你赢,你使用的下一张基本牌或普通锦囊牌可以额外指定任意一名其他角色为目标或减少指定一个目标;若你没赢,此技能于本回合失效且本回合你不能使用锦囊牌。',
|
||||||
|
ol_caozhang:'OL界曹彰',
|
||||||
|
ol_caozhang_prefix:'OL界',
|
||||||
|
oljiangchi:'将驰',
|
||||||
|
oljiangchi_info:'摸牌阶段结束时,你可以选择一项:①摸一张牌,本回合使用【杀】的次数上限-1,且【杀】不计入手牌上限。②重铸一张牌,本回合使用【杀】无距离限制,且使用【杀】的次数上限+1。',
|
||||||
|
ol_sb_jiangwei:'OL谋姜维',
|
||||||
|
ol_sb_jiangwei_prefix:'OL谋',
|
||||||
|
olsbzhuri:'逐日',
|
||||||
|
olsbzhuri_info:'你的阶段结束时,若你本阶段失去过手牌或得到过牌,则你可以与一名角色拼点。若你赢,你可以使用其中一张拼点牌;若你没赢,你失去1点体力或令此技能于本回合无效。',
|
||||||
|
olsbranji:'燃己',
|
||||||
|
olsbranji_info:'限定技,结束阶段。若你本回合使用过牌的阶段数大于等于/小于等于体力值,你可以获得技能〖困奋〗/〖诈降〗(同时满足则都获得,以此法获得的〖困奋〗直接修改为非锁定技)。若如此做,你将手牌数调整至手牌上限或将体力值回复至体力上限,然后你不能回复体力直到你杀死角色。',
|
||||||
|
kunfenx:'困奋',
|
||||||
|
kunfenx_info:'结束阶段开始时,你可以失去1点体力,然后摸两张牌。',
|
||||||
|
|
||||||
|
onlyOL_yijiang1:'OL专属·将1',
|
||||||
|
onlyOL_sb:'OL专属·上兵伐谋',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
});
|
152
character/ow.js
|
@ -3464,99 +3464,99 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
translate:{
|
translate:{
|
||||||
woliu:'涡流',
|
woliu:'涡流',
|
||||||
woliu2:'涡流',
|
woliu2:'涡流',
|
||||||
woliu_info:'结束阶段,你可以选择至多两名角色,当你或目标中的任意一名角色成为杀的目标时,其余角色也将被追加为目标,直到你死亡或下一回合开始',
|
woliu_info:'结束阶段,你可以选择至多两名角色,当你或目标中的任意一名角色成为杀的目标时,其余角色也将被追加为目标,直到你死亡或下一回合开始。',
|
||||||
qianggu:'强固',
|
qianggu:'强固',
|
||||||
qianggu_info:'出牌阶段限一次,你可以弃置两张牌并获得2点护甲,若如此做,直到你的下个回合开始,其他角色对你使用杀时需要弃置一张基本牌,否则杀对你无效',
|
qianggu_info:'出牌阶段限一次,你可以弃置两张牌并获得2点护甲,若如此做,直到你的下个回合开始,其他角色对你使用杀时需要弃置一张基本牌,否则杀对你无效。',
|
||||||
qianggu2:'强固',
|
qianggu2:'强固',
|
||||||
qianggu2_bg:'固',
|
qianggu2_bg:'固',
|
||||||
qianggu2_info:'其他角色对你使用杀时需要弃置一张基本牌,否则杀对你无效',
|
qianggu2_info:'其他角色对你使用杀时需要弃置一张基本牌,否则杀对你无效。',
|
||||||
pingzhang:'屏障',
|
pingzhang:'屏障',
|
||||||
pingzhang_info:'每轮各限一次,当你受到伤害时,你可以弃置一张红桃牌令伤害-1;当一名其他角色受到伤害时,你可以弃置一张黑桃牌令伤害-1',
|
pingzhang_info:'每轮各限一次,当你受到伤害时,你可以弃置一张红桃牌令伤害-1;当一名其他角色受到伤害时,你可以弃置一张黑桃牌令伤害-1。',
|
||||||
pingzhang_info_alter:'每轮各限一次,当你受到伤害时,你可以弃置一张红桃手牌令伤害-1;当一名其他角色受到伤害时,你可以弃置一张黑桃手牌令伤害-1',
|
pingzhang_info_alter:'每轮各限一次,当你受到伤害时,你可以弃置一张红桃手牌令伤害-1;当一名其他角色受到伤害时,你可以弃置一张黑桃手牌令伤害-1。',
|
||||||
owliyong:'力涌',
|
owliyong:'力涌',
|
||||||
owliyong_info:'锁定技,你摸牌阶段摸牌数+X,X为你上一轮发动屏障的次数',
|
owliyong_info:'锁定技,你摸牌阶段摸牌数+X,X为你上一轮发动屏障的次数。',
|
||||||
dianji:'电击',
|
dianji:'电击',
|
||||||
dianji_info:'出牌阶段限一次,你可以将一张手牌当作惊雷闪对距离2以内的角色使用',
|
dianji_info:'出牌阶段限一次,你可以将一张手牌当作惊雷闪对距离2以内的角色使用。',
|
||||||
feitiao:'飞跳',
|
feitiao:'飞跳',
|
||||||
feitiao2:'飞跳',
|
feitiao2:'飞跳',
|
||||||
feitiao_info:'出牌阶段开始时,你可以弃置一张牌并指定一名角色,你与该角色的距离视为1直到回合结束,然后该角色随机弃置一张牌',
|
feitiao_info:'出牌阶段开始时,你可以弃置一张牌并指定一名角色,你与该角色的距离视为1直到回合结束,然后该角色随机弃置一张牌。',
|
||||||
bshaowei:'哨卫',
|
bshaowei:'哨卫',
|
||||||
bshaowei_info:'结束阶段,你可以切换至哨卫模式。当处于此模式时,你的杀无视距离和防具、无数量限制且不可闪避;你不能闪避杀',
|
bshaowei_info:'结束阶段,你可以切换至哨卫模式。当处于此模式时,你的杀无视距离和防具、无数量限制且不可闪避;你不能闪避杀。',
|
||||||
zhencha:'侦查',
|
zhencha:'侦查',
|
||||||
zhencha_info:'结束阶段,你可以切换至侦查模式。当处于此模式时,每当你使用一张杀,你摸一张牌或回复1点体力',
|
zhencha_info:'结束阶段,你可以切换至侦查模式。当处于此模式时,每当你使用一张杀,你摸一张牌或回复1点体力。',
|
||||||
liangou:'链钩',
|
liangou:'链钩',
|
||||||
liangou_info:'出牌阶段限一次,你可以弃置一张牌,指定一名其他角色并进行一次判定,若结果不为红桃,该角色与你距离为1且受到的首次伤害+1直到回合结束',
|
liangou_info:'出牌阶段限一次,你可以弃置一张牌,指定一名其他角色并进行一次判定,若结果不为红桃,该角色与你距离为1且受到的首次伤害+1直到回合结束。',
|
||||||
xiyang:'吸氧',
|
xiyang:'吸氧',
|
||||||
xiyang_info:'结束阶段,若你武将牌正面朝上,你可以翻面并回复2点体力',
|
xiyang_info:'结束阶段,若你武将牌正面朝上,你可以翻面并回复2点体力。',
|
||||||
qinru:'侵入',
|
qinru:'侵入',
|
||||||
qinru_info:'每当你使用杀指定目标时,你可以令其进行一次判定,若结果不为红桃,该角色的非锁定技失效直到其下一回合结束',
|
qinru_info:'每当你使用杀指定目标时,你可以令其进行一次判定,若结果不为红桃,该角色的非锁定技失效直到其下一回合结束。',
|
||||||
yinshen:'隐身',
|
yinshen:'隐身',
|
||||||
yinshen_info:'锁定技,每当你失去最后一张基本牌,你获得潜行直到下一回合开始',
|
yinshen_info:'锁定技,每当你失去最后一张基本牌,你获得潜行直到下一回合开始。',
|
||||||
yinshen_info_old:'结束阶段,你可以弃置一张装备牌并获得潜行直到下一回合开始',
|
yinshen_info_old:'结束阶段,你可以弃置一张装备牌并获得潜行直到下一回合开始。',
|
||||||
maichong:'脉冲',
|
maichong:'脉冲',
|
||||||
maichong_info:'锁定技,每当你使用一张普通锦囊牌,你令最近三回合内被你侵入过的角色各随机弃置一张牌',
|
maichong_info:'锁定技,每当你使用一张普通锦囊牌,你令最近三回合内被你侵入过的角色各随机弃置一张牌。',
|
||||||
maichong_info_alter:'准备阶段,你可以令最近两名被你侵入的角色各随机弃置一张牌',
|
maichong_info_alter:'准备阶段,你可以令最近两名被你侵入的角色各随机弃置一张牌。',
|
||||||
lichang:'力场',
|
lichang:'力场',
|
||||||
lichang2:'力场',
|
lichang2:'力场',
|
||||||
lichang_info:'结束阶段,你可以弃置一张红色牌,若如此做,你可以在下个准备阶段令一名距离1以内的角色回复1点体力或摸两张牌',
|
lichang_info:'结束阶段,你可以弃置一张红色牌,若如此做,你可以在下个准备阶段令一名距离1以内的角色回复1点体力或摸两张牌。',
|
||||||
mengji:'猛击',
|
mengji:'猛击',
|
||||||
mengji_info:'锁定技,若你已发动重盾,当你没有护甲时,你的杀造成的伤害+1',
|
mengji_info:'锁定技,若你已发动重盾,当你没有护甲时,你的杀造成的伤害+1。',
|
||||||
zhongdun:'重盾',
|
zhongdun:'重盾',
|
||||||
zhongdun_info:'游戏开始时,你获得8点护甲;出牌阶段限一次,你可以弃置一张牌并将1点护甲分给一名没有护甲的其他角色',
|
zhongdun_info:'游戏开始时,你获得8点护甲;出牌阶段限一次,你可以弃置一张牌并将1点护甲分给一名没有护甲的其他角色。',
|
||||||
zhongdun_info_alter:'游戏开始时,你获得6点护甲;出牌阶段限一次,你可以弃置一张牌并将1点护甲分给一名没有护甲的其他角色',
|
zhongdun_info_alter:'游戏开始时,你获得6点护甲;出牌阶段限一次,你可以弃置一张牌并将1点护甲分给一名没有护甲的其他角色。',
|
||||||
paotai:'炮台',
|
paotai:'炮台',
|
||||||
paotai2:'炮台',
|
paotai2:'炮台',
|
||||||
paotai_info:'出牌阶段,你可以弃置一张杀布置或升级一个炮台(最高3级);结束阶段,炮台有一定机率对一名随机敌人造成1点火焰伤害;每当你受到1点伤害,炮台降低一级',
|
paotai_info:'出牌阶段,你可以弃置一张杀布置或升级一个炮台(最高3级);结束阶段,炮台有一定机率对一名随机敌人造成1点火焰伤害;每当你受到1点伤害,炮台降低一级。',
|
||||||
maoding:'铆钉',
|
maoding:'铆钉',
|
||||||
maoding2:'铆钉',
|
maoding2:'铆钉',
|
||||||
maoding_info:'每当你造成或受到一次伤害,你可以获得一个零件;出牌阶段,你可以弃置两张零件牌令一名没有护甲的角色获得1点护甲',
|
maoding_info:'每当你造成或受到一次伤害,你可以获得一个零件;出牌阶段,你可以弃置两张零件牌令一名没有护甲的角色获得1点护甲。',
|
||||||
maoding_info_alter:'每当你造成一次伤害,你可以获得一个零件;出牌阶段,你可以弃置两张零件牌令一名没有护甲的角色获得1点护甲',
|
maoding_info_alter:'每当你造成一次伤害,你可以获得一个零件;出牌阶段,你可以弃置两张零件牌令一名没有护甲的角色获得1点护甲。',
|
||||||
bfengshi:'风矢',
|
bfengshi:'风矢',
|
||||||
bfengshi2:'风矢',
|
bfengshi2:'风矢',
|
||||||
bfengshi_info:'锁定技,在一合内每当你使用一张牌,你的攻击范围+1;你的首张杀增加20%的概率强制命中;你的首张杀造成伤害后增加20%的概率令伤害+1',
|
bfengshi_info:'锁定技,在一合内每当你使用一张牌,你的攻击范围+1;你的首张杀增加20%的概率强制命中;你的首张杀造成伤害后增加20%的概率令伤害+1。',
|
||||||
bfengshi_info_alter:'锁定技,在一合内每当你使用一张牌,你的攻击范围+1;你的首张杀增加15%的概率强制命中;你的首张杀造成伤害后增加15%的概率令伤害+1',
|
bfengshi_info_alter:'锁定技,在一合内每当你使用一张牌,你的攻击范围+1;你的首张杀增加15%的概率强制命中;你的首张杀造成伤害后增加15%的概率令伤害+1。',
|
||||||
yinbo:'音波',
|
yinbo:'音波',
|
||||||
yinbo_info:'出牌阶段限一次,你可以弃置一张黑桃牌,然后随机弃置三名敌人各一张牌',
|
yinbo_info:'出牌阶段限一次,你可以弃置一张黑桃牌,然后随机弃置三名敌人各一张牌。',
|
||||||
liudan:'榴弹',
|
liudan:'榴弹',
|
||||||
liudan_info:'每当你使用一张杀,你可以令所有不是此杀目标的其他角色有50%概率成为此杀的额外目标',
|
liudan_info:'每当你使用一张杀,你可以令所有不是此杀目标的其他角色有50%概率成为此杀的额外目标。',
|
||||||
shoujia:'兽夹',
|
shoujia:'兽夹',
|
||||||
shoujia2:'兽夹',
|
shoujia2:'兽夹',
|
||||||
shoujia3:'兽夹',
|
shoujia3:'兽夹',
|
||||||
shoujia_info:'出牌阶段限一次,你可以将一张牌背面朝上置于一名其他角色的武将牌上,当该角色使用一张与此牌花色相同的牌指定其他角色为目标时,移去此牌,该角色将武将牌翻至背面;当你受到伤害时,移去此牌',
|
shoujia_info:'出牌阶段限一次,你可以将一张牌背面朝上置于一名其他角色的武将牌上,当该角色使用一张与此牌花色相同的牌指定其他角色为目标时,移去此牌,该角色将武将牌翻至背面;当你受到伤害时,移去此牌。',
|
||||||
shihuo:'嗜火',
|
shihuo:'嗜火',
|
||||||
shihuo_info:'锁定技,每当一名角色受到火焰伤害,你摸一张牌',
|
shihuo_info:'锁定技,每当一名角色受到火焰伤害,你摸一张牌。',
|
||||||
shanguang:'闪光',
|
shanguang:'闪光',
|
||||||
shanguang_info:'出牌阶段限一次,你可以弃置一张方片牌令攻击范围内的一名其他角色本回合内不能使用或打出卡牌',
|
shanguang_info:'出牌阶段限一次,你可以弃置一张方片牌令攻击范围内的一名其他角色本回合内不能使用或打出卡牌。',
|
||||||
tiandan:'填弹',
|
tiandan:'填弹',
|
||||||
tiandan_info:'摸牌阶段开始时,你可以跳过出牌和弃牌阶段,然后获得若干张杀直到你的手牌数等于你的体值(最多为5)',
|
tiandan_info:'摸牌阶段开始时,你可以跳过出牌和弃牌阶段,然后获得若干张杀直到你的手牌数等于你的体值(最多为5)。',
|
||||||
shenqiang:'神枪',
|
shenqiang:'神枪',
|
||||||
shenqiang_info:'锁定技,每当你在出牌阶段使用杀造成伤害,本阶段内出杀次数上限+1',
|
shenqiang_info:'锁定技,每当你在出牌阶段使用杀造成伤害,本阶段内出杀次数上限+1。',
|
||||||
mianzhen:'眠针',
|
mianzhen:'眠针',
|
||||||
mianzhen2:'眠针',
|
mianzhen2:'眠针',
|
||||||
mianzhen_info:'出牌阶段限一次,你可以弃置一张牌并令一名其他角色打出一张闪,否则该角色不能使用或打出卡牌直到其受到伤害或下一回合结束',
|
mianzhen_info:'出牌阶段限一次,你可以弃置一张牌并令一名其他角色打出一张闪,否则该角色不能使用或打出卡牌直到其受到伤害或下一回合结束。',
|
||||||
aqianghua:'强化',
|
aqianghua:'强化',
|
||||||
aqianghua2:'强化',
|
aqianghua2:'强化',
|
||||||
aqianghua_info:'出牌阶段限一次,你可以将你的全部手牌(至少一张)交给一名其他角色,该角色获得1点护甲且下一次造成的伤害+1',
|
aqianghua_info:'出牌阶段限一次,你可以将你的全部手牌(至少一张)交给一名其他角色,该角色获得1点护甲且下一次造成的伤害+1。',
|
||||||
aqianghua_info_alter:'出牌阶段限一次,你可以将你的全部手牌(至少一张)交给一名其他角色,该角色下一次造成的伤害+1',
|
aqianghua_info_alter:'出牌阶段限一次,你可以将你的全部手牌(至少一张)交给一名其他角色,该角色下一次造成的伤害+1。',
|
||||||
zhiyuan:'支援',
|
zhiyuan:'支援',
|
||||||
zhiyuan_info:'每当你即将造成伤害,你可以防止此伤害,改为令目标回复等量的体力',
|
zhiyuan_info:'每当你即将造成伤害,你可以防止此伤害,改为令目标回复等量的体力。',
|
||||||
juji:'狙击',
|
juji:'狙击',
|
||||||
juji2:'狙击',
|
juji2:'狙击',
|
||||||
juji3:'狙击',
|
juji3:'狙击',
|
||||||
juji_info:'出牌阶段限一次,你可以弃置任意张花色不同的牌并指定一名有手牌的其他角色,若该角色的手牌中含有与你弃置的牌花色相同的牌,则本回合内你与其距离为1且该角色不能闪避你的杀',
|
juji_info:'出牌阶段限一次,你可以弃置任意张花色不同的牌并指定一名有手牌的其他角色,若该角色的手牌中含有与你弃置的牌花色相同的牌,则本回合内你与其距离为1且该角色不能闪避你的杀。',
|
||||||
duwen:'毒吻',
|
duwen:'毒吻',
|
||||||
duwen2:'毒吻',
|
duwen2:'毒吻',
|
||||||
duwen_info:'锁定技,当你造成伤害时,若你的手牌数与受伤害角色相等,此伤害+1',
|
duwen_info:'锁定技,当你造成伤害时,若你的手牌数与受伤害角色相等,此伤害+1。',
|
||||||
zhuagou:'抓钩',
|
zhuagou:'抓钩',
|
||||||
zhuagou_info:'出牌阶段限一次,你可以弃置一张手牌并将你的座位移到任意位置',
|
zhuagou_info:'出牌阶段限一次,你可以弃置一张手牌并将你的座位移到任意位置。',
|
||||||
dulei:'诡雷',
|
dulei:'诡雷',
|
||||||
dulei2:'诡雷',
|
dulei2:'诡雷',
|
||||||
dulei_info:'出牌阶段,若你武将牌上没有牌,你可以将一张牌背面朝上置于你的武将牌上,当一名角色使用与该牌花色相同的牌指定你为目标时,你展示并移去此牌,然后该角色失去1点体力并随机弃置一张牌',
|
dulei_info:'出牌阶段,若你武将牌上没有牌,你可以将一张牌背面朝上置于你的武将牌上,当一名角色使用与该牌花色相同的牌指定你为目标时,你展示并移去此牌,然后该角色失去1点体力并随机弃置一张牌。',
|
||||||
shuangqiang:'霜枪',
|
shuangqiang:'霜枪',
|
||||||
shuangqiang_info:'每当你对一名未翻面的角色造成伤害,你可以令伤害-1,然后令受伤害角色翻面',
|
shuangqiang_info:'每当你对一名未翻面的角色造成伤害,你可以令伤害-1,然后令受伤害角色翻面。',
|
||||||
baoxue:'暴雪',
|
baoxue:'暴雪',
|
||||||
baoxue_info:'限定技,出牌阶段,若你未翻面,你可以展示并弃置你的所有黑色牌,然后令至多X名其他角色随机弃置一张牌并将武将牌翻至背面,X为你的弃牌数;结算后你将武将牌翻至背面',
|
baoxue_info:'限定技,出牌阶段,若你未翻面,你可以展示并弃置你的所有黑色牌,然后令至多X名其他角色随机弃置一张牌并将武将牌翻至背面,X为你的弃牌数;结算后你将武将牌翻至背面。',
|
||||||
baoxue_info_alter:'限定技,出牌阶段,你可以展示并弃置你的所有黑色牌,并选择等量其他角色将武将牌翻至背面,结算后你将武将牌翻至背面',
|
baoxue_info_alter:'限定技,出牌阶段,你可以展示并弃置你的所有黑色牌,并选择等量其他角色将武将牌翻至背面,结算后你将武将牌翻至背面。',
|
||||||
bingqiang:'冰墙',
|
bingqiang:'冰墙',
|
||||||
bingqiang2:'冰墙',
|
bingqiang2:'冰墙',
|
||||||
bingqiang2_bg:'墙',
|
bingqiang2_bg:'墙',
|
||||||
|
@ -3566,74 +3566,74 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
bingqiang4_bg:'墙',
|
bingqiang4_bg:'墙',
|
||||||
bingqiang5:'冰墙',
|
bingqiang5:'冰墙',
|
||||||
bingqiang5_bg:'障',
|
bingqiang5_bg:'障',
|
||||||
bingqiang_info:'出牌阶段,你可以弃置X张红色牌令一名角色和其相邻角色的防御离+X,或弃置X张黑色牌令一名角色和其相邻角色的进攻离-X,效果持续到你的下个回合开始',
|
bingqiang_info:'出牌阶段,你可以弃置X张红色牌令一名角色和其相邻角色的防御离+X,或弃置X张黑色牌令一名角色和其相邻角色的进攻离-X,效果持续到你的下个回合开始。',
|
||||||
jidong:'急冻',
|
jidong:'急冻',
|
||||||
jidong_info:'在一名角色的结束阶段,若你的体力值为1且未翻面,你可以翻面并回复2点体力,在你的武将牌翻至正面前,你防止所有伤害,也不能成为其他角色卡牌的目标',
|
jidong_info:'在一名角色的结束阶段,若你的体力值为1且未翻面,你可以翻面并回复2点体力,在你的武将牌翻至正面前,你防止所有伤害,也不能成为其他角色卡牌的目标。',
|
||||||
jidong_info_alter:'在一名角色的结束阶段,若你的体力值为1,你可以翻面并回复2点体力',
|
jidong_info_alter:'在一名角色的结束阶段,若你的体力值为1,你可以翻面并回复2点体力。',
|
||||||
jijia:'机甲',
|
jijia:'机甲',
|
||||||
jijia_info:'锁定技,游戏开始时,你获得一个体力为4的机甲;你的手牌上限为你和机甲的体力之和;你受到的伤害由机甲承担',
|
jijia_info:'锁定技,游戏开始时,你获得一个体力为4的机甲;你的手牌上限为你和机甲的体力之和;你受到的伤害由机甲承担。',
|
||||||
zihui:'自毁',
|
zihui:'自毁',
|
||||||
zihui_info:'出牌阶段,你可以令距离2以内的所有其他角色选择一项:弃置数量等同你机甲体力值的牌,或受到2点火焰伤害,并在结算完毕后摧毁你的机甲',
|
zihui_info:'出牌阶段,你可以令距离2以内的所有其他角色选择一项:弃置数量等同你机甲体力值的牌,或受到2点火焰伤害,并在结算完毕后摧毁你的机甲。',
|
||||||
zihui_info_alter:'出牌阶段,你可以令距离2以内的所有其他角色选择一项:1. 弃置数量等同你机甲体力值的牌(不足则全弃,至少弃1张);2. 或受到2点火焰伤害,并在结算完毕后摧毁你的机甲',
|
zihui_info_alter:'出牌阶段,你可以令距离2以内的所有其他角色选择一项:1. 弃置数量等同你机甲体力值的牌(不足则全弃,至少弃1张);2. 或受到2点火焰伤害,并在结算完毕后摧毁你的机甲。',
|
||||||
tuijin:'推进',
|
tuijin:'推进',
|
||||||
tuijin2:'推进',
|
tuijin2:'推进',
|
||||||
tuijin_info:'出牌阶段限一次,若你有机甲,你可以指定一名角色,本回合内视为与其距离为1',
|
tuijin_info:'出牌阶段限一次,若你有机甲,你可以指定一名角色,本回合内视为与其距离为1。',
|
||||||
chongzhuang:'重装',
|
chongzhuang:'重装',
|
||||||
chongzhuang_info:'在你失去机甲后,当你累计造成了4点伤害时,你重新获得机甲',
|
chongzhuang_info:'在你失去机甲后,当你累计造成了4点伤害时,你重新获得机甲。',
|
||||||
shouge:'收割',
|
shouge:'收割',
|
||||||
shouge_info:'每当你杀死一名角色,你可以获得一张治疗波',
|
shouge_info:'每当你杀死一名角色,你可以获得一张治疗波。',
|
||||||
tuji:'突击',
|
tuji:'突击',
|
||||||
tuji_info:'锁定技,在你的回合内,每当你使用一张牌,你的进攻距离+1',
|
tuji_info:'锁定技,在你的回合内,每当你使用一张牌,你的进攻距离+1。',
|
||||||
mujing:'目镜',
|
mujing:'目镜',
|
||||||
mujing2:'目镜',
|
mujing2:'目镜',
|
||||||
mujing_info:'你可以将一张黑色牌当作杀使用或打出;当你的杀被闪避后,此杀不计入出杀次数',
|
mujing_info:'你可以将一张黑色牌当作杀使用或打出;当你的杀被闪避后,此杀不计入出杀次数。',
|
||||||
mujing_old_info:'每当你对攻击范围不含你的角色使用一张牌,你可以弃置目标一张牌;若你的手牌数不多于目标,你摸一张牌',
|
mujing_old_info:'每当你对攻击范围不含你的角色使用一张牌,你可以弃置目标一张牌;若你的手牌数不多于目标,你摸一张牌。',
|
||||||
feiren:'飞刃',
|
feiren:'飞刃',
|
||||||
feiren2:'飞刃',
|
feiren2:'飞刃',
|
||||||
feiren_info:'你的杀无视距离;你的黑桃杀造成的伤害+1,梅花杀可以额外指定一个目标',
|
feiren_info:'你的杀无视距离;你的黑桃杀造成的伤害+1,梅花杀可以额外指定一个目标。',
|
||||||
feiren_info_alter:'你的杀无视距离;你的梅花杀可以额外指定一个目标',
|
feiren_info_alter:'你的杀无视距离;你的梅花杀可以额外指定一个目标。',
|
||||||
zhanlong:'斩龙',
|
zhanlong:'斩龙',
|
||||||
zhanlong_info:'限定技,准备阶段,若你体力值为1,你可以弃置所有牌(至少一张),然后将三张杀置入你的手牌,若如此做,你本回合使用杀无次数限制',
|
zhanlong_info:'限定技,准备阶段,若你体力值为1,你可以弃置所有牌(至少一张),然后将三张杀置入你的手牌,若如此做,你本回合使用杀无次数限制。',
|
||||||
xie:'谐',
|
xie:'谐',
|
||||||
xie2:'谐',
|
xie2:'谐',
|
||||||
xie_info:'出牌阶段,你可以弃置一张红桃手牌并指定一名角色,该角色自其下一回合开始每隔六回合回复1点体力,直到你死亡。同一时间只能对一人发动',
|
xie_info:'出牌阶段,你可以弃置一张红桃手牌并指定一名角色,该角色自其下一回合开始每隔六回合回复1点体力,直到你死亡。同一时间只能对一人发动。',
|
||||||
luan:'乱',
|
luan:'乱',
|
||||||
luan2:'乱',
|
luan2:'乱',
|
||||||
luan_old_info:'出牌阶段,你可以弃置一张黑桃手牌并指定一名角色,该角色自其下一回合开始每隔六回合失去1点体力,直到你死亡。同一时间只能对一人发动',
|
luan_old_info:'出牌阶段,你可以弃置一张黑桃手牌并指定一名角色,该角色自其下一回合开始每隔六回合失去1点体力,直到你死亡。同一时间只能对一人发动。',
|
||||||
luan_info:'出牌阶段,你可以弃置一张黑桃手牌并指定一名角色,该角色受到伤害后失去1点体力,直到你死亡或其首次进入濒死状态。同一时间只能对一人发动',
|
luan_info:'出牌阶段,你可以弃置一张黑桃手牌并指定一名角色,该角色受到伤害后失去1点体力,直到你死亡或其首次进入濒死状态。同一时间只能对一人发动。',
|
||||||
sheng:'圣',
|
sheng:'圣',
|
||||||
sheng_info:'限定技,出牌阶段,你可以将你的武将牌翻面,然后令任意名角色回复1点体力,若如此做,你不能成为其他角色的卡牌目标直到下一回合开始',
|
sheng_info:'限定技,出牌阶段,你可以将你的武将牌翻面,然后令任意名角色回复1点体力,若如此做,你不能成为其他角色的卡牌目标直到下一回合开始。',
|
||||||
xiandan:'霰弹',
|
xiandan:'霰弹',
|
||||||
xiandan_info:'每当你使用一张杀,你可以弃置一张红色牌令此杀不可闪避,或弃置一张黑色牌令此杀伤害+1',
|
xiandan_info:'每当你使用一张杀,你可以弃置一张红色牌令此杀不可闪避,或弃置一张黑色牌令此杀伤害+1。',
|
||||||
yihun:'移魂',
|
yihun:'移魂',
|
||||||
yihun_info:'结束阶段,你可以弃置一张黑色牌并指定一名其他角色,你在该角色下一准备阶段视为对其使用一张杀;在此之前,你不能使用卡牌,也不能成为卡牌的目标',
|
yihun_info:'结束阶段,你可以弃置一张黑色牌并指定一名其他角色,你在该角色下一准备阶段视为对其使用一张杀;在此之前,你不能使用卡牌,也不能成为卡牌的目标。',
|
||||||
feidan:'飞弹',
|
feidan:'飞弹',
|
||||||
feidan_info:'你的杀只能对距离1以外的角色使用;每当你使用杀造成伤害后,你可以弃置一张牌对距离目标1以内的其他角色各造成1点伤害',
|
feidan_info:'你的杀只能对距离1以外的角色使用;每当你使用杀造成伤害后,你可以弃置一张牌对距离目标1以内的其他角色各造成1点伤害。',
|
||||||
huoyu:'火雨',
|
huoyu:'火雨',
|
||||||
huoyu_info:'限定技,出牌阶段,你可以弃置两张红色牌,视为使用两张炽羽袭',
|
huoyu_info:'限定技,出牌阶段,你可以弃置两张红色牌,视为使用两张炽羽袭。',
|
||||||
yuedong:'乐动',
|
yuedong:'乐动',
|
||||||
yuedong_info:'出牌阶段结束时,你可以令一名角色摸一张牌',
|
yuedong_info:'出牌阶段结束时,你可以令一名角色摸一张牌。',
|
||||||
kuoyin:'扩音',
|
kuoyin:'扩音',
|
||||||
kuoyin_info:'出牌阶段,你可以弃置一张牌令本回合乐动的目标数改为3,或弃置两张牌令本回合乐动的摸牌量改为2',
|
kuoyin_info:'出牌阶段,你可以弃置一张牌令本回合乐动的目标数改为3,或弃置两张牌令本回合乐动的摸牌量改为2。',
|
||||||
kuoyin_info_alter:'出牌阶段,你可以弃置一张牌令本回合乐动的目标数改为3',
|
kuoyin_info_alter:'出牌阶段,你可以弃置一张牌令本回合乐动的目标数改为3。',
|
||||||
huhuan:'互换',
|
huhuan:'互换',
|
||||||
huhuan_info:'出牌阶段,你可以弃置两张牌令本回合乐动的摸牌效果改为回复等量体力',
|
huhuan_info:'出牌阶段,你可以弃置两张牌令本回合乐动的摸牌效果改为回复等量体力。',
|
||||||
guangshu:'光枢',
|
guangshu:'光枢',
|
||||||
guangshu_heart:'光盾',
|
guangshu_heart:'光盾',
|
||||||
guangshu_spade:'光塔',
|
guangshu_spade:'光塔',
|
||||||
guangshu_club:'光井',
|
guangshu_club:'光井',
|
||||||
guangshu_diamond:'光流',
|
guangshu_diamond:'光流',
|
||||||
guangshu_info:'出牌阶段,你可以弃置一张牌,并指定一名角色,根据弃置牌的花色执行如下效果:♥该角色下次受到伤害时回复1点体力;♦︎该角色下次造成伤害时摸两张牌;♣该角色无法使用杀直到下一回合结束;♠该角色于下个结束阶段受到1点无来源的雷电伤害',
|
guangshu_info:'出牌阶段,你可以弃置一张牌,并指定一名角色,根据弃置牌的花色执行如下效果:♥该角色下次受到伤害时回复1点体力;♦︎该角色下次造成伤害时摸两张牌;♣该角色无法使用杀直到下一回合结束;♠该角色于下个结束阶段受到1点无来源的雷电伤害。',
|
||||||
ziyu:'自愈',
|
ziyu:'自愈',
|
||||||
ziyu_info:'在一名角色的结束阶段,你可以回复1点体力或摸一张牌,每隔四回合发动一次',
|
ziyu_info:'在一名角色的结束阶段,你可以回复1点体力或摸一张牌,每隔四回合发动一次。',
|
||||||
ziyu_info_alter:'在一名角色的结束阶段,你可以回复1点体力或摸一张牌,每隔六回合发动一次',
|
ziyu_info_alter:'在一名角色的结束阶段,你可以回复1点体力或摸一张牌,每隔六回合发动一次。',
|
||||||
shouhu:'守护',
|
shouhu:'守护',
|
||||||
shouhu_info:'你不能使用杀;出牌阶段,你可以弃置一张杀令一名其他角色回复1点体力',
|
shouhu_info:'你不能使用杀;出牌阶段,你可以弃置一张杀令一名其他角色回复1点体力。',
|
||||||
shanxian:'闪现',
|
shanxian:'闪现',
|
||||||
shanxian_info:'在一名其他角色的回合开始前,若你的武将牌正面朝上,你可以摸一张牌并进行一个额外回合,并在回合结束后将武将牌翻至背面。若如此做,你对其使用卡牌无视距离直到回合结束。',
|
shanxian_info:'在一名其他角色的回合开始前,若你的武将牌正面朝上,你可以摸一张牌并进行一个额外回合,并在回合结束后将武将牌翻至背面。若如此做,你对其使用卡牌无视距离直到回合结束。',
|
||||||
shanxian_info_alter:'在一名其他角色的回合开始前,若你的武将牌正面朝上,你可以进行一个额外回合,并在回合结束后将武将牌翻至背面。若如此做,你对其使用卡牌无视距离直到回合结束。',
|
shanxian_info_alter:'在一名其他角色的回合开始前,若你的武将牌正面朝上,你可以进行一个额外回合,并在回合结束后将武将牌翻至背面。若如此做,你对其使用卡牌无视距离直到回合结束。',
|
||||||
shanhui:'闪回',
|
shanhui:'闪回',
|
||||||
shanhui_info:'当你造成或受到伤害后,你可以将你的牌重置为上次发动闪现时的状态,若你的牌数因此而减少,你回复1点体力',
|
shanhui_info:'当你造成或受到伤害后,你可以将你的牌重置为上次发动闪现时的状态,若你的牌数因此而减少,你回复1点体力。',
|
||||||
ow_liekong:'猎空',
|
ow_liekong:'猎空',
|
||||||
ow_sishen:'死神',
|
ow_sishen:'死神',
|
||||||
ow_tianshi:'天使',
|
ow_tianshi:'天使',
|
||||||
|
|
|
@ -348,6 +348,9 @@ window.noname_character_rank={
|
||||||
'caoyi',
|
'caoyi',
|
||||||
'sb_sp_zhugeliang',
|
'sb_sp_zhugeliang',
|
||||||
'sb_zhugeliang',
|
'sb_zhugeliang',
|
||||||
|
'ol_jianyong',
|
||||||
|
'ol_sb_jiangwei',
|
||||||
|
'dc_sb_zhouyu',
|
||||||
],
|
],
|
||||||
am:[
|
am:[
|
||||||
'diy_caiwenji',
|
'diy_caiwenji',
|
||||||
|
@ -640,6 +643,7 @@ window.noname_character_rank={
|
||||||
'dc_guansuo',
|
'dc_guansuo',
|
||||||
'dc_dongzhao',
|
'dc_dongzhao',
|
||||||
'zhugeruoxue',
|
'zhugeruoxue',
|
||||||
|
'dc_sb_lusu',
|
||||||
],
|
],
|
||||||
bp:[
|
bp:[
|
||||||
'chess_diaochan',
|
'chess_diaochan',
|
||||||
|
@ -1321,6 +1325,8 @@ window.noname_character_rank={
|
||||||
'baoxin',
|
'baoxin',
|
||||||
'mb_xianglang',
|
'mb_xianglang',
|
||||||
'lvboshe',
|
'lvboshe',
|
||||||
|
'ol_caozhang',
|
||||||
|
'ol_lingtong',
|
||||||
],
|
],
|
||||||
bm:[
|
bm:[
|
||||||
'diy_xizhenxihong',
|
'diy_xizhenxihong',
|
||||||
|
@ -2070,8 +2076,13 @@ window.noname_character_rank={
|
||||||
'clan_xunyou',
|
'clan_xunyou',
|
||||||
'lvboshe',
|
'lvboshe',
|
||||||
'yj_zhoubuyi',
|
'yj_zhoubuyi',
|
||||||
|
'ol_jianyong',
|
||||||
|
'ol_sb_jiangwei',
|
||||||
|
'dc_sb_zhouyu',
|
||||||
],
|
],
|
||||||
rare:[
|
rare:[
|
||||||
|
'ol_caozhang',
|
||||||
|
'ol_lingtong',
|
||||||
'luoxian',
|
'luoxian',
|
||||||
'ol_mengda',
|
'ol_mengda',
|
||||||
'tw_menghuo',
|
'tw_menghuo',
|
||||||
|
@ -2535,6 +2546,7 @@ window.noname_character_rank={
|
||||||
'yue_zhoufei',
|
'yue_zhoufei',
|
||||||
'ol_dingshangwan',
|
'ol_dingshangwan',
|
||||||
'ol_liwan',
|
'ol_liwan',
|
||||||
|
'dc_sb_lusu',
|
||||||
],
|
],
|
||||||
junk:[
|
junk:[
|
||||||
'sunshao',
|
'sunshao',
|
||||||
|
|
|
@ -20,8 +20,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
connect:true,
|
connect:true,
|
||||||
character:{
|
character:{
|
||||||
ol_jianyong:['male','shu',3,['olqiaoshui','jyzongshi'],['unseen']],
|
|
||||||
ol_lingtong:['male','wu',4,['olxuanfeng'],['die_audio:re_lingtong','unseen']],
|
|
||||||
re_xushu:['male','shu',4,['zhuhai','qianxin']],
|
re_xushu:['male','shu',4,['zhuhai','qianxin']],
|
||||||
re_lidian:['male','wei',3,['xunxun','xinwangxi']],
|
re_lidian:['male','wei',3,['xunxun','xinwangxi']],
|
||||||
re_zhongyao:['male','wei',3,['rehuomo','zuoding'],['clan:颍川钟氏']],
|
re_zhongyao:['male','wei',3,['rehuomo','zuoding'],['clan:颍川钟氏']],
|
||||||
|
@ -171,85 +169,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
re_guohuai:['xiahouyuan','zhanghe'],
|
re_guohuai:['xiahouyuan','zhanghe'],
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
//界简雍
|
|
||||||
olqiaoshui:{
|
|
||||||
audio:2,
|
|
||||||
inherit:'reqiaoshui',
|
|
||||||
filter:function(event,player){
|
|
||||||
return player.countCards('h')>0&&!player.hasSkill('olqiaoshui_used');
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
'step 0'
|
|
||||||
player.chooseToCompare(target);
|
|
||||||
'step 1'
|
|
||||||
if(result.bool) player.addTempSkill('qiaoshui3',{player:'phaseUseAfter'});
|
|
||||||
else{
|
|
||||||
player.addTempSkill('qiaoshui2');
|
|
||||||
player.addTempSkill('olqiaoshui_used');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
subSkill:{
|
|
||||||
used:{
|
|
||||||
charlotte:true,
|
|
||||||
mark:true,
|
|
||||||
marktext:'<span style="text-decoration: line-through;">说</span>',
|
|
||||||
intro:{content:'被迫闭嘴'},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
//界凌统
|
|
||||||
olxuanfeng:{
|
|
||||||
audio:'xuanfeng',
|
|
||||||
audioname:['boss_lvbu3'],
|
|
||||||
audioname2:{
|
|
||||||
lingtong:'xuanfeng',
|
|
||||||
ol_lingtong:'xuanfeng_re_lingtong',
|
|
||||||
},
|
|
||||||
trigger:{
|
|
||||||
player:['loseAfter'],
|
|
||||||
global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter','addToExpansionAfter'],
|
|
||||||
},
|
|
||||||
filter:function(event,player){
|
|
||||||
var evt=event.getl(player);
|
|
||||||
return evt&&(evt.es.length||evt.cards2.length>1);
|
|
||||||
},
|
|
||||||
direct:true,
|
|
||||||
content:function(){
|
|
||||||
'step 0'
|
|
||||||
event.count=2;
|
|
||||||
event.logged=false;
|
|
||||||
'step 1'
|
|
||||||
player.chooseTarget(get.prompt('olxuanfeng'),'弃置一名其他角色的一张牌',function(card,player,target){
|
|
||||||
if(player==target) return false;
|
|
||||||
return target.countDiscardableCards(player,'he');
|
|
||||||
}).set('ai',function(target){
|
|
||||||
return -get.attitude(_status.event.player,target);
|
|
||||||
});
|
|
||||||
'step 2'
|
|
||||||
if(result.bool){
|
|
||||||
if(!event.logged){
|
|
||||||
player.logSkill('olxuanfeng',result.targets);
|
|
||||||
event.logged=true;
|
|
||||||
}
|
|
||||||
else player.line(result.targets[0],'green');
|
|
||||||
player.discardPlayerCard(result.targets[0],'he',true);
|
|
||||||
event.count--;
|
|
||||||
}
|
|
||||||
else event.finish();
|
|
||||||
'step 3'
|
|
||||||
if(event.count) event.goto(1);
|
|
||||||
},
|
|
||||||
ai:{
|
|
||||||
effect:{
|
|
||||||
target:function(card,player,target,current){
|
|
||||||
if(get.type(card)=='equip'&&!get.cardtag(card,'gifts')) return [1,3];
|
|
||||||
}
|
|
||||||
},
|
|
||||||
reverseEquip:true,
|
|
||||||
noe:true
|
|
||||||
},
|
|
||||||
},
|
|
||||||
xuanfeng_re_lingtong:{audio:2},
|
|
||||||
ollianhuan:{
|
ollianhuan:{
|
||||||
audio:'xinlianhuan',
|
audio:'xinlianhuan',
|
||||||
audioname:['ol_pangtong'],
|
audioname:['ol_pangtong'],
|
||||||
|
@ -3534,8 +3453,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return event.card&&event.card.name=='sha'&&event.player.isIn()&&player.countCards('he')>0;
|
return event.card&&event.card.name=='sha'&&event.player.isIn()&&player.countCards('he')>0;
|
||||||
},
|
},
|
||||||
check:function(event,player){
|
check:function(event,player){
|
||||||
if(event.player.hasSkill('xinleiji')) return get.attitude(player,event.player)>0;
|
let att=get.attitude(player,event.player);
|
||||||
return true;
|
if(event.player.hasSkill('xinleiji')) return att>0;
|
||||||
|
if(att>0||event.player.isHealthy()) return true;
|
||||||
|
if(!event.source) return true;
|
||||||
|
att=get.attitude(player,event.source);
|
||||||
|
return att<=0||event.source.isTurnedOver();
|
||||||
},
|
},
|
||||||
prompt2:'令其进行判定,然后你可根据判定结果,弃置一张牌并令其执行对应效果。',
|
prompt2:'令其进行判定,然后你可根据判定结果,弃置一张牌并令其执行对应效果。',
|
||||||
content:function(){
|
content:function(){
|
||||||
|
@ -3556,7 +3479,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
case 'diamond':
|
case 'diamond':
|
||||||
if(target.isIn()){
|
if(target.isIn()){
|
||||||
str+=(',令'+strt+'摸两张牌');
|
str+=(',令'+strt+'摸两张牌');
|
||||||
goon=get.effect(target,{name:'wuzhong'},player,player);
|
goon=2*get.effect(target,{name:'draw'},player,player);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'spade':
|
case 'spade':
|
||||||
|
@ -5909,7 +5832,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
game.addGlobalSkill('relongyin_order');
|
game.addGlobalSkill('relongyin_order');
|
||||||
},
|
},
|
||||||
onremove:(player)=>{
|
onremove:(player)=>{
|
||||||
game.removeGlobalSkill('relongyin_order');
|
if(!game.hasPlayer(current=>current.hasSkill('relongyin'),true)) game.removeGlobalSkill('relongyin_order');
|
||||||
},
|
},
|
||||||
trigger:{global:'useCard'},
|
trigger:{global:'useCard'},
|
||||||
direct:true,
|
direct:true,
|
||||||
|
@ -5998,7 +5921,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
trigger:{player:'dieAfter'},
|
trigger:{player:'dieAfter'},
|
||||||
filter:(event,player)=>{
|
filter:(event,player)=>{
|
||||||
return !game.hasPlayer(current=>current.hasSkill('relongyin'));
|
return !game.hasPlayer(current=>current.hasSkill('relongyin'),true);
|
||||||
},
|
},
|
||||||
silent:true,
|
silent:true,
|
||||||
forceDie:true,
|
forceDie:true,
|
||||||
|
@ -6587,7 +6510,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
true
|
true
|
||||||
)) return 6.5 - get.value(card, player);
|
)) return 6.5 - get.value(card, player);
|
||||||
if (Math.random() * target.countCards('hs') < 1 || player.needsToDiscard(-ui.selected.cards.length)) return 6 - get.value(card, player);
|
if (Math.random() * target.countCards('hs') < 1 || player.needsToDiscard(0,(i,player)=>{
|
||||||
|
return !ui.selected.cards.includes(i)&&!player.canIgnoreHandcard(i);
|
||||||
|
})) return 6 - get.value(card, player);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return 6.3 - get.value(card);
|
return 6.3 - get.value(card);
|
||||||
|
@ -8680,6 +8605,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(player.getEquips(3).length>0||player.getEquips(4).length>0) return Infinity;
|
if(player.getEquips(3).length>0||player.getEquips(4).length>0) return Infinity;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
locked:false,
|
||||||
enable:'phaseUse',
|
enable:'phaseUse',
|
||||||
usable:1,
|
usable:1,
|
||||||
position:'he',
|
position:'he',
|
||||||
|
@ -10195,7 +10121,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
direct:true,
|
direct:true,
|
||||||
content:function(){
|
content:function(){
|
||||||
"step 0"
|
"step 0"
|
||||||
var fang=player.countMark('olfangquan2')==0&&player.hp>=2&&player.countCards('h')<=player.hp+1;
|
var fang=player.countMark('olfangquan2')==0&&player.hp>=2&&player.countCards('h')<=player.hp+2;
|
||||||
player.chooseBool(get.prompt2('olfangquan')).set('ai',function(){
|
player.chooseBool(get.prompt2('olfangquan')).set('ai',function(){
|
||||||
if(!_status.event.fang) return false;
|
if(!_status.event.fang) return false;
|
||||||
return game.hasPlayer(function(target){
|
return game.hasPlayer(function(target){
|
||||||
|
@ -11198,7 +11124,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
useShan:true,
|
useShan:true,
|
||||||
effect:{
|
effect:{
|
||||||
target:function(card,player,target,current){
|
target:function(card,player,target,current){
|
||||||
let name='sha';
|
let name;
|
||||||
if(typeof card=='object'){
|
if(typeof card=='object'){
|
||||||
if(card.viewAs) name=card.viewAs;
|
if(card.viewAs) name=card.viewAs;
|
||||||
else name=get.name(card);
|
else name=get.name(card);
|
||||||
|
@ -11664,25 +11590,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
direct:true,
|
direct:true,
|
||||||
content:function (){
|
content:function (){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.gainPlayerCard(get.prompt('new_liyu',trigger.player),trigger.player,'hej','visibleMove').set('ai',function(card){
|
player.gainPlayerCard(get.prompt('new_liyu',trigger.player),trigger.player,'hej','visibleMove').set('ai',function(button){
|
||||||
var player=_status.event.player;
|
var player=_status.event.player,target=_status.event.target;
|
||||||
var evt=_status.event.target;
|
if(get.attitude(player,target)>0&&get.position(button.link)==='j') return 4+get.value(button.link);
|
||||||
if(get.attitude(player,evt)>0&&get.position(card)=='j') return 4+get.value(card);
|
if(get.type(button.link)==='equip') return _status.event.juedou;
|
||||||
if(get.type(card)=='equip'){
|
|
||||||
if(get.attitude(player,evt)>0&&game.hasPlayer(function(current){
|
|
||||||
return (player.canUse({name:'juedou'},current)&¤t!=evt.target&&get.effect(current,{name:'juedou'},player,player)>2);
|
|
||||||
})){
|
|
||||||
return 5;
|
|
||||||
}
|
|
||||||
else if(game.hasPlayer(function(current){
|
|
||||||
return (player.canUse({name:'juedou'},current)&¤t!=evt&¤t!=player&&get.effect(current,{name:'juedou'},player,player)<0);
|
|
||||||
})){
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
else return 4;
|
|
||||||
}
|
|
||||||
return 3;
|
return 3;
|
||||||
}).set('logSkill',['new_liyu',trigger.player]);
|
}).set('juedou',(()=>{
|
||||||
|
if(get.attitude(player,trigger.player)>0&&game.hasPlayer(function(current){
|
||||||
|
return (player.canUse({name:'juedou'},current)&¤t!=trigger.player&¤t!=player&&get.effect(current,{name:'juedou'},player,_status.event.player)>2);
|
||||||
|
})) return 5;
|
||||||
|
if(game.hasPlayer(function(current){
|
||||||
|
return (player.canUse({name:'juedou'},current)&¤t!=trigger.player&¤t!=player&&get.effect(current,{name:'juedou'},player,_status.event.player)<0);
|
||||||
|
})) return 1;
|
||||||
|
return 4;
|
||||||
|
})()).set('logSkill',['new_liyu',trigger.player]);
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
if(get.type(result.cards[0])!='equip'){
|
if(get.type(result.cards[0])!='equip'){
|
||||||
|
@ -11847,12 +11768,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(!target.hasFriend()) return;
|
if(!target.hasFriend()) return;
|
||||||
var num=1;
|
var num=1;
|
||||||
if(get.attitude(player,target)>0){
|
if(get.attitude(player,target)>0){
|
||||||
if(player.needsToDiscard()){
|
if(player.needsToDiscard()) num=0.7;
|
||||||
num=0.7;
|
else num=0.5;
|
||||||
}
|
|
||||||
else{
|
|
||||||
num=0.5;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if(player.hp>=4) return [1,num*2];
|
if(player.hp>=4) return [1,num*2];
|
||||||
if(target.hp==3) return [1,num*1.5];
|
if(target.hp==3) return [1,num*1.5];
|
||||||
|
@ -12189,7 +12106,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return player!=target;
|
return player!=target;
|
||||||
},
|
},
|
||||||
ai1:function(card){
|
ai1:function(card){
|
||||||
if(get.attitude(_status.event.player,_status.currentPhase)<0&&_status.currentPhase.needsToDiscard()&&card.name!='du') return -1;
|
if(card.name!='du'&&get.attitude(_status.event.player,_status.currentPhase)<0&&_status.currentPhase.needsToDiscard()) return -1;
|
||||||
for(var i=0;i<ui.selected.cards.length;i++){
|
for(var i=0;i<ui.selected.cards.length;i++){
|
||||||
if(get.type(ui.selected.cards[i])==get.type(card)||(ui.selected.cards[i].name=='du'&&card.name!='du')) return -1;
|
if(get.type(ui.selected.cards[i])==get.type(card)||(ui.selected.cards[i].name=='du'&&card.name!='du')) return -1;
|
||||||
}
|
}
|
||||||
|
@ -13389,21 +13306,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
effect:function(card,player,target){
|
effect:function(card,player,target){
|
||||||
if(!target.hasFriend()) return;
|
if(player==target||!target.hasFriend()) return;
|
||||||
if(player==target) return;
|
|
||||||
var type=get.type(card);
|
var type=get.type(card);
|
||||||
var nh=target.countCards();
|
var nh=Math.min(target.countCards(),game.countPlayer(i=>get.attitude(target,i)>0));
|
||||||
if(type=='trick'){
|
if(type=='trick'){
|
||||||
if(!get.tag(card,'multitarget')||get.info(card).singleCard){
|
if(!get.tag(card,'multitarget')||get.info(card).singleCard){
|
||||||
if(get.tag(card,'damage')){
|
if(get.tag(card,'damage')) return [1.5,nh-1];
|
||||||
if(nh<3||target.hp<=2) return 0.8;
|
|
||||||
}
|
|
||||||
return [1,nh];
|
return [1,nh];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(type=='delay'){
|
else if(type=='delay') return [0.5,0.5];
|
||||||
return [0.5,0.5];
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -13751,12 +13663,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(!target.hasFriend()) return;
|
if(!target.hasFriend()) return;
|
||||||
var num=1;
|
var num=1;
|
||||||
if(get.attitude(player,target)>0){
|
if(get.attitude(player,target)>0){
|
||||||
if(player.needsToDiscard()){
|
if(player.needsToDiscard()) num=0.7;
|
||||||
num=0.7;
|
else num=0.5;
|
||||||
}
|
|
||||||
else{
|
|
||||||
num=0.5;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if(player.hp>=4) return [1,num*2];
|
if(player.hp>=4) return [1,num*2];
|
||||||
if(target.hp==3) return [1,num*1.5];
|
if(target.hp==3) return [1,num*1.5];
|
||||||
|
@ -13998,19 +13906,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
zhaxiang:{
|
zhaxiang:{
|
||||||
|
audio:2,
|
||||||
|
audioname:['ol_sb_jiangwei'],
|
||||||
trigger:{player:'loseHpEnd'},
|
trigger:{player:'loseHpEnd'},
|
||||||
forced:true,
|
forced:true,
|
||||||
audio:2,
|
|
||||||
content:function(){
|
content:function(){
|
||||||
var num=trigger.num;
|
'step 0'
|
||||||
player.draw(3*num);
|
event.count=trigger.num;
|
||||||
if(_status.currentPhase==player){
|
'step 1'
|
||||||
if(!player.storage.zhaxiang2) player.storage.zhaxiang2=0;
|
event.count--;
|
||||||
player.storage.zhaxiang2+=num;
|
player.draw(3);
|
||||||
player.addTempSkill('zhaxiang2',{player:'phaseAfter'});
|
if(player.isPhaseUsing()){
|
||||||
|
player.addTempSkill('zhaxiang2');
|
||||||
|
player.addMark('zhaxiang2',1,false);
|
||||||
}
|
}
|
||||||
else{
|
'step 2'
|
||||||
game.trySkillAudio('zhaxiang',player);
|
if(event.count>0&&player.hasSkill('zhaxiang')&&!get.is.blocked('zhaxiang',player)){
|
||||||
|
player.logSkill('zhaxiang');
|
||||||
|
event.goto(1);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
|
@ -14041,15 +13954,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(card.name=='sha') return num+player.storage.zhaxiang2;
|
if(card.name=='sha') return num+player.storage.zhaxiang2;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
charlotte:true,
|
||||||
onremove:true,
|
onremove:true,
|
||||||
|
audio:'zhaxiang',
|
||||||
|
audioname:['ol_sb_jiangwei'],
|
||||||
trigger:{player:'useCard'},
|
trigger:{player:'useCard'},
|
||||||
forced:true,
|
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return event.card&&event.card.name=='sha'&&get.color(event.card)=='red';
|
return event.card&&event.card.name=='sha'&&get.color(event.card)=='red';
|
||||||
},
|
},
|
||||||
|
forced:true,
|
||||||
content:function(){
|
content:function(){
|
||||||
trigger.directHit.addArray(game.players);
|
trigger.directHit.addArray(game.players);
|
||||||
},
|
},
|
||||||
|
intro:{content:'<li>使用【杀】的次数上限+#<br><li>使用红色【杀】无距离限制且不能被【闪】响应'},
|
||||||
ai:{
|
ai:{
|
||||||
directHit_ai:true,
|
directHit_ai:true,
|
||||||
skillTagFilter:function(player,tag,arg){
|
skillTagFilter:function(player,tag,arg){
|
||||||
|
@ -14369,7 +14286,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
direct:true,
|
direct:true,
|
||||||
content:function(){
|
content:function(){
|
||||||
"step 0"
|
"step 0"
|
||||||
var fang=player.countMark('fangquan2')==0&&player.hp>=2&&player.countCards('h')<=player.hp+1;
|
var fang=player.countMark('fangquan2')==0&&player.hp>=2&&player.countCards('h')<=player.maxHp+1;
|
||||||
player.chooseBool(get.prompt2('refangquan')).set('ai',function(){
|
player.chooseBool(get.prompt2('refangquan')).set('ai',function(){
|
||||||
if(!_status.event.fang) return false;
|
if(!_status.event.fang) return false;
|
||||||
return game.hasPlayer(function(target){
|
return game.hasPlayer(function(target){
|
||||||
|
@ -14728,7 +14645,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
threaten:1.5,
|
threaten:1.5,
|
||||||
},
|
},
|
||||||
trigger:{source:'damageEnd'},
|
trigger:{source:'damageEnd'},
|
||||||
locked:true,
|
locked:false,
|
||||||
forced:true,
|
forced:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(event.name=='chooseToUse') return player.hasCard(card=>get.suit(card)=='spade','hs');
|
if(event.name=='chooseToUse') return player.hasCard(card=>get.suit(card)=='spade','hs');
|
||||||
|
@ -15030,7 +14947,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
qianxin_info:'觉醒技,当你造成一次伤害后,若你已受伤,你须减1点体力上限,并获得技能“荐言”。',
|
qianxin_info:'觉醒技,当你造成一次伤害后,若你已受伤,你须减1点体力上限,并获得技能“荐言”。',
|
||||||
jianyan_info:'出牌阶段限一次,你可以声明一种牌的类别或颜色,并亮出牌库中第一张符合你声明的牌,然后你令一名男性角色获得此牌。',
|
jianyan_info:'出牌阶段限一次,你可以声明一种牌的类别或颜色,并亮出牌库中第一张符合你声明的牌,然后你令一名男性角色获得此牌。',
|
||||||
rekurou_info:'出牌阶段限一次,你可以弃置一张牌,然后失去1点体力。',
|
rekurou_info:'出牌阶段限一次,你可以弃置一张牌,然后失去1点体力。',
|
||||||
zhaxiang_info:'锁定技,每当你失去1点体力后,你摸三张牌。然后若此时是你的出牌阶段,则直到回合结束,你使用红色【杀】无距离限制且不能被【闪】响应,你可以额外使用一张【杀】。',
|
zhaxiang_info:'锁定技。当你失去1点体力后,你摸三张牌。然后若此时是你的出牌阶段,则你本回合获得此下效果:使用【杀】的次数上限+1,使用红色【杀】无距离限制且不能被【闪】响应。',
|
||||||
qiaomeng_info:'当你使用黑色【杀】对一名角色造成伤害后,你可以弃置该角色装备区里的一张牌,若此牌是坐骑牌,你于此牌置入弃牌堆后获得之。',
|
qiaomeng_info:'当你使用黑色【杀】对一名角色造成伤害后,你可以弃置该角色装备区里的一张牌,若此牌是坐骑牌,你于此牌置入弃牌堆后获得之。',
|
||||||
reyicong_info:'锁定技,你计算与其他角色的距离时-1。若你的体力值不大于2,则其他角色计算与你的距离时+1。',
|
reyicong_info:'锁定技,你计算与其他角色的距离时-1。若你的体力值不大于2,则其他角色计算与你的距离时+1。',
|
||||||
refankui_info:'每当你受到1点伤害后,你可以获得伤害来源的一张牌。',
|
refankui_info:'每当你受到1点伤害后,你可以获得伤害来源的一张牌。',
|
||||||
|
@ -15078,7 +14995,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
re_caopi:'界曹丕',
|
re_caopi:'界曹丕',
|
||||||
re_caopi_prefix:'界',
|
re_caopi_prefix:'界',
|
||||||
oljiuchi:'酒池',
|
oljiuchi:'酒池',
|
||||||
oljiuchi_info:'你可以将一张黑桃手牌当做【酒】使用。锁定技,你使用【酒】无次数限制,且当你于回合内使用带有【酒】效果的【杀】造成伤害后,你令你的〖崩坏〗失效直到回合结束。',
|
oljiuchi_info:'你可以将一张黑桃手牌当做【酒】使用。你使用【酒】无次数限制,且当你于回合内使用带有【酒】效果的【杀】造成伤害后,你令你的〖崩坏〗失效直到回合结束。',
|
||||||
repolu:'破虏',
|
repolu:'破虏',
|
||||||
repolu_info:'当你杀死一名角色/死亡时,你可以令任意名角色摸X+1张牌。(X为你此前发动过〖破虏〗的次数)',
|
repolu_info:'当你杀死一名角色/死亡时,你可以令任意名角色摸X+1张牌。(X为你此前发动过〖破虏〗的次数)',
|
||||||
rexingshang:'行殇',
|
rexingshang:'行殇',
|
||||||
|
@ -15634,19 +15551,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
caoren_prefix:'界',
|
caoren_prefix:'界',
|
||||||
ollianhuan:'连环',
|
ollianhuan:'连环',
|
||||||
ollianhuan_info:'你可以将一张♣牌当【铁索连环】使用或重铸。你使用【铁索连环】选择目标后,可以给此牌增加一个目标。',
|
ollianhuan_info:'你可以将一张♣牌当【铁索连环】使用或重铸。你使用【铁索连环】选择目标后,可以给此牌增加一个目标。',
|
||||||
ol_lingtong:'OL界凌统',
|
|
||||||
ol_lingtong_prefix:'OL界',
|
|
||||||
olxuanfeng:'旋风',
|
|
||||||
olxuanfeng_info:'当你一次性失去至少两张牌后,或失去装备区的牌后,你可以依次弃置一至两名其他角色的共计两张牌。',
|
|
||||||
re_lidian:'界李典',
|
re_lidian:'界李典',
|
||||||
gz_re_lidian:'李典',
|
gz_re_lidian:'李典',
|
||||||
re_lidian_prefix:'界',
|
re_lidian_prefix:'界',
|
||||||
re_xushu:'界徐庶',
|
re_xushu:'界徐庶',
|
||||||
re_xushu_prefix:'界',
|
re_xushu_prefix:'界',
|
||||||
ol_jianyong:'OL界简雍',
|
|
||||||
ol_jianyong_prefix:'OL界',
|
|
||||||
olqiaoshui:'巧说',
|
|
||||||
olqiaoshui_info:'出牌阶段,你可与一名其他角色拼点。若你赢,你使用的下一张基本牌或普通锦囊牌可以额外指定任意一名其他角色为目标或减少指定一个目标;若你没赢,此技能于本回合失效且本回合你不能使用锦囊牌。',
|
|
||||||
|
|
||||||
refresh_standard:'界限突破·标',
|
refresh_standard:'界限突破·标',
|
||||||
refresh_feng:'界限突破·风',
|
refresh_feng:'界限突破·风',
|
||||||
|
|
127
character/sb.js
|
@ -7,7 +7,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
character:{
|
character:{
|
||||||
sb_huangyueying:['female','shu',3,['sbjizhi','sbqicai']],
|
sb_huangyueying:['female','shu',3,['sbjizhi','sbqicai']],
|
||||||
sb_sp_zhugeliang:['male','shu',3,['sbhuoji','sbkanpo']],
|
sb_sp_zhugeliang:['male','shu',3,['sbhuoji','sbkanpo']],
|
||||||
sb_zhugeliang:['male','shu',3,['sbguanxing','sbkongcheng'],['unseen']],
|
sb_zhugeliang:['male','shu',3,['sbguanxing','sbkongcheng']],
|
||||||
sb_zhanghe:['male','wei',4,['sbqiaobian']],
|
sb_zhanghe:['male','wei',4,['sbqiaobian']],
|
||||||
sb_yujin:['male','wei',4,['sbxiayuan','sbjieyue']],
|
sb_yujin:['male','wei',4,['sbxiayuan','sbjieyue']],
|
||||||
sb_huaxiong:['male','qun','3/4/1',['new_reyaowu','sbyangwei']],
|
sb_huaxiong:['male','qun','3/4/1',['new_reyaowu','sbyangwei']],
|
||||||
|
@ -46,7 +46,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
characterSort:{
|
characterSort:{
|
||||||
sb:{
|
sb:{
|
||||||
sb_zhi:['sb_sunquan','sb_zhouyu','sb_zhangjiao','sb_caocao','sb_zhenji','sb_liubei','sb_daqiao','sb_liubiao','sb_sp_zhugeliang'],
|
sb_zhi:['sb_sunquan','sb_zhouyu','sb_zhangjiao','sb_caocao','sb_zhenji','sb_liubei','sb_daqiao','sb_liubiao','sb_sp_zhugeliang','sb_zhugeliang'],
|
||||||
sb_shi:['sb_xuhuang','sb_machao','sb_fazheng','sb_chengong','sb_diaochan','sb_pangtong','sb_zhanghe'],
|
sb_shi:['sb_xuhuang','sb_machao','sb_fazheng','sb_chengong','sb_diaochan','sb_pangtong','sb_zhanghe'],
|
||||||
sb_tong:['liucheng','sp_yangwan','sb_xiahoushi','sb_zhangfei','sb_zhaoyun','sb_sunce','sb_zhurong','sb_xiaoqiao'],
|
sb_tong:['liucheng','sp_yangwan','sb_xiahoushi','sb_zhangfei','sb_zhaoyun','sb_sunce','sb_zhurong','sb_xiaoqiao'],
|
||||||
sb_yu:['sb_yujin','sb_lvmeng','sb_huangzhong','sb_huanggai','sb_zhouyu','sb_caoren','sb_ganning','sb_yl_luzhi','sb_huangyueying'],
|
sb_yu:['sb_yujin','sb_lvmeng','sb_huangzhong','sb_huanggai','sb_zhouyu','sb_caoren','sb_ganning','sb_yl_luzhi','sb_huangyueying'],
|
||||||
|
@ -61,6 +61,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(get.type2(card)=='trick') return true;
|
if(get.type2(card)=='trick') return true;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
locked:false,
|
||||||
getLimit:3,
|
getLimit:3,
|
||||||
audio:2,
|
audio:2,
|
||||||
enable:'phaseUse',
|
enable:'phaseUse',
|
||||||
|
@ -273,7 +274,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
//诸葛亮
|
//诸葛亮
|
||||||
sbhuoji:{
|
sbhuoji:{
|
||||||
audio:2,
|
audio:3,
|
||||||
|
dutySkill:true,
|
||||||
|
derivation:['sbguanxing','sbkongcheng'],
|
||||||
|
group:['sbhuoji_fire','sbhuoji_achieve','sbhuoji_fail','sbhuoji_mark'],
|
||||||
|
subSkill:{
|
||||||
|
fire:{
|
||||||
|
audio:'sbhuoji1',
|
||||||
enable:'phaseUse',
|
enable:'phaseUse',
|
||||||
filterTarget:lib.filter.notMe,
|
filterTarget:lib.filter.notMe,
|
||||||
prompt:'选择一名其他角色,对其与其势力相同的所有其他角色各造成1点火属性伤害',
|
prompt:'选择一名其他角色,对其与其势力相同的所有其他角色各造成1点火属性伤害',
|
||||||
|
@ -306,11 +313,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
derivation:['sbguanxing','sbkongcheng'],
|
},
|
||||||
group:['sbhuoji_achieve','sbhuoji_fail','sbhuoji_mark'],
|
|
||||||
subSkill:{
|
|
||||||
achieve:{
|
achieve:{
|
||||||
audio:'sbhuoji',
|
audio:'sbhuoji2',
|
||||||
trigger:{player:'phaseZhunbeiBegin'},
|
trigger:{player:'phaseZhunbeiBegin'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return player.getAllHistory('sourceDamage',evt=>evt.hasNature('fire')).reduce((num,evt)=>num+evt.num,0)>=game.players.length+game.dead.length;
|
return player.getAllHistory('sourceDamage',evt=>evt.hasNature('fire')).reduce((num,evt)=>num+evt.num,0)>=game.players.length+game.dead.length;
|
||||||
|
@ -334,7 +339,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
fail:{
|
fail:{
|
||||||
audio:'sbhuoji',
|
audio:'sbhuoji3',
|
||||||
trigger:{player:'dying'},
|
trigger:{player:'dying'},
|
||||||
forced:true,
|
forced:true,
|
||||||
locked:false,
|
locked:false,
|
||||||
|
@ -364,20 +369,30 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
sbhuoji1:{audio:true},
|
||||||
|
sbhuoji2:{audio:true},
|
||||||
|
sbhuoji3:{audio:true},
|
||||||
sbkanpo:{
|
sbkanpo:{
|
||||||
|
init:function(player){
|
||||||
|
if(!player.storage.sbkanpo){
|
||||||
|
player.storage.sbkanpo=[10,[],[]];
|
||||||
|
player.markSkill('sbkanpo');
|
||||||
|
}
|
||||||
|
},
|
||||||
audio:2,
|
audio:2,
|
||||||
trigger:{global:'roundStart'},
|
trigger:{global:'roundStart'},
|
||||||
|
filter:function(event,player){
|
||||||
|
var storage=player.storage.sbkanpo;
|
||||||
|
return storage[0]||storage[1].length;
|
||||||
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
locked:false,
|
locked:false,
|
||||||
get getNumber(){
|
|
||||||
return 3;
|
|
||||||
},
|
|
||||||
content:function*(event,map){
|
content:function*(event,map){
|
||||||
var player=map.player;
|
var player=map.player,storage=player.storage.sbkanpo;
|
||||||
var storage=player.getStorage('sbkanpo').slice();
|
var sum=storage[0];
|
||||||
if(storage.length){
|
storage[1]=[];
|
||||||
player.unmarkAuto('sbkanpo',storage);
|
player.markSkill('sbkanpo');
|
||||||
}
|
if(!sum) return;
|
||||||
const list=get.inpileVCardList(info=>{
|
const list=get.inpileVCardList(info=>{
|
||||||
if(info[2]=='sha'&&info[3]) return false;
|
if(info[2]=='sha'&&info[3]) return false;
|
||||||
return info[0]!='equip';
|
return info[0]!='equip';
|
||||||
|
@ -410,7 +425,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
};
|
};
|
||||||
if(event.isMine()) func();
|
if(event.isMine()) func();
|
||||||
else if(event.isOnline()) event.player.send(func);
|
else if(event.isOnline()) event.player.send(func);
|
||||||
var result=yield player.chooseButton(['看破:是否记录三个牌名?',[list,'vcard']],[1,3],true).set('ai',function(button){
|
var result=yield player.chooseButton(['看破:是否记录至多'+get.cnNumber(sum)+'个牌名?',[list,'vcard']],[1,sum],true).set('ai',function(button){
|
||||||
|
if(ui.selected.buttons.length>=Math.max(3,game.countPlayer()/2)) return 0;
|
||||||
switch(button.link[2]){
|
switch(button.link[2]){
|
||||||
case 'wuxie':return 5+Math.random();
|
case 'wuxie':return 5+Math.random();
|
||||||
case 'sha':return 5+Math.random();
|
case 'sha':return 5+Math.random();
|
||||||
|
@ -426,7 +442,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
}).set('filterButton',button=>{
|
}).set('filterButton',button=>{
|
||||||
return !_status.event.names.includes(button.link[2]);
|
return !_status.event.names.includes(button.link[2]);
|
||||||
}).set('names',storage).set('custom',{
|
}).set('names',storage[2]).set('custom',{
|
||||||
add:{
|
add:{
|
||||||
confirm:function(bool){
|
confirm:function(bool){
|
||||||
if(bool!=true) return;
|
if(bool!=true) return;
|
||||||
|
@ -480,24 +496,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
});
|
});
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
var names=result.links.map(link=>link[2]);
|
var names=result.links.map(link=>link[2]);
|
||||||
player.setStorage('sbkanpo',names);
|
storage[0]-=names.length;
|
||||||
player.markSkill('sbkanpo');
|
storage[1]=names;
|
||||||
|
storage[2]=names;
|
||||||
}
|
}
|
||||||
|
else storage[2]=[];
|
||||||
|
player.markSkill('sbkanpo');
|
||||||
},
|
},
|
||||||
marktext:'破',
|
marktext:'破',
|
||||||
intro:{
|
intro:{
|
||||||
markcount:function(storage,player){
|
markcount:function(storage,player){
|
||||||
if(player.isUnderControl(true)) return storage.length;
|
if(player.isUnderControl(true)) return storage[1].length;
|
||||||
return '?';
|
return '?';
|
||||||
},
|
},
|
||||||
mark:function(dialog,content,player){
|
mark:function(dialog,content,player){
|
||||||
if(player.isUnderControl(true)){
|
if(player.isUnderControl(true)){
|
||||||
const storage=player.getStorage('sbkanpo');
|
const storage=player.getStorage('sbkanpo');
|
||||||
|
const sum=storage[0];
|
||||||
|
const names=storage[1];
|
||||||
|
dialog.addText('剩余可记录'+sum+'次牌名');
|
||||||
|
if(names.length){
|
||||||
dialog.addText('已记录牌名:');
|
dialog.addText('已记录牌名:');
|
||||||
dialog.addSmall([storage,'vcard']);
|
dialog.addSmall([names,'vcard']);
|
||||||
}
|
}
|
||||||
else{
|
|
||||||
return `${get.translation(player)}记录了一些牌名`;
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -534,9 +555,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
logTarget:'player',
|
logTarget:'player',
|
||||||
content:function(){
|
content:function(){
|
||||||
player.unmarkAuto('sbkanpo',[trigger.card.name]);
|
player.storage.sbkanpo[1].remove(trigger.card.name);
|
||||||
|
player.markSkill('sbkanpo');
|
||||||
trigger.targets.length=0;
|
trigger.targets.length=0;
|
||||||
trigger.all_excluded=true;
|
trigger.all_excluded=true;
|
||||||
|
player.draw();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -545,7 +568,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
audio:2,
|
audio:2,
|
||||||
trigger:{player:['phaseZhunbeiBegin','phaseJieshuBegin']},
|
trigger:{player:['phaseZhunbeiBegin','phaseJieshuBegin']},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return event.name=='phaseZhunbei'||(player.hasSkill('sbguanxing_on')&&player.countCards('s',card=>card.hasGaintag('sbguanxing')));
|
var bool=player.hasCards(card=>card.hasGaintag('sbguanxing'),'s');
|
||||||
|
if(event.name=='phaseZhunbei'){
|
||||||
|
var num=player.countMark('sbguanxingx');
|
||||||
|
return bool||num<=3;
|
||||||
|
}
|
||||||
|
return bool&&player.hasSkill('sbguanxing_on');
|
||||||
},
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
locked:false,
|
locked:false,
|
||||||
|
@ -555,16 +583,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
event.goto(2);
|
event.goto(2);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
player.addMark('sbguanxingx',1,false);
|
||||||
var cards=player.getCards('s',card=>card.hasGaintag('sbguanxing'));
|
var cards=player.getCards('s',card=>card.hasGaintag('sbguanxing'));
|
||||||
if(cards.length) player.loseToDiscardpile(cards);
|
if(cards.length) player.loseToDiscardpile(cards);
|
||||||
var bool=player.getAllHistory('useSkill',evt=>evt.skill=='sbguanxing').length>1;
|
var num=player.countMark('sbguanxingx')-1;
|
||||||
event.num=Math.min(7,bool?cards.length+1:7);
|
event.num=Math.max(0,7-2*num);
|
||||||
'step 1'
|
'step 1'
|
||||||
|
if(num){
|
||||||
var cards2=get.cards(num);
|
var cards2=get.cards(num);
|
||||||
player.$gain2(cards2,false);
|
player.$gain2(cards2,false);
|
||||||
game.log(player,'将',cards2,'置于了武将牌上');
|
game.log(player,'将',cards2,'置于了武将牌上');
|
||||||
player.loseToSpecial(cards2,'sbguanxing').visible=true;
|
player.loseToSpecial(cards2,'sbguanxing').visible=true;
|
||||||
player.markSkill('sbguanxing');
|
player.markSkill('sbguanxing');
|
||||||
|
}
|
||||||
'step 2'
|
'step 2'
|
||||||
var cards=player.getCards('s',card=>card.hasGaintag('sbguanxing'));
|
var cards=player.getCards('s',card=>card.hasGaintag('sbguanxing'));
|
||||||
if(cards.length){
|
if(cards.length){
|
||||||
|
@ -675,7 +706,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
marktext:'☯',
|
marktext:'☯',
|
||||||
intro:{
|
intro:{
|
||||||
content:function(storage,player){
|
content:function(storage,player){
|
||||||
if(storage) return '你的回合外,一名角色使用或打出牌结算完成后,若此牌与“任”类别相同,则你可以令一名角色摸一张牌。';
|
if(storage) return '你的回合外,一名角色使用或打出牌结算完成后,若此牌与“任”类别相同,则你可以令一名角色摸两张牌。';
|
||||||
return '出牌阶段限一次,你可以弃置一张与“任”颜色相同的牌并对攻击范围内的一名角色造成1点伤害。';
|
return '出牌阶段限一次,你可以弃置一张与“任”颜色相同的牌并对攻击范围内的一名角色造成1点伤害。';
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -705,7 +736,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
check:function(card){
|
check:function(card){
|
||||||
return 6.5-get.value(card);
|
return 6.5-get.value(card);
|
||||||
},
|
},
|
||||||
prompt:'弃置与攻击范围内的一名角色体力值之差(至少为1)张与“任”颜色相同的牌,对其造成1点伤害。',
|
prompt:'弃置与攻击范围内的一名角色体力值之差(至少为1)张与“任”颜色相同的牌,对其造成1点伤害',
|
||||||
content:function(){
|
content:function(){
|
||||||
player.changeZhuanhuanji('sbzhenliang');
|
player.changeZhuanhuanji('sbzhenliang');
|
||||||
target.damage('nocard');
|
target.damage('nocard');
|
||||||
|
@ -731,7 +762,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
direct:true,
|
direct:true,
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.chooseTarget(get.prompt('sbzhenliang'),'令一名角色摸一张牌').set('ai',function(target){
|
player.chooseTarget(get.prompt('sbzhenliang'),'令一名角色摸两张牌').set('ai',function(target){
|
||||||
if(target.hasSkillTag('nogain')) return 0.1;
|
if(target.hasSkillTag('nogain')) return 0.1;
|
||||||
var att=get.attitude(player,target);
|
var att=get.attitude(player,target);
|
||||||
return att*(Math.max(5-target.countCards('h'),2)+3);
|
return att*(Math.max(5-target.countCards('h'),2)+3);
|
||||||
|
@ -741,7 +772,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var target=result.targets[0];
|
var target=result.targets[0];
|
||||||
player.changeZhuanhuanji('sbzhenliang');
|
player.changeZhuanhuanji('sbzhenliang');
|
||||||
player.logSkill('sbzhenliang',target);
|
player.logSkill('sbzhenliang',target);
|
||||||
target.draw();
|
target.draw(2);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -1096,7 +1127,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
audio:2,
|
audio:2,
|
||||||
trigger:{player:'useCardToPlayered'},
|
trigger:{player:'useCardToPlayered'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return event.targets.length==1&&event.card.name=='sha'&&!player.hasSkillTag('noCompareSource')&&event.target.countCards('h')>0&&!event.target.hasSkillTag('noCompareTarget');
|
return event.targets.length==1&&event.card.name=='sha'&&player.canCompare(event.target,true);
|
||||||
},
|
},
|
||||||
check:function(event,player){
|
check:function(event,player){
|
||||||
return get.attitude(player,event.target)<=0||game.hasPlayer(current=>get.damageEffect(current,player,player)>0);
|
return get.attitude(player,event.target)<=0||game.hasPlayer(current=>get.damageEffect(current,player,player)>0);
|
||||||
|
@ -3963,7 +3994,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
'step 0'
|
'step 0'
|
||||||
trigger.source.chooseBool('樵拾:是否令'+get.translation(player)+'回复'+trigger.num+'点体力,然后你摸两张牌?').set('ai',()=>{
|
trigger.source.chooseBool('樵拾:是否令'+get.translation(player)+'回复'+trigger.num+'点体力,然后你摸两张牌?').set('ai',()=>{
|
||||||
return _status.event.bool;
|
return _status.event.bool;
|
||||||
}).set('bool',get.recoverEffect(player,trigger.source,trigger.source)+get.effect(trigger.source,{name:'wuzhong'},trigger.source)>5);
|
}).set('bool',get.recoverEffect(player,trigger.source,trigger.source)+2*get.effect(trigger.source,{name:'draw'},trigger.source)>5);
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
player.logSkill('sbqiaoshi');
|
player.logSkill('sbqiaoshi');
|
||||||
|
@ -4018,7 +4049,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}).length;
|
}).length;
|
||||||
player.chooseTarget(get.prompt('sbyanyu'),'令一名其他角色摸'+get.cnNumber(event.num)+'张牌',lib.filter.notMe).set('ai',target=>{
|
player.chooseTarget(get.prompt('sbyanyu'),'令一名其他角色摸'+get.cnNumber(event.num)+'张牌',lib.filter.notMe).set('ai',target=>{
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
return get.effect(target,{name:'wuzhong'},player,player);
|
return get.effect(target,{name:'draw'},player,player);
|
||||||
});
|
});
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
|
@ -4446,6 +4477,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sbzhiheng:{
|
sbzhiheng:{
|
||||||
audio:2,
|
audio:2,
|
||||||
audioname:['shen_caopi'],
|
audioname:['shen_caopi'],
|
||||||
|
locked:false,
|
||||||
mod:{
|
mod:{
|
||||||
aiOrder:function(player,card,num){
|
aiOrder:function(player,card,num){
|
||||||
if(num<=0||get.itemtype(card)!=='card'||get.type(card)!=='equip') return num;
|
if(num<=0||get.itemtype(card)!=='card'||get.type(card)!=='equip') return num;
|
||||||
|
@ -4812,7 +4844,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player:function(player){
|
player:function(player){
|
||||||
var num=0,targets=game.filterPlayer(current=>current.hasMark('sbjieyin_mark'));
|
var num=0,targets=game.filterPlayer(current=>current.hasMark('sbjieyin_mark'));
|
||||||
for(var current of targets){
|
for(var current of targets){
|
||||||
num+=get.effect(current,{name:'wuzhong'},player,player);
|
num+=2*get.effect(current,{name:'draw'},player,player);
|
||||||
}
|
}
|
||||||
if(num>0) return 3;
|
if(num>0) return 3;
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -5500,7 +5532,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(player.countMark('sbjiang')) str+='X次。你可以将所有手牌当【决斗】使用(X为场上其他吴势力角色数+1)。';
|
if(player.countMark('sbjiang')) str+='X次。你可以将所有手牌当【决斗】使用(X为场上其他吴势力角色数+1)。';
|
||||||
else str+='一次。你可以将所有手牌当【决斗】使用。';
|
else str+='一次。你可以将所有手牌当【决斗】使用。';
|
||||||
return str;
|
return str;
|
||||||
}
|
},
|
||||||
|
sbzhenliang:function(player){
|
||||||
|
var storage=player.storage.sbzhenliang;
|
||||||
|
var str='转换技。';
|
||||||
|
if(!storage) str+='<span class="bluetext">';
|
||||||
|
str+='阴:出牌阶段限一次,你可以弃置X张与“任”颜色相同的牌并对攻击范围内的一名角色造成1点伤害(X为你与其体力值值差且X至少为1)。';
|
||||||
|
if(!storage) str+='</span>';
|
||||||
|
if(storage) str+='<span class="bluetext">';
|
||||||
|
str+='阳:你的回合外,一名角色使用或打出牌结算完成后,若此牌与“任”类别相同,则你可以令一名角色摸两张牌。';
|
||||||
|
if(storage) str+='</span>';
|
||||||
|
return str;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
translate:{
|
translate:{
|
||||||
sb_zhanghe_prefix:'谋',
|
sb_zhanghe_prefix:'谋',
|
||||||
|
@ -5712,24 +5755,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sb_yl_luzhi:'谋卢植',
|
sb_yl_luzhi:'谋卢植',
|
||||||
sb_yl_luzhi_prefix:'谋',
|
sb_yl_luzhi_prefix:'谋',
|
||||||
sbzhenliang:'贞良',
|
sbzhenliang:'贞良',
|
||||||
sbzhenliang_info:'转换技。阴:出牌阶段限一次,你可以弃置X张与“任”颜色相同的牌并对攻击范围内的一名角色造成1点伤害(X为你与其体力值值差且X至少为1)。阳:你的回合外,一名角色使用或打出牌结算完成后,若此牌与“任”类别相同,则你可以令一名角色摸一张牌。',
|
sbzhenliang_info:'转换技。阴:出牌阶段限一次,你可以弃置X张与“任”颜色相同的牌并对攻击范围内的一名角色造成1点伤害(X为你与其体力值值差且X至少为1)。阳:你的回合外,一名角色使用或打出牌结算完成后,若此牌与“任”类别相同,则你可以令一名角色摸两张牌。',
|
||||||
sb_xiaoqiao:'谋小乔',
|
sb_xiaoqiao:'谋小乔',
|
||||||
sb_xiaoqiao_prefix:'谋',
|
sb_xiaoqiao_prefix:'谋',
|
||||||
sbtianxiang:'天香',
|
sbtianxiang:'天香',
|
||||||
sbtianxiang_info:'①出牌阶段限三次,你可以交给一名没有“天香”标记的其他角色一张红色牌,然后令其获得此牌花色的“天香”标记。②当你受到伤害时,你可以移去一名角色的“天香”标记,若此“天香”标记为:红桃,你防止此伤害,其受到伤害来源对其造成的1点伤害(若没有伤害来源则改为无来源伤害);方片,其交给你两张牌。③准备阶段,你移去场上所有的“天香”标记,然后摸等量的牌。',
|
sbtianxiang_info:'①出牌阶段限三次,你可以交给一名没有“天香”标记的其他角色一张红色牌,然后令其获得此牌花色的“天香”标记。②当你受到伤害时,你可以移去一名角色的“天香”标记,若此“天香”标记为:红桃,你防止此伤害,其受到伤害来源对其造成的1点伤害(若没有伤害来源则改为无来源伤害);方片,其交给你两张牌。③准备阶段,你移去场上所有的“天香”标记,然后摸等量的牌。',
|
||||||
sbtianxiang_info_versus_two:'①出牌阶段限三次,你可以交给一名没有“天香”标记的其他角色一张红色牌,然后令其获得此牌花色的“天香”标记。②当你受到伤害时,你可以移去一名角色的“天香”标记,若此“天香”标记为:红桃,你防止此伤害,其受到伤害来源对其造成的1点伤害(若没有伤害来源则改为无来源伤害);方片,其交给你两张牌。③准备阶段,你移去场上所有的“天香”标记,然后摸X张牌(X为移去的“天香”标记数+2)。',
|
sbtianxiang_info_versus_two:'①出牌阶段限三次,你可以交给一名没有“天香”标记的其他角色一张红色牌,然后令其获得此牌花色的“天香”标记。②当你受到伤害时,你可以移去一名角色的“天香”标记,若此“天香”标记为:红桃,你防止此伤害,其受到伤害来源对其造成的1点伤害(若没有伤害来源则改为无来源伤害);方片,其交给你两张牌。③准备阶段,你移去场上所有的“天香”标记,然后摸X张牌(X为移去的“天香”标记数+2)。',
|
||||||
sb_sp_zhugeliang:'谋诸葛亮',
|
sb_sp_zhugeliang:'谋卧龙',
|
||||||
sb_sp_zhugeliang_prefix:'谋',
|
sb_sp_zhugeliang_prefix:'谋',
|
||||||
sb_zhugeliang:'谋诸葛亮',
|
sb_zhugeliang:'谋诸葛亮',
|
||||||
sb_zhugeliang_prefix:'谋',
|
sb_zhugeliang_prefix:'谋',
|
||||||
sbhuoji:'火计',
|
sbhuoji:'火计',
|
||||||
sbhuoji_info:'使命技。①使命:出牌阶段限一次。你可以对一名其他角色造成1点火焰伤害,然后你对所有与其势力相同的不为其的其他角色各造成1点火焰伤害。②成功:准备阶段,若你本局游戏已造成的火焰伤害不小于本局游戏总角色数,则你失去〖火计〗和〖看破〗,然后获得〖观星〗和〖空城〗。③失败:使命成功前进入濒死状态。',
|
sbhuoji_info:'使命技。①使命:出牌阶段限一次。你可以对一名其他角色造成1点火焰伤害,然后你对所有与其势力相同的不为其的其他角色各造成1点火焰伤害。②成功:准备阶段,若你本局游戏已造成的火焰伤害不小于本局游戏总角色数,则你失去〖火计〗和〖看破〗,然后获得〖观星〗和〖空城〗。③失败:使命成功前进入濒死状态。',
|
||||||
sbkanpo:'看破',
|
sbkanpo:'看破',
|
||||||
sbkanpo_info:'①一轮游戏开始时,你清除〖看破①〗记录的牌名,然后你可以依次记录共计三个未于本次清除过的非装备牌牌名(对其他角色不可见)。②当其他角色使用你〖看破①〗记录过的牌名的牌时,你可以移去一个〖看破①〗中的此牌名的记录,令此牌无效。',
|
sbkanpo_info:'①一轮游戏开始时,你清除〖看破①〗记录的牌名,然后你可以依次记录任意个未于上次发动〖看破①〗记录清除过的非装备牌牌名(对其他角色不可见,每局游戏至多记录10个牌名)。②其他角色使用你〖看破①〗记录过的牌名的牌时,你可以移去一个〖看破①〗中的此牌名的记录令此牌无效,然后你摸一张牌。',
|
||||||
sbguanxing:'观星',
|
sbguanxing:'观星',
|
||||||
sbguanxing_info:'①准备阶段,你将所有“星”置入弃牌堆,将牌堆顶的X张牌置于你的武将牌上,称为“星”。然后你可以将任意张“星”置于牌堆顶(X为你此次移去的“星”数+1且至多为7,若你此前未发动过〖观星①〗则X为7)。②结束阶段,若你未于本回合的准备阶段将“星”置于过牌堆顶,你可以将任意张“星”置于牌堆顶。③你可以如手牌般使用或打出“星”。',
|
sbguanxing_info:'①准备阶段,你将所有“星”置入弃牌堆,将牌堆顶的X张牌置于你的武将牌上,称为“星”(X为7-此前发动〖观星①〗次数的两倍,且X至少为0)。然后你可以将任意张“星”置于牌堆顶。②结束阶段,若你未于本回合的准备阶段将“星”置于过牌堆顶,你可以将任意张“星”置于牌堆顶。③你可以如手牌般使用或打出“星”。',
|
||||||
sbkongcheng:'空城',
|
sbkongcheng:'空城',
|
||||||
sbkongcheng_info:'锁定技。当你受到伤害时,若你有〖观星〗,且若你:有“星”,你判定,若结果点数不大于你的“星”数,此伤害-1;没有“星”,此伤害+1。',
|
sbkongcheng_info:'锁定技。当你受到伤害时,若你拥有技能〖观星〗,且若你:有“星”,你判定,若结果点数不大于你的“星”数,此伤害-1;没有“星”,此伤害+1。',
|
||||||
sb_huangyueying:'谋黄月英',
|
sb_huangyueying:'谋黄月英',
|
||||||
sb_huangyueying_prefix:'谋',
|
sb_huangyueying_prefix:'谋',
|
||||||
sbqicai:'奇才',
|
sbqicai:'奇才',
|
||||||
|
|
|
@ -3439,11 +3439,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
"step 2"
|
"step 2"
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
player.chooseTarget(true,'请选择进行额外回合的目标角色',lib.filter.notMe).ai=function(target){
|
player.chooseTarget(true,'请选择进行额外回合的目标角色',lib.filter.notMe).ai=function(target){
|
||||||
if(target.hasJudge('lebu')) return -1;
|
if(target.hasJudge('lebu')||get.attitude(player,target)<=0) return -1;
|
||||||
if(get.attitude(player,target)>4){
|
if(target.isTurnedOver()) return 0.18;
|
||||||
return get.threaten(target)/Math.sqrt(target.hp+1)/Math.sqrt(target.countCards('h')+1);
|
return get.threaten(target)/Math.sqrt(target.hp+1)/Math.sqrt(target.countCards('h')+1);
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else event.finish();
|
else event.finish();
|
||||||
|
@ -3538,7 +3536,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(player.countCards('h')>player.hp+1){
|
if(player.countCards('h')>player.hp+1){
|
||||||
check=false;
|
check=false;
|
||||||
}
|
}
|
||||||
else if(player.countCards('h',{name:['wuzhong']})){
|
else if(player.countCards('h',{name:'wuzhong'})){
|
||||||
check=false;
|
check=false;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -3665,6 +3663,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ai:{
|
ai:{
|
||||||
effect:{
|
effect:{
|
||||||
target:function(card,player,target,current){
|
target:function(card,player,target,current){
|
||||||
|
if(typeof card==='object'&&get.name(card)==='sha'&&target.mayHaveShan(player,'use')) return [0.6,0.75];
|
||||||
if(!target.hasFriend()&&!player.hasUnknown()) return;
|
if(!target.hasFriend()&&!player.hasUnknown()) return;
|
||||||
if(_status.currentPhase==target) return;
|
if(_status.currentPhase==target) return;
|
||||||
if(card.name!='shuiyanqijunx'&&get.tag(card,'loseCard')&&target.countCards('he')){
|
if(card.name!='shuiyanqijunx'&&get.tag(card,'loseCard')&&target.countCards('he')){
|
||||||
|
@ -3952,8 +3951,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(target.isMin()) return false;
|
if(target.isMin()) return false;
|
||||||
return player!=target&&target.canEquip(card);
|
return player!=target&&target.canEquip(card);
|
||||||
},
|
},
|
||||||
content:function(){
|
async content(event, trigger, player){
|
||||||
target.equip(cards[0]);
|
event.target.equip(event.cards[0]);
|
||||||
player.draw();
|
player.draw();
|
||||||
},
|
},
|
||||||
discard:false,
|
discard:false,
|
||||||
|
@ -4147,6 +4146,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
logTarget:'source',
|
logTarget:'source',
|
||||||
ai:{
|
ai:{
|
||||||
|
maixie_defend:true,
|
||||||
threaten:function(player,target){
|
threaten:function(player,target){
|
||||||
if(target.hp==1) return 0.2;
|
if(target.hp==1) return 0.2;
|
||||||
return 1.5;
|
return 1.5;
|
||||||
|
@ -4154,7 +4154,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
effect:{
|
effect:{
|
||||||
target:function(card,player,target,current){
|
target:function(card,player,target,current){
|
||||||
if(!target.hasFriend()) return;
|
if(!target.hasFriend()) return;
|
||||||
if(target.hp<=1&&get.tag(card,'damage')) return [1,0,0,-2];
|
if(target.hp<=1&&get.tag(card,'damage')){
|
||||||
|
if(player.hasSkillTag('jueqing',false,target)) return 3;
|
||||||
|
return [1,0,0,-3*get.threaten(player)];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4823,7 +4826,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
threaten:2,
|
threaten:2,
|
||||||
ai:{
|
|
||||||
noh:true,
|
noh:true,
|
||||||
skillTagFilter:function(player,tag){
|
skillTagFilter:function(player,tag){
|
||||||
if(tag=='noh'){
|
if(tag=='noh'){
|
||||||
|
@ -4831,7 +4833,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
},
|
},
|
||||||
haoshi2:{
|
haoshi2:{
|
||||||
trigger:{player:'phaseDrawEnd'},
|
trigger:{player:'phaseDrawEnd'},
|
||||||
|
@ -5351,15 +5352,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
wansha2:{
|
wansha2:{
|
||||||
mod:{
|
mod:{
|
||||||
cardSavable:function(card,player){
|
cardSavable:function(card,player){
|
||||||
if(!_status.currentPhase) return;
|
if(card.name=='tao'&&_status.currentPhase&&_status.currentPhase.isIn()&&_status.currentPhase.hasSkill('wansha')&&_status.currentPhase!=player){
|
||||||
if(_status.currentPhase.isIn()&&_status.currentPhase.hasSkill('wansha')&&_status.currentPhase!=player){
|
if(!player.isDying()) return false;
|
||||||
if(card.name=='tao'&&!player.isDying()) return false;
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
cardEnabled:function(card,player){
|
cardEnabled:function(card,player){
|
||||||
if(!_status.currentPhase) return;
|
if(card.name=='tao'&&_status.currentPhase&&_status.currentPhase.isIn()&&_status.currentPhase.hasSkill('wansha')&&_status.currentPhase!=player){
|
||||||
if(_status.currentPhase.isIn()&&_status.currentPhase.hasSkill('wansha')&&_status.currentPhase!=player){
|
if(!player.isDying()) return false;
|
||||||
if(card.name=='tao'&&!player.isDying()) return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -364,7 +364,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
event.list=list;
|
event.list=list;
|
||||||
var num1=0,num2=0,num3=0;
|
var num1=0,num2=0,num3=0;
|
||||||
for(var target of list){
|
for(var target of list){
|
||||||
num1+=get.effect(target,{name:'wuzhong'},player,player);
|
num1+=2*get.effect(target,{name:'draw'},player,player);
|
||||||
num2+=get.recoverEffect(target,player,player);
|
num2+=get.recoverEffect(target,player,player);
|
||||||
}
|
}
|
||||||
trigger.player.chooseControl('摸两张牌','回复体力','cancel2').set('prompt','整肃奖励:请选择'+get.translation(list)+'的整肃奖励').set('ai',function(){
|
trigger.player.chooseControl('摸两张牌','回复体力','cancel2').set('prompt','整肃奖励:请选择'+get.translation(list)+'的整肃奖励').set('ai',function(){
|
||||||
|
@ -437,13 +437,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(result.control=='cancel2'){event.finish();return;}
|
if(result.control=='cancel2'){event.finish();return;}
|
||||||
player.chooseTarget('整军:是否令一名其他角色也回复1点体力或摸两张牌?',lib.filter.notMe).set('ai',function(target){
|
player.chooseTarget('整军:是否令一名其他角色也回复1点体力或摸两张牌?',lib.filter.notMe).set('ai',function(target){
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
return Math.max(get.effect(target,{name:'wuzhong'},target,player),get.recoverEffect(target,target,player));
|
return Math.max(2*get.effect(target,{name:'draw'},target,player),get.recoverEffect(target,target,player));
|
||||||
});
|
});
|
||||||
'step 2'
|
'step 2'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
var target=result.targets[0];
|
var target=result.targets[0];
|
||||||
event.target=target;
|
event.target=target;
|
||||||
var num1=get.effect(target,{name:'wuzhong'},target,player);
|
var num1=2*get.effect(target,{name:'draw'},target,player);
|
||||||
var num2=get.recoverEffect(target,target,player);
|
var num2=get.recoverEffect(target,target,player);
|
||||||
player.line(target);
|
player.line(target);
|
||||||
if(target.isHealthy()) result.index=0;
|
if(target.isHealthy()) result.index=0;
|
||||||
|
@ -1260,7 +1260,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
spxizhan:{
|
spxizhan:{
|
||||||
audio:4,
|
audio:4,
|
||||||
group:'spxizhan_effect',
|
group:'spxizhan_effect',
|
||||||
locked:true,
|
locked:false,
|
||||||
subSkill:{
|
subSkill:{
|
||||||
spfangzong:{charlotte:true},
|
spfangzong:{charlotte:true},
|
||||||
effect:{
|
effect:{
|
||||||
|
@ -2134,7 +2134,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
rechuhai:{
|
rechuhai:{
|
||||||
audio:'chuhai',
|
audio:'chuhai',
|
||||||
dutySkill:true,
|
dutySkill:true,
|
||||||
locked:true,
|
locked:false,
|
||||||
group:['rechuhai_add','rechuhai_achieve','rechuhai_fail','rechuhai_chuhai'],
|
group:['rechuhai_add','rechuhai_achieve','rechuhai_fail','rechuhai_chuhai'],
|
||||||
derivation:'zhangming',
|
derivation:'zhangming',
|
||||||
subSkill:{
|
subSkill:{
|
||||||
|
@ -2276,11 +2276,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
enable:'phaseUse',
|
enable:'phaseUse',
|
||||||
usable:1,
|
usable:1,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return !player.hasSkillTag('noCompareSource');
|
return game.hasPlayer(target=>player.canCompare(target,true));
|
||||||
},
|
},
|
||||||
filterTarget:function(card,player,target){
|
filterTarget:function(card,player,target){
|
||||||
return target!=player&&target.countCards('h')>0&&
|
return player.canCompare(target,true);
|
||||||
!target.hasSkillTag('noCompareTarget');
|
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
|
@ -2715,6 +2714,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
trigger:{player:'useCardAfter'},
|
trigger:{player:'useCardAfter'},
|
||||||
dutySkill:true,
|
dutySkill:true,
|
||||||
forced:true,
|
forced:true,
|
||||||
|
locked:false,
|
||||||
direct:true,
|
direct:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(!player.storage.xingqi||!player.storage.xingqi.length) return false;
|
if(!player.storage.xingqi||!player.storage.xingqi.length) return false;
|
||||||
|
@ -3151,7 +3151,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
qingyu:{
|
qingyu:{
|
||||||
audio:3,
|
audio:3,
|
||||||
dutySkill:true,
|
dutySkill:true,
|
||||||
locked:true,
|
locked:false,
|
||||||
group:['qingyu_achieve','qingyu_fail','qingyu_defend'],
|
group:['qingyu_achieve','qingyu_fail','qingyu_defend'],
|
||||||
subSkill:{
|
subSkill:{
|
||||||
defend:{
|
defend:{
|
||||||
|
@ -5994,7 +5994,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
game.addGlobalSkill('spshanxi_bj');
|
game.addGlobalSkill('spshanxi_bj');
|
||||||
},
|
},
|
||||||
onremove:function(player){
|
onremove:function(player){
|
||||||
game.removeGlobalSkill('spshanxi_bj');
|
if(!game.hasPlayer(current=>current.hasSkill('spshanxi'),true)) game.removeGlobalSkill('spshanxi_bj');
|
||||||
},
|
},
|
||||||
trigger:{player:'phaseUseBegin'},
|
trigger:{player:'phaseUseBegin'},
|
||||||
direct:true,
|
direct:true,
|
||||||
|
|
411
character/sp.js
|
@ -13,12 +13,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_huben:['duanjiong','ol_mengda',"caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng","wuyan","ol_zhuling","tianyu","huojun",'zhaoyǎn','dengzhong','ol_furong','macheng','ol_zhangyì','ol_zhujun','maxiumatie','luoxian','ol_huban','haopu','ol_qianzhao'],
|
sp_huben:['duanjiong','ol_mengda',"caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng","wuyan","ol_zhuling","tianyu","huojun",'zhaoyǎn','dengzhong','ol_furong','macheng','ol_zhangyì','ol_zhujun','maxiumatie','luoxian','ol_huban','haopu','ol_qianzhao'],
|
||||||
sp_liesi:['mizhu','weizi','ol_liuba','zhangshiping'],
|
sp_liesi:['mizhu','weizi','ol_liuba','zhangshiping'],
|
||||||
sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao','sp_ol_zhanghe','sp_menghuo'],
|
sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao','sp_ol_zhanghe','sp_menghuo'],
|
||||||
sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv','jin_zhouchu'],
|
sp_qifu:['ol_feiyi',"caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv','jin_zhouchu'],
|
||||||
sp_wanglang:['ol_wanglang','ol_puyuan','ol_zhouqun'],
|
sp_wanglang:['ol_wanglang','ol_puyuan','ol_zhouqun'],
|
||||||
sp_zhongdan:["cuiyan","huangfusong"],
|
sp_zhongdan:["cuiyan","huangfusong"],
|
||||||
sp_guozhan2:["sp_dongzhuo","liqueguosi","zhangren"],
|
sp_guozhan2:["sp_dongzhuo","liqueguosi","zhangren"],
|
||||||
sp_others:["hanba","caiyang"],
|
sp_others:["hanba","caiyang"],
|
||||||
sp_waitforsort:['ol_luyusheng','ol_pengyang','ol_tw_zhangji','ol_feiyi','ol_dingshangwan','ol_liwan','ol_liuyan'],
|
sp_waitforsort:['ol_luyusheng','ol_pengyang','ol_tw_zhangji','ol_dingshangwan','ol_liwan','ol_liuyan'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
characterFilter:{
|
characterFilter:{
|
||||||
|
@ -1584,7 +1584,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return str+parseFloat(num);
|
return str+parseFloat(num);
|
||||||
},'');
|
},'');
|
||||||
},
|
},
|
||||||
content:'使用点数大于$的普通锦囊牌额外结算一次',
|
content:'使用的下一张点数大于$的普通锦囊牌额外结算一次',
|
||||||
},
|
},
|
||||||
audio:'hezhong',
|
audio:'hezhong',
|
||||||
trigger:{player:'useCard'},
|
trigger:{player:'useCard'},
|
||||||
|
@ -1594,14 +1594,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return typeof num=='number'&&player.getStorage('hezhong_0').some(numx=>num>numx);
|
return typeof num=='number'&&player.getStorage('hezhong_0').some(numx=>num>numx);
|
||||||
},
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
|
usable:1,
|
||||||
content:function(){
|
content:function(){
|
||||||
|
player.unmarkSkill('hezhong_0');
|
||||||
trigger.effectCount++;
|
trigger.effectCount++;
|
||||||
game.log(trigger.card,'额外结算一次');
|
game.log(trigger.card,'额外结算一次');
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
effect:{
|
effect:{
|
||||||
player:function(card,player,target){
|
player:function(card,player,target){
|
||||||
if(card.name=='tiesuo') return 'zerotarget';
|
if(card.name=='tiesuo'&&(!player.storage.counttrigger||!player.storage.counttrigger.hezhong_0)) return 'zerotarget';
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -1618,7 +1620,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return str+parseFloat(num);
|
return str+parseFloat(num);
|
||||||
},'');
|
},'');
|
||||||
},
|
},
|
||||||
content:'使用点数小于$的普通锦囊牌额外结算一次',
|
content:'使用的下一张点数小于$的普通锦囊牌额外结算一次',
|
||||||
},
|
},
|
||||||
audio:'hezhong',
|
audio:'hezhong',
|
||||||
trigger:{player:'useCard'},
|
trigger:{player:'useCard'},
|
||||||
|
@ -1628,14 +1630,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return typeof num=='number'&&player.getStorage('hezhong_1').some(numx=>num<numx);
|
return typeof num=='number'&&player.getStorage('hezhong_1').some(numx=>num<numx);
|
||||||
},
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
|
usable:1,
|
||||||
content:function(){
|
content:function(){
|
||||||
|
player.unmarkSkill('hezhong_1');
|
||||||
trigger.effectCount++;
|
trigger.effectCount++;
|
||||||
game.log(trigger.card,'额外结算一次');
|
game.log(trigger.card,'额外结算一次');
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
effect:{
|
effect:{
|
||||||
player:function(card,player,target){
|
player:function(card,player,target){
|
||||||
if(card.name=='tiesuo') return 'zerotarget';
|
if(card.name=='tiesuo'&&(!player.storage.counttrigger||!player.storage.counttrigger.hezhong_1)) return 'zerotarget';
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -3384,8 +3388,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return !_status.event.sourcex.contains(target)&&player.canUse(_status.event.card,target);
|
return !_status.event.sourcex.contains(target)&&player.canUse(_status.event.card,target);
|
||||||
}).set('sourcex',trigger.targets).set('ai',function(target){
|
}).set('sourcex',trigger.targets).set('ai',function(target){
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
|
if(player.countCards('h')%2==0) return true;
|
||||||
var eff=get.effect(target,_status.event.card,player,player);
|
var eff=get.effect(target,_status.event.card,player,player);
|
||||||
if(player.countCards('h')%2==0&&player.hasSkill('olxieju')&&player.isPhaseUsing()&&!player.getStat().skill.olxieju) return 1-eff;
|
if(player.hasSkill('olxieju')&&player.isPhaseUsing()&&!player.getStat().skill.olxieju&&get.attitude(player,target)>0&&!game.hasGlobalHistory('useCard',evt=>{
|
||||||
|
return evt.targets&&evt.targets.includes(target);
|
||||||
|
})) return 6+eff;
|
||||||
return eff;
|
return eff;
|
||||||
}).set('card',trigger.card);
|
}).set('card',trigger.card);
|
||||||
}
|
}
|
||||||
|
@ -3394,9 +3401,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return _status.event.bool;
|
return _status.event.bool;
|
||||||
}).set('bool',function(){
|
}).set('bool',function(){
|
||||||
var att=get.attitude(trigger.player,player);
|
var att=get.attitude(trigger.player,player);
|
||||||
var eff=get.effect(player,trigger.card,trigger.player,trigger.player);
|
if(player.countCards('h')%2==0){
|
||||||
if(player.countCards('h')%2==0&&att>0) return true;
|
if(att>0) return true;
|
||||||
if(eff>0) return true;
|
return false;
|
||||||
|
}
|
||||||
|
if(get.effect(player,trigger.card,trigger.player,trigger.player)>0) return true;
|
||||||
return false;
|
return false;
|
||||||
}());
|
}());
|
||||||
}
|
}
|
||||||
|
@ -3839,7 +3848,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var fn=function(control){
|
var fn=function(control){
|
||||||
switch(control){
|
switch(control){
|
||||||
case '选项一':
|
case '选项一':
|
||||||
return player.getUseValue({name:'wuzhong'})/2;
|
return player.getUseValue({name:'draw'});
|
||||||
case '选项二':
|
case '选项二':
|
||||||
return Math.max.apply(Math,game.filterPlayer().map(current=>{
|
return Math.max.apply(Math,game.filterPlayer().map(current=>{
|
||||||
if(current.hasSkillTag('noh')) return -1;
|
if(current.hasSkillTag('noh')) return -1;
|
||||||
|
@ -4958,12 +4967,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
olkangrui:{
|
olkangrui:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
init:()=>{
|
||||||
|
game.addGlobalSkill('olkangrui_ai');
|
||||||
|
},
|
||||||
|
onremove:()=>{
|
||||||
|
if(!game.hasPlayer(i=>i.hasSkill('olkangrui'),true)) game.removeGlobalSkill('olkangrui_ai');
|
||||||
|
},
|
||||||
trigger:{global:'damageEnd'},
|
trigger:{global:'damageEnd'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return event.player==_status.currentPhase&&event.player.getHistory('damage').indexOf(event)==0;
|
return event.player==_status.currentPhase&&event.player.getHistory('damage').indexOf(event)==0;
|
||||||
},
|
},
|
||||||
direct:true,
|
direct:true,
|
||||||
global:'olkangrui_ai',
|
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.chooseControl('cancel2').set('choiceList',[
|
player.chooseControl('cancel2').set('choiceList',[
|
||||||
|
@ -5048,6 +5062,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
ai:{
|
||||||
|
trigger:{player:'dieAfter'},
|
||||||
|
filter:()=>{
|
||||||
|
return !game.hasPlayer(i=>i.hasSkill('olkangrui'),true);
|
||||||
|
},
|
||||||
|
silent:true,
|
||||||
|
forceDie:true,
|
||||||
|
content:()=>{
|
||||||
|
game.removeGlobalSkill('olkangrui_ai');
|
||||||
|
},
|
||||||
ai:{
|
ai:{
|
||||||
effect:{
|
effect:{
|
||||||
target:function(card,player,target){
|
target:function(card,player,target){
|
||||||
|
@ -5057,7 +5081,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(!list.length||history.length!=0) return;
|
if(!list.length||history.length!=0) return;
|
||||||
return [1,2];
|
return [1,2];
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -5137,10 +5162,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
return -1.5;
|
return -1.5;
|
||||||
}();
|
}();
|
||||||
if(!isLink && target.mayHaveShan() && !player.hasSkillTag('directHit_ai', true, {
|
if(!isLink && target.mayHaveShan(player,'use') && !player.hasSkillTag('directHit_ai', true, {
|
||||||
target: target,
|
target: target,
|
||||||
card: card
|
card: card
|
||||||
}, true)) return eff / 1.2;
|
}, true)) return eff * 0.6;
|
||||||
return eff;
|
return eff;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -5418,7 +5443,41 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
effect:{
|
effect:{
|
||||||
player:function(card,player,target){
|
player:function(card,player,target){
|
||||||
if((!card.isCard||!card.cards)&&get.itemtype(card)!='card') return;
|
if((!card.isCard||!card.cards)&&get.itemtype(card)!='card') return;
|
||||||
if(target&&player!=target&&player.countCards('h')>player.getHandcardLimit()) return [0,0,0,0.5];
|
let cs=0;
|
||||||
|
if(target&&player!=target&&player.countCards('h',i=>{
|
||||||
|
if(card===i||card.cards&&card.cards.includes(i)){
|
||||||
|
cs++;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
})>player.getHandcardLimit()){
|
||||||
|
let targets=[],evt=_status.event.getParent('useCard');
|
||||||
|
targets.addArray(ui.selected.targets);
|
||||||
|
if(evt&&evt.card==card) targets.addArray(evt.targets);
|
||||||
|
if(targets.length){
|
||||||
|
if(targets.length>1||!targets.includes(target)) return 'zeroplayertarget';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let info=get.info(card);
|
||||||
|
if(!info||info.notarget||!info.filterTarget) return;
|
||||||
|
let range,select=get.copy(info.selectTarget),filter;
|
||||||
|
if(select===undefined) range=[1,1];
|
||||||
|
else if(typeof select==='number') range=[select,select];
|
||||||
|
else if(get.itemtype(select)==='select') range=select;
|
||||||
|
else if(typeof select==='function') range=select(card,player);
|
||||||
|
if(info.singleCard) range=[1,1];
|
||||||
|
game.checkMod(card,player,range,'selectTarget',player);
|
||||||
|
if(range[1]<-1) range=[1, 1];
|
||||||
|
else if(range[0]<0){
|
||||||
|
if(info.filterTarget===true) filter=game.players.length;
|
||||||
|
else filter=game.countPlayer(current=>{
|
||||||
|
return info.filterTarget(card,player,current);
|
||||||
|
});
|
||||||
|
range=[filter,filter];
|
||||||
|
}
|
||||||
|
if(range&&range[0]>1&&range[1]>1) return 'zeroplayertarget';
|
||||||
|
return [0,0,0,1];
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -6895,7 +6954,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
var target=trigger.target;
|
var target=trigger.target;
|
||||||
if(trigger.targets.length>1||target.mayHaveShan()) return 0;
|
if(trigger.targets.length>1||target.mayHaveShan(player,'use')) return 0;
|
||||||
}
|
}
|
||||||
var num=trigger.getParent().baseDamage;
|
var num=trigger.getParent().baseDamage;
|
||||||
var map=trigger.getParent().customArgs,id=target.playerid;
|
var map=trigger.getParent().customArgs,id=target.playerid;
|
||||||
|
@ -9209,7 +9268,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var player=_status.event.player,target=_status.event.getTrigger().player;
|
var player=_status.event.player,target=_status.event.getTrigger().player;
|
||||||
if(target.hasCard(function(card){
|
if(target.hasCard(function(card){
|
||||||
return lib.filter.canBeDiscarded(card,player,target);
|
return lib.filter.canBeDiscarded(card,player,target);
|
||||||
},'he')&&get.effect(target,{name:'guohe_copy2'},player,player)>get.effect(player,{name:'wuzhong'},player,player)/2) return 1;
|
},'he')&&get.effect(target,{name:'guohe_copy2'},player,player)>get.effect(player,{name:'draw'},player,player)) return 1;
|
||||||
return 0;
|
return 0;
|
||||||
});
|
});
|
||||||
'step 1'
|
'step 1'
|
||||||
|
@ -9597,7 +9656,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(num>0) max=Math.max(max,Math.sqrt(Math.min(2,num))*get.effect(target,{name:'guohe_copy2'},player,player));
|
if(num>0) max=Math.max(max,Math.sqrt(Math.min(2,num))*get.effect(target,{name:'guohe_copy2'},player,player));
|
||||||
},
|
},
|
||||||
选项四:function(target){
|
选项四:function(target){
|
||||||
max=Math.max(max,get.effect(target,{name:'wuzhong'},player,player));
|
max=Math.max(max,2*get.effect(target,{name:'draw'},player,player));
|
||||||
},
|
},
|
||||||
}[choice];
|
}[choice];
|
||||||
game.countPlayer(function(current){
|
game.countPlayer(function(current){
|
||||||
|
@ -9628,7 +9687,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}],
|
}],
|
||||||
['选择一名角色,令其摸两张牌',function(target){
|
['选择一名角色,令其摸两张牌',function(target){
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
return get.effect(target,{name:'wuzhong'},player,player);
|
return 2*get.effect(target,{name:'draw'},player,player);
|
||||||
}]
|
}]
|
||||||
][index];
|
][index];
|
||||||
var targets=game.filterPlayer(function(current){
|
var targets=game.filterPlayer(function(current){
|
||||||
|
@ -13082,6 +13141,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
spweiwu:{
|
spweiwu:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
locked:false,
|
||||||
enable:'phaseUse',
|
enable:'phaseUse',
|
||||||
usable:1,
|
usable:1,
|
||||||
viewAs:{
|
viewAs:{
|
||||||
|
@ -14400,12 +14460,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(num>=delta) return 'zeroplayertarget';
|
if(num>=delta) return 'zeroplayertarget';
|
||||||
}
|
}
|
||||||
else if(get.tag(card,'respondShan')>0){
|
else if(get.tag(card,'respondShan')>0){
|
||||||
if(current<0&&used==target.getAttackRange()-1&&target.mayHaveShan()){
|
if(current<0&&used==target.getAttackRange()-1&&target.mayHaveShan(player)){
|
||||||
return 0.6;
|
return 0.6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(get.tag(card,'respondSha')>0){
|
else if(get.tag(card,'respondSha')>0){
|
||||||
if(current<0&&used==target.getAttackRange()-1&&target.mayHaveSha()){
|
if(current<0&&used==target.getAttackRange()-1&&target.mayHaveSha(player)){
|
||||||
return 0.6;
|
return 0.6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15144,17 +15204,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return target!=player;
|
return target!=player;
|
||||||
}).set('ai',function(target){
|
}).set('ai',function(target){
|
||||||
if(target.hasJudge('lebu')) return 0;
|
if(target.hasJudge('lebu')) return 0;
|
||||||
var att=get.attitude(_status.event.player,target);
|
let att=get.attitude(_status.event.player,target),name=_status.event.cards[0].name;
|
||||||
if(att<3) return 0;
|
if(att<3) return 0;
|
||||||
if(target.hasSkillTag('nogain')) att/=10;
|
if(target.hasSkillTag('nogain')) att/=10;
|
||||||
if(target.hasSha()&&_status.event.sha){
|
if(name==='sha'&&target.hasSha()) att/=5;
|
||||||
att/=5;
|
if(name==='wuxie'&&target.needsToDiscard(_status.event.cards)) att/=5;
|
||||||
}
|
|
||||||
if(event.wuxie&&target.needsToDiscard(1)){
|
|
||||||
att/=5;
|
|
||||||
}
|
|
||||||
return att/(1+get.distance(player,target,'absolute'));
|
return att/(1+get.distance(player,target,'absolute'));
|
||||||
}).set('sha',trigger.cards[0].name=='sha').set('wuxie',trigger.cards[0].name=='wuxie');
|
}).set('cards',trigger.cards);
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
player.logSkill('yingyuan',result.targets[0]);
|
player.logSkill('yingyuan',result.targets[0]);
|
||||||
|
@ -15228,19 +15284,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(_status.event.du) return -get.value(card,player,'raw');
|
if(_status.event.du) return -get.value(card,player,'raw');
|
||||||
else if(_status.event.shuimeng){
|
else if(_status.event.shuimeng){
|
||||||
if(cardname=='wuzhong'){
|
if(cardname=='wuzhong'){
|
||||||
if(player.needsToDiscard(2-ui.selected.cards.length)){
|
if(player.needsToDiscard(2,(i,player)=>{
|
||||||
return 10-get.value(card,player,'raw');
|
return !ui.selected.cards.includes(i)&&!player.canIgnoreHandcard(i);
|
||||||
}
|
})) return 10-get.value(card,player,'raw');
|
||||||
}
|
}
|
||||||
else if(cardname=='guohe'){
|
else if(cardname=='guohe'){
|
||||||
if(player.needsToDiscard(-1-ui.selected.cards.length)){
|
if(player.needsToDiscard(-1,(i,player)=>{
|
||||||
return 10-get.value(card,player,'raw');
|
return !ui.selected.cards.includes(i)&&!player.canIgnoreHandcard(i);
|
||||||
}
|
})) return 10-get.value(card,player,'raw');
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else if(cardname=='lebu'){
|
else if(cardname=='lebu'){
|
||||||
if(player.needsToDiscard(1-ui.selected.cards.length)){
|
if(player.needsToDiscard(1,(i,player)=>{
|
||||||
|
return !ui.selected.cards.includes(i)&&!player.canIgnoreHandcard(i);
|
||||||
|
})){
|
||||||
return 8-get.value(card,player,'raw');
|
return 8-get.value(card,player,'raw');
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -17420,9 +17478,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return 20-num;
|
return 20-num;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if(_status.event.player.needsToDiscard()){
|
if(_status.event.player.needsToDiscard()) return 7-num;
|
||||||
return 7-num;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
},
|
},
|
||||||
|
@ -19976,7 +20032,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
var ideitity=result.links[0];
|
var identity=result.links[0];
|
||||||
player.addSkill(identity);
|
player.addSkill(identity);
|
||||||
player.markSkill('fenxin');
|
player.markSkill('fenxin');
|
||||||
}
|
}
|
||||||
|
@ -21110,6 +21166,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
kunfen:{
|
kunfen:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
audioname:['ol_sb_jiangwei'],
|
||||||
trigger:{player:'phaseJieshuBegin'},
|
trigger:{player:'phaseJieshuBegin'},
|
||||||
locked:function(skill,player){
|
locked:function(skill,player){
|
||||||
if(!player||!player.storage.kunfen) return true;
|
if(!player||!player.storage.kunfen) return true;
|
||||||
|
@ -24326,102 +24383,25 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"xinfu_xionghuo":{
|
xinfu_xionghuo:{
|
||||||
group:["xinfu_xionghuo_damage","xinfu_xionghuo_begin","xinfu_xionghuo_init"],
|
|
||||||
subSkill:{
|
|
||||||
begin:{
|
|
||||||
audio:'xinfu_xionghuo',
|
|
||||||
logTarget:'player',
|
|
||||||
line:false,
|
|
||||||
forced:true,
|
|
||||||
trigger:{
|
|
||||||
global:"phaseUseBegin",
|
|
||||||
},
|
|
||||||
filter:function (event,player){
|
|
||||||
return event.player.countMark('xionghuo')>0&&event.player!=player;
|
|
||||||
},
|
|
||||||
content:function (){
|
|
||||||
'step 0'
|
|
||||||
trigger.player.removeMark('xionghuo',trigger.player.countMark('xionghuo'));
|
|
||||||
var list=[1,2,3];
|
|
||||||
var num=list.randomGet();
|
|
||||||
event.goto(num);
|
|
||||||
'step 1'
|
|
||||||
player.line(trigger.player,'fire');
|
|
||||||
trigger.player.damage('fire');
|
|
||||||
if(!trigger.player.storage.xionghuo_disable) trigger.player.storage.xionghuo_disable=[];
|
|
||||||
trigger.player.storage.xionghuo_disable.push(player);
|
|
||||||
trigger.player.addTempSkill('xionghuo_disable','phaseAfter');
|
|
||||||
event.goto(4);
|
|
||||||
'step 2'
|
|
||||||
player.line(trigger.player,'water');
|
|
||||||
trigger.player.loseHp();
|
|
||||||
trigger.player.addMark('xionghuo_low',1,false);
|
|
||||||
trigger.player.addTempSkill('xionghuo_low','phaseAfter');
|
|
||||||
event.goto(4);
|
|
||||||
'step 3'
|
|
||||||
player.line(trigger.player,'green');
|
|
||||||
var card1=trigger.player.getCards('h').randomGet();
|
|
||||||
var card2=trigger.player.getCards('e').randomGet();
|
|
||||||
var list=[];
|
|
||||||
if(card1) list.push(card1);
|
|
||||||
if(card2) list.push(card2);
|
|
||||||
if(list.length>0){
|
|
||||||
player.gain(list,trigger.player,'giveAuto','bySelf');
|
|
||||||
}
|
|
||||||
'step 4'
|
|
||||||
game.delay();
|
|
||||||
},
|
|
||||||
},
|
|
||||||
damage:{
|
|
||||||
audio:"xinfu_xionghuo",
|
|
||||||
sub:true,
|
|
||||||
forced:true,
|
|
||||||
trigger:{
|
|
||||||
source:"damageBegin1",
|
|
||||||
},
|
|
||||||
filter:function (event,player){
|
|
||||||
return event.player.countMark('xionghuo')>0&&event.player!=player;
|
|
||||||
},
|
|
||||||
content:function (){
|
|
||||||
trigger.num++;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
init:{
|
|
||||||
audio:'xinfu_xionghuo',
|
|
||||||
trigger:{
|
|
||||||
global:"phaseBefore",
|
|
||||||
player:"enterGame",
|
|
||||||
},
|
|
||||||
forced:true,
|
|
||||||
locked:false,
|
|
||||||
filter:function(event,player){
|
|
||||||
return (event.name!='phase'||game.phaseNumber==0);
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
player.addMark("xionghuo",3);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
audio:2,
|
audio:2,
|
||||||
enable:"phaseUse",
|
enable:'phaseUse',
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return player.countMark('xionghuo')>0;
|
return player.countMark('xinfu_xionghuo')>0;
|
||||||
},
|
},
|
||||||
filterTarget:function(card,player,target){
|
filterTarget:function(card,player,target){
|
||||||
if(target.hasMark('xionghuo')) return false;
|
return player!=target&&!target.hasMark('xinfu_xionghuo');
|
||||||
return player!=target>0;
|
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
player.removeMark('xionghuo',1);
|
player.removeMark('xinfu_xionghuo',1);
|
||||||
target.addMark('xionghuo',1);
|
target.addMark('xinfu_xionghuo',1);
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
order:11,
|
order:11,
|
||||||
result:{
|
result:{
|
||||||
target:function(player,target){
|
target:function(player,target){
|
||||||
if((player.countMark('xionghuo')>=2||!game.hasPlayer(function(current){
|
if((player.countMark('xinfu_xionghuo')>=2||!game.hasPlayer(function(current){
|
||||||
return current!=player&&get.attitude(player,current)<0&¤t.hasMark('xionghuo');
|
return current!=player&&get.attitude(player,current)<0&¤t.hasMark('xinfu_xionghuo');
|
||||||
}))&&player.countCards('h',function(card){
|
}))&&player.countCards('h',function(card){
|
||||||
return get.tag(card,'damage')&&player.canUse(card,target,null,true)
|
return get.tag(card,'damage')&&player.canUse(card,target,null,true)
|
||||||
&&player.getUseValue(card)>0&&get.effect_use(target,card,player)>0
|
&&player.getUseValue(card)>0&&get.effect_use(target,card,player)>0
|
||||||
|
@ -24432,7 +24412,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
})) return 3/Math.max(1,target.hp);
|
})) return 3/Math.max(1,target.hp);
|
||||||
if((!player.hasUnknown()&&game.countPlayer(function(current){
|
if((!player.hasUnknown()&&game.countPlayer(function(current){
|
||||||
return get.attitude(player,current)<0;
|
return get.attitude(player,current)<0;
|
||||||
})<=1)||player.countMark('xionghuo')>=2){
|
})<=1)||player.countMark('xinfu_xionghuo')>=2){
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -24440,7 +24420,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
effect:{
|
effect:{
|
||||||
player:function(card,player,target){
|
player:function(card,player,target){
|
||||||
if(player!=target&&get.tag(card,'damage')&&target&&target.hasMark('xionghuo')&&!target.hasSkillTag('filterDamage',null,{
|
if(player!=target&&get.tag(card,'damage')&&target&&target.hasMark('xinfu_xionghuo')&&!target.hasSkillTag('filterDamage',null,{
|
||||||
player:player,
|
player:player,
|
||||||
card:card,
|
card:card,
|
||||||
})) return [1,0,1,-2];
|
})) return [1,0,1,-2];
|
||||||
|
@ -24448,63 +24428,124 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
threaten:1.6,
|
threaten:1.6,
|
||||||
},
|
},
|
||||||
},
|
marktext:'戾',
|
||||||
xionghuo:{
|
|
||||||
marktext:"戾",
|
|
||||||
intro:{
|
intro:{
|
||||||
name:'暴戾',
|
name:'暴戾',
|
||||||
content:"mark",
|
content:'mark',
|
||||||
},
|
},
|
||||||
locked:true,
|
group:['xinfu_xionghuo_init','xinfu_xionghuo_damage','xinfu_xionghuo_effect'],
|
||||||
},
|
subSkill:{
|
||||||
"xionghuo_disable":{
|
init:{
|
||||||
mod:{
|
audio:'xinfu_xionghuo',
|
||||||
playerEnabled:function (card,player,target){
|
|
||||||
if(card.name=='sha'&&(player.storage.xionghuo_disable&&player.storage.xionghuo_disable.contains(target))) return false;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
onremove:true,
|
|
||||||
charlotte:true,
|
|
||||||
mark:true,
|
|
||||||
marktext:"禁",
|
|
||||||
intro:{
|
|
||||||
content:"本回合内不能对$使用【杀】",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"xionghuo_low":{
|
|
||||||
mod:{
|
|
||||||
maxHandcard:function (player,num){
|
|
||||||
return num-player.countMark('xionghuo_low');
|
|
||||||
},
|
|
||||||
},
|
|
||||||
marktext:"减",
|
|
||||||
mark:true,
|
|
||||||
onremove:true,
|
|
||||||
charlotte:true,
|
|
||||||
intro:{
|
|
||||||
content:"本回合内手牌上限-#",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"xinfu_shajue":{
|
|
||||||
audio:2,
|
|
||||||
trigger:{
|
trigger:{
|
||||||
global:"dying",
|
global:"phaseBefore",
|
||||||
|
player:'enterGame',
|
||||||
},
|
},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return event.player.hp<0&&event.player!=player;
|
return event.name!='phase'||game.phaseNumber==0;
|
||||||
},
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
//priority:7,
|
locked:false,
|
||||||
content:function(){
|
content:function(){
|
||||||
if(trigger.parent.name=='damage'&&get.itemtype(trigger.parent.cards)=='cards'&&get.position(trigger.parent.cards[0],true)=='o'){
|
player.addMark('xinfu_xionghuo',3);
|
||||||
player.gain(trigger.parent.cards,"gain2");
|
},
|
||||||
|
},
|
||||||
|
damage:{
|
||||||
|
audio:"xinfu_xionghuo",
|
||||||
|
trigger:{source:'damageBegin1'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.player.countMark('xinfu_xionghuo')>0&&event.player!=player;
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
locked:false,
|
||||||
|
logTarget:'player',
|
||||||
|
content:function(){
|
||||||
|
trigger.num++;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
effect:{
|
||||||
|
audio:'xinfu_xionghuo',
|
||||||
|
trigger:{global:'phaseUseBegin'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.player.countMark('xinfu_xionghuo')>0&&event.player!=player;
|
||||||
|
},
|
||||||
|
line:false,
|
||||||
|
forced:true,
|
||||||
|
locked:false,
|
||||||
|
logTarget:'player',
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
trigger.player.removeMark('xinfu_xionghuo',trigger.player.countMark('xinfu_xionghuo'));
|
||||||
|
'step 1'
|
||||||
|
var num=get.rand(0,2);
|
||||||
|
switch(num){
|
||||||
|
case 0:
|
||||||
|
player.line(trigger.player,'fire');
|
||||||
|
trigger.player.damage('fire');
|
||||||
|
trigger.player.addTempSkill('xinfu_xionghuo_disable');
|
||||||
|
trigger.player.markAuto('xinfu_xionghuo_disable',[player]);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
player.line(trigger.player,'water');
|
||||||
|
trigger.player.loseHp();
|
||||||
|
trigger.player.addMark('xinfu_xionghuo_low',1,false);
|
||||||
|
trigger.player.addTempSkill('xinfu_xionghuo_low');
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
player.line(trigger.player,'green');
|
||||||
|
var card1=trigger.player.getCards('h').randomGet();
|
||||||
|
var card2=trigger.player.getCards('e').randomGet();
|
||||||
|
var list=[];
|
||||||
|
if(card1) list.push(card1);
|
||||||
|
if(card2) list.push(card2);
|
||||||
|
if(list.length) player.gain(list,trigger.player,'giveAuto','bySelf');
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
player.addMark('xionghuo',1);
|
'step 2'
|
||||||
|
game.delay();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
xinfu_jianjie:{
|
disable:{
|
||||||
audio:3,
|
mod:{
|
||||||
|
playerEnabled:function (card,player,target){
|
||||||
|
if(card.name=='sha'&&player.getStorage('xinfu_xionghuo_disable').includes(target)) return false;
|
||||||
},
|
},
|
||||||
|
},
|
||||||
|
charlotte:true,
|
||||||
|
onremove:true,
|
||||||
|
mark:true,
|
||||||
|
marktext:'禁',
|
||||||
|
intro:{content:'不能对$使用【杀】'},
|
||||||
|
},
|
||||||
|
low:{
|
||||||
|
mod:{
|
||||||
|
maxHandcard:function (player,num){
|
||||||
|
return num-player.countMark('xinfu_xionghuo_low');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
charlotte:true,
|
||||||
|
onremove:true,
|
||||||
|
mark:true,
|
||||||
|
marktext:'减',
|
||||||
|
intro:{content:'手牌上限-#'},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
xinfu_shajue:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{global:'dying'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.player!=player;
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
content:function(){
|
||||||
|
player.addMark('xinfu_xionghuo',1);
|
||||||
|
if(trigger.player.hp<0&&get.itemtype(trigger.parent.cards)=='cards'&&get.position(trigger.parent.cards[0],true)=='o'){
|
||||||
|
player.gain(trigger.parent.cards,'gain2');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
xinfu_jianjie:{audio:3},
|
||||||
jianjie:{
|
jianjie:{
|
||||||
group:["jianjie_use","jianjie_die"],
|
group:["jianjie_use","jianjie_die"],
|
||||||
derivation:['jianjie_huoji','jianjie_lianhuan','jianjie_yeyan'],
|
derivation:['jianjie_huoji','jianjie_lianhuan','jianjie_yeyan'],
|
||||||
|
@ -24550,6 +24591,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
game.delayx();
|
game.delayx();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
ai:{
|
||||||
|
threaten:3,
|
||||||
|
},
|
||||||
hasMark:(mark,player,target)=>{
|
hasMark:(mark,player,target)=>{
|
||||||
if(!target) return player.getStorage('jianjie_'+mark).length>0;
|
if(!target) return player.getStorage('jianjie_'+mark).length>0;
|
||||||
return target.getStorage('jianjie_'+mark).contains(player);
|
return target.getStorage('jianjie_'+mark).contains(player);
|
||||||
|
@ -24623,17 +24667,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expose:0.4,
|
expose:0.4,
|
||||||
threaten:3,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
die:{
|
die:{
|
||||||
audio:'xinfu_jianjie',
|
audio:'xinfu_jianjie',
|
||||||
trigger:{global:'die'},
|
trigger:{global:'die'},
|
||||||
forced:true,
|
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
const skill=lib.skill.jianjie;
|
const skill=lib.skill.jianjie;
|
||||||
return skill.hasMark('huoji',player,event.player)||skill.hasMark('lianhuan',player,event.player);
|
return skill.hasMark('huoji',player,event.player)||skill.hasMark('lianhuan',player,event.player);
|
||||||
},
|
},
|
||||||
|
forced:true,
|
||||||
|
logTarget:'player',
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
if(lib.skill.jianjie.hasMark('huoji',player,trigger.player)){
|
if(lib.skill.jianjie.hasMark('huoji',player,trigger.player)){
|
||||||
|
@ -24641,7 +24685,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return get.attitude(get.player(),target);
|
return get.attitude(get.player(),target);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else event.goto(3);
|
else event.goto(2);
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
var target=result.targets[0];
|
var target=result.targets[0];
|
||||||
|
@ -24666,7 +24710,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
game.delayx();
|
game.delayx();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
logTarget:'player',
|
|
||||||
},
|
},
|
||||||
huoji:{
|
huoji:{
|
||||||
marktext:'龙',
|
marktext:'龙',
|
||||||
|
@ -25477,16 +25520,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
"lingren_xingshang_info":"当有角色死亡后,你可以选择一项:1.回复1点体力。2.获得该角色的所有牌。",
|
"lingren_xingshang_info":"当有角色死亡后,你可以选择一项:1.回复1点体力。2.获得该角色的所有牌。",
|
||||||
"xinfu_fujian":"伏间",
|
"xinfu_fujian":"伏间",
|
||||||
"xinfu_fujian_info":"锁定技,结束阶段开始时,你观看一名随机的其他角色的随机X张手牌。(X为场上手牌最少的角色的手牌数)",
|
"xinfu_fujian_info":"锁定技,结束阶段开始时,你观看一名随机的其他角色的随机X张手牌。(X为场上手牌最少的角色的手牌数)",
|
||||||
"xinfu_xionghuo":"凶镬",
|
xinfu_xionghuo:'凶镬',
|
||||||
"xinfu_xionghuo_info":"游戏开始时,你获得3个“暴戾”标记。出牌阶段,你可以交给一名其他角色一个“暴戾”标记,你对有“暴戾”标记的其他角色造成伤害时,此伤害+1。有“暴戾”的其他角色的出牌阶段开始时,其移去所有“暴戾”标记并随机执行一项:1.受到1点火焰伤害且本回合不能对你使用【杀】;2.失去1点体力且本回合手牌上限-1;3.你随机获得其一张手牌和一张装备区的牌。",
|
xinfu_xionghuo_info:'游戏开始时,你获得3个“暴戾”标记。出牌阶段,你可以交给一名其他角色一个“暴戾”标记。当你对有“暴戾”标记的其他角色造成伤害时,此伤害+1。有“暴戾”标记的其他角色的出牌阶段开始时,其移去所有“暴戾”标记并随机执行一项:1.受到1点火焰伤害且本回合不能对你使用【杀】;2.失去1点体力且本回合手牌上限-1;3.你随机获得其一张手牌和一张装备区的牌。',
|
||||||
xionghuo:"凶镬",
|
xinfu_shajue:'杀绝',
|
||||||
"xionghuo_info":"",
|
xinfu_shajue_info:'锁定技,其他角色进入濒死状态时,你获得一个“暴戾”标记。然后若其体力值小于0,你获得使其进入濒死状态的牌。',
|
||||||
"xionghuo_disable":"凶镬",
|
|
||||||
"xionghuo_disable_info":"",
|
|
||||||
"xionghuo_low":"凶镬",
|
|
||||||
"xionghuo_low_info":"",
|
|
||||||
"xinfu_shajue":"杀绝",
|
|
||||||
"xinfu_shajue_info":"锁定技,其他角色进入濒死状态时,若其体力值小于0,则你获得一个“暴戾”标记,并获得使其进入濒死状态的牌。",
|
|
||||||
xinfu_jianjie:"荐杰",
|
xinfu_jianjie:"荐杰",
|
||||||
jianjie:'荐杰',
|
jianjie:'荐杰',
|
||||||
jianjie_info:'①你的第一个准备阶段开始时,你令一名其他角色获得“龙印”,然后令另一名其他角色获得“凤印”。②出牌阶段限一次。若当前回合不是你的第一个回合,则你可以移动场上的“龙印”或“凤印”。③拥有“龙印”或“凤印”的其他角色死亡时,你转移该角色的“龙印”和“凤印”。④拥有“龙印”/“凤印”的角色视为拥有〖火计〗/〖连环〗,且同时拥有这两种标记的角色视为拥有〖业炎〗。',
|
jianjie_info:'①你的第一个准备阶段开始时,你令一名其他角色获得“龙印”,然后令另一名其他角色获得“凤印”。②出牌阶段限一次。若当前回合不是你的第一个回合,则你可以移动场上的“龙印”或“凤印”。③拥有“龙印”或“凤印”的其他角色死亡时,你转移该角色的“龙印”和“凤印”。④拥有“龙印”/“凤印”的角色视为拥有〖火计〗/〖连环〗,且同时拥有这两种标记的角色视为拥有〖业炎〗。',
|
||||||
|
@ -26649,7 +26686,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
yanru:'宴如',
|
yanru:'宴如',
|
||||||
yanru_info:'出牌阶段各限一次,若你的手牌数为:①奇数,你可以摸三张牌,然后弃置至少一半手牌(向下取整);②偶数,你可以弃置至少一半手牌,然后摸三张牌。',
|
yanru_info:'出牌阶段各限一次,若你的手牌数为:①奇数,你可以摸三张牌,然后弃置至少一半手牌(向下取整);②偶数,你可以弃置至少一半手牌,然后摸三张牌。',
|
||||||
hezhong:'和衷',
|
hezhong:'和衷',
|
||||||
hezhong_info:'每回合每项限一次,当你的手牌数变为1后,你可以展示此唯一手牌A并摸一张牌,然后你选择一项:①本回合使用点数大于A的点数的普通锦囊牌额外结算一次;②本回合使用点数小于A的点数的普通锦囊牌额外结算一次。',
|
hezhong_info:'每回合每项限一次,当你的手牌数变为1后,你可以展示唯一手牌并摸一张牌,然后你选择一项:①本回合使用的下一张点数大于此牌的点数的普通锦囊牌额外结算一次;②本回合使用的下一张点数小于此牌的点数的普通锦囊牌额外结算一次。',
|
||||||
lvboshe:'吕伯奢',
|
lvboshe:'吕伯奢',
|
||||||
olfushi:'缚豕',
|
olfushi:'缚豕',
|
||||||
olfushi_info:'①一名角色使用【杀】结算结束后,若你至其的距离不大于1,你将此【杀】对应的所有实体牌置于武将牌上。②当你需要使用一张【杀】时,你可以将任意张“缚豕”牌置入弃牌堆并摸等量的牌,视为使用一张【杀】并选择X项(X为你以此法重铸的牌数且至多为3):1.你为此【杀】额外指定一个目标;2.你选择此【杀】的一个目标角色,此牌对其造成的伤害-1;3.你选择此【杀】的一个目标角色,此【杀】对其造成的伤害+1。当此【杀】指定最后一个目标后,若此牌被选择的效果选项相邻且此牌的目标角色座位连续,则此【杀】不计入次数限制。',
|
olfushi_info:'①一名角色使用【杀】结算结束后,若你至其的距离不大于1,你将此【杀】对应的所有实体牌置于武将牌上。②当你需要使用一张【杀】时,你可以将任意张“缚豕”牌置入弃牌堆并摸等量的牌,视为使用一张【杀】并选择X项(X为你以此法重铸的牌数且至多为3):1.你为此【杀】额外指定一个目标;2.你选择此【杀】的一个目标角色,此牌对其造成的伤害-1;3.你选择此【杀】的一个目标角色,此【杀】对其造成的伤害+1。当此【杀】指定最后一个目标后,若此牌被选择的效果选项相邻且此牌的目标角色座位连续,则此【杀】不计入次数限制。',
|
||||||
|
|
211
character/sp2.js
|
@ -4,6 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
name:'sp2',
|
name:'sp2',
|
||||||
connect:true,
|
connect:true,
|
||||||
character:{
|
character:{
|
||||||
|
star_dongzhuo:['male','qun',5,['starweilin','starzhangrong','starhaoshou'],['zhu']],
|
||||||
star_yuanshu:['male','qun',4,['starcanxi','starpizhi','starzhonggu'],['zhu']],
|
star_yuanshu:['male','qun',4,['starcanxi','starpizhi','starzhonggu'],['zhu']],
|
||||||
star_caoren:['male','wei',4,['starsujun','starlifeng']],
|
star_caoren:['male','wei',4,['starsujun','starlifeng']],
|
||||||
mp_liuling:['male','jin',3,['mpjiusong','mpmaotao','mpbishi'],['doublegroup:wei:qun:jin']],
|
mp_liuling:['male','jin',3,['mpjiusong','mpmaotao','mpbishi'],['doublegroup:wei:qun:jin']],
|
||||||
|
@ -109,12 +110,180 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_xuzhou:['re_taoqian','caosong','zhangmiao','qiuliju'],
|
sp_xuzhou:['re_taoqian','caosong','zhangmiao','qiuliju'],
|
||||||
sp_zhongyuan:['re_hucheer','re_zoushi','caoanmin','re_dongcheng'],
|
sp_zhongyuan:['re_hucheer','re_zoushi','caoanmin','re_dongcheng'],
|
||||||
sp_xiaohu:['haomeng','yanfuren','yanrou','dc_zhuling'],
|
sp_xiaohu:['haomeng','yanfuren','yanrou','dc_zhuling'],
|
||||||
sp_star:['star_caoren','star_yuanshu'],
|
sp_star:['star_caoren','star_yuanshu','star_dongzhuo'],
|
||||||
mini_qixian:['mp_liuling'],
|
mini_qixian:['mp_liuling'],
|
||||||
sp_decade:['caobuxing','re_maliang','dc_jikang'],
|
sp_decade:['caobuxing','re_maliang','dc_jikang'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//星董卓
|
||||||
|
starweilin:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{source:'damageBegin1'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return !event.player.getHistory('damage').length&&player.getHistory('useCard').length>=event.player.getHp();
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
logTarget:'player',
|
||||||
|
content:function(){
|
||||||
|
trigger.num++;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
starzhangrong:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'phaseZhunbeiBegin'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.getHp()>0;
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
content:function*(event,map){
|
||||||
|
var player=map.player;
|
||||||
|
var str=get.cnNumber(player.getHp());
|
||||||
|
var choiceList=[
|
||||||
|
'令至多'+str+'名体力值大于等于你的角色各失去1点体力',
|
||||||
|
'令至多'+str+'名手牌数大于等于你的角色各弃置一张手牌',
|
||||||
|
],list=['cancel2'];
|
||||||
|
if(game.hasPlayer(target=>{
|
||||||
|
if(target==player) return player.countCards('h',card=>lib.filter.cardDiscardable(card,player));
|
||||||
|
return target.countCards('h')>=Math.max(1,player.countCards('h'));
|
||||||
|
})) list.unshift('弃牌');
|
||||||
|
else choiceList[1]='<span style="opacity:0.5">'+choiceList[1]+'</span>';
|
||||||
|
list.unshift('扣血');
|
||||||
|
var result=yield player.chooseControl(list).set('prompt','###'+get.prompt('starzhangrong')+'###选择其中一项令任意名符合条件的角色执行,然后你摸等量的牌,回合结束时,若这些角色中有本回合未受到过伤害的角色,则你失去1点体力').set('ai',()=>{
|
||||||
|
var player=_status.event.player;
|
||||||
|
var controls=_status.event.controls.slice();
|
||||||
|
/*
|
||||||
|
var cards=player.getCards('hes',card=>get.tag(card,'damage')&&player.hasValueTarget(card));
|
||||||
|
var cardx=cards.filter(card=>get.name(card)=='sha');
|
||||||
|
cardx.sort((a,b)=>player.getUseValue(b)-player.getUseValue(a));
|
||||||
|
cardx=cardx.slice(Math.min(cardx.length,player.getCardUsable('sha')),cardx.length);
|
||||||
|
cards.removeArray(cardx);
|
||||||
|
*/
|
||||||
|
var targets1=game.filterPlayer(target=>get.attitude(player,target)<0&&target.getHp()>=player.getHp()&&get.effect(target,{name:'losehp'},player,player)>0/*&&cards.some(card=>player.canUse(card,target))*/);
|
||||||
|
_status.starzhangrong_check=true;
|
||||||
|
var targets2=game.filterPlayer(target=>get.attitude(player,target)<0&&target.countCards('h')>=Math.max(1,player.countCards('h'))&&get.effect(target,{name:'guohe_copy2'},player,player)>0/*&&cards.some(card=>player.canUse(card,target))*/);
|
||||||
|
delete _status.starzhangrong_check;
|
||||||
|
[targets1,targets2].forEach(list=>{
|
||||||
|
list.sort((a,b)=>get.damageEffect(b)-get.damageEffect(a));
|
||||||
|
list=list.slice(0,Math.min(player.getHp()/*,cards.length*/));
|
||||||
|
});
|
||||||
|
if(!controls.includes('弃牌')) return 1-get.sgn(targets1.length);
|
||||||
|
return Math.max(0,get.sgn(targets2.length-targets1.length));
|
||||||
|
}).set('choiceList',choiceList);
|
||||||
|
if(result.control!='cancel2'){
|
||||||
|
var choice=result.index;
|
||||||
|
var result2=yield player.chooseTarget([1,player.getHp()],'请选择【掌戎】的目标','令至多'+str+'名'+(choice?'手牌数':'体力值')+'大于你的角色各'+(choice?'弃置一张手牌':'失去1点体力'),(card,player,target)=>{
|
||||||
|
var name=_status.event.card.name;
|
||||||
|
if(name=='guohe_copy2'){
|
||||||
|
if(target==player) return player.countCards('h',card=>lib.filter.cardDiscardable(card,player));
|
||||||
|
return target.countCards('h')>=Math.max(1,player.countCards('h'));
|
||||||
|
}
|
||||||
|
return target.getHp()>=player.getHp();
|
||||||
|
}).set('ai',target=>{
|
||||||
|
var player=_status.event.player;
|
||||||
|
if(get.attitude(player,target)>=0) return 0;
|
||||||
|
return get.effect(target,_status.event.card,player,player);
|
||||||
|
}).set('card',{name:choice?'guohe_copy2':'losehp'});
|
||||||
|
if(result2.bool){
|
||||||
|
var targets=result2.targets.sortBySeat();
|
||||||
|
player.logSkill('starzhangrong',targets);
|
||||||
|
targets.forEach(target=>{
|
||||||
|
target.addTempSkill('starzhangrong_threaten');
|
||||||
|
if(choice) target.chooseToDiscard('h',true);
|
||||||
|
else target.loseHp();
|
||||||
|
});
|
||||||
|
player.draw(targets.length);
|
||||||
|
player.when('phaseEnd').then(()=>{
|
||||||
|
targets.forEach(target=>target.removeSkill('starzhangrong_threaten'));
|
||||||
|
var targetx=targets.filter(target=>!target.getHistory('damage').length);
|
||||||
|
if(targetx.length){
|
||||||
|
targetx.forEach(target=>target.chat('乐'));
|
||||||
|
player.popup('杯具');
|
||||||
|
player.loseHp();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
player.popup('洗具');
|
||||||
|
}).vars({targets:targets});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
global:'starzhangrong_check',
|
||||||
|
subSkill:{
|
||||||
|
check:{
|
||||||
|
mod:{
|
||||||
|
canBeDiscarded:function(card,player,target){
|
||||||
|
if(!_status.starzhangrong_check) return;
|
||||||
|
if(player.hasSkill('starzhangrong')&&get.position(card)!='h') return false;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
threaten:{
|
||||||
|
charlotte:true,
|
||||||
|
trigger:{player:'damageEnd'},
|
||||||
|
firstDo:true,
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
content:function(){
|
||||||
|
player.removeSkill('starzhangrong_threaten');
|
||||||
|
},
|
||||||
|
ai:{threaten:114514+1919810},
|
||||||
|
mark:true,
|
||||||
|
markimage:'image/card/sha.png',
|
||||||
|
intro:{content:'我还没受到伤害哟!'},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
starhaoshou:{
|
||||||
|
unique:true,
|
||||||
|
audio:2,
|
||||||
|
trigger:{global:'useCardAfter'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.player!=player&&event.card.name=='jiu'&&player.isDamaged()&&event.player.group=='qun';
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
zhuSkill:true,
|
||||||
|
content:function*(event,map){
|
||||||
|
var player=map.player,target=map.trigger.player;
|
||||||
|
var result=yield target.chooseBool(get.prompt('starhaoshou',player),'令'+get.translation(player)+'回复1点体力').set('choice',get.recoverEffect(player,target,target)>0);
|
||||||
|
if(result.bool){
|
||||||
|
target.line(player);
|
||||||
|
player.logSkill('starhaoshou');
|
||||||
|
player.recover();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//global:'starhaoshou_global',
|
||||||
|
subSkill:{
|
||||||
|
global:{
|
||||||
|
audio:'starhaoshou',
|
||||||
|
forceaudio:true,
|
||||||
|
filter:function(event,player){
|
||||||
|
if(!player.countCards('hes',card=>{
|
||||||
|
if(get.position(card)=='h'&&_status.connectMode) return true;
|
||||||
|
return get.name(card)=='jiu';
|
||||||
|
})) return false;
|
||||||
|
return event.type=='dying'&&event.dying&&event.dying!=player&&event.dying.hp<=0&&event.dying.hasZhuSkill('starhaoshou')&&player.group=='qun';
|
||||||
|
},
|
||||||
|
filterCard:function(card,player){
|
||||||
|
return get.name(card)=='jiu';
|
||||||
|
},
|
||||||
|
check:()=>1,
|
||||||
|
viewAs:{name:'tao'},
|
||||||
|
position:'hes',
|
||||||
|
prompt:function(){
|
||||||
|
return '将一张【酒】当作【桃】对'+get.translation(_status.event.dying)+'使用';
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
save:true,
|
||||||
|
skillTagFilter:function(player,arg,target){
|
||||||
|
if(!player.countCards('hes',card=>{
|
||||||
|
if(get.position(card)=='h'&&_status.connectMode) return true;
|
||||||
|
return get.name(card)=='jiu';
|
||||||
|
})||player==target||!target.hasSkill('starhaoshou')||player.group!='qun') return false;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
//星袁术
|
//星袁术
|
||||||
starcanxi:{
|
starcanxi:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -531,6 +700,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
audio: 'juexiang',
|
audio: 'juexiang',
|
||||||
trigger: { player: 'die' },
|
trigger: { player: 'die' },
|
||||||
forced: true,
|
forced: true,
|
||||||
|
locked:false,
|
||||||
forceDie: true,
|
forceDie: true,
|
||||||
skillAnimation: true,
|
skillAnimation: true,
|
||||||
animationColor: 'water',
|
animationColor: 'water',
|
||||||
|
@ -627,6 +797,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
audio:2,
|
audio:2,
|
||||||
|
locked:false,
|
||||||
trigger:{player:'phaseUseBegin'},
|
trigger:{player:'phaseUseBegin'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return player.countCards('h');
|
return player.countCards('h');
|
||||||
|
@ -752,7 +923,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}).set('ai',function(button){
|
}).set('ai',function(button){
|
||||||
var target=_status.event.target;
|
var target=_status.event.target;
|
||||||
return [
|
return [
|
||||||
get.effect(target,{name:'wuzhong'},player,player)/2,
|
get.effect(target,{name:'draw'},player,player),
|
||||||
get.effect(target,{name:'shunshou_copy2'},player,player),
|
get.effect(target,{name:'shunshou_copy2'},player,player),
|
||||||
get.recoverEffect(target,player,player),
|
get.recoverEffect(target,player,player),
|
||||||
][button.link];
|
][button.link];
|
||||||
|
@ -2191,6 +2362,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
//胡班
|
//胡班
|
||||||
dcchongyi:{
|
dcchongyi:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
init:()=>{
|
||||||
|
game.addGlobalSkill('dcchongyi_ai');
|
||||||
|
},
|
||||||
|
onremove:()=>{
|
||||||
|
if(!game.hasPlayer(i=>i.hasSkill('dcchongyi'),true)) game.removeGlobalSkill('dcchongyi_ai');
|
||||||
|
},
|
||||||
trigger:{global:'useCard'},
|
trigger:{global:'useCard'},
|
||||||
logTarget:'player',
|
logTarget:'player',
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
|
@ -2216,7 +2393,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
target.addTempSkill('dcchongyi_sha');
|
target.addTempSkill('dcchongyi_sha');
|
||||||
},
|
},
|
||||||
group:'dcchongyi_end',
|
group:'dcchongyi_end',
|
||||||
global:'dcchongyi_ai',
|
|
||||||
subSkill:{
|
subSkill:{
|
||||||
ai:{
|
ai:{
|
||||||
mod:{
|
mod:{
|
||||||
|
@ -2232,6 +2408,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
})) return num+10;
|
})) return num+10;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
trigger:{player:'dieAfter'},
|
||||||
|
filter:()=>{
|
||||||
|
return !game.hasPlayer(i=>i.hasSkill('dcchongyi'),true);
|
||||||
|
},
|
||||||
|
silent:true,
|
||||||
|
forceDie:true,
|
||||||
|
content:()=>{
|
||||||
|
game.removeGlobalSkill('dcchongyi_ai');
|
||||||
|
}
|
||||||
},
|
},
|
||||||
end:{
|
end:{
|
||||||
audio:'dcchongyi',
|
audio:'dcchongyi',
|
||||||
|
@ -4830,7 +5015,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
})) return 3;
|
})) return 3;
|
||||||
return Math.sqrt(target.countCards('he'));
|
return Math.sqrt(target.countCards('he'));
|
||||||
}
|
}
|
||||||
if(target.mayHaveShan()&&player.countCards('hs',function(card){
|
if(target.mayHaveShan(player,'use')&&player.countCards('hs',function(card){
|
||||||
return !ui.selected.cards.contains(card)&&get.name(card)=='sha'&&player.canUse(card,target)&&get.effect(target,card,player,player)!=0;
|
return !ui.selected.cards.contains(card)&&get.name(card)=='sha'&&player.canUse(card,target)&&get.effect(target,card,player,player)!=0;
|
||||||
})) return -Math.sqrt(Math.abs(get.attitude(player,target)))/2;
|
})) return -Math.sqrt(Math.abs(get.attitude(player,target)))/2;
|
||||||
return 0.1;
|
return 0.1;
|
||||||
|
@ -5162,7 +5347,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.addSkill('mouni2');
|
player.addSkill('mouni2');
|
||||||
player.chooseTarget(get.prompt2('mouni'),lib.filter.notMe).set('ai',function(target){
|
player.chooseTarget(get.prompt2('mouni'),lib.filter.notMe).set('ai',function(target){
|
||||||
var player=_status.event.player,cards=player.getCards('h','sha');
|
var player=_status.event.player,cards=player.getCards('h','sha');
|
||||||
if(get.attitude(player,target)>=0||!player.canUse(cards[0],target,false)||(!player.hasJudge('lebu')&&target.mayHaveShan()&&!player.hasSkillTag('directHit_ai',true,{
|
if(get.attitude(player,target)>=0||!player.canUse(cards[0],target,false)||(!player.hasJudge('lebu')&&target.mayHaveShan(player,'use')&&!player.hasSkillTag('directHit_ai',true,{
|
||||||
target:target,
|
target:target,
|
||||||
card:cards[0],
|
card:cards[0],
|
||||||
},true))) return 0;
|
},true))) return 0;
|
||||||
|
@ -8067,8 +8252,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.chooseTarget(get.prompt2('yechou'),function(card,player,target){
|
player.chooseTarget(get.prompt2('yechou'),function(card,player,target){
|
||||||
return player!=target&&target.getDamagedHp()>1
|
return player!=target&&target.getDamagedHp()>1
|
||||||
}).set('forceDie',true).set('ai',function(target){
|
}).set('forceDie',true).set('ai',function(target){
|
||||||
var num=get.attitude(_status.event.player,target);
|
let att=get.attitude(_status.event.player,target);
|
||||||
return -num;
|
if(att>0) return 0;
|
||||||
|
att=Math.sqrt(0.01-att);
|
||||||
|
return att*(get.distance(_status.currentPhase,target,'absolute')||game.players.length);
|
||||||
});
|
});
|
||||||
"step 1"
|
"step 1"
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
|
@ -8080,6 +8267,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
expose:0.5,
|
expose:0.5,
|
||||||
|
maixie_defend:true
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"yechou2":{
|
"yechou2":{
|
||||||
|
@ -10989,6 +11177,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
starpizhi_info:'锁定技。①一名角色死亡后,若你拥有该角色对应的“玺角”标记,你失去之并摸X张牌。②结束阶段,你摸X张牌。(X为你本局游戏失去的“玺角”标记数)',
|
starpizhi_info:'锁定技。①一名角色死亡后,若你拥有该角色对应的“玺角”标记,你失去之并摸X张牌。②结束阶段,你摸X张牌。(X为你本局游戏失去的“玺角”标记数)',
|
||||||
starzhonggu:'冢骨',
|
starzhonggu:'冢骨',
|
||||||
starzhonggu_info:'主公技,锁定技。摸牌阶段,若游戏轮数大于等于场上的群势力角色数,则你额外摸两张牌,否则你少摸一张牌。',
|
starzhonggu_info:'主公技,锁定技。摸牌阶段,若游戏轮数大于等于场上的群势力角色数,则你额外摸两张牌,否则你少摸一张牌。',
|
||||||
|
star_dongzhuo:'星董卓',
|
||||||
|
star_dongzhuo_prefix:'星',
|
||||||
|
starweilin:'威临',
|
||||||
|
starweilin_info:'锁定技。当你于回合内对一名其他角色造成伤害时,若其本回合未受到过伤害,且你本回合使用的牌数大于等于其体力值,则此伤害+1。',
|
||||||
|
starzhangrong:'掌戎',
|
||||||
|
starzhangrong_info:'准备阶段,你可以选择令至多X名体力值大于等于你的角色各失去1点体力或令至多X名手牌数大于等于你的角色各弃置一张手牌。若如此做,你摸等同于选择角色数的牌,且本回合结束时,若这些角色中存在本回合未受到过伤害的角色,则你失去1点体力。',
|
||||||
|
starhaoshou:'豪首',
|
||||||
|
//starhaoshou_info:'主公技。①其他群势力角色使用【酒】结算完毕后,其可以令你回复1点体力。②当你处于濒死状态时,其他群势力角色可以将【酒】当作【桃】对你使用。',
|
||||||
|
starhaoshou_info:'主公技。其他群势力角色使用【酒】结算完毕后,其可以令你回复1点体力。。',
|
||||||
|
|
||||||
sp_whlw:"文和乱武",
|
sp_whlw:"文和乱武",
|
||||||
sp_zlzy:"逐鹿中原",
|
sp_zlzy:"逐鹿中原",
|
||||||
|
|
459
character/swd.js
|
@ -9766,292 +9766,291 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
swd_xiaohuanglong:'小黄龙',
|
swd_xiaohuanglong:'小黄龙',
|
||||||
|
|
||||||
cyshuiyun:'水云',
|
cyshuiyun:'水云',
|
||||||
cyshuiyun_info:'准备阶段,你可以弃置一名其他角色的一张牌;每当你失去此技能,你可以弃置一名其他角色的一张牌',
|
cyshuiyun_info:'准备阶段,你可以弃置一名其他角色的一张牌;每当你失去此技能,你可以弃置一名其他角色的一张牌。',
|
||||||
cyliuzi:'流紫',
|
cyliuzi:'流紫',
|
||||||
cyliuzi_info:'摸牌阶段,你可以额外摸一张牌;每当你失去此技能,你可以摸一张牌',
|
cyliuzi_info:'摸牌阶段,你可以额外摸一张牌;每当你失去此技能,你可以摸一张牌。',
|
||||||
cyyijin:'异金',
|
cyyijin:'异金',
|
||||||
cyyijin_info:'出牌阶段,你可以对一名体力值为全场最多的角色造成1点伤害;每当你失去此技能,你可以对一名体力值为全场最多的角色造成1点伤害',
|
cyyijin_info:'出牌阶段,你可以对一名体力值为全场最多的角色造成1点伤害;每当你失去此技能,你可以对一名体力值为全场最多的角色造成1点伤害。',
|
||||||
cyqingling:'青凌',
|
cyqingling:'青凌',
|
||||||
cyqingling_info:'弃牌阶段,若你弃置了至少一张牌,你可以获得1点护甲;每当你失去此技能,你可以获得1点护甲',
|
cyqingling_info:'弃牌阶段,若你弃置了至少一张牌,你可以获得1点护甲;每当你失去此技能,你可以获得1点护甲。',
|
||||||
cyqiandian:'千靛',
|
cyqiandian:'千靛',
|
||||||
cyqiandian_info:'结束阶段,你可以视为使用一张惊雷闪;每当你失去此技能,你可以视为使用一张惊雷闪',
|
cyqiandian_info:'结束阶段,你可以视为使用一张惊雷闪;每当你失去此技能,你可以视为使用一张惊雷闪。',
|
||||||
gxianyin:'仙音',
|
gxianyin:'仙音',
|
||||||
gxianyin_info:'出牌阶段限一次,你可以选择一种花色,将你的手牌中该花色的牌移至弃牌堆,然后选择另一种花色,从牌堆中获得等量的该花色的牌',
|
gxianyin_info:'出牌阶段限一次,你可以选择一种花色,将你的手牌中该花色的牌移至弃牌堆,然后选择另一种花色,从牌堆中获得等量的该花色的牌。',
|
||||||
// gxianyin_info_alter:'',
|
// gxianyin_info_alter:'',
|
||||||
cyxianjiang:'仙匠',
|
cyxianjiang:'仙匠',
|
||||||
cyxianjiang_info:'每当你使用一张牌指定惟一目标时,你可以复制对方装备区内的一张你没有的牌,并置入你的装备区,每回合对一名角色最多发动一次',
|
cyxianjiang_info:'每当你使用一张牌指定惟一目标时,你可以复制对方装备区内的一张你没有的牌,并置入你的装备区,每回合对一名角色最多发动一次。',
|
||||||
cyqiaoxie:'巧械',
|
cyqiaoxie:'巧械',
|
||||||
cyqiaoxie_info:'每当你失去一张装备牌(使用除外),你可以随机观看三张机关牌,并使用其中一张',
|
cyqiaoxie_info:'每当你失去一张装备牌(使用除外),你可以随机观看三张机关牌,并使用其中一张。',
|
||||||
cyqiaoxie_info_alter:'每当你装备一件装备,若你的手牌数不大于体力值,你可以摸一张牌;每当你失去一件装备牌,你可以随机观看2张机关牌,并使用其中一张',
|
cyqiaoxie_info_alter:'每当你装备一件装备,若你的手牌数不大于体力值,你可以摸一张牌;每当你失去一件装备牌,你可以随机观看2张机关牌,并使用其中一张。',
|
||||||
cyzhencha:'侦察',
|
cyzhencha:'侦察',
|
||||||
cyzhencha_info:'出牌阶段限一次,若你的装备区内的可强化装备,你可以弃置一张基本牌并观看一名其他角色的手牌,若其中有与你弃置的牌颜色相同的牌,你随机升级装备区内的一件装备,否则你摸一张牌;你根据装备区内升级的装备数获得额外技能',
|
cyzhencha_info:'出牌阶段限一次,若你的装备区内的可强化装备,你可以弃置一张基本牌并观看一名其他角色的手牌,若其中有与你弃置的牌颜色相同的牌,你随机升级装备区内的一件装备,否则你摸一张牌;你根据装备区内升级的装备数获得额外技能。',
|
||||||
cylingjia:'灵甲',
|
cylingjia:'灵甲',
|
||||||
cylingjia_info:'出牌阶段限一次,你可以弃置一张装备牌,然后令云狐随机装备一件装备(不替换现有装备)并将其强化',
|
cylingjia_info:'出牌阶段限一次,你可以弃置一张装备牌,然后令云狐随机装备一件装备(不替换现有装备)并将其强化。',
|
||||||
cyqiaobo:'巧补',
|
cyqiaobo:'巧补',
|
||||||
cyqiaobo_info:'出牌阶段限一次,你可以弃置一张锦囊牌,然后令云狐回复1点体力',
|
cyqiaobo_info:'出牌阶段限一次,你可以弃置一张锦囊牌,然后令云狐回复1点体力。',
|
||||||
cqiaoxie:'巧械',
|
cqiaoxie:'巧械',
|
||||||
cqiaoxie_info:'出牌阶段限一次,你可以将一张锦囊牌当作零件袋使用;每当你使用一张零件牌,你获得1点技能点数',
|
cqiaoxie_info:'出牌阶段限一次,你可以将一张锦囊牌当作零件袋使用;每当你使用一张零件牌,你获得1点技能点数。',
|
||||||
xiufu:'修复',
|
xiufu:'修复',
|
||||||
xiufu_info:'出牌阶段,你可以弃置一张装备牌或机关牌,令云狐回复1点体力',
|
xiufu_info:'出牌阶段,你可以弃置一张装备牌或机关牌,令云狐回复1点体力。',
|
||||||
yhshengong:'神工',
|
yhshengong:'神工',
|
||||||
yhshengong_info:'游戏开始时,你获得3点技能点数;每当你造成1点伤害,你获得1点技能点数;出牌阶段,你可以通过消耗技能点令云狐获得新的技能(云狐体力为0时无法学习或发动技能)',
|
yhshengong_info:'游戏开始时,你获得3点技能点数;每当你造成1点伤害,你获得1点技能点数;出牌阶段,你可以通过消耗技能点令云狐获得新的技能(云狐体力为0时无法学习或发动技能)。',
|
||||||
juxi:'聚息',
|
juxi:'聚息',
|
||||||
juxi_info:'锁定技,每当一名角色于其回合外弃置牌,你获得一枚聚息标记;出牌阶段限一次,你可以移去X枚聚息标记,然后选择一项:对一名角造成1点伤害,或令一名角色回复1点体力,X为存活角色数',
|
juxi_info:'锁定技,每当一名角色于其回合外弃置牌,你获得一枚聚息标记;出牌阶段限一次,你可以移去X枚聚息标记,然后选择一项:对一名角造成1点伤害,或令一名角色回复1点体力,X为存活角色数。',
|
||||||
yeying:'曳影',
|
yeying:'曳影',
|
||||||
yeying_info:'出牌阶段限一次,你可以将一张黑色牌当作乾坤镖使用',
|
yeying_info:'出牌阶段限一次,你可以将一张黑色牌当作乾坤镖使用。',
|
||||||
jiefen:'解纷',
|
jiefen:'解纷',
|
||||||
jiefen_info:'出牌阶段限一次,你可以令一名手牌数多于你的角色交给你一张牌,然后你交给一名手牌数少于你的角色一张牌',
|
jiefen_info:'出牌阶段限一次,你可以令一名手牌数多于你的角色交给你一张牌,然后你交给一名手牌数少于你的角色一张牌。',
|
||||||
datong:'大同',
|
datong:'大同',
|
||||||
datong_info:'任意一名角色的结束阶段,若全场手牌数最多和最少的角色手牌数之差不超过1,你摸两张牌',
|
datong_info:'任意一名角色的结束阶段,若全场手牌数最多和最少的角色手牌数之差不超过1,你摸两张牌。',
|
||||||
huodan:'火丹',
|
huodan:'火丹',
|
||||||
huodan_info:'出牌阶段限一次,你可以弃置一张红色牌并失去1点体力,然后将2点火属性伤害分配给1~2名角色',
|
huodan_info:'出牌阶段限一次,你可以弃置一张红色牌并失去1点体力,然后将2点火属性伤害分配给1~2名角色。',
|
||||||
huodan_info_alter:'出牌阶段限一次,你可以弃置一张红色牌并失去1点体力,然后将2点火属性伤害分配给1~2名角色;若你只分配了一名角色,该角色在结算后摸一张牌',
|
huodan_info_alter:'出牌阶段限一次,你可以弃置一张红色牌并失去1点体力,然后将2点火属性伤害分配给1~2名角色;若你只分配了一名角色,该角色在结算后摸一张牌。',
|
||||||
sxianjing:'陷阱',
|
sxianjing:'陷阱',
|
||||||
sxianjing_bg:'阱',
|
sxianjing_bg:'阱',
|
||||||
sxianjing_info:'出牌阶段,你可以将一张手牌背面朝上置于你的武将牌上(不能与已有花色相同)。当一名其他角色使用与一张“陷阱”牌花色相同的牌指定你为目标时,你移去对应的“陷阱”牌,然后随机获得该角色的一张牌。每当你受到一次伤害,你随机将一张“陷阱”牌返回手牌',
|
sxianjing_info:'出牌阶段,你可以将一张手牌背面朝上置于你的武将牌上(不能与已有花色相同)。当一名其他角色使用与一张“陷阱”牌花色相同的牌指定你为目标时,你移去对应的“陷阱”牌,然后随机获得该角色的一张牌。每当你受到一次伤害,你随机将一张“陷阱”牌返回手牌。',
|
||||||
zhanxing:'占星',
|
zhanxing:'占星',
|
||||||
zhanxing_info:'出牌阶段限一次,你可以弃置任意张牌,并亮出牌堆顶的等量的牌,并根据亮出的牌包含的花色执行以下效果:♦︎摸两张牌;♥回复1点体力(若未损失体力改为获得1点护甲);♣令所有敌人随机弃置一张牌;♠令一名角色受到1点无来源的雷属性伤害',
|
zhanxing_info:'出牌阶段限一次,你可以弃置任意张牌,并亮出牌堆顶的等量的牌,并根据亮出的牌包含的花色执行以下效果:♦︎摸两张牌;♥回复1点体力(若未损失体力改为获得1点护甲);♣令所有敌人随机弃置一张牌;♠令一名角色受到1点无来源的雷属性伤害。',
|
||||||
kbolan:'博览',
|
kbolan:'博览',
|
||||||
kbolan_info:'每当你摸牌时,你可以额外摸一张牌,然后摸牌结束时将一张手牌置于牌堆顶',
|
kbolan_info:'每当你摸牌时,你可以额外摸一张牌,然后摸牌结束时将一张手牌置于牌堆顶。',
|
||||||
gaizao:'改造',
|
gaizao:'改造',
|
||||||
gaizao_info:'每当你即将装备一张牌(特殊类装备除外),若你的装备区内对应位置已有牌,你可以永久改变此牌的装备类型使其装备在装备区内的空余位置',
|
gaizao_info:'每当你即将装备一张牌(特殊类装备除外),若你的装备区内对应位置已有牌,你可以永久改变此牌的装备类型使其装备在装备区内的空余位置。',
|
||||||
lingshi:'灵矢',
|
lingshi:'灵矢',
|
||||||
lingshi_info:'你的装备区内每有一张牌,你的攻击范围+2;当你的装备区内有武器牌或防具牌时,你的杀不可闪避;当你的装备区内有马时,你摸牌阶段额外摸一张牌;当你的装备内的宝物牌时,你回合内可以额外使用一张杀',
|
lingshi_info:'你的装备区内每有一张牌,你的攻击范围+2;当你的装备区内有武器牌或防具牌时,你的杀不可闪避;当你的装备区内有马时,你摸牌阶段额外摸一张牌;当你的装备内的宝物牌时,你回合内可以额外使用一张杀。',
|
||||||
tiebi:'铁壁',
|
tiebi:'铁壁',
|
||||||
tiebi_info:'当距离你1以内的一名角色成为杀的目标时,若其没有护甲,你可以弃置一张黑色手牌使其获得1点护甲',
|
tiebi_info:'当距离你1以内的一名角色成为杀的目标时,若其没有护甲,你可以弃置一张黑色手牌使其获得1点护甲。',
|
||||||
shenyan:'神炎',
|
shenyan:'神炎',
|
||||||
shenyan_bg:'炎',
|
shenyan_bg:'炎',
|
||||||
shenyan_info:'限定技,当你即将造成火焰伤害时,你可以令此伤害+1,并对目标距离1以内的所有其他角色各造成1点火焰伤害',
|
shenyan_info:'限定技,当你即将造成火焰伤害时,你可以令此伤害+1,并对目标距离1以内的所有其他角色各造成1点火焰伤害。',
|
||||||
xuanying:'旋影',
|
xuanying:'旋影',
|
||||||
xuanying_info:'你可以横置你的武将牌,视为使用一张无视距离的杀;每当你于回合外失去牌,你可以竖置你的武将牌,视为使用一张无视距离的杀',
|
xuanying_info:'你可以横置你的武将牌,视为使用一张无视距离的杀;每当你于回合外失去牌,你可以竖置你的武将牌,视为使用一张无视距离的杀。',
|
||||||
hwendao:'问道',
|
hwendao:'问道',
|
||||||
hwendao_info:'每当你于回合外使用或打出一张牌,你可以令当前回合角色弃置一张与之花色相同的牌,否则你获得其一张牌',
|
hwendao_info:'每当你于回合外使用或打出一张牌,你可以令当前回合角色弃置一张与之花色相同的牌,否则你获得其一张牌。',
|
||||||
lingfeng:'凌锋',
|
lingfeng:'凌锋',
|
||||||
lingfeng_info:'结束阶段,若你本回合内使用了至少X张牌,你可以选择一项:获得1点护甲,或对攻击范围内的一名角色造成1点伤害(X为你当前的体力值且最多为3)',
|
lingfeng_info:'结束阶段,若你本回合内使用了至少X张牌,你可以选择一项:获得1点护甲,或对攻击范围内的一名角色造成1点伤害(X为你当前的体力值且最多为3)。',
|
||||||
hxunzhi:'殉志',
|
hxunzhi:'殉志',
|
||||||
hxunzhi_info:'限定技,出牌阶段,你可以视为使用一张万箭齐发并获得技能武圣、咆哮,若如此做,你在此阶段结束时死亡',
|
hxunzhi_info:'限定技,出牌阶段,你可以视为使用一张万箭齐发并获得技能武圣、咆哮,若如此做,你在此阶段结束时死亡。',
|
||||||
hxunzhi_info_alter:'限定技,出牌阶段,你可以获得技能武圣、咆哮,若如此做,你在此阶段结束时死亡',
|
hxunzhi_info_alter:'限定技,出牌阶段,你可以获得技能武圣、咆哮,若如此做,你在此阶段结束时死亡。',
|
||||||
lmazui:'麻醉',
|
lmazui:'麻醉',
|
||||||
lmazui2:'麻醉',
|
lmazui2:'麻醉',
|
||||||
lmazui_info:'出牌阶段限一次,你可以将一张黑色手牌置于一名角色的武将牌上,该角色造成的下一次伤害-1,然后获得此牌',
|
lmazui_info:'出牌阶段限一次,你可以将一张黑色手牌置于一名角色的武将牌上,该角色造成的下一次伤害-1,然后获得此牌。',
|
||||||
hyunshen:'云身',
|
hyunshen:'云身',
|
||||||
hyunshen2:'云身',
|
hyunshen2:'云身',
|
||||||
hyunshen_info:'每当你打出一张闪,你可以令你的防御距离+1;准备阶段,你将累计的防御距离清零,然后摸等量的牌',
|
hyunshen_info:'每当你打出一张闪,你可以令你的防御距离+1;准备阶段,你将累计的防御距离清零,然后摸等量的牌。',
|
||||||
hlingbo:'凌波',
|
hlingbo:'凌波',
|
||||||
hlingbo_info:'每当你使用或打出一张闪,你可以摸两张牌',
|
hlingbo_info:'每当你使用或打出一张闪,你可以摸两张牌。',
|
||||||
gtiandao:'天道',
|
gtiandao:'天道',
|
||||||
gtiandao_info:'任意一名角色的判定生效前,你可以打出一张牌替换之',
|
gtiandao_info:'任意一名角色的判定生效前,你可以打出一张牌替换之。',
|
||||||
nlianji:'连计',
|
nlianji:'连计',
|
||||||
nlianji_info:'出牌阶段限一次,你可以选择一张手牌并指定两名角色进行拼点。若拼点结果不为平局,拼点赢的角色获得此牌,并对没赢的角色造成1点伤害。',
|
nlianji_info:'出牌阶段限一次,你可以选择一张手牌并指定两名角色进行拼点。若拼点结果不为平局,拼点赢的角色获得此牌,并对没赢的角色造成1点伤害。',
|
||||||
fengze:'风泽',
|
fengze:'风泽',
|
||||||
fengze_info:'出牌阶段限一次,你可以将一张黑色牌当作桃园结义使用',
|
fengze_info:'出牌阶段限一次,你可以将一张黑色牌当作桃园结义使用。',
|
||||||
lingyue:'凌月',
|
lingyue:'凌月',
|
||||||
lingyue_info:'每当你使用一张杀,你可以令目标弃置一张牌',
|
lingyue_info:'每当你使用一张杀,你可以令目标弃置一张牌。',
|
||||||
jinlin:'金鳞',
|
jinlin:'金鳞',
|
||||||
jinlin_info:'限定技,出牌阶段,你可以令任意名角色各获得3点护甲,获得护甲的角色于每个准备阶段失去1点护甲,直到首次失去所有护甲或累计以此法失去3点护甲',
|
jinlin_info:'限定技,出牌阶段,你可以令任意名角色各获得3点护甲,获得护甲的角色于每个准备阶段失去1点护甲,直到首次失去所有护甲或累计以此法失去3点护甲。',
|
||||||
huanxia:'幻霞',
|
huanxia:'幻霞',
|
||||||
huanxia_info:'你可以将一张红色牌当作杀使用,若此杀未造成伤害,你在结束阶段收回此牌',
|
huanxia_info:'你可以将一张红色牌当作杀使用,若此杀未造成伤害,你在结束阶段收回此牌。',
|
||||||
jingjie:'幻镜',
|
jingjie:'幻镜',
|
||||||
jingjie_info:'准备阶段,你可以失去1点体力,并',
|
jingjie_info:'限定技,出牌阶段,你可以令所有角色弃置所有牌,然后摸两张牌(不触发任何技能)。',
|
||||||
jingjie_old_info:'限定技,出牌阶段,你可以令所有角色弃置所有牌,然后摸两张牌(不触发任何技能)',
|
|
||||||
kongmo:'恐魔',
|
kongmo:'恐魔',
|
||||||
kongmo_info:'锁定技,你使用基本牌或普通锦囊牌后将额外结算一次卡牌效果',
|
kongmo_info:'锁定技,你使用基本牌或普通锦囊牌后将额外结算一次卡牌效果。',
|
||||||
jufu:'巨斧',
|
jufu:'巨斧',
|
||||||
jufu_info:'锁定技,当你有武器牌时,杀造成的伤害+1',
|
jufu_info:'锁定技,当你有武器牌时,杀造成的伤害+1。',
|
||||||
huajing:'化精',
|
huajing:'化精',
|
||||||
huajing_info:'每当你使用锦囊牌造成伤害,可以回复1点体力并摸一张牌',
|
huajing_info:'每当你使用锦囊牌造成伤害,可以回复1点体力并摸一张牌。',
|
||||||
pingxu:'冯虚',
|
pingxu:'冯虚',
|
||||||
pingxu_info:'锁定技,当你没有武器牌时,你的进攻距离+1;当你没有防具牌时,你的防御距离+1',
|
pingxu_info:'锁定技,当你没有武器牌时,你的进攻距离+1;当你没有防具牌时,你的防御距离+1。',
|
||||||
yudun:'愚钝',
|
yudun:'愚钝',
|
||||||
yudun_info:'锁定技,你无法使用锦囊牌;你可以将两张锦囊牌当作一张不计入出杀次数的杀使用',
|
yudun_info:'锁定技,你无法使用锦囊牌;你可以将两张锦囊牌当作一张不计入出杀次数的杀使用。',
|
||||||
bingfeng:'冰封',
|
bingfeng:'冰封',
|
||||||
bingfeng2:'冰封',
|
bingfeng2:'冰封',
|
||||||
bingfeng2_info:'不能使用或打出手牌',
|
bingfeng2_info:'不能使用或打出手牌。',
|
||||||
bingfeng_info:'限定技,出牌阶段,你可以指定至多三个目标与其一同翻面,且处于翻面状态时不能使用或打出手牌;若如此做,你失去技能玄咒并减少1点体力上限',
|
bingfeng_info:'限定技,出牌阶段,你可以指定至多三个目标与其一同翻面,且处于翻面状态时不能使用或打出手牌;若如此做,你失去技能玄咒并减少1点体力上限。',
|
||||||
guozao:'聒噪',
|
guozao:'聒噪',
|
||||||
guozao_info:'锁定技,每当距离你1以内的角色受到一次伤害,若伤害来源不你,你须观看牌堆顶的三张牌,然后指定距离2以内的一名有手牌角色将手牌与这些牌交换',
|
guozao_info:'锁定技,每当距离你1以内的角色受到一次伤害,若伤害来源不你,你须观看牌堆顶的三张牌,然后指定距离2以内的一名有手牌角色将手牌与这些牌交换。',
|
||||||
guozao_info_alter:'锁定技,每当距离你1以内的角色受到一次伤害,若伤害来源不你,你须观看牌堆顶的三张牌,然后指定距离1以内的一名有手牌角色将手牌与这些牌交换',
|
guozao_info_alter:'锁定技,每当距离你1以内的角色受到一次伤害,若伤害来源不你,你须观看牌堆顶的三张牌,然后指定距离1以内的一名有手牌角色将手牌与这些牌交换。',
|
||||||
heihuo:'黑火',
|
heihuo:'黑火',
|
||||||
heihuo_info:'出牌阶段,你可以弃置一张装备牌,令你的手牌数加倍;若你的手牌因此达到8张或更多,你立即受到3点火焰伤害且本回合内不能再次发动黑火',
|
heihuo_info:'出牌阶段,你可以弃置一张装备牌,令你的手牌数加倍;若你的手牌因此达到8张或更多,你立即受到3点火焰伤害且本回合内不能再次发动黑火。',
|
||||||
yaotong:'妖瞳',
|
yaotong:'妖瞳',
|
||||||
yaotong1:'妖瞳',
|
yaotong1:'妖瞳',
|
||||||
yaotong2:'妖瞳',
|
yaotong2:'妖瞳',
|
||||||
yaotong3:'妖瞳',
|
yaotong3:'妖瞳',
|
||||||
yaotong4:'妖瞳',
|
yaotong4:'妖瞳',
|
||||||
yaotong_info:'当你的手牌数为奇数时,你可以将一张手牌当作杀或闪使用或打出,当你的手牌数为偶数时,你可以将一张手牌当作无懈可击使用',
|
yaotong_info:'当你的手牌数为奇数时,你可以将一张手牌当作杀或闪使用或打出,当你的手牌数为偶数时,你可以将一张手牌当作无懈可击使用。',
|
||||||
yaotong_info_alter:'当你的手牌数为奇数时,你可以将一张手牌当作杀使用或打出,当你的手牌数为偶数时,你可以将一张手牌当作无懈可击使用',
|
yaotong_info_alter:'当你的手牌数为奇数时,你可以将一张手牌当作杀使用或打出,当你的手牌数为偶数时,你可以将一张手牌当作无懈可击使用。',
|
||||||
pojian:'破茧',
|
pojian:'破茧',
|
||||||
pojian_info:'每当你失去最后一张手牌,可以从牌堆中获得一张装备牌并装备之',
|
pojian_info:'每当你失去最后一张手牌,可以从牌堆中获得一张装备牌并装备之。',
|
||||||
huajin:'化金',
|
huajin:'化金',
|
||||||
huajin2:'化金',
|
huajin2:'化金',
|
||||||
huajin_info:'出牌阶段限一次,你可以弃置一张牌令你造成的伤害+1,直到你的下一回合开始',
|
huajin_info:'出牌阶段限一次,你可以弃置一张牌令你造成的伤害+1,直到你的下一回合开始。',
|
||||||
poxiao:'破霄',
|
poxiao:'破霄',
|
||||||
poxiao_info:'你可以将一张装备牌当杀使用;当你没有武器牌时,你的攻击范围+1,杀可以额外指定一个目标',
|
poxiao_info:'你可以将一张装备牌当杀使用;当你没有武器牌时,你的攻击范围+1,杀可以额外指定一个目标。',
|
||||||
jianji:'箭疾',
|
jianji:'箭疾',
|
||||||
jianji_info:'你可以将一张装备牌当杀使用,然后摸一张牌,此杀无视距离和防具,且不计入回合内出杀限制',
|
jianji_info:'你可以将一张装备牌当杀使用,然后摸一张牌,此杀无视距离和防具,且不计入回合内出杀限制。',
|
||||||
yuchen:'浴尘',
|
yuchen:'浴尘',
|
||||||
yuchen_info:'每当你于回合外使用或打出一张黑色牌,你可以弃置一名角色的一张牌',
|
yuchen_info:'每当你于回合外使用或打出一张黑色牌,你可以弃置一名角色的一张牌。',
|
||||||
huangyu:'凰羽',
|
huangyu:'凰羽',
|
||||||
huangyu_info:'出牌阶段限一次,你可以将两张红色牌当炽羽袭使用',
|
huangyu_info:'出牌阶段限一次,你可以将两张红色牌当炽羽袭使用。',
|
||||||
bingjian:'冰箭',
|
bingjian:'冰箭',
|
||||||
bingjian_info:'出牌阶段限一次,你可以弃置一张黑色的杀,令一名有手牌的其他角色展示手牌并弃置其中的所有闪,若其没有闪则受到1点雷电伤害',
|
bingjian_info:'出牌阶段限一次,你可以弃置一张黑色的杀,令一名有手牌的其他角色展示手牌并弃置其中的所有闪,若其没有闪则受到1点雷电伤害。',
|
||||||
rumeng:'入梦',
|
rumeng:'入梦',
|
||||||
rumeng_info:'其他角色的出牌阶段前,你可以弃置一张非基本牌,并令其选择一项:弃置一张基本牌,或跳过出牌及弃牌阶段',
|
rumeng_info:'其他角色的出牌阶段前,你可以弃置一张非基本牌,并令其选择一项:弃置一张基本牌,或跳过出牌及弃牌阶段。',
|
||||||
lianda:'连打',
|
lianda:'连打',
|
||||||
lianda_info:'当你使用一杀结算完毕后,可以弃置一张牌视为对目标再使用一张杀',
|
lianda_info:'当你使用一杀结算完毕后,可以弃置一张牌视为对目标再使用一张杀。',
|
||||||
xianghui:'祥晖',
|
xianghui:'祥晖',
|
||||||
xianghui_info:'出牌阶段限一次,你可以弃置一张红色手牌,然后令场上体力值最少的角色各回复1点体力',
|
xianghui_info:'出牌阶段限一次,你可以弃置一张红色手牌,然后令场上体力值最少的角色各回复1点体力。',
|
||||||
huiqi:'回气',
|
huiqi:'回气',
|
||||||
huiqi_info:'每当你受到一次伤害,可令一名其他角色摸X张牌,X为你已损失的体力值',
|
huiqi_info:'每当你受到一次伤害,可令一名其他角色摸X张牌,X为你已损失的体力值。',
|
||||||
toudan:'投弹',
|
toudan:'投弹',
|
||||||
toudan_info:'出牌阶段限一次,你可以弃置一张黑桃牌对一名其他角色造成1点火焰伤害,然后你与距离该角色1以内的所有角色各弃置一张牌',
|
toudan_info:'出牌阶段限一次,你可以弃置一张黑桃牌对一名其他角色造成1点火焰伤害,然后你与距离该角色1以内的所有角色各弃置一张牌。',
|
||||||
shending:'神丁',
|
shending:'神丁',
|
||||||
shending_info:'锁定技,若你没有宝物牌,视为装备了蓝格怪衣',
|
shending_info:'锁定技,若你没有宝物牌,视为装备了蓝格怪衣。',
|
||||||
hzhenwei:'镇卫',
|
hzhenwei:'镇卫',
|
||||||
hzhenwei_info:'当一名其他角色成为杀的目标后,若你在杀的使用者的攻击范围内,你可以弃置一张牌将此杀转移给自己,并在杀结算完毕后摸一张牌',
|
hzhenwei_info:'当一名其他角色成为杀的目标后,若你在杀的使用者的攻击范围内,你可以弃置一张牌将此杀转移给自己,并在杀结算完毕后摸一张牌。',
|
||||||
shoulie:'狩猎',
|
shoulie:'狩猎',
|
||||||
shoulie_info:'当你使用一张杀指定目标后,可以弃置一张手牌令此杀不可闪避',
|
shoulie_info:'当你使用一张杀指定目标后,可以弃置一张手牌令此杀不可闪避。',
|
||||||
hudun:'盾甲',
|
hudun:'盾甲',
|
||||||
hudun_bg:'盾',
|
hudun_bg:'盾',
|
||||||
hudun2:'盾甲',
|
hudun2:'盾甲',
|
||||||
hudun_info:'锁定技,当你对其他角色造成伤害后,若你没有护甲,你获得1点护甲值',
|
hudun_info:'锁定技,当你对其他角色造成伤害后,若你没有护甲,你获得1点护甲值。',
|
||||||
zhenjiu:'针灸',
|
zhenjiu:'针灸',
|
||||||
zhenjiu2:'针灸',
|
zhenjiu2:'针灸',
|
||||||
zhenjiu_info:'出牌阶段限一次,你可以将一张红色手牌置于一名角色的武将牌上,该角色于下一个准备阶段回复1点体力,然后获得此牌',
|
zhenjiu_info:'出牌阶段限一次,你可以将一张红色手牌置于一名角色的武将牌上,该角色于下一个准备阶段回复1点体力,然后获得此牌。',
|
||||||
ljifeng:'疾风',
|
ljifeng:'疾风',
|
||||||
ljifeng_info:'锁定技,你的攻击范围+X,杀可以额外指定X个目标,X为你已损失的体力值',
|
ljifeng_info:'锁定技,你的攻击范围+X,杀可以额外指定X个目标,X为你已损失的体力值。',
|
||||||
lxianglong:'翔龙',
|
lxianglong:'翔龙',
|
||||||
lxianglong_info:'每当你闪避一张杀,你可以视为使用一张杀',
|
lxianglong_info:'每当你闪避一张杀,你可以视为使用一张杀。',
|
||||||
shangxi:'伤袭',
|
shangxi:'伤袭',
|
||||||
shangxi_info:'准备阶段,你可以弃置一张牌,并对攻击范围内一名体力值不小于你的其他角色造成1点伤害',
|
shangxi_info:'准备阶段,你可以弃置一张牌,并对攻击范围内一名体力值不小于你的其他角色造成1点伤害。',
|
||||||
fzhenwei:'镇威',
|
fzhenwei:'镇威',
|
||||||
fzhenwei_info:'在你的回合内,你可以将其他角色打出的卡牌交给除该角色外的任意一名角色',
|
fzhenwei_info:'在你的回合内,你可以将其他角色打出的卡牌交给除该角色外的任意一名角色。',
|
||||||
fuyan:'覆岩',
|
fuyan:'覆岩',
|
||||||
fuyan2:'覆岩',
|
fuyan2:'覆岩',
|
||||||
fuyan_info:'每当你受到一次伤害,可以令一名没有护甲的角色获得1点护甲值',
|
fuyan_info:'每当你受到一次伤害,可以令一名没有护甲的角色获得1点护甲值。',
|
||||||
guaili:'怪力',
|
guaili:'怪力',
|
||||||
guaili_info:'锁定技,你的杀造成的伤害+1,造成伤害后需弃置两张手牌',
|
guaili_info:'锁定技,你的杀造成的伤害+1,造成伤害后需弃置两张手牌。',
|
||||||
pingshen:'凭神',
|
pingshen:'凭神',
|
||||||
pingshen2:'凭神',
|
pingshen2:'凭神',
|
||||||
pingshen_info:'锁定技,受到过你的伤害的角色可在回合内对你发动一次【离魂】(每局限发动一次)',
|
pingshen_info:'锁定技,受到过你的伤害的角色可在回合内对你发动一次【离魂】(每局限发动一次)。',
|
||||||
xingzhui:'星坠',
|
xingzhui:'星坠',
|
||||||
xingzhui_info:'出牌阶段限一次,你可以弃置一张牌,并令一名有牌的其他角色弃置一张类别相同的牌,若则受到1点伤害',
|
xingzhui_info:'出牌阶段限一次,你可以弃置一张牌,并令一名有牌的其他角色弃置一张类别相同的牌,若则受到1点伤害。',
|
||||||
lingxian:'凌仙',
|
lingxian:'凌仙',
|
||||||
lingxian_info:'每当你于回合外使用或打出一张手牌,你可以选择攻击范围外的一名其他角色与你各摸一张牌',
|
lingxian_info:'每当你于回合外使用或打出一张手牌,你可以选择攻击范围外的一名其他角色与你各摸一张牌。',
|
||||||
shouyin:'守印',
|
shouyin:'守印',
|
||||||
shouyin_info:'限定技,当任意一名角色处于濒死状态时,若你的武将牌正朝上,可以将武将牌翻面,然后令场上所有存活角色将体力回复至体力上限',
|
shouyin_info:'限定技,当任意一名角色处于濒死状态时,若你的武将牌正朝上,可以将武将牌翻面,然后令场上所有存活角色将体力回复至体力上限。',
|
||||||
shouyin_info_alter:'限定技,当任意一名角色处于濒死状态时,若你的武将牌正朝上,可以将武将牌翻面,然后令场上所有存活角色回复2点体力',
|
shouyin_info_alter:'限定技,当任意一名角色处于濒死状态时,若你的武将牌正朝上,可以将武将牌翻面,然后令场上所有存活角色回复2点体力。',
|
||||||
bofeng:'搏风',
|
bofeng:'搏风',
|
||||||
bofeng_info:'锁定技,体力值不大于你的角色视为在你的攻击范围;当你使用杀指定目标时,可令目标额外打出一张闪,否则此杀不可闪避且造成的伤害+1',
|
bofeng_info:'锁定技,体力值不大于你的角色视为在你的攻击范围;当你使用杀指定目标时,可令目标额外打出一张闪,否则此杀不可闪避且造成的伤害+1。',
|
||||||
hutian:'护天',
|
hutian:'护天',
|
||||||
hutian2:'护天',
|
hutian2:'护天',
|
||||||
hutian3:'护天',
|
hutian3:'护天',
|
||||||
hutian_info:'结束阶段,你可以将任意张牌置于一名角色的武将牌上,则该角色的体力值始终不能小于“护天”牌数;在你的下一个结束阶段,该角色获得武将牌上的“护天”牌(在此回合不能再次发动)',
|
hutian_info:'结束阶段,你可以将任意张牌置于一名角色的武将牌上,则该角色的体力值始终不能小于“护天”牌数;在你的下一个结束阶段,该角色获得武将牌上的“护天”牌(在此回合不能再次发动)。',
|
||||||
linyun:'凌云',
|
linyun:'凌云',
|
||||||
linyun_info:'你可以将两张牌当作杀使用,此杀需要额外一张闪才能闪避',
|
linyun_info:'你可以将两张牌当作杀使用,此杀需要额外一张闪才能闪避。',
|
||||||
sliufeng:'流风',
|
sliufeng:'流风',
|
||||||
sliufeng_info:'锁定技,体力值不大于你的角色视为在你的攻击范围',
|
sliufeng_info:'锁定技,体力值不大于你的角色视为在你的攻击范围。',
|
||||||
chengjian:'承剑',
|
chengjian:'承剑',
|
||||||
chengjian_info:'每当其他角色使用杀造成一次伤害,你可以令其摸一张牌',
|
chengjian_info:'每当其他角色使用杀造成一次伤害,你可以令其摸一张牌。',
|
||||||
huanling:'幻灵',
|
huanling:'幻灵',
|
||||||
huanling2:'幻灵',
|
huanling2:'幻灵',
|
||||||
huanling_info:'结束阶段,你可以选择一名角色与你同时翻面;翻面状态下,你防止一切伤害',
|
huanling_info:'结束阶段,你可以选择一名角色与你同时翻面;翻面状态下,你防止一切伤害。',
|
||||||
xiaozhan:'消战',
|
xiaozhan:'消战',
|
||||||
xiaozhan_info:'其他角色使用杀时,若你不是杀的目标,可以弃置一张杀取消之',
|
xiaozhan_info:'其他角色使用杀时,若你不是杀的目标,可以弃置一张杀取消之。',
|
||||||
xielei:'挟雷',
|
xielei:'挟雷',
|
||||||
xielei_info:'每当你使用或打出一张杀,可以弃置一张牌并对目标以外的一名角色造成1点雷电伤害',
|
xielei_info:'每当你使用或打出一张杀,可以弃置一张牌并对目标以外的一名角色造成1点雷电伤害。',
|
||||||
dangping:'荡平',
|
dangping:'荡平',
|
||||||
dangping_info:'每当你造成一次伤害,可以弃置一张手牌对其距离1以内的另一名角色造成1点伤害,每回合限一次',
|
dangping_info:'每当你造成一次伤害,可以弃置一张手牌对其距离1以内的另一名角色造成1点伤害,每回合限一次。',
|
||||||
guisi:'归思',
|
guisi:'归思',
|
||||||
guisi_info:'每当你成为杀的目标,你可以交给对方一张手牌并取消之',
|
guisi_info:'每当你成为杀的目标,你可以交给对方一张手牌并取消之。',
|
||||||
duishi:'对诗',
|
duishi:'对诗',
|
||||||
duishi_info:'出牌阶段,你可以弃置一张手牌,并指定一名有手牌的角色选择一项:1)弃置一张与之花色相同的手牌,本回合内对诗不能再次指定其为目标,2)令你获得其一张牌,对诗失效直到回合结束',
|
duishi_info:'出牌阶段,你可以弃置一张手牌,并指定一名有手牌的角色选择一项:1)弃置一张与之花色相同的手牌,本回合内对诗不能再次指定其为目标,2)令你获得其一张牌,对诗失效直到回合结束。',
|
||||||
anlianying:'连营',
|
anlianying:'连营',
|
||||||
anlianying_info:'每当你失去最后一张手牌,可摸两张牌',
|
anlianying_info:'每当你失去最后一张手牌,可摸两张牌。',
|
||||||
lianwu:'连舞',
|
lianwu:'连舞',
|
||||||
lianwu_info:'锁定技,你的杀可以额外指定一个目标,你的红杀不可被闪避',
|
lianwu_info:'锁定技,你的杀可以额外指定一个目标,你的红杀不可被闪避。',
|
||||||
jiying:'疾鹰',
|
jiying:'疾鹰',
|
||||||
jiying_info:'锁定技,你使用杀无视距离',
|
jiying_info:'锁定技,你使用杀无视距离。',
|
||||||
daofa:'道法',
|
daofa:'道法',
|
||||||
daofa_info:'每当有一名其他角色造成伤害,你可以令其弃置一张牌',
|
daofa_info:'每当有一名其他角色造成伤害,你可以令其弃置一张牌。',
|
||||||
xiaomoyu:'魔愈',
|
xiaomoyu:'魔愈',
|
||||||
xiaomoyu_info:'锁定技,每当你于一个回合内首次造成伤害,你回复1点体力,若你没有受伤,则改为摸一张牌',
|
xiaomoyu_info:'锁定技,每当你于一个回合内首次造成伤害,你回复1点体力,若你没有受伤,则改为摸一张牌。',
|
||||||
yihua:'移花',
|
yihua:'移花',
|
||||||
yihua_info:'每当你成为其他角色的某张卡牌的惟一目标时,你可以弃置两张手牌,将使用者与目标对调',
|
yihua_info:'每当你成为其他角色的某张卡牌的惟一目标时,你可以弃置两张手牌,将使用者与目标对调。',
|
||||||
youyin:'游吟',
|
youyin:'游吟',
|
||||||
youyin_info:'每当有其他角色弃置卡牌时,若其中有非基本牌且你的手牌数不超过5,你可以摸一张牌',
|
youyin_info:'每当有其他角色弃置卡牌时,若其中有非基本牌且你的手牌数不超过5,你可以摸一张牌。',
|
||||||
rexue:'热血',
|
rexue:'热血',
|
||||||
rexue_info:'任意一名角色的准备阶段,你可以对其使用一张杀,并摸一张牌',
|
rexue_info:'任意一名角色的准备阶段,你可以对其使用一张杀,并摸一张牌。',
|
||||||
huopu:'火瀑',
|
huopu:'火瀑',
|
||||||
huopu_info:'出牌阶段限一次,你可以将一张红桃牌当作流星火羽使用',
|
huopu_info:'出牌阶段限一次,你可以将一张红桃牌当作流星火羽使用。',
|
||||||
benlei:'奔雷',
|
benlei:'奔雷',
|
||||||
benlei2:'奔雷',
|
benlei2:'奔雷',
|
||||||
benlei_info:'你可以将三张牌当惊雷闪使用;每当你造成一次雷属性伤害,你回复1点体力',
|
benlei_info:'你可以将三张牌当惊雷闪使用;每当你造成一次雷属性伤害,你回复1点体力。',
|
||||||
lingwu:'灵舞',
|
lingwu:'灵舞',
|
||||||
lingwu_info:'回合结束后,若你在本回合内使用的牌数不少于当前体力值,你可以进行一个额外的回合(不可重复发动)',
|
lingwu_info:'回合结束后,若你在本回合内使用的牌数不少于当前体力值,你可以进行一个额外的回合(不可重复发动)。',
|
||||||
miejing:'灭境',
|
miejing:'灭境',
|
||||||
miejing_info:'限制技,你可以弃置所有黑色牌,然后令所有其他角色受到1点雷电伤害',
|
miejing_info:'限制技,你可以弃置所有黑色牌,然后令所有其他角色受到1点雷电伤害。',
|
||||||
lingxin:'灵心',
|
lingxin:'灵心',
|
||||||
lingxin_info:'结束阶段,你可以亮出牌堆顶的三张牌,然后获得其中的红桃牌',
|
lingxin_info:'结束阶段,你可以亮出牌堆顶的三张牌,然后获得其中的红桃牌。',
|
||||||
fushen:'附身',
|
fushen:'附身',
|
||||||
fushen_info:'回合开始前,你可以将自己移出游戏,并代替另一名角色进行一回合,然后失去1点体力',
|
fushen_info:'回合开始前,你可以将自己移出游戏,并代替另一名角色进行一回合,然后失去1点体力。',
|
||||||
fushen2:'附身',
|
fushen2:'附身',
|
||||||
wangchen:'忘尘',
|
wangchen:'忘尘',
|
||||||
wangchen_info:'弃牌阶段结束时,若你于此阶段弃置了基本牌,你可以令一名角色翻面',
|
wangchen_info:'弃牌阶段结束时,若你于此阶段弃置了基本牌,你可以令一名角色翻面。',
|
||||||
wangchen_info_alter:'弃牌阶段结束时,若你于此阶段弃置了基本牌,你可以令一名角色翻面并获得1点护甲',
|
wangchen_info_alter:'弃牌阶段结束时,若你于此阶段弃置了基本牌,你可以令一名角色翻面并获得1点护甲。',
|
||||||
// wangchen_info:'若你于弃牌阶段弃置了基本牌,可令一名角色翻面',
|
// wangchen_info:'若你于弃牌阶段弃置了基本牌,可令一名角色翻面。',
|
||||||
// wangchen_info:'弃牌阶段结束时,若你于此阶段弃置了基本牌,可将一名其他角色移出游戏直到你死亡或下一回合开始',
|
// wangchen_info:'弃牌阶段结束时,若你于此阶段弃置了基本牌,可将一名其他角色移出游戏直到你死亡或下一回合开始。',
|
||||||
guiyin:'归隐',
|
guiyin:'归隐',
|
||||||
guiyin_info:'若你于弃牌阶段弃置了至少两张牌,你可以摸两张牌',
|
guiyin_info:'若你于弃牌阶段弃置了至少两张牌,你可以摸两张牌。',
|
||||||
shejie:'设界',
|
shejie:'设界',
|
||||||
shejie2:'设界',
|
shejie2:'设界',
|
||||||
shejie_info:'每当你受到一次伤害,可以令伤害来源不能使用或打出其手牌,直到其下一回合开始',
|
shejie_info:'每当你受到一次伤害,可以令伤害来源不能使用或打出其手牌,直到其下一回合开始。',
|
||||||
shejie2_info:'不能使用或打出手牌,直到下一回合开始',
|
shejie2_info:'不能使用或打出手牌,直到下一回合开始。',
|
||||||
yinyue:'引月',
|
yinyue:'引月',
|
||||||
yinyue_info:'每当有一名角色回复一次体力,你可以令其摸一张牌,若该角色不是你且你的手牌数不大于该角色,你也摸一张牌。',
|
yinyue_info:'每当有一名角色回复一次体力,你可以令其摸一张牌,若该角色不是你且你的手牌数不大于该角色,你也摸一张牌。',
|
||||||
yinyue_info_alter:'每当有一名角色回复一次体力,你可以令其摸一张牌',
|
yinyue_info_alter:'每当有一名角色回复一次体力,你可以令其摸一张牌。',
|
||||||
mohua2:'魔化',
|
mohua2:'魔化',
|
||||||
mohua2_info:'锁定技,当你进入濒死状态时,你立即变身为撒旦,将体力回复至2,然后摸两张牌',
|
mohua2_info:'锁定技,当你进入濒死状态时,你立即变身为撒旦,将体力回复至2,然后摸两张牌。',
|
||||||
liexin:'裂心',
|
liexin:'裂心',
|
||||||
liexin_info:'每当你即将造成伤害,你可以弃置一张牌令伤害+1',
|
liexin_info:'每当你即将造成伤害,你可以弃置一张牌令伤害+1。',
|
||||||
swdxueyi:'血裔',
|
swdxueyi:'血裔',
|
||||||
swdxueyi_info:'锁定技,你摸牌阶段额外摸X张牌,X为你已损失的体力值',
|
swdxueyi_info:'锁定技,你摸牌阶段额外摸X张牌,X为你已损失的体力值。',
|
||||||
moyan:'血焰',
|
moyan:'血焰',
|
||||||
moyan_info:'出牌阶段,你可以弃置X张红色手牌,然后对至多X名角色各造成1点火焰伤害,X为你已损失的体力值。每阶段限一次',
|
moyan_info:'出牌阶段,你可以弃置X张红色手牌,然后对至多X名角色各造成1点火焰伤害,X为你已损失的体力值。每阶段限一次。',
|
||||||
aojian:'傲剑',
|
aojian:'傲剑',
|
||||||
aojian_info:'出牌阶段,你可以弃置X张手牌,然后对攻击范围内至多X名角色各造成1点伤害,X为你已损失的体力值。每阶段限一次',
|
aojian_info:'出牌阶段,你可以弃置X张手牌,然后对攻击范围内至多X名角色各造成1点伤害,X为你已损失的体力值。每阶段限一次。',
|
||||||
milesxiehun:'邪魂',
|
milesxiehun:'邪魂',
|
||||||
milesxiehun_info:'锁定技,出牌阶段结束后,你令随机X名角色各弃置一张牌,X为你已损失的体力值且至少为1 ',
|
milesxiehun_info:'锁定技,出牌阶段结束后,你令随机X名角色各弃置一张牌,X为你已损失的体力值且至少为1。',
|
||||||
liaochen:'撩尘',
|
liaochen:'撩尘',
|
||||||
liaochen_info:'锁定技,出牌阶段结束后,所有角色需弃置一张牌',
|
liaochen_info:'锁定技,出牌阶段结束后,所有角色需弃置一张牌。',
|
||||||
yinmo:'引魔',
|
yinmo:'引魔',
|
||||||
yinmo_info:'锁定技,当你对场上所有角色发动「连计」后,你立即变身为魔化宁珂,然后对所有其他角色造成1点雷电伤害',
|
yinmo_info:'锁定技,当你对场上所有角色发动〖连计〗后,你立即变身为魔化宁珂,然后对所有其他角色造成1点雷电伤害。',
|
||||||
huanxing:'幻形',
|
huanxing:'幻形',
|
||||||
huanxing2:'幻形',
|
huanxing2:'幻形',
|
||||||
huanxing_info:'准备阶段,你可以弃置一张牌并选择一名男性角色,获得其所有技能,直到你首次受到伤害',
|
huanxing_info:'准备阶段,你可以弃置一张牌并选择一名男性角色,获得其所有技能,直到你首次受到伤害。',
|
||||||
meihuo:'魅惑',
|
meihuo:'魅惑',
|
||||||
meihuo_info:'每当你失去最后一张装备牌,你可以获得一名其他角色的一张牌,若此牌来自装备区,你立即装备之',
|
meihuo_info:'每当你失去最后一张装备牌,你可以获得一名其他角色的一张牌,若此牌来自装备区,你立即装备之。',
|
||||||
|
|
||||||
touxi:'偷袭',
|
touxi:'偷袭',
|
||||||
touxi_info:'在其他角色的结束阶段,你可以进行一次判定,若结果为黑色,你对其造成1点雷电伤害,且直到下一回合开始不能再次发动偷袭;若结果为红色,对方可以弃置你的一张牌',
|
touxi_info:'在其他角色的结束阶段,你可以进行一次判定,若结果为黑色,你对其造成1点雷电伤害,且直到下一回合开始不能再次发动偷袭;若结果为红色,对方可以弃置你的一张牌。',
|
||||||
touxi_info_alter:'在其他角色的结束阶段,你可以进行一次判定,若结果为黑色,你对其造成1点雷电伤害,且直到下一回合开始不能再次发动偷袭;若结果为红色,对方可以获得你的一张牌',
|
touxi_info_alter:'在其他角色的结束阶段,你可以进行一次判定,若结果为黑色,你对其造成1点雷电伤害,且直到下一回合开始不能再次发动偷袭;若结果为红色,对方可以获得你的一张牌。',
|
||||||
minjing:'明镜',
|
minjing:'明镜',
|
||||||
minjing_info:'若你没有防具牌,你视为装备了光纱天衣',
|
minjing_info:'若你没有防具牌,你视为装备了光纱天衣。',
|
||||||
jqimou:'奇谋',
|
jqimou:'奇谋',
|
||||||
jqimou_info:'每当你于回合外受到一次伤害,你可以摸一张牌,并可以使用一张牌',
|
jqimou_info:'每当你于回合外受到一次伤害,你可以摸一张牌,并可以使用一张牌。',
|
||||||
mufeng:'沐风',
|
mufeng:'沐风',
|
||||||
mufeng_info:'结束阶段,若你本回合使用过基本牌,则可发现一张牌',
|
mufeng_info:'结束阶段,若你本回合使用过基本牌,则可发现一张牌。',
|
||||||
mufeng_info_alter:'结束阶段,你可以将手牌数补至当前体力值',
|
mufeng_info_alter:'结束阶段,你可以将手牌数补至当前体力值。',
|
||||||
mufeng_old2_info:'在一名角色的结束阶段,若你的手牌数比其少,你可以将手牌补至与该角色相同(最多补至5),每轮限一次',
|
mufeng_old2_info:'在一名角色的结束阶段,若你的手牌数比其少,你可以将手牌补至与该角色相同(最多补至5),每轮限一次。',
|
||||||
hjifeng:'祭风',
|
hjifeng:'祭风',
|
||||||
hjifeng_info:'出牌阶段限一次,若你手牌中没有祭器牌,你可以将一张手牌置于牌堆顶,并根据其花色获得对应祭器:黑桃-青龙之圭;梅花-白兽之琥;方片-朱雀之璋;红桃-玄武之璜',
|
hjifeng_info:'出牌阶段限一次,若你手牌中没有祭器牌,你可以将一张手牌置于牌堆顶,并根据其花色获得对应祭器:黑桃-青龙之圭;梅花-白兽之琥;方片-朱雀之璋;红桃-玄武之璜。',
|
||||||
mufeng_old_info:'锁定技,每当你于回合外失去牌,你的防御距离+1;若防御距离的变化值超过了存活角色数的一半,则降至0',
|
mufeng_old_info:'锁定技,每当你于回合外失去牌,你的防御距离+1;若防御距离的变化值超过了存活角色数的一半,则降至0。',
|
||||||
lexue:'乐学',
|
lexue:'乐学',
|
||||||
lexue_info:'回合内,你随机获得制衡、集智、缔盟、驱虎中的一个技能;回合外,你随机获得遗计、急救、鬼道、反馈中的一个技能',
|
lexue_info:'回合内,你随机获得制衡、集智、缔盟、驱虎中的一个技能;回合外,你随机获得遗计、急救、鬼道、反馈中的一个技能。',
|
||||||
mingfu:'冥缚',
|
mingfu:'冥缚',
|
||||||
mingfu_info:'出牌阶段限一次,你可以将一张梅花牌当鬼幽结使用',
|
mingfu_info:'出牌阶段限一次,你可以将一张梅花牌当鬼幽结使用。',
|
||||||
chuanyue:'穿月',
|
chuanyue:'穿月',
|
||||||
chuanyue_info:'出牌阶段限一次,你可以将两张手牌当决斗使用',
|
chuanyue_info:'出牌阶段限一次,你可以将两张手牌当决斗使用。',
|
||||||
|
|
||||||
miedao:'灭道',
|
miedao:'灭道',
|
||||||
miedao1:'灭道',
|
miedao1:'灭道',
|
||||||
|
@ -10059,67 +10058,67 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
miedao_info:'锁定技,摸牌阶段,你额外摸X张牌;弃牌阶段,你至少须弃X张牌(不足则全弃),X为你已损失的体力值。',
|
miedao_info:'锁定技,摸牌阶段,你额外摸X张牌;弃牌阶段,你至少须弃X张牌(不足则全弃),X为你已损失的体力值。',
|
||||||
|
|
||||||
senluo:'森罗',
|
senluo:'森罗',
|
||||||
senluo_info:'出牌阶段限一次,若你的手牌数为全场最少或之一,你可以令所有有手牌的其他角色弃置两张手牌然后摸一张牌',
|
senluo_info:'出牌阶段限一次,若你的手牌数为全场最少或之一,你可以令所有有手牌的其他角色弃置两张手牌然后摸一张牌。',
|
||||||
polang:'破浪',
|
polang:'破浪',
|
||||||
polang_info:'每当你造成一次伤害,可以一张对方的装备牌',
|
polang_info:'每当你造成一次伤害,可以一张对方的装备牌。',
|
||||||
jikong:'亟空',
|
jikong:'亟空',
|
||||||
jikong2:'亟空',
|
jikong2:'亟空',
|
||||||
jikong_info:'准备阶段,你可以指定一名角色视为对其使用一张雷杀;每当你失去最后一张手牌,你可以指定一名角色视为对其使用一张雷杀(每回合限发动一次)',
|
jikong_info:'准备阶段,你可以指定一名角色视为对其使用一张雷杀;每当你失去最后一张手牌,你可以指定一名角色视为对其使用一张雷杀(每回合限发动一次)。',
|
||||||
jikong_info_alter:'准备阶段,你可以指定一名角色视为对其使用一张雷杀',
|
jikong_info_alter:'准备阶段,你可以指定一名角色视为对其使用一张雷杀。',
|
||||||
xiangu:'仙骨',
|
xiangu:'仙骨',
|
||||||
xiangu_info:'锁定技,你的手牌上限不会因体力值的减少而减少。',
|
xiangu_info:'锁定技,你的手牌上限不会因体力值的减少而减少。',
|
||||||
hujing:'壶境',
|
hujing:'壶境',
|
||||||
hujing_info:'锁定技,准备阶段,若弃牌堆中有炼妖壶,你装备之;当你的装备区内有炼妖壶时,你的手牌上限+2',
|
hujing_info:'锁定技,准备阶段,若弃牌堆中有炼妖壶,你装备之;当你的装备区内有炼妖壶时,你的手牌上限+2。',
|
||||||
huajian:'化剑',
|
huajian:'化剑',
|
||||||
huajian_info:'出牌阶段结束时,你可以将一张牌当作杀对任意一名角色使用',
|
huajian_info:'出牌阶段结束时,你可以将一张牌当作杀对任意一名角色使用。',
|
||||||
xuanyuan:'轩辕',
|
xuanyuan:'轩辕',
|
||||||
xuanyuan_info:'锁定技,你无视【轩辕剑】的装备条件及失去体力的效果;结束阶段,你可以弃置一张黑桃牌从弃牌堆中获得【轩辕剑】并装备之',
|
xuanyuan_info:'锁定技,你无视【轩辕剑】的装备条件及失去体力的效果;结束阶段,你可以弃置一张黑桃牌从弃牌堆中获得【轩辕剑】并装备之。',
|
||||||
jilve:'极略',
|
jilve:'极略',
|
||||||
jilve_backup:'极略',
|
jilve_backup:'极略',
|
||||||
jilve2:'极略',
|
jilve2:'极略',
|
||||||
jilve_info:'出牌阶段,你可以观看牌堆顶的三张牌,然后使用其中的非装备牌。每回合最多发动三次',
|
jilve_info:'出牌阶段,你可以观看牌堆顶的三张牌,然后使用其中的非装备牌。每回合最多发动三次。',
|
||||||
jilve_info_alter:'出牌阶段,你可以观看牌堆顶的两张牌,然后使用其中的非装备牌。每回合最多发动三次',
|
jilve_info_alter:'出牌阶段,你可以观看牌堆顶的两张牌,然后使用其中的非装备牌。每回合最多发动三次。',
|
||||||
gongshen:'工神',
|
gongshen:'工神',
|
||||||
gongshen_info:'任意一名其他角色使用一张基本牌或锦囊牌指定目标后,你可以弃置一张装备牌令其失效',
|
gongshen_info:'任意一名其他角色使用一张基本牌或锦囊牌指定目标后,你可以弃置一张装备牌令其失效。',
|
||||||
|
|
||||||
swdliuhong:'流虹',
|
swdliuhong:'流虹',
|
||||||
swdliuhong_info:'每当你使用一张杀,可以摸一张牌',
|
swdliuhong_info:'每当你使用一张杀,可以摸一张牌。',
|
||||||
poyue:'破月',
|
poyue:'破月',
|
||||||
poyue_info:'锁定技,你的黑杀无视距离,红色杀不计入回合内的出杀限制且不可闪避',
|
poyue_info:'锁定技,你的黑杀无视距离,红色杀不计入回合内的出杀限制且不可闪避。',
|
||||||
poyue_info_alter:'锁定技,你的黑杀无视距离,红色杀不可闪避',
|
poyue_info_alter:'锁定技,你的黑杀无视距离,红色杀不可闪避。',
|
||||||
mojian:'墨剑',
|
mojian:'墨剑',
|
||||||
mojian_info:'每当你使用杀并指定目标后,你可以令其摸一张牌,然后你回复1点体力',
|
mojian_info:'每当你使用杀并指定目标后,你可以令其摸一张牌,然后你回复1点体力。',
|
||||||
duanyue:'断月',
|
duanyue:'断月',
|
||||||
duanyue_info:'出牌阶段限一次,你可以弃置一张装备牌,对一名其他角色造成1点伤害',
|
duanyue_info:'出牌阶段限一次,你可以弃置一张装备牌,对一名其他角色造成1点伤害。',
|
||||||
tuzhen:'突阵',
|
tuzhen:'突阵',
|
||||||
tuzhen_info:'当你造成一次伤害后,你可以弃置对方手牌中的非基本牌',
|
tuzhen_info:'当你造成一次伤害后,你可以弃置对方手牌中的非基本牌。',
|
||||||
tuzhen_info_alter:'当你造成一次伤害后,你可以弃置对方手牌中的一张非基本牌',
|
tuzhen_info_alter:'当你造成一次伤害后,你可以弃置对方手牌中的一张非基本牌。',
|
||||||
fengmo:'封魔',
|
fengmo:'封魔',
|
||||||
fengmo_info:'出牌阶段限一次,你可以弃置场所有武器牌(至少两张),然后令一名未翻面的角色摸等量的牌并翻面',
|
fengmo_info:'出牌阶段限一次,你可以弃置场所有武器牌(至少两张),然后令一名未翻面的角色摸等量的牌并翻面。',
|
||||||
pozhou:'破咒',
|
pozhou:'破咒',
|
||||||
pozhou_bg:'破',
|
pozhou_bg:'破',
|
||||||
pozhou2:'破咒',
|
pozhou2:'破咒',
|
||||||
pozhou_info:'每当你受到一次伤害,你获得一枚破咒标记。出牌阶段,你可以指定任意名其他角色并弃置等量的破咒标记,令目标的非锁定技失效直到其下一回合结束',
|
pozhou_info:'每当你受到一次伤害,你获得一枚破咒标记。出牌阶段,你可以指定任意名其他角色并弃置等量的破咒标记,令目标的非锁定技失效直到其下一回合结束。',
|
||||||
xuanzhou:'玄咒',
|
xuanzhou:'玄咒',
|
||||||
xuanzhou_info:'出牌阶段限一次,你可以将一张普通锦囊牌当作任意一张延时锦囊,对任意一名角色使用(无视锦囊使用范围限制)',
|
xuanzhou_info:'出牌阶段限一次,你可以将一张普通锦囊牌当作任意一张延时锦囊,对任意一名角色使用(无视锦囊使用范围限制)。',
|
||||||
ningxian:'凝霰',
|
ningxian:'凝霰',
|
||||||
ningxian_info:'每当你受到一次伤害,你可以弃置任意张黑色牌并选择等量其他角色对其各造成1点伤害',
|
ningxian_info:'每当你受到一次伤害,你可以弃置任意张黑色牌并选择等量其他角色对其各造成1点伤害。',
|
||||||
guanhu:'贯鹄',
|
guanhu:'贯鹄',
|
||||||
guanhu_info:'每当你使用杀造成伤害,你可以弃置对方一张手牌和一张装备牌',
|
guanhu_info:'每当你使用杀造成伤害,你可以弃置对方一张手牌和一张装备牌。',
|
||||||
chuanyang:'穿杨',
|
chuanyang:'穿杨',
|
||||||
chuanyang_info:'每当你使用一张杀,若你不在目标的攻击范围,你可以令此杀不可闪避',
|
chuanyang_info:'每当你使用一张杀,若你不在目标的攻击范围,你可以令此杀不可闪避。',
|
||||||
fengming:'凤鸣',
|
fengming:'凤鸣',
|
||||||
fengming_info:'出牌阶段限一次,你可以弃置一张装备牌,令一名角色恢复1点体力并摸一张牌',
|
fengming_info:'出牌阶段限一次,你可以弃置一张装备牌,令一名角色恢复1点体力并摸一张牌。',
|
||||||
duanxing:'锻星',
|
duanxing:'锻星',
|
||||||
duanxing_info:'每当你装备一张未强化的装备牌,可以视为一名角色使用一张杀',
|
duanxing_info:'每当你装备一张未强化的装备牌,可以视为一名角色使用一张杀。',
|
||||||
wanjun:'万钧',
|
wanjun:'万钧',
|
||||||
wanjun_info:'你可以将一张装备牌当作南蛮入侵使用',
|
wanjun_info:'你可以将一张装备牌当作南蛮入侵使用。',
|
||||||
dunxing:'遁形',
|
dunxing:'遁形',
|
||||||
dunxing_info:'当你成为其他角色卡牌的目标时,你可以弃置一张牌并进行一次判定,若不为红桃,则取消之',
|
dunxing_info:'当你成为其他角色卡牌的目标时,你可以弃置一张牌并进行一次判定,若不为红桃,则取消之。',
|
||||||
guiying:'鬼影',
|
guiying:'鬼影',
|
||||||
guiying_info:'你可以将一张黑色牌当偷梁换柱使用',
|
guiying_info:'你可以将一张黑色牌当偷梁换柱使用。',
|
||||||
shehun:'摄魂',
|
shehun:'摄魂',
|
||||||
shehun_info:'出牌阶段限一次,你可以弃置任意张花色不同的牌,另一名其他角色弃置等量的牌,若其弃置的牌中有牌的花色与你弃置的牌相同,你对其造成1点伤害',
|
shehun_info:'出牌阶段限一次,你可以弃置任意张花色不同的牌,另一名其他角色弃置等量的牌,若其弃置的牌中有牌的花色与你弃置的牌相同,你对其造成1点伤害。',
|
||||||
|
|
||||||
|
|
||||||
zhanlu:'沾露',
|
zhanlu:'沾露',
|
||||||
|
@ -10187,7 +10186,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
guiyan2:'鬼眼',
|
guiyan2:'鬼眼',
|
||||||
swd_xiuluo:'修罗',
|
swd_xiuluo:'修罗',
|
||||||
suiyan:'碎岩',
|
suiyan:'碎岩',
|
||||||
suiyan_info:'每当你造成一次伤害,可以弃置一张牌并弃置对方的全部装备牌',
|
suiyan_info:'每当你造成一次伤害,可以弃置一张牌并弃置对方的全部装备牌。',
|
||||||
xianyin:'散结',
|
xianyin:'散结',
|
||||||
qiaoxie:'巧械',
|
qiaoxie:'巧械',
|
||||||
qiaoxie2:'巧械',
|
qiaoxie2:'巧械',
|
||||||
|
@ -10204,74 +10203,74 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
susheng:'苏生',
|
susheng:'苏生',
|
||||||
shengshou:'圣手',
|
shengshou:'圣手',
|
||||||
huanjian:'幻箭',
|
huanjian:'幻箭',
|
||||||
huanjian_info:'出牌阶段,你可以将一张黑色牌当作冰魄针使用',
|
huanjian_info:'出牌阶段,你可以将一张黑色牌当作冰魄针使用。',
|
||||||
shengshou_info:'你可以将一张黑色手牌当作草药使用',
|
shengshou_info:'你可以将一张黑色手牌当作草药使用。',
|
||||||
susheng_info:'在任意一名角色即将死亡时,你可以弃置一张手牌防止其死亡,并将其体力回复至1,每回合限发动一次',
|
susheng_info:'在任意一名角色即将死亡时,你可以弃置一张手牌防止其死亡,并将其体力回复至1,每回合限发动一次。',
|
||||||
susheng_info_alter:'在任意一名角色即将死亡时,你可以弃置一张红色手牌防止其死亡,并将其体力回复至1,每回合限发动一次',
|
susheng_info_alter:'在任意一名角色即将死亡时,你可以弃置一张红色手牌防止其死亡,并将其体力回复至1,每回合限发动一次。',
|
||||||
zhanlu_info:'出牌阶段限一次,你可以弃置一张黑桃牌令至多3名角色各回复1点体力',
|
zhanlu_info:'出牌阶段限一次,你可以弃置一张黑桃牌令至多3名角色各回复1点体力。',
|
||||||
kunlunjing_info:'准备阶段,若你的体力值小于上回合结束时的体力值,你可以将场上所有牌还原到你上一回合结束时的位置',
|
kunlunjing_info:'准备阶段,若你的体力值小于上回合结束时的体力值,你可以将场上所有牌还原到你上一回合结束时的位置。',
|
||||||
kunlunjing_info_alter:'准备阶段,若你的体力值小于上回合结束时的体力值,你可以将场上所有牌还原到你上一回合结束时的位置,然后失去1点体力',
|
kunlunjing_info_alter:'准备阶段,若你的体力值小于上回合结束时的体力值,你可以将场上所有牌还原到你上一回合结束时的位置,然后失去1点体力。',
|
||||||
swd_xiuluo_info:'准备阶段,你可以弃一张手牌来弃置你判断区里的一张延时类锦囊(必须花色相同)',
|
swd_xiuluo_info:'准备阶段,你可以弃一张手牌来弃置你判断区里的一张延时类锦囊(必须花色相同)。',
|
||||||
xianyin_info:'出牌阶段,你可以令所有判定区内有牌的角色弃置判定区内的牌,然后交给你一张手牌',
|
xianyin_info:'出牌阶段,你可以令所有判定区内有牌的角色弃置判定区内的牌,然后交给你一张手牌。',
|
||||||
qiaoxie_info:'每当你装备一张牌,可摸一张牌;每当你失去一张装备牌(不含替换),你可以弃置其他角色的一张牌',
|
qiaoxie_info:'每当你装备一张牌,可摸一张牌;每当你失去一张装备牌(不含替换),你可以弃置其他角色的一张牌。',
|
||||||
mailun_info:'准备阶段,你可以选择一个脉轮效果直到下一回合开始',
|
mailun_info:'准备阶段,你可以选择一个脉轮效果直到下一回合开始。',
|
||||||
guiyan_info:'出牌阶段,你可以观看一名角色的手牌,并获得其中一张梅花牌,每阶段限一次。当你首次进入濒死状态时,你须回复1点体力并失去技能鬼眼',
|
guiyan_info:'出牌阶段,你可以观看一名角色的手牌,并获得其中一张梅花牌,每阶段限一次。当你首次进入濒死状态时,你须回复1点体力并失去技能鬼眼。',
|
||||||
busi_info:'锁定技,当你进入濒死状态时,你进行一次判定,若结果不为黑桃,你将体力回复至1并将武将牌翻至背面',
|
busi_info:'锁定技,当你进入濒死状态时,你进行一次判定,若结果不为黑桃,你将体力回复至1并将武将牌翻至背面。',
|
||||||
xuying_info:'锁定技,每当你即将受到伤害,你防止此伤害,若你此时有手牌,你失去1点体力',
|
xuying_info:'锁定技,每当你即将受到伤害,你防止此伤害,若你此时有手牌,你失去1点体力。',
|
||||||
yinguo_info:'除你之外的任意一名角色即将受到受到伤害时,若有伤害来源,你可以弃置一张牌将伤害来源和目标对调',
|
yinguo_info:'除你之外的任意一名角色即将受到受到伤害时,若有伤害来源,你可以弃置一张牌将伤害来源和目标对调。',
|
||||||
yueren_info:'每当你使用一张杀,可以进行一次判定,若结果为黑色,你弃置目标一张牌,若结果为红色,你将此杀收回,每回合限发动一次',
|
yueren_info:'每当你使用一张杀,可以进行一次判定,若结果为黑色,你弃置目标一张牌,若结果为红色,你将此杀收回,每回合限发动一次。',
|
||||||
duijue_info:'限定技,出牌阶段,你可以指定一名体力值大于1的其他角色,你结束出牌阶段,并在回合结束后将所有其他角色移出游戏,然后该角色与你轮流进行回合,直到有一方死亡或一共进行六个回合为止',
|
duijue_info:'限定技,出牌阶段,你可以指定一名体力值大于1的其他角色,你结束出牌阶段,并在回合结束后将所有其他角色移出游戏,然后该角色与你轮流进行回合,直到有一方死亡或一共进行六个回合为止。',
|
||||||
wuying_info:'锁定技,你的杀和单体x锦囊目标锁定为范围内的所有角色',
|
wuying_info:'锁定技,你的杀和单体x锦囊目标锁定为范围内的所有角色。',
|
||||||
xiehun_info:'锁定技,受到来自你伤害的角色进入混乱状态,行为不受控制,且会攻击队友,直到你的下一回合开始',
|
xiehun_info:'锁定技,受到来自你伤害的角色进入混乱状态,行为不受控制,且会攻击队友,直到你的下一回合开始。',
|
||||||
jumo_info:'锁定技,结束阶段,你摸X-1张牌,X为未进入混乱状态的角色数与进入混乱状态的角色数之差(若为双将则改为X)',
|
jumo_info:'锁定技,结束阶段,你摸X-1张牌,X为未进入混乱状态的角色数与进入混乱状态的角色数之差(若为双将则改为X)。',
|
||||||
jifeng_info:'你的杀和单体锦囊可以额外指定任意个目标,若如此做,此卡牌有一定机率失效,指定的目标越多失效的概率越大',
|
jifeng_info:'你的杀和单体锦囊可以额外指定任意个目标,若如此做,此卡牌有一定机率失效,指定的目标越多失效的概率越大。',
|
||||||
mohua_info:'锁定技,在身份局中,当你进入濒死状态时,你立即变身为撒旦,体力上限变为现存角色数(至少为4),并成为其他所有角色的共同敌人',
|
mohua_info:'锁定技,在身份局中,当你进入濒死状态时,你立即变身为撒旦,体力上限变为现存角色数(至少为4),并成为其他所有角色的共同敌人。',
|
||||||
miles_xueyi_info:'锁定技,你防止即将受到的伤害,然后失去1点体力',
|
miles_xueyi_info:'锁定技,你防止即将受到的伤害,然后失去1点体力。',
|
||||||
duanyi_info:'出牌阶段限一次,你可以弃置两张杀,对一名角色造成1点伤害,然后其随机弃置X张牌,X为其已损失的体力值',
|
duanyi_info:'出牌阶段限一次,你可以弃置两张杀,对一名角色造成1点伤害,然后其随机弃置X张牌,X为其已损失的体力值。',
|
||||||
duanyi_info_alter:'出牌阶段限一次,你可以弃置两张杀,并对一名角色造成1点伤害',
|
duanyi_info_alter:'出牌阶段限一次,你可以弃置两张杀,并对一名角色造成1点伤害。',
|
||||||
guxing_info:'出牌阶段,你可以将最后至多X张手牌当杀使用,此杀无视距离且可以指定至多3个目标,每造成一次伤害,你摸一张牌,X为你已损失的体力值且至少为1。',
|
guxing_info:'出牌阶段,你可以将最后至多X张手牌当杀使用,此杀无视距离且可以指定至多3个目标,每造成一次伤害,你摸一张牌,X为你已损失的体力值且至少为1。',
|
||||||
tianlun_info:'任意一名角色的判定牌生效前,你可以弃置一张场上角色的判定牌代替之',
|
tianlun_info:'任意一名角色的判定牌生效前,你可以弃置一张场上角色的判定牌代替之。',
|
||||||
hlongyin_info:'出牌阶段,你可以弃置任意张颜色相同且点数不同的牌,并获得逆时针座位距离与卡牌点数相同的角色区域内的一张牌。每阶段限一次',
|
hlongyin_info:'出牌阶段,你可以弃置任意张颜色相同且点数不同的牌,并获得逆时针座位距离与卡牌点数相同的角色区域内的一张牌。每阶段限一次。',
|
||||||
lanzhi_info:'每当你使用一张梅花牌,你可以令所有体力值不大于你的角色回复1点体力',
|
lanzhi_info:'每当你使用一张梅花牌,你可以令所有体力值不大于你的角色回复1点体力。',
|
||||||
lanzhi_old_info:'每当你即将造成伤害,可以防止此伤害,然后摸两张牌。每回合限发动一次。',
|
lanzhi_old_info:'每当你即将造成伤害,可以防止此伤害,然后摸两张牌。每回合限发动一次。',
|
||||||
tianhuo_info:'出牌阶段,你可以令所有角色弃置其判定区域内的牌,并受到没有来源的等量火焰伤害,每阶段限一次',
|
tianhuo_info:'出牌阶段,你可以令所有角色弃置其判定区域内的牌,并受到没有来源的等量火焰伤害,每阶段限一次。',
|
||||||
huanyin_info:'锁定技,每当你成为其他角色的卡牌的目标时,你进行一次判定,若为黑桃则取消之,若为红桃你摸一张牌',
|
huanyin_info:'锁定技,每当你成为其他角色的卡牌的目标时,你进行一次判定,若为黑桃则取消之,若为红桃你摸一张牌。',
|
||||||
luomu_info:'锁定技,每当你造成伤害时,受伤害角色随机弃置一张牌',
|
luomu_info:'锁定技,每当你造成伤害时,受伤害角色随机弃置一张牌。',
|
||||||
poxing_info:'锁定技,每当你即将造成伤害,若目标的体力值大于你,你令伤害+1',
|
poxing_info:'锁定技,每当你即将造成伤害,若目标的体力值大于你,你令伤害+1。',
|
||||||
liaoyuan_info:'每当你使用一张杀指定目标后,你可以弃置任意张与此杀花色相同的牌,若如此做,目标需额外打出等量的闪,每少打出一张闪,此杀的伤害+1',
|
liaoyuan_info:'每当你使用一张杀指定目标后,你可以弃置任意张与此杀花色相同的牌,若如此做,目标需额外打出等量的闪,每少打出一张闪,此杀的伤害+1。',
|
||||||
liaoyuan_info_alter:'每当你使用一张杀指定目标后,你可以弃置一张与此杀花色相同的牌,若如此做,目标需额外打出一张闪,若目标没打出闪,此杀的伤害+1',
|
liaoyuan_info_alter:'每当你使用一张杀指定目标后,你可以弃置一张与此杀花色相同的牌,若如此做,目标需额外打出一张闪,若目标没打出闪,此杀的伤害+1。',
|
||||||
yishan_info:'每当你受到一次伤害,你可以重新获得最近失去的两张牌',
|
yishan_info:'每当你受到一次伤害,你可以重新获得最近失去的两张牌。',
|
||||||
huanhun_info:'当一名角色进入濒死状态时,你可以弃置一张牌并令其进行一次判定,若结果为红色,其回复1点体力,否则其获得你弃置的牌',
|
huanhun_info:'当一名角色进入濒死状态时,你可以弃置一张牌并令其进行一次判定,若结果为红色,其回复1点体力,否则其获得你弃置的牌。',
|
||||||
huanhun_info_alter:'当一名角色进入濒死状态时,你可以弃置一张红色手牌并令其进行一次判定,若结果为红色,其回复1点体力,否则其获得你弃置的牌',
|
huanhun_info_alter:'当一名角色进入濒死状态时,你可以弃置一张红色手牌并令其进行一次判定,若结果为红色,其回复1点体力,否则其获得你弃置的牌。',
|
||||||
daixing_info:'结束阶段,你可以弃置任意张牌并获得等量的护甲;这些护甲将在你的下个准备阶段消失',
|
daixing_info:'结束阶段,你可以弃置任意张牌并获得等量的护甲;这些护甲将在你的下个准备阶段消失。',
|
||||||
swd_wuxie_info:'锁定技,你不能成为其他角色的延时锦囊的目标',
|
swd_wuxie_info:'锁定技,你不能成为其他角色的延时锦囊的目标。',
|
||||||
lqingcheng_info:'结束阶段,你可以进行判定,若为红色则可以继续判定,最多判定3次,判定结束后将判定成功的牌收入手牌',
|
lqingcheng_info:'结束阶段,你可以进行判定,若为红色则可以继续判定,最多判定3次,判定结束后将判定成功的牌收入手牌。',
|
||||||
xianjiang_old_info:'出牌阶段,你可以将一张装备牌永久转化为任意一张其它装备牌,一张牌在一个阶段只能转化一次',
|
xianjiang_old_info:'出牌阶段,你可以将一张装备牌永久转化为任意一张其它装备牌,一张牌在一个阶段只能转化一次。',
|
||||||
xianjiang_info:'出牌阶段限一次,你可以弃置一张锦囊牌并随机装备一件装备',
|
xianjiang_info:'出牌阶段限一次,你可以弃置一张锦囊牌并随机装备一件装备。',
|
||||||
xianjiang_info_alter:'出牌阶段限一次,若你装备内没有牌,你可以弃置一张锦囊牌并随机装备一件装备',
|
xianjiang_info_alter:'出牌阶段限一次,若你装备内没有牌,你可以弃置一张锦囊牌并随机装备一件装备。',
|
||||||
shengong_info:'每当你需要打出一张杀或闪时,你可以弃置一名其他角色装备区内的一张武器牌或防具牌,视为打出一张杀或闪,然后该角色摸一张牌,你弃一张牌',
|
shengong_info:'每当你需要打出一张杀或闪时,你可以弃置一名其他角色装备区内的一张武器牌或防具牌,视为打出一张杀或闪,然后该角色摸一张牌,你弃一张牌。',
|
||||||
ningjian_info:'你可以将一张红色牌当闪、黑色牌当杀使用或打出',
|
ningjian_info:'你可以将一张红色牌当闪、黑色牌当杀使用或打出。',
|
||||||
taixu_info:'限定技,你可以弃置你的所有牌(至少1张),并对一名体力值大于1为其他角色造成X点火焰伤害,X为你已损失的体力值且至少为1',
|
taixu_info:'限定技,你可以弃置你的所有牌(至少1张),并对一名体力值大于1为其他角色造成X点火焰伤害,X为你已损失的体力值且至少为1。',
|
||||||
duoren_info:'每当你闪避一张杀,你可以立即获得来源的武器牌',
|
duoren_info:'每当你闪避一张杀,你可以立即获得来源的武器牌。',
|
||||||
tanlin_info:'出牌阶段限一次,你可以与一名其他角色进行拼点,若你赢,你获得双方拼点牌、对该角色使用卡牌无视距离且可以额外使用一张杀直到回合结束,若你没赢,你受到该角色的1点伤害。',
|
tanlin_info:'出牌阶段限一次,你可以与一名其他角色进行拼点,若你赢,你获得双方拼点牌、对该角色使用卡牌无视距离且可以额外使用一张杀直到回合结束,若你没赢,你受到该角色的1点伤害。',
|
||||||
tanlin_info_alter:'出牌阶段限一次,你可以与一名其他角色进行拼点,若你赢,你获得对方拼点牌、对该角色使用卡牌无视距离且可以额外使用一张杀直到回合结束,若你没赢,你受到该角色的1点伤害。',
|
tanlin_info_alter:'出牌阶段限一次,你可以与一名其他角色进行拼点,若你赢,你获得对方拼点牌、对该角色使用卡牌无视距离且可以额外使用一张杀直到回合结束,若你没赢,你受到该角色的1点伤害。',
|
||||||
pozhen_info:'每当你受到一次伤害,若你的手牌数大于伤害来源,你可以弃置X张手牌对其造成1点伤害;若你的手牌数小于伤害来源,你可以弃置其X张手牌。X为你与伤害来源的手牌数之差。',
|
pozhen_info:'每当你受到一次伤害,若你的手牌数大于伤害来源,你可以弃置X张手牌对其造成1点伤害;若你的手牌数小于伤害来源,你可以弃置其X张手牌。X为你与伤害来源的手牌数之差。',
|
||||||
pozhen_info_alter:'每当你受到一次伤害,若你的手牌数小于伤害来源,你可以弃置其X张手牌。X为你与伤害来源的手牌数之差。',
|
pozhen_info_alter:'每当你受到一次伤害,若你的手牌数小于伤害来源,你可以弃置其X张手牌。X为你与伤害来源的手牌数之差。',
|
||||||
yunchou_info:'出牌阶段限一次,你可以弃置一张手牌,并弃置一名其他角色的一张手牌,若两张牌颜色相同,你摸一张牌,否则对方摸一张牌',
|
yunchou_info:'出牌阶段限一次,你可以弃置一张手牌,并弃置一名其他角色的一张手牌,若两张牌颜色相同,你摸一张牌,否则对方摸一张牌。',
|
||||||
yunchou_info_alter:'出牌阶段限一次,你可以弃置一张非基本手牌,并弃置一名其他角色的一张手牌,若两张牌颜色相同,你摸一张牌,否则对方摸一张牌',
|
yunchou_info_alter:'出牌阶段限一次,你可以弃置一张非基本手牌,并弃置一名其他角色的一张手牌,若两张牌颜色相同,你摸一张牌,否则对方摸一张牌。',
|
||||||
swdtianshu_old_info:'结束阶段,你可以弃置一张牌并从三名随机武将中选择一个,在2X回合后你将其所有技能加入你的天书列表,X为其技能数;在技能加入天书列表时,或于出牌阶段,你可以装备一项天书列表中的技能',
|
swdtianshu_old_info:'结束阶段,你可以弃置一张牌并从三名随机武将中选择一个,在2X回合后你将其所有技能加入你的天书列表,X为其技能数;在技能加入天书列表时,或于出牌阶段,你可以装备一项天书列表中的技能。',
|
||||||
swdtianshu_info:'出牌阶段,你可以弃置一张锦囊牌,然后获得一名其他角色的一项技能直到该角色死亡(替换以此法获得的前一个技能)',
|
swdtianshu_info:'出牌阶段,你可以弃置一张锦囊牌,然后获得一名其他角色的一项技能直到该角色死亡(替换以此法获得的前一个技能)。',
|
||||||
zaowu_info:'出牌阶段限一次,你可以将一张黑桃或红桃手牌当作封印之蛋使用',
|
zaowu_info:'出牌阶段限一次,你可以将一张黑桃或红桃手牌当作封印之蛋使用。',
|
||||||
luomei_info:'每当你使用或打出一张梅花花色的牌,你可以摸一张牌',
|
luomei_info:'每当你使用或打出一张梅花花色的牌,你可以摸一张牌。',
|
||||||
xingdian_info:'出牌阶段限一次,你可以弃置一张手牌,然后随机弃置两名敌人各一张牌',
|
xingdian_info:'出牌阶段限一次,你可以弃置一张手牌,然后随机弃置两名敌人各一张牌。',
|
||||||
yulin_info:'每当你即将受到伤害,你可以弃置一张装备牌抵消此伤害',
|
yulin_info:'每当你即将受到伤害,你可以弃置一张装备牌抵消此伤害。',
|
||||||
funiao_info:'出牌阶段限一次,你可以将一张手牌交给一名其他角色,然后摸一张牌并观看其手牌',
|
funiao_info:'出牌阶段限一次,你可以将一张手牌交给一名其他角色,然后摸一张牌并观看其手牌。',
|
||||||
funiao_old_info:'出牌阶段,你可以交给一名角色一张手牌,然后观看其手牌,每个阶段对一名角色只能发动一次',
|
funiao_old_info:'出牌阶段,你可以交给一名角色一张手牌,然后观看其手牌,每个阶段对一名角色只能发动一次。',
|
||||||
xuehuang_info:'限定技,出牌阶段,若你没有黑色手牌,你可以展示并弃置所有手牌,每弃置一张牌视为使用一张火杀,随机指定两名敌人为目标',
|
xuehuang_info:'限定技,出牌阶段,若你没有黑色手牌,你可以展示并弃置所有手牌,每弃置一张牌视为使用一张火杀,随机指定两名敌人为目标。',
|
||||||
zhuyu_info:'每当一名横置的角色即将受到伤害时,你可以弃置一张红色牌令此伤害+1并变为火属性',
|
zhuyu_info:'每当一名横置的角色即将受到伤害时,你可以弃置一张红色牌令此伤害+1并变为火属性。',
|
||||||
ningshuang_info:'每当你成为黑色牌的目标,你可以弃置一张黑色牌将其横置,并摸一张牌,若其已经模置则改为将其翻面',
|
ningshuang_info:'每当你成为黑色牌的目标,你可以弃置一张黑色牌将其横置,并摸一张牌,若其已经模置则改为将其翻面。',
|
||||||
zaowu_old_info:'出牌阶段,你可以弃置三张不同类型的牌,创造任意两张牌并获得之',
|
zaowu_old_info:'出牌阶段,你可以弃置三张不同类型的牌,创造任意两张牌并获得之。',
|
||||||
xielv_info:'弃牌阶段结束后,若你的所有手牌(至少两张)颜色均相同,你可以展示所有手牌,然后回复1点体力并弃置场上的所有判定牌',
|
xielv_info:'弃牌阶段结束后,若你的所有手牌(至少两张)颜色均相同,你可以展示所有手牌,然后回复1点体力并弃置场上的所有判定牌。',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
@ -384,7 +384,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}).set('goon',function(){
|
}).set('goon',function(){
|
||||||
var d1=true;
|
var d1=true;
|
||||||
if(player.hasSkill('jueqing')||player.hasSkill('gangzhi')) d1=false;
|
if(player.hasSkill('jueqing')||player.hasSkill('gangzhi')) d1=false;
|
||||||
if(!target.mayHaveShan()||player.hasSkillTag('directHit_ai',true,{
|
if(!target.mayHaveShan(player,'use')||player.hasSkillTag('directHit_ai',true,{
|
||||||
target:target,
|
target:target,
|
||||||
card:trigger.card,
|
card:trigger.card,
|
||||||
},true)){
|
},true)){
|
||||||
|
@ -457,6 +457,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return event.hasNature();
|
return event.hasNature();
|
||||||
},
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
|
locked:false,
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
if(event.triggername=='damageBegin2'){
|
if(event.triggername=='damageBegin2'){
|
||||||
|
@ -1380,6 +1381,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if (get.tag(card, 'damage') > 0 && target.storage.twchongwangx.contains(player)) return false;
|
if (get.tag(card, 'damage') > 0 && target.storage.twchongwangx.contains(player)) return false;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
locked:false,
|
||||||
unique: true,
|
unique: true,
|
||||||
onremove: true,
|
onremove: true,
|
||||||
global: 'twchongwang_global',
|
global: 'twchongwang_global',
|
||||||
|
@ -2983,7 +2985,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
expose:0.2,
|
expose:0.2,
|
||||||
result:{
|
result:{
|
||||||
target:function(player,target){
|
target:function(player,target){
|
||||||
if(target.countCards('h')<=target.hp&&!target.mayHaveShan()&&get.effect(target,{name:'sha',isCard:true},player,player)>0) return -1;
|
if(target.countCards('h')<=target.hp&&!target.mayHaveShan(player,'use')&&get.effect(target,{name:'sha',isCard:true},player,player)>0) return -1;
|
||||||
else if(target.countCards('h')>target.hp&&target.hp>2&&target.hasShan()) return 1;
|
else if(target.countCards('h')>target.hp&&target.hp>2&&target.hasShan()) return 1;
|
||||||
return 0;
|
return 0;
|
||||||
},
|
},
|
||||||
|
@ -3149,7 +3151,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var eff=list.map(target=>{
|
var eff=list.map(target=>{
|
||||||
if(target==player) return 0;
|
if(target==player) return 0;
|
||||||
return get.effect(target,{name:'sha'},player,player);
|
return get.effect(target,{name:'sha'},player,player);
|
||||||
}).reduce((p,c)=>p+c,0),eff2=list2.map(target=>get.effect(target,{name:'wuzhong'},player,player)).reduce((p,c)=>p+c,0);
|
}).reduce((p,c)=>p+c,0),eff2=list2.map(target=>2*get.effect(target,{name:'draw'},player,player)).reduce((p,c)=>p+c,0);
|
||||||
if(_status.event.controls.contains('选项二')&&eff2>eff) return '选项二';
|
if(_status.event.controls.contains('选项二')&&eff2>eff) return '选项二';
|
||||||
if(eff>0) return 0;
|
if(eff>0) return 0;
|
||||||
return 'cancel2';
|
return 'cancel2';
|
||||||
|
@ -3171,7 +3173,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return _status.event.getParent().list.contains(target);
|
return _status.event.getParent().list.contains(target);
|
||||||
}).set('ai',function(target){
|
}).set('ai',function(target){
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
return get.effect(target,{name:'wuzhong'},player,player);
|
return get.effect(target,{name:'draw'},player,player);
|
||||||
});
|
});
|
||||||
else event.finish();
|
else event.finish();
|
||||||
}
|
}
|
||||||
|
@ -3558,6 +3560,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
trigger:{player:'useCardAfter'},
|
trigger:{player:'useCardAfter'},
|
||||||
group:['twmibei_mark','twmibei_fail'],
|
group:['twmibei_mark','twmibei_fail'],
|
||||||
forced:true,
|
forced:true,
|
||||||
|
locked:false,
|
||||||
direct:true,
|
direct:true,
|
||||||
dutySkill:true,
|
dutySkill:true,
|
||||||
derivation:'twmouli',
|
derivation:'twmouli',
|
||||||
|
@ -6569,7 +6572,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
if(player.hp+player.countCards('hs',{name:['tao','jiu']})<=1) return -1;
|
if(player.hp+player.countCards('hs',{name:['tao','jiu']})<=1) return -1;
|
||||||
var num=1;
|
var num=1;
|
||||||
if((!target.mayHaveShan()||player.hasSkillTag('directHit_ai',true,{
|
if((!target.mayHaveShan(player,'use')||player.hasSkillTag('directHit_ai',true,{
|
||||||
target:target,
|
target:target,
|
||||||
card:{name:'sha'},
|
card:{name:'sha'},
|
||||||
},true))&&!target.hasSkillTag('filterDamage',null,{
|
},true))&&!target.hasSkillTag('filterDamage',null,{
|
||||||
|
@ -7659,6 +7662,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return targets.length>=2;
|
return targets.length>=2;
|
||||||
},
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
|
locked:false,
|
||||||
dutySkill:true,
|
dutySkill:true,
|
||||||
skillAnimation:true,
|
skillAnimation:true,
|
||||||
animationColor:'wood',
|
animationColor:'wood',
|
||||||
|
@ -8586,14 +8590,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(!event.isFirstTarget||!get.tag(event.card,'damage')) return false;
|
if(!event.isFirstTarget||!get.tag(event.card,'damage')) return false;
|
||||||
return !player.hasSkillTag('noCompareSource')&&game.hasPlayer(target=>{
|
return !player.hasSkillTag('noCompareSource')&&game.hasPlayer(target=>{
|
||||||
return target!=player&&target.countCards('h')>0&&!target.hasSkillTag('noCompareTarget');
|
return player.canCompare(target,true);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
direct:true,
|
direct:true,
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.chooseTarget(get.prompt2('twzhenhu'),[1,3],function(card,player,target){
|
player.chooseTarget(get.prompt2('twzhenhu'),[1,3],function(card,player,target){
|
||||||
return target!=player&&target.countCards('h')>0&&!target.hasSkillTag('noCompareTarget');
|
return player.canCompare(target,true);
|
||||||
}).set('ai',function(target){
|
}).set('ai',function(target){
|
||||||
var player=_status.event.player,targets=_status.event.getTrigger().targets;
|
var player=_status.event.player,targets=_status.event.getTrigger().targets;
|
||||||
var num=0;
|
var num=0;
|
||||||
|
@ -8658,10 +8662,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
content:function(){
|
content:function(){
|
||||||
trigger.player.addMark('twlvren',1);
|
trigger.player.addMark('twlvren',1);
|
||||||
},
|
},
|
||||||
|
ai:{
|
||||||
effect:{
|
effect:{
|
||||||
player:function(card,player,target){
|
player:function(card,player,target){
|
||||||
if(target.hasMark('twlvren')) return 0.33;
|
if(target.hasMark('twlvren')) return 0.33;
|
||||||
},
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
marktext:'刃',
|
marktext:'刃',
|
||||||
intro:{name2:'刃',content:'mark'},
|
intro:{name2:'刃',content:'mark'},
|
||||||
|
@ -11084,7 +11090,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var d1=true;
|
var d1=true;
|
||||||
if(trigger.player.hasSkill('jueqing')||trigger.player.hasSkill('gangzhi')) d1=false;
|
if(trigger.player.hasSkill('jueqing')||trigger.player.hasSkill('gangzhi')) d1=false;
|
||||||
for(var target of trigger.targets){
|
for(var target of trigger.targets){
|
||||||
if(!target.mayHaveShan()||trigger.player.hasSkillTag('directHit_ai',true,{
|
if(!target.mayHaveShan(player,'use')||trigger.player.hasSkillTag('directHit_ai',true,{
|
||||||
target:target,
|
target:target,
|
||||||
card:trigger.card,
|
card:trigger.card,
|
||||||
},true)){
|
},true)){
|
||||||
|
@ -11905,7 +11911,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
game.addGlobalSkill('twzhian_ai');
|
game.addGlobalSkill('twzhian_ai');
|
||||||
},
|
},
|
||||||
onremove:function(player){
|
onremove:function(player){
|
||||||
game.removeGlobalSkill('twzhian_ai');
|
if(!game.hasPlayer((current)=>current.hasSkill('twzhian'),true)) game.removeGlobalSkill('twzhian_ai');
|
||||||
},
|
},
|
||||||
usable:1,
|
usable:1,
|
||||||
trigger:{global:'useCardAfter'},
|
trigger:{global:'useCardAfter'},
|
||||||
|
@ -12664,7 +12670,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(!ui.selected.cards.length) return 0;
|
if(!ui.selected.cards.length) return 0;
|
||||||
var sub=get.subtype(ui.selected.cards[0],false);
|
var sub=get.subtype(ui.selected.cards[0],false);
|
||||||
var eff=get.effect(target,ui.selected.cards[0],player,target);
|
var eff=get.effect(target,ui.selected.cards[0],player,target);
|
||||||
if(sub=='equip2') eff+=(get.effect(target,{name:'wuzhong'},target,target)/2);
|
if(sub=='equip2') eff+=(get.effect(target,{name:'draw'},target,target));
|
||||||
if(target.isDamaged()&&(sub=='equip3'||sub=='equip4'||sub=='equip5')) eff+=get.recoverEffect(target,player,player);
|
if(target.isDamaged()&&(sub=='equip3'||sub=='equip4'||sub=='equip5')) eff+=get.recoverEffect(target,player,player);
|
||||||
return eff;
|
return eff;
|
||||||
},
|
},
|
||||||
|
@ -13284,7 +13290,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var d1=true;
|
var d1=true;
|
||||||
if(trigger.player.hasSkill('jueqing')||trigger.player.hasSkill('gangzhi')) d1=false
|
if(trigger.player.hasSkill('jueqing')||trigger.player.hasSkill('gangzhi')) d1=false
|
||||||
for(var target of trigger.targets){
|
for(var target of trigger.targets){
|
||||||
if(!target.mayHaveShan()||trigger.player.hasSkillTag('directHit_ai',true,{
|
if(!target.mayHaveShan(player,'use')||trigger.player.hasSkillTag('directHit_ai',true,{
|
||||||
target:target,
|
target:target,
|
||||||
card:trigger.card,
|
card:trigger.card,
|
||||||
},true)){
|
},true)){
|
||||||
|
@ -14584,7 +14590,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
dynamicTranslate:{
|
dynamicTranslate:{
|
||||||
twfeifu:function(player){
|
twfeifu:function(player){
|
||||||
var str='转换技。';
|
var str='锁定技,转换技。';
|
||||||
if(!player.storage.twfeifu) str+='<span class="bluetext">';
|
if(!player.storage.twfeifu) str+='<span class="bluetext">';
|
||||||
str+='阴:当你成为【杀】的唯一目标后;';
|
str+='阴:当你成为【杀】的唯一目标后;';
|
||||||
if(!player.storage.twfeifu) str+='</span>';
|
if(!player.storage.twfeifu) str+='</span>';
|
||||||
|
|
|
@ -4,6 +4,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
name:'xianding',
|
name:'xianding',
|
||||||
connect:true,
|
connect:true,
|
||||||
character:{
|
character:{
|
||||||
|
dc_sb_zhouyu:['male','wu',4,['dcsbronghuo','dcsbyingmou']],
|
||||||
|
dc_sb_lusu:['male','wu',3,['dcsbmingshi','dcsbmengmou']],
|
||||||
|
zhangjian:['male','qun',105,['dc_zj_a','dc_zj_b'],['unseen']],
|
||||||
zhugeruoxue:['female','wei',3,['dcqiongying','dcnuanhui']],
|
zhugeruoxue:['female','wei',3,['dcqiongying','dcnuanhui']],
|
||||||
caoyi:['female','wei',4,['dcmiyi','dcyinjun']],
|
caoyi:['female','wei',4,['dcmiyi','dcyinjun']],
|
||||||
malingli:['female','shu',3,['dclima','dcxiaoyin','dchuahuo']],
|
malingli:['female','shu',3,['dclima','dcxiaoyin','dchuahuo']],
|
||||||
|
@ -79,7 +82,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
re_liuzan:['male','wu',4,['refenyin','liji']],
|
re_liuzan:['male','wu',4,['refenyin','liji']],
|
||||||
wenyang:['male','wei',5,['xinlvli','choujue']],
|
wenyang:['male','wei',5,['xinlvli','choujue']],
|
||||||
wangshuang:['male','wei',8,['spzhuilie']],
|
wangshuang:['male','wei',8,['spzhuilie']],
|
||||||
huaman:['female','shu',3,['hmmanyi','mansi','souying','zhanyuan']],
|
huaman:['female','shu',3,['manyi','mansi','souying','zhanyuan']],
|
||||||
puyuan:['male','shu',4,['pytianjiang','pyzhuren']],
|
puyuan:['male','shu',4,['pytianjiang','pyzhuren']],
|
||||||
guanlu:['male','wei',3,['tuiyan','busuan','mingjie']],
|
guanlu:['male','wei',3,['tuiyan','busuan','mingjie']],
|
||||||
gexuan:['male','wu',3,['gxlianhua','zhafu']],
|
gexuan:['male','wu',3,['gxlianhua','zhafu']],
|
||||||
|
@ -100,11 +103,359 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp2_jichu:['zhaoang','dc_liuye','dc_wangyun','yanghong','huanfan','xizheng'],
|
sp2_jichu:['zhaoang','dc_liuye','dc_wangyun','yanghong','huanfan','xizheng'],
|
||||||
sp2_yuxiu:['dongguiren','dc_tengfanglan','zhangjinyun','zhoubuyi','dc_xujing'],
|
sp2_yuxiu:['dongguiren','dc_tengfanglan','zhangjinyun','zhoubuyi','dc_xujing'],
|
||||||
sp2_qifu:['dc_guansuo','xin_baosanniang','dc_zhaoxiang'],
|
sp2_qifu:['dc_guansuo','xin_baosanniang','dc_zhaoxiang'],
|
||||||
sp2_gaoshan:['wanglang','liuhui'],
|
sp2_gaoshan:['wanglang','liuhui','zhangjian'],
|
||||||
sp2_wumiao:['wu_zhugeliang','wu_luxun'],
|
sp2_wumiao:['wu_zhugeliang','wu_luxun'],
|
||||||
|
sp2_mouding:['dc_sb_lusu','dc_sb_zhouyu'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//周瑜
|
||||||
|
//无 双 万 军 取 首
|
||||||
|
dcsbronghuo:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'useCard'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return (event.card.name=='sha'&&game.hasNature(event.card,'fire'))||event.card.name=='huogong';
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
content:function(){
|
||||||
|
trigger.baseDamage=game.countGroup();
|
||||||
|
},
|
||||||
|
ai:{threaten:3.5},
|
||||||
|
},
|
||||||
|
dcsbyingmou:{
|
||||||
|
mark:true,
|
||||||
|
marktext:'☯',
|
||||||
|
zhuanhuanji:true,
|
||||||
|
intro:{
|
||||||
|
content:function(storage){
|
||||||
|
if(!storage) return '每回合限一次,当你使用牌指定第一个目标后,你可以选择一名目标角色,你将手牌数摸至与其相同(至多摸五张),然后视为对其使用一张【火攻】。'
|
||||||
|
return '每回合限一次,当你使用牌指定第一个目标后,你可以选择一名目标角色,令一名手牌数为全场最大的角色对其使用手牌中所有的【杀】和伤害类锦囊牌(若其没有可使用的牌则将手牌数弃至与你相同)。';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'useCardToPlayered'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.isFirstTarget;
|
||||||
|
},
|
||||||
|
usable:1,
|
||||||
|
direct:true,
|
||||||
|
content:function*(event,map){
|
||||||
|
var result,player=map.player,targets=map.trigger.targets;
|
||||||
|
var storage=player.storage.dcsbyingmou;
|
||||||
|
if(storage){
|
||||||
|
result=yield player.chooseCardTarget({
|
||||||
|
prompt:get.prompt('dcsbyingmou'),
|
||||||
|
prompt2:'选择一名目标角色,令一名手牌数为全场最大的角色对其使用手牌中所有的【杀】和伤害类锦囊牌(若其没有可使用的牌则将手牌数弃至与你相同)',
|
||||||
|
filterTarget:function(card,player,target){
|
||||||
|
if(!ui.selected.targets.length) return _status.event.targets.includes(target);
|
||||||
|
return target.isMaxHandcard();
|
||||||
|
},
|
||||||
|
selectTarget:2,
|
||||||
|
complexSelect:true,
|
||||||
|
complexTarget:true,
|
||||||
|
multitarget:true,
|
||||||
|
targetprompt:['目标角色','使用角色'],
|
||||||
|
filterCard:()=>false,
|
||||||
|
selectCard:-1,
|
||||||
|
ai2:function(target){
|
||||||
|
var player=_status.event.player;
|
||||||
|
var getNum=function(player,target,source){
|
||||||
|
return player.getCards('h',card=>{
|
||||||
|
if(get.name(card)!='sha'&&(get.type(card)!='trick'||!get.tag(card,'damage'))) return false;
|
||||||
|
return player.canUse(card,target,false);
|
||||||
|
}).reduce((sum,card)=>sum+get.effect(target,card,player,source),0);
|
||||||
|
};
|
||||||
|
if(!ui.selected.targets.length){
|
||||||
|
var targets=game.filterPlayer(target=>target.isMaxHandcard());
|
||||||
|
targets.sort((a,b)=>getNum(b,target,player)-getNum(a,target,player));
|
||||||
|
return getNum(targets[0],target,player)+1;
|
||||||
|
}
|
||||||
|
return getNum(target,ui.selected.targets[0],player)+1;
|
||||||
|
},
|
||||||
|
}).set('targets',targets);
|
||||||
|
}
|
||||||
|
else result=yield player.chooseTarget(get.prompt('dcsbyingmou'),'选择一名目标角色,将手牌数摸至与其相同,然后视为对其使用一张【火攻】',(card,player,target)=>_status.event.targets.includes(target)).set('ai',target=>{
|
||||||
|
var player=_status.event.player;
|
||||||
|
return Math.max(0,Math.min(5,target.countCards('h')-player.countCards('h')))*2+get.effect(target,{name:'huogong'},player,player);
|
||||||
|
}).set('targets',targets);
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
if(storage){
|
||||||
|
player.logSkill('dcsbyingmou',result.targets,false);
|
||||||
|
player.line2(result.targets);
|
||||||
|
player.changeZhuanhuanji('dcsbyingmou');
|
||||||
|
var source=result.targets[1],discard=true;
|
||||||
|
while(true){
|
||||||
|
var cards=source.getCards('h',card=>{
|
||||||
|
if(get.name(card)!='sha'&&(get.type(card)!='trick'||!get.tag(card,'damage'))) return false;
|
||||||
|
return source.canUse(card,target,false);
|
||||||
|
});
|
||||||
|
if(cards.length){
|
||||||
|
if(discard) discard=false;
|
||||||
|
yield source.useCard(cards.randomGet(),target,false);
|
||||||
|
}
|
||||||
|
else break;
|
||||||
|
}
|
||||||
|
if(discard&&player.countCards('h')<source.countCards('h')) source.chooseToDiscard(source.countCards('h')-player.countCards('h'),'h',true);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
player.logSkill('dcsbyingmou',target);
|
||||||
|
player.changeZhuanhuanji('dcsbyingmou');
|
||||||
|
if(player.countCards('h')<target.countCards('h')) player.draw(Math.min(5,target.countCards('h')-player.countCards('h')));
|
||||||
|
if(player.canUse({name:'huogong'},target,false)) player.useCard({name:'huogong'},target,false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else player.storage.counttrigger.dcsbyingmou--;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
//鲁肃
|
||||||
|
dcsbmingshi:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'phaseDrawBegin2'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return !event.numFixed;
|
||||||
|
},
|
||||||
|
frequent:true,
|
||||||
|
content:function(){
|
||||||
|
trigger.num+=2;
|
||||||
|
player.when('phaseDrawEnd').filter((evt,player)=>evt==trigger&&player.countCards('h')).then(()=>{
|
||||||
|
var str='明势:请展示三张牌并令一名其他角色选择获得其中的一张牌';
|
||||||
|
if(player.countCards('h')<=3) str='明势:展示手牌并令一名其他角色选择获得其中的一张牌';
|
||||||
|
player.chooseCardTarget({
|
||||||
|
prompt:str,
|
||||||
|
filterTarget:lib.filter.notMe,
|
||||||
|
filterCard:true,
|
||||||
|
selectCard:function(){
|
||||||
|
var player=_status.event.player;
|
||||||
|
if(player.countCards('h')<=3) return -1;
|
||||||
|
return 3;
|
||||||
|
},
|
||||||
|
position:'h',
|
||||||
|
forced:true,
|
||||||
|
ai1:function(card){
|
||||||
|
return -get.value(card);
|
||||||
|
},
|
||||||
|
ai2:function(target){
|
||||||
|
var player=_status.event.player;
|
||||||
|
if(player.hasSkill('dcsbmengmou')&&!get.is.blocked('dcsbmengmou',player)&&player.storage.dcsbmengmou&&get.attitude(player,target)<0) return get.effect(target,{name:'losehp'},player,player);
|
||||||
|
return get.attitude(player,target);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}).then(()=>{
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
event.target=target;
|
||||||
|
var cards=result.cards;
|
||||||
|
player.showCards(cards,get.translation(player)+'发动了【明势】');
|
||||||
|
target.chooseButton(['明势:请获得其中一张牌',cards],true).set('filterButton',button=>{
|
||||||
|
return lib.filter.canBeGained(button.link,_status.event.source,_status.event.player);
|
||||||
|
}).set('ai',button=>get.value(button.link)).set('source',player);
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
}).then(()=>{
|
||||||
|
if(result.bool){
|
||||||
|
var card=result.links[0];
|
||||||
|
if(lib.filter.canBeGained(card,player,target)) target.gain(card,player,'giveAuto');
|
||||||
|
else game.log('但',card,'不能被',player,'获得!');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
dcsbmengmou:{
|
||||||
|
mark:true,
|
||||||
|
marktext:'☯',
|
||||||
|
zhuanhuanji:true,
|
||||||
|
intro:{
|
||||||
|
content:function(storage){
|
||||||
|
if(!storage) return '每回合限一次,当你得到其他角色的牌后,或其他角色得到你的牌后,你可以令该角色使用至多X张【杀】,且其每以此法造成1点伤害,其回复1点体力。(X为你的体力值)'
|
||||||
|
return '每回合限一次,当你得到其他角色的牌后,或其他角色得到你的牌后,你可令该角色打出至多X张【杀】,然后其失去Y点体力。(X为你的体力值,Y为X-其打出【杀】数)';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
audio:2,
|
||||||
|
trigger:{global:['gainAfter','loseAsyncAfter']},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(!player.getHp()) return false;
|
||||||
|
if(event.name=='loseAsync'&&event.type!='gain') return false;
|
||||||
|
var cards1=event.getl(player).cards2,cards2=event.getg(player);
|
||||||
|
return (!player.hasSkill('dcsbmengmou_true')&&game.hasPlayer(function(current){
|
||||||
|
if(current==player) return false;
|
||||||
|
var cardsx=event.getg(current);
|
||||||
|
return cardsx.some(i=>cards1.includes(i));
|
||||||
|
}))||(!player.hasSkill('dcsbmengmou_false')&&game.hasPlayer(function(current){
|
||||||
|
if(current==player) return false;
|
||||||
|
var cardsx=event.getl(current).cards2;
|
||||||
|
return cards2.some(i=>cardsx.includes(i));
|
||||||
|
}));
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
content:function*(event,map){
|
||||||
|
var player=map.player,trigger=map.trigger;
|
||||||
|
var storage=player.storage.dcsbmengmou;
|
||||||
|
player.addTempSkill('dcsbmengmou_effect','dcsbmengmouAfter');
|
||||||
|
var targets=[],num=player.getHp();
|
||||||
|
var cards1=trigger.getl(player).cards2;
|
||||||
|
var cards2=trigger.getg(player);
|
||||||
|
if(!player.hasSkill('dcsbmengmou_true')) targets.addArray(game.filterPlayer(function(current){
|
||||||
|
if(current==player) return false;
|
||||||
|
var cardsx=trigger.getg(current);
|
||||||
|
return cardsx.some(i=>cards1.includes(i));
|
||||||
|
}));
|
||||||
|
if(!player.hasSkill('dcsbmengmou_false')) targets.addArray(game.filterPlayer(function(current){
|
||||||
|
if(current==player) return false;
|
||||||
|
var cardsx=trigger.getl(current).cards2;
|
||||||
|
return cards2.some(i=>cardsx.includes(i));
|
||||||
|
}));
|
||||||
|
targets.sortBySeat();
|
||||||
|
var check_true=function(player,target){
|
||||||
|
if(get.attitude(player,target)>0){
|
||||||
|
if(target.countCards('hs',card=>{
|
||||||
|
if(get.name(card)!='sha') return false;
|
||||||
|
return target.hasValueTarget(card);
|
||||||
|
})) return 4;
|
||||||
|
return 0.5;
|
||||||
|
}
|
||||||
|
if(get.attitude(player,target)<0){
|
||||||
|
if(!target.countCards('hs',card=>{
|
||||||
|
if(get.name(card)!='sha') return false;
|
||||||
|
return target.hasValueTarget(card);
|
||||||
|
})){
|
||||||
|
if(target.countCards('hs',card=>{
|
||||||
|
if(get.name(card)!='sha') return false;
|
||||||
|
return target.hasUseTarget(card);
|
||||||
|
})) return -3;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
var check_false=function(player,target){
|
||||||
|
if(get.attitude(player,target)<0) return get.effect(target,{name:'losehp'},player,player);
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
var result,target;
|
||||||
|
if(targets.length==1){
|
||||||
|
target=targets[0];
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
if(result.bool){
|
||||||
|
if(!target) target=result.targets[0];
|
||||||
|
player.logSkill('dcsbmengmou',target);
|
||||||
|
player.addTempSkill('dcsbmengmou_'+(storage||false));
|
||||||
|
player.changeZhuanhuanji('dcsbmengmou');
|
||||||
|
while(num>0){
|
||||||
|
num--;
|
||||||
|
var result2;
|
||||||
|
if(storage){
|
||||||
|
result2=yield target.chooseToRespond((card,player)=>{
|
||||||
|
return get.name(card)=='sha';
|
||||||
|
}).set('ai',card=>{
|
||||||
|
return 1+Math.random();
|
||||||
|
}).set('prompt','盟谋:是否打出一张【杀】?').set('prompt2','当前进度:'+(3-num)+'/3');
|
||||||
|
}
|
||||||
|
else result2=yield target.chooseToUse(card=>{
|
||||||
|
if(!lib.filter.cardEnabled(card,_status.event.player,_status.event)) return false;
|
||||||
|
return get.name(card)=='sha';
|
||||||
|
}).set('prompt','盟谋:是否使用一张【杀】?').set('prompt2','当前进度:'+(3-num)+'/3');
|
||||||
|
if(!result2.bool){
|
||||||
|
if(storage){
|
||||||
|
target.popup('杯具');
|
||||||
|
target.loseHp(num+1);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
effect:{
|
||||||
|
charlotte:true,
|
||||||
|
trigger:{global:'damageSource'},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.getParent().type!='card') return false;
|
||||||
|
if(event.source.isHealthy()||event.card.name!='sha') return false;
|
||||||
|
return event.getParent(4).name=='dcsbmengmou'&&event.getParent(4).player==player;
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
firstDo:true,
|
||||||
|
content:function(){
|
||||||
|
trigger.source.recover(trigger.num);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
true:{charlotte:true},
|
||||||
|
false:{charlotte:false},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
//张臶
|
||||||
|
dc_zj_a:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'damageBegin2'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.getParent().type=='card';
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
content:function(){
|
||||||
|
var num=get.number(trigger.card);
|
||||||
|
if(typeof num=='number'&&num>0) trigger.num=num;
|
||||||
|
else trigger.cancel();
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
effect:{
|
||||||
|
target:function(card,player,target,current){
|
||||||
|
if(get.tag(card,'damage')&&typeof get.number(card)!='number') return 'zeroplayertarget';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
dc_zj_b:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'phaseJieshuBegin'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.countDiscardableCards(player,'he');
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
content:function*(event,map){
|
||||||
|
var player=map.player;
|
||||||
|
var result=yield player.chooseTarget(get.prompt2('dc_zj_b'),lib.filter.notMe).set('ai',target=>{
|
||||||
|
var player=_status.event.player;
|
||||||
|
if(!player.hasFriend()) return 0;
|
||||||
|
return -game.countPlayer(current=>current.inRange(target)&&get.attitude(current,target)<0&&get.damageEffect(target,current,current)>0);
|
||||||
|
});
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
player.logSkill('dc_zj_b',target);
|
||||||
|
player.discard(player.getCards('he')).discarder=player;
|
||||||
|
target.addSkill('dc_zj_a');
|
||||||
|
target.addSkill('dc_zj_b_threaten');
|
||||||
|
player.when('phaseBegin').then(()=>{
|
||||||
|
if(target.isIn()){
|
||||||
|
target.removeSkill('dc_zj_a');
|
||||||
|
target.removeSkill('dc_zj_b_threaten');
|
||||||
|
}
|
||||||
|
}).vars({target:target});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
//定要将你赶尽杀绝
|
||||||
|
threaten:{
|
||||||
|
charlotte:true,
|
||||||
|
mark:true,
|
||||||
|
marktext:'噩',
|
||||||
|
intro:{content:'已经开始汗流浃背了'},
|
||||||
|
ai:{threaten:114514*1919810},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
//诸葛若雪
|
//诸葛若雪
|
||||||
dcqiongying:{
|
dcqiongying:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -924,6 +1275,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return !player.hasMark('dccaixia_clear');
|
return !player.hasMark('dccaixia_clear');
|
||||||
},
|
},
|
||||||
direct:true,
|
direct:true,
|
||||||
|
locked:false,
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
var choices=Array.from({length:Math.min(5,game.players.length+game.dead.length)}).map((_,i)=>get.cnNumber(i+1,true));
|
var choices=Array.from({length:Math.min(5,game.players.length+game.dead.length)}).map((_,i)=>get.cnNumber(i+1,true));
|
||||||
|
@ -2168,6 +2520,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
direct:true,
|
direct:true,
|
||||||
|
locked:false,
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
var targets=trigger.targets.filter(target=>{
|
var targets=trigger.targets.filter(target=>{
|
||||||
|
@ -2981,10 +3334,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(num>0&&!player._dczhizhe_mod&&get.itemtype(card)==='card'&&card.hasGaintag('dczhizhe')){
|
if(num>0&&!player._dczhizhe_mod&&get.itemtype(card)==='card'&&card.hasGaintag('dczhizhe')){
|
||||||
if(player.canIgnoreHandcard(card)) return Infinity;
|
if(player.canIgnoreHandcard(card)) return Infinity;
|
||||||
player._dczhizhe_mod=true;
|
player._dczhizhe_mod=true;
|
||||||
if(player.hp<3&&player.needsToDiscard(player.countCards('h',(cardx)=>{
|
if(player.hp<3&&player.needsToDiscard(0,(i,player)=>{
|
||||||
if(player.canIgnoreHandcard(cardx)||get.useful(cardx)>6) return true;
|
return !player.canIgnoreHandcard(i)&&get.useful(i)>6;
|
||||||
return false;
|
})) return num*1.5;
|
||||||
}))) return num*1.5;
|
|
||||||
return num*10;
|
return num*10;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3172,12 +3524,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(!target.hasFriend()) return;
|
if(!target.hasFriend()) return;
|
||||||
var num=1;
|
var num=1;
|
||||||
if(get.attitude(player,target)>0){
|
if(get.attitude(player,target)>0){
|
||||||
if(player.needsToDiscard()){
|
if(player.needsToDiscard()) num=0.5;
|
||||||
num=0.5;
|
else num=0.3;
|
||||||
}
|
|
||||||
else{
|
|
||||||
num=0.3;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if(target.hp>=4) return [1,num*2];
|
if(target.hp>=4) return [1,num*2];
|
||||||
if(target.hp==3) return [1,num*1.5];
|
if(target.hp==3) return [1,num*1.5];
|
||||||
|
@ -3491,12 +3839,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(!target.hasFriend()) return;
|
if(!target.hasFriend()) return;
|
||||||
var num=1;
|
var num=1;
|
||||||
if(get.attitude(player,target)>0){
|
if(get.attitude(player,target)>0){
|
||||||
if(player.needsToDiscard()){
|
if(player.needsToDiscard()) num=0.7;
|
||||||
num=0.7;
|
else num=0.5;
|
||||||
}
|
|
||||||
else{
|
|
||||||
num=0.5;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if(target.hp==2&&target.hasFriend()) return [1,num*1.5];
|
if(target.hp==2&&target.hasFriend()) return [1,num*1.5];
|
||||||
if(target.hp>=2) return [1,num];
|
if(target.hp>=2) return [1,num];
|
||||||
|
@ -4126,6 +4470,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
//谢灵毓
|
//谢灵毓
|
||||||
dcyuandi:{
|
dcyuandi:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
init:()=>{
|
||||||
|
game.addGlobalSkill('dcyuandi_ai');
|
||||||
|
},
|
||||||
|
onremove:()=>{
|
||||||
|
if(!game.hasPlayer(i=>i.hasSkill('dcyuandi'),true)) game.removeGlobalSkill('dcyuandi_ai');
|
||||||
|
},
|
||||||
trigger:{global:'useCard'},
|
trigger:{global:'useCard'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
var evt=event.getParent('phaseUse');
|
var evt=event.getParent('phaseUse');
|
||||||
|
@ -4136,7 +4486,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}).indexOf(event)==0;
|
}).indexOf(event)==0;
|
||||||
},
|
},
|
||||||
direct:true,
|
direct:true,
|
||||||
global:'dcyuandi_ai',
|
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
var target=trigger.player;
|
var target=trigger.player;
|
||||||
|
@ -4180,6 +4529,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return num/3;
|
return num/3;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
trigger:{player:'dieAfter'},
|
||||||
|
filter:()=>{
|
||||||
|
return !game.hasPlayer(i=>i.hasSkill('dcyuandi'),true);
|
||||||
|
},
|
||||||
|
silent:true,
|
||||||
|
forceDie:true,
|
||||||
|
content:()=>{
|
||||||
|
game.removeGlobalSkill('dcyuandi_ai');
|
||||||
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -4361,16 +4719,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.chooseButton([1,num]).set('createDialog',dialog).set('filterButton',button=>{
|
player.chooseButton([1,num]).set('createDialog',dialog).set('filterButton',button=>{
|
||||||
return lib.filter.canBeDiscarded(button.link,_status.event.player,get.owner(button.link));
|
return lib.filter.canBeDiscarded(button.link,_status.event.player,get.owner(button.link));
|
||||||
}).set('ai',button=>{
|
}).set('ai',button=>{
|
||||||
var card=button.link;
|
var player=_status.event.player,
|
||||||
var player=_status.event.player,target=get.owner(card);
|
target=get.owner(button.link),
|
||||||
if(target==player&&ui.cardPile.childNodes.length>80){
|
num=ui.selected.buttons.filter(i=>get.owner(i.link)==target).length;
|
||||||
if(ui.selected.buttons.some(i=>get.owner(i.link)==player)) return 0;
|
if(num>1&&player.hp+player.hujia>2) return 0;
|
||||||
if(get.value(card,player)<6) return 60-get.value(card,player);
|
if(target==player){
|
||||||
|
if(num) return -get.value(button.link,target);
|
||||||
|
if(ui.cardPile.childNodes.length>80) return 6-get.value(card,player);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
var num=ui.selected.buttons.filter(i=>get.owner(i.link)==target).length;
|
|
||||||
var val=get.buttonValue(button);
|
var val=get.buttonValue(button);
|
||||||
if(num>2) val/=Math.sqrt(num);
|
if(num===2) val/=4;
|
||||||
if(get.attitude(player,target)>0) return -val;
|
if(get.attitude(player,target)>0) return -val;
|
||||||
return val;
|
return val;
|
||||||
//return -(get.position(card)!='h'?get.value(card,target):(4.5+Math.random()-0.2*(num>2?1:0)))*get.attitude(player,target);
|
//return -(get.position(card)!='h'?get.value(card,target):(4.5+Math.random()-0.2*(num>2?1:0)))*get.attitude(player,target);
|
||||||
|
@ -4419,7 +4778,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
game.addGlobalSkill('dcaichen_hit');
|
game.addGlobalSkill('dcaichen_hit');
|
||||||
},
|
},
|
||||||
onremove:function(player){
|
onremove:function(player){
|
||||||
game.removeGlobalSkill('dcaichen_hit');
|
if(!game.hasPlayer(current=>current.hasSkill('dcaichen'),true)) game.removeGlobalSkill('dcaichen_hit');
|
||||||
},
|
},
|
||||||
trigger:{
|
trigger:{
|
||||||
player:['loseAfter','phaseDiscardBefore'],
|
player:['loseAfter','phaseDiscardBefore'],
|
||||||
|
@ -4449,7 +4808,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
hit:{
|
hit:{
|
||||||
trigger:{player:'dieAfter'},
|
trigger:{player:'dieAfter'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return !game.hasPlayer(current=>current.hasSkill('dcaichen'));
|
return !game.hasPlayer(current=>current.hasSkill('dcaichen'),true);
|
||||||
},
|
},
|
||||||
silent:true,
|
silent:true,
|
||||||
forceDie:true,
|
forceDie:true,
|
||||||
|
@ -4735,7 +5094,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
targetsx.removeArray(targets);
|
targetsx.removeArray(targets);
|
||||||
return targetsx.reduce((p,c)=>{
|
return targetsx.reduce((p,c)=>{
|
||||||
return p+Math.max(0,get.effect(c,{name:'shunshou_copy2'},player,player));
|
return p+Math.max(0,get.effect(c,{name:'shunshou_copy2'},player,player));
|
||||||
},0)>get.effect(player,{name:'wuzhong'},player,player)/1.5?'选项一':'选项二';
|
},0)>get.effect(player,{name:'draw'},player,player)*1.3?'选项一':'选项二';
|
||||||
}());
|
}());
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.control=='cancel2'){
|
if(result.control=='cancel2'){
|
||||||
|
@ -5162,7 +5521,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
all:{
|
all:{
|
||||||
trigger:{player:'dieAfter'},
|
trigger:{player:'dieAfter'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return !game.hasPlayer(current=>current.hasSkill('dcwumei_wake'));
|
return !game.hasPlayer(current=>current.hasSkill('dcwumei_wake'),true);
|
||||||
},
|
},
|
||||||
silent:true,
|
silent:true,
|
||||||
forceDie:true,
|
forceDie:true,
|
||||||
|
@ -7900,7 +8259,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(current==player||current.countCards('he')==0) return false;
|
if(current==player||current.countCards('he')==0) return false;
|
||||||
return get.effect(current,{name:'guohe_copy2'},player,player)+get.effect(current,{name:'sha'},player,player)>0;
|
return get.effect(current,{name:'guohe_copy2'},player,player)+get.effect(current,{name:'sha'},player,player)>0;
|
||||||
})){
|
})){
|
||||||
if(get.position(card)=='h'&&player.needsToDiscard()>ui.selected.cards.length) return 7+1/Math.max(1,get.value(card));
|
if(get.position(card)=='h'&&player.needsToDiscard(0,(i,player)=>{
|
||||||
|
return !ui.selected.cards.includes(i)&&!player.canIgnoreHandcard(i);
|
||||||
|
})) return 7+1/Math.max(1,get.value(card));
|
||||||
return 7-get.value(card);
|
return 7-get.value(card);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -8167,7 +8528,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
max=get.recoverEffect(current,player,player)*Math.min(evt.getParent().num,player.getDamagedHp());
|
max=get.recoverEffect(current,player,player)*Math.min(evt.getParent().num,player.getDamagedHp());
|
||||||
},
|
},
|
||||||
选项二:function(target){
|
选项二:function(target){
|
||||||
max=get.effect(target,{name:'wuzhong'},player,player)/2*evt.getParent().num;
|
max=get.effect(target,{name:'draw'},player,player)*evt.getParent().num;
|
||||||
},
|
},
|
||||||
选项三:function(target){
|
选项三:function(target){
|
||||||
if(player.isTurnedOver()) max+=25;
|
if(player.isTurnedOver()) max+=25;
|
||||||
|
@ -8820,7 +9181,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.chooseTarget(get.prompt2('juetao'),lib.filter.notMe).set('ai',function(target){
|
player.chooseTarget(get.prompt2('juetao'),lib.filter.notMe).set('ai',function(target){
|
||||||
return -get.attitude(_status.event.player,target);
|
let att=-get.attitude(_status.event.player,target);
|
||||||
|
if(att<=0) return -att;
|
||||||
|
if(target.hasSkillTag('nodamage')) return 0.01*att;
|
||||||
|
if(target.getEquip('tengjia')||target.getEquip('renwang')) return 0.2*att;
|
||||||
|
if(target.getEquip('bugua')) return 0.3*att;
|
||||||
|
if(target.getEquip(2)) return att/2;
|
||||||
|
return 1.2*att;
|
||||||
});
|
});
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
|
@ -11550,19 +11917,38 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
//花鬘
|
//花鬘
|
||||||
manyi:{
|
manyi:{
|
||||||
audio:2,
|
audio:2,
|
||||||
audioname:['mengyou'],
|
audioname:['mengyou','menghuo','zhurong'],
|
||||||
},
|
|
||||||
hmmanyi:{
|
|
||||||
trigger:{target:'useCardToBefore'},
|
trigger:{target:'useCardToBefore'},
|
||||||
forced:true,
|
|
||||||
audio:'manyi',
|
|
||||||
audioname:['mengyou'],
|
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return event.card.name=='nanman';
|
return event.card.name=='nanman';
|
||||||
},
|
},
|
||||||
|
forced:true,
|
||||||
content:function(){
|
content:function(){
|
||||||
trigger.cancel();
|
trigger.cancel();
|
||||||
},
|
},
|
||||||
|
ai:{
|
||||||
|
effect:{
|
||||||
|
target:function(card){
|
||||||
|
if(card.name=='nanman') return 'zerotarget';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
group:'manyi_single',
|
||||||
|
subSkill:{
|
||||||
|
single:{
|
||||||
|
trigger:{
|
||||||
|
player:'enterGame',
|
||||||
|
global:'gameDrawAfter',
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
return get.mode()=='single'&&_status.mode=='normal';
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
player.chooseUseTarget('nanman',get.prompt('manyi'),'视为使用一张【南蛮入侵】').logSkill='manyi';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
mansi:{
|
mansi:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -12691,6 +13077,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
characterIntro:{
|
characterIntro:{
|
||||||
|
zhangjian:'张臶(136年-240年),字子明,钜鹿人。汉末三国时期隐士、音乐家,精通谶纬之学。张臶生活的年代从东汉一直到曹魏齐王时期,受到朝廷多次征召,一直回避,不愿做官。他活了一百零五岁,是三国时期有可靠记载的最长寿的人之一。',
|
||||||
puyuan:'蒲元是三国时蜀汉杰出的工匠。为诸葛亮造刀三千口,并且制作木牛流马。后来姜维为他写过两部传记《蒲元传》《蒲元别传》。',
|
puyuan:'蒲元是三国时蜀汉杰出的工匠。为诸葛亮造刀三千口,并且制作木牛流马。后来姜维为他写过两部传记《蒲元传》《蒲元别传》。',
|
||||||
guanlu:"管辂(209年-256年),字公明,平原(今山东德州平原县)人。三国时期曹魏术士。年八九岁,便喜仰观星辰。成人后,精通《周易》,善于卜筮、相术,习鸟语,相传每言辄中,出神入化。体性宽大,常以德报怨。正元初,为少府丞。北宋时被追封为平原子。管辂是历史上著名的术士,被后世奉为卜卦观相的祖师。",
|
guanlu:"管辂(209年-256年),字公明,平原(今山东德州平原县)人。三国时期曹魏术士。年八九岁,便喜仰观星辰。成人后,精通《周易》,善于卜筮、相术,习鸟语,相传每言辄中,出神入化。体性宽大,常以德报怨。正元初,为少府丞。北宋时被追封为平原子。管辂是历史上著名的术士,被后世奉为卜卦观相的祖师。",
|
||||||
gexuan:"葛玄(164年-244年),汉族,吴丹阳郡句容县都乡吉阳里人(今句容市),祖籍山东琅琊,三国著名高道,道教灵宝派祖师。字孝先,号仙翁,被尊称为“葛天师”。道教尊为葛仙翁,又称太极仙翁,与张道陵、许逊、萨守坚共为四大天师。为汉下邳僮侯葛艾后裔,祖葛矩,安平太守,黄门郎;从祖葛弥,豫章第五郡太守。父葛焉,字德儒,州主簿,山阴令,散骑常侍,大尚书。随左慈学道,得《太清丹经》、《黄帝九鼎神丹经》、《金液丹经》等道经。曾采药海山,吴嘉禾二年(233年),在閤皂山修道建庵,筑坛立炉,修炼九转金丹。喜好遨游山川,去过括苍山、南岳山、罗浮山。编撰《灵宝经诰》,精研上清、灵宝等道家真经,并嘱弟子世世箓传。",
|
gexuan:"葛玄(164年-244年),汉族,吴丹阳郡句容县都乡吉阳里人(今句容市),祖籍山东琅琊,三国著名高道,道教灵宝派祖师。字孝先,号仙翁,被尊称为“葛天师”。道教尊为葛仙翁,又称太极仙翁,与张道陵、许逊、萨守坚共为四大天师。为汉下邳僮侯葛艾后裔,祖葛矩,安平太守,黄门郎;从祖葛弥,豫章第五郡太守。父葛焉,字德儒,州主簿,山阴令,散骑常侍,大尚书。随左慈学道,得《太清丹经》、《黄帝九鼎神丹经》、《金液丹经》等道经。曾采药海山,吴嘉禾二年(233年),在閤皂山修道建庵,筑坛立炉,修炼九转金丹。喜好遨游山川,去过括苍山、南岳山、罗浮山。编撰《灵宝经诰》,精研上清、灵宝等道家真经,并嘱弟子世世箓传。",
|
||||||
|
@ -12812,6 +13199,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
dczhangcai:function(player){
|
dczhangcai:function(player){
|
||||||
return '当你使用或打出'+(player.hasSkill('dczhangcai_all')?'':'点数为8的')+'牌时,你可以摸X张牌(X为你手牌区里'+(player.hasSkill('dczhangcai_all')?'与此牌点数相同':'点数为8')+'的牌数且至少为1)。';
|
return '当你使用或打出'+(player.hasSkill('dczhangcai_all')?'':'点数为8的')+'牌时,你可以摸X张牌(X为你手牌区里'+(player.hasSkill('dczhangcai_all')?'与此牌点数相同':'点数为8')+'的牌数且至少为1)。';
|
||||||
},
|
},
|
||||||
|
dcsbmengmou:function(player){
|
||||||
|
var storage=player.storage.dcsbmengmou;
|
||||||
|
var str='转换技,每回合每项各限一次,当你得到其他角色的牌后,或其他角色得到你的牌后:';
|
||||||
|
if(!storage) str+='<span class="bluetext">';
|
||||||
|
str+='阴,你可以令该角色使用至多X张【杀】,且其每以此法造成1点伤害,其回复1点体力;';
|
||||||
|
if(!storage) str+='</span>';
|
||||||
|
if(storage) str+='<span class="bluetext">';
|
||||||
|
str+='阳,你可令该角色打出至多X张【杀】,然后其失去Y点体力。';
|
||||||
|
if(storage) str+='</span>';
|
||||||
|
str+='(X为你的体力值,Y为X-其打出【杀】数)';
|
||||||
|
return str;
|
||||||
|
},
|
||||||
|
dcsbyingmou:function(player){
|
||||||
|
var storage=player.storage.dcsbyingmou;
|
||||||
|
var str='转换技,每回合限一次,当你使用牌指定第一个目标后,你可以选择一名目标角色:';
|
||||||
|
if(!storage) str+='<span class="bluetext">';
|
||||||
|
str+='阴,你将手牌数摸至与其相同(至多摸五张),然后视为对其使用一张【火攻】;';
|
||||||
|
if(!storage) str+='</span>';
|
||||||
|
if(storage) str+='<span class="bluetext">';
|
||||||
|
str+='阳,令一名手牌数为全场最大的角色对其使用手牌中所有的【杀】和伤害类锦囊牌(若其没有可使用的牌则将手牌数弃至与你相同)。';
|
||||||
|
if(storage) str+='</span>';
|
||||||
|
return str;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
characterReplace:{
|
characterReplace:{
|
||||||
wenyang:['wenyang','db_wenyang','diy_wenyang'],
|
wenyang:['wenyang','db_wenyang','diy_wenyang'],
|
||||||
|
@ -12867,8 +13277,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
wlcuorui_info_identity:'出牌阶段开始时,你可以弃置一名你至其的距离不大于1的角色区域里的一张牌,然后你选择一项:1.弃置另一名其他角色装备区里至多两张与此牌颜色相同的牌;2.展示另一名其他角色的至多两张手牌,然后获得其中与此牌颜色相同的牌。',
|
wlcuorui_info_identity:'出牌阶段开始时,你可以弃置一名你至其的距离不大于1的角色区域里的一张牌,然后你选择一项:1.弃置另一名其他角色装备区里至多两张与此牌颜色相同的牌;2.展示另一名其他角色的至多两张手牌,然后获得其中与此牌颜色相同的牌。',
|
||||||
wlcuorui_info_guozhan:'出牌阶段开始时,你可以弃置一名你至其的距离不大于1的角色区域里的一张牌,然后你选择一项:1.弃置另一名其他角色装备区里至多两张与此牌颜色相同的牌;2.展示另一名其他角色的至多两张手牌,然后获得其中与此牌颜色相同的牌。',
|
wlcuorui_info_guozhan:'出牌阶段开始时,你可以弃置一名你至其的距离不大于1的角色区域里的一张牌,然后你选择一项:1.弃置另一名其他角色装备区里至多两张与此牌颜色相同的牌;2.展示另一名其他角色的至多两张手牌,然后获得其中与此牌颜色相同的牌。',
|
||||||
huaman:'花鬘',
|
huaman:'花鬘',
|
||||||
hmmanyi:'蛮裔',
|
manyi:'蛮裔',
|
||||||
hmmanyi_info:'锁定技,【南蛮入侵】对你无效。',
|
manyi_info:'锁定技,【南蛮入侵】对你无效。',
|
||||||
|
manyi_info_single_normal:'锁定技,【南蛮入侵】对你无效。当你登场时,你可以视为使用一张【南蛮入侵】。',
|
||||||
mansi_viewas:'蛮嗣',
|
mansi_viewas:'蛮嗣',
|
||||||
mansi:'蛮嗣',
|
mansi:'蛮嗣',
|
||||||
mansi_info:'出牌阶段限一次,你可以将所有手牌当做【南蛮入侵】使用;当有角色受到【南蛮入侵】的伤害后,你摸一张牌。',
|
mansi_info:'出牌阶段限一次,你可以将所有手牌当做【南蛮入侵】使用;当有角色受到【南蛮入侵】的伤害后,你摸一张牌。',
|
||||||
|
@ -13317,6 +13728,23 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
dcqiongying_info:'出牌阶段限一次。你可以移动场上的一张牌,然后你弃置一张与此牌花色相同的手牌(若没有该花色的手牌则改为展示所有手牌)。',
|
dcqiongying_info:'出牌阶段限一次。你可以移动场上的一张牌,然后你弃置一张与此牌花色相同的手牌(若没有该花色的手牌则改为展示所有手牌)。',
|
||||||
dcnuanhui:'暖惠',
|
dcnuanhui:'暖惠',
|
||||||
dcnuanhui_info:'结束阶段,你可以选择一名装备区有牌的角色,其可以视为依次使用X张基本牌(X为其装备区牌数)。若其以此法使用了至少两张牌,其弃置装备区里的所有牌。',
|
dcnuanhui_info:'结束阶段,你可以选择一名装备区有牌的角色,其可以视为依次使用X张基本牌(X为其装备区牌数)。若其以此法使用了至少两张牌,其弃置装备区里的所有牌。',
|
||||||
|
zhangjian:'张臶',
|
||||||
|
dc_zj_a:'技能',
|
||||||
|
dc_zj_a_info:'锁定技。当你受到牌造成的伤害时,若此牌有点数,则你将此伤害值改为此牌点数,否则你防止此伤害。',
|
||||||
|
dc_zj_b:'技能',
|
||||||
|
dc_zj_b_info:'结束阶段,你可以弃置所有牌并令一名其他角色获得〖技能〗直到你的下个回合开始。',
|
||||||
|
dc_sb_lusu:'新杀谋鲁肃',
|
||||||
|
dc_sb_lusu_prefix:'新杀谋',
|
||||||
|
dcsbmingshi:'明势',
|
||||||
|
dcsbmingshi_info:'摸牌阶段,你可以多摸两张牌,然后令展示三张牌并令一名其他角色选择获得其中的一张牌。',
|
||||||
|
dcsbmengmou:'盟谋',
|
||||||
|
dcsbmengmou_info:'转换技,每回合每项各限一次,当你得到其他角色的牌后,或其他角色得到你的牌后:阴,你可以令该角色使用至多X张【杀】,且其每以此法造成1点伤害,其回复1点体力;阳,你可令该角色打出至多X张【杀】,然后其失去Y点体力。(X为你的体力值,Y为X-其打出【杀】数)',
|
||||||
|
dc_sb_zhouyu:'新杀谋周瑜',
|
||||||
|
dc_sb_zhouyu_prefix:'新杀谋',
|
||||||
|
dcsbronghuo:'融火',
|
||||||
|
dcsbronghuo_info:'锁定技,当你使用火【杀】或【火攻】时,此牌伤害基值改为场上势力数。',
|
||||||
|
dcsbyingmou:'英谋',
|
||||||
|
dcsbyingmou_info:'转换技,每回合限一次,当你使用牌指定第一个目标后,你可以选择一名目标角色:阴,你将手牌数摸至与其相同(至多摸五张),然后视为对其使用一张【火攻】;阳,令一名手牌数为全场最大的角色对其使用手牌中所有的【杀】和伤害类锦囊牌(若其没有可使用的牌则将手牌数弃至与你相同)。',
|
||||||
|
|
||||||
sp2_yinyu:'隐山之玉',
|
sp2_yinyu:'隐山之玉',
|
||||||
sp2_huben:'百战虎贲',
|
sp2_huben:'百战虎贲',
|
||||||
|
@ -13332,6 +13760,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp2_wumiao:'武庙',
|
sp2_wumiao:'武庙',
|
||||||
sp2_gaoshan:'高山仰止',
|
sp2_gaoshan:'高山仰止',
|
||||||
sp2_qifu:'祈福',
|
sp2_qifu:'祈福',
|
||||||
|
sp2_mouding:'谋定天下',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
@ -653,9 +653,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.chooseTarget('将'+get.translation(result.links)+'交给一名角色',true).ai=function(target){
|
player.chooseTarget('将'+get.translation(result.links)+'交给一名角色',true).ai=function(target){
|
||||||
var att=get.attitude(player,target)/Math.sqrt(target.countCards('h')+1);
|
var att=get.attitude(player,target)/Math.sqrt(target.countCards('h')+1);
|
||||||
if(result.links.length>1){
|
if(result.links.length>1){
|
||||||
if(target==player&&target.needsToDiscard(result.links.length)>1){
|
if(target==player&&target.needsToDiscard(result.links)>1) return att/5;
|
||||||
return att/5;
|
|
||||||
}
|
|
||||||
return att;
|
return att;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -1241,7 +1239,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}).ai=function(target){
|
}).ai=function(target){
|
||||||
var num=0,eff=0,damaged=false;
|
var use=[],eff=0,damaged=false;
|
||||||
for(var i=0;i<hs.length;i++){
|
for(var i=0;i<hs.length;i++){
|
||||||
if(get.info(hs[i]).multitarget) continue;
|
if(get.info(hs[i]).multitarget) continue;
|
||||||
var hef;
|
var hef;
|
||||||
|
@ -1252,7 +1250,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
hef=get.effect(target,hs[i],player,player);
|
hef=get.effect(target,hs[i],player,player);
|
||||||
}
|
}
|
||||||
if(lib.filter.targetEnabled2(hs[i],player,target)&&hef>0){
|
if(lib.filter.targetEnabled2(hs[i],player,target)&&hef>0){
|
||||||
num++;
|
use.push(hs[i]);
|
||||||
if(get.attitude(player,target)>0){
|
if(get.attitude(player,target)>0){
|
||||||
hef/=1.5;
|
hef/=1.5;
|
||||||
if(get.tag(hs[i],'damage')){
|
if(get.tag(hs[i],'damage')){
|
||||||
|
@ -1262,9 +1260,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
eff+=hef;
|
eff+=hef;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!player.needsToDiscard(-num)){
|
if(!player.needsToDiscard(0,(i,player)=>{
|
||||||
return eff;
|
return !use.includes(i)&&!player.canIgnoreHandcard(i);
|
||||||
}
|
})) return eff;
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
'step 1'
|
'step 1'
|
||||||
|
@ -4158,223 +4156,223 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
pal_jushifang:'居十方',
|
pal_jushifang:'居十方',
|
||||||
|
|
||||||
xyufeng:'御蜂',
|
xyufeng:'御蜂',
|
||||||
xyufeng_info:'出牌阶段限一次,可以将一张黑桃牌当作机关蜂使用',
|
xyufeng_info:'出牌阶段限一次,可以将一张黑桃牌当作机关蜂使用。',
|
||||||
lingquan:'灵泉',
|
lingquan:'灵泉',
|
||||||
lingquan_info:'觉醒技,结束阶段,若游戏轮数不小于3且你本回合使用的牌数大于你的体力值,你摸三张牌,然后获得技能【水蕴】',
|
lingquan_info:'觉醒技,结束阶段,若游戏轮数不小于3且你本回合使用的牌数大于你的体力值,你摸三张牌,然后获得技能【水蕴】。',
|
||||||
shenwu:'神舞',
|
shenwu:'神舞',
|
||||||
shenwu_info:'觉醒技,在一名角色的结束阶段,若你本局至少发动过3次【水蕴】,你增加1点体力和体力上限并获得2点护甲,然后获得技能【回梦】',
|
shenwu_info:'觉醒技,在一名角色的结束阶段,若你本局至少发动过3次【水蕴】,你增加1点体力和体力上限并获得2点护甲,然后获得技能【回梦】。',
|
||||||
txianqu:'仙音',
|
txianqu:'仙音',
|
||||||
txianqu_info:'出牌阶段限一次,当你即将造成伤害时,你可以防止之,然后摸两张牌并回复1点体力',
|
txianqu_info:'出牌阶段限一次,当你即将造成伤害时,你可以防止之,然后摸两张牌并回复1点体力。',
|
||||||
qiongguang:'穹光',
|
qiongguang:'穹光',
|
||||||
qiongguang_info:'弃牌阶段结束时,若你弃置了至少两张牌,你可以对所有敌方角色施加一个随机的负面效果',
|
qiongguang_info:'弃牌阶段结束时,若你弃置了至少两张牌,你可以对所有敌方角色施加一个随机的负面效果。',
|
||||||
xunying:'迅影',
|
xunying:'迅影',
|
||||||
xunying_info:'每当你使用杀对一名目标结算完毕后,你可以继续对目标使用杀',
|
xunying_info:'每当你使用杀对一名目标结算完毕后,你可以继续对目标使用杀。',
|
||||||
liefeng:'冽风',
|
liefeng:'冽风',
|
||||||
liefeng_info:'锁定技,当你在回合内使用第二张牌时,你本回合获得【炎斩】;当你在回合内使用第三张牌时,你本回合获得【天剑】;当你在回合内使用第四张牌时,你本回合获得【御风】',
|
liefeng_info:'锁定技,当你在回合内使用第二张牌时,你本回合获得【炎斩】;当你在回合内使用第三张牌时,你本回合获得【天剑】;当你在回合内使用第四张牌时,你本回合获得【御风】。',
|
||||||
yuexing:'越行',
|
yuexing:'越行',
|
||||||
yuexing2:'越行',
|
yuexing2:'越行',
|
||||||
yuexing_info:'出牌阶段限一次,你可以指定一名角色,本阶段内将你与该角色到其他角色的距离基数互换',
|
yuexing_info:'出牌阶段限一次,你可以指定一名角色,本阶段内将你与该角色到其他角色的距离基数互换。',
|
||||||
lingdi:'灵笛',
|
lingdi:'灵笛',
|
||||||
lingdi_info:'出牌阶段,你可以弃置一张本回合与此法弃置的牌花色均不同的手牌,然后选择一名与你距离为X的角色与其各摸一张牌,X为本回合发动灵笛的次数(含此次)',
|
lingdi_info:'出牌阶段,你可以弃置一张本回合与此法弃置的牌花色均不同的手牌,然后选择一名与你距离为X的角色与其各摸一张牌,X为本回合发动灵笛的次数(含此次)。',
|
||||||
xiaoyue:'啸月',
|
xiaoyue:'啸月',
|
||||||
xiaoyue_info:'锁定技,每轮开始时,若你手牌中有杀,你将手牌中的一张随机杀对一名随机敌方角色使用,然后获得1点护甲',
|
xiaoyue_info:'锁定技,每轮开始时,若你手牌中有杀,你将手牌中的一张随机杀对一名随机敌方角色使用,然后获得1点护甲。',
|
||||||
minsha:'冥煞',
|
minsha:'冥煞',
|
||||||
minsha_info:'出牌阶段限一次,你可以弃置两张牌,对一名体力值大于1的其他角色造成1点雷属性伤害,然后距离目标1以内的所有其他角色随机弃置一张牌',
|
minsha_info:'出牌阶段限一次,你可以弃置两张牌,对一名体力值大于1的其他角色造成1点雷属性伤害,然后距离目标1以内的所有其他角色随机弃置一张牌。',
|
||||||
xhuanlei:'唤雷',
|
xhuanlei:'唤雷',
|
||||||
xhuanlei_info:'每当你受到一次伤害,若伤害来源体力值大于你,你可以对其造成1点雷属性伤害,然后其摸一张牌',
|
xhuanlei_info:'每当你受到一次伤害,若伤害来源体力值大于你,你可以对其造成1点雷属性伤害,然后其摸一张牌。',
|
||||||
anwugu:'巫蛊',
|
anwugu:'巫蛊',
|
||||||
anwugu2:'蛊',
|
anwugu2:'蛊',
|
||||||
anwugu_info:'每当你对其他角色造成一次伤害,你可以令目标获得三枚蛊标记;拥有蛊标记的角色手牌上限-1,每回合最多使用X张牌(X为蛊标记数),每个结束阶段失去一枚蛊标记',
|
anwugu_info:'每当你对其他角色造成一次伤害,你可以令目标获得三枚蛊标记;拥有蛊标记的角色手牌上限-1,每回合最多使用X张牌(X为蛊标记数),每个结束阶段失去一枚蛊标记。',
|
||||||
xtanxi:'探息',
|
xtanxi:'探息',
|
||||||
xtanxi_info:'出牌阶段限一次,你可以弃置一张手牌,然后随机选择一名手牌中有与之同名的牌的敌方角色,观看其手牌并获得任意一张',
|
xtanxi_info:'出牌阶段限一次,你可以弃置一张手牌,然后随机选择一名手牌中有与之同名的牌的敌方角色,观看其手牌并获得任意一张。',
|
||||||
linghuo:'灵火',
|
linghuo:'灵火',
|
||||||
linghuo_info:'每两轮限一次,在一名其他角色的结束阶段,若其本回合内造成过伤害,你可以对其造成1点火属性伤害',
|
linghuo_info:'每两轮限一次,在一名其他角色的结束阶段,若其本回合内造成过伤害,你可以对其造成1点火属性伤害。',
|
||||||
guijin:'归烬',
|
guijin:'归烬',
|
||||||
guijin2:'归烬',
|
guijin2:'归烬',
|
||||||
guijin2_bg:'烬',
|
guijin2_bg:'烬',
|
||||||
guijin_info:'每三轮限一次,出牌阶段,你可以观看牌堆顶的四张牌,然后可以将其中任意张牌分配给任意角色,被分到牌的角色跳过下一摸牌阶段,然后将剩余牌以原顺序放回牌堆顶',
|
guijin_info:'每三轮限一次,出牌阶段,你可以观看牌堆顶的四张牌,然后可以将其中任意张牌分配给任意角色,被分到牌的角色跳过下一摸牌阶段,然后将剩余牌以原顺序放回牌堆顶。',
|
||||||
chengxin:'澄心',
|
chengxin:'澄心',
|
||||||
chengxin2:'澄心',
|
chengxin2:'澄心',
|
||||||
chengxin2_bg:'心',
|
chengxin2_bg:'心',
|
||||||
chengxin_info:'每四轮限一次,当一名角色进入濒死状态时,你可以令其将体力值回复至1,然后该角色防止一切伤害直到下一回合结束',
|
chengxin_info:'每四轮限一次,当一名角色进入濒死状态时,你可以令其将体力值回复至1,然后该角色防止一切伤害直到下一回合结束。',
|
||||||
tianwu:'天舞',
|
tianwu:'天舞',
|
||||||
tianwu_info:'每当你使用卡牌指定一名敌方角色为惟一目标,你可以对其施加一个随机的负面效果',
|
tianwu_info:'每当你使用卡牌指定一名敌方角色为惟一目标,你可以对其施加一个随机的负面效果。',
|
||||||
tianwu_info_alter:'每当你使用卡牌指定一名敌方角色为惟一目标,你可以对其施加一个随机的负面效果,每回合限发动一次',
|
tianwu_info_alter:'每当你使用卡牌指定一名敌方角色为惟一目标,你可以对其施加一个随机的负面效果,每回合限发动一次。',
|
||||||
liguang:'离光',
|
liguang:'离光',
|
||||||
liguang_info:'结束阶段,你可以弃置一张手牌并将场上的一张牌移动到另一个合理的位置',
|
liguang_info:'结束阶段,你可以弃置一张手牌并将场上的一张牌移动到另一个合理的位置。',
|
||||||
shiying:'逝影',
|
shiying:'逝影',
|
||||||
shiying_info:'限定技,在一名其他角色死亡前,你可以防止其死亡,然后你与该角色失去全部技能、将体力和体力上限变为3、移去所有牌并摸三张牌。',
|
shiying_info:'限定技,在一名其他角色死亡前,你可以防止其死亡,然后你与该角色失去全部技能、将体力和体力上限变为3、移去所有牌并摸三张牌。',
|
||||||
yujia:'御甲',
|
yujia:'御甲',
|
||||||
yujia_info:'每当你使用一张未强化的装备牌,你可以随机观看X张机关牌,并选择一张获得之,X为你本局使用过的机关牌数且至少为1',
|
yujia_info:'每当你使用一张未强化的装备牌,你可以随机观看X张机关牌,并选择一张获得之,X为你本局使用过的机关牌数且至少为1。',
|
||||||
xiepan:'械磐',
|
xiepan:'械磐',
|
||||||
xiepan_info:'每当你失去最后一张基本牌,你可以弃置一张手牌,然后获得一张随机装备牌',
|
xiepan_info:'每当你失去最后一张基本牌,你可以弃置一张手牌,然后获得一张随机装备牌。',
|
||||||
yanshi:'偃师',
|
yanshi:'偃师',
|
||||||
yanshi_info:'觉醒技,结束阶段,若你累计有4个回合使用过机关牌,你增加1点体力和体力上限,然后用随机装备填满你的装备区',
|
yanshi_info:'觉醒技,结束阶段,若你累计有4个回合使用过机关牌,你增加1点体力和体力上限,然后用随机装备填满你的装备区。',
|
||||||
ywuhun:'雾魂',
|
ywuhun:'雾魂',
|
||||||
ywuhun_bg:'魂',
|
ywuhun_bg:'魂',
|
||||||
ywuhun_info:'锁定技,回合开始前,你获得一个额外的回合,并在此回合结束后复原场上及牌堆中的所有牌;当你在此回合中造成伤害后,终止所有结算并结束此回合',
|
ywuhun_info:'锁定技,回合开始前,你获得一个额外的回合,并在此回合结束后复原场上及牌堆中的所有牌;当你在此回合中造成伤害后,终止所有结算并结束此回合。',
|
||||||
// ywuhun_info_alter:'锁定技,回合开始前,你获得一个额外的回合,并在此回合结束后复原场上及牌堆中的所有牌;当你在此回合中造成伤害后,终止所有结算并结束此回合',
|
// ywuhun_info_alter:'锁定技,回合开始前,你获得一个额外的回合,并在此回合结束后复原场上及牌堆中的所有牌;当你在此回合中造成伤害后,终止所有结算并结束此回合。',
|
||||||
feichen:'飞尘',
|
feichen:'飞尘',
|
||||||
feichen_info:'',
|
feichen_info:'',
|
||||||
tanhua:'昙华',
|
tanhua:'昙华',
|
||||||
tanhua_info:'锁定技,你回复体力的效果改为摸两张牌;当你进入濒死状态时,你回复1点体力并失去此技能',
|
tanhua_info:'锁定技,你回复体力的效果改为摸两张牌;当你进入濒死状态时,你回复1点体力并失去此技能。',
|
||||||
xjyingfeng:'影锋',
|
xjyingfeng:'影锋',
|
||||||
xjyingfeng_info:'锁定技,每当你使用一张杀结算完毕后,你随机对一名不是此杀目标的敌方角色使用一张杀',
|
xjyingfeng_info:'锁定技,每当你使用一张杀结算完毕后,你随机对一名不是此杀目标的敌方角色使用一张杀。',
|
||||||
fenglue:'风掠',
|
fenglue:'风掠',
|
||||||
fenglue_info:'你可以放弃出牌阶段,改为指定一名其他角色并选择任意张手牌,依次对该角色使用,若如此做,此阶段内该角色每受到1点伤害,你在结算后摸一张牌',
|
fenglue_info:'你可以放弃出牌阶段,改为指定一名其他角色并选择任意张手牌,依次对该角色使用,若如此做,此阶段内该角色每受到1点伤害,你在结算后摸一张牌。',
|
||||||
xjzongyu:'纵雨',
|
xjzongyu:'纵雨',
|
||||||
xjzongyu_info:'出牌阶段限一次,你可以弃置一张黑色手牌,视为使用一张飞镖,随机指定两名敌方角色为目标',
|
xjzongyu_info:'出牌阶段限一次,你可以弃置一张黑色手牌,视为使用一张飞镖,随机指定两名敌方角色为目标。',
|
||||||
fanling:'返灵',
|
fanling:'返灵',
|
||||||
fanling_info:'锁定技,每当一名角色失去体力,你回复1点体力,每回合只能发动一次',
|
fanling_info:'锁定技,每当一名角色失去体力,你回复1点体力,每回合只能发动一次。',
|
||||||
huahu:'化狐',
|
huahu:'化狐',
|
||||||
huahu_bg:'狐',
|
huahu_bg:'狐',
|
||||||
huahu_info:'限定技,你可以失去所有技能和1点体力上限,然后令任意名其他角色回复1点体力、获得1点护甲并摸一张牌',
|
huahu_info:'限定技,你可以失去所有技能和1点体力上限,然后令任意名其他角色回复1点体力、获得1点护甲并摸一张牌。',
|
||||||
sheying:'蛇影',
|
sheying:'蛇影',
|
||||||
sheying_info:'每回合限一次,当你使用卡牌造成一次伤害后,你可以进行一次判定,若结果为黑色,你收回此牌',
|
sheying_info:'每回合限一次,当你使用卡牌造成一次伤害后,你可以进行一次判定,若结果为黑色,你收回此牌。',
|
||||||
dujiang:'毒降',
|
dujiang:'毒降',
|
||||||
dujiang_info:'出牌阶段限一次,你可以弃置一张黑色牌令一名随机敌人获得一张毒',
|
dujiang_info:'出牌阶段限一次,你可以弃置一张黑色牌令一名随机敌人获得一张毒。',
|
||||||
binxin:'冰心',
|
binxin:'冰心',
|
||||||
binxin_info:'在一名角色的结束阶段,若其体力值为1,你可以令其获得1点护甲',
|
binxin_info:'在一名角色的结束阶段,若其体力值为1,你可以令其获得1点护甲。',
|
||||||
qixia:'绮霞',
|
qixia:'绮霞',
|
||||||
qixia_info:'锁定技,当你累计使用或打出了4种不同花色的牌后,你于本回合结束后获得一个额外回合',
|
qixia_info:'锁定技,当你累计使用或打出了4种不同花色的牌后,你于本回合结束后获得一个额外回合。',
|
||||||
jianzhen:'剑阵',
|
jianzhen:'剑阵',
|
||||||
jianzhen_info:'锁定技,当你使用杀对目标结算完毕后,其他角色可以对该目标使用一张杀,当有人选择出杀后终止此结算',
|
jianzhen_info:'锁定技,当你使用杀对目标结算完毕后,其他角色可以对该目标使用一张杀,当有人选择出杀后终止此结算。',
|
||||||
husha:'虎煞',
|
husha:'虎煞',
|
||||||
husha_bg:'煞',
|
husha_bg:'煞',
|
||||||
husha_info:'每当你于出牌阶段造成1点伤害,你获得一枚虎煞标记(标记数不超过3);结束阶段,你可以选择一项:1. 移去一枚虎煞标记,视为对任意角色使用一张杀;2. 移去两枚虎煞标记,视为使用一张南蛮入侵;3. 移去三枚虎煞标记,视为对除你之外的角色使用一张元素毁灭',
|
husha_info:'每当你于出牌阶段造成1点伤害,你获得一枚虎煞标记(标记数不超过3);结束阶段,你可以选择一项:1. 移去一枚虎煞标记,视为对任意角色使用一张杀;2. 移去两枚虎煞标记,视为使用一张南蛮入侵;3. 移去三枚虎煞标记,视为对除你之外的角色使用一张元素毁灭。',
|
||||||
longhuo:'龙火',
|
longhuo:'龙火',
|
||||||
longhuo_info:'结束阶段,你可以对所有角色各造成1点火焰伤害',
|
longhuo_info:'结束阶段,你可以对所有角色各造成1点火焰伤害。',
|
||||||
fenshi:'焚世',
|
fenshi:'焚世',
|
||||||
fenshi_info:'觉醒技,当你解除濒死状态时,你获得2点护甲,摸两张牌,然后获得技能龙火',
|
fenshi_info:'觉醒技,当你解除濒死状态时,你获得2点护甲,摸两张牌,然后获得技能龙火。',
|
||||||
yanzhan:'炎斩',
|
yanzhan:'炎斩',
|
||||||
yanzhan_info:'出牌阶段限一次,你可以将一张红色牌当作火杀使用,此杀只能用与之花色相同的闪响应;若此杀造成了伤害,你本回合可以额外使用一张杀',
|
yanzhan_info:'出牌阶段限一次,你可以将一张红色牌当作火杀使用,此杀只能用与之花色相同的闪响应;若此杀造成了伤害,你本回合可以额外使用一张杀。',
|
||||||
feixia:'飞霞',
|
feixia:'飞霞',
|
||||||
feixia_info:'出牌阶段限一次,你可以弃置一张红色牌视为对一名随机敌人使用一张不计入出杀次数的杀',
|
feixia_info:'出牌阶段限一次,你可以弃置一张红色牌视为对一名随机敌人使用一张不计入出杀次数的杀。',
|
||||||
lueying:'掠影',
|
lueying:'掠影',
|
||||||
lueying_info:'每当你使用一张杀,你可以随机获得目标的一张牌,然后目标可以指定一名其他角色,你弃置该角色一张牌(每回合限发动一次,没有弃牌目标时无法发动)',
|
lueying_info:'每当你使用一张杀,你可以随机获得目标的一张牌,然后目标可以指定一名其他角色,你弃置该角色一张牌(每回合限发动一次,没有弃牌目标时无法发动)。',
|
||||||
feng:'风',
|
feng:'风',
|
||||||
feng_info:'锁定技,当你累计摸2次牌后,你下一次摸牌时摸牌数+1',
|
feng_info:'锁定技,当你累计摸2次牌后,你下一次摸牌时摸牌数+1。',
|
||||||
ya:'雅',
|
ya:'雅',
|
||||||
ya_info:'锁定技,当你累计受到2次伤害后,你下一次受到的伤害-1',
|
ya_info:'锁定技,当你累计受到2次伤害后,你下一次受到的伤害-1。',
|
||||||
song:'颂',
|
song:'颂',
|
||||||
song_info:'锁定技,当你累计造成2次伤害后,你下一次造成的伤害+1',
|
song_info:'锁定技,当你累计造成2次伤害后,你下一次造成的伤害+1。',
|
||||||
longxiang:'龙翔',
|
longxiang:'龙翔',
|
||||||
longxiang_info:'当你使用杀指定目标后,你可以弃置目标若干张手牌直到其手牌数与你相同',
|
longxiang_info:'当你使用杀指定目标后,你可以弃置目标若干张手牌直到其手牌数与你相同。',
|
||||||
huxi:'虎袭',
|
huxi:'虎袭',
|
||||||
huxi_info:'你可以失去1点体力并获得1点护甲,视为使用一张杀',
|
huxi_info:'你可以失去1点体力并获得1点护甲,视为使用一张杀。',
|
||||||
xuanmo:'玄墨',
|
xuanmo:'玄墨',
|
||||||
xuanmo_info:'出牌阶段限一次,你可以将一张手牌置于牌堆顶并随机获得两张与之类别相同的牌',
|
xuanmo_info:'出牌阶段限一次,你可以将一张手牌置于牌堆顶并随机获得两张与之类别相同的牌。',
|
||||||
danqing:'丹青',
|
danqing:'丹青',
|
||||||
danqing_info:'结束阶段,若你累计使用了4张花色不同的牌,你可以选择至多4名角色随机获得一个正面效果',
|
danqing_info:'结束阶段,若你累计使用了4张花色不同的牌,你可以选择至多4名角色随机获得一个正面效果。',
|
||||||
danqing_info_alter:'结束阶段,若你累计使用了4张花色不同的牌,你可以选择至多2名角色随机获得一个正面效果',
|
danqing_info_alter:'结束阶段,若你累计使用了4张花色不同的牌,你可以选择至多2名角色随机获得一个正面效果。',
|
||||||
zhangmu:'障目',
|
zhangmu:'障目',
|
||||||
zhangmu_info:'每回合限一次,当你需要使用或打出一张闪时,你可以展示一张闪,视为使用或打出了此闪',
|
zhangmu_info:'每回合限一次,当你需要使用或打出一张闪时,你可以展示一张闪,视为使用或打出了此闪。',
|
||||||
feizhua:'飞爪',
|
feizhua:'飞爪',
|
||||||
feizhua_info:'当你使用一张杀时,你可以将与目标相邻的角色追加为额外目标',
|
feizhua_info:'当你使用一张杀时,你可以将与目标相邻的角色追加为额外目标。',
|
||||||
leiyu:'雷狱',
|
leiyu:'雷狱',
|
||||||
leiyu_info:'结束阶段,你可以弃置一张黑色手牌,视为对本回合内所有成为过你的卡牌目标的角色使用一张惊雷闪',
|
leiyu_info:'结束阶段,你可以弃置一张黑色手牌,视为对本回合内所有成为过你的卡牌目标的角色使用一张惊雷闪。',
|
||||||
lingxue:'灵血',
|
lingxue:'灵血',
|
||||||
lingxue_info:'锁定技,每当你回复1点体力,你获得1点护甲',
|
lingxue_info:'锁定技,每当你回复1点体力,你获得1点护甲。',
|
||||||
zhaoyao:'招摇',
|
zhaoyao:'招摇',
|
||||||
zhaoyao_info:'其他角色的摸牌阶段开始时,你可以与其拼点,若你赢,你摸两张牌,然后将两张牌置于牌堆顶',
|
zhaoyao_info:'其他角色的摸牌阶段开始时,你可以与其拼点,若你赢,你摸两张牌,然后将两张牌置于牌堆顶。',
|
||||||
sheling:'摄灵',
|
sheling:'摄灵',
|
||||||
sheling_info:'其他角色于你的回合内因使用、打出或弃置而失去牌时,你可以获得之(每回合最多发动三次)',
|
sheling_info:'其他角色于你的回合内因使用、打出或弃置而失去牌时,你可以获得之(每回合最多发动三次)。',
|
||||||
fenxing:'分形',
|
fenxing:'分形',
|
||||||
fenxing_info:'锁定技,准备阶段,你有50%概率变身为另一形态',
|
fenxing_info:'锁定技,准备阶段,你有50%概率变身为另一形态。',
|
||||||
guijiang:'鬼降',
|
guijiang:'鬼降',
|
||||||
guijiang2:'鬼降',
|
guijiang2:'鬼降',
|
||||||
guijiang_info:'出牌阶段限一次,你可以弃置一张黑色牌,令一名其他角色无法成为回复牌的目标直到你下一回合开始',
|
guijiang_info:'出牌阶段限一次,你可以弃置一张黑色牌,令一名其他角色无法成为回复牌的目标直到你下一回合开始。',
|
||||||
diesha:'叠杀',
|
diesha:'叠杀',
|
||||||
diesha_info:'锁定技,每当你使用杀造成伤害,受伤害角色失去1点体力,你回复1点体力',
|
diesha_info:'锁定技,每当你使用杀造成伤害,受伤害角色失去1点体力,你回复1点体力。',
|
||||||
lingyu:'灵愈',
|
lingyu:'灵愈',
|
||||||
lingyu_info:'结束阶段,你可以令一名其他角色回复1点体力',
|
lingyu_info:'结束阶段,你可以令一名其他角色回复1点体力。',
|
||||||
diewu:'蝶舞',
|
diewu:'蝶舞',
|
||||||
diewu_info:'出牌阶段,你可以将一张【杀】交给一名角色,若你于此阶段内首次如此做,你摸一张牌',
|
diewu_info:'出牌阶段,你可以将一张【杀】交给一名角色,若你于此阶段内首次如此做,你摸一张牌。',
|
||||||
duxinshu:'读心',
|
duxinshu:'读心',
|
||||||
duxinshu_info:'出牌阶段限一次,你可以观看一名其他角色的手牌,然后可以用一张手牌替换其中的一张',
|
duxinshu_info:'出牌阶段限一次,你可以观看一名其他角色的手牌,然后可以用一张手牌替换其中的一张。',
|
||||||
feixu:'飞絮',
|
feixu:'飞絮',
|
||||||
feixu_info:'每当一名角色使用或打出一张闪,你可以令其摸一张牌',
|
feixu_info:'每当一名角色使用或打出一张闪,你可以令其摸一张牌。',
|
||||||
xuanyan:'玄炎',
|
xuanyan:'玄炎',
|
||||||
xuanyan2:'玄炎',
|
xuanyan2:'玄炎',
|
||||||
xuanyan_info:'锁定技,你的火属性伤害+1;你造成火属性伤害后失去1点体力',
|
xuanyan_info:'锁定技,你的火属性伤害+1;你造成火属性伤害后失去1点体力。',
|
||||||
ningbin:'凝冰',
|
ningbin:'凝冰',
|
||||||
ningbin_info:'锁定技,每当你受到1次雷属性伤害,你回复1点体力',
|
ningbin_info:'锁定技,每当你受到1次雷属性伤害,你回复1点体力。',
|
||||||
xfenxin:'焚心',
|
xfenxin:'焚心',
|
||||||
xfenxin2:'焚心',
|
xfenxin2:'焚心',
|
||||||
xfenxin_info:'锁定技,每当你的体力值发生改变,你摸等量的牌;每当你杀死一名角色,你增加1点体力上限并回复1点体力',
|
xfenxin_info:'锁定技,每当你的体力值发生改变,你摸等量的牌;每当你杀死一名角色,你增加1点体力上限并回复1点体力。',
|
||||||
xfenxin_info_alter:'锁定技,每当你的体力值发生改变,你摸一张牌',
|
xfenxin_info_alter:'锁定技,每当你的体力值发生改变,你摸一张牌。',
|
||||||
luanjian:'乱剑',
|
luanjian:'乱剑',
|
||||||
luanjian_info:'出牌阶段,你可以将两张杀当杀使用,此杀无视距离,可以指定任意名目标且有50%的机率伤害+1',
|
luanjian_info:'出牌阶段,你可以将两张杀当杀使用,此杀无视距离,可以指定任意名目标且有50%的机率伤害+1。',
|
||||||
ctianfu:'天符',
|
ctianfu:'天符',
|
||||||
ctianfu2:'天符',
|
ctianfu2:'天符',
|
||||||
ctianfu3:'天符',
|
ctianfu3:'天符',
|
||||||
ctianfu_info:'出牌阶段,你可以将一张闪置于一名其他角色的武将牌上,该角色在下一次造成伤害时受到来自你的1点雷属性伤害并随机弃置一张牌,然后移去此牌',
|
ctianfu_info:'出牌阶段,你可以将一张闪置于一名其他角色的武将牌上,该角色在下一次造成伤害时受到来自你的1点雷属性伤害并随机弃置一张牌,然后移去此牌。',
|
||||||
shuiyun:'水蕴',
|
shuiyun:'水蕴',
|
||||||
shuiyun_bg:'蕴',
|
shuiyun_bg:'蕴',
|
||||||
shuiyun2:'水蕴',
|
shuiyun2:'水蕴',
|
||||||
shuiyun5:'水蕴',
|
shuiyun5:'水蕴',
|
||||||
shuiyun3:'水蕴',
|
shuiyun3:'水蕴',
|
||||||
shuiyun_info:'结束阶段,你可以将一张与武将牌上的牌类别均不相同的手牌置于武将牌上称为“蕴”;任意一名角色处于濒死状态时,你可以弃置一张“蕴”令其回复1点体力',
|
shuiyun_info:'结束阶段,你可以将一张与武将牌上的牌类别均不相同的手牌置于武将牌上称为“蕴”;任意一名角色处于濒死状态时,你可以弃置一张“蕴”令其回复1点体力。',
|
||||||
shuiyun_info_alter:'结束阶段,你可以将一张与武将牌上的牌类别均不相同的手牌置于武将牌上称为“蕴”(不能超过2张);任意一名角色处于濒死状态时,你可以弃置一张“蕴”令其回复1点体力',
|
shuiyun_info_alter:'结束阶段,你可以将一张与武将牌上的牌类别均不相同的手牌置于武将牌上称为“蕴”(不能超过2张);任意一名角色处于濒死状态时,你可以弃置一张“蕴”令其回复1点体力。',
|
||||||
wangyou:'忘忧',
|
wangyou:'忘忧',
|
||||||
wangyou_info:'其他角色的结束阶段,你可以弃置一张牌,令此回合内受过伤害的所有角色各摸一张牌',
|
wangyou_info:'其他角色的结束阶段,你可以弃置一张牌,令此回合内受过伤害的所有角色各摸一张牌。',
|
||||||
changnian:'长念',
|
changnian:'长念',
|
||||||
changnian2:'追思',
|
changnian2:'追思',
|
||||||
changnian2_info:'锁定技,结束阶段,你摸一张牌',
|
changnian2_info:'锁定技,结束阶段,你摸一张牌。',
|
||||||
changnian_info:'你死亡时,可以将所有牌交给一名其他角色,令其获得技能【追思】',
|
changnian_info:'你死亡时,可以将所有牌交给一名其他角色,令其获得技能〖追思〗。',
|
||||||
sajin:'洒金',
|
sajin:'洒金',
|
||||||
sajin_info:'出牌阶段限一次,你可以弃置一张手牌并指定任意名角色进行判定,若判定颜色与你弃置的牌相同,该角色回复1点体力',
|
sajin_info:'出牌阶段限一次,你可以弃置一张手牌并指定任意名角色进行判定,若判定颜色与你弃置的牌相同,该角色回复1点体力。',
|
||||||
jtjubao:'聚宝',
|
jtjubao:'聚宝',
|
||||||
jtjubao_info:'当其他角色于你的回合外首次弃置非基本牌时,你可以获得其中的随机一张',
|
jtjubao_info:'当其他角色于你的回合外首次弃置非基本牌时,你可以获得其中的随机一张。',
|
||||||
guiyuan:'归元',
|
guiyuan:'归元',
|
||||||
guiyuan_info:'出牌阶段限一次,你可以弃置一张杀,然后回复1点体力并摸一张牌',
|
guiyuan_info:'出牌阶段限一次,你可以弃置一张杀,然后回复1点体力并摸一张牌。',
|
||||||
xshuangren:'双刃',
|
xshuangren:'双刃',
|
||||||
xshuangren_info:'当你的武器牌被替换时,你可以将其置于你的武将牌上,并获得此装备的武器效果(不含距离)',
|
xshuangren_info:'当你的武器牌被替换时,你可以将其置于你的武将牌上,并获得此装备的武器效果(不含距离)。',
|
||||||
duci:'毒刺',
|
duci:'毒刺',
|
||||||
duci_info:'每当你失去一次装备牌,可以对距离1以内的一名其他角色造成1点伤害',
|
duci_info:'每当你失去一次装备牌,可以对距离1以内的一名其他角色造成1点伤害。',
|
||||||
shenmu:'神木',
|
shenmu:'神木',
|
||||||
shenmu_info:'任意一名角色濒死时,你可以展示你的手牌并弃置其中的所有红色牌(至少一张),若如此做,该角色回复1点体力,然后摸X张牌,X为你弃置的手牌数',
|
shenmu_info:'任意一名角色濒死时,你可以展示你的手牌并弃置其中的所有红色牌(至少一张),若如此做,该角色回复1点体力,然后摸X张牌,X为你弃置的手牌数。',
|
||||||
qijian:'气剑',
|
qijian:'气剑',
|
||||||
qijian_info:'弃牌阶段结束时,你可以指定至多X名目标视为使用一张杀,X为你于此阶段弃置的卡牌数',
|
qijian_info:'弃牌阶段结束时,你可以指定至多X名目标视为使用一张杀,X为你于此阶段弃置的卡牌数。',
|
||||||
poyun:'破云',
|
poyun:'破云',
|
||||||
poyun_info:'每当你造成一次伤害,你可以弃置一枚玄凝标记,然后弃置对方两张牌',
|
poyun_info:'每当你造成一次伤害,你可以弃置一枚玄凝标记,然后弃置对方两张牌。',
|
||||||
poyun_info_alter:'每当你造成一次伤害,你可以弃置一枚玄凝标记,然后弃置对方一张牌',
|
poyun_info_alter:'每当你造成一次伤害,你可以弃置一枚玄凝标记,然后弃置对方一张牌。',
|
||||||
qianfang:'千方',
|
qianfang:'千方',
|
||||||
qianfang_info:'准备阶段,若你有玄凝标记,你可以弃置3-X张牌和所有玄凝标记,视为使用了一张【万箭齐发】,每当一名敌方角色因此牌受到伤害,你摸一张牌。X为你的玄凝标记数',
|
qianfang_info:'准备阶段,若你有玄凝标记,你可以弃置3-X张牌和所有玄凝标记,视为使用了一张【万箭齐发】,每当一名敌方角色因此牌受到伤害,你摸一张牌。X为你的玄凝标记数。',
|
||||||
qianfang_info_alter:'准备阶段,若你有玄凝标记,可以弃置3-X张牌和所有玄凝标记,视为使用了一张【万箭齐发】,X为你的玄凝标记数',
|
qianfang_info_alter:'准备阶段,若你有玄凝标记,可以弃置3-X张牌和所有玄凝标记,视为使用了一张【万箭齐发】,X为你的玄凝标记数。',
|
||||||
longxi:'龙息',
|
longxi:'龙息',
|
||||||
longxi2:'龙息',
|
longxi2:'龙息',
|
||||||
longxi_info:'锁定技,在回合外每当你需要使用或打出一张卡牌时,若牌堆顶的前两张中有可使用或打出的牌,你立即获得之',
|
longxi_info:'锁定技,在回合外每当你需要使用或打出一张卡牌时,若牌堆顶的前两张中有可使用或打出的牌,你立即获得之。',
|
||||||
zhuyue:'逐月',
|
zhuyue:'逐月',
|
||||||
zhuyue_info:'出牌阶段限一次,你可以弃置一张非基本牌并指定至多两个目标各随机弃置一张牌,若如此做,你本回使用的杀须指定选中角色为目标',
|
zhuyue_info:'出牌阶段限一次,你可以弃置一张非基本牌并指定至多两个目标各随机弃置一张牌,若如此做,你本回使用的杀须指定选中角色为目标。',
|
||||||
zhuyue_info_alter:'出牌阶段限一次,你可以弃置一张黑色非基本牌并指定至多两个目标各随机弃置一张牌,若如此做,你本回使用的杀须指定选中角色为目标',
|
zhuyue_info_alter:'出牌阶段限一次,你可以弃置一张黑色非基本牌并指定至多两个目标各随机弃置一张牌,若如此做,你本回使用的杀须指定选中角色为目标。',
|
||||||
guanri:'贯日',
|
guanri:'贯日',
|
||||||
guanri_info:'限制技,你可以弃置两张红色手牌并失去1点体力,然后对一名体力值不少于你的其他角色造成2点火焰伤害并弃置其所有装备牌',
|
guanri_info:'限制技,你可以弃置两张红色手牌并失去1点体力,然后对一名体力值不少于你的其他角色造成2点火焰伤害并弃置其所有装备牌。',
|
||||||
tianxian:'天弦',
|
tianxian:'天弦',
|
||||||
tianxian_info:'锁定技,你的杀无视距离且可指定任意多个目标,目标须进行一次判定,若结果为黑色则取消之',
|
tianxian_info:'锁定技,你的杀无视距离且可指定任意多个目标,目标须进行一次判定,若结果为黑色则取消之。',
|
||||||
zhimeng:'织梦',
|
zhimeng:'织梦',
|
||||||
zhimeng2:'织梦',
|
zhimeng2:'织梦',
|
||||||
zhimeng3:'织梦',
|
zhimeng3:'织梦',
|
||||||
zhimeng_info:'结束阶段,你可以选择一名其他角色将牌堆顶的一张牌置于该角色的武将牌上,直到你的下个准备阶段将其收入手牌。当一名角色武将牌上有织梦牌时,每当其成为与此牌类型相同的卡牌的目标,可以摸一张牌',
|
zhimeng_info:'结束阶段,你可以选择一名其他角色将牌堆顶的一张牌置于该角色的武将牌上,直到你的下个准备阶段将其收入手牌。当一名角色武将牌上有织梦牌时,每当其成为与此牌类型相同的卡牌的目标,可以摸一张牌。',
|
||||||
zhimeng_info_alter:'结束阶段,你可以令一名其他角色摸一张牌',
|
zhimeng_info_alter:'结束阶段,你可以令一名其他角色摸一张牌。',
|
||||||
runxin:'润心',
|
runxin:'润心',
|
||||||
runxin_info:'每当你使用或打出一张红桃牌,你可以令一名角色回复1点体力',
|
runxin_info:'每当你使用或打出一张红桃牌,你可以令一名角色回复1点体力。',
|
||||||
tannang:'探囊',
|
tannang:'探囊',
|
||||||
tannang_info:'出牌阶段限一次,你可以将一张梅花手牌当顺手牵羊使用;你的顺手牵羊无距离限制',
|
tannang_info:'出牌阶段限一次,你可以将一张梅花手牌当顺手牵羊使用;你的顺手牵羊无距离限制。',
|
||||||
tuoqiao:'烟瘴',
|
tuoqiao:'烟瘴',
|
||||||
tuoqiao_info:'你可以将一张黑色牌当作石灰粉使用',
|
tuoqiao_info:'你可以将一张黑色牌当作石灰粉使用。',
|
||||||
xiaoyao:'逍遥',
|
xiaoyao:'逍遥',
|
||||||
xiaoyao_info:'每当你成为其他角色的卡牌目标,你可以弃置一张与之花色相同的手牌取消之',
|
xiaoyao_info:'每当你成为其他角色的卡牌目标,你可以弃置一张与之花色相同的手牌取消之。',
|
||||||
tianjian:'天剑',
|
tianjian:'天剑',
|
||||||
tianjian_info:'出牌阶段限一次,你可以将一张杀当作万箭齐发使用,受到伤害的角色随机弃置一张牌',
|
tianjian_info:'出牌阶段限一次,你可以将一张杀当作万箭齐发使用,受到伤害的角色随机弃置一张牌。',
|
||||||
tianjian_info_alter:'出牌阶段限一次,你可以将一张杀当作万箭齐发使用',
|
tianjian_info_alter:'出牌阶段限一次,你可以将一张杀当作万箭齐发使用。',
|
||||||
xjyufeng:'御风',
|
xjyufeng:'御风',
|
||||||
xjyufeng_info:'锁定技,当你失去手牌后,若手牌数少于2,你将手牌数补至2(每回合最多发动两次)',
|
xjyufeng_info:'锁定技,当你失去手牌后,若手牌数少于2,你将手牌数补至2(每回合最多发动两次)。',
|
||||||
huimeng:'回梦',
|
huimeng:'回梦',
|
||||||
huimeng_info:'每当你回复1点体力,可以摸两张牌',
|
huimeng_info:'每当你回复1点体力,可以摸两张牌。',
|
||||||
tianshe:'天蛇',
|
tianshe:'天蛇',
|
||||||
tianshe2:'天蛇',
|
tianshe2:'天蛇',
|
||||||
tianshe_info:'锁定技,你防止即将受到的属性伤害,每当你造成一次属性伤害,你回复1点体力',
|
tianshe_info:'锁定技,你防止即将受到的属性伤害,每当你造成一次属性伤害,你回复1点体力。',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
@ -881,6 +881,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
xinfu_guanwei:{
|
xinfu_guanwei:{
|
||||||
audio:2,
|
audio:2,
|
||||||
usable:1,
|
usable:1,
|
||||||
|
init:()=>{
|
||||||
|
game.addGlobalSkill('xinfu_guanwei_ai');
|
||||||
|
},
|
||||||
|
onremove:()=>{
|
||||||
|
if(!game.hasPlayer(i=>i.hasSkill('xinfu_guanwei'),true)) game.removeGlobalSkill('xinfu_guanwei_ai');
|
||||||
|
},
|
||||||
trigger:{
|
trigger:{
|
||||||
global:"phaseUseEnd",
|
global:"phaseUseEnd",
|
||||||
},
|
},
|
||||||
|
@ -898,7 +904,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return num>1;
|
return num>1;
|
||||||
},
|
},
|
||||||
direct:true,
|
direct:true,
|
||||||
global:'xinfu_guanwei_ai',
|
|
||||||
content:function (){
|
content:function (){
|
||||||
'step 0'
|
'step 0'
|
||||||
var target=trigger.player;
|
var target=trigger.player;
|
||||||
|
@ -925,6 +930,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
subSkill:{
|
subSkill:{
|
||||||
ai:{
|
ai:{
|
||||||
|
trigger:{player:'dieAfter'},
|
||||||
|
filter:()=>{
|
||||||
|
return !game.hasPlayer(i=>i.hasSkill('xinfu_guanwei'),true);
|
||||||
|
},
|
||||||
|
silent:true,
|
||||||
|
forceDie:true,
|
||||||
|
content:()=>{
|
||||||
|
game.removeGlobalSkill('xinfu_guanwei_ai');
|
||||||
|
},
|
||||||
ai:{
|
ai:{
|
||||||
effect:{
|
effect:{
|
||||||
player_use:function(card,player,target){
|
player_use:function(card,player,target){
|
||||||
|
@ -1357,19 +1371,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(target==player) return false;
|
if(target==player) return false;
|
||||||
return target.countCards('h')>player.countCards('h')||Math.max(0,target.hp)>Math.max(0,player.hp);
|
return target.countCards('h')>player.countCards('h')||Math.max(0,target.hp)>Math.max(0,player.hp);
|
||||||
}).set('ai',function(target){
|
}).set('ai',function(target){
|
||||||
var att=get.attitude(_status.event.player,target);
|
let att=get.attitude(_status.event.player,target),name=_status.event.cards[0].name;
|
||||||
if(att<3) return 0;
|
if(att<3) return 0;
|
||||||
if(target.hasJudge('lebu')){
|
if(target.hasJudge('lebu')) att/=5;
|
||||||
att/=5;
|
if(name==='sha'&&target.hasSha()) att/=5;
|
||||||
}
|
if(name==='wuxie'&&target.needsToDiscard(_status.event.cards)) att/=5;
|
||||||
if(target.hasSha()&&_status.event.sha){
|
|
||||||
att/=5;
|
|
||||||
}
|
|
||||||
if(_status.event.wuxie&&target.needsToDiscard(1)){
|
|
||||||
att/=5;
|
|
||||||
}
|
|
||||||
return att/(1+get.distance(player,target,'absolute'));
|
return att/(1+get.distance(player,target,'absolute'));
|
||||||
}).set('sha',trigger.cards[0].name=='sha').set('wuxie',trigger.cards[0].name=='wuxie');
|
}).set('cards',trigger.cards);
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
var list=[];
|
var list=[];
|
||||||
|
|
|
@ -44,7 +44,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
zhuran:['male','wu',4,['danshou']],
|
zhuran:['male','wu',4,['danshou']],
|
||||||
xusheng:['male','wu',4,['xinpojun']],
|
xusheng:['male','wu',4,['xinpojun']],
|
||||||
wuguotai:['female','wu',3,['ganlu','buyi']],
|
wuguotai:['female','wu',3,['ganlu','buyi']],
|
||||||
lingtong:['male','wu',4,['olxuanfeng']],
|
lingtong:['male','wu',4,['xuanfeng']],
|
||||||
liubiao:['male','qun',3,['rezishou','zongshi']],
|
liubiao:['male','qun',3,['rezishou','zongshi']],
|
||||||
yufan:['male','wu',3,['zhiyan','zongxuan']],
|
yufan:['male','wu',3,['zhiyan','zongxuan']],
|
||||||
chengong:['male','qun',3,['mingce','zhichi']],
|
chengong:['male','qun',3,['mingce','zhichi']],
|
||||||
|
@ -995,7 +995,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var user=trigger.player,target=previous;
|
var user=trigger.player,target=previous;
|
||||||
event.user=user;event.target=target;
|
event.user=user;event.target=target;
|
||||||
if(user){
|
if(user){
|
||||||
user.chooseBool('是否对'+get.translation(target)+'发动【联对】?','令'+get.translation(target)+'摸两张牌').set('ai',()=>_status.event.bool).set('bool',get.effect(target,{name:'wuzhong'},user,user)>0);
|
user.chooseBool('是否对'+get.translation(target)+'发动【联对】?','令'+get.translation(target)+'摸两张牌').set('ai',()=>_status.event.bool).set('bool',get.effect(target,{name:'draw'},user,user)>0);
|
||||||
}
|
}
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
|
@ -2101,7 +2101,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(num>2) return true;
|
if(num>2) return true;
|
||||||
var card=trigger.card;
|
var card=trigger.card;
|
||||||
if(get.tag(card,'damage')&&player.hp<=trigger.getParent().baseDamage&&(!get.tag(card,'respondShan')||!player.hasShan())&&(!get.tag(card,'respondSha')||!player.hasSha())) return true;
|
if(get.tag(card,'damage')&&player.hp<=trigger.getParent().baseDamage&&(!get.tag(card,'respondShan')||!player.hasShan())&&(!get.tag(card,'respondSha')||!player.hasSha())) return true;
|
||||||
var source=_status.currentPhase,todis=(source.countCards('h')-Math.max(0,source.needsToDiscard()));
|
var source=_status.currentPhase,todis=source.countCards('h')-source.needsToDiscard();
|
||||||
if(todis<=Math.max(Math.min(2+(source.hp<=1?1:0),player.countCards('he',function(card){
|
if(todis<=Math.max(Math.min(2+(source.hp<=1?1:0),player.countCards('he',function(card){
|
||||||
return get.value(card,player)<Math.max(5.5,8-todis)
|
return get.value(card,player)<Math.max(5.5,8-todis)
|
||||||
})),player.countCards('he',function(card){
|
})),player.countCards('he',function(card){
|
||||||
|
@ -2235,7 +2235,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
case 2:{
|
case 2:{
|
||||||
var num=1.3;
|
var num=1.3;
|
||||||
if(event.card.name=='sha'&&event.targets.filter(function(current){
|
if(event.card.name=='sha'&&event.targets.filter(function(current){
|
||||||
if(current.mayHaveShan()&&get.attitude(player,current)<=0){
|
if(current.mayHaveShan(player,'use')&&get.attitude(player,current)<=0){
|
||||||
if(current.hasSkillTag('useShan')) num=1.9;
|
if(current.hasSkillTag('useShan')) num=1.9;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -2387,7 +2387,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}).set('ai',function(target){
|
}).set('ai',function(target){
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
var storage=player.getStorage('xinyaoming_kanon');
|
var storage=player.getStorage('xinyaoming_kanon');
|
||||||
if(get.attitude(player,target)>0&&!storage.contains('摸牌')&&target!=player) return get.effect(target,{name:'wuzhong'},player,player)/2;
|
if(get.attitude(player,target)>0&&!storage.contains('摸牌')&&target!=player) return get.effect(target,{name:'draw'},player,player);
|
||||||
if(get.attitude(player,target)<0&&!storage.contains('弃牌')&&target!=player&&target.countCards('h')) return get.effect(target,{name:'guohe_copy2'},player,player);
|
if(get.attitude(player,target)<0&&!storage.contains('弃牌')&&target!=player&&target.countCards('h')) return get.effect(target,{name:'guohe_copy2'},player,player);
|
||||||
if(get.attitude(player,target)>0&&!storage.contains('制衡')) return get.effect(target,{name:'kaihua'},player,player);
|
if(get.attitude(player,target)>0&&!storage.contains('制衡')) return get.effect(target,{name:'kaihua'},player,player);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2424,7 +2424,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var target=_status.event.target;
|
var target=_status.event.target;
|
||||||
var controls=_status.event.controls.slice();
|
var controls=_status.event.controls.slice();
|
||||||
var map={
|
var map={
|
||||||
'摸牌':get.effect(target,{name:'wuzhong'},player,player)/2,
|
'摸牌':get.effect(target,{name:'draw'},player,player),
|
||||||
'弃牌':get.effect(target,{name:'guohe_copy2'},player,player),
|
'弃牌':get.effect(target,{name:'guohe_copy2'},player,player),
|
||||||
'制衡':get.effect(target,{name:'kaihua'},player,player),
|
'制衡':get.effect(target,{name:'kaihua'},player,player),
|
||||||
};
|
};
|
||||||
|
@ -2681,10 +2681,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return !player.hasSkill('xintaoluan3')&&player.countCards('hes',card=>lib.inpile.some(name=>{
|
return !player.hasSkill('xintaoluan3')&&player.countCards('hes',card=>lib.inpile.some(name=>{
|
||||||
if(player.getStorage('xintaoluan').includes(name)) return false;
|
if(player.getStorage('xintaoluan').includes(name)) return false;
|
||||||
if(get.type(name)!='basic'&&get.type(name)!='trick') return false;
|
if(get.type(name)!='basic'&&get.type(name)!='trick') return false;
|
||||||
if(event.filterCard({name:name,isCard:true,cards:[card]})) return true;
|
if(event.filterCard({name:name,isCard:true,cards:[card]},player,event)) return true;
|
||||||
if(name=='sha'){
|
if(name=='sha'){
|
||||||
for(var nature of lib.inpile_nature){
|
for(var nature of lib.inpile_nature){
|
||||||
if(event.filterCard({name:name,nature:nature,isCard:true,cards:[card]})) return true;
|
if(event.filterCard({name:name,nature:nature,isCard:true,cards:[card]},player,event)) return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -5114,7 +5114,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
jyzongshi:{
|
jyzongshi:{
|
||||||
audio:2,
|
audio:2,
|
||||||
audioname:['re_jianyong','ol_jianyong'],
|
audioname:['re_jianyong'],
|
||||||
trigger:{player:['chooseToCompareAfter','compareMultipleAfter'],target:['chooseToCompareAfter','compareMultipleAfter']},
|
trigger:{player:['chooseToCompareAfter','compareMultipleAfter'],target:['chooseToCompareAfter','compareMultipleAfter']},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(event.preserve) return false;
|
if(event.preserve) return false;
|
||||||
|
@ -5263,10 +5263,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return !player.hasSkill('taoluan3')&&player.countCards('hes',card=>lib.inpile.some(name=>{
|
return !player.hasSkill('taoluan3')&&player.countCards('hes',card=>lib.inpile.some(name=>{
|
||||||
if(player.getStorage('taoluan').includes(name)) return false;
|
if(player.getStorage('taoluan').includes(name)) return false;
|
||||||
if(get.type(name)!='basic'&&get.type(name)!='trick') return false;
|
if(get.type(name)!='basic'&&get.type(name)!='trick') return false;
|
||||||
if(event.filterCard({name:name,isCard:true,cards:[card]})) return true;
|
if(event.filterCard({name:name,isCard:true,cards:[card]},player,event)) return true;
|
||||||
if(name=='sha'){
|
if(name=='sha'){
|
||||||
for(var nature of lib.inpile_nature){
|
for(var nature of lib.inpile_nature){
|
||||||
if(event.filterCard({name:name,nature:nature,isCard:true,cards:[card]})) return true;
|
if(event.filterCard({name:name,nature:nature,isCard:true,cards:[card]},player,event)) return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -6980,8 +6980,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
effect:{
|
effect:{
|
||||||
player:function(card,player,target){
|
player:function(card,player,target){
|
||||||
if(_status.currentPhase!=player) return;
|
if(_status.currentPhase!=player) return;
|
||||||
if(card.name=='sha'&&!player.needsToDiscard()&&
|
if(card.name=='sha'&&!player.needsToDiscard()&&!player.getExpansions('chunlao').length&&target.hp>1){
|
||||||
!player.getExpansions('chunlao').length&&target.hp>1){
|
|
||||||
return 'zeroplayertarget';
|
return 'zeroplayertarget';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7558,7 +7557,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
game.addGlobalSkill('longyin_order');
|
game.addGlobalSkill('longyin_order');
|
||||||
},
|
},
|
||||||
onremove:(player)=>{
|
onremove:(player)=>{
|
||||||
game.removeGlobalSkill('longyin_order');
|
if(!game.hasPlayer(current=>current.hasSkill('longyin'),true)) game.removeGlobalSkill('longyin_order');
|
||||||
},
|
},
|
||||||
trigger:{global:'useCard'},
|
trigger:{global:'useCard'},
|
||||||
direct:true,
|
direct:true,
|
||||||
|
@ -7647,7 +7646,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
trigger:{player:'dieAfter'},
|
trigger:{player:'dieAfter'},
|
||||||
filter:(event,player)=>{
|
filter:(event,player)=>{
|
||||||
return !game.hasPlayer(current=>current.hasSkill('longyin'));
|
return !game.hasPlayer(current=>current.hasSkill('longyin'),true);
|
||||||
},
|
},
|
||||||
silent:true,
|
silent:true,
|
||||||
forceDie:true,
|
forceDie:true,
|
||||||
|
@ -11807,6 +11806,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
miji:{
|
miji:{
|
||||||
audio:2,
|
audio:2,
|
||||||
audioname:['re_wangyi'],
|
audioname:['re_wangyi'],
|
||||||
|
locked:false,
|
||||||
mod:{
|
mod:{
|
||||||
aiOrder:function(player,card,num){
|
aiOrder:function(player,card,num){
|
||||||
if(num>0&&_status.event&&_status.event.type==='phase'&&get.tag(card,'recover')){
|
if(num>0&&_status.event&&_status.event.type==='phase'&&get.tag(card,'recover')){
|
||||||
|
@ -11906,16 +11906,28 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
trigger:{target:'useCardToTargeted'},
|
trigger:{target:'useCardToTargeted'},
|
||||||
content:function(){
|
content:function(){
|
||||||
"step 0"
|
"step 0"
|
||||||
|
if(get.attitude(player,trigger.player)<0&&trigger.player.countDiscardableCards(player,'he')) player.addTempSkill('zhenlie_lose');
|
||||||
player.loseHp();
|
player.loseHp();
|
||||||
"step 1"
|
"step 1"
|
||||||
|
player.removeSkill('zhenlie_lose');
|
||||||
trigger.getParent().excluded.add(player);
|
trigger.getParent().excluded.add(player);
|
||||||
"step 2"
|
"step 2"
|
||||||
if(trigger.player.countCards('he')){
|
if(trigger.player.countCards('he')){
|
||||||
|
if(get.mode()!=='identity'||player.identity!=='nei') player.addExpose(0.12);
|
||||||
player.discardPlayerCard(trigger.player,'he',true);
|
player.discardPlayerCard(trigger.player,'he',true);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
subSkill:{
|
||||||
|
lose:{
|
||||||
|
charlotte:true
|
||||||
|
}
|
||||||
|
},
|
||||||
ai:{
|
ai:{
|
||||||
expose:0.3
|
effect:{
|
||||||
|
target:(card,player,target)=>{
|
||||||
|
if(target.hp<=0&&target.hasSkill('zhenlie_lose')&&get.tag(card,'recover')) return [1,1.2];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//吾彦...
|
//吾彦...
|
||||||
|
@ -13915,7 +13927,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
gaoshun:['gaoshun','xin_gaoshun','re_gaoshun','old_gaoshun'],
|
gaoshun:['gaoshun','xin_gaoshun','re_gaoshun','old_gaoshun'],
|
||||||
zhonghui:['zhonghui','xin_zhonghui','re_zhonghui','old_zhonghui','pe_zhonghui'],
|
zhonghui:['zhonghui','xin_zhonghui','re_zhonghui','old_zhonghui','pe_zhonghui'],
|
||||||
wangyi:['wangyi','re_wangyi','old_wangyi'],
|
wangyi:['wangyi','re_wangyi','old_wangyi'],
|
||||||
caozhang:['caozhang','re_caozhang','xin_caozhang'],
|
caozhang:['caozhang','ol_caozhang','re_caozhang','xin_caozhang'],
|
||||||
guanzhang:['guanzhang','re_guanzhang','old_guanzhang'],
|
guanzhang:['guanzhang','re_guanzhang','old_guanzhang'],
|
||||||
madai:['old_madai','re_madai','tw_madai','madai'],
|
madai:['old_madai','re_madai','tw_madai','madai'],
|
||||||
liaohua:['liaohua','re_liaohua','xin_liaohua'],
|
liaohua:['liaohua','re_liaohua','xin_liaohua'],
|
||||||
|
|
|
@ -2401,6 +2401,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
ciwei:{
|
ciwei:{
|
||||||
|
init:()=>{
|
||||||
|
game.addGlobalSkill('ciwei_ai');
|
||||||
|
},
|
||||||
|
onremove:()=>{
|
||||||
|
if(!game.hasPlayer(i=>i.hasSkill('ciwei'),true)) game.removeGlobalSkill('ciwei_ai');
|
||||||
|
},
|
||||||
trigger:{global:'useCard'},
|
trigger:{global:'useCard'},
|
||||||
direct:true,
|
direct:true,
|
||||||
preHidden:true,
|
preHidden:true,
|
||||||
|
@ -2426,8 +2432,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
trigger.targets.length=0;
|
trigger.targets.length=0;
|
||||||
trigger.all_excluded=true;
|
trigger.all_excluded=true;
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
global:'ciwei_ai',
|
|
||||||
},
|
},
|
||||||
ciwei_ai:{
|
ciwei_ai:{
|
||||||
mod:{
|
mod:{
|
||||||
|
@ -2448,6 +2453,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return num;
|
return num;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
trigger:{player:'dieAfter'},
|
||||||
|
filter:()=>{
|
||||||
|
return !game.hasPlayer(i=>i.hasSkill('ciwei'),true);
|
||||||
|
},
|
||||||
|
silent:true,
|
||||||
|
forceDie:true,
|
||||||
|
content:()=>{
|
||||||
|
game.removeGlobalSkill('ciwei_ai');
|
||||||
|
}
|
||||||
},
|
},
|
||||||
caiyuan:{
|
caiyuan:{
|
||||||
trigger:{player:'phaseEnd'},
|
trigger:{player:'phaseEnd'},
|
||||||
|
|
63624
game/game.js
|
@ -3,11 +3,12 @@ window.noname_package={
|
||||||
standard:'标准',
|
standard:'标准',
|
||||||
refresh:'界限突破',
|
refresh:'界限突破',
|
||||||
shenhua:'神话再临',
|
shenhua:'神话再临',
|
||||||
xinghuoliaoyuan:'星火燎原',
|
|
||||||
yijiang:'一将成名',
|
yijiang:'一将成名',
|
||||||
sp:'璀璨星河',
|
sp:'璀璨星河',
|
||||||
|
onlyOL:'OL专属',
|
||||||
yingbian:'文德武备',
|
yingbian:'文德武备',
|
||||||
clan:'门阀士族',
|
clan:'门阀士族',
|
||||||
|
xinghuoliaoyuan:'星火燎原',
|
||||||
huicui:'群英荟萃',
|
huicui:'群英荟萃',
|
||||||
xianding:'限定专属',
|
xianding:'限定专属',
|
||||||
sp2:'系列专属',
|
sp2:'系列专属',
|
||||||
|
|
530
game/path.js
|
@ -1,530 +0,0 @@
|
||||||
// 'path' module extracted from Node.js v8.11.1 (only the posix part)
|
|
||||||
// transplited with Babel
|
|
||||||
|
|
||||||
// Copyright Joyent, Inc. and other Node contributors.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
// copy of this software and associated documentation files (the
|
|
||||||
// "Software"), to deal in the Software without restriction, including
|
|
||||||
// without limitation the rights to use, copy, modify, merge, publish,
|
|
||||||
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
||||||
// persons to whom the Software is furnished to do so, subject to the
|
|
||||||
// following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included
|
|
||||||
// in all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
||||||
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
||||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
|
||||||
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
||||||
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
||||||
{
|
|
||||||
"use strict"
|
|
||||||
function assertPath(path) {
|
|
||||||
if (typeof path !== 'string') {
|
|
||||||
throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Resolves . and .. elements in a path with directory names
|
|
||||||
function normalizeStringPosix(path, allowAboveRoot) {
|
|
||||||
var res = '';
|
|
||||||
var lastSegmentLength = 0;
|
|
||||||
var lastSlash = -1;
|
|
||||||
var dots = 0;
|
|
||||||
var code;
|
|
||||||
for (var i = 0; i <= path.length; ++i) {
|
|
||||||
if (i < path.length)
|
|
||||||
code = path.charCodeAt(i);
|
|
||||||
else if (code === 47 /*/*/)
|
|
||||||
break;
|
|
||||||
else
|
|
||||||
code = 47 /*/*/;
|
|
||||||
if (code === 47 /*/*/) {
|
|
||||||
if (lastSlash === i - 1 || dots === 1) {
|
|
||||||
// NOOP
|
|
||||||
} else if (lastSlash !== i - 1 && dots === 2) {
|
|
||||||
if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {
|
|
||||||
if (res.length > 2) {
|
|
||||||
var lastSlashIndex = res.lastIndexOf('/');
|
|
||||||
if (lastSlashIndex !== res.length - 1) {
|
|
||||||
if (lastSlashIndex === -1) {
|
|
||||||
res = '';
|
|
||||||
lastSegmentLength = 0;
|
|
||||||
} else {
|
|
||||||
res = res.slice(0, lastSlashIndex);
|
|
||||||
lastSegmentLength = res.length - 1 - res.lastIndexOf('/');
|
|
||||||
}
|
|
||||||
lastSlash = i;
|
|
||||||
dots = 0;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
} else if (res.length === 2 || res.length === 1) {
|
|
||||||
res = '';
|
|
||||||
lastSegmentLength = 0;
|
|
||||||
lastSlash = i;
|
|
||||||
dots = 0;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (allowAboveRoot) {
|
|
||||||
if (res.length > 0)
|
|
||||||
res += '/..';
|
|
||||||
else
|
|
||||||
res = '..';
|
|
||||||
lastSegmentLength = 2;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (res.length > 0)
|
|
||||||
res += '/' + path.slice(lastSlash + 1, i);
|
|
||||||
else
|
|
||||||
res = path.slice(lastSlash + 1, i);
|
|
||||||
lastSegmentLength = i - lastSlash - 1;
|
|
||||||
}
|
|
||||||
lastSlash = i;
|
|
||||||
dots = 0;
|
|
||||||
} else if (code === 46 /*.*/ && dots !== -1) {
|
|
||||||
++dots;
|
|
||||||
} else {
|
|
||||||
dots = -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
function _format(sep, pathObject) {
|
|
||||||
var dir = pathObject.dir || pathObject.root;
|
|
||||||
var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');
|
|
||||||
if (!dir) {
|
|
||||||
return base;
|
|
||||||
}
|
|
||||||
if (dir === pathObject.root) {
|
|
||||||
return dir + base;
|
|
||||||
}
|
|
||||||
return dir + sep + base;
|
|
||||||
}
|
|
||||||
|
|
||||||
var posix = {
|
|
||||||
// path.resolve([from ...], to)
|
|
||||||
resolve: function resolve() {
|
|
||||||
var resolvedPath = '';
|
|
||||||
var resolvedAbsolute = false;
|
|
||||||
var cwd;
|
|
||||||
|
|
||||||
for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
|
|
||||||
var path;
|
|
||||||
if (i >= 0)
|
|
||||||
path = arguments[i];
|
|
||||||
else {
|
|
||||||
if (cwd === undefined)
|
|
||||||
cwd = process.cwd();
|
|
||||||
path = cwd;
|
|
||||||
}
|
|
||||||
|
|
||||||
assertPath(path);
|
|
||||||
|
|
||||||
// Skip empty entries
|
|
||||||
if (path.length === 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
resolvedPath = path + '/' + resolvedPath;
|
|
||||||
resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;
|
|
||||||
}
|
|
||||||
|
|
||||||
// At this point the path should be resolved to a full absolute path, but
|
|
||||||
// handle relative paths to be safe (might happen when process.cwd() fails)
|
|
||||||
|
|
||||||
// Normalize the path
|
|
||||||
resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);
|
|
||||||
|
|
||||||
if (resolvedAbsolute) {
|
|
||||||
if (resolvedPath.length > 0)
|
|
||||||
return '/' + resolvedPath;
|
|
||||||
else
|
|
||||||
return '/';
|
|
||||||
} else if (resolvedPath.length > 0) {
|
|
||||||
return resolvedPath;
|
|
||||||
} else {
|
|
||||||
return '.';
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
normalize: function normalize(path) {
|
|
||||||
assertPath(path);
|
|
||||||
|
|
||||||
if (path.length === 0) return '.';
|
|
||||||
|
|
||||||
var isAbsolute = path.charCodeAt(0) === 47 /*/*/;
|
|
||||||
var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;
|
|
||||||
|
|
||||||
// Normalize the path
|
|
||||||
path = normalizeStringPosix(path, !isAbsolute);
|
|
||||||
|
|
||||||
if (path.length === 0 && !isAbsolute) path = '.';
|
|
||||||
if (path.length > 0 && trailingSeparator) path += '/';
|
|
||||||
|
|
||||||
if (isAbsolute) return '/' + path;
|
|
||||||
return path;
|
|
||||||
},
|
|
||||||
|
|
||||||
isAbsolute: function isAbsolute(path) {
|
|
||||||
assertPath(path);
|
|
||||||
return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;
|
|
||||||
},
|
|
||||||
|
|
||||||
join: function join() {
|
|
||||||
if (arguments.length === 0)
|
|
||||||
return '.';
|
|
||||||
var joined;
|
|
||||||
for (var i = 0; i < arguments.length; ++i) {
|
|
||||||
var arg = arguments[i];
|
|
||||||
assertPath(arg);
|
|
||||||
if (arg.length > 0) {
|
|
||||||
if (joined === undefined)
|
|
||||||
joined = arg;
|
|
||||||
else
|
|
||||||
joined += '/' + arg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (joined === undefined)
|
|
||||||
return '.';
|
|
||||||
return posix.normalize(joined);
|
|
||||||
},
|
|
||||||
|
|
||||||
relative: function relative(from, to) {
|
|
||||||
assertPath(from);
|
|
||||||
assertPath(to);
|
|
||||||
|
|
||||||
if (from === to) return '';
|
|
||||||
|
|
||||||
from = posix.resolve(from);
|
|
||||||
to = posix.resolve(to);
|
|
||||||
|
|
||||||
if (from === to) return '';
|
|
||||||
|
|
||||||
// Trim any leading backslashes
|
|
||||||
var fromStart = 1;
|
|
||||||
for (; fromStart < from.length; ++fromStart) {
|
|
||||||
if (from.charCodeAt(fromStart) !== 47 /*/*/)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
var fromEnd = from.length;
|
|
||||||
var fromLen = fromEnd - fromStart;
|
|
||||||
|
|
||||||
// Trim any leading backslashes
|
|
||||||
var toStart = 1;
|
|
||||||
for (; toStart < to.length; ++toStart) {
|
|
||||||
if (to.charCodeAt(toStart) !== 47 /*/*/)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
var toEnd = to.length;
|
|
||||||
var toLen = toEnd - toStart;
|
|
||||||
|
|
||||||
// Compare paths to find the longest common path from root
|
|
||||||
var length = fromLen < toLen ? fromLen : toLen;
|
|
||||||
var lastCommonSep = -1;
|
|
||||||
var i = 0;
|
|
||||||
for (; i <= length; ++i) {
|
|
||||||
if (i === length) {
|
|
||||||
if (toLen > length) {
|
|
||||||
if (to.charCodeAt(toStart + i) === 47 /*/*/) {
|
|
||||||
// We get here if `from` is the exact base path for `to`.
|
|
||||||
// For example: from='/foo/bar'; to='/foo/bar/baz'
|
|
||||||
return to.slice(toStart + i + 1);
|
|
||||||
} else if (i === 0) {
|
|
||||||
// We get here if `from` is the root
|
|
||||||
// For example: from='/'; to='/foo'
|
|
||||||
return to.slice(toStart + i);
|
|
||||||
}
|
|
||||||
} else if (fromLen > length) {
|
|
||||||
if (from.charCodeAt(fromStart + i) === 47 /*/*/) {
|
|
||||||
// We get here if `to` is the exact base path for `from`.
|
|
||||||
// For example: from='/foo/bar/baz'; to='/foo/bar'
|
|
||||||
lastCommonSep = i;
|
|
||||||
} else if (i === 0) {
|
|
||||||
// We get here if `to` is the root.
|
|
||||||
// For example: from='/foo'; to='/'
|
|
||||||
lastCommonSep = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
var fromCode = from.charCodeAt(fromStart + i);
|
|
||||||
var toCode = to.charCodeAt(toStart + i);
|
|
||||||
if (fromCode !== toCode)
|
|
||||||
break;
|
|
||||||
else if (fromCode === 47 /*/*/)
|
|
||||||
lastCommonSep = i;
|
|
||||||
}
|
|
||||||
|
|
||||||
var out = '';
|
|
||||||
// Generate the relative path based on the path difference between `to`
|
|
||||||
// and `from`
|
|
||||||
for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {
|
|
||||||
if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {
|
|
||||||
if (out.length === 0)
|
|
||||||
out += '..';
|
|
||||||
else
|
|
||||||
out += '/..';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Lastly, append the rest of the destination (`to`) path that comes after
|
|
||||||
// the common path parts
|
|
||||||
if (out.length > 0)
|
|
||||||
return out + to.slice(toStart + lastCommonSep);
|
|
||||||
else {
|
|
||||||
toStart += lastCommonSep;
|
|
||||||
if (to.charCodeAt(toStart) === 47 /*/*/)
|
|
||||||
++toStart;
|
|
||||||
return to.slice(toStart);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
_makeLong: function _makeLong(path) {
|
|
||||||
return path;
|
|
||||||
},
|
|
||||||
|
|
||||||
dirname: function dirname(path) {
|
|
||||||
assertPath(path);
|
|
||||||
if (path.length === 0) return '.';
|
|
||||||
var code = path.charCodeAt(0);
|
|
||||||
var hasRoot = code === 47 /*/*/;
|
|
||||||
var end = -1;
|
|
||||||
var matchedSlash = true;
|
|
||||||
for (var i = path.length - 1; i >= 1; --i) {
|
|
||||||
code = path.charCodeAt(i);
|
|
||||||
if (code === 47 /*/*/) {
|
|
||||||
if (!matchedSlash) {
|
|
||||||
end = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// We saw the first non-path separator
|
|
||||||
matchedSlash = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (end === -1) return hasRoot ? '/' : '.';
|
|
||||||
if (hasRoot && end === 1) return '//';
|
|
||||||
return path.slice(0, end);
|
|
||||||
},
|
|
||||||
|
|
||||||
basename: function basename(path, ext) {
|
|
||||||
if (ext !== undefined && typeof ext !== 'string') throw new TypeError('"ext" argument must be a string');
|
|
||||||
assertPath(path);
|
|
||||||
|
|
||||||
var start = 0;
|
|
||||||
var end = -1;
|
|
||||||
var matchedSlash = true;
|
|
||||||
var i;
|
|
||||||
|
|
||||||
if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {
|
|
||||||
if (ext.length === path.length && ext === path) return '';
|
|
||||||
var extIdx = ext.length - 1;
|
|
||||||
var firstNonSlashEnd = -1;
|
|
||||||
for (i = path.length - 1; i >= 0; --i) {
|
|
||||||
var code = path.charCodeAt(i);
|
|
||||||
if (code === 47 /*/*/) {
|
|
||||||
// If we reached a path separator that was not part of a set of path
|
|
||||||
// separators at the end of the string, stop now
|
|
||||||
if (!matchedSlash) {
|
|
||||||
start = i + 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (firstNonSlashEnd === -1) {
|
|
||||||
// We saw the first non-path separator, remember this index in case
|
|
||||||
// we need it if the extension ends up not matching
|
|
||||||
matchedSlash = false;
|
|
||||||
firstNonSlashEnd = i + 1;
|
|
||||||
}
|
|
||||||
if (extIdx >= 0) {
|
|
||||||
// Try to match the explicit extension
|
|
||||||
if (code === ext.charCodeAt(extIdx)) {
|
|
||||||
if (--extIdx === -1) {
|
|
||||||
// We matched the extension, so mark this as the end of our path
|
|
||||||
// component
|
|
||||||
end = i;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Extension does not match, so our result is the entire path
|
|
||||||
// component
|
|
||||||
extIdx = -1;
|
|
||||||
end = firstNonSlashEnd;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (start === end) end = firstNonSlashEnd; else if (end === -1) end = path.length;
|
|
||||||
return path.slice(start, end);
|
|
||||||
} else {
|
|
||||||
for (i = path.length - 1; i >= 0; --i) {
|
|
||||||
if (path.charCodeAt(i) === 47 /*/*/) {
|
|
||||||
// If we reached a path separator that was not part of a set of path
|
|
||||||
// separators at the end of the string, stop now
|
|
||||||
if (!matchedSlash) {
|
|
||||||
start = i + 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else if (end === -1) {
|
|
||||||
// We saw the first non-path separator, mark this as the end of our
|
|
||||||
// path component
|
|
||||||
matchedSlash = false;
|
|
||||||
end = i + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (end === -1) return '';
|
|
||||||
return path.slice(start, end);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
extname: function extname(path) {
|
|
||||||
assertPath(path);
|
|
||||||
var startDot = -1;
|
|
||||||
var startPart = 0;
|
|
||||||
var end = -1;
|
|
||||||
var matchedSlash = true;
|
|
||||||
// Track the state of characters (if any) we see before our first dot and
|
|
||||||
// after any path separator we find
|
|
||||||
var preDotState = 0;
|
|
||||||
for (var i = path.length - 1; i >= 0; --i) {
|
|
||||||
var code = path.charCodeAt(i);
|
|
||||||
if (code === 47 /*/*/) {
|
|
||||||
// If we reached a path separator that was not part of a set of path
|
|
||||||
// separators at the end of the string, stop now
|
|
||||||
if (!matchedSlash) {
|
|
||||||
startPart = i + 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (end === -1) {
|
|
||||||
// We saw the first non-path separator, mark this as the end of our
|
|
||||||
// extension
|
|
||||||
matchedSlash = false;
|
|
||||||
end = i + 1;
|
|
||||||
}
|
|
||||||
if (code === 46 /*.*/) {
|
|
||||||
// If this is our first dot, mark it as the start of our extension
|
|
||||||
if (startDot === -1)
|
|
||||||
startDot = i;
|
|
||||||
else if (preDotState !== 1)
|
|
||||||
preDotState = 1;
|
|
||||||
} else if (startDot !== -1) {
|
|
||||||
// We saw a non-dot and non-path separator before our dot, so we should
|
|
||||||
// have a good chance at having a non-empty extension
|
|
||||||
preDotState = -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (startDot === -1 || end === -1 ||
|
|
||||||
// We saw a non-dot character immediately before the dot
|
|
||||||
preDotState === 0 ||
|
|
||||||
// The (right-most) trimmed path component is exactly '..'
|
|
||||||
preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
return path.slice(startDot, end);
|
|
||||||
},
|
|
||||||
|
|
||||||
format: function format(pathObject) {
|
|
||||||
if (pathObject === null || typeof pathObject !== 'object') {
|
|
||||||
throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof pathObject);
|
|
||||||
}
|
|
||||||
return _format('/', pathObject);
|
|
||||||
},
|
|
||||||
|
|
||||||
parse: function parse(path) {
|
|
||||||
assertPath(path);
|
|
||||||
|
|
||||||
var ret = { root: '', dir: '', base: '', ext: '', name: '' };
|
|
||||||
if (path.length === 0) return ret;
|
|
||||||
var code = path.charCodeAt(0);
|
|
||||||
var isAbsolute = code === 47 /*/*/;
|
|
||||||
var start;
|
|
||||||
if (isAbsolute) {
|
|
||||||
ret.root = '/';
|
|
||||||
start = 1;
|
|
||||||
} else {
|
|
||||||
start = 0;
|
|
||||||
}
|
|
||||||
var startDot = -1;
|
|
||||||
var startPart = 0;
|
|
||||||
var end = -1;
|
|
||||||
var matchedSlash = true;
|
|
||||||
var i = path.length - 1;
|
|
||||||
|
|
||||||
// Track the state of characters (if any) we see before our first dot and
|
|
||||||
// after any path separator we find
|
|
||||||
var preDotState = 0;
|
|
||||||
|
|
||||||
// Get non-dir info
|
|
||||||
for (; i >= start; --i) {
|
|
||||||
code = path.charCodeAt(i);
|
|
||||||
if (code === 47 /*/*/) {
|
|
||||||
// If we reached a path separator that was not part of a set of path
|
|
||||||
// separators at the end of the string, stop now
|
|
||||||
if (!matchedSlash) {
|
|
||||||
startPart = i + 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (end === -1) {
|
|
||||||
// We saw the first non-path separator, mark this as the end of our
|
|
||||||
// extension
|
|
||||||
matchedSlash = false;
|
|
||||||
end = i + 1;
|
|
||||||
}
|
|
||||||
if (code === 46 /*.*/) {
|
|
||||||
// If this is our first dot, mark it as the start of our extension
|
|
||||||
if (startDot === -1) startDot = i; else if (preDotState !== 1) preDotState = 1;
|
|
||||||
} else if (startDot !== -1) {
|
|
||||||
// We saw a non-dot and non-path separator before our dot, so we should
|
|
||||||
// have a good chance at having a non-empty extension
|
|
||||||
preDotState = -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (startDot === -1 || end === -1 ||
|
|
||||||
// We saw a non-dot character immediately before the dot
|
|
||||||
preDotState === 0 ||
|
|
||||||
// The (right-most) trimmed path component is exactly '..'
|
|
||||||
preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
|
|
||||||
if (end !== -1) {
|
|
||||||
if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end); else ret.base = ret.name = path.slice(startPart, end);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (startPart === 0 && isAbsolute) {
|
|
||||||
ret.name = path.slice(1, startDot);
|
|
||||||
ret.base = path.slice(1, end);
|
|
||||||
} else {
|
|
||||||
ret.name = path.slice(startPart, startDot);
|
|
||||||
ret.base = path.slice(startPart, end);
|
|
||||||
}
|
|
||||||
ret.ext = path.slice(startDot, end);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (startPart > 0) ret.dir = path.slice(0, startPart - 1); else if (isAbsolute) ret.dir = '/';
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
},
|
|
||||||
|
|
||||||
sep: '/',
|
|
||||||
delimiter: ':',
|
|
||||||
win32: null,
|
|
||||||
posix: null
|
|
||||||
};
|
|
||||||
|
|
||||||
posix.posix = posix;
|
|
||||||
|
|
||||||
window._noname_path = posix;
|
|
||||||
}
|
|
Before Width: | Height: | Size: 553 KiB After Width: | Height: | Size: 534 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 51 KiB |
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 49 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 44 KiB |
12
index.html
|
@ -1,11 +1,21 @@
|
||||||
<!DOCTYPE HTML>
|
<!DOCTYPE HTML>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="format-detection" content="telephone=no">
|
<meta name="format-detection" content="telephone=no">
|
||||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||||
<meta name="viewport" content="user-scalable=no, viewport-fit=cover">
|
<meta name="viewport" content="user-scalable=no, viewport-fit=cover">
|
||||||
<title>无名杀</title>
|
<title>无名杀</title>
|
||||||
|
<script>
|
||||||
|
window.onerror = function (msg, src, line, column, err) {
|
||||||
|
var str = `错误文件: ${typeof src == 'string' && src.length > 0 ? decodeURI(src) : '未知文件'}`;
|
||||||
|
str += `\n错误信息: ${msg}`;
|
||||||
|
str += `\n行号: ${line}`;
|
||||||
|
str += `\n列号: ${column}`;
|
||||||
|
if (err && err.stack) str += '\n' + decodeURI(err.stack);
|
||||||
|
console.error(str);
|
||||||
|
alert(str);
|
||||||
|
};
|
||||||
|
</script>
|
||||||
<script src="game/update.js"></script>
|
<script src="game/update.js"></script>
|
||||||
<script src="game/config.js"></script>
|
<script src="game/config.js"></script>
|
||||||
<script src="game/package.js"></script>
|
<script src="game/package.js"></script>
|
||||||
|
|
|
@ -8366,6 +8366,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
boss_wuxin:{
|
boss_wuxin:{
|
||||||
|
audio:2,
|
||||||
|
mod:{
|
||||||
|
targetEnabled:function(card,player,target){
|
||||||
|
if(get.type(card)=='delay'&&player!=target) return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
trigger:{player:'damageBefore'},
|
trigger:{player:'damageBefore'},
|
||||||
forced:true,
|
forced:true,
|
||||||
priority:10,
|
priority:10,
|
||||||
|
@ -8373,7 +8379,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
trigger.cancel();
|
trigger.cancel();
|
||||||
player.loseHp();
|
player.loseHp();
|
||||||
},
|
},
|
||||||
audio:2,
|
|
||||||
},
|
},
|
||||||
shenwei:{
|
shenwei:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
|
|
@ -2256,12 +2256,16 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
player.chooseToDiscard('h',2,get.prompt('feiyang'),'弃置两张手牌,然后弃置判定区里的一张牌').set('logSkill','feiyang').set('ai',function(card){
|
player.chooseToDiscard('h',2,get.prompt('feiyang'),'弃置两张手牌,然后弃置判定区里的一张牌').set('logSkill','feiyang').set('ai',function(card){
|
||||||
if(_status.event.goon) return 6-get.value(card);
|
if(_status.event.goon) return 6-get.value(card);
|
||||||
return 0;
|
return 0;
|
||||||
}).set('goon',player.hasCard(function(card){
|
}).set('goon',(()=>{
|
||||||
|
if(player.hasSkillTag('rejudge')&&player.countCards('j')<2) return false;
|
||||||
|
return player.hasCard(function(card){
|
||||||
|
if(get.tag(card,'damage')&&get.damageEffect(player,player,_status.event.player,get.natureList(card))>=0) return false;
|
||||||
return get.effect(player,{
|
return get.effect(player,{
|
||||||
name:card.viewAs||card.name,
|
name:card.viewAs||card.name,
|
||||||
cards:[card],
|
cards:[card],
|
||||||
},player,player)<0;
|
},player,player)<0;
|
||||||
},'j'));
|
},'j');
|
||||||
|
})());
|
||||||
"step 1"
|
"step 1"
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
player.discardPlayerCard(player,'j',true);
|
player.discardPlayerCard(player,'j',true);
|
||||||
|
|
|
@ -150,12 +150,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
else lib.character[i][1]='qun';
|
else lib.character[i][1]='qun';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lib.characterReplace={};
|
//lib.characterReplace={};
|
||||||
},_status.mode,_status.separatism);
|
},_status.mode,_status.separatism);
|
||||||
game.randomMapOL();
|
game.randomMapOL();
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
lib.characterReplace={};
|
//lib.characterReplace={};
|
||||||
for(var i=0;i<game.players.length;i++){
|
for(var i=0;i<game.players.length;i++){
|
||||||
game.players[i].node.name.hide();
|
game.players[i].node.name.hide();
|
||||||
game.players[i].node.name2.hide();
|
game.players[i].node.name2.hide();
|
||||||
|
@ -3528,7 +3528,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
]).set('prompt',get.prompt('gzliegong',trigger.target)).setHiddenSkill('gzliegong').set('ai',function(){
|
]).set('prompt',get.prompt('gzliegong',trigger.target)).setHiddenSkill('gzliegong').set('ai',function(){
|
||||||
var player=_status.event.player,target=_status.event.getTrigger().target;
|
var player=_status.event.player,target=_status.event.getTrigger().target;
|
||||||
if(get.attitude(player,target)>0) return 2;
|
if(get.attitude(player,target)>0) return 2;
|
||||||
return target.mayHaveShan()?1:0;
|
return target.mayHaveShan(player,'use')?1:0;
|
||||||
});
|
});
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.control!='cancel2'){
|
if(result.control!='cancel2'){
|
||||||
|
@ -9080,6 +9080,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
locked:false,
|
||||||
audio:"duanliang1",
|
audio:"duanliang1",
|
||||||
enable:"chooseToUse",
|
enable:"chooseToUse",
|
||||||
filterCard:function(card){
|
filterCard:function(card){
|
||||||
|
@ -9738,6 +9739,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
return player.hp<=1;
|
return player.hp<=1;
|
||||||
},
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
|
locked:false,
|
||||||
//priority:3,
|
//priority:3,
|
||||||
content:function(){
|
content:function(){
|
||||||
player.addTempSkill('baka_yingzi','phaseAfter');
|
player.addTempSkill('baka_yingzi','phaseAfter');
|
||||||
|
@ -10652,7 +10654,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
goon=false;
|
goon=false;
|
||||||
}
|
}
|
||||||
else if(trigger.card.name=='sha'){
|
else if(trigger.card.name=='sha'){
|
||||||
if(trigger.target.mayHaveShan()||trigger.target.hp>=3){
|
if(trigger.target.mayHaveShan(player,'use')||trigger.target.hp>=3){
|
||||||
goon=false;
|
goon=false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10878,6 +10880,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
unique:true,
|
unique:true,
|
||||||
forceunique:true,
|
forceunique:true,
|
||||||
lordSkill:true,
|
lordSkill:true,
|
||||||
|
locked:false,
|
||||||
audio:2,
|
audio:2,
|
||||||
derivation:'yuanjiangfenghuotu',
|
derivation:'yuanjiangfenghuotu',
|
||||||
mark:true,
|
mark:true,
|
||||||
|
@ -13354,7 +13357,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
var target=targets.shift();
|
var target=targets.shift();
|
||||||
event.target=target;
|
event.target=target;
|
||||||
source.line(target,'green');
|
source.line(target,'green');
|
||||||
target.chooseBool('是否响应'+get.translation(source)+'发起的【拉拢人心】?','将势力改为'+event.text).set('choice',Math.random()<=0.98);//反骨[doge]
|
target.chooseBool('是否响应'+get.translation(source)+'发起的【拉拢人心】?','将势力改为'+event.text).set('ai',_status.event.choice).set('choice',function(){
|
||||||
|
let fs=target.getFriends(true).length;
|
||||||
|
if(game.players.length<=2*fs) return false;
|
||||||
|
if(source.getFriends(true).length+fs>game.players.length/2) return true;
|
||||||
|
if(target.isDamaged()||target.countCards('h')<4) return false;
|
||||||
|
return true;
|
||||||
|
}());
|
||||||
'step 6'
|
'step 6'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
target.chat('加入');
|
target.chat('加入');
|
||||||
|
|
|
@ -555,6 +555,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
if(get.config('enable_commoner')){
|
||||||
return {
|
return {
|
||||||
fan:'反',
|
fan:'反',
|
||||||
zhong:'忠',
|
zhong:'忠',
|
||||||
|
@ -563,6 +564,15 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
cai:'猜',
|
cai:'猜',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
return {
|
||||||
|
fan:'反',
|
||||||
|
zhong:'忠',
|
||||||
|
nei:'内',
|
||||||
|
cai:'猜',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
getIdentityList2:function(list){
|
getIdentityList2:function(list){
|
||||||
for(var i in list){
|
for(var i in list){
|
||||||
|
@ -1507,7 +1517,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
listi=['random','zhu','zhong','fan','nei'];
|
listi=['random','zhu','zhong','fan','nei'];
|
||||||
if(get.config('enable_commoner')) listi.push('commoner');
|
if(get.config('enable_commoner')&&!event.stratagemMode) listi.push('commoner');
|
||||||
}
|
}
|
||||||
|
|
||||||
for(var i=0;i<listi.length;i++){
|
for(var i=0;i<listi.length;i++){
|
||||||
|
@ -1548,7 +1558,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
var listi=['zhu','zhong','nei','fan'];
|
var listi=['zhu','zhong','nei','fan'];
|
||||||
if(get.config('enable_commoner')) listi.push('commoner');
|
if(get.config('enable_commoner')&&!event.stratagemMode) listi.push('commoner');
|
||||||
link=listi.randomGet();
|
link=listi.randomGet();
|
||||||
}
|
}
|
||||||
for(var i=0;i<this.parentNode.childElementCount;i++){
|
for(var i=0;i<this.parentNode.childElementCount;i++){
|
||||||
|
|
|
@ -143,6 +143,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
start:function(){
|
start:function(){
|
||||||
"step 0"
|
"step 0"
|
||||||
|
_status.mode=_status.connectMode?lib.configOL.single_mode:get.config('single_mode');
|
||||||
var playback=localStorage.getItem(lib.configprefix+'playback');
|
var playback=localStorage.getItem(lib.configprefix+'playback');
|
||||||
if(playback){
|
if(playback){
|
||||||
ui.create.me();
|
ui.create.me();
|
||||||
|
@ -172,7 +173,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
"step 2"
|
"step 2"
|
||||||
_status.mode=_status.connectMode?lib.configOL.single_mode:get.config('single_mode');
|
|
||||||
if(_status.mode=='normal'){
|
if(_status.mode=='normal'){
|
||||||
lib.card.list=lib.singlePile.slice(0);
|
lib.card.list=lib.singlePile.slice(0);
|
||||||
game.fixedPile=true;
|
game.fixedPile=true;
|
||||||
|
@ -883,35 +883,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
manyi:{
|
|
||||||
audio:2,
|
|
||||||
trigger:{target:'useCardToBefore'},
|
|
||||||
forced:true,
|
|
||||||
filter:function(event,player){
|
|
||||||
return event.card.name=='nanman';
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
trigger.cancel();
|
|
||||||
},
|
|
||||||
ai:{
|
|
||||||
effect:{
|
|
||||||
target:function(card){
|
|
||||||
if(card.name=='nanman') return 'zerotarget';
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
group:'manyi2',
|
|
||||||
},
|
|
||||||
manyi2:{
|
|
||||||
trigger:{
|
|
||||||
player:'enterGame',
|
|
||||||
global:'gameDrawAfter',
|
|
||||||
},
|
|
||||||
direct:true,
|
|
||||||
content:function(){
|
|
||||||
player.chooseUseTarget('nanman',get.prompt('manyi'),'视为使用一张【南蛮入侵】').logSkill='manyi';
|
|
||||||
},
|
|
||||||
},
|
|
||||||
wanrong:{
|
wanrong:{
|
||||||
audio:2,
|
audio:2,
|
||||||
trigger:{target:'useCardToTargeted'},
|
trigger:{target:'useCardToTargeted'},
|
||||||
|
@ -1191,8 +1162,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
changban2:'血战长坂坡',
|
changban2:'血战长坂坡',
|
||||||
dianjiang2:'点将单挑',
|
dianjiang2:'点将单挑',
|
||||||
|
|
||||||
manyi:'蛮裔',
|
|
||||||
manyi_info:'锁定技,【南蛮入侵】对你无效。当你登场时,你可以视为使用一张【南蛮入侵】。',
|
|
||||||
wanrong:'婉容',
|
wanrong:'婉容',
|
||||||
wanrong_info:'当你成为【杀】的目标后,你可以摸一张牌。',
|
wanrong_info:'当你成为【杀】的目标后,你可以摸一张牌。',
|
||||||
sgzhiheng:'制衡',
|
sgzhiheng:'制衡',
|
||||||
|
|
578
mode/stone.js
|
@ -0,0 +1,8 @@
|
||||||
|
export { GNC as gnc } from './noname/gnc/index.js';
|
||||||
|
export { AI as ai } from './noname/ai/index.js';
|
||||||
|
export { Game as game } from './noname/game/index.js';
|
||||||
|
export { Get as get } from './noname/get/index.js';
|
||||||
|
export { Library as lib } from './noname/library/index.js';
|
||||||
|
export { status as _status } from './noname/status/index.js';
|
||||||
|
export { UI as ui } from './noname/ui/index.js';
|
||||||
|
export { boot } from './noname/init/index.js';
|
|
@ -0,0 +1,213 @@
|
||||||
|
import { Get as get } from '../get/index.js';
|
||||||
|
import { Game as game } from '../game/index.js';
|
||||||
|
import { status as _status } from '../status/index.js';
|
||||||
|
import { UI as ui } from '../ui/index.js';
|
||||||
|
import { Library as lib } from '../library/index.js';
|
||||||
|
import { GNC as gnc } from '../gnc/index.js';
|
||||||
|
import { Uninstantable } from "../util/index.js";
|
||||||
|
|
||||||
|
export class Basic extends Uninstantable {
|
||||||
|
/**
|
||||||
|
* @param { (
|
||||||
|
* button: import('../library/index.js').Button,
|
||||||
|
* buttons?: import('../library/index.js').Button[]
|
||||||
|
* ) => number } check
|
||||||
|
*/
|
||||||
|
static chooseButton(check) {
|
||||||
|
const event = _status.event;
|
||||||
|
let i, j, range, buttons, buttons2;
|
||||||
|
let ok = false, forced = event.forced;
|
||||||
|
let iwhile = 100;
|
||||||
|
while (iwhile--) {
|
||||||
|
range = get.select(event.selectButton);
|
||||||
|
if (ui.selected.buttons.length >= range[0]) {
|
||||||
|
ok = true;
|
||||||
|
}
|
||||||
|
if (range[1] <= -1) {
|
||||||
|
j = 0;
|
||||||
|
for (i = 0; i < ui.selected.buttons.length; i++) {
|
||||||
|
j += check(ui.selected.buttons[i]);
|
||||||
|
}
|
||||||
|
return (j > 0);
|
||||||
|
}
|
||||||
|
buttons = get.selectableButtons();
|
||||||
|
if (buttons.length == 0) {
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
buttons2 = buttons.slice(0);
|
||||||
|
let ix = 0;
|
||||||
|
let checkix = check(buttons[0], buttons2);
|
||||||
|
for (i = 1; i < buttons.length; i++) {
|
||||||
|
let checkixtmp = check(buttons[i], buttons2);
|
||||||
|
if (checkixtmp > checkix) {
|
||||||
|
ix = i;
|
||||||
|
checkix = checkixtmp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// buttons.sort(function(a,b){
|
||||||
|
// return check(b,buttons2)-check(a,buttons2);
|
||||||
|
// });
|
||||||
|
if (check(buttons[ix]) <= 0) {
|
||||||
|
if (!forced || ok) {
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
buttons[ix].classList.add('selected');
|
||||||
|
ui.selected.buttons.add(buttons[ix]);
|
||||||
|
game.check();
|
||||||
|
if (ui.selected.buttons.length >= range[0]) {
|
||||||
|
ok = true;
|
||||||
|
}
|
||||||
|
if (ui.selected.buttons.length == range[1]) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param { (
|
||||||
|
* card?: import('../library/index.js').Card,
|
||||||
|
* cards?: import('../library/index.js').Card[]
|
||||||
|
* ) => number } check
|
||||||
|
* @returns { boolean | undefined }
|
||||||
|
*/
|
||||||
|
static chooseCard(check) {
|
||||||
|
const event = _status.event;
|
||||||
|
if (event.filterCard == undefined) return (check() > 0);
|
||||||
|
let i, j, range, cards, cards2, skills, effect;
|
||||||
|
let ok = false, forced = event.forced;
|
||||||
|
let iwhile = 100;
|
||||||
|
while (iwhile--) {
|
||||||
|
range = get.select(event.selectCard);
|
||||||
|
if (ui.selected.cards.length >= range[0]) {
|
||||||
|
ok = true;
|
||||||
|
}
|
||||||
|
if (range[1] <= -1) {
|
||||||
|
if (ui.selected.cards.length == 0) return true;
|
||||||
|
j = 0;
|
||||||
|
for (i = 0; i < ui.selected.cards.length; i++) {
|
||||||
|
effect = check(ui.selected.cards[i]);
|
||||||
|
if (effect < 0) j -= Math.sqrt(-effect);
|
||||||
|
else j += Math.sqrt(effect);
|
||||||
|
}
|
||||||
|
return (j > 0);
|
||||||
|
}
|
||||||
|
cards = get.selectableCards();
|
||||||
|
if (!_status.event.player._noSkill) {
|
||||||
|
// @ts-ignore
|
||||||
|
cards = cards.concat(get.skills());
|
||||||
|
}
|
||||||
|
if (cards.length == 0) {
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
cards2 = cards.slice(0);
|
||||||
|
// cards.sort(function(a,b){
|
||||||
|
// return (check(b,cards2)-check(a,cards2));
|
||||||
|
// });
|
||||||
|
var ix = 0;
|
||||||
|
var checkix = check(cards[0], cards2);
|
||||||
|
for (i = 1; i < cards.length; i++) {
|
||||||
|
var checkixtmp = check(cards[i], cards2);
|
||||||
|
if (checkixtmp > checkix) {
|
||||||
|
ix = i;
|
||||||
|
checkix = checkixtmp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (check(cards[ix]) <= 0) {
|
||||||
|
if (!forced || ok) {
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (typeof cards[ix] == 'string') {
|
||||||
|
ui.click.skill(cards[ix]);
|
||||||
|
var info = get.info(event.skill);
|
||||||
|
if (info.filterCard) {
|
||||||
|
check = info.check || get.unuseful2;
|
||||||
|
return (ai.basic.chooseCard(check));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
cards[ix].classList.add('selected');
|
||||||
|
ui.selected.cards.add(cards[ix]);
|
||||||
|
game.check();
|
||||||
|
if (ui.selected.cards.length >= range[0]) {
|
||||||
|
ok = true;
|
||||||
|
}
|
||||||
|
if (ui.selected.cards.length == range[1]) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param { (
|
||||||
|
* target?: import('../library/index.js').Player,
|
||||||
|
* targets?: import('../library/index.js').Player[]
|
||||||
|
* ) => number } check
|
||||||
|
*/
|
||||||
|
static chooseTarget(check) {
|
||||||
|
const event = _status.event;
|
||||||
|
if (event.filterTarget == undefined) return (check() > 0);
|
||||||
|
let i, j, range, targets, targets2, effect;
|
||||||
|
let ok = false, forced = event.forced;
|
||||||
|
let iwhile = 100;
|
||||||
|
while (iwhile--) {
|
||||||
|
range = get.select(event.selectTarget);
|
||||||
|
if (ui.selected.targets.length >= range[0]) {
|
||||||
|
ok = true;
|
||||||
|
}
|
||||||
|
if (range[1] <= -1) {
|
||||||
|
j = 0;
|
||||||
|
for (i = 0; i < ui.selected.targets.length; i++) {
|
||||||
|
effect = check(ui.selected.targets[i]);
|
||||||
|
if (effect < 0) j -= Math.sqrt(-effect);
|
||||||
|
else j += Math.sqrt(effect);
|
||||||
|
}
|
||||||
|
return (j > 0);
|
||||||
|
}
|
||||||
|
else if (range[1] == 0) {
|
||||||
|
return check() > 0
|
||||||
|
}
|
||||||
|
targets = get.selectableTargets();
|
||||||
|
if (targets.length == 0) {
|
||||||
|
return range[0] == 0 || ok;
|
||||||
|
}
|
||||||
|
targets2 = targets.slice(0);
|
||||||
|
// targets.sort(function(a,b){
|
||||||
|
// return check(b)-check(a);
|
||||||
|
// });
|
||||||
|
let ix = 0;
|
||||||
|
let checkix = check(targets[0], targets2);
|
||||||
|
for (i = 1; i < targets.length; i++) {
|
||||||
|
let checkixtmp = check(targets[i], targets2);
|
||||||
|
if (checkixtmp > checkix) {
|
||||||
|
ix = i;
|
||||||
|
checkix = checkixtmp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (check(targets[ix]) <= 0) {
|
||||||
|
if (!forced || ok) {
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
targets[ix].classList.add('selected');
|
||||||
|
ui.selected.targets.add(targets[ix]);
|
||||||
|
game.check();
|
||||||
|
if (ui.selected.targets.length >= range[0]) {
|
||||||
|
ok = true;
|
||||||
|
}
|
||||||
|
if (ui.selected.targets.length == range[1]) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class AI extends Uninstantable {
|
||||||
|
static basic = Basic;
|
||||||
|
static get = get;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const ai = AI;
|
|
@ -0,0 +1,53 @@
|
||||||
|
import { GeneratorFunction, Uninstantable } from "../util/index.js";
|
||||||
|
|
||||||
|
class Is extends Uninstantable {
|
||||||
|
static coroutine(item) {
|
||||||
|
return typeof item == "function" && item.name == "genCoroutine";
|
||||||
|
}
|
||||||
|
static generatorFunc(item) {
|
||||||
|
return item instanceof GeneratorFunction;
|
||||||
|
}
|
||||||
|
static generator(item) {
|
||||||
|
return (typeof item == "object") && ("constructor" in item) && item.constructor && ("constructor" in item.constructor) && item.constructor.constructor === GeneratorFunction;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// gnc: GeNCoroutine
|
||||||
|
export class GNC extends Uninstantable {
|
||||||
|
static of(fn) {
|
||||||
|
return gnc.is.generatorFunc(fn) ? function genCoroutine() {
|
||||||
|
let gen = fn.apply(this, arguments);
|
||||||
|
gen.status = "next";
|
||||||
|
gen.state = undefined;
|
||||||
|
const callback = (resolve, reject) => {
|
||||||
|
let result,
|
||||||
|
nexts = resolve,
|
||||||
|
throws = reject;
|
||||||
|
try {
|
||||||
|
result = gen[gen.status](gen.state);
|
||||||
|
} catch (error) {
|
||||||
|
reject(error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!result.done) {
|
||||||
|
nexts = (item) => {
|
||||||
|
gen.state = item;
|
||||||
|
gen.status = "next";
|
||||||
|
callback(resolve, reject);
|
||||||
|
}
|
||||||
|
throws = (err) => {
|
||||||
|
gen.state = err;
|
||||||
|
gen.status = "throw";
|
||||||
|
callback(resolve, reject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result = result.value;
|
||||||
|
Promise.resolve(result).then(nexts, throws);
|
||||||
|
}
|
||||||
|
return new Promise(callback);
|
||||||
|
} : (() => { throw new TypeError("gnc.of needs a GeneratorFunction.") })()
|
||||||
|
}
|
||||||
|
static is = Is;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const gnc = GNC;
|
|
@ -0,0 +1,218 @@
|
||||||
|
// @ts-nocheck
|
||||||
|
import { Get as get } from '../get/index.js';
|
||||||
|
import { Library as lib } from '../library/index.js';
|
||||||
|
import { Game as game } from '../game/index.js';
|
||||||
|
import { status as _status } from '../status/index.js';
|
||||||
|
import { UI as ui } from '../ui/index.js';
|
||||||
|
|
||||||
|
export async function cordovaReady() {
|
||||||
|
lib.path = (await import('../library/path.js')).default;
|
||||||
|
if (lib.device == 'android') {
|
||||||
|
document.addEventListener("pause", function () {
|
||||||
|
if (!_status.paused2 && (typeof _status.event.isMine == 'function' && !_status.event.isMine())) {
|
||||||
|
ui.click.pause();
|
||||||
|
}
|
||||||
|
if (ui.backgroundMusic) {
|
||||||
|
ui.backgroundMusic.pause();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
document.addEventListener("resume", () => {
|
||||||
|
if (ui.backgroundMusic) ui.backgroundMusic.play();
|
||||||
|
});
|
||||||
|
document.addEventListener("backbutton", function () {
|
||||||
|
if (ui.arena && ui.arena.classList.contains('menupaused')) {
|
||||||
|
if (window.saveNonameInput) {
|
||||||
|
window.saveNonameInput();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ui.click.configMenu();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (lib.config.confirm_exit) {
|
||||||
|
navigator.notification.confirm(
|
||||||
|
'是否退出游戏?',
|
||||||
|
function (index) {
|
||||||
|
switch (index) {
|
||||||
|
case 2: game.reload(); break;
|
||||||
|
case 3: navigator.app.exitApp(); break;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'确认退出',
|
||||||
|
['取消', '重新开始', '退出']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
navigator.app.exitApp();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if ("cordova" in window && "plugins" in window.cordova && "permissions" in window.cordova.plugins) {
|
||||||
|
const permissions = cordova.plugins.permissions;
|
||||||
|
const requests = ["WRITE_EXTERNAL_STORAGE", "READ_EXTERNAL_STORAGE"]
|
||||||
|
requests.forEach(request => {
|
||||||
|
permissions.checkPermission(permissions[request], status => {
|
||||||
|
if (!status.hasPermission) {
|
||||||
|
permissions.requestPermission(permissions[request], lib.other.ignore, lib.other.ignore);
|
||||||
|
}
|
||||||
|
}, lib.other.ignore);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
game.download = function (url, folder, onsuccess, onerror, dev, onprogress) {
|
||||||
|
if (!url.startsWith('http')) {
|
||||||
|
url = get.url(dev) + url;
|
||||||
|
}
|
||||||
|
var fileTransfer = new FileTransfer();
|
||||||
|
folder = lib.assetURL + folder;
|
||||||
|
if (onprogress) {
|
||||||
|
fileTransfer.onprogress = function (progressEvent) {
|
||||||
|
onprogress(progressEvent.loaded, progressEvent.total);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
lib.config.brokenFile.add(folder);
|
||||||
|
game.saveConfigValue('brokenFile');
|
||||||
|
fileTransfer.download(encodeURI(url), encodeURI(folder), function () {
|
||||||
|
lib.config.brokenFile.remove(folder);
|
||||||
|
game.saveConfigValue('brokenFile');
|
||||||
|
if (onsuccess) {
|
||||||
|
onsuccess();
|
||||||
|
}
|
||||||
|
}, onerror);
|
||||||
|
};
|
||||||
|
game.readFile = function (filename, callback, onerror) {
|
||||||
|
window.resolveLocalFileSystemURL(lib.assetURL, function (entry) {
|
||||||
|
entry.getFile(filename, {}, function (fileEntry) {
|
||||||
|
fileEntry.file(function (fileToLoad) {
|
||||||
|
var fileReader = new FileReader();
|
||||||
|
fileReader.onload = function (e) {
|
||||||
|
callback(e.target.result);
|
||||||
|
};
|
||||||
|
fileReader.readAsArrayBuffer(fileToLoad, "UTF-8");
|
||||||
|
}, onerror);
|
||||||
|
}, onerror);
|
||||||
|
}, onerror);
|
||||||
|
};
|
||||||
|
game.readFileAsText = function (filename, callback, onerror) {
|
||||||
|
window.resolveLocalFileSystemURL(lib.assetURL, function (entry) {
|
||||||
|
entry.getFile(filename, {}, function (fileEntry) {
|
||||||
|
fileEntry.file(function (fileToLoad) {
|
||||||
|
var fileReader = new FileReader();
|
||||||
|
fileReader.onload = function (e) {
|
||||||
|
callback(e.target.result);
|
||||||
|
};
|
||||||
|
fileReader.readAsText(fileToLoad, "UTF-8");
|
||||||
|
}, onerror);
|
||||||
|
}, onerror);
|
||||||
|
}, onerror);
|
||||||
|
};
|
||||||
|
game.writeFile = function (data, path, name, callback) {
|
||||||
|
game.ensureDirectory(path, function () {
|
||||||
|
if (Object.prototype.toString.call(data) == '[object File]') {
|
||||||
|
var fileReader = new FileReader();
|
||||||
|
fileReader.onload = function (e) {
|
||||||
|
game.writeFile(e.target.result, path, name, callback);
|
||||||
|
};
|
||||||
|
fileReader.readAsArrayBuffer(data, "UTF-8");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
window.resolveLocalFileSystemURL(lib.assetURL + path, function (entry) {
|
||||||
|
entry.getFile(name, { create: true }, function (fileEntry) {
|
||||||
|
fileEntry.createWriter(function (fileWriter) {
|
||||||
|
fileWriter.onwriteend = callback;
|
||||||
|
fileWriter.write(data);
|
||||||
|
}, callback);
|
||||||
|
}, callback);
|
||||||
|
}, callback);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
game.removeFile = function (dir, callback) {
|
||||||
|
window.resolveLocalFileSystemURL(lib.assetURL, function (entry) {
|
||||||
|
entry.getFile(dir, {}, function (fileEntry) {
|
||||||
|
fileEntry.remove();
|
||||||
|
if (callback) callback();
|
||||||
|
}, callback || function () { });
|
||||||
|
}, callback || function () { });
|
||||||
|
};
|
||||||
|
game.getFileList = (dir, success, failure) => {
|
||||||
|
var files = [], folders = [];
|
||||||
|
window.resolveLocalFileSystemURL(lib.assetURL + dir, entry => {
|
||||||
|
var dirReader = entry.createReader();
|
||||||
|
var entries = [];
|
||||||
|
var readEntries = () => {
|
||||||
|
dirReader.readEntries(results => {
|
||||||
|
if (!results.length) {
|
||||||
|
entries.sort();
|
||||||
|
for (var i = 0; i < entries.length; i++) {
|
||||||
|
if (entries[i].isDirectory) {
|
||||||
|
folders.push(entries[i].name);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
files.push(entries[i].name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
success(folders, files);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
entries = entries.concat(Array.from(results));
|
||||||
|
readEntries();
|
||||||
|
}
|
||||||
|
}, failure);
|
||||||
|
};
|
||||||
|
readEntries();
|
||||||
|
}, failure);
|
||||||
|
};
|
||||||
|
game.ensureDirectory = (list, callback, file) => {
|
||||||
|
const directoryList = typeof list == 'string' ? [list] : list.slice().reverse(), num = file ? 1 : 0, access = (entry, directory, createDirectory) => {
|
||||||
|
if (directory.length <= num) {
|
||||||
|
createDirectory();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const str = directory.pop();
|
||||||
|
return new Promise((resolve, reject) => entry.getDirectory(str, {
|
||||||
|
create: false
|
||||||
|
}, resolve, reject)).catch(() => new Promise(resolve => entry.getDirectory(str, {
|
||||||
|
create: true
|
||||||
|
}, resolve))).then(directoryEntry => access(directoryEntry, directory, createDirectory));
|
||||||
|
};
|
||||||
|
return new Promise((resolve, reject) => window.resolveLocalFileSystemURL(lib.assetURL, rootEntry => {
|
||||||
|
const createDirectory = () => {
|
||||||
|
if (directoryList.length) access(rootEntry, directoryList.pop().split('/').reverse(), createDirectory);
|
||||||
|
if (typeof callback == 'function') callback();
|
||||||
|
resolve();
|
||||||
|
};
|
||||||
|
createDirectory();
|
||||||
|
}, reject));
|
||||||
|
};
|
||||||
|
if (ui.updateUpdate) {
|
||||||
|
ui.updateUpdate();
|
||||||
|
}
|
||||||
|
var showbar = function () {
|
||||||
|
if (window.StatusBar) {
|
||||||
|
if (lib.device == 'android') {
|
||||||
|
if (lib.config.show_statusbar_android) {
|
||||||
|
window.StatusBar.overlaysWebView(false);
|
||||||
|
window.StatusBar.backgroundColorByName('black');
|
||||||
|
window.StatusBar.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (lib.device == 'ios') {
|
||||||
|
if (lib.config.show_statusbar_ios != 'off' && lib.config.show_statusbar_ios != 'auto') {
|
||||||
|
if (lib.config.show_statusbar_ios == 'default') {
|
||||||
|
window.StatusBar.overlaysWebView(false);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
window.StatusBar.overlaysWebView(true);
|
||||||
|
}
|
||||||
|
window.StatusBar.backgroundColorByName('black');
|
||||||
|
window.StatusBar.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (lib.arenaReady) {
|
||||||
|
lib.arenaReady.push(showbar);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
showbar();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,169 @@
|
||||||
|
// @ts-nocheck
|
||||||
|
import { Get as get } from '../get/index.js';
|
||||||
|
import { Library as lib } from '../library/index.js';
|
||||||
|
import { Game as game } from '../game/index.js';
|
||||||
|
import { status as _status } from '../status/index.js';
|
||||||
|
import { UI as ui } from '../ui/index.js';
|
||||||
|
|
||||||
|
export function nodeReady() {
|
||||||
|
lib.node = {
|
||||||
|
fs: require('fs'),
|
||||||
|
path: require("path"),
|
||||||
|
debug() {
|
||||||
|
let remote;
|
||||||
|
if (electronVersion >= 14) {
|
||||||
|
// @ts-ignore
|
||||||
|
remote = require('@electron/remote');
|
||||||
|
} else {
|
||||||
|
// @ts-ignore
|
||||||
|
remote = require('electron').remote;
|
||||||
|
}
|
||||||
|
remote.getCurrentWindow().toggleDevTools();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
lib.path = lib.node.path;
|
||||||
|
game.download = function (url, folder, onsuccess, onerror, dev, onprogress) {
|
||||||
|
if (!url.startsWith('http')) {
|
||||||
|
url = get.url(dev) + url;
|
||||||
|
}
|
||||||
|
game.ensureDirectory(folder, function () {
|
||||||
|
try {
|
||||||
|
var file = lib.node.fs.createWriteStream(__dirname + '/' + folder);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
onerror();
|
||||||
|
}
|
||||||
|
lib.config.brokenFile.add(folder);
|
||||||
|
game.saveConfigValue('brokenFile');
|
||||||
|
if (!lib.node.http) lib.node.http = require('http');
|
||||||
|
if (!lib.node.https) lib.node.https = require('https');
|
||||||
|
var opts = require('url').parse(encodeURI(url));
|
||||||
|
opts.headers = { 'User-Agent': 'AppleWebkit' };
|
||||||
|
(url.startsWith('https') ? lib.node.https : lib.node.http).get(opts, function (response) {
|
||||||
|
var stream = response.pipe(file);
|
||||||
|
stream.on('finish', function () {
|
||||||
|
lib.config.brokenFile.remove(folder);
|
||||||
|
game.saveConfigValue('brokenFile');
|
||||||
|
if (onsuccess) {
|
||||||
|
onsuccess();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
stream.on('error', onerror);
|
||||||
|
if (onprogress) {
|
||||||
|
var streamInterval = setInterval(function () {
|
||||||
|
if (stream.closed) {
|
||||||
|
clearInterval(streamInterval);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
onprogress(stream.bytesWritten);
|
||||||
|
}
|
||||||
|
}, 200);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, true);
|
||||||
|
};
|
||||||
|
game.readFile = function (filename, callback, onerror) {
|
||||||
|
lib.node.fs.readFile(__dirname + '/' + filename, function (err, data) {
|
||||||
|
if (err) {
|
||||||
|
onerror(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
callback(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
game.readFileAsText = function (filename, callback, onerror) {
|
||||||
|
lib.node.fs.readFile(__dirname + '/' + filename, 'utf-8', function (err, data) {
|
||||||
|
if (err) {
|
||||||
|
onerror(err);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
callback(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
game.writeFile = function (data, path, name, callback) {
|
||||||
|
game.ensureDirectory(path, function () {
|
||||||
|
if (Object.prototype.toString.call(data) == '[object File]') {
|
||||||
|
var fileReader = new FileReader();
|
||||||
|
fileReader.onload = function (e) {
|
||||||
|
game.writeFile(e.target.result, path, name, callback);
|
||||||
|
};
|
||||||
|
fileReader.readAsArrayBuffer(data, "UTF-8");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
get.zip(function (zip) {
|
||||||
|
zip.file('i', data);
|
||||||
|
lib.node.fs.writeFile(__dirname + '/' + path + '/' + name, zip.files.i.asNodeBuffer(), null, callback);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
game.removeFile = function (filename, callback) {
|
||||||
|
lib.node.fs.unlink(__dirname + '/' + filename, callback || function () { });
|
||||||
|
};
|
||||||
|
game.getFileList = (dir, success, failure) => {
|
||||||
|
var files = [], folders = [];
|
||||||
|
dir = __dirname + '/' + dir;
|
||||||
|
if (typeof failure == "undefined") {
|
||||||
|
failure = err => {
|
||||||
|
throw err;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else if (failure == null) {
|
||||||
|
failure = () => { };
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
lib.node.fs.readdir(dir, (err, filelist) => {
|
||||||
|
if (err) {
|
||||||
|
failure(err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (var i = 0; i < filelist.length; i++) {
|
||||||
|
if (filelist[i][0] != '.' && filelist[i][0] != '_') {
|
||||||
|
if (lib.node.fs.statSync(dir + '/' + filelist[i]).isDirectory()) {
|
||||||
|
folders.push(filelist[i]);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
files.push(filelist[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
success(folders, files);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
failure(e);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
game.ensureDirectory = (list, callback, file) => {
|
||||||
|
const directoryList = typeof list == 'string' ? [list] : list.slice().reverse(), number = file ? 1 : 0, access = (path, directory, createDirectory) => {
|
||||||
|
if (directory.length <= number) {
|
||||||
|
createDirectory();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
path += `/${directory.pop()}`;
|
||||||
|
const fullPath = `${__dirname}${path}`;
|
||||||
|
return new Promise((resolve, reject) => lib.node.fs.access(fullPath, errnoException => {
|
||||||
|
if (errnoException) reject();
|
||||||
|
else resolve();
|
||||||
|
})).catch(() => new Promise((resolve, reject) => lib.node.fs.mkdir(fullPath, errnoException => {
|
||||||
|
if (errnoException) reject(errnoException);
|
||||||
|
else resolve();
|
||||||
|
}))).then(() => access(path, directory, createDirectory), console.log);
|
||||||
|
};
|
||||||
|
return new Promise(resolve => {
|
||||||
|
const createDirectory = () => {
|
||||||
|
if (directoryList.length) access('', directoryList.pop().split('/').reverse(), createDirectory);
|
||||||
|
else {
|
||||||
|
if (typeof callback == 'function') callback();
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
createDirectory();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
if (ui.updateUpdate) {
|
||||||
|
ui.updateUpdate();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,517 @@
|
||||||
|
// @ts-nocheck
|
||||||
|
import { Get as get } from '../get/index.js';
|
||||||
|
import { Library as lib } from '../library/index.js';
|
||||||
|
import { Game as game } from '../game/index.js';
|
||||||
|
import { status as _status } from '../status/index.js';
|
||||||
|
import { UI as ui } from '../ui/index.js';
|
||||||
|
|
||||||
|
HTMLDivElement.prototype.animate = function (name, time) {
|
||||||
|
var that;
|
||||||
|
if (get.is.mobileMe(this) && name == 'target') {
|
||||||
|
that = ui.mebg;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
that = this;
|
||||||
|
}
|
||||||
|
that.classList.add(name);
|
||||||
|
setTimeout(function () {
|
||||||
|
that.classList.remove(name);
|
||||||
|
}, time || 1000);
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.hide = function () {
|
||||||
|
this.classList.add('hidden');
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.unfocus = function () {
|
||||||
|
if (lib.config.transparent_dialog) this.classList.add('transparent');
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.refocus = function () {
|
||||||
|
this.classList.remove('transparent');
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.show = function () {
|
||||||
|
this.classList.remove('hidden');
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.delete = function (time, callback) {
|
||||||
|
if (this.timeout) {
|
||||||
|
clearTimeout(this.timeout);
|
||||||
|
delete this.timeout;
|
||||||
|
}
|
||||||
|
if (!this._listeningEnd || this._transitionEnded) {
|
||||||
|
if (typeof time != 'number') time = 500;
|
||||||
|
this.classList.add('removing');
|
||||||
|
var that = this;
|
||||||
|
this.timeout = setTimeout(function () {
|
||||||
|
that.remove();
|
||||||
|
that.classList.remove('removing');
|
||||||
|
if (typeof callback == 'function') {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}, time);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this._onEndDelete = true;
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.goto = function (position, time) {
|
||||||
|
if (this.timeout) {
|
||||||
|
clearTimeout(this.timeout);
|
||||||
|
delete this.timeout;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof time != 'number') time = 500;
|
||||||
|
this.classList.add('removing');
|
||||||
|
|
||||||
|
var that = this;
|
||||||
|
this.timeout = setTimeout(function () {
|
||||||
|
if (!that._selfDestroyed) {
|
||||||
|
position.appendChild(that);
|
||||||
|
}
|
||||||
|
that.classList.remove('removing');
|
||||||
|
delete that.destiny;
|
||||||
|
}, time);
|
||||||
|
this.destiny = position;
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.fix = function () {
|
||||||
|
clearTimeout(this.timeout);
|
||||||
|
delete this.timeout;
|
||||||
|
delete this.destiny;
|
||||||
|
this.classList.remove('removing');
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
Reflect.defineProperty(HTMLDivElement.prototype, 'setBackground', {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function (name, type, ext, subfolder) {
|
||||||
|
if (!name) return;
|
||||||
|
let src;
|
||||||
|
if (ext == 'noskin') ext = '.jpg';
|
||||||
|
ext = ext || '.jpg';
|
||||||
|
subfolder = subfolder || 'default';
|
||||||
|
if (type) {
|
||||||
|
let dbimage = null, extimage = null, modeimage = null, nameinfo, gzbool = false;
|
||||||
|
const mode = get.mode();
|
||||||
|
if (type == 'character') {
|
||||||
|
if (lib.characterPack[`mode_${mode}`] && lib.characterPack[`mode_${mode}`][name]) {
|
||||||
|
if (mode == 'guozhan') {
|
||||||
|
nameinfo = lib.character[name];
|
||||||
|
if (name.startsWith('gz_shibing')) name = name.slice(3, 11);
|
||||||
|
else {
|
||||||
|
if (lib.config.mode_config.guozhan.guozhanSkin && lib.character[name] && lib.character[name][4].contains('gzskin')) gzbool = true;
|
||||||
|
name = name.slice(3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else modeimage = mode;
|
||||||
|
}
|
||||||
|
else if (name.includes('::')) {
|
||||||
|
name = name.split('::');
|
||||||
|
modeimage = name[0];
|
||||||
|
name = name[1];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
nameinfo = get.character(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!modeimage && nameinfo && nameinfo[4]) for (const value of nameinfo[4]) {
|
||||||
|
if (value.startsWith('ext:')) {
|
||||||
|
extimage = value;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (value.startsWith('db:')) {
|
||||||
|
dbimage = value;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (value.startsWith('mode:')) {
|
||||||
|
modeimage = value.slice(5);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (value.startsWith('character:')) {
|
||||||
|
name = value.slice(10);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (extimage) src = extimage.replace(/^ext:/, 'extension/');
|
||||||
|
else if (dbimage) {
|
||||||
|
this.setBackgroundDB(dbimage.slice(3));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
else if (modeimage) src = `image/mode/${modeimage}/character/${name}${ext}`;
|
||||||
|
else if (type == 'character' && lib.config.skin[name] && arguments[2] != 'noskin') src = `image/skin/${name}/${lib.config.skin[name]}${ext}`;
|
||||||
|
else if (type == 'character') {
|
||||||
|
src = `image/character/${gzbool ? 'gz_' : ''}${name}${ext}`;
|
||||||
|
}
|
||||||
|
else src = `image/${type}/${subfolder}/${name}${ext}`;
|
||||||
|
}
|
||||||
|
else src = `image/${name}${ext}`;
|
||||||
|
this.setBackgroundImage(src);
|
||||||
|
this.style.backgroundPositionX = 'center';
|
||||||
|
this.style.backgroundSize = 'cover';
|
||||||
|
if (type === 'character') {
|
||||||
|
const nameinfo = get.character(name);
|
||||||
|
const sex = nameinfo ? nameinfo[0] : 'male';
|
||||||
|
this.style.backgroundImage = [
|
||||||
|
this.style.backgroundImage,
|
||||||
|
`url("${lib.assetURL}image/character/default_silhouette_${sex}${ext}")`,
|
||||||
|
`url("${lib.assetURL}image/character/default_silhouette_male${ext}")`,
|
||||||
|
].join(",");
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
HTMLDivElement.prototype.setBackgroundDB = function (img) {
|
||||||
|
return game.getDB('image', img).then(src => {
|
||||||
|
this.style.backgroundImage = `url('${src}')`;
|
||||||
|
this.style.backgroundSize = "cover";
|
||||||
|
return this;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.setBackgroundImage = function (img) {
|
||||||
|
this.style.backgroundImage = `url("${lib.assetURL}${img}")`;
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
HTMLDivElement.prototype.listen = function (func) {
|
||||||
|
if (lib.config.touchscreen) {
|
||||||
|
this.addEventListener('touchend', function (e) {
|
||||||
|
if (!_status.dragged) {
|
||||||
|
func.call(this, e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var fallback = function (e) {
|
||||||
|
if (!_status.touchconfirmed) {
|
||||||
|
func.call(this, e);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.removeEventListener('click', fallback);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.addEventListener('click', fallback);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.addEventListener('click', func);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.listenTransition = function (func, time) {
|
||||||
|
let done = false;
|
||||||
|
const callback = () => {
|
||||||
|
if (!done) {
|
||||||
|
done = true;
|
||||||
|
func.call(this);
|
||||||
|
}
|
||||||
|
clearTimeout(timer);
|
||||||
|
this.removeEventListener('webkitTransitionEnd', callback);
|
||||||
|
};
|
||||||
|
const timer = setTimeout(callback, time || 1000);
|
||||||
|
this.addEventListener('webkitTransitionEnd', callback);
|
||||||
|
return timer;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.setPosition = function () {
|
||||||
|
var position;
|
||||||
|
if (arguments.length == 4) {
|
||||||
|
position = [];
|
||||||
|
for (var i = 0; i < arguments.length; i++) position.push(arguments[i]);
|
||||||
|
}
|
||||||
|
else if (arguments.length == 1 && Array.isArray(arguments[0]) && arguments[0].length == 4) {
|
||||||
|
position = arguments[0];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
var top = 'calc(' + position[0] + '% ';
|
||||||
|
if (position[1] > 0) top += '+ ' + position[1] + 'px)';
|
||||||
|
else top += '- ' + Math.abs(position[1]) + 'px)';
|
||||||
|
var left = 'calc(' + position[2] + '% ';
|
||||||
|
if (position[3] > 0) left += '+ ' + position[3] + 'px)';
|
||||||
|
else left += '- ' + Math.abs(position[3]) + 'px)';
|
||||||
|
this.style.top = top;
|
||||||
|
this.style.left = left;
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLDivElement.prototype.css = function (style) {
|
||||||
|
for (var i in style) {
|
||||||
|
if (i == 'innerHTML') {
|
||||||
|
this.innerHTML = style[i];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.style[i] = style[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
HTMLTableElement.prototype.get = function (row, col) {
|
||||||
|
if (row < this.childNodes.length) {
|
||||||
|
return this.childNodes[row].childNodes[col];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
/*处理lib.nature的兼容性问题*/
|
||||||
|
const mapHasFunc = function (item) {
|
||||||
|
return this.has(item)
|
||||||
|
};
|
||||||
|
Object.defineProperty(Map.prototype, "contains", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: mapHasFunc
|
||||||
|
});
|
||||||
|
Object.defineProperty(Map.prototype, "includes", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: mapHasFunc
|
||||||
|
});
|
||||||
|
const mapAddFunc = function (item) {
|
||||||
|
this.set(item, 0);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
Object.defineProperty(Map.prototype, "add", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: mapAddFunc
|
||||||
|
});
|
||||||
|
Object.defineProperty(Map.prototype, "push", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: mapAddFunc
|
||||||
|
});
|
||||||
|
Object.defineProperty(Map.prototype, "addArray", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function (arr) {
|
||||||
|
for (var i = 0; i < arr.length; i++) {
|
||||||
|
this.add(arr[i]);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(Map.prototype, "remove", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function (item) {
|
||||||
|
this.delete(item);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/*Map prototype end*/
|
||||||
|
Object.defineProperty(Array.prototype, "filterInD", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function (pos) {
|
||||||
|
if (typeof pos != 'string') pos = 'o';
|
||||||
|
return this.filter(card => pos.includes(get.position(card, true)));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(Array.prototype, "someInD", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function (pos) {
|
||||||
|
if (typeof pos != 'string') pos = 'o';
|
||||||
|
return this.some(card => pos.includes(get.position(card, true)));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(Array.prototype, "everyInD", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function (pos) {
|
||||||
|
if (typeof pos != 'string') pos = 'o';
|
||||||
|
return this.every(card => pos.includes(get.position(card, true)));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/**
|
||||||
|
*@legacy Use {@link Array#includes} instead.
|
||||||
|
*/
|
||||||
|
Object.defineProperty(Array.prototype, "contains", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: Array.prototype.includes
|
||||||
|
});
|
||||||
|
Object.defineProperty(Array.prototype, "containsSome", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
return Array.from(arguments).some(i => this.includes(i));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(Array.prototype, "containsAll", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
return Array.from(arguments).every(i => this.includes(i));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Object.defineProperty(Array.prototype, "add", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
for (const arg of arguments) {
|
||||||
|
if (this.contains(arg)) continue;
|
||||||
|
this.push(arg);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(Array.prototype, "addArray", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
for (const arr of arguments) {
|
||||||
|
for (const item of arr) this.add(item);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(Array.prototype, "remove", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
for (const item of arguments) {
|
||||||
|
let pos = -1;
|
||||||
|
if (typeof item == 'number' && isNaN(item)) {
|
||||||
|
pos = this.findIndex(v => isNaN(v))
|
||||||
|
} else {
|
||||||
|
pos = this.indexOf(item);
|
||||||
|
}
|
||||||
|
if (pos == -1) continue;
|
||||||
|
this.splice(pos, 1);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(Array.prototype, "removeArray", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
for (const i of Array.from(arguments)) this.remove(...i);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(Array.prototype, "unique", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
let uniqueArray = [...new Set(this)];
|
||||||
|
this.length = uniqueArray.length;
|
||||||
|
for (let i = 0; i < uniqueArray.length; i++) this[i] = uniqueArray[i];
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(Array.prototype, "toUniqued", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
return [...new Set(this)];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(Array.prototype, "randomGet", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
let arr = this.slice(0);
|
||||||
|
arr.removeArray(Array.from(arguments));
|
||||||
|
return arr[Math.floor(Math.random() * arr.length)];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(Array.prototype, "randomGets", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function (num) {
|
||||||
|
if (num > this.length) num = this.length;
|
||||||
|
let arr = this.slice(0);
|
||||||
|
let list = [];
|
||||||
|
for (let i = 0; i < num; i++) {
|
||||||
|
list.push(arr.splice(Math.floor(Math.random() * arr.length), 1)[0]);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(Array.prototype, "randomRemove", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function (num) {
|
||||||
|
if (typeof num == 'number') {
|
||||||
|
let list = [];
|
||||||
|
for (let i = 0; i < num; i++) {
|
||||||
|
if (!this.length) break;
|
||||||
|
list.push(this.randomRemove());
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
return this.splice(Math.floor(Math.random() * this.length), 1)[0];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(Array.prototype, "randomSort", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
let list = [];
|
||||||
|
while (this.length) {
|
||||||
|
list.push(this.randomRemove());
|
||||||
|
}
|
||||||
|
for (let i = 0; i < list.length; i++) {
|
||||||
|
this.push(list[i]);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(Array.prototype, "sortBySeat", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function (target) {
|
||||||
|
lib.tempSortSeat = target;
|
||||||
|
this.sort(lib.sort.seat);
|
||||||
|
delete lib.tempSortSeat;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/**
|
||||||
|
*@description 从数组中寻找某个特征最大的,且通过筛选的第一个元素
|
||||||
|
*/
|
||||||
|
Object.defineProperty(Array.prototype, "maxBy", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function (sortBy, filter) {
|
||||||
|
let list = this.filter(filter || (() => true));
|
||||||
|
if (sortBy && typeof sortBy == 'function') list.sort((a, b) => sortBy(a) - sortBy(b));
|
||||||
|
else list.sort();
|
||||||
|
return list[list.length - 1];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(Array.prototype, "minBy", {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
value: function (sortBy, filter) {
|
||||||
|
let list = this.filter(filter || (() => true));
|
||||||
|
if (sortBy && typeof sortBy == 'function') list.sort((a, b) => sortBy(a) - sortBy(b));
|
||||||
|
else list.sort();
|
||||||
|
return list[0];
|
||||||
|
}
|
||||||
|
});
|