v1.9.97.9

This commit is contained in:
Spmario233 2020-02-16 12:25:41 +08:00 committed by GitHub
parent 5d0e730659
commit 74166ffdb0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 423 additions and 66 deletions

Binary file not shown.

BIN
audio/skill/wushuang1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/wushuang2.mp3 Normal file

Binary file not shown.

View File

@ -805,8 +805,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}, },
ai:{ ai:{
effect:{ effect:{
target:function(card,player,target,current){ player:function(card,player,target,current){
if(card.name=='sha'&&target.countCards('h')==0) return [1,-2]; if(card.name=='sha'&&target.countCards('h')==0&&!target.hasSkillTag('filterDamage',null,{
player:player,
card:card,
})) return [1,0,1,-3];
} }
} }
} }

View File

@ -392,6 +392,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
type:'equip', type:'equip',
subtype:'equip1', subtype:'equip1',
ai:{ ai:{
order:function(){
return get.order({name:'sha'})-0.1;
},
equipValue:function(card,player){ equipValue:function(card,player){
if(!game.hasPlayer(function(current){ if(!game.hasPlayer(function(current){
return player.canUse('sha',current)&&get.distance(player,current)<=1&&get.effect(current,{name:'sha'},player,player)>0; return player.canUse('sha',current)&&get.distance(player,current)<=1&&get.effect(current,{name:'sha'},player,player)>0;
@ -1799,7 +1802,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(target.identity==targets[i].identity) return false; if(target.identity==targets[i].identity) return false;
} }
return true; return true;
}).set('cardx',trigger.card).set('targets',trigger.targets).set('ai',function(target){ }).set('promptbar','none').set('cardx',trigger.card).set('targets',trigger.targets).set('ai',function(target){
var player=_status.event.player; var player=_status.event.player;
return get.effect(target,_status.event.cardx,player,player) return get.effect(target,_status.event.cardx,player,player)
}); });

View File

@ -924,7 +924,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
rebeige:{ rebeige:{
audio:2, audio:'beige',
audioname:['re_caiwenji'],
trigger:{global:'damageEnd'}, trigger:{global:'damageEnd'},
filter:function(event,player){ filter:function(event,player){
return (event.card&&event.card.name=='sha'&&event.source&& return (event.card&&event.card.name=='sha'&&event.source&&
@ -1100,6 +1101,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
rejiuchi:{ rejiuchi:{
group:['jiuchi'], group:['jiuchi'],
audioname:['re_dongzhuo'],
trigger:{source:'damage'}, trigger:{source:'damage'},
forced:true, forced:true,
popup:false, popup:false,

View File

@ -13,7 +13,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
connect:true, connect:true,
character:{ character:{
re_caocao:['male','wei',4,['hujia','new_rejianxiong'],['zhu']], re_caocao:['male','wei',4,['new_rejianxiong','hujia'],['zhu']],
re_simayi:['male','wei',3,['refankui','reguicai']], re_simayi:['male','wei',3,['refankui','reguicai']],
re_guojia:['male','wei',3,['tiandu','new_reyiji']], re_guojia:['male','wei',3,['tiandu','new_reyiji']],
re_lidian:['male','wei',3,['xunxun','wangxi']], re_lidian:['male','wei',3,['xunxun','wangxi']],
@ -246,10 +246,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(lib.filter.characterDisabled2(i)||lib.filter.characterDisabled(i)) continue; if(lib.filter.characterDisabled2(i)||lib.filter.characterDisabled(i)) continue;
list.push(i); list.push(i);
} }
game.countPlayer(function(current){ game.countPlayer2(function(current){
list.remove(current.name); list.remove(current.name);
list.remove(current.name1); list.remove(current.name1);
list.remove(current.name2); list.remove(current.name2);
if(current.storage.rehuashen&&current.storage.rehuashen.character) list.removeArray(current.rehuashen.character)
}); });
_status.characterlist=list; _status.characterlist=list;
} }
@ -257,7 +258,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var bool=false; var bool=false;
for(var i=0;i<_status.characterlist.length;i++){ for(var i=0;i<_status.characterlist.length;i++){
var name=_status.characterlist[i]; var name=_status.characterlist[i];
if(name.indexOf('zuoci')!=-1||name.indexOf('key')==0) continue; if(name.indexOf('zuoci')!=-1||name.indexOf('key')==0||player.storage.rehuashen.character.contains(name)) continue;
var skills=lib.character[name][3]; var skills=lib.character[name][3];
for(var j=0;j<skills.length;j++){ for(var j=0;j<skills.length;j++){
var info=lib.skill[skills[j]]; var info=lib.skill[skills[j]];
@ -1092,6 +1093,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
group:"reshuangxiong2", group:"reshuangxiong2",
audio:"shuangxiong", audio:"shuangxiong",
audioname:['re_yanwen'],
check:function (event,player){ check:function (event,player){
if(player.countCards('h')>player.hp) return true; if(player.countCards('h')>player.hp) return true;
if(player.countCards('h')>3) return true; if(player.countCards('h')>3) return true;
@ -2750,7 +2752,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.count--; event.count--;
player.gainPlayerCard(get.prompt('refankui',trigger.source),trigger.source,get.buttonValue,'he').set('logSkill',['refankui',trigger.source]); player.gainPlayerCard(get.prompt('refankui',trigger.source),trigger.source,get.buttonValue,'he').set('logSkill',['refankui',trigger.source]);
"step 2" "step 2"
if(result.bool&&event.count>0&&event.source.countGainableCards(player,'he')>0) event.goto(1); if(result.bool&&event.count>0&&trigger.source.countGainableCards(player,'he')>0) event.goto(1);
}, },
ai:{ ai:{
maixie_defend:true, maixie_defend:true,
@ -3089,6 +3091,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.logSkill('relianying',result.targets); player.logSkill('relianying',result.targets);
game.asyncDraw(result.targets); game.asyncDraw(result.targets);
} }
else event.finish();
"step 2"
game.delay();
}, },
ai:{ ai:{
threaten:0.8, threaten:0.8,

View File

@ -3323,7 +3323,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
beige:{ beige:{
audio:4, audio:2,
audioname:['re_caiwenji'],
trigger:{global:'damageEnd'}, trigger:{global:'damageEnd'},
filter:function(event,player){ filter:function(event,player){
return (event.card&&event.card.name=='sha'&&event.source&& return (event.card&&event.card.name=='sha'&&event.source&&
@ -4006,6 +4007,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
songwei:{ songwei:{
unique:true, unique:true,
group:'songwei2', group:'songwei2',
audioname:['re_caopi'],
audio:"songwei2", audio:"songwei2",
zhuSkill:true, zhuSkill:true,
}, },
@ -4043,12 +4045,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
gzduanliang:{ gzduanliang:{
audio:'duanliang1',
audioname:['re_xuhuang'],
group:['duanliang1','duanliang2'], group:['duanliang1','duanliang2'],
ai:{ ai:{
threaten:1.2 threaten:1.2
} }
}, },
duanliang:{ duanliang:{
audio:'duanliang1',
audioname:['re_xuhuang'],
group:['duanliang1','duanliang3'], group:['duanliang1','duanliang3'],
ai:{ ai:{
threaten:1.2 threaten:1.2
@ -4245,7 +4251,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
yinghun:{ yinghun:{
audio:2, audio:2,
audioname:['sunce','re_sunben'], audioname:['re_sunjian','sunce','re_sunben'],
trigger:{player:'phaseZhunbeiBegin'}, trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){ filter:function(event,player){
return player.hp<player.maxHp; return player.hp<player.maxHp;
@ -4470,6 +4476,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
baonue:{ baonue:{
unique:true, unique:true,
group:'baonue2', group:'baonue2',
audioname:['re_dongzhuo'],
audio:'baonue2', audio:'baonue2',
zhuSkill:true, zhuSkill:true,
}, },
@ -4682,6 +4689,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
threaten:1.2 threaten:1.2
}, },
lianhuan:{ lianhuan:{
audio:'lianhuan1',
group:['lianhuan1','lianhuan2'] group:['lianhuan1','lianhuan2']
}, },
lianhuan1:{ lianhuan1:{
@ -4996,6 +5004,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
qiangxix:{ qiangxix:{
inherit:'reqiangxi', inherit:'reqiangxi',
audioname:['boss_lvbu3'],
audio:'qiangxi',
usable:2, usable:2,
filterTarget:function (card,player,target){ filterTarget:function (card,player,target){
if(player==target) return false; if(player==target) return false;
@ -6244,6 +6254,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
guidao:{ guidao:{
audio:2, audio:2,
audioname:['sp_zhangjiao'],
trigger:{global:'judge'}, trigger:{global:'judge'},
filter:function(event,player){ filter:function(event,player){
return player.countCards('he',{color:'black'})>0; return player.countCards('he',{color:'black'})>0;

View File

@ -2350,7 +2350,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
frequent:true, frequent:true,
filter:function(event,player){ filter:function(event,player){
if(event.source==player&&event.player!=player&&player.hp>player.countCards('h')){ if(event.source==player&&event.player!=player&&player.hp>player.countCards('h')){
return event.relatedLose&&event.relatedLose.hs&&event.relatedLose.length>0; return event.relatedLose&&event.relatedLose.hs&&event.relatedLose.hs.length>0;
} }
return false; return false;
}, },

View File

@ -2265,13 +2265,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
wushuang:{ wushuang:{
audio:'wushuang1', audio:2,
audioname:['re_lvbu','shen_lvbu'],
forced:true, forced:true,
locked:true, locked:true,
group:['wushuang1','wushuang2'] group:['wushuang1','wushuang2']
}, },
wushuang1:{ wushuang1:{
audio:2, audio:'wushuang',
audioname:['re_lvbu','shen_lvbu'], audioname:['re_lvbu','shen_lvbu'],
trigger:{player:'useCardToPlayered'}, trigger:{player:'useCardToPlayered'},
forced:true, forced:true,
@ -2293,7 +2294,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
wushuang2:{ wushuang2:{
audio:2, audio:'wushuang',
audioname:['re_lvbu','shen_lvbu'], audioname:['re_lvbu','shen_lvbu'],
trigger:{player:'useCardToPlayered',target:'useCardToTargeted'}, trigger:{player:'useCardToPlayered',target:'useCardToTargeted'},
forced:true, forced:true,

View File

@ -10230,7 +10230,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
duanyi_info:'出牌阶段限一次你可以弃置两张杀对一名角色造成一点伤害然后其随机弃置X张牌X为其已损失的体力值', duanyi_info:'出牌阶段限一次你可以弃置两张杀对一名角色造成一点伤害然后其随机弃置X张牌X为其已损失的体力值',
duanyi_info_alter:'出牌阶段限一次,你可以弃置两张杀,并对一名角色造成一点伤害', duanyi_info_alter:'出牌阶段限一次,你可以弃置两张杀,并对一名角色造成一点伤害',
guxing_info:'出牌阶段你可以将最后至多X张手牌当杀使用此杀无视距离且可以指定至多3个目标每造成一次伤害你摸一张牌为你已损失的体力值且至少为。', guxing_info:'出牌阶段你可以将最后至多X张手牌当杀使用此杀无视距离且可以指定至多3个目标每造成一次伤害你摸一张牌为你已损失的体力值且至少为。',
tianlun_info:'任意一名角色的判定生效前,你可以弃置一张场上角色的判定牌代替之', tianlun_info:'任意一名角色的判定生效前,你可以弃置一张场上角色的判定牌代替之',
hlongyin_info:'出牌阶段,你可以弃置任意张颜色相同且点数不同的牌,并获得逆时针座位距离与卡牌点数相同的角色区域内的一张牌。每阶段限一次', hlongyin_info:'出牌阶段,你可以弃置任意张颜色相同且点数不同的牌,并获得逆时针座位距离与卡牌点数相同的角色区域内的一张牌。每阶段限一次',
lanzhi_info:'每当你使用一张梅花牌,你可以令所有体力值不大于你的角色回复一点体力', lanzhi_info:'每当你使用一张梅花牌,你可以令所有体力值不大于你的角色回复一点体力',
lanzhi_old_info:'每当你即将造成伤害,可以防止此伤害,然后摸两张牌。每回合限发动一次。', lanzhi_old_info:'每当你即将造成伤害,可以防止此伤害,然后摸两张牌。每回合限发动一次。',

View File

@ -331,7 +331,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:"shunshou", name:"shunshou",
}, },
filterTarget:function (card,player,target){ filterTarget:function (card,player,target){
return lib.filter.filterTarget.apply(this,arguments); return _status.event.targets&&_status.event.targets.contains(target)&&lib.filter.filterTarget.apply(this,arguments);
}, },
prompt:"将一张手牌当顺手牵羊使用", prompt:"将一张手牌当顺手牵羊使用",
check:function (card){return 7-get.value(card)}, check:function (card){return 7-get.value(card)},
@ -4650,10 +4650,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return 1; return 1;
}, },
position:"he", position:"he",
discard:false,
loseTo:'discardPile',
prepare:function(cards,player){
player.$throw(cards,1000);
game.log(player,'将',cards,'置入了弃牌堆')
},
content:function (){ content:function (){
'step 0' 'step 0'
player.draw(); player.draw();
player.recover(1-player.hp); 'step 1'
var num=1-player.hp;
if(num) player.recover(num);
}, },
ai:{ ai:{
order:0.5, order:0.5,
@ -4889,9 +4897,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.chooseCardButton(get.prompt('xinfu_zhaoxin',trigger.player),player.storage.xinfu_zhaoxin,function(button){ player.chooseCardButton(get.prompt('xinfu_zhaoxin',trigger.player),player.storage.xinfu_zhaoxin,function(button){
return true; return true;
}).set('ai',function(button){ }).set('ai',function(button){
var player=_status.event.player; return 1+Math.random();
if(get.attitude(player,_status.currentPhase)>0) return get.value(button.link);
return 6-get.value(button.link);
}); });
'step 1' 'step 1'
if(result.bool){ if(result.bool){

View File

@ -1866,7 +1866,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
silent:true, silent:true,
content:function(){ content:function(){
game.log(player,'拼点牌点数视为','#y13'); game.log(player,'拼点牌点数视为','#yK');
if(player==trigger.player){ if(player==trigger.player){
trigger.num1=13; trigger.num1=13;
} }
@ -2711,33 +2711,34 @@ game.import('character',function(lib,game,ui,get,ai,_status){
logTarget:'player', logTarget:'player',
skillAnimation:true, skillAnimation:true,
animationColor:'wood', animationColor:'wood',
onWash:function(){
_status.event.getParent('fuzhu').washed=false;
return 'remove';
},
content:function(){ content:function(){
'step 0' 'step 0'
var list=[]; event.washed=false;
for(var i=0;i<ui.cardPile.childElementCount;i++){ lib.onwash.push(lib.skill.fuzhu.onWash);
if(ui.cardPile.childNodes[i].name=='sha'){
list.push(ui.cardPile.childNodes[i]);
ui.cardPile.childNodes[i].remove();
i--;
}
}
event.list=list;
event.num=0;
event.total=game.players.length+game.dead.length; event.total=game.players.length+game.dead.length;
'step 1' 'step 1'
if(event.list.length&&event.num<event.total&&trigger.player.isAlive()){ event.total--;
event.num++; var card=get.cardPile2(function(card){
player.useCard(event.list.shift(),trigger.player); return card.name=='sha'&&player.canUse(card,trigger.player,false);
event.redo(); });
if(card){
card.remove();
game.updateRoundNumber();
player.useCard(card,trigger.player,false);
} }
'step 2' 'step 2'
if(event.total>0&&!event.washed&&ui.cardPile.childElementCount<=player.hp*10&&trigger.player.isAlive()) event.goto(1);
'step 3'
lib.onwash.remove(lib.skill.fuzhu.onWash);
var cards=get.cards(ui.cardPile.childElementCount+1); var cards=get.cards(ui.cardPile.childElementCount+1);
for(var i=0;i<cards.length;i++){ for(var i=0;i<cards.length;i++){
ui.cardPile.insertBefore(cards[i],ui.cardPile.childNodes[get.rand(ui.cardPile.childElementCount)]); ui.cardPile.insertBefore(cards[i],ui.cardPile.childNodes[get.rand(ui.cardPile.childElementCount)]);
} }
for(var i=0;i<event.list.length;i++){ game.updateRoundNumber();
ui.cardPile.insertBefore(event.list[i],ui.cardPile.childNodes[get.rand(ui.cardPile.childElementCount)]);
}
}, },
ai:{ ai:{
threaten:1.5 threaten:1.5

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[ window.noname_asset_list=[
'1.9.97.8', '1.9.97.9',
'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3', 'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3', 'audio/background/aozhan_rewrite.mp3',
@ -1677,10 +1677,8 @@ window.noname_asset_list=[
'audio/skill/wusheng3.mp3', 'audio/skill/wusheng3.mp3',
'audio/skill/wushuang_re_lvbu1.mp3', 'audio/skill/wushuang_re_lvbu1.mp3',
'audio/skill/wushuang_re_lvbu2.mp3', 'audio/skill/wushuang_re_lvbu2.mp3',
'audio/skill/wushuang11.mp3', 'audio/skill/wushuang1.mp3',
'audio/skill/wushuang12.mp3', 'audio/skill/wushuang2.mp3',
'audio/skill/wushuang21.mp3',
'audio/skill/wushuang22.mp3',
'audio/skill/wuyan1.mp3', 'audio/skill/wuyan1.mp3',
'audio/skill/wuyan2.mp3', 'audio/skill/wuyan2.mp3',
'audio/skill/wylianji1.mp3', 'audio/skill/wylianji1.mp3',
@ -2129,7 +2127,7 @@ window.noname_asset_list=[
'audio/skill/roulin_re_dongzhuo2.mp3', 'audio/skill/roulin_re_dongzhuo2.mp3',
'audio/skill/shensu1_re_xiahouyuan1.mp3', 'audio/skill/shensu1_re_xiahouyuan1.mp3',
'audio/skill/shensu1_re_xiahouyuan2.mp3', 'audio/skill/shensu1_re_xiahouyuan2.mp3',
'audio/skill/shuangxiong_re_yanwen.mp3', 'audio/skill/shuangxiong2_re_yanwen.mp3',
'audio/skill/shuangxiong1_re_yanwen.mp3', 'audio/skill/shuangxiong1_re_yanwen.mp3',
'audio/skill/sibian1.mp3', 'audio/skill/sibian1.mp3',
'audio/skill/sibian2.mp3', 'audio/skill/sibian2.mp3',

View File

@ -11074,8 +11074,11 @@
}, },
phaseJudge:function(){ phaseJudge:function(){
"step 0" "step 0"
if(!player.storage._disableJudge&&player.node.judges.childElementCount){ event.cards=player.getCards('j');
event.card=player.node.judges.firstChild; if(!event.cards.length) event.finish();
"step 1"
if(cards.length&&player.getCards('j').contains(cards[0])){
event.card=cards.shift();
if(event.card.classList.contains('removing')){ if(event.card.classList.contains('removing')){
event.card.remove(); event.card.remove();
delete event.card; delete event.card;
@ -11103,9 +11106,9 @@
} }
} }
else event.finish(); else event.finish();
"step 1"
if(!event.cancelled&&!event.nojudge) player.judge(event.card).set('type','phase');
"step 2" "step 2"
if(!event.cancelled&&!event.nojudge) player.judge(event.card).set('type','phase');
"step 3"
var name=event.card.viewAs||event.card.name; var name=event.card.viewAs||event.card.name;
if(event.cancelled&&!event.direct){ if(event.cancelled&&!event.direct){
if(lib.card[name].cancel){ if(lib.card[name].cancel){
@ -11123,7 +11126,7 @@
next.player=player; next.player=player;
} }
ui.clear(); ui.clear();
event.goto(0); event.goto(1);
}, },
phaseDraw:function(){ phaseDraw:function(){
"step 0" "step 0"
@ -13532,6 +13535,7 @@
if(target){ if(target){
event.triggeredTargets1.push(target); event.triggeredTargets1.push(target);
var next=game.createEvent('useCardToPlayer',false); var next=game.createEvent('useCardToPlayer',false);
if(event.triggeredTargets1.length==1) next.isFirstTarget=true;
next.setContent('emptyEvent'); next.setContent('emptyEvent');
next.targets=targets; next.targets=targets;
next.target=target; next.target=target;
@ -13550,6 +13554,7 @@
if(target){ if(target){
event.triggeredTargets2.push(target); event.triggeredTargets2.push(target);
var next=game.createEvent('useCardToTarget',false); var next=game.createEvent('useCardToTarget',false);
if(event.triggeredTargets2.length==1) next.isFirstTarget=true;
next.setContent('emptyEvent'); next.setContent('emptyEvent');
next.targets=targets; next.targets=targets;
next.target=target; next.target=target;
@ -13568,6 +13573,7 @@
if(target){ if(target){
event.triggeredTargets3.push(target); event.triggeredTargets3.push(target);
var next=game.createEvent('useCardToPlayered',false); var next=game.createEvent('useCardToPlayered',false);
if(event.triggeredTargets3.length==1) next.isFirstTarget=true;
next.setContent('emptyEvent'); next.setContent('emptyEvent');
next.targets=targets; next.targets=targets;
next.target=target; next.target=target;
@ -13586,6 +13592,7 @@
if(target){ if(target){
event.triggeredTargets4.push(target); event.triggeredTargets4.push(target);
var next=game.createEvent('useCardToTargeted',false); var next=game.createEvent('useCardToTargeted',false);
if(event.triggeredTargets4.length==1) next.isFirstTarget=true;
next.setContent('emptyEvent'); next.setContent('emptyEvent');
next.targets=targets; next.targets=targets;
next.target=target; next.target=target;
@ -15681,7 +15688,7 @@
if(typeof maxHp!='number'){ if(typeof maxHp!='number'){
maxHp=get.infoMaxHp(info2[2]); maxHp=get.infoMaxHp(info2[2]);
} }
num=maxHp-info1[2]; num=maxHp-get.infoMaxHp(info1[2]);
} }
if(typeof this.singleHp=='boolean'){ if(typeof this.singleHp=='boolean'){
if(num%2!=0){ if(num%2!=0){
@ -18649,13 +18656,15 @@
if(!card.expired){ if(!card.expired){
var target=this.next; var target=this.next;
var name=card.viewAs||card.name; var name=card.viewAs||card.name;
var bool=false;
for(var iwhile=0;iwhile<20;iwhile++){ for(var iwhile=0;iwhile<20;iwhile++){
if(target==this||target.canAddJudge(card)){ if(target.canAddJudge(card)){
break; bool=true;break;
} }
target=target.next; target=target.next;
} }
if(target==this){ if(!bool){
game.log(card,'进入了弃牌堆');
game.cardsDiscard(card); game.cardsDiscard(card);
} }
else{ else{
@ -38218,7 +38227,7 @@
importExtension.style.textAlign='left'; importExtension.style.textAlign='left';
ui.create.div('','<input type="file" accept="application/zip" style="width:153px"><button>确定</button>',importExtension); ui.create.div('','<input type="file" accept="application/zip" style="width:153px"><button>确定</button>',importExtension);
var extensionURL=lib.updateURL.replace(/noname/,'noname-extension')+'/master/'; var extensionURL=lib.updateURL.replace(/noname/g,'noname-extension')+'/master/';
var reloadnode=ui.create.div('.config.toggle.pointerdiv','重新启动',page,game.reload); var reloadnode=ui.create.div('.config.toggle.pointerdiv','重新启动',page,game.reload);
reloadnode.style.display='none'; reloadnode.style.display='none';

View File

@ -1,8 +1,8 @@
window.noname_update={ window.noname_update={
version:'1.9.97.8.1', version:'1.9.97.9',
update:'1.9.97.7.1', update:'1.9.97.8.2',
changeLog:[ changeLog:[
'新的Coding镜像下载点', '家族之争',
'BUG修复', 'BUG修复',
], ],
files:[ files:[
@ -11,35 +11,35 @@ window.noname_update={
//'card/sp.js', //'card/sp.js',
'card/standard.js', 'card/standard.js',
//'card/swd.js', //'card/swd.js',
'card/guozhan.js', //'card/guozhan.js',
//'card/gwent.js', //'card/gwent.js',
'character/diy.js', //'character/diy.js',
'character/extra.js', //'character/extra.js',
//'character/hearth.js', //'character/hearth.js',
//'character/gujian.js', //'character/gujian.js',
//'character/gwent.js', //'character/gwent.js',
//'character/mobile.js', 'character/mobile.js',
//'character/mtg.js', //'character/mtg.js',
//'character/old.js', 'character/old.js',
'character/refresh.js', 'character/refresh.js',
'character/shenhua.js', 'character/shenhua.js',
'character/sp.js', 'character/sp.js',
//'character/tw.js', //'character/tw.js',
'character/standard.js', 'character/standard.js',
//'character/swd.js', 'character/swd.js',
//'character/xianjian.js', //'character/xianjian.js',
'character/xinghuoliaoyuan.js', 'character/xinghuoliaoyuan.js',
'character/yijiang.js', 'character/yijiang.js',
'character/yxs.js', //'character/yxs.js',
//'extension/boss/extension.js', //'extension/boss/extension.js',
//'layout/default/layout.css', //'layout/default/layout.css',
//'mode/identity.js', //'mode/identity.js',
//'mode/doudizhu.js', //'mode/doudizhu.js',
'mode/guozhan.js', //'mode/guozhan.js',
//'mode/single.js', //'mode/single.js',
//'mode/stone.js', //'mode/stone.js',
'mode/brawl.js', 'mode/brawl.js',
'mode/versus.js', //'mode/versus.js',
//'mode/boss.js', //'mode/boss.js',
'game/game.js', 'game/game.js',
//'game/NoSleep.js', //'game/NoSleep.js',

View File

@ -1779,6 +1779,324 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
} }
}, },
jiazuzhizheng:{
name:'家族之争',
mode:'versus',
submode:'2v2',
intro:'势力相同的武将组合一队,获得专属势力技能',
showcase:function(init){
var node=this;
var getList=function(){
var list=[
['liubei','guanyu','zhangfei'],
['caocao','guojia','xunyu'],
['sunquan','zhangzhang','zhouyu'],
['re_yuanshao','guotufengji','yj_jushou']
];
if(_status.forceKey) list.push(['key_yuri','key_kyousuke','key_umi'])
list.randomSort();
var list2=[];
for(var i=0;i<list.length;i++){
list2=list2.concat(list[i]);
}
node.list=list2;
};
var func=function(){
if(!node.list.length){
getList();
}
var card=ui.create.player(null,true);
card.init(node.list.shift());
card.node.marks.remove();
card.node.count.remove();
card.node.hp.remove();
node.nodes.push(card);
card.style.position='absolute';
var rand1=Math.round(Math.random()*100);
var rand2=Math.round(Math.random()*100);
var rand3=Math.round(Math.random()*40)-20;
card.style.left='calc('+rand1+'% - '+(rand1*1.5)+'px)';
card.style.top='calc('+rand2+'% - '+(rand2*1.8)+'px)';
card.style.transform='scale(1.2) rotate('+rand3+'deg)';
card.style.opacity=0;
ui.refresh(card);
node.appendChild(card);
ui.refresh(card);
card.style.transform='scale(0.9) rotate('+rand3+'deg)';
card.style.opacity=1;
if(node.nodes.length>4){
setTimeout(function(){
while(node.nodes.length>3){
node.nodes.shift().delete();
}
},500);
}
};
node.list=[];
if(init){
node.nodes=[];
for(var i=0;i<3;i++){
func();
}
}
node.showcaseinterval=setInterval(func,1000);
},
init:function(){},
content:{
submode:'two',
chooseCharacterFixed:true,
chooseCharacterBefore:function(){
var map={
wei:[],
shu:[],
wu:[],
qun:[],
key:[],
};
var map3=[];
var banned=['zuoci','re_zuoci','tw_xiahouba'];
for(var i in lib.character){
if(lib.filter.characterDisabled2(i)||lib.filter.characterDisabled(i)||banned.contains(i)) continue;
var group=lib.character[i][1];
if(group&&map[group]) map[group].push(i);
}
for(var i in map){
if(map[i].length<8||(i=='key'&&!_status.forceKey)){
delete map[i];
}
else{
map3.push(i);
}
}
_status.brawl.map=map;
_status.brawl.map3=map3;
var skill={
_jiazu_wei:{
trigger:{player:'phaseBegin'},
direct:true,
popup:'魏业',
prompt2:'回合开始时,你可以弃置一张牌并指定一名敌方角色,该角色须弃置一张牌,否则你摸一张牌。',
filter:function(event,player){
return player.group=='wei'&&player.countCards('he')>0;
},
content:function(){
'step 0'
player.chooseCardTarget({
prompt:get.prompt2(event.name),
filterCard:lib.filter.cardDiscardable,
filterTarget:function(card,player,target){
return player.side!=target.side;
},
position:'he',
ai1:function(card){
return 6-get.value(card);
},
ai2:function(target){
return 1/(1+target.countCards('he'));
},
});
'step 1'
if(result.bool){
player.logSkill(event.name,result.targets);
player.discard(result.cards);
result.targets[0].chooseToDiscard('弃置一张牌,或令'+get.translation(player)+'摸一张牌','he').ai=lib.skill.zhiheng.check;
}
else event.finish();
'step 2'
if(!result.bool) player.draw();
},
},
_jiazu_shu:{
popup:'蜀义',
prompt2:'你使用【杀】上限+1出牌阶段结束时若你于此阶段使用【杀】次数不少于2摸一张牌。',
mod:{
cardUsable:function(card,player,num){
if(card.name=='sha'&&player.group=='shu') return num+1;
},
},
trigger:{player:'phaseUseEnd'},
forced:true,
filter:function(event,player){
return player.group=='shu'&&player.getHistory('useCard',function(evt){
return evt.card&&evt.card.name=='sha'&&evt.getParent('phaseUse')==event;
}).length>1;
},
content:function(){player.draw()},
},
_jiazu_wu:{
trigger:{player:'phaseEnd'},
forced:true,
popup:'吴耀',
prompt2:'回合结束时,若你的手牌数不等于你的体力值,则你摸一张牌。',
filter:function(event,player){
return player.group=='wu'&&player.countCards('h')!=player.hp;
},
content:function(){player.draw()},
},
_jiazu_qun:{
popup:'群心',
prompt2:'锁定技弃牌阶段开始时若你的手牌数比体力值多2或更多你本回合手牌上限+1若你已损失体力值大于1你手牌上限+1',
trigger:{player:'phaseDiscardBegin'},
forced:true,
filter:function(event,player){
return player.group=='qun'&&(player.isDamaged()||player.countCards('h')-player.hp>1);
},
content:function(){
var num=0;
if(player.isDamaged()) num++;
if(player.countCards('h')-player.hp>1) num++;
player.addMark('qunxin_temp',num,false);
player.addTempSkill('qunxin_temp','phaseDiscardEnd');
},
},
_jiazu_key:{
enable:'phaseUse',
usable:1,
popup:'键魂',
filter:function(event,player){
return player.group=='key';
},
prompt2:'出牌阶段限一次你可以摸一张牌并获得1点护甲。若如此做你于当前回合结束时失去1点体力。',
content:function(){
"step 0"
player.draw();
"step 1"
player.changeHujia(1);
"step 2"
var evt=event.getParent('phase');
if(evt&&evt.after){
var next=player.loseHp();
event.next.remove(next);
evt.after.push(next);
}
},
ai:{
order:10,
result:{
player:function(player){
return player.hp-1;
},
},
},
},
qunxin_temp:{
noGlobal:true,
onremove:true,
mod:{
maxHandcard:function(player,num){
return num+player.countMark('qunxin_temp');
},
},
},
_jiazu_awaken_wei:{
popup:'许昌',
intro:{
content:'锁定技,当你受到伤害后,你摸一张牌。',
},
trigger:{player:'damageEnd'},
forced:true,
filter:function(event,player){
return player._jiazuAwaken&&player.group=='wei';
},
content:function(){player.draw()},
},
_jiazu_awaken_shu:{
popup:'成都',
intro:{
content:'锁定技,当你使用【杀】造成伤害后,你摸一张牌。',
},
trigger:{source:'damageEnd'},
forced:true,
filter:function(event,player){
return player._jiazuAwaken&&player.group=='shu'&&event.card&&event.card.name=='sha';
},
content:function(){player.draw()},
},
_jiazu_awaken_wu:{
popup:'武昌',
intro:{
content:'锁定技,当你使用装备牌时,你摸一张牌。',
},
trigger:{player:'useCard'},
forced:true,
filter:function(event,player){
return player._jiazuAwaken&&player.group=='wu'&&get.type(event.card)=='equip';
},
content:function(){player.draw()},
},
_jiazu_awaken_qun:{
popup:'邺城',
intro:{
content:'锁定技,当你使用锦囊牌指定其他角色为目标后,你摸一张牌。',
},
trigger:{player:'useCardToPlayered'},
forced:true,
filter:function(event,player){
if(!player._jiazuAwaken||player.group!='qun'||!event.isFirstTarget||get.type(event.card,'trick')!='trick') return false;
for(var i=0;i<event.targets.length;i++){
if(event.targets[i]!=player) return true;
}
return false;
},
content:function(){player.draw()},
},
_jiazu_awaken_key:{
popup:'光坂',
intro:{
content:'锁定技,当你回复/失去体力后,你摸一张牌。',
},
trigger:{player:['loseHpEnd','recoverEnd']},
forced:true,
filter:function(event,player){
return player._jiazuAwaken&&player.group=='key';
},
content:function(){
player.draw();
},
},
_jiazu_awaken:{
trigger:{global:'die'},
forced:true,
filter:function(event,player){
return !player._jiazuAwaken&&event.player.side==player.side;
},
content:function(){
player._jiazuAwaken=true;
var name='_jiazu_awaken_'+player.group;
if(lib.skill[name]) player.markSkill(name);
},
},
};
for(var i in skill){
lib.skill[i]=skill[i];
if(skill[i].popup) lib.translate[i]=skill[i].popup;
if(skill[i].prompt2) lib.translate[i+'_info']=skill[i].prompt2;
if(!skill[i].noGlobal) game.addGlobalSkill(i);
}
},
chooseCharacter:function(list,player){
if(player.side==game.me.side){
if(_status.brawl.mylist){
return _status.brawl.mylist.randomGets(player==game.me?5:3);
}
}
else{
if(_status.brawl.enemylist){
return _status.brawl.enemylist.randomGets(player==game.me?5:3);
}
}
var surname=_status.brawl.map3.randomRemove();
var list=_status.brawl.map[surname];
if(player==game.me){
_status.brawl.mylist=list;
}
else{
_status.brawl.enemylist=list;
}
return list.randomRemove(player==game.me?5:3);
}
}
},
baiyidujiang:{ baiyidujiang:{
name:'白衣渡江', name:'白衣渡江',
mode:'versus', mode:'versus',