1.2.10
|
@ -1,3 +1,6 @@
|
|||
1.2.10
|
||||
国战流离bug
|
||||
明策、献州、密诏AI
|
||||
国战部分技能bug修正
|
||||
部分单挑AI修正
|
||||
拼点AI改进
|
||||
补全珠联璧合
|
||||
新炉石武将
|
||||
|
|
|
@ -446,6 +446,7 @@ card.extra={
|
|||
_lianhuan2:'连环',
|
||||
bingliang:'兵粮寸断',
|
||||
hualiu:'骅骝',
|
||||
hualiu_info:'其他角色与你的距离+1。',
|
||||
zhuque:'朱雀羽扇',
|
||||
bingliang_bg:'粮',
|
||||
bingliang_info:'目标角色判定阶段进行判定:若判定结果不为梅花,则跳过该角色的摸牌阶段。',
|
||||
|
|
|
@ -185,36 +185,26 @@ card.shenqi={
|
|||
}
|
||||
return false;
|
||||
},
|
||||
direct:true,
|
||||
forced:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
game.delay();
|
||||
"step 1"
|
||||
event.cards=trigger.cards.slice(0);
|
||||
for(var i=0;i<event.cards.length;i++){
|
||||
if(get.position(event.cards[i])!='d'){
|
||||
event.cards.splice(i,1);i--;
|
||||
var cards=trigger.cards.slice(0);
|
||||
for(var i=0;i<cards.length;i++){
|
||||
if(get.position(cards[i])!='d'){
|
||||
cards.splice(i,1);i--;
|
||||
}
|
||||
}
|
||||
var hu=player.get('e','5');
|
||||
if(event.cards.length==0||!hu){
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
event.hu=hu;
|
||||
if(!hu.storage.shouna){
|
||||
hu.storage.shouna=[];
|
||||
}
|
||||
player.chooseCardButton(event.cards,'选择一张牌收入炼妖壶').ai=function(){return 1};
|
||||
"step 2"
|
||||
if(result.bool){
|
||||
player.logSkill('shouna');
|
||||
if(cards.length&&hu){
|
||||
if(!hu.storage.shouna){
|
||||
hu.storage.shouna=[];
|
||||
}
|
||||
player.addTempSkill('shouna2','phaseAfter');
|
||||
player.$gain2(result.buttons[0].link);
|
||||
event.hu.storage.shouna.push(result.buttons[0].link);
|
||||
ui.special.appendChild(result.buttons[0].link);
|
||||
game.log(get.translation(player)+'将'+get.translation(result.buttons[0].link)+'收入炼妖壶');
|
||||
game.delay();
|
||||
player.$gain2(cards);
|
||||
for(var i=0;i<cards.length;i++){
|
||||
hu.storage.shouna.push(cards[i]);
|
||||
ui.special.appendChild(cards[i]);
|
||||
}
|
||||
game.log(get.translation(player)+'将'+get.translation(cards)+'收入炼妖壶');
|
||||
}
|
||||
},
|
||||
},
|
||||
|
@ -661,7 +651,7 @@ card.shenqi={
|
|||
//kunlunjing_info:'回合开始前,你可以令场上所有牌还原到你上一回合结束后的位置,然后流失一点体力',
|
||||
nvwashi_info:'意一名角色濒死时,你可以令其进行一次判定,若结果为红桃,其回复一点体力',
|
||||
kongxin_info:'出牌阶段限一次,你可以与一名其他角色进行拼点,若你赢,你可以指定另一名角色视为对方对该角色使用一张杀,否则对方可弃置你一张处于',
|
||||
lianyaohu_info:'当一名其他角色于回合外弃置的卡牌进入弃牌堆后,你可以选择其中的一张放入炼妖壶;出牌阶段限一次,你可以弃置两张炼妖壶中的牌,从牌堆中获得一张与弃置的牌类别均不相同的牌',
|
||||
lianyaohu_info:'当一名其他角色于回合外弃置的卡牌进入弃牌堆后,你将其放入炼妖壶(每回合只发动一次);出牌阶段限一次,你可以弃置两张炼妖壶中的牌,从牌堆中获得一张与弃置的牌类别均不相同的牌',
|
||||
fuxiqin_info:'出牌阶段,你可以选择一名角色并流失X点体力,然后获得其控制权直到其首次进入濒死状态,X为该角色当前的体力值',
|
||||
},
|
||||
list:[
|
||||
|
|
|
@ -668,6 +668,14 @@ card.swd={
|
|||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterCard:true,
|
||||
filter:function(event,player){
|
||||
var nh=player.num('h');
|
||||
if(nh==0) return false;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]!=player&&game.players[i].num('h')>nh) return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
check:function(card){
|
||||
return 8-ai.get.value(card);
|
||||
},
|
||||
|
|
|
@ -137,13 +137,18 @@ card.yibao={
|
|||
effect:function(){
|
||||
if(result.judge){
|
||||
if(player.num('he')==0) player.loseHp();
|
||||
else player.chooseToDiscard('he',true,3);
|
||||
else{
|
||||
player.discard(player.get('he').randomGets(3));
|
||||
}
|
||||
var players=get.players();
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
var dist=get.distance(player,game.players[i]);
|
||||
if(dist<=2&&player!=game.players[i]){
|
||||
if(game.players[i].num('he')==0) game.players[i].loseHp();
|
||||
else game.players[i].chooseToDiscard('he',true,3-Math.max(1,dist));
|
||||
for(var i=0;i<players.length;i++){
|
||||
var dist=get.distance(player,players[i]);
|
||||
if(dist<=2&&player!=players[i]){
|
||||
var cs=players[i].get('he');
|
||||
if(cs.length==0) players[i].loseHp();
|
||||
else{
|
||||
players[i].discard(cs.randomGets(3-Math.max(1,dist)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -421,7 +426,7 @@ card.yibao={
|
|||
huoshan:'火山',
|
||||
huoshan_info:'出牌阶段,对自己使用。若判定结果为红桃2~9,则目标角色受到2点火焰伤害,距离目标1以内的其他角色受到1点火焰伤害。若判定不为红桃2~9,将之移动到下家的判定区里。',
|
||||
hongshui:'洪水',
|
||||
hongshui_info:'出牌阶段,对自己使用。若判定结果为梅花2~9,该角色须弃置3张牌,距离该角色为X的角色须弃置3-X张牌,若没有牌则失去一点体力,X至少为1',
|
||||
hongshui_info:'出牌阶段,对自己使用。若判定结果为梅花2~9,该角色随机弃置3张牌,距离该角色为X的角色随机弃置3-X张牌,若没有牌则失去一点体力,X至少为1',
|
||||
liuxinghuoyu:'流星火羽',
|
||||
liuxinghuoyu_info:'出牌阶段,对一名有手牌或装备牌的角色使用,令其弃置0~2张牌,并受到2-X点火焰伤害,X为弃置的卡牌数',
|
||||
dujian:'毒箭',
|
||||
|
|
|
@ -40,7 +40,7 @@ card.zhenfa={
|
|||
},
|
||||
mode:['guozhan'],
|
||||
ai:{
|
||||
order:7,
|
||||
order:6.5,
|
||||
result:{
|
||||
target:1,
|
||||
},
|
||||
|
@ -236,12 +236,17 @@ card.zhenfa={
|
|||
player.choosePlayerCard(target,'he',true);
|
||||
"step 1"
|
||||
target.discard(result.buttons[0].link);
|
||||
"step 2"
|
||||
if(target==targets[targets.length-1]){
|
||||
player.draw();
|
||||
}
|
||||
},
|
||||
mode:['guozhan'],
|
||||
ai:{
|
||||
order:10,
|
||||
result:{
|
||||
target:-1,
|
||||
player:1
|
||||
},
|
||||
}
|
||||
},
|
||||
|
@ -353,7 +358,7 @@ card.zhenfa={
|
|||
niaoxiangzhen:'鸟翔阵',
|
||||
niaoxiangzhen_info:'令所有非你阵营的队列的角色今次打出一张闪,或者受到一点伤害',
|
||||
huyizhen_info:'将一张非基本牌当作杀对你围攻的角色使用',
|
||||
longfeizhen_info:'弃置围攻你的角色各一张牌',
|
||||
longfeizhen_info:'弃置围攻你的角色各一张牌,然后摸一张牌',
|
||||
qixingzhen_info:'令我方所有角色进入围攻状态',
|
||||
shepanzhen_info:'令我方所有角色进入队列状态',
|
||||
yunchuizhen_info:'令所有围攻角色获得技能【无双】,直到其首次造成伤害',
|
||||
|
@ -390,7 +395,7 @@ card.zhenfa={
|
|||
// ["heart",5,'zhonghuangzhen'],
|
||||
|
||||
// ["diamond",6,'huyizhen'],
|
||||
// ["club",6,'huyizhen'],
|
||||
["club",6,'huyizhen'],
|
||||
["spade",6,'huyizhen'],
|
||||
// ["heart",6,'huyizhen'],
|
||||
|
||||
|
@ -405,9 +410,9 @@ card.zhenfa={
|
|||
["heart",8,'shepanzhen'],
|
||||
|
||||
// ["diamond",9,'longfeizhen'],
|
||||
// ["club",9,'longfeizhen'],
|
||||
["club",9,'longfeizhen'],
|
||||
// ["spade",9,'longfeizhen'],
|
||||
// ["heart",9,'longfeizhen'],
|
||||
["heart",9,'longfeizhen'],
|
||||
|
||||
["diamond",11,'niaoxiangzhen'],
|
||||
// ["club",11,'niaoxiangzhen'],
|
||||
|
|
|
@ -3,7 +3,7 @@ character.diy={
|
|||
// diy_caocao:['male','wei',4,['xicai','diyjianxiong','hujia']],
|
||||
// diy_hanlong:['male','wei',4,['siji','ciqiu'],['fullskin']],
|
||||
diy_feishi:['male','shu',3,['shuaiyan','moshou'],['fullskin']],
|
||||
diy_liuyan:['male','shu',4,['juedao','geju'],['fullskin']],
|
||||
diy_liuyan:['male','shu',3,['juedao','geju'],['fullskin']],
|
||||
// diy_luxun:['male','wu',3,['shaoying','zonghuo'],['fullskin']],
|
||||
// diy_yuji:['male','qun',3,['diyguhuo','diychanyuan'],['fullskin']],
|
||||
// diy_zhouyu:['male','wu',3,['jieyan','honglian']],
|
||||
|
@ -417,7 +417,8 @@ character.diy={
|
|||
if(card.name=='tiesuo') return 0;
|
||||
if(get.tag(card,'thunderDamage')) return 0;
|
||||
}
|
||||
}
|
||||
},
|
||||
threaten:0.5
|
||||
}
|
||||
},
|
||||
tiangong2:{
|
||||
|
|
|
@ -11,7 +11,7 @@ character.fire={
|
|||
pangde:['male','qun',4,['mashu','mengjin'],['fullskin']],
|
||||
},
|
||||
perfectPair:{
|
||||
zhugeliangwolong:['pangtong'],
|
||||
zhugeliangwolong:['pangtong','huangyueying'],
|
||||
yuanshao:['yanwen']
|
||||
},
|
||||
skill:{
|
||||
|
|
|
@ -602,6 +602,10 @@ character.gujian={
|
|||
ai:{
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(player.num('h','sha')&&
|
||||
lib.filter.targetInRange({name:'sha'},player,target)){
|
||||
return 0;
|
||||
}
|
||||
return ai.get.effect(target,{name:'sha'},player,target);
|
||||
},
|
||||
},
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
character.hearth={
|
||||
character:{
|
||||
hs_jaina:['female','wei',3,['huopu','bianxing','bingjia'],['fullskin']],
|
||||
hs_rexxar:['male','qun',4,['shoulie','gongji'],['fullskin']],
|
||||
hs_uther:['male','qun',4,['fengxian','jieming'],['fullskin']],
|
||||
hs_garrosh:['male','qun',4,['zhanhou','qiangxi'],['fullskin']],
|
||||
hs_lrexxar:['male','qun',4,['shoulie','gongji'],['fullskin']],
|
||||
hs_wuther:['male','qun',4,['fengxian','jieming'],['fullskin']],
|
||||
hs_jgarrosh:['male','qun',4,['zhanhou','qiangxi'],['fullskin']],
|
||||
hs_malfurion:['male','wu',4,['jihuo'],['fullskin']],
|
||||
hs_guldan:['male','qun',3,['fenliu','hongxi'],['fullskin']],
|
||||
hs_anduin:['male','qun',3,['shengguang','shijie','anying'],['fullskin']],
|
||||
hs_thrall:['male','wu',4,['tuteng','tzhenji'],['fullskin']],
|
||||
hs_sthrall:['male','qun',4,['tuteng','tzhenji'],['fullskin']],
|
||||
hs_waleera:['female','qun',3,['jianren','mengun','wlianji'],['fullskin']],
|
||||
|
||||
hs_medivh:['male','wei',3,['jingxiang','moying','mdzhoufu'],['fullskin']],
|
||||
|
@ -16,15 +16,232 @@ character.hearth={
|
|||
hs_magni:['male','qun',4,['zhongjia','dunji'],['fullskin']],
|
||||
|
||||
hs_neptulon:['male','wu',4,['liechao','qingliu'],['fullskin']],
|
||||
hs_velen:['male','qun',3,['shengyan','xianzhi'],['fullskin']],
|
||||
hs_wvelen:['male','qun',3,['shengyan','xianzhi'],['fullskin']],
|
||||
hs_antonidas:['male','wei',3,['yanshu','bingshuang'],['fullskin']],
|
||||
hs_alakir:['male','wei',3,['fengnu','shengdun'],['fullskin']],
|
||||
hs_zhouzhuo:['male','qun',3,['jubao','qingnang'],['fullskin']],
|
||||
hs_yngvar:['male','wei',3,['huanwu'],['fullskin']],
|
||||
hs_bchillmaw:['male','wei',6,['hanshuang','bingshi'],['fullskin']],
|
||||
hs_malorne:['male','wu',3,['shenen','chongsheng'],['fullskin']],
|
||||
|
||||
hs_ronghejuren:['male','shu',8,[],['fullskin']],
|
||||
hs_wujiyuansu:['male','qun',3,['wujiwuji'],['fullskin']],
|
||||
hs_mijiaojisi:['female','qun',3,['kuixin'],['fullskin']],
|
||||
hs_huzhixiannv:['female','wu',3,['jingmeng','qingliu'],['fullskin']],
|
||||
hs_tgolem:['male','qun',4,['guozai'],['fullskin']],
|
||||
hs_totemic:['male','qun',3,['s_tuteng'],['fullskin']],
|
||||
},
|
||||
skill:{
|
||||
shenen:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterTarget:function(card,player,target){
|
||||
return player.num('h')!=target.num('h');
|
||||
},
|
||||
content:function(){
|
||||
var num=player.num('h')-target.num('h');
|
||||
if(num>0){
|
||||
target.draw(num);
|
||||
}
|
||||
else if(num<0){
|
||||
target.chooseToDiscard(-num,true);
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
threaten:1.8,
|
||||
order:function(item,player){
|
||||
console.log(item,player);
|
||||
return 10;
|
||||
},
|
||||
result:{
|
||||
target:function(player,target){
|
||||
return player.num('h')-target.num('h');
|
||||
}
|
||||
},
|
||||
expose:0.2
|
||||
}
|
||||
},
|
||||
chongsheng:{
|
||||
unique:true,
|
||||
enable:'chooseToUse',
|
||||
mark:true,
|
||||
init:function(player){
|
||||
player.storage.chongsheng=0;
|
||||
},
|
||||
filter:function(event,player){
|
||||
if(event.type!='dying') return false;
|
||||
if(player!=_status.dying) return false;
|
||||
if(player.storage.chongsheng==3) return false;
|
||||
},
|
||||
content:function(){
|
||||
player.hp=Math.min(3-player.storage.chongsheng,player.maxHp);
|
||||
player.discard(player.get('hej'));
|
||||
player.draw(3-player.storage.chongsheng);
|
||||
player.storage.chongsheng++;
|
||||
if(player.storage.chongsheng==3){
|
||||
player.unmarkSkill('chongsheng');
|
||||
}
|
||||
if(player.classList.contains('linked')) player.link();
|
||||
if(player.classList.contains('turnedover')) player.turnOver();
|
||||
},
|
||||
ai:{
|
||||
skillTagFilter:function(player){
|
||||
if(player.storage.chongsheng==3) return false;
|
||||
if(player.hp>0) return false;
|
||||
},
|
||||
save:true,
|
||||
result:{
|
||||
player:10
|
||||
},
|
||||
threaten:function(player,target){
|
||||
if(target.storage.chongsheng<3) return 0.6;
|
||||
}
|
||||
},
|
||||
intro:{
|
||||
content:function(storage){
|
||||
return '剩余'+get.cnNumber(3-storage)+'次';
|
||||
}
|
||||
}
|
||||
},
|
||||
guozai:{
|
||||
trigger:{player:'phaseDrawBegin'},
|
||||
check:function(event,player){
|
||||
return player.num('h')<player.hp;
|
||||
},
|
||||
filter:function(event,player){
|
||||
return !player.skills.contains('guozai2');
|
||||
},
|
||||
content:function(){
|
||||
trigger.num+=2;
|
||||
player.addTempSkill('guozai2','phaseAfter');
|
||||
}
|
||||
},
|
||||
guozai2:{
|
||||
mark:true,
|
||||
intro:{
|
||||
content:'已发动过载'
|
||||
},
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
return num-1;
|
||||
}
|
||||
}
|
||||
},
|
||||
hanshuang:{
|
||||
trigger:{source:'damageEnd'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.card&&get.color(event.card)=='black'&&
|
||||
!event.player.isTurnedOver()&&event.player.isAlive();
|
||||
},
|
||||
content:function(){
|
||||
trigger.player.turnOver();
|
||||
player.loseHp();
|
||||
},
|
||||
ai:{
|
||||
threaten:1.5,
|
||||
effect:{
|
||||
player:function(card,player,target,current){
|
||||
if(get.color(card)=='black'&&get.tag(card,'damage')){
|
||||
console.log(1);
|
||||
return [1,0,1,-2];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
bingshi:{
|
||||
trigger:{player:'dieBegin'},
|
||||
forced:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
event.targets=get.players(player);
|
||||
event.targets.remove(player);
|
||||
'step 1'
|
||||
if(event.targets.length){
|
||||
event.targets.shift().damage();
|
||||
event.redo();
|
||||
}
|
||||
}
|
||||
},
|
||||
huanwu:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterTarget:function(card,player,target){
|
||||
return !target.storage.huanwu;
|
||||
},
|
||||
content:function(){
|
||||
target.gainMaxHp();
|
||||
target.recover();
|
||||
target.draw(2);
|
||||
target.storage.huanwu=true;
|
||||
target.mark('huanwu',{
|
||||
name:'唤雾',
|
||||
content:'已发动'
|
||||
});
|
||||
},
|
||||
ai:{
|
||||
threaten:1.2,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
return 1/target.hp;
|
||||
}
|
||||
},
|
||||
order:10,
|
||||
expose:0.3
|
||||
}
|
||||
},
|
||||
fengnu:{
|
||||
mod:{
|
||||
cardUsable:function(){
|
||||
return Infinity;
|
||||
},
|
||||
targetInRange:function(){
|
||||
return true;
|
||||
}
|
||||
},
|
||||
trigger:{player:'useCard'},
|
||||
filter:function(event,player){
|
||||
if(_status.currentPhase!=player) return false;
|
||||
return get.cardCount(event.card,player)>1;
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
player.draw();
|
||||
}
|
||||
},
|
||||
shengdun:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
forced:true,
|
||||
silent:true,
|
||||
popup:false,
|
||||
priority:10,
|
||||
init2:function(player){
|
||||
player.markSkill('shengdun');
|
||||
},
|
||||
content:function(){
|
||||
if(player.storage.shengdun){
|
||||
player.markSkill('shengdun');
|
||||
}
|
||||
player.storage.shengdun=false;
|
||||
},
|
||||
intro:{
|
||||
content:'未发动'
|
||||
},
|
||||
group:'shengdun2'
|
||||
},
|
||||
shengdun2:{
|
||||
trigger:{player:'damageBegin'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.num>0&&!player.storage.shengdun;
|
||||
},
|
||||
content:function(){
|
||||
trigger.num--;
|
||||
player.storage.shengdun=true;
|
||||
player.unmarkSkill('shengdun');
|
||||
}
|
||||
},
|
||||
jingmeng:{
|
||||
trigger:{player:'useCard'},
|
||||
frequent:true,
|
||||
|
@ -112,7 +329,8 @@ character.hearth={
|
|||
bingshuang:{
|
||||
trigger:{source:'damageEnd'},
|
||||
filter:function(event,player){
|
||||
return event.card&&get.type(event.card)=='trick'&&event.player.isAlive();
|
||||
return event.card&&get.type(event.card)=='trick'&&
|
||||
event.player.isAlive()&&!event.player.isTurnedOver();
|
||||
},
|
||||
prompt:function(event,player){
|
||||
return '是否对'+get.translation(event.player)+'发动【冰霜】?';
|
||||
|
@ -126,21 +344,26 @@ character.hearth={
|
|||
}
|
||||
},
|
||||
yanshu:{
|
||||
trigger:{player:'phaseUseBegin'},
|
||||
direct:true,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return player.num('h',{type:'basic'})<player.num('h');
|
||||
},
|
||||
filterCard:function(card){
|
||||
return get.type(card)!='basic';
|
||||
},
|
||||
check:function(card){
|
||||
return 6-ai.get.value(card);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget('将一张流星火雨交给任意一名角色').ai=function(target){
|
||||
return target==player?1:0;
|
||||
};
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('yanshu');
|
||||
result.targets[0].gain(game.createCard('liuxinghuoyu'),'gain2');
|
||||
|
||||
}
|
||||
var card=cards[0];
|
||||
player.gain(game.createCard('liuxinghuoyu',get.suit(card),get.number(card)),'gain2');
|
||||
},
|
||||
ai:{
|
||||
order:9,
|
||||
result:{
|
||||
player:1
|
||||
},
|
||||
threaten:2
|
||||
}
|
||||
},
|
||||
|
@ -592,8 +815,8 @@ character.hearth={
|
|||
bianxing2:{},
|
||||
moying:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
filter:function(){
|
||||
if(Math.random()<0.5) return false;
|
||||
skillcheck:function(event,player){
|
||||
if(!player.num('h',{suit:'spade'})) return false;
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].num('j','shandian')){
|
||||
return false;
|
||||
|
@ -607,6 +830,11 @@ character.hearth={
|
|||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(!lib.skill.moying.skillcheck(trigger,player)){
|
||||
player.draw();
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
var card=null;
|
||||
for(var i=0;i<ui.cardPile.childNodes.length;i++){
|
||||
if(ui.cardPile.childNodes[i].name=='shandian'){
|
||||
|
@ -681,7 +909,8 @@ character.hearth={
|
|||
ui.discardPile.appendChild(player.storage.mdzhoufu2);
|
||||
player.$throw(player.storage.mdzhoufu2);
|
||||
if(player.storage.mdzhoufu3.isAlive()){
|
||||
player.storage.mdzhoufu3.draw();
|
||||
// player.storage.mdzhoufu3.draw();
|
||||
player.storage.mdzhoufu3.gain(player.judging,'gain2');
|
||||
}
|
||||
else{
|
||||
game.delay(1.5);
|
||||
|
@ -1084,6 +1313,37 @@ character.hearth={
|
|||
},
|
||||
group:'tuteng_lose'
|
||||
},
|
||||
s_tuteng:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
forced:true,
|
||||
content:function(){
|
||||
var rand=['tuteng1','tuteng2','tuteng4',
|
||||
'tuteng5','tuteng6','tuteng7'];
|
||||
if(player.storage.s_tuteng){
|
||||
|
||||
var rand2=player.storage.s_tuteng;
|
||||
for(var i=0;i<3;i++){
|
||||
rand.remove(rand2[i]);
|
||||
}
|
||||
player.removeSkill(rand2.randomRemove());
|
||||
var totem=rand.randomGet();
|
||||
rand2.push(totem);
|
||||
player.addSkill(totem);
|
||||
}
|
||||
else{
|
||||
for(var i=0;i<3;i++){
|
||||
rand.randomRemove();
|
||||
}
|
||||
for(var i=0;i<3;i++){
|
||||
player.addSkill(rand[i]);
|
||||
}
|
||||
player.storage.s_tuteng=rand;
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
threaten:2
|
||||
}
|
||||
},
|
||||
tuteng:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
|
@ -1208,6 +1468,60 @@ character.hearth={
|
|||
trigger.num++;
|
||||
}
|
||||
},
|
||||
tuteng5:{
|
||||
mark:'image',
|
||||
intro:{
|
||||
content:'回合结束阶段,你摸一张牌'
|
||||
},
|
||||
trigger:{player:'phaseEnd'},
|
||||
forced:true,
|
||||
content:function(){
|
||||
player.draw();
|
||||
}
|
||||
},
|
||||
tuteng6:{
|
||||
mark:'image',
|
||||
intro:{
|
||||
content:'你的杀造成的伤害+1'
|
||||
},
|
||||
trigger:{source:'damageBegin'},
|
||||
forced:true,
|
||||
filter:function(event){
|
||||
return event.card&&event.card.name=='sha';
|
||||
},
|
||||
content:function(){
|
||||
trigger.num++;
|
||||
}
|
||||
},
|
||||
tuteng7:{
|
||||
mark:'image',
|
||||
intro:{
|
||||
content:'回合结束阶段,你令一名其他角色回复一点体力'
|
||||
},
|
||||
trigger:{player:'phaseEnd'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]!=player&&game.players[i].hp<game.players[i].maxHp){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget('活力图腾:令一名其他角色回复一点体力',function(card,player,target){
|
||||
return target!=player&&target.hp<target.maxHp;
|
||||
}).ai=function(target){
|
||||
return ai.get.recoverEffect(target,player,player);
|
||||
};
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('tuteng7',result.targets[0]);
|
||||
result.targets[0].recover();
|
||||
}
|
||||
}
|
||||
},
|
||||
fenliu:{
|
||||
enable:'phaseUse',
|
||||
prompt:'流失1点体力并摸两张牌',
|
||||
|
@ -1263,31 +1577,68 @@ character.hearth={
|
|||
},
|
||||
tuteng4:{
|
||||
image:'card/tuteng4',
|
||||
}
|
||||
},
|
||||
tuteng5:{
|
||||
image:'card/tuteng5',
|
||||
},
|
||||
tuteng6:{
|
||||
image:'card/tuteng6',
|
||||
},
|
||||
tuteng7:{
|
||||
image:'card/tuteng7',
|
||||
},
|
||||
},
|
||||
translate:{
|
||||
hs_alleria:'奥蕾莉亚',
|
||||
hs_magni:'麦格尼',
|
||||
hs_medivh:'麦迪文',
|
||||
hs_jaina:'吉安娜',
|
||||
hs_rexxar:'雷克萨',
|
||||
hs_uther:'乌瑟尔',
|
||||
hs_garrosh:'加尔鲁什',
|
||||
hs_lrexxar:'雷克萨',
|
||||
hs_wuther:'乌瑟尔',
|
||||
hs_jgarrosh:'加尔鲁什',
|
||||
hs_malfurion:'玛法里奥',
|
||||
hs_guldan:'古尔丹',
|
||||
hs_anduin:'安度因',
|
||||
hs_thrall:'萨尔',
|
||||
hs_sthrall:'萨尔',
|
||||
hs_waleera:'瓦莉拉',
|
||||
|
||||
hs_neptulon:'耐普图隆',
|
||||
hs_velen:'维纶',
|
||||
hs_wvelen:'维纶',
|
||||
hs_antonidas:'安东尼达斯',
|
||||
hs_alakir:'奥拉基尔',
|
||||
hs_zhouzhuo:'周卓',
|
||||
hs_yngvar:'伊戈瓦尔',
|
||||
hs_bchillmaw:'冰喉',
|
||||
hs_malorne:'玛洛恩',
|
||||
|
||||
hs_ronghejuren:'熔核巨人',
|
||||
hs_wujiyuansu:'无羁元素',
|
||||
hs_mijiaojisi:'秘教祭司',
|
||||
hs_huzhixiannv:'湖之仙女',
|
||||
hs_tgolem:'图腾魔像',
|
||||
hs_totemic:'图腾师',
|
||||
|
||||
shenen:'神恩',
|
||||
shenen_info:'出牌阶段限一次,你可以指定一名角色令其手牌数与你相等',
|
||||
chongsheng:'重生',
|
||||
chongsheng_info:'濒死阶段,你可弃置所有牌,将体力回复至3-X,并摸X张牌,X为你本局发动此技能的次数。每局最多发动3次',
|
||||
s_tuteng:'滋养',
|
||||
s_tuteng_info:'在你首个回合开始时,你获得三个随机图腾;在此后的每个回合开始阶段,你随机替换其中的一个图腾',
|
||||
guozai:'过载',
|
||||
guozai2:'过载',
|
||||
guozai2_bg:'载',
|
||||
guozai_info:'摸牌阶段,你可以额外摸两张牌,若如此做,你本回合的手牌上限-1',
|
||||
hanshuang:'寒霜',
|
||||
hanshuang_info:'锁定技,你使用黑色牌造成伤害后,受伤害角色须将武将牌翻至背面,然后你流失一点体力',
|
||||
bingshi:'冰噬',
|
||||
bingshi_info:'锁定技,你死亡时,对所有其他角色造成一点伤害',
|
||||
huanwu:'唤雾',
|
||||
huanwu_info:'出牌阶段限一次,你可以令一名角色增加一点体力上限,回复一点体力,并摸两张牌(每名角色限发动一次)',
|
||||
fengnu:'风怒',
|
||||
fengnu_info:'锁定技,你使用的任何卡牌无数量及距离限制;当你于回合内重复使用卡牌时,你摸一张牌',
|
||||
shengdun:'圣盾',
|
||||
shengdun2:'圣盾',
|
||||
shengdun_info:'锁定技,你受到的首次伤害-1,此技能于你回合开始阶段重置',
|
||||
jingmeng:'镜梦',
|
||||
jingmeng_info:'每当你于回合内使用第一张牌时,你可以从牌堆中随机获得一张与之类型相同的牌',
|
||||
kuixin:'窥心',
|
||||
|
@ -1295,7 +1646,7 @@ character.hearth={
|
|||
wujiwuji:'无羁',
|
||||
wujiwuji_info:'出牌阶段结束时,你可以摸X张牌,X为你本回合使用的卡牌数',
|
||||
yanshu:'炎术',
|
||||
yanshu_info:'出牌阶段开始时,你可以创造一张流星火雨并将其交给任意一名角色',
|
||||
yanshu_info:'出牌阶段限一次,你可以弃置一张非基本牌,并获得一张流星火雨',
|
||||
bingshuang:'冰霜',
|
||||
bingshuang_info:'你使用锦囊牌造成伤害后,可令目标摸两张牌并翻面',
|
||||
shengyan:'圣言',
|
||||
|
@ -1334,9 +1685,9 @@ character.hearth={
|
|||
xianzhi_info:'任意一名角色进行判定前,你可以观看牌堆顶的两张牌,并可以将其调换顺序',
|
||||
mdzhoufu:'诅咒',
|
||||
mdzhoufu2:'诅咒',
|
||||
mdzhoufu_info:'出牌阶段,你可以将一张黑色手牌置于一名其他角色的武将牌上,在其判定时以此牌作为判定结果;当受此技能影响的角色进行判定时,你摸一张牌',
|
||||
mdzhoufu_info:'出牌阶段,你可以将一张黑色手牌置于一名其他角色的武将牌上,在其判定时以此牌作为判定结果,然后你获得亮出的判定牌',
|
||||
moying:'魔影',
|
||||
moying_info:'锁定技,回合开始阶段,若场上没有闪电,你有50%的机率将牌堆中的一张闪电置于你的判定区',
|
||||
moying_info:'锁定技,回合开始阶段,若场上没有闪电且你手牌中有黑桃牌,你将牌堆中的一张闪电置于你的判定区,否则你摸一张牌',
|
||||
moying_old_info:'每当你造成或受到一次伤害,你可以令伤害目标或来源进行一次判定,若结果为黑色,其流失一点体力',
|
||||
jingxiang:'镜像',
|
||||
jingxiang_info:'每当你需要打出卡牌时,你可以观看一名随机角色的手牌并将其视为你的手牌打出',
|
||||
|
@ -1346,6 +1697,9 @@ character.hearth={
|
|||
tuteng2:'灼热图腾',
|
||||
tuteng3:'石爪图腾',
|
||||
tuteng4:'空气之怒图腾',
|
||||
tuteng5:'法力之潮图腾',
|
||||
tuteng6:'火舌图腾',
|
||||
tuteng7:'活力图腾',
|
||||
tzhenji:'震击',
|
||||
tzhenji_info:'每当你因弃置而失去黑色牌,可对一名角色造成1点雷电伤害,并随机弃置其一张牌,每回合限发动一次',
|
||||
fenliu:'分流',
|
||||
|
|
|
@ -777,7 +777,9 @@ character.mountain={
|
|||
},
|
||||
direct:true,
|
||||
check:function(event,player){
|
||||
return (ai.get.attitude(player,event.player)-ai.get.attitude(player,event.source))>0;
|
||||
var att1=ai.get.attitude(player,event.player);
|
||||
var att2=ai.get.attitude(player,event.source);
|
||||
return att1>att2&&att1>=0;
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
|
|
|
@ -264,7 +264,29 @@ character.sp={
|
|||
},
|
||||
},
|
||||
danlao:{
|
||||
inherit:'mufeng'
|
||||
priority:9,
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&get.type(event.card)=='trick'&&event.targets&&event.targets.length>1;
|
||||
},
|
||||
check:function(event,player){
|
||||
return get.tag(event.card,'multineg')||ai.get.effect(player,event.card,event.player,player)<=0;
|
||||
},
|
||||
trigger:{target:'useCardToBefore'},
|
||||
content:function(){
|
||||
trigger.untrigger();
|
||||
trigger.finish();
|
||||
player.draw();
|
||||
},
|
||||
ai:{
|
||||
effect:{
|
||||
target:function(card){
|
||||
if(get.type(card)!='trick') return;
|
||||
if(card.name=='tiesuo') return [0,0];
|
||||
if(card.name=='yihuajiemu') return [0,1];
|
||||
if(get.tag(card,'multineg')) return [0,2];
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
taichen:{
|
||||
enable:'phaseUse',
|
||||
|
@ -1345,7 +1367,11 @@ character.sp={
|
|||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('xiaoguo',trigger.player);
|
||||
var nono=(ai.get.damageEffect(trigger.player,player,trigger.player)>=0);
|
||||
trigger.player.chooseToDiscard('he',{type:'equip'}).ai=function(card){
|
||||
if(nono){
|
||||
return 0;
|
||||
}
|
||||
if(trigger.player.hp==1) return 10-ai.get.value(card);
|
||||
return 9-ai.get.value(card);
|
||||
}
|
||||
|
|
|
@ -1252,7 +1252,7 @@ character.standard={
|
|||
check:function(card){return 15-ai.get.value(card)},
|
||||
ai:{
|
||||
skillTagFilter:function(player){
|
||||
return player.num('he',{color:'red'})>0;
|
||||
return player.num('he',{color:'red'})>0&&_status.currentPhase!=player;
|
||||
},
|
||||
threaten:1.5,
|
||||
save:true,
|
||||
|
|
|
@ -54,7 +54,7 @@ character.swd={
|
|||
|
||||
swd_sikongyu:['male','wu',4,['sliufeng','linyun','hutian'],['fullskin']],
|
||||
swd_muyue:['female','wei',3,['xingzhui','lingxian','shouyin'],['fullskin']],
|
||||
swd_ziqiao:['female','shu',3,['guaili','pingshen','fuyan'],['fullskin']],
|
||||
swd_ziqiao:['female','shu',3,['guaili','fuyan'],['fullskin']],
|
||||
swd_fengyu:['male','shu',4,['zhenwei','shangxi'],['fullskin']],
|
||||
},
|
||||
skill:{
|
||||
|
@ -815,7 +815,7 @@ character.swd={
|
|||
zhenwei:{
|
||||
trigger:{global:'respondEnd'},
|
||||
filter:function(event,player){
|
||||
if(get.distance(player,event.player,'attack')>1) return false;
|
||||
if(_status.currentPhase!=player) return false;
|
||||
if(event.player==player) return false;
|
||||
if(event.cards){
|
||||
for(var i=0;i<event.cards.length;i++){
|
||||
|
@ -836,7 +836,7 @@ character.swd={
|
|||
event.cards=cards;
|
||||
game.delay(0.5);
|
||||
player.chooseTarget('是否发动【镇威】?',function(card,player,target){
|
||||
return target!=trigger.player&&get.distance(player,target,'attack')<=1;
|
||||
return target!=trigger.player;
|
||||
}).ai=function(target){
|
||||
var att=ai.get.attitude(player,target);
|
||||
if(att<=0) return 0;
|
||||
|
@ -910,8 +910,9 @@ character.swd={
|
|||
player.chooseTarget('是否发动【覆岩】?',function(card,player,target){
|
||||
return !target.hujia;
|
||||
}).ai=function(target){
|
||||
var eff=-ai.get.damageEffect(target,target,player);
|
||||
return eff+(player==target?2:0);
|
||||
if(ai.get.attitude(player,target)<=0) return 0;
|
||||
var eff=-ai.get.damageEffect(target,target,player)+(player==target?2:0);
|
||||
return Math.min(1,eff);
|
||||
};
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
|
@ -968,7 +969,7 @@ character.swd={
|
|||
player.storage.pingshen2=false;
|
||||
},
|
||||
filter:function(event,player){
|
||||
return !player.storage.pingshen2;
|
||||
return !player.storage.pingshen2&&player.storage.pingshen.isAlive();
|
||||
},
|
||||
filterCard:true,
|
||||
filterTarget:function(card,player,target){
|
||||
|
@ -1522,12 +1523,10 @@ character.swd={
|
|||
},
|
||||
guiying:{
|
||||
enable:'chooseToUse',
|
||||
filterCard:function(card){
|
||||
return get.color(card)=='black';
|
||||
},
|
||||
filterCard:{color:'black'},
|
||||
position:'he',
|
||||
viewAs:{name:'toulianghuanzhu'},
|
||||
prompt:'将一张黑色牌当偷梁换柱使用',
|
||||
prompt:'将一张黑色牌当作偷梁换柱使用',
|
||||
check:function(card){
|
||||
if(_status.event.player.num('h')>_status.event.player.hp){
|
||||
return 5-ai.get.value(card)
|
||||
|
@ -2351,11 +2350,6 @@ character.swd={
|
|||
},
|
||||
mufeng:{
|
||||
priority:9,
|
||||
// mod:{
|
||||
// globalTo:function(from,to,distance){
|
||||
// return distance+1;
|
||||
// }
|
||||
// },
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&get.type(event.card)=='trick'&&event.targets&&event.targets.length>1;
|
||||
},
|
||||
|
@ -2371,6 +2365,7 @@ character.swd={
|
|||
ai:{
|
||||
effect:{
|
||||
target:function(card){
|
||||
if(get.type(card)!='trick') return;
|
||||
if(card.name=='tiesuo') return [0,0];
|
||||
if(card.name=='yihuajiemu') return [0,1];
|
||||
if(get.tag(card,'multineg')) return [0,2];
|
||||
|
@ -2423,7 +2418,7 @@ character.swd={
|
|||
return ai.get.damageEffect(event.player,player,player,'thunder')>0;
|
||||
},
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&!player.skills.contains('touxi2');
|
||||
return event.player!=player&&!player.skills.contains('touxi2')&&event.player.isAlive();
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
|
@ -3180,6 +3175,9 @@ character.swd={
|
|||
filterCard:function(card){var suit=get.suit(card); return suit=='spade';},
|
||||
position:'he',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return player.num('he',{suit:'spade'})>0;
|
||||
},
|
||||
check:function(card){
|
||||
return 10-ai.get.value(card)
|
||||
},
|
||||
|
@ -3792,11 +3790,7 @@ character.swd={
|
|||
}
|
||||
},
|
||||
dunxing:{
|
||||
mod:{
|
||||
targetEnabled:function(card,player,target){
|
||||
if(_status.currentPhase==player&&target.hp<player.hp) return false;
|
||||
}
|
||||
}
|
||||
inherit:'tuoqiao'
|
||||
},
|
||||
qiaoxie:{
|
||||
group:['xiaoji2','xuanfeng2'],
|
||||
|
@ -5119,9 +5113,9 @@ character.swd={
|
|||
unique:true,
|
||||
enable:'phaseUse',
|
||||
priority:-9,
|
||||
filterCard:{type:['trick','delay']},
|
||||
filterCard:true,
|
||||
filter:function(event,player){
|
||||
return player.num('h',{type:['trick','delay']})>0;
|
||||
return player.num('h')>0;
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
var names=[];
|
||||
|
@ -5238,6 +5232,7 @@ character.swd={
|
|||
trigger:{player:'phaseUseBegin'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
silent:true,
|
||||
content:function(){
|
||||
if(player.storage.tianshu){
|
||||
player.unmark(player.storage.tianshu+'_charactermark');
|
||||
|
@ -6134,7 +6129,7 @@ character.swd={
|
|||
trigger.untrigger();
|
||||
trigger.finish();
|
||||
trigger.source.draw(2);
|
||||
player.addTempSkill('lanzhi2','phaseBegin');
|
||||
player.addTempSkill('lanzhi2','phaseAfter');
|
||||
},
|
||||
},
|
||||
lanzhi2:{},
|
||||
|
@ -7621,7 +7616,7 @@ character.swd={
|
|||
shangxi:'伤袭',
|
||||
shangxi_info:'回合开始阶段,你可以弃置一张牌,并对攻击范围内一名体力值不小于你的其他角色造成一点伤害',
|
||||
zhenwei:'镇威',
|
||||
zhenwei_info:'你可以将攻击范围内其他角色打出的卡牌交给除该角色外的任意一名角色',
|
||||
zhenwei_info:'在你的回合内,你可以将其他角色打出的卡牌交给除该角色外的任意一名角色',
|
||||
fuyan:'覆岩',
|
||||
fuyan2:'覆岩',
|
||||
fuyan_info:'每当你受到一次伤害,可以令一名没有护甲的角色获得一点护甲值',
|
||||
|
@ -7725,7 +7720,7 @@ character.swd={
|
|||
yinmo_info:'锁定技,当你对场上所有角色发动「连计」后,你立即变身为魔化宁珂,然后对所有其他角色造成一点雷电伤害',
|
||||
huanxing:'幻形',
|
||||
huanxing2:'幻形',
|
||||
huanxing_info:'回合开始阶段,你可以弃置一张处于并选择一名男性角色,获得其所有技能,直到你首次受到伤害',
|
||||
huanxing_info:'回合开始阶段,你可以弃置一张牌并选择一名男性角色,获得其所有技能,直到你首次受到伤害',
|
||||
meihuo:'魅惑',
|
||||
meihuo_info:'每当你失去最后一张装备牌,你可以获得一名其他角色的一张牌,若此牌来自装备区,你立即装备之',
|
||||
|
||||
|
@ -7799,7 +7794,7 @@ character.swd={
|
|||
wanjun:'万钧',
|
||||
wanjun_info:'你可以将一张装备牌当作南蛮入侵使用',
|
||||
dunxing:'遁形',
|
||||
dunxing_info:'锁定技,体力值比你多的角色无法在回合内对你使用卡牌',
|
||||
// dunxing_info:'锁定技,体力值比你多的角色无法在回合内对你使用卡牌',
|
||||
guiying:'鬼影',
|
||||
guiying_info:'你可以将一张黑色牌当偷梁换柱使用',
|
||||
shehun:'摄魂',
|
||||
|
@ -7810,7 +7805,6 @@ character.swd={
|
|||
luomu:'落木',
|
||||
jifeng:'魔影',
|
||||
liaoyuan:'燎原',
|
||||
chongsheng:'重生',
|
||||
huanhun:'唤魂',
|
||||
daixing:'代形',
|
||||
yishan:'异闪',
|
||||
|
@ -7897,9 +7891,7 @@ character.swd={
|
|||
swd_xiuluo_info:'回合开始阶段,你可以弃一张手牌来弃置你判断区里的一张延时类锦囊(必须花色相同)',
|
||||
xianyin_info:'出牌阶段,你可以令所有判定区内有牌的角色弃置判定区内的牌,然后交给你一张手牌',
|
||||
qiaoxie_info:'每当你装备一张牌,可摸一张牌,每当你失去一张装备牌(不含替换),你可以弃置其他角色的一张牌',
|
||||
mailun_info:'回合开始阶段,你可以选择如下效果:一、减少一点体力并增加一点体力上限(不能超过6);二、增加一点体力并减'+
|
||||
'少一点体力上限;三、令你即将造成和即将受到的首次伤害-1;四、令你即将造成和即将受到的首次伤害+1;五、少摸一张牌并令手牌上限+1'+
|
||||
';六、多摸一张牌并令手牌上限-1;七、进攻距离+1,防御距离-1;八、进攻距离-1,防御距离+1',
|
||||
mailun_info:'回合开始阶段,你可以选择一个脉轮效果直到下一回合开始',
|
||||
yunshen_info:'每当你打出一张闪,你可以令其他角色与你的距离+1;回合开始阶段,你将累计的防御距离清零,然后摸等量的牌',
|
||||
guiyan_info:'出牌阶段,你可以观看一名角色的手牌,并获得其中一张梅花牌,每阶段限一次。当你首次进入濒死状态时,你须回复一点体力并失去技能鬼眼',
|
||||
busi_info:'锁定技,你死亡后每次轮过你时你自动复活',
|
||||
|
@ -7907,7 +7899,7 @@ character.swd={
|
|||
yinguo_info:'除你之外的任意一名角色即将受到受到伤害时,若有伤害来源,你可以弃置一张牌将伤害来源和目标对调',
|
||||
yueren_info:'每当你使用一张杀,可以进行一次判定,若结果为黑色,你弃置目标一张牌,若结果为红色,你将此杀收回,每回合限发动一次',
|
||||
duijue_info:'限定技,出牌阶段,你可以指定一名角色与其单挑,直到一方死亡为止',
|
||||
wuying_info:'锁定技,你的杀和单体锦囊目标锁定为范围内的所有角色',
|
||||
wuying_info:'锁定技,你的杀和单体x锦囊目标锁定为范围内的所有角色',
|
||||
xiehun_info:'锁定技,受到来自你伤害的角色进入混乱状态,行为不受控制,且会攻击队友,直到你的下一回合开始',
|
||||
jumo_info:'锁定技,回合结束阶段,你摸X-1张牌,X为未进入混乱状态的角色数与进入混乱状态的角色数之差(若为双将则改为X)',
|
||||
jifeng_info:'你的杀和单体锦囊可以额外指定任意个目标,若如此做,此卡牌有一定机率失效,指定的目标越多失效的概率越大',
|
||||
|
@ -7938,7 +7930,7 @@ character.swd={
|
|||
tanlin_info:'出牌阶段限一次,你可以与一名其他角色进行拼点,若你赢,你获得双方拼点牌、对该角色使用卡牌无视距离且可以额外使用一张杀直到回合结束,若你没赢,你受到该角色的一点伤害。',
|
||||
pozhen_info:'每当你受到一次伤害,若你的手牌数大于伤害来源,你可以弃置X张手牌对其造成一点伤害;若你的手牌数小于伤害来源,你可以弃置其X张手牌。X为你与伤害来源的手牌数之差。',
|
||||
yunchou_info:'出牌阶段限一次,你可以弃置任意张手牌,并弃置一张其他角色的手牌,你弃置的手牌中每有一张与此牌的颜色相同,你摸一张牌,否则对方摸一张牌',
|
||||
tianshu_info:'出牌阶段,你可以弃置一张锦囊牌,并获得场上一名存活角色的一项技能直到你的下一回合开始(多次使用会替换前一次获得的技能)',
|
||||
tianshu_info:'出牌阶段,你可以弃置一张手牌,并获得场上一名存活角色的一项技能直到你的下一出牌阶段开始',
|
||||
luomei_info:'每当你使用或打出一张梅花花色的牌,你可以摸一张牌',
|
||||
xingdian_info:'出牌阶段限一次,你可以弃置一张手牌,然后指定至多两名角色令其各弃置一张牌',
|
||||
yulin_info:'每当你即将受到伤害,你可以弃置一张装备牌抵消此伤害',
|
||||
|
|
|
@ -164,8 +164,8 @@ character.woods={
|
|||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.gain(trigger.cards);
|
||||
player.$draw(trigger.cards);
|
||||
player.gain(trigger.playerCards);
|
||||
player.$draw(trigger.playerCards);
|
||||
//trigger.player.$give(trigger.cards,player);
|
||||
game.delay();
|
||||
// var card=trigger.cards;
|
||||
|
@ -175,7 +175,10 @@ character.woods={
|
|||
// }
|
||||
// game.log(str);
|
||||
"step 1"
|
||||
trigger.cards.length=0;
|
||||
for(var i=0;i<trigger.playerCards.length;i++){
|
||||
trigger.cards.remove(trigger.playerCards[i]);
|
||||
}
|
||||
trigger.playerCards.length=0;
|
||||
}
|
||||
},
|
||||
fangzhu:{
|
||||
|
@ -756,7 +759,7 @@ character.woods={
|
|||
jiuchi_info:'你可将你的任意一张♠手牌当【酒】使用。',
|
||||
roulin_info:'你对女性角色、女性角色对你使用【杀】时,都需连续使用两张【闪】才能抵消。',
|
||||
benghuai_info:'回合结束阶段,若你的体力不是全场最少的(或之一),你须减1点体力或体力上限。',
|
||||
baonue:'其他群雄角色每造成一次伤害,可进行一次判定,若为♠,你回复1点体力。',
|
||||
baonue_info:'其他群雄角色每造成一次伤害,可进行一次判定,若为♠,你回复1点体力。',
|
||||
luanwu_info:'出牌阶段,可令除你外的所有角色依次对与其距离最近的另一名角色使用一张【杀】,无法如此做者失去1点体力。',
|
||||
wansha_info:'在你的回合,除你以外,只有处于濒死状态的角色才能使用【桃】。',
|
||||
weimu_info:'你不能成为♠或♣锦囊的目标。',
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
window.config={
|
||||
forbidai:['zuoci','caiwenji'],
|
||||
forbidsingle:['huanggai','caoren','machao','pangde','yanwen','xiahoudun','xuzhu','luxun',
|
||||
forbidsingle:['menghuo','huanggai','caoren','machao','pangde','yanwen','xiahoudun','xuzhu','luxun',
|
||||
'xuhuang','yujin','xiaoqiao','daqiao','zhangjiao','zhangbao'],
|
||||
forbidall:['caocao','simayi','guanyu','zhangfei','zhaoyun','ganning','lvmeng','lvbu',
|
||||
'xiahouyuan','huangzhong','weiyan','dianwei','gongsunzan'],
|
||||
|
|
51
game/game.js
|
@ -631,6 +631,11 @@
|
|||
target.chooseCard('请选择拼点牌',true).ai=event.ai;
|
||||
"step 2"
|
||||
event.card2=result.cards[0];
|
||||
if(event.card2.number>=10||event.card2.number<=4){
|
||||
if(target.num('h')>2){
|
||||
event.addToAI=true;
|
||||
}
|
||||
}
|
||||
player.lose(event.card1);
|
||||
target.lose(event.card2);
|
||||
"step 3"
|
||||
|
@ -680,7 +685,7 @@
|
|||
"step 4"
|
||||
game.delay(2);
|
||||
"step 5"
|
||||
if(typeof event.target.ai.shown=='number'&&event.target.ai.shown<=0.85){
|
||||
if(typeof event.target.ai.shown=='number'&&event.target.ai.shown<=0.85&&event.addToAI){
|
||||
event.target.ai.shown+=0.1;
|
||||
}
|
||||
if(event.clear!==false) ui.clear();
|
||||
|
@ -1837,6 +1842,7 @@
|
|||
game.log(get.translation(player)+'遇难')
|
||||
}
|
||||
event.cards=player.get('hej');
|
||||
event.playerCards=player.get('he');
|
||||
if(event.cards.length){
|
||||
for(var i=0;i<event.cards.length;i++){
|
||||
event.cards[i].goto(ui.discardPile);
|
||||
|
@ -5043,7 +5049,7 @@
|
|||
trigger.start=trigger.source||trigger.player;
|
||||
var str=get.translation(trigger.player.name)+'濒死,是否帮助?';
|
||||
_status.dying=event.dying;
|
||||
if(player.hasSkillTag('save')||player.num('h','tao')||
|
||||
if(player.hasSkillTag('save',true)||player.num('h','tao')||
|
||||
(player==event.dying&&(player.num('h','jiu')||player.num('h','hufu')||player.num('h','tianxianjiu')))){
|
||||
player.chooseToUse({
|
||||
filterCard:function(card,player){
|
||||
|
@ -6997,7 +7003,7 @@
|
|||
if(get.objtype(arguments[0])=='array') controls=arguments[0];
|
||||
else controls=arguments;
|
||||
var control=ui.create.div('.control');
|
||||
ui.control.insertBefore(control,ui.confirm);
|
||||
ui.control.insertBefore(control,_status.createControl||ui.confirm);
|
||||
for(i in lib.element.control){
|
||||
control[i]=lib.element.control[i];
|
||||
}
|
||||
|
@ -8634,21 +8640,23 @@
|
|||
for(var i=0;i<dialogs.length;i++){
|
||||
dialogs[i].delete();
|
||||
}
|
||||
|
||||
for(var i=0;i<e.path.length;i++){
|
||||
var itemtype=get.itemtype(e.path[i]);
|
||||
if(itemtype=='button') break;
|
||||
if(itemtype=='dialog'&&!e.path[i].classList.contains('popped')){
|
||||
var ddialog=e.path[i];
|
||||
_status.draggingdialog=ddialog;
|
||||
ddialog._dragorigin=e;
|
||||
if(!ddialog._dragtransform){
|
||||
ddialog._dragtransform=[0,0];
|
||||
if(e.path){
|
||||
for(var i=0;i<e.path.length;i++){
|
||||
var itemtype=get.itemtype(e.path[i]);
|
||||
if(itemtype=='button') break;
|
||||
if(itemtype=='dialog'&&!e.path[i].classList.contains('popped')){
|
||||
var ddialog=e.path[i];
|
||||
_status.draggingdialog=ddialog;
|
||||
ddialog._dragorigin=e;
|
||||
if(!ddialog._dragtransform){
|
||||
ddialog._dragtransform=[0,0];
|
||||
}
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var evt=_status.event;
|
||||
if(!lib.config.enable_drag) return;
|
||||
if(!ui.arena.classList.contains('selecting')) return;
|
||||
|
@ -10865,6 +10873,18 @@
|
|||
uiintro.add('<div class="text center">'+'共有'+get.cnNumber(num)+'张牌'+'</div>');
|
||||
}
|
||||
}
|
||||
else if(node.name=='lianyaohu'&&get.position(node)=='e'){
|
||||
var num=0;
|
||||
if(node.storage.shouna){
|
||||
num=node.storage.shouna.length;
|
||||
}
|
||||
if(num){
|
||||
uiintro.add(node.storage.shouna,true,num>4);
|
||||
}
|
||||
else{
|
||||
uiintro.add('<div class="text center">炼妖壶内没有牌</div>');
|
||||
}
|
||||
}
|
||||
else if(lib.translate[name+'_info']){
|
||||
uiintro.add('<div class="text">'+lib.translate[name+'_info']+'</div>');
|
||||
}
|
||||
|
@ -11522,6 +11542,9 @@
|
|||
return this;
|
||||
};
|
||||
Array.prototype.randomGets=function(num){
|
||||
if(num>this.length){
|
||||
num=this.length;
|
||||
}
|
||||
var arr=this.slice(0);
|
||||
var list=[];
|
||||
for(var i=0;i<num;i++){
|
||||
|
|
After Width: | Height: | Size: 9.9 KiB |
After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 75 KiB |
After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 99 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 82 KiB |
After Width: | Height: | Size: 262 KiB |
Before Width: | Height: | Size: 295 KiB After Width: | Height: | Size: 295 KiB |
Before Width: | Height: | Size: 138 KiB After Width: | Height: | Size: 138 KiB |
After Width: | Height: | Size: 240 KiB |
After Width: | Height: | Size: 180 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 65 KiB |
10
mode/boss.js
|
@ -392,11 +392,14 @@ mode.boss={
|
|||
game.check();
|
||||
};
|
||||
ui.create.cheat=function(){
|
||||
_status.createControl=ui.cheat2||event.asboss;
|
||||
ui.cheat=ui.create.control('更换',event.changeDialog);
|
||||
delete _status.createControl;
|
||||
};
|
||||
event.dialogxx=ui.create.characterDialog();
|
||||
event.dialogxx.classList.add('bosscharacter');
|
||||
ui.create.cheat2=function(){
|
||||
_status.createControl=event.asboss;
|
||||
ui.cheat2=ui.create.control('自由选将',function(){
|
||||
if(this.dialog==_status.event.dialog){
|
||||
this.dialog.close();
|
||||
|
@ -405,6 +408,9 @@ mode.boss={
|
|||
delete this.backup;
|
||||
game.uncheck();
|
||||
game.check();
|
||||
if(ui.cheat){
|
||||
ui.cheat.style.opacity=1;
|
||||
}
|
||||
if(ui.cheat2x){
|
||||
ui.cheat2x.close();
|
||||
delete ui.cheat2x;
|
||||
|
@ -419,8 +425,12 @@ mode.boss={
|
|||
ui.window.appendChild(this.dialog);
|
||||
game.uncheck();
|
||||
game.check();
|
||||
if(ui.cheat){
|
||||
ui.cheat.style.opacity=0.6;
|
||||
}
|
||||
}
|
||||
});
|
||||
delete _status.createControl;
|
||||
}
|
||||
if(!ui.cheat&&get.config('change_choice'))
|
||||
ui.create.cheat();
|
||||
|
|
|
@ -972,7 +972,9 @@ mode.chess={
|
|||
game.check();
|
||||
};
|
||||
ui.create.cheat=function(){
|
||||
_status.createControl=ui.cheat2;
|
||||
ui.cheat=ui.create.control('更换',event.changeDialog);
|
||||
delete _status.createControl;
|
||||
};
|
||||
event.dialogxx=ui.create.characterDialog();
|
||||
event.dialogxx.classList.add('fullwidth');
|
||||
|
@ -986,6 +988,9 @@ mode.chess={
|
|||
delete this.backup;
|
||||
game.uncheck();
|
||||
game.check();
|
||||
if(ui.cheat){
|
||||
ui.cheat.style.opacity=1;
|
||||
}
|
||||
if(ui.cheat2x){
|
||||
ui.cheat2x.close();
|
||||
delete ui.cheat2x;
|
||||
|
@ -1000,6 +1005,9 @@ mode.chess={
|
|||
this.dialog.open();
|
||||
game.uncheck();
|
||||
game.check();
|
||||
if(ui.cheat){
|
||||
ui.cheat.style.opacity=0.6;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -186,6 +186,9 @@ mode.guozhan={
|
|||
delete this.backup;
|
||||
game.uncheck();
|
||||
game.check();
|
||||
if(ui.cheat){
|
||||
ui.cheat.style.opacity=1;
|
||||
}
|
||||
if(ui.cheat2x){
|
||||
ui.cheat2x.close();
|
||||
delete ui.cheat2x;
|
||||
|
@ -200,10 +203,14 @@ mode.guozhan={
|
|||
this.dialog.open();
|
||||
game.uncheck();
|
||||
game.check();
|
||||
if(ui.cheat){
|
||||
ui.cheat.style.opacity=0.6;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
ui.create.cheat=function(){
|
||||
_status.createControl=ui.cheat2;
|
||||
ui.cheat=ui.create.control('更换',function(){
|
||||
if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){
|
||||
return;
|
||||
|
@ -219,6 +226,7 @@ mode.guozhan={
|
|||
game.uncheck();
|
||||
game.check();
|
||||
});
|
||||
delete _status.createControl;
|
||||
}
|
||||
if(!ui.cheat&&get.config('change_choice'))
|
||||
ui.create.cheat();
|
||||
|
@ -441,10 +449,21 @@ mode.guozhan={
|
|||
}
|
||||
},
|
||||
perfectPair:function(){
|
||||
if(lib.perfectPair[this.name1]&&lib.perfectPair[this.name1].contains(this.name2)){
|
||||
var name1=this.name1;
|
||||
var name2=this.name2;
|
||||
var list=['re','diy','sp','jsp','shen','jg','xin'];
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(name1.indexOf(list[i]+'_')==0){
|
||||
name1=name1.slice(list[i].length+1);
|
||||
}
|
||||
if(name2.indexOf(list[i]+'_')==0){
|
||||
name2=name2.slice(list[i].length+1);
|
||||
}
|
||||
}
|
||||
if(lib.perfectPair[name1]&&lib.perfectPair[name1].contains(name2)){
|
||||
return true;
|
||||
}
|
||||
if(lib.perfectPair[this.name2]&&lib.perfectPair[this.name2].contains(this.name1)){
|
||||
if(lib.perfectPair[name2]&&lib.perfectPair[name2].contains(name1)){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -351,6 +351,7 @@ mode.identity={
|
|||
return get.config('double_character')?2:1
|
||||
};
|
||||
ui.create.cheat=function(){
|
||||
_status.createControl=ui.cheat2;
|
||||
ui.cheat=ui.create.control('更换',function(){
|
||||
if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){
|
||||
return;
|
||||
|
@ -372,6 +373,7 @@ mode.identity={
|
|||
game.uncheck();
|
||||
game.check();
|
||||
});
|
||||
delete _status.createControl;
|
||||
};
|
||||
event.dialogxx=ui.create.characterDialog();
|
||||
ui.create.cheat2=function(){
|
||||
|
@ -383,6 +385,9 @@ mode.identity={
|
|||
delete this.backup;
|
||||
game.uncheck();
|
||||
game.check();
|
||||
if(ui.cheat){
|
||||
ui.cheat.style.opacity=1;
|
||||
}
|
||||
if(ui.cheat2x){
|
||||
ui.cheat2x.close();
|
||||
delete ui.cheat2x;
|
||||
|
@ -397,6 +402,9 @@ mode.identity={
|
|||
this.dialog.open();
|
||||
game.uncheck();
|
||||
game.check();
|
||||
if(ui.cheat){
|
||||
ui.cheat.style.opacity=0.6;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -398,7 +398,9 @@ mode.stone={
|
|||
game.check();
|
||||
};
|
||||
ui.create.cheat=function(){
|
||||
_status.createControl=ui.cheat2;
|
||||
ui.cheat=ui.create.control('更换',event.changeDialog);
|
||||
delete _status.createControl;
|
||||
};
|
||||
event.dialogxx=ui.create.characterDialog();
|
||||
ui.create.cheat2=function(){
|
||||
|
@ -410,6 +412,9 @@ mode.stone={
|
|||
delete this.backup;
|
||||
game.uncheck();
|
||||
game.check();
|
||||
if(ui.cheat){
|
||||
ui.cheat.style.opacity=1;
|
||||
}
|
||||
if(ui.cheat2x){
|
||||
ui.cheat2x.close();
|
||||
delete ui.cheat2x;
|
||||
|
@ -424,6 +429,9 @@ mode.stone={
|
|||
this.dialog.open();
|
||||
game.uncheck();
|
||||
game.check();
|
||||
if(ui.cheat){
|
||||
ui.cheat.style.opacity=0.6;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -1142,7 +1150,7 @@ mode.stone={
|
|||
stone_wuguan2:{
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
return num+1;
|
||||
return num+2;
|
||||
}
|
||||
},
|
||||
},
|
||||
|
@ -1370,7 +1378,7 @@ mode.stone={
|
|||
stone_wubing:'吴兵',
|
||||
stone_wubing_info:'你出场时,敌方主将将装备区内的所有牌收入手牌',
|
||||
stone_wuguan:'吴官',
|
||||
stone_wuguan_info:'你出场时,已方主将本回合手牌上限+1',
|
||||
stone_wuguan_info:'你出场时,已方主将本回合手牌上限+2',
|
||||
stone_wujiang:'吴将',
|
||||
stone_wujiang_info:'你出场时,已方主将摸两张牌',
|
||||
|
||||
|
|
|
@ -141,6 +141,7 @@ mode.versus={
|
|||
// }
|
||||
event.check();
|
||||
ui.create.cheat=function(){
|
||||
_status.createControl=event.fill;
|
||||
ui.cheat=ui.create.control('更换',function(){
|
||||
if(lib.storage.choice=='∞'){
|
||||
list.sort(sortByGroup);
|
||||
|
@ -155,6 +156,7 @@ mode.versus={
|
|||
event.dialog=ui.create.dialog('选择角色',[list.slice(0,choice),'character']);
|
||||
event.check();
|
||||
});
|
||||
delete _status.createControl;
|
||||
}
|
||||
if(!ui.cheat&&get.config('change_choice'))
|
||||
ui.create.cheat();
|
||||
|
|