1.7.8
This commit is contained in:
parent
8113913138
commit
da3e1a91cd
|
@ -97,7 +97,7 @@ card.shenqi={
|
|||
basic:{
|
||||
equipValue:function(card,player){
|
||||
if(player.hp==2) return 7;
|
||||
if(player.hp==1) return 9;
|
||||
if(player.hp==1) return 10;
|
||||
return 5;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -389,7 +389,7 @@ card.yibao={
|
|||
},
|
||||
result:{
|
||||
player:function(player,target){
|
||||
if(player.num('h')<=Math.max(2,player.hp)&&_status.event.name=='chooseToUse'){
|
||||
if(player.num('h')<=Math.min(5,Math.max(2,player.hp))&&_status.event.name=='chooseToUse'){
|
||||
if(typeof _status.event.filterCard=='function'&&
|
||||
_status.event.filterCard({name:'dujian'})){
|
||||
return -10;
|
||||
|
|
|
@ -11,7 +11,12 @@ character.boss={
|
|||
boss_zhouyu:['male','wu',6,['huoshen','boss_honglian','boss_xianyin'],['boss','bossallowed'],'zhu'],
|
||||
|
||||
boss_zhuoguiquxie:['male','qun',0,['boss_bianshen'],['boss','bossallowed'],'shu'],
|
||||
boss_nianshou:['male','qun',Infinity,['boss_nianrui','boss_qixiang','boss_damagecount'],['boss','bossallowed'],'shu'],
|
||||
boss_nianshou:['male','qun',Infinity,['boss_nianrui','boss_qixiang','boss_damagecount'],['boss'],'shu'],
|
||||
boss_nianshou_heti:['male','qun',12,['boss_nianrui','boss_mengtai','boss_nbianshen','boss_nbianshenx'],['boss','bossallowed'],'shu'],
|
||||
boss_nianshou_jingjue:['male','qun',12,['boss_nianrui','boss_mengtai','boss_jingjue','boss_nbianshen'],['hiddenboss','bossallowed'],'shu'],
|
||||
boss_nianshou_renxing:['male','qun',12,['boss_nianrui','boss_mengtai','boss_renxing','boss_nbianshen'],['hiddenboss','bossallowed'],'shu'],
|
||||
boss_nianshou_ruizhi:['male','qun',12,['boss_nianrui','boss_mengtai','boss_ruizhi','boss_nbianshen'],['hiddenboss','bossallowed'],'shu'],
|
||||
boss_nianshou_baonu:['male','qun',12,['boss_nianrui','boss_mengtai','boss_nbaonu','boss_shouyi','boss_nbianshen'],['hiddenboss','bossallowed'],'shu'],
|
||||
boss_baiwuchang:['male','qun',9,['boss_baolian','boss_qiangzheng','boss_zuijiu','juece','boss_bianshen4'],['hiddenboss','bossallowed']],
|
||||
boss_heiwuchang:['male','qun',9,['boss_guiji','boss_taiping','boss_suoming','boss_xixing','boss_bianshen4'],['hiddenboss','bossallowed']],
|
||||
boss_luocha:['male','qun',12,['boss_modao','boss_yushou','yizhong','boss_moyany'],['hiddenboss','bossallowed']],
|
||||
|
@ -54,6 +59,475 @@ character.boss={
|
|||
|
||||
},
|
||||
skill:{
|
||||
tiandao:{
|
||||
audio:true,
|
||||
trigger:{global:'judge'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player.num('he')>0;
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseCard(get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+
|
||||
get.translation(trigger.player.judging[0])+',是否发动【天道】?','he').ai=function(card){
|
||||
var trigger=_status.event.parent._trigger;
|
||||
var player=_status.event.player;
|
||||
var result=trigger.judge(card)-trigger.judge(trigger.player.judging[0]);
|
||||
var attitude=ai.get.attitude(player,trigger.player);
|
||||
if(attitude==0||result==0) return 0;
|
||||
if(attitude>0){
|
||||
return result;
|
||||
}
|
||||
else{
|
||||
return -result;
|
||||
}
|
||||
};
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.respond(result.cards,'highlight');
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
"step 2"
|
||||
if(result.bool){
|
||||
player.logSkill('tiandao');
|
||||
player.$gain2(trigger.player.judging[0]);
|
||||
player.gain(trigger.player.judging[0]);
|
||||
trigger.player.judging[0]=result.cards[0];
|
||||
trigger.position.appendChild(result.cards[0]);
|
||||
game.log(trigger.player,'的判定牌改为',result.cards[0]);
|
||||
}
|
||||
"step 3"
|
||||
game.delay(2);
|
||||
},
|
||||
ai:{
|
||||
tag:{
|
||||
rejudge:1
|
||||
},
|
||||
threaten:1.5
|
||||
}
|
||||
},
|
||||
lianji:{
|
||||
audio:true,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterTarget:function(card,player,target){
|
||||
if(player==target) return false;
|
||||
return target.num('h')>0;
|
||||
},
|
||||
selectTarget:2,
|
||||
multitarget:true,
|
||||
multiline:true,
|
||||
filter:function(event,player){
|
||||
return player.num('h')>0;
|
||||
},
|
||||
prepare:function(cards,player,targets){
|
||||
player.$throw(cards);
|
||||
player.line(targets);
|
||||
},
|
||||
discard:false,
|
||||
filterCard:true,
|
||||
check:function(card){
|
||||
return 6-ai.get.value(card);
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
if(!player.storage.lianji){
|
||||
player.storage.lianji=[];
|
||||
}
|
||||
if(targets[0].num('h')&&targets[1].num('h')){
|
||||
targets[0].chooseToCompare(targets[1]);
|
||||
player.storage.lianji.add(targets[0]);
|
||||
player.storage.lianji.add(targets[1]);
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
targets[0].gain(cards);
|
||||
targets[0].$gain2(cards);
|
||||
targets[1].damage(targets[0]);
|
||||
}
|
||||
else{
|
||||
targets[1].gain(cards);
|
||||
targets[1].$gain2(cards);
|
||||
targets[0].damage(targets[1]);
|
||||
}
|
||||
if(!player.skills.contains('yinmo')){
|
||||
event.finish();
|
||||
}
|
||||
"step 2"
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]!=player&&!player.storage.lianji.contains(game.players[i])){
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
}
|
||||
"step 3"
|
||||
player.logSkill('yinmo');
|
||||
player.gainMaxHp();
|
||||
"step 4"
|
||||
lib.character.swd_duguningke2=['','qun',4,['benlei','juece'],['temp']];
|
||||
if(player.name=='swd_duguningke') player.name='swd_duguningke2';
|
||||
if(player.name1=='swd_duguningke') player.name1='swd_duguningke2';
|
||||
if(player.name2=='swd_duguningke'){
|
||||
player.name2='swd_duguningke2';
|
||||
player.node.avatar2.setBackground('swd_duguningke2','character');
|
||||
}
|
||||
else{
|
||||
player.node.avatar.setBackground('swd_duguningke2','character');
|
||||
}
|
||||
player.removeSkill('yinmo');
|
||||
player.removeSkill('lianji');
|
||||
player.removeSkill('touxi');
|
||||
player.addSkill('benlei');
|
||||
player.addSkill('juece');
|
||||
event.players=game.players.slice(0);
|
||||
event.players.remove(player);
|
||||
event.players.sort(lib.sort.seat);
|
||||
"step 5"
|
||||
if(event.players.length){
|
||||
event.players.shift().damage('thunder');
|
||||
event.redo();
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
expose:0.3,
|
||||
threaten:2,
|
||||
order:9,
|
||||
result:{
|
||||
target:-1
|
||||
}
|
||||
},
|
||||
},
|
||||
mazui:{
|
||||
audio:true,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterCard:{color:'black'},
|
||||
filterTarget:function(card,player,target){
|
||||
return !target.skills.contains('mazui2');
|
||||
},
|
||||
check:function(card){
|
||||
return 6-ai.get.value(card);
|
||||
},
|
||||
discard:false,
|
||||
prepare:function(cards,player,targets){
|
||||
player.$give(cards,targets[0]);
|
||||
player.line(targets[0],'green');
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
game.delay();
|
||||
"step 1"
|
||||
target.storage.mazui2=cards[0];
|
||||
target.addSkill('mazui2');
|
||||
game.addVideo('storage',target,['mazui2',get.cardInfo(target.storage.mazui2),'card']);
|
||||
},
|
||||
ai:{
|
||||
expose:0.2,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
return -target.hp;
|
||||
}
|
||||
},
|
||||
order:4,
|
||||
threaten:1.2
|
||||
}
|
||||
},
|
||||
mazui2:{
|
||||
trigger:{source:'damageBegin'},
|
||||
forced:true,
|
||||
mark:'card',
|
||||
filter:function(event){
|
||||
return event.num>0;
|
||||
},
|
||||
content:function(){
|
||||
trigger.num--;
|
||||
player.addSkill('mazui3');
|
||||
player.removeSkill('mazui2');
|
||||
},
|
||||
intro:{
|
||||
content:'card'
|
||||
}
|
||||
},
|
||||
mazui3:{
|
||||
trigger:{source:'damageEnd'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
content:function(){
|
||||
player.gain(player.storage.mazui2,'gain2');
|
||||
game.log(player,'获得了',player.storage.mazui2);
|
||||
player.removeSkill('mazui3');
|
||||
delete player.storage.mazui2;
|
||||
}
|
||||
},
|
||||
yunshen:{
|
||||
trigger:{player:'respond'},
|
||||
filter:function(event,player){
|
||||
return event.card.name=='shan';
|
||||
},
|
||||
frequent:true,
|
||||
init:function(player){
|
||||
player.storage.yunshen=0;
|
||||
},
|
||||
content:function(){
|
||||
player.storage.yunshen++;
|
||||
player.markSkill('yunshen');
|
||||
},
|
||||
ai:{
|
||||
effect:{
|
||||
target:function(card,player,target){
|
||||
if(get.tag(card,'respondShan')){
|
||||
var shans=target.num('h','shan');
|
||||
var hs=target.num('h');
|
||||
if(shans>1) return [1,1];
|
||||
if(shans&&hs>2) return [1,1];
|
||||
if(shans) return [1,0.5];
|
||||
if(hs>2) return [1,0.3];
|
||||
if(hs>1) return [1,0.2];
|
||||
return [1.2,0];
|
||||
}
|
||||
}
|
||||
},
|
||||
threaten:0.8
|
||||
},
|
||||
intro:{
|
||||
content:'mark'
|
||||
},
|
||||
group:'yunshen2'
|
||||
},
|
||||
yunshen2:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.storage.yunshen>0;
|
||||
},
|
||||
content:function(){
|
||||
player.draw(player.storage.yunshen);
|
||||
player.storage.yunshen=0;
|
||||
player.unmarkSkill('yunshen');
|
||||
},
|
||||
mod:{
|
||||
globalTo:function(from,to,distance){
|
||||
if(typeof to.storage.yunshen=='number') return distance+to.storage.yunshen;
|
||||
}
|
||||
}
|
||||
},
|
||||
lingbo:{
|
||||
trigger:{player:'respond'},
|
||||
filter:function(event,player){
|
||||
return event.card.name=='shan';
|
||||
},
|
||||
frequent:true,
|
||||
content:function(){
|
||||
player.draw(2);
|
||||
},
|
||||
ai:{
|
||||
mingzhi:false,
|
||||
effect:{
|
||||
target:function(card,player,target){
|
||||
if(get.tag(card,'respondShan')){
|
||||
var shans=target.num('h','shan');
|
||||
var hs=target.num('h');
|
||||
if(shans>1) return [0,1];
|
||||
if(shans&&hs>2) return [0,1];
|
||||
if(shans) return [0,0];
|
||||
if(hs>2) return [0,0];
|
||||
if(hs>1) return [1,0.5];
|
||||
return [1.5,0];
|
||||
}
|
||||
}
|
||||
},
|
||||
threaten:0.8
|
||||
}
|
||||
},
|
||||
jiaoxia:{
|
||||
trigger:{target:'useCardToBegin'},
|
||||
filter:function(event,player){
|
||||
return event.card&&get.color(event.card)=='red';
|
||||
},
|
||||
frequent:true,
|
||||
content:function(){
|
||||
player.draw();
|
||||
},
|
||||
ai:{
|
||||
effect:function(card,player,target){
|
||||
if(get.color(card)=='red') return [1,1];
|
||||
},
|
||||
}
|
||||
},
|
||||
boss_nbianshenx:{},
|
||||
boss_jingjue:{
|
||||
inherit:'boss_danshu'
|
||||
},
|
||||
boss_renxing:{
|
||||
trigger:{global:['damageEnd','recoverEnd']},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return _status.currentPhase!=player;
|
||||
},
|
||||
content:function(){
|
||||
player.draw();
|
||||
}
|
||||
},
|
||||
boss_ruizhi:{
|
||||
trigger:{global:'phaseBegin'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&event.player.num('he')>1;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.line(trigger.player,'green');
|
||||
trigger.player.chooseCard(true,'选择保留一张牌,然后弃置其它牌','he').ai=function(card){
|
||||
return ai.get.value(card);
|
||||
};
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var he=trigger.player.get('he');
|
||||
he.remove(result.cards[0]);
|
||||
trigger.player.discard(he);
|
||||
}
|
||||
}
|
||||
},
|
||||
boss_nbaonu:{
|
||||
group:['boss_nbaonu_sha'],
|
||||
trigger:{player:'phaseDrawBegin'},
|
||||
forced:true,
|
||||
priority:-1,
|
||||
content:function(){
|
||||
if(player.hp>4){
|
||||
trigger.num=4+Math.floor(Math.random()*(player.hp-3));
|
||||
}
|
||||
else{
|
||||
trigger.num=4;
|
||||
}
|
||||
},
|
||||
subSkill:{
|
||||
sha:{
|
||||
mod:{
|
||||
cardUsable:function(card,player,num){
|
||||
if(card.name=='sha'&&player.hp<5) return Infinity;
|
||||
}
|
||||
},
|
||||
trigger:{source:'damageBegin'},
|
||||
filter:function(event,player){
|
||||
return event.card&&event.card.name=='sha'&&event.notLink()&&player.hp<5;
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
trigger.num++;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
boss_shouyi:{
|
||||
mod:{
|
||||
targetInRange:function(){
|
||||
return true;
|
||||
}
|
||||
},
|
||||
},
|
||||
boss_mengtai:{
|
||||
group:['boss_mengtai_begin','boss_mengtai_draw','boss_mengtai_use',
|
||||
'boss_mengtai_discard','boss_mengtai_end'],
|
||||
subSkill:{
|
||||
begin:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
content:function(){
|
||||
player.storage.boss_mengtai_draw=true;
|
||||
player.storage.boss_mengtai_use=true;
|
||||
}
|
||||
},
|
||||
draw:{
|
||||
trigger:{player:'phaseDrawBegin'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
content:function(){
|
||||
player.storage.boss_mengtai_draw=false;
|
||||
}
|
||||
},
|
||||
use:{
|
||||
trigger:{player:'phaseUseBegin'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
content:function(){
|
||||
player.storage.boss_mengtai_use=false;
|
||||
}
|
||||
},
|
||||
discard:{
|
||||
trigger:{player:'phaseDiscardBefore'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
if(player.storage.boss_mengtai_use) return true;
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
trigger.untrigger();
|
||||
trigger.finish();
|
||||
}
|
||||
},
|
||||
end:{
|
||||
trigger:{player:'phaseEnd'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
if(player.storage.boss_mengtai_draw) return true;
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
player.draw(3);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
boss_nbianshen:{
|
||||
trigger:{player:'phaseBefore'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
priority:25,
|
||||
filter:function(event,player){
|
||||
if(player.name=='boss_nianshou_heti'||player.storage.boss_nbianshen) return true;
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
if(player.storage.boss_nbianshen){
|
||||
var hp=player.hp,
|
||||
maxHp=player.maxHp,
|
||||
hujia=player.hujia;
|
||||
player.init('boss_nianshou_'+player.storage.boss_nbianshen_next);
|
||||
player.storage.boss_nbianshen.remove(player.storage.boss_nbianshen_next);
|
||||
if(!player.storage.boss_nbianshen.length){
|
||||
player.storage.boss_nbianshen=['jingjue','renxing','ruizhi','baonu'];
|
||||
}
|
||||
player.storage.boss_nbianshen_next=player.storage.boss_nbianshen.randomGet(player.storage.boss_nbianshen_next);
|
||||
player.hp=hp;
|
||||
player.maxHp=maxHp;
|
||||
player.hujia=hujia;
|
||||
player.update();
|
||||
}
|
||||
else{
|
||||
player.storage.boss_nbianshen=['jingjue','renxing','ruizhi','baonu'];
|
||||
player.storage.boss_nbianshen_next=player.storage.boss_nbianshen.randomGet();
|
||||
player.markSkill('boss_nbianshen');
|
||||
}
|
||||
},
|
||||
intro:{
|
||||
content:function(storage,player){
|
||||
var map={
|
||||
jingjue:'警觉',
|
||||
renxing:'任性',
|
||||
ruizhi:'睿智',
|
||||
baonu:'暴怒'
|
||||
};
|
||||
return '下一个状态:'+map[player.storage.boss_nbianshen_next];
|
||||
}
|
||||
}
|
||||
},
|
||||
boss_damagecount:{
|
||||
mode:['boss'],
|
||||
global:'boss_damagecount2'
|
||||
|
@ -2429,6 +2903,43 @@ character.boss={
|
|||
boss_lieshiyazi:'裂石睚眦',
|
||||
|
||||
boss_nianshou:'年兽',
|
||||
boss_nianshou_heti:'合体年兽',
|
||||
boss_nianshou_jingjue:'警觉年兽',
|
||||
boss_nianshou_renxing:'任性年兽',
|
||||
boss_nianshou_baonu:'暴怒年兽',
|
||||
boss_nianshou_ruizhi:'睿智年兽',
|
||||
|
||||
jiaoxia:'皎霞',
|
||||
jiaoxia_info:'每当你成为红色牌的目标,你可以摸一张牌',
|
||||
lingbo:'凌波',
|
||||
lingbo_info:'每当你使用或打出一张闪,你可以摸两张牌',
|
||||
tiandao:'天道',
|
||||
tiandao_info:'任意一名角色的判定生效前,你可以打出一张牌替换之',
|
||||
yunshen:'云身',
|
||||
yunshen2:'云身',
|
||||
yunshen_info:'每当你打出一张闪,你可以令其他角色与你的距离+1;回合开始阶段,你将累计的防御距离清零,然后摸等量的牌',
|
||||
lianji:'连计',
|
||||
lianji_info:'出牌阶段限一次,你可以选择一张手牌并指定两名角色进行拼点,拼点赢的角色获得此牌,并对没赢的角色造成一点伤害',
|
||||
mazui:'麻醉',
|
||||
mazui2:'麻醉',
|
||||
mazui_info:'出牌阶段限一次,你可以将一张黑色手牌置于一名角色的武将牌上,该角色造成的下一次伤害-1,然后获得此牌',
|
||||
|
||||
boss_nbianshen:'变形',
|
||||
boss_nbianshenx:'变形',
|
||||
boss_nbianshenx_info:'你从第二轮开始,每一轮幻化为警觉、任性、睿智、暴怒四种随机状态中的一种',
|
||||
boss_mengtai:'萌态',
|
||||
boss_mengtai_info:'锁定技,若你的出牌阶段被跳过,你跳过本回合的弃牌阶段;若你的摸牌阶段被跳过,结束阶段开始时,你摸三张牌',
|
||||
boss_ruizhi:'睿智',
|
||||
boss_ruizhi_info:'锁定技,其他角色的准备阶段开始时,其选择一张手牌和一张装备区里的牌,然后弃置其余的牌',
|
||||
boss_jingjue:'警觉',
|
||||
boss_jingjue_info:'每当你于回合外失去牌时,你可以进行一次判定,若结果为红色,你回复1点体力',
|
||||
// boss_jingjue_info:'锁定技,当你因弃置而失去牌后,你回复1点体力',
|
||||
boss_renxing:'任性',
|
||||
boss_renxing_info:'锁定技,你的回合外,一名角色受到1点伤害后或回复1点体力时,你摸一张牌',
|
||||
boss_nbaonu:'暴怒',
|
||||
boss_nbaonu_info:'锁定技,摸牌阶段,你改为摸X张牌(X为4到你体力值间的随机数);若你的体力值小于5,则你使用【杀】造成的伤害+1且无次数限制',
|
||||
boss_shouyi:'兽裔',
|
||||
boss_shouyi_info:'锁定技,你使用牌无距离限制',
|
||||
|
||||
boss_nianrui:'年瑞',
|
||||
boss_nianrui_info:'锁定技,摸牌阶段,你额外摸两张牌',
|
||||
|
|
|
@ -122,21 +122,6 @@ character.diy={
|
|||
}
|
||||
}
|
||||
},
|
||||
jiaoxia:{
|
||||
trigger:{target:'useCardToBegin'},
|
||||
filter:function(event,player){
|
||||
return event.card&&get.color(event.card)=='red';
|
||||
},
|
||||
frequent:true,
|
||||
content:function(){
|
||||
player.draw();
|
||||
},
|
||||
ai:{
|
||||
effect:function(card,player,target){
|
||||
if(get.color(card)=='red') return [1,1];
|
||||
},
|
||||
}
|
||||
},
|
||||
diykuanggu:{
|
||||
trigger:{source:'damageEnd'},
|
||||
forced:true,
|
||||
|
@ -699,14 +684,12 @@ character.diy={
|
|||
diyduanliang2:'断粮',
|
||||
diyqiangxi:'强袭',
|
||||
diykuanggu:'狂骨',
|
||||
jiaoxia:'皎霞',
|
||||
diyzaiqi:'再起',
|
||||
batu:'霸图',
|
||||
zaiqix:'再起',
|
||||
zaiqix_info:'摸牌阶段,若你已受伤,你可以放弃摸牌并展示牌堆顶的X+1张牌,X为你已损失的体力值,其中每有一张♥牌,你回复1点体力,然后弃掉这些♥牌,将其余的牌收入手牌。',
|
||||
batu_info:'回合结束阶段,你可以将手牌数补至X,X为现存的势力数',
|
||||
diyzaiqi_info:'锁定技,你摸牌阶段额外摸X张牌,X为你已损失的体力值',
|
||||
jiaoxia_info:'每当你成为红色牌的目标,你可以摸一张牌',
|
||||
diykuanggu_info:'锁定技,每当你造成一点伤害,你在其攻击范围内,你回复一点体力,否则你摸一张牌',
|
||||
diyqiangxi_info:'出牌阶段,你可以自减一点体力或弃一张武器牌,然后你对你攻击范围内的一名角色造成一点伤害并弃置其一张牌,每回合限一次。',
|
||||
diyduanliang_info:'出牌阶段限一次,你可以将一张黑色的基本牌当兵粮寸断对一名角色使用,然后摸一张牌。你的兵粮寸断可以指定距离2以内的角色作为目标',
|
||||
|
|
298
character/swd.js
298
character/swd.js
|
@ -1844,6 +1844,7 @@ character.swd={
|
|||
trigger:{global:'phaseBegin'},
|
||||
priority:-5,
|
||||
check:function(event,player){
|
||||
if(event.player.isMin()) return false;
|
||||
return ai.get.attitude(player,event.player)<-3;
|
||||
},
|
||||
filter:function(event,player){
|
||||
|
@ -2554,100 +2555,6 @@ character.swd={
|
|||
player.removeSkill('touxi2');
|
||||
}
|
||||
},
|
||||
lianji:{
|
||||
audio:true,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterTarget:function(card,player,target){
|
||||
if(player==target) return false;
|
||||
return target.num('h')>0;
|
||||
},
|
||||
selectTarget:2,
|
||||
multitarget:true,
|
||||
multiline:true,
|
||||
filter:function(event,player){
|
||||
return player.num('h')>0;
|
||||
},
|
||||
prepare:function(cards,player,targets){
|
||||
player.$throw(cards);
|
||||
player.line(targets);
|
||||
},
|
||||
discard:false,
|
||||
filterCard:true,
|
||||
check:function(card){
|
||||
return 6-ai.get.value(card);
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
if(!player.storage.lianji){
|
||||
player.storage.lianji=[];
|
||||
}
|
||||
if(targets[0].num('h')&&targets[1].num('h')){
|
||||
targets[0].chooseToCompare(targets[1]);
|
||||
player.storage.lianji.add(targets[0]);
|
||||
player.storage.lianji.add(targets[1]);
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
targets[0].gain(cards);
|
||||
targets[0].$gain2(cards);
|
||||
targets[1].damage(targets[0]);
|
||||
}
|
||||
else{
|
||||
targets[1].gain(cards);
|
||||
targets[1].$gain2(cards);
|
||||
targets[0].damage(targets[1]);
|
||||
}
|
||||
if(!player.skills.contains('yinmo')){
|
||||
event.finish();
|
||||
}
|
||||
"step 2"
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]!=player&&!player.storage.lianji.contains(game.players[i])){
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
}
|
||||
"step 3"
|
||||
player.logSkill('yinmo');
|
||||
player.gainMaxHp();
|
||||
"step 4"
|
||||
lib.character.swd_duguningke2=['','qun',4,['benlei','juece'],['temp']];
|
||||
if(player.name=='swd_duguningke') player.name='swd_duguningke2';
|
||||
if(player.name1=='swd_duguningke') player.name1='swd_duguningke2';
|
||||
if(player.name2=='swd_duguningke'){
|
||||
player.name2='swd_duguningke2';
|
||||
player.node.avatar2.setBackground('swd_duguningke2','character');
|
||||
}
|
||||
else{
|
||||
player.node.avatar.setBackground('swd_duguningke2','character');
|
||||
}
|
||||
player.removeSkill('yinmo');
|
||||
player.removeSkill('lianji');
|
||||
player.removeSkill('touxi');
|
||||
player.addSkill('benlei');
|
||||
player.addSkill('juece');
|
||||
event.players=game.players.slice(0);
|
||||
event.players.remove(player);
|
||||
event.players.sort(lib.sort.seat);
|
||||
"step 5"
|
||||
if(event.players.length){
|
||||
event.players.shift().damage('thunder');
|
||||
event.redo();
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
expose:0.3,
|
||||
threaten:2,
|
||||
order:9,
|
||||
result:{
|
||||
target:-1
|
||||
}
|
||||
},
|
||||
},
|
||||
lianji2:{
|
||||
group:['lianji3','lianji4']
|
||||
},
|
||||
|
@ -2947,55 +2854,6 @@ character.swd={
|
|||
player.storage.wangchen.out();
|
||||
}
|
||||
},
|
||||
tiandao:{
|
||||
audio:true,
|
||||
trigger:{global:'judge'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player.num('he')>0;
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseCard(get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+
|
||||
get.translation(trigger.player.judging[0])+',是否发动【天道】?','he').ai=function(card){
|
||||
var trigger=_status.event.parent._trigger;
|
||||
var player=_status.event.player;
|
||||
var result=trigger.judge(card)-trigger.judge(trigger.player.judging[0]);
|
||||
var attitude=ai.get.attitude(player,trigger.player);
|
||||
if(attitude==0||result==0) return 0;
|
||||
if(attitude>0){
|
||||
return result;
|
||||
}
|
||||
else{
|
||||
return -result;
|
||||
}
|
||||
};
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.respond(result.cards,'highlight');
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
"step 2"
|
||||
if(result.bool){
|
||||
player.logSkill('tiandao');
|
||||
player.$gain2(trigger.player.judging[0]);
|
||||
player.gain(trigger.player.judging[0]);
|
||||
trigger.player.judging[0]=result.cards[0];
|
||||
trigger.position.appendChild(result.cards[0]);
|
||||
game.log(trigger.player,'的判定牌改为',result.cards[0]);
|
||||
}
|
||||
"step 3"
|
||||
game.delay(2);
|
||||
},
|
||||
ai:{
|
||||
tag:{
|
||||
rejudge:1
|
||||
},
|
||||
threaten:1.5
|
||||
}
|
||||
},
|
||||
yihua:{
|
||||
trigger:{target:'useCardToBefore'},
|
||||
popup:false,
|
||||
|
@ -5584,86 +5442,6 @@ character.swd={
|
|||
player.storage.funiao=false;
|
||||
}
|
||||
},
|
||||
lingbo:{
|
||||
trigger:{player:'respond'},
|
||||
filter:function(event,player){
|
||||
return event.card.name=='shan';
|
||||
},
|
||||
frequent:true,
|
||||
content:function(){
|
||||
player.draw(2);
|
||||
},
|
||||
ai:{
|
||||
mingzhi:false,
|
||||
effect:{
|
||||
target:function(card,player,target){
|
||||
if(get.tag(card,'respondShan')){
|
||||
var shans=target.num('h','shan');
|
||||
var hs=target.num('h');
|
||||
if(shans>1) return [0,1];
|
||||
if(shans&&hs>2) return [0,1];
|
||||
if(shans) return [0,0];
|
||||
if(hs>2) return [0,0];
|
||||
if(hs>1) return [1,0.5];
|
||||
return [1.5,0];
|
||||
}
|
||||
}
|
||||
},
|
||||
threaten:0.8
|
||||
}
|
||||
},
|
||||
yunshen:{
|
||||
trigger:{player:'respond'},
|
||||
filter:function(event,player){
|
||||
return event.card.name=='shan';
|
||||
},
|
||||
frequent:true,
|
||||
init:function(player){
|
||||
player.storage.yunshen=0;
|
||||
},
|
||||
content:function(){
|
||||
player.storage.yunshen++;
|
||||
player.markSkill('yunshen');
|
||||
},
|
||||
ai:{
|
||||
effect:{
|
||||
target:function(card,player,target){
|
||||
if(get.tag(card,'respondShan')){
|
||||
var shans=target.num('h','shan');
|
||||
var hs=target.num('h');
|
||||
if(shans>1) return [1,1];
|
||||
if(shans&&hs>2) return [1,1];
|
||||
if(shans) return [1,0.5];
|
||||
if(hs>2) return [1,0.3];
|
||||
if(hs>1) return [1,0.2];
|
||||
return [1.2,0];
|
||||
}
|
||||
}
|
||||
},
|
||||
threaten:0.8
|
||||
},
|
||||
intro:{
|
||||
content:'mark'
|
||||
},
|
||||
group:'yunshen2'
|
||||
},
|
||||
yunshen2:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.storage.yunshen>0;
|
||||
},
|
||||
content:function(){
|
||||
player.draw(player.storage.yunshen);
|
||||
player.storage.yunshen=0;
|
||||
player.unmarkSkill('yunshen');
|
||||
},
|
||||
mod:{
|
||||
globalTo:function(from,to,distance){
|
||||
if(typeof to.storage.yunshen=='number') return distance+to.storage.yunshen;
|
||||
}
|
||||
}
|
||||
},
|
||||
xuehuang:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
|
@ -7418,68 +7196,6 @@ character.swd={
|
|||
content:'card'
|
||||
}
|
||||
},
|
||||
mazui:{
|
||||
audio:true,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterCard:{color:'black'},
|
||||
filterTarget:function(card,player,target){
|
||||
return !target.skills.contains('mazui2');
|
||||
},
|
||||
check:function(card){
|
||||
return 6-ai.get.value(card);
|
||||
},
|
||||
discard:false,
|
||||
prepare:function(cards,player,targets){
|
||||
player.$give(cards,targets[0]);
|
||||
player.line(targets[0],'green');
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
game.delay();
|
||||
"step 1"
|
||||
target.storage.mazui2=cards[0];
|
||||
target.addSkill('mazui2');
|
||||
game.addVideo('storage',target,['mazui2',get.cardInfo(target.storage.mazui2),'card']);
|
||||
},
|
||||
ai:{
|
||||
expose:0.2,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
return -target.hp;
|
||||
}
|
||||
},
|
||||
order:4,
|
||||
threaten:1.2
|
||||
}
|
||||
},
|
||||
mazui2:{
|
||||
trigger:{source:'damageBegin'},
|
||||
forced:true,
|
||||
mark:'card',
|
||||
filter:function(event){
|
||||
return event.num>0;
|
||||
},
|
||||
content:function(){
|
||||
trigger.num--;
|
||||
player.addSkill('mazui3');
|
||||
player.removeSkill('mazui2');
|
||||
},
|
||||
intro:{
|
||||
content:'card'
|
||||
}
|
||||
},
|
||||
mazui3:{
|
||||
trigger:{source:'damageEnd'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
content:function(){
|
||||
player.gain(player.storage.mazui2,'gain2');
|
||||
game.log(player,'获得了',player.storage.mazui2);
|
||||
player.removeSkill('mazui3');
|
||||
delete player.storage.mazui2;
|
||||
}
|
||||
},
|
||||
shoulie:{
|
||||
trigger:{player:'shaBegin'},
|
||||
direct:true,
|
||||
|
@ -7774,9 +7490,6 @@ character.swd={
|
|||
hudun_bg:'盾',
|
||||
hudun2:'护盾',
|
||||
hudun_info:'锁定技,当你对其他角色造成伤害后,若你没有护甲,你获得一点护甲值',
|
||||
mazui:'麻醉',
|
||||
mazui2:'麻醉',
|
||||
mazui_info:'出牌阶段限一次,你可以将一张黑色手牌置于一名角色的武将牌上,该角色造成的下一次伤害-1,然后获得此牌',
|
||||
zhenjiu:'针灸',
|
||||
zhenjiu2:'针灸',
|
||||
zhenjiu_info:'出牌阶段限一次,你可以将一张红色手牌置于一名角色的武将牌上,该角色于下一个回合开始阶段回复一点体力,然后获得此牌',
|
||||
|
@ -7857,8 +7570,6 @@ character.swd={
|
|||
fushen:'附身',
|
||||
fushen_info:'回合开始前,你可以将自己移出游戏,并代替另一名角色进行一回合,然后流失一点体力',
|
||||
fushen2:'附身',
|
||||
tiandao:'天道',
|
||||
tiandao_info:'任意一名角色的判定生效前,你可以打出一张牌替换之',
|
||||
wangchen:'忘尘',
|
||||
wangchen_info:'若你于弃牌阶段弃置了基本牌,可令一名角色翻面',
|
||||
guiyin:'归隐',
|
||||
|
@ -7883,8 +7594,6 @@ character.swd={
|
|||
milesxiehun_info:'锁定技,出牌阶段结束后,你令随机X名角色各弃置一张牌,X为你已损失的体力值且至少为1 ',
|
||||
liaochen:'撩尘',
|
||||
liaochen_info:'锁定技,出牌阶段结束后,所有角色需弃置一张牌',
|
||||
lianji:'连计',
|
||||
lianji_info:'出牌阶段限一次,你可以选择一张手牌并指定两名角色进行拼点,拼点赢的角色获得此牌,并对没赢的角色造成一点伤害',
|
||||
yinmo:'引魔',
|
||||
yinmo_info:'锁定技,当你对场上所有角色发动「连计」后,你立即变身为魔化宁珂,然后对所有其他角色造成一点雷电伤害',
|
||||
huanxing:'幻形',
|
||||
|
@ -7998,7 +7707,6 @@ character.swd={
|
|||
luomei:'落梅',
|
||||
yulin:'玉鳞',
|
||||
funiao:'符鸟',
|
||||
lingbo:'凌波',
|
||||
xuehuang:'血凰',
|
||||
zhuyu:'朱羽',
|
||||
ningshuang:'凝霜',
|
||||
|
@ -8032,8 +7740,6 @@ character.swd={
|
|||
guiyan:'鬼眼',
|
||||
guiyan2:'鬼眼',
|
||||
swd_xiuluo:'修罗',
|
||||
yunshen:'云身',
|
||||
yunshen2:'云身',
|
||||
suiyan:'碎岩',
|
||||
suiyan_info:'每当你造成一次伤害,可以弃置一张牌并弃置对方的全部装备牌',
|
||||
xianyin:'散结',
|
||||
|
@ -8061,7 +7767,6 @@ character.swd={
|
|||
xianyin_info:'出牌阶段,你可以令所有判定区内有牌的角色弃置判定区内的牌,然后交给你一张手牌',
|
||||
qiaoxie_info:'每当你装备一张牌,可摸一张牌,每当你失去一张装备牌(不含替换),你可以弃置其他角色的一张牌',
|
||||
mailun_info:'回合开始阶段,你可以选择一个脉轮效果直到下一回合开始',
|
||||
yunshen_info:'每当你打出一张闪,你可以令其他角色与你的距离+1;回合开始阶段,你将累计的防御距离清零,然后摸等量的牌',
|
||||
guiyan_info:'出牌阶段,你可以观看一名角色的手牌,并获得其中一张梅花牌,每阶段限一次。当你首次进入濒死状态时,你须回复一点体力并失去技能鬼眼',
|
||||
busi_info:'锁定技,当你进入濒死状态时,你进行一次判定,若结果不为黑桃,你将体力回复至1并将武将牌翻至背面',
|
||||
xuying_info:'锁定技,每当你即将受到伤害,你防止此伤害,若你此时有手牌,你流失一点体力',
|
||||
|
@ -8104,7 +7809,6 @@ character.swd={
|
|||
xingdian_info:'出牌阶段限一次,你可以弃置一张手牌,然后指定至多两名角色令其各弃置一张牌',
|
||||
yulin_info:'每当你即将受到伤害,你可以弃置一张装备牌抵消此伤害',
|
||||
funiao_info:'出牌阶段,你可以交给一名角色一张手牌,然后观看其手牌,每个阶段对一名角色只能发动一次',
|
||||
lingbo_info:'每当你使用或打出一张闪,你可以摸两张牌',
|
||||
xuehuang_info:'出牌阶段限一次,你可以弃置一张红色手牌令距离你一以内的所有角色受到一点火焰伤害',
|
||||
zhuyu_info:'每当有横置的角色即将受到非火焰伤害,你可以弃置一张红色牌使其额外受到一点火焰伤害',
|
||||
ningshuang_info:'每当你成为黑色牌的目标,你可以弃置一张黑色牌将其横置,并摸一张牌,若其已经模置则将其翻面',
|
||||
|
|
|
@ -5,9 +5,11 @@ window.config={
|
|||
forbidall:['caocao','simayi','guanyu','zhangfei','zhaoyun','ganning','lvmeng','lvbu',
|
||||
'xiahouyuan','huangzhong','weiyan','dianwei','gongsunzan','zhangjiao'],
|
||||
forbidversus:['swd_kangnalishi'],
|
||||
forbidstone:['zhugedan','pal_xuanxiao','hs_malfurion','lusu','chenlin','gjqt_bailitusu','yuanshao',
|
||||
'swd_anka','swd_nicole','daqiao','re_daqiao','zhuran','huatuo','swd_tuwei','hs_guldan','wangyi','caoang',
|
||||
'swd_guyue','swd_jiangziya','guojia','re_guojia','shen_caocao','swd_qiner','gjqt_aruan','swd_hanluo'],
|
||||
forbidstone:['zhugedan','pal_xuanxiao','hs_malfurion','lusu','chenlin',
|
||||
'gjqt_bailitusu','yuanshao','swd_anka','swd_nicole','daqiao','re_daqiao',
|
||||
'zhuran','huatuo','swd_tuwei','hs_guldan','wangyi','caoang','swd_guyue',
|
||||
'swd_jiangziya','guojia','re_guojia','shen_caocao','swd_qiner',
|
||||
'gjqt_aruan','swd_hanluo','hs_anduin','swd_huanglei'],
|
||||
forbidchess:['hetaihou','swd_kangnalishi'],
|
||||
forbidboss:['caiwenji','gjqt_aruan','pal_xuanxiao','swd_hupo'],
|
||||
forbiddouble:['zhugedan','swd_kangnalishi','dongzhuo','wutugu','jg_simayi','hs_siwangzhiyi','hs_ronghejuren','hs_shanlingjuren'],
|
||||
|
|
137
game/game.js
137
game/game.js
|
@ -16,20 +16,11 @@
|
|||
dieClose:[]
|
||||
};
|
||||
var lib={
|
||||
version:1.77,
|
||||
version:1.78,
|
||||
changeLog:[
|
||||
'新武将(SP)',
|
||||
'志继、化身结算',
|
||||
'提示样式修改',
|
||||
'牌堆管理',
|
||||
'战棋1v1、对决4v4',
|
||||
'年兽、守卫剑阁',
|
||||
'炉石模式新卡',
|
||||
'修复身份、国战开将过少导致不能游戏的bug',
|
||||
'注1:年兽在挑战模式,守卫剑阁、4v4在对决模式菜单中的游戏模式里选',
|
||||
'注2:此版本去掉了diy捉鬼和剑阁武将包,未来将进入diy武将包',
|
||||
'注3:此版本更改了手气卡代码,若要关闭需重新设置',
|
||||
'注4:安卓版大约两周后更新'
|
||||
'修bug',
|
||||
'新年兽',
|
||||
'剑阁双将',
|
||||
],
|
||||
configprefix:'noname_0.9_',
|
||||
updates:[],
|
||||
|
@ -1571,6 +1562,22 @@
|
|||
'无名杀 - 数据 - '+(new Date()).toLocaleString());
|
||||
},
|
||||
clear:true
|
||||
},
|
||||
trim_game:{
|
||||
name:'隐藏非官方扩展包',
|
||||
onclick:function(){
|
||||
if(this.innerHTML!='已隐藏'){
|
||||
this.innerHTML='已隐藏';
|
||||
game.saveConfig('hiddenModePack',['stone','chess','boss']);
|
||||
game.saveConfig('hiddenCardPack',['zhenfa','qimou','yibao','shenbing','swd','shenqi','hearth','compensate']);
|
||||
game.saveConfig('hiddenCharacterPack',['diy','yxs','hearth','swd','gujian','xianjian','xiake','boss']);
|
||||
var that=this;
|
||||
setTimeout(function(){
|
||||
that.innerHTML='隐藏非官方扩展包';
|
||||
},500);
|
||||
}
|
||||
},
|
||||
clear:true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2075,9 +2082,11 @@
|
|||
}
|
||||
if(config.versus_mode=='jiange'){
|
||||
map.free_choose.show();
|
||||
map.double_character_jiange.show();
|
||||
}
|
||||
else{
|
||||
map.free_choose.hide();
|
||||
map.double_character_jiange.hide();
|
||||
}
|
||||
},
|
||||
versus_mode:{
|
||||
|
@ -2132,17 +2141,22 @@
|
|||
},
|
||||
frequent:true,
|
||||
},
|
||||
double_character_jiange:{
|
||||
name:'双将模式',
|
||||
init:false,
|
||||
frequent:true,
|
||||
},
|
||||
ban_weak:{
|
||||
name:'屏蔽弱将',
|
||||
init:false,
|
||||
restart:true,
|
||||
frequent:true,
|
||||
// frequent:true,
|
||||
},
|
||||
ban_strong:{
|
||||
name:'屏蔽强将',
|
||||
init:false,
|
||||
restart:true,
|
||||
frequent:true,
|
||||
// frequent:true,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
@ -12496,6 +12510,99 @@
|
|||
}
|
||||
return players[0];
|
||||
},
|
||||
loadPackage:function(){
|
||||
var next=game.createEvent('loadPackage');
|
||||
next.packages=[];
|
||||
for(var i=0;i<arguments.length;i++){
|
||||
if(typeof arguments[i]=='string'){
|
||||
next.packages.push(arguments[i]);
|
||||
}
|
||||
}
|
||||
next.content=function(){
|
||||
'step 0'
|
||||
if(event.packages.length){
|
||||
window.character={};
|
||||
window.card={};
|
||||
var pack=event.packages.shift().split('/');
|
||||
lib.init.js(pack[0],pack[1],game.resume);
|
||||
game.pause();
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 1'
|
||||
var character=window.character;
|
||||
var card=window.card;
|
||||
var i,j,k;
|
||||
for(i in character){
|
||||
if(character[i].character){
|
||||
lib.characterPack[i]=character[i].character
|
||||
}
|
||||
if(character[i].forbid&&character[i].forbid.contains(lib.config.mode)) continue;
|
||||
if(character[i].mode&&character[i].mode.contains(lib.config.mode)==false) continue;
|
||||
for(j in character[i]){
|
||||
if(j=='mode'||j=='forbid') continue;
|
||||
for(k in character[i][j]){
|
||||
if(j=='character'){
|
||||
if(!character[i][j][k][4]){
|
||||
character[i][j][k][4]=[];
|
||||
}
|
||||
if(character[i][j][k][4].contains('boss')||
|
||||
character[i][j][k][4].contains('hiddenboss')){
|
||||
lib.config.forbidai.add(k);
|
||||
}
|
||||
if(lib.config.banned.contains(k)){
|
||||
if(lib.config.mode=='chess'&&get.config('chess_mode')=='leader'){
|
||||
lib.hiddenCharacters.push(k);
|
||||
}
|
||||
else{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
for(var l=0;l<character[i][j][k][3].length;l++){
|
||||
lib.skilllist.add(character[i][j][k][3][l]);
|
||||
}
|
||||
}
|
||||
if(j=='translate'&&k==i){
|
||||
lib[j][k+'_character_config']=character[i][j][k];
|
||||
}
|
||||
else{
|
||||
if(lib[j][k]==undefined){
|
||||
lib[j][k]=lib.init.eval(character[i][j][k]);
|
||||
}
|
||||
else{
|
||||
alert('dublicate '+j+' in character '+i+':\n'+k+'\n'+': '+lib[j][k]+'\n'+character[i][j][k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for(i in card){
|
||||
lib.cardPack[i]=[];
|
||||
if(card[i].card){
|
||||
for(var j in card[i].card){
|
||||
if(card[i].translate[j+'_info']){
|
||||
lib.cardPack[i].push(j);
|
||||
}
|
||||
}
|
||||
}
|
||||
for(j in card[i]){
|
||||
if(j=='mode'||j=='forbid') continue;
|
||||
if(j=='list') continue;
|
||||
for(k in card[i][j]){
|
||||
if(j=='translate'&&k==i){
|
||||
lib[j][k+'_card_config']=card[i][j][k];
|
||||
}
|
||||
else{
|
||||
if(lib[j][k]==undefined) lib[j][k]=lib.init.eval(card[i][j][k]);
|
||||
else alert('dublicate '+j+' in card '+i+':\n'+k+'\n'+lib[j][k]+'\n'+card[i][j][k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
event.goto(0);
|
||||
}
|
||||
},
|
||||
phaseLoop:function(player){
|
||||
var next=game.createEvent('phaseLoop');
|
||||
next.player=player;
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 53 KiB |
Binary file not shown.
After Width: | Height: | Size: 63 KiB |
Binary file not shown.
After Width: | Height: | Size: 36 KiB |
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
Binary file not shown.
After Width: | Height: | Size: 27 KiB |
|
@ -39,6 +39,13 @@
|
|||
transform: rotate(90deg) translate(98px,-31px);
|
||||
}
|
||||
|
||||
#arena.oldlayout .player.linked>.name{
|
||||
transform: none !important;
|
||||
}
|
||||
#arena.oldlayout .player.linked>.name.name2{
|
||||
transform: none !important;
|
||||
}
|
||||
|
||||
.player>.identity.menubutton.round{
|
||||
padding: 0;
|
||||
transform: scale(1.2) translate(-2px,2px);
|
||||
|
|
15
mode/boss.js
15
mode/boss.js
|
@ -72,6 +72,10 @@ mode.boss={
|
|||
game.pause();
|
||||
}
|
||||
"step 1"
|
||||
if(lib.config.hiddenCharacterPack.contains('boss')){
|
||||
game.loadPackage('character/boss');
|
||||
}
|
||||
"step 2"
|
||||
var playback=localStorage.getItem(lib.configprefix+'playback');
|
||||
if(playback){
|
||||
ui.create.me();
|
||||
|
@ -102,7 +106,7 @@ mode.boss={
|
|||
}
|
||||
lib.init.css('layout/mode','boss');
|
||||
game.delay(0.1);
|
||||
"step 2"
|
||||
"step 3"
|
||||
var bosslist=ui.create.div('#bosslist.hidden');
|
||||
event.bosslist=bosslist;
|
||||
bosslist.ontouchmove = ui.click.touchScroll;
|
||||
|
@ -233,7 +237,7 @@ mode.boss={
|
|||
ui.auto.classList.add('glow');
|
||||
game.save('current',event.current.name);
|
||||
}
|
||||
"step 3"
|
||||
"step 4"
|
||||
game.bossinfo=lib.boss.global;
|
||||
for(var i in lib.boss[event.current.name]){
|
||||
game.bossinfo[i]=lib.boss[event.current.name][i];
|
||||
|
@ -397,7 +401,7 @@ mode.boss={
|
|||
if(game.bossinfo.init){
|
||||
game.bossinfo.init();
|
||||
}
|
||||
"step 4"
|
||||
"step 5"
|
||||
event.trigger('gameStart');
|
||||
game.gameDraw(game.boss);
|
||||
game.bossPhaseLoop();
|
||||
|
@ -423,7 +427,7 @@ mode.boss={
|
|||
player.hp++;
|
||||
game.log(player,'回复了一点体力');
|
||||
}
|
||||
else{
|
||||
else if(player.num('h')<4){
|
||||
var card=get.cards()[0];
|
||||
var sort=lib.config.sort_card(card);
|
||||
var position=sort>0?player.node.handcards1:player.node.handcards2;
|
||||
|
@ -718,6 +722,9 @@ mode.boss={
|
|||
ui.damageCount=ui.create.system('伤害: 0',null,true);
|
||||
}
|
||||
},
|
||||
boss_nianshou_heti:{
|
||||
chongzheng:99,
|
||||
},
|
||||
boss_zhangjiao:{
|
||||
// loopType:2,
|
||||
},
|
||||
|
|
|
@ -552,7 +552,7 @@ mode.stone={
|
|||
stone_misha:['male','shu',3,['chaofeng'],['minskin','stone'],[3,3,'hunter']],
|
||||
stone_jiewangzhu:['male','wu',1,['hunter_jiewang'],['minskin','stone'],[1,2,'hunter']],
|
||||
stone_xunshoushi:['male','qun',2,['hunter_xunshou'],['minskin','stone'],[4,3,'hunter']],
|
||||
stone_senlinlang:['male','qun',1,['hunter_qunxi'],['minskin','stone'],[1,1,'hunter']],
|
||||
stone_senlinlang:['male','qun',1,['hunter_qunxi'],['minskin','stone'],[1,2,'hunter']],
|
||||
stone_tujiu:['male','qun',3,['hunter_mishi'],['minskin','stone'],[3,2,'hunter']],
|
||||
stone_muyangren:['male','qun',3,['hunter_muyang'],['minskin','stone'],[4,3,'hunter']],
|
||||
stone_jujishou:['male','qun',2,['hunter_juji'],['minskin','stone'],[2,2,'hunter']],
|
||||
|
@ -2579,7 +2579,7 @@ mode.stone={
|
|||
if(target.isAlive()){
|
||||
var hs=target.get('h');
|
||||
if(hs.length){
|
||||
target.discard(hs.randomGet());
|
||||
target.discard(hs.randomGets(2));
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -2877,7 +2877,7 @@ mode.stone={
|
|||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
target.die();
|
||||
target.die()._triggered=null;
|
||||
event.name=target.name;
|
||||
'step 1'
|
||||
player.getEnemy().gain(game.createCard(event.name+'_stonecharacter'),'gain2');
|
||||
|
@ -3521,7 +3521,7 @@ mode.stone={
|
|||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
target.die();
|
||||
target.die()._triggered=null;
|
||||
'step 1'
|
||||
if(player.deckCards){
|
||||
player.deckCards.push(game.createCard(target.name+'_stonecharacter'));
|
||||
|
@ -4421,8 +4421,8 @@ mode.stone={
|
|||
},
|
||||
ai:{
|
||||
order:8,
|
||||
value:5,
|
||||
useful:5,
|
||||
value:6,
|
||||
useful:6,
|
||||
result:{
|
||||
target:-1.5
|
||||
},
|
||||
|
@ -4514,8 +4514,8 @@ mode.stone={
|
|||
},
|
||||
ai:{
|
||||
order:8,
|
||||
value:5,
|
||||
useful:5,
|
||||
value:6,
|
||||
useful:6,
|
||||
result:{
|
||||
target:-1.5
|
||||
},
|
||||
|
@ -5597,7 +5597,10 @@ mode.stone={
|
|||
trigger.num+=2;
|
||||
},
|
||||
ai:{
|
||||
threaten:1.5
|
||||
threaten:function(player,target){
|
||||
if(target.hp==target.maxHp) return 0.5;
|
||||
return 1.8;
|
||||
},
|
||||
}
|
||||
},
|
||||
stone_lianyu:{
|
||||
|
@ -7410,6 +7413,9 @@ mode.stone={
|
|||
},
|
||||
content:function(){
|
||||
player.draw();
|
||||
},
|
||||
ai:{
|
||||
threaten:1.6
|
||||
}
|
||||
},
|
||||
warrior_jiangong:{
|
||||
|
@ -7770,6 +7776,7 @@ mode.stone={
|
|||
result.targets[0].hp++;
|
||||
result.targets[0].update();
|
||||
result.targets[0].draw(2);
|
||||
result.targets[0].addSkill('chaofeng');
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -9286,7 +9293,7 @@ mode.stone={
|
|||
spell_shengguangzhadan:'圣光炸弹',
|
||||
spell_shengguangzhadan_info:'对所有随从造成等同于其手牌数的伤害',
|
||||
spell_maizang:'埋葬',
|
||||
spell_maizang_info:'令一名敌方随从死亡,并将一张与该随从同名的随从洗入你的牌库',
|
||||
spell_maizang_info:'令一名敌方随从死亡(不触发死亡技能),并将一张与该随从同名的随从洗入你的牌库',
|
||||
spell_xinlingshijie:'心灵视界',
|
||||
spell_xinlingshijie_info:'将一张敌方主将手牌的复制置于你的手牌',
|
||||
spell_naluzhiguang:'纳鲁之光',
|
||||
|
@ -9341,7 +9348,7 @@ mode.stone={
|
|||
spell_dubiao:'毒镖',
|
||||
spell_dubiao_info:'对一名随机敌方角色造成一点伤害',
|
||||
spell_qiangfengsheji:'强风射击',
|
||||
spell_qiangfengsheji_info:'对两名敌方随从各造成一点伤害,并弃置其一张手牌',
|
||||
spell_qiangfengsheji_info:'对两名敌方随从各造成一点伤害,并弃置其两张手牌',
|
||||
spell_tanxianmao:'探险冒',
|
||||
hunter_tanxianmao:'探险冒',
|
||||
hunter_tanxianmao_info:'你死亡时,将一张探险冒置入主将的手牌',
|
||||
|
@ -9457,7 +9464,7 @@ mode.stone={
|
|||
spell_modaoyou_info:'令你下一次剑刃乱舞造成的伤害+1,并与一名随机友方随从各摸两张牌',
|
||||
|
||||
spell_mengun:'闷棍',
|
||||
spell_mengun_info:'令一名敌方随从死亡,将一张该随从的复制置入对手的手牌',
|
||||
spell_mengun_info:'令一名敌方随从死亡(不触发死亡技能),将一张该随从的复制置入对手的手牌',
|
||||
spell_anzhongpohuai:'暗中破坏',
|
||||
spell_anzhongpohuai_info:'随机杀死一名敌方随从,随机弃置敌方的一张装备牌',
|
||||
spell_beici:'背刺',
|
||||
|
@ -9832,7 +9839,7 @@ mode.stone={
|
|||
hunter_jiewang:'结网',
|
||||
hunter_jiewang_info:'你死亡时,己方主将获得一张随机野兽牌',
|
||||
hunter_xunshou:'驯兽',
|
||||
hunter_xunshou_info:'你出场时,己方主将可选择一名其他友方随从令其增加一点体力和体力上限并摸两张牌',
|
||||
hunter_xunshou_info:'你出场时,己方主将可选择一名其他友方随从令其增加一点体力和体力上限,摸两张牌并获得嘲讽',
|
||||
hunter_nuhou:'怒吼',
|
||||
hunter_nuhou_info:'当你死亡时,对所有敌方角色造成一点伤害',
|
||||
hunter_zhanhuo:'战火',
|
||||
|
|
|
@ -292,6 +292,10 @@ mode.versus={
|
|||
next.showConfig=true;
|
||||
next.content=function(){
|
||||
'step 0'
|
||||
if(lib.config.hiddenCharacterPack.contains('boss')){
|
||||
game.loadPackage('character/boss');
|
||||
}
|
||||
'step 1'
|
||||
var list={
|
||||
weilist:[],shulist:[],
|
||||
weimech:[],shumech:[],
|
||||
|
@ -418,8 +422,11 @@ mode.versus={
|
|||
dialog=ui.create.dialog('选择角色',[list[game.me.identity+'boss'],'character']);
|
||||
break;
|
||||
}
|
||||
game.me.chooseButton(dialog,true);
|
||||
'step 1'
|
||||
game.me.chooseButton(dialog,true).selectButton=function(){
|
||||
if(get.config('double_character_jiange')) return [2,2];
|
||||
return [1,1];
|
||||
};
|
||||
'step 2'
|
||||
if(ui.cheat){
|
||||
ui.cheat.close();
|
||||
delete ui.cheat;
|
||||
|
@ -428,14 +435,20 @@ mode.versus={
|
|||
ui.cheat2.close();
|
||||
delete ui.cheat2;
|
||||
}
|
||||
game.me.init(result.links[0]);
|
||||
var double=(result.links.length==2);
|
||||
game.me.init(result.links[0],result.links[1]);
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].name) continue;
|
||||
if(game.players[i].type!='human'){
|
||||
game.players[i].init(event.list[game.players[i].identity+game.players[i].type].randomRemove());
|
||||
}
|
||||
else{
|
||||
game.players[i].init(event.list[game.players[i].identity+'list'].randomRemove());
|
||||
if(double){
|
||||
game.players[i].init(event.list[game.players[i].identity+'list'].randomRemove(),event.list[game.players[i].identity+'list'].randomRemove());
|
||||
}
|
||||
else{
|
||||
game.players[i].init(event.list[game.players[i].identity+'list'].randomRemove());
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue