This commit is contained in:
libccy 2016-02-05 11:09:04 +08:00
parent 8113913138
commit da3e1a91cd
16 changed files with 697 additions and 356 deletions

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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:'锁定技,摸牌阶段,你额外摸两张牌',

View File

@ -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:'回合结束阶段你可以将手牌数补至XX为现存的势力数',
diyzaiqi_info:'锁定技你摸牌阶段额外摸X张牌X为你已损失的体力值',
jiaoxia_info:'每当你成为红色牌的目标,你可以摸一张牌',
diykuanggu_info:'锁定技,每当你造成一点伤害,你在其攻击范围内,你回复一点体力,否则你摸一张牌',
diyqiangxi_info:'出牌阶段,你可以自减一点体力或弃一张武器牌,然后你对你攻击范围内的一名角色造成一点伤害并弃置其一张牌,每回合限一次。',
diyduanliang_info:'出牌阶段限一次你可以将一张黑色的基本牌当兵粮寸断对一名角色使用然后摸一张牌。你的兵粮寸断可以指定距离2以内的角色作为目标',

View File

@ -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:'锁定技出牌阶段结束后你令随机名角色各弃置一张牌为你已损失的体力值且至少为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:'每当你成为黑色牌的目标,你可以弃置一张黑色牌将其横置,并摸一张牌,若其已经模置则将其翻面',

View File

@ -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'],

View File

@ -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

View File

@ -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);

View File

@ -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,
},

View File

@ -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:'战火',

View File

@ -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());
}
}
}
};