蜀汉四天王

This commit is contained in:
Spmario233 2021-01-27 20:48:29 +08:00
parent 15b757a946
commit e288dd0680
19 changed files with 376 additions and 101 deletions

View File

@ -252,7 +252,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(card.yingbian||!result.bool) target.damage('thunder'); if(card.yingbian||!result.bool) target.damage('thunder');
}, },
ai:{ ai:{
order:7, order:6,
value:4, value:4,
useful:2, useful:2,
tag:{ tag:{

View File

@ -450,6 +450,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
return get.order({name:'sha'})-0.1; return get.order({name:'sha'})-0.1;
}, },
equipValue:function(card,player){ equipValue:function(card,player){
if(player._zhuge_temp) return 1;
player._zhuge_temp=true;
var result=function(){
if(!game.hasPlayer(function(current){ if(!game.hasPlayer(function(current){
return get.distance(player,current)<=1&&player.canUse('sha',current)&&get.effect(current,{name:'sha'},player,player)>0; return get.distance(player,current)<=1&&player.canUse('sha',current)&&get.effect(current,{name:'sha'},player,player)>0;
})){ })){
@ -463,6 +466,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
var num=player.countCards('h','sha'); var num=player.countCards('h','sha');
if(num>1) return 6+num; if(num>1) return 6+num;
return 3+num; return 3+num;
}();
delete player._zhuge_temp;
return result;
}, },
basic:{ basic:{
equipValue:5 equipValue:5

View File

@ -218,7 +218,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
subtype:'equip5', subtype:'equip5',
ai:{ ai:{
basic:{ basic:{
equipValue:2 equipValue:6.5
} }
}, },
skills:['tongque_skill'] skills:['tongque_skill']
@ -274,7 +274,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
subtype:'equip5', subtype:'equip5',
ai:{ ai:{
basic:{ basic:{
equipValue:2 equipValue:3
} }
}, },
skills:['taigongyinfu_skill','taigongyinfu_link'], skills:['taigongyinfu_skill','taigongyinfu_link'],

View File

@ -590,7 +590,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
delete player.storage.jinglve2; delete player.storage.jinglve2;
delete player.storage.jinglve3; delete player.storage.jinglve3;
}, },
trigger:{global:['dieBegin','loseAfter']}, trigger:{global:['dieEnd','loseAfter']},
silent:true, silent:true,
lastDo:true, lastDo:true,
charlotte:true, charlotte:true,
@ -3565,6 +3565,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return 1; return 1;
}, },
discard:false, discard:false,
delay:false,
content:function(){ content:function(){
'step 0' 'step 0'
target.gain(cards,player,'giveAuto'); target.gain(cards,player,'giveAuto');

View File

@ -998,6 +998,7 @@ window.noname_character_rank={
'zangba', 'zangba',
'junk_zhangrang', 'junk_zhangrang',
'ol_guohuai', 'ol_guohuai',
'junk_simayi',
], ],
rarity:{ rarity:{
legend:[ legend:[
@ -1550,6 +1551,7 @@ window.noname_character_rank={
'caiyong', 'caiyong',
'xin_chengpu', 'xin_chengpu',
'junk_zhangrang', 'junk_zhangrang',
'junk_simayi',
], ],
} }
}; };

View File

@ -577,7 +577,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ui.cardPile.insertBefore(cards[0],ui.cardPile.firstChild); ui.cardPile.insertBefore(cards[0],ui.cardPile.firstChild);
game.updateRoundNumber(); game.updateRoundNumber();
'step 2' 'step 2'
target.chooseCard('he',true).set('prompt','选择交给'+get.translation(player)+'一张锦囊牌,或依次弃置两张非锦囊牌。'); if(!target.countCards('he',function(card){
if(get.type2(card)=='trick') return true;
return lib.filter.cardDiscardable(card,target,'remieji');
})) event.finish();
else target.chooseCard('he',true,function(card,player){
if(get.type2(card)=='trick') return true;
return lib.filter.cardDiscardable(card,player,'remieji');
}).set('prompt','选择交给'+get.translation(player)+'一张锦囊牌,或依次弃置两张非锦囊牌。');
'step 3' 'step 3'
if(result.cards&&result.cards.length){ if(result.cards&&result.cards.length){
if(get.type2(result.cards[0])=='trick'){ if(get.type2(result.cards[0])=='trick'){

View File

@ -766,6 +766,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
ai:{ ai:{
order:9, order:9,
threaten:1.7,
result:{ result:{
target:function(player,target){ target:function(player,target){
if(target.hasSkillTag('nogain')) return -0.1; if(target.hasSkillTag('nogain')) return -0.1;

View File

@ -10213,9 +10213,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
} }
else if(get.tag(event.card,'damage')){ else if(get.tag(event.card,'damage')){
if(player.countCards('h')<2) return true; if(event.card.name=='shuiyanqijunx') return player.countCards('e')<2;
return true;
//if(player.countCards('h')<2) return true;
} }
else if(event.card.name=='shunshou'&&player.hp>2){ else if((event.card.name=='shunshou'||(event.card.name=='zhujinqiyuan'&&(event.card.yingbian||get.distance(event.player,player)<0)))&&player.hp>2){
return true; return true;
} }
return false; return false;

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[ window.noname_asset_list=[
'v1.9.108.3.2', 'v1.9.108.3.3',
'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',
@ -5112,6 +5112,10 @@ window.noname_asset_list=[
'image/mode/versus/character/boss_tuntianchiwen.jpg', 'image/mode/versus/character/boss_tuntianchiwen.jpg',
'image/mode/versus/character/boss_yuhuoshiyuan.jpg', 'image/mode/versus/character/boss_yuhuoshiyuan.jpg',
'image/mode/versus/character/boss_yunpingqinglong.jpg', 'image/mode/versus/character/boss_yunpingqinglong.jpg',
'image/mode/versus/character/boss_baijiwenyuan.jpg',
'image/mode/versus/character/boss_fuweizilong.jpg',
'image/mode/versus/character/boss_kumuyuanrang.jpg',
'image/mode/versus/character/boss_yihanyunchang.jpg',
'image/mode/versus/character/liuqi.jpg', 'image/mode/versus/character/liuqi.jpg',
'image/mode/versus/character/tangzi.jpg', 'image/mode/versus/character/tangzi.jpg',
'image/splash/boss.jpg', 'image/splash/boss.jpg',

View File

@ -15109,7 +15109,10 @@
game.playAudio('effect','recover'); game.playAudio('effect','recover');
} }
}); });
if(num>player.maxHp-player.hp) num=player.maxHp-player.hp; if(num>player.maxHp-player.hp){
num=player.maxHp-player.hp;
event.num=num;
}
if(num>0){ if(num>0){
player.changeHp(num,false); player.changeHp(num,false);
game.broadcastAll(function(player){ game.broadcastAll(function(player){
@ -15968,8 +15971,6 @@
} }
if(!player.isUnseen(2)){ if(!player.isUnseen(2)){
delete player.storage.nohp; delete player.storage.nohp;
player.hp=player.storage.rawHp+player.maxHp-1;
player.maxHp=player.storage.rawMaxHp+player.maxHp-1;
player.node.hp.show(); player.node.hp.show();
player.update(); player.update();
} }
@ -44847,7 +44848,8 @@
} }
else{ else{
if(get.mode()=='guozhan'){ if(get.mode()=='guozhan'){
list={wei:'魏',shu:'蜀',wu:'吴',qun:'群'}; list={wei:'魏',shu:'蜀',wu:'吴',qun:'群',jin:'晋'};
if(_status.forceKey) list.key='键';
} }
var list2=get.copy(list); var list2=get.copy(list);
if(game.getIdentityList2){ if(game.getIdentityList2){
@ -51039,7 +51041,7 @@
table.style.position='relative'; table.style.position='relative';
var listi=['flower','egg']; var listi=['flower','egg'];
for(var i=0;i<listi.length;i++){ for(var i=0;i<listi.length;i++){
td=ui.create.div('.shadowed.reduce_radius.pointerdiv.tdnode'); td=ui.create.div('.menubutton.reduce_radius.pointerdiv.tdnode');
ui.throwEmotion.add(td); ui.throwEmotion.add(td);
if(_status.throwEmotionWait) td.classList.add('exclude'); if(_status.throwEmotionWait) td.classList.add('exclude');
td.link=listi[i]; td.link=listi[i];
@ -51056,7 +51058,7 @@
var listi=['wine','shoe']; var listi=['wine','shoe'];
if(game.me.storage.zhuSkill_shanli) listi=['yuxisx','jiasuo']; if(game.me.storage.zhuSkill_shanli) listi=['yuxisx','jiasuo'];
for(var i=0;i<listi.length;i++){ for(var i=0;i<listi.length;i++){
td=ui.create.div('.shadowed.reduce_radius.pointerdiv.tdnode'); td=ui.create.div('.menubutton.reduce_radius.pointerdiv.tdnode');
ui.throwEmotion.add(td); ui.throwEmotion.add(td);
if(_status.throwEmotionWait) td.classList.add('exclude'); if(_status.throwEmotionWait) td.classList.add('exclude');
td.link=listi[i]; td.link=listi[i];

View File

@ -1,13 +1,12 @@
window.noname_update={ window.noname_update={
version:'1.9.108.3.2', version:'1.9.108.3.3',
update:'1.9.108.3.1', update:'1.9.108.3.2',
changeLog:[ changeLog:[
'应变国战', '剑阁新英魂',
'止息晋司马懿',
'bug修复', 'bug修复',
], ],
files:[ files:[
'card/extra.js', //'card/extra.js',
//'card/gujian.js', //'card/gujian.js',
'card/guozhan.js', 'card/guozhan.js',
//'card/gwent.js', //'card/gwent.js',
@ -20,7 +19,7 @@ window.noname_update={
'card/yingbian.js', 'card/yingbian.js',
//'card/zhenfa.js', //'card/zhenfa.js',
//'card/zhulu.js', //'card/zhulu.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',
@ -30,31 +29,31 @@ window.noname_update={
//'character/mtg.js', //'character/mtg.js',
//'character/old.js', //'character/old.js',
//'character/ow.js', //'character/ow.js',
//'character/rank.js', 'character/rank.js',
//'character/refresh.js', 'character/refresh.js',
'character/shenhua.js', //'character/shenhua.js',
'character/sp.js', //'character/sp.js',
'character/sp2.js', 'character/sp2.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',
//'layout/default/menu.css', //'layout/default/menu.css',
//'layout/nova/layout.css', //'layout/nova/layout.css',
'mode/identity.js', //'mode/identity.js',
//'mode/doudizhu.js', //'mode/doudizhu.js',
'mode/guozhan.js', 'mode/guozhan.js',
//'mode/chess.js', //'mode/chess.js',
//'mode/tafang.js', //'mode/tafang.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/keyWords.js', //'game/keyWords.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

View File

@ -2759,6 +2759,14 @@ div:not(.handcards)>.card>.info>span,
background-image: radial-gradient(circle at bottom left, rgb(255, 218, 71), rgb(224, 191, 62)) background-image: radial-gradient(circle at bottom left, rgb(255, 218, 71), rgb(224, 191, 62))
} }
.identitycircle > div > div[data-color='jin'] {
background-image: radial-gradient(circle at bottom left, rgb(100, 74, 139), rgb(96, 72, 136))
}
.identitycircle > div > div[data-color='key'] {
background-image: radial-gradient(circle at bottom left, rgb(203, 177, 255), rgb(203, 177, 255))
}
.unseen>.avatar,.unseen>.name:not(.name2), .unseen>.avatar,.unseen>.name:not(.name2),
.unseen2>.avatar2,.unseen2>.name2 { .unseen2>.avatar2,.unseen2>.name2 {
opacity: 0 !important; opacity: 0 !important;

View File

@ -1824,10 +1824,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
game.identityVideoName='同将模式'; game.identityVideoName='同将模式';
var target=(_status.mode=='zhong')?game.zhong:game.zhu; var target=(_status.mode=='zhong')?game.zhong:game.zhu;
if(get.config('double_character')){ if(get.config('double_character')){
target.init(game.me.name,game.me.name2); target.init(game.me.name1,game.me.name2);
} }
else{ else{
target.init(game.me.name); target.init(game.me.name1);
} }
target.hp++; target.hp++;
target.maxHp++; target.maxHp++;
@ -1839,10 +1839,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
else{ else{
if(get.config('double_character')){ if(get.config('double_character')){
player.init(game.me.name,game.me.name2); player.init(game.me.name1,game.me.name2);
} }
else{ else{
player.init(game.me.name); player.init(game.me.name1);
} }
} }
}, },
@ -1858,7 +1858,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return list.concat(list2.slice(0,num)); return list.concat(list2.slice(0,num));
} }
} }
} },
chooseCharacterBefore:function(){
if(_status.mode=='purple') _status.mode='normal';
},
} }
}, },
jiazuzhizheng:{ jiazuzhizheng:{

View File

@ -30,9 +30,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
onreinit:function(){ onreinit:function(){
var pack=lib.characterPack.mode_guozhan; var pack=lib.characterPack.mode_guozhan;
for(var i in pack){ for(var i in pack){
if(!lib.configOL.onlyguozhan){
if(lib.character[i.slice(3)]) continue;
}
lib.character[i]=pack[i]; lib.character[i]=pack[i];
if(!lib.character[i][4]){ if(!lib.character[i][4]){
lib.character[i][4]=[]; lib.character[i][4]=[];
@ -271,6 +268,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
], ],
'2':[ '2':[
'gz_re_lusu','gz_zhangzhang', 'gz_re_lusu','gz_zhangzhang',
'gz_jin_simashi','gz_jin_zhangchunhua',
], ],
'1':[ '1':[
'gz_caocao','gz_guojia','gz_xiahoudun', 'gz_caocao','gz_guojia','gz_xiahoudun',
@ -285,12 +283,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
'gz_shamoke','gz_lifeng','gz_wangping', 'gz_shamoke','gz_lifeng','gz_wangping',
'gz_xiaoqiao','gz_zhoutai','gz_lvfan', 'gz_xiaoqiao','gz_zhoutai','gz_lvfan',
'gz_beimihu','gz_mateng','gz_jiaxu', 'gz_beimihu','gz_mateng','gz_jiaxu',
'gz_jin_wangyuanji',
], ],
'7':[ '7':[
'gz_zhanghe','gz_jianggan','gz_simayi', 'gz_zhanghe','gz_jianggan','gz_simayi',
'gz_weiyan','gz_huangyueying','gz_zhugeliang', 'gz_weiyan','gz_huangyueying','gz_zhugeliang',
'gz_lingtong','gz_sunshangxiang','gz_sunce', 'gz_lingtong','gz_sunshangxiang','gz_sunce',
'gz_re_yuanshao','gz_yuanshu','gz_hetaihou', 'gz_re_yuanshao','gz_yuanshu','gz_hetaihou',
'gz_jin_simashi',
], ],
'6':[ '6':[
'gz_zhenji','gz_guojia','gz_yujin', 'gz_zhenji','gz_guojia','gz_yujin',
@ -309,18 +309,21 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
'gz_madai','gz_liubei','gz_mifuren', 'gz_madai','gz_liubei','gz_mifuren',
'gz_wuguotai','gz_luxun','gz_taishici', 'gz_wuguotai','gz_luxun','gz_taishici',
'gz_zhangjiao','gz_zuoci','gz_pangde', 'gz_zhangjiao','gz_zuoci','gz_pangde',
'gz_jin_zhangchunhua',
], ],
'3':[ '3':[
'gz_xiahoudun','gz_yuejin','gz_caoren', 'gz_xiahoudun','gz_yuejin','gz_caoren',
'gz_machao','gz_masu','gz_fazheng', 'gz_machao','gz_masu','gz_fazheng',
'gz_zhangzhang','gz_lvmeng','gz_huanggai', 'gz_zhangzhang','gz_lvmeng','gz_huanggai',
'gz_jiling','gz_lvbu','gz_dongzhuo', 'gz_jiling','gz_lvbu','gz_dongzhuo',
'gz_jin_xiahouhui','gz_jin_simazhao',
], ],
'2':[ '2':[
'gz_cuimao','gz_xiahouyuan','gz_caohong', 'gz_cuimao','gz_xiahouyuan','gz_caohong',
'gz_zhurong','gz_zhurong','gz_jiangfei', 'gz_zhurong','gz_zhurong','gz_jiangfei',
'gz_xusheng','gz_dingfeng','gz_sunjian', 'gz_xusheng','gz_dingfeng','gz_sunjian',
'gz_zhangren','gz_kongrong','gz_yanwen', 'gz_zhangren','gz_kongrong','gz_yanwen',
'gz_jin_simayi',
], ],
'1':[ '1':[
'gz_zangba','gz_bianfuren','gz_xuzhu', 'gz_zangba','gz_bianfuren','gz_xuzhu',
@ -6676,18 +6679,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
uiintro.add('<div class="text chat">出牌时限:'+lib.configOL.choose_timeout+'秒'); uiintro.add('<div class="text chat">出牌时限:'+lib.configOL.choose_timeout+'秒');
uiintro.add('<div class="text chat">国战牌堆:'+(lib.configOL.guozhanpile?'开启':'关闭')); uiintro.add('<div class="text chat">国战牌堆:'+(lib.configOL.guozhanpile?'开启':'关闭'));
uiintro.add('<div class="text chat">鏖战模式:'+(lib.configOL.aozhan?'开启':'关闭')); uiintro.add('<div class="text chat">鏖战模式:'+(lib.configOL.aozhan?'开启':'关闭'));
uiintro.add('<div class="text chat">观看下家副将:'+(lib.configOL.viewnext?'开启':'关闭')); last=uiintro.add('<div class="text chat">观看下家副将:'+(lib.configOL.viewnext?'开启':'关闭'));
last=uiintro.add('<div class="text chat">国战武将:'+(lib.configOL.onlyguozhan?'开启':'关闭'));
if(!lib.configOL.onlyguozhan){
// uiintro.add('<div class="text chat">屏蔽弱将:'+(lib.configOL.ban_weak?'开启':'关闭'));
// last=uiintro.add('<div class="text chat">屏蔽强将:'+(lib.configOL.ban_strong?'开启':'关闭'));
if(lib.configOL.banned.length){
last=uiintro.add('<div class="text chat">禁用武将:'+get.translation(lib.configOL.banned));
}
if(lib.configOL.bannedcards.length){
last=uiintro.add('<div class="text chat">禁用卡牌:'+get.translation(lib.configOL.bannedcards));
}
}
last.style.paddingBottom='8px'; last.style.paddingBottom='8px';
}, },
addRecord:function(bool){ addRecord:function(bool){
@ -6755,6 +6747,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
case 'unknown':list[i]='未知';break; case 'unknown':list[i]='未知';break;
case 'ye':list[i]='野心家';break; case 'ye':list[i]='野心家';break;
case 'qun':list[i]+='雄';break; case 'qun':list[i]+='雄';break;
case 'key':list[i]='Key';break;
case 'jin':list[i]+='朝';break;
default:list[i]+='国'; default:list[i]+='国';
} }
} }

View File

@ -5,14 +5,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
init:function(){ init:function(){
if(get.config('versus_mode')=='jiange'){ if(get.config('versus_mode')=='jiange'){
lib.characterPack.mode_versus=lib.jiangeboss; lib.characterPack.mode_versus=lib.jiangeboss;
lib.characterIntro.boss_liedixuande=lib.characterIntro.liubei;
lib.characterIntro.boss_gongshenyueying=lib.characterIntro.huangyueying;
lib.characterIntro.boss_tianhoukongming=lib.characterIntro.shen_zhugeliang;
lib.characterIntro.boss_yuhuoshiyuan=lib.characterIntro.pangtong;
lib.characterIntro.boss_qiaokuijunyi=lib.characterIntro.zhenghe;
lib.characterIntro.boss_jiarenzidan=lib.characterIntro.caozhen;
lib.characterIntro.boss_duanyuzhongda=lib.characterIntro.simayi;
lib.characterIntro.boss_juechenmiaocai=lib.characterIntro.xiahouyuan;
} }
else if(get.config('versus_mode')=='siguo'){ else if(get.config('versus_mode')=='siguo'){
lib.characterPack.mode_versus={ lib.characterPack.mode_versus={
@ -653,6 +645,18 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
lib.character[i][4]=[]; lib.character[i][4]=[];
} }
} }
lib.characterIntro.boss_liedixuande=lib.characterIntro.liubei;
lib.characterIntro.boss_gongshenyueying=lib.characterIntro.huangyueying;
lib.characterIntro.boss_tianhoukongming=lib.characterIntro.shen_zhugeliang;
lib.characterIntro.boss_yuhuoshiyuan=lib.characterIntro.pangtong;
lib.characterIntro.boss_qiaokuijunyi=lib.characterIntro.zhenghe;
lib.characterIntro.boss_jiarenzidan=lib.characterIntro.caozhen;
lib.characterIntro.boss_duanyuzhongda=lib.characterIntro.simayi;
lib.characterIntro.boss_juechenmiaocai=lib.characterIntro.xiahouyuan;
lib.characterIntro.boss_kumuyuanrang=lib.characterIntro.xiahoudun;
lib.characterIntro.boss_baijiwenyuan=lib.characterIntro.zhangliao;
lib.characterIntro.boss_yihanyunchang=lib.characterIntro.guanyu;
lib.characterIntro.boss_fuweizilong=lib.characterIntro.zhaoyun;
'step 1' 'step 1'
for(var i in lib.skill){ for(var i in lib.skill){
if(lib.skill[i].changeSeat){ if(lib.skill[i].changeSeat){
@ -3796,16 +3800,21 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
boss_qiaokuijunyi:['male','wei',4,['boss_huodi','boss_jueji'],['jiangeboss','hiddenboss','bossallowed'],'wei'], boss_qiaokuijunyi:['male','wei',4,['boss_huodi','boss_jueji'],['jiangeboss','hiddenboss','bossallowed'],'wei'],
boss_jiarenzidan:['male','wei',5,['boss_chiying','boss_jingfan'],['jiangeboss','hiddenboss','bossallowed'],'wei'], boss_jiarenzidan:['male','wei',5,['boss_chiying','boss_jingfan'],['jiangeboss','hiddenboss','bossallowed'],'wei'],
boss_duanyuzhongda:['male','wei',5,['boss_fanshi','boss_xuanlei','boss_skonghun'],['jiangeboss','hiddenboss','bossallowed'],'wei'], boss_duanyuzhongda:['male','wei',5,['boss_fanshi','boss_xuanlei','boss_skonghun'],['jiangeboss','hiddenboss','bossallowed'],'wei'],
boss_juechenmiaocai:['male','wei',4,['boss_chuanyun','boss_leili','boss_fengxing'],['jiangeboss','hiddenboss','bossallowed'],'wei'], boss_juechenmiaocai:['male','wei',5,['boss_chuanyun','boss_leili','boss_fengxing'],['jiangeboss','hiddenboss','bossallowed'],'wei'],
boss_jileibaihu:['male','shu',4,['boss_jiguan','boss_zhenwei','boss_benlei'],['jiangemech','hiddenboss','bossallowed'],'shu'], boss_jileibaihu:['male','shu',5,['boss_jiguan','boss_zhenwei','boss_benlei'],['jiangemech','hiddenboss','bossallowed'],'shu'],
boss_yunpingqinglong:['male','shu',4,['boss_jiguan','boss_mojianjg'],['jiangemech','hiddenboss','bossallowed'],'shu'], boss_yunpingqinglong:['male','shu',5,['boss_jiguan','boss_mojianjg'],['jiangemech','hiddenboss','bossallowed'],'shu'],
boss_lingjiaxuanwu:['male','shu',5,['boss_jiguan','yizhong','boss_lingyu'],['jiangemech','hiddenboss','bossallowed'],'shu'], boss_lingjiaxuanwu:['male','shu',5,['boss_jiguan','yizhong','boss_lingyu'],['jiangemech','hiddenboss','bossallowed'],'shu'],
boss_chiyuzhuque:['male','shu',5,['boss_jiguan','boss_yuhuojg','boss_tianyun'],['jiangemech','hiddenboss','bossallowed'],'shu'], boss_chiyuzhuque:['male','shu',5,['boss_jiguan','boss_yuhuojg','boss_tianyun'],['jiangemech','hiddenboss','bossallowed'],'shu'],
boss_fudibian:['male','wei',4,['boss_jiguan','boss_didongjg'],['jiangemech','hiddenboss','bossallowed'],'wei'], boss_fudibian:['male','wei',5,['boss_jiguan','boss_didongjg'],['jiangemech','hiddenboss','bossallowed'],'wei'],
boss_tuntianchiwen:['male','wei',5,['boss_jiguan','boss_tanshi','boss_tunshi'],['jiangemech','hiddenboss','bossallowed'],'wei'], boss_tuntianchiwen:['male','wei',5,['boss_jiguan','boss_tanshi','boss_tunshi'],['jiangemech','hiddenboss','bossallowed'],'wei'],
boss_shihuosuanni:['male','wei',3,['boss_jiguan','boss_lianyujg'],['jiangemech','hiddenboss','bossallowed'],'wei'], boss_shihuosuanni:['male','wei',5,['boss_jiguan','boss_lianyujg'],['jiangemech','hiddenboss','bossallowed'],'wei'],
boss_lieshiyazi:['male','wei',4,['boss_jiguan','boss_nailuo'],['jiangemech','hiddenboss','bossallowed'],'wei'], boss_lieshiyazi:['male','wei',5,['boss_jiguan','boss_nailuo'],['jiangemech','hiddenboss','bossallowed'],'wei'],
boss_kumuyuanrang:['male','wei',5,['boss_bashi','boss_danjing'],['jiangeboss','hiddenboss','bossallowed'],'wei'],
boss_baijiwenyuan:['male','wei',5,['boss_jiaoxie'],['jiangeboss','hiddenboss','bossallowed'],'wei'],
boss_yihanyunchang:['male','shu',5,['boss_xiaorui','boss_huchen'],['jiangeboss','hiddenboss','bossallowed'],'shu'],
boss_fuweizilong:['male','shu',5,['boss_fengjian','boss_keding'],['jiangeboss','hiddenboss','bossallowed'],'shu'],
}, },
cardsFour:[ cardsFour:[
["spade",7,"sha"], ["spade",7,"sha"],
@ -4232,6 +4241,27 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
boss_shihuosuanni:'食火狻猊', boss_shihuosuanni:'食火狻猊',
boss_lieshiyazi:'裂石睚眦', boss_lieshiyazi:'裂石睚眦',
boss_kumuyuanrang:'枯目元让',
boss_baijiwenyuan:'百计文远',
boss_yihanyunchang:'翊汉云长',
boss_fuweizilong:'扶危子龙',
boss_xiaorui:'骁锐',
boss_xiaorui2:'骁锐',
boss_xiaorui_info:'友方角色于其回合内使用【杀】造成伤害后,其使用【杀】的次数+1。',
boss_huchen:'虎臣',
boss_huchen_info:'锁定技,你摸牌阶段摸牌数+XX为你击杀的敌方角色数。',
boss_fengjian:'封缄',
boss_fengjian2:'封缄',
boss_fengjian_info:'受到你伤害的角色于其下个回合结束前,无法使用牌指定你为目标。',
boss_keding:'克定',
boss_keding_info:'当你使用【杀】或普通锦囊牌仅指定唯一目标时,你可以弃置任意张手牌,为其指定等量的额外目标。',
boss_bashi:'拔矢',
boss_bashi_info:'每当你成为其他角色使用的杀或普通锦囊牌的目标时,你可以从正面翻至背面,若如此做,此牌对你无效。',
boss_danjing:'啖睛',
boss_danjing_info:'友方角色进入濒死状态时若你的体力值大于1你可以失去1点体力视为对其使用一张【桃】。',
boss_jiaoxie:'缴械',
boss_jiaoxie_info:'出牌阶段限一次,你可令敌方守城器械交给你一张牌。',
boss_lianyujg:'炼狱', boss_lianyujg:'炼狱',
boss_lianyujg_info:'结束阶段你可以对所有敌方角色造成1点火焰伤害', boss_lianyujg_info:'结束阶段你可以对所有敌方角色造成1点火焰伤害',
boss_didongjg:'地动', boss_didongjg:'地动',
@ -4243,11 +4273,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
boss_lingyu:'灵愈', boss_lingyu:'灵愈',
boss_lingyu_info:'结束阶段你可以将自己的武将牌翻面然后令所有已受伤的己方其他角色回复1点体力', boss_lingyu_info:'结束阶段你可以将自己的武将牌翻面然后令所有已受伤的己方其他角色回复1点体力',
boss_tianyun:'天陨', boss_tianyun:'天陨',
boss_tianyun_info:'结束阶段你可以失去1点体力然后令一名敌方角色受到2点火焰伤害并弃置其装备区里的所有牌', boss_tianyun_info:'结束阶段你可以失去1点体力然后令一名敌方角色随机受到2~3点火焰伤害并弃置其装备区里的所有牌',
boss_zhenwei:'镇卫', boss_zhenwei:'镇卫',
boss_zhenwei_info:'锁定技,其他己方角色的防御距离+1', boss_zhenwei_info:'锁定技,其他己方角色的防御距离+1',
boss_benlei:'奔雷', boss_benlei:'奔雷',
boss_benlei_info:'锁定技,准备阶段,对敌方攻城器械造成2点雷电伤害', boss_benlei_info:'锁定技,准备阶段,对敌方攻城器械随机造成2~3点雷电伤害',
boss_nailuo:'奈落', boss_nailuo:'奈落',
boss_nailuo_info:'结束阶段,你可以将你的武将牌翻面,令所有敌方角色弃置装备区内的所有牌', boss_nailuo_info:'结束阶段,你可以将你的武将牌翻面,令所有敌方角色弃置装备区内的所有牌',
boss_tanshi:'贪食', boss_tanshi:'贪食',
@ -4263,11 +4293,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
boss_gongshenjg:'工神', boss_gongshenjg:'工神',
boss_gongshenjg_info:'结束阶段,若已方器械已受伤,你可以为其回复一点体力;否则你可以对敌方器械造成一点火焰伤害', boss_gongshenjg_info:'结束阶段,若已方器械已受伤,你可以为其回复一点体力;否则你可以对敌方器械造成一点火焰伤害',
boss_zhinang:'智囊', boss_zhinang:'智囊',
boss_zhinang_info:'准备阶段,你可以亮出牌堆顶的张牌,你可以将其中锦囊或装备牌交给一名己方角色', boss_zhinang_info:'准备阶段,你可以亮出牌堆顶的张牌,你可以将其中锦囊或装备牌交给一名己方角色',
boss_jingmiao:'精妙', boss_jingmiao:'精妙',
boss_jingmiao_info:'锁定技每当敌方角色使用的无懈可击生效后你令其失去1点体力', boss_jingmiao_info:'锁定技每当敌方角色使用的无懈可击生效后你令其失去1点体力',
boss_biantian:'变天', boss_biantian:'变天',
boss_biantian_info:'锁定技,准备阶段,你进行一次判定,若为红色,直到下个回合开始前,令敌方所有角色处于“狂风”状态,若为黑,直到下个回合开始前,令己方所有角色处于“大雾”状态', boss_biantian_info:'锁定技,准备阶段,你进行一次判定,若为红色,直到下个回合开始前,令敌方所有角色处于“狂风”状态,若为黑,直到下个回合开始前,令己方所有角色处于“大雾”状态',
boss_biantian2:'大雾', boss_biantian2:'大雾',
boss_biantian3:'狂风', boss_biantian3:'狂风',
boss_lingfeng:'灵锋', boss_lingfeng:'灵锋',
@ -4558,7 +4588,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
}, },
xionghuangjiu:{ xionghuangjiu:{
trigger:{source:'damageBegin'}, trigger:{source:'damageBegin1'},
filter:function(event,player){ filter:function(event,player){
return event.card&&event.card==player.storage.xionghuangjiu&&event.notLink(); return event.card&&event.card==player.storage.xionghuangjiu&&event.notLink();
}, },
@ -4660,6 +4690,221 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
} }
}, },
//剑阁技能
boss_xiaorui:{
trigger:{global:'damageSource'},
forced:true,
logTarget:'source',
filter:function(event,player){
var target=event.source;
return target&&target==_status.currentPhase&&target.isAlive()&&target.isFriendOf(player)&&event.card&&event.card.name=='sha'&&event.getParent().type=='card';
},
content:function(){
var source=trigger.source;
source.addTempSkill('boss_xiaorui2');
source.addMark('boss_xiaorui2',1,false);
}
},
boss_xiaorui2:{
onremove:true,
charlotte:true,
mod:{
cardUsable:function(card,player,num){
if(card.name=='sha') return num+player.countMark('boss_xiaorui2');
},
},
},
boss_huchen:{
trigger:{
player:'phaseDrawBegin2',
source:'dieAfter',
},
forced:true,
filter:function(event,player){
if(event.name=='die') return event.player.isEnemyOf(player);
return !event.numFixed&&player.countMark('boss_huchen')>0;
},
content:function(){
if(trigger.name=='die') player.addMark('boss_huchen',1);
else trigger.num+=player.countMark('boss_huchen');
},
intro:{
content:'已斩杀过$名敌将',
},
},
boss_fengjian:{
trigger:{source:'damageSource'},
forced:true,
filter:function(event,player){
return event.player.isAlive();
},
logTarget:'player',
content:function(){
trigger.player.addTempSkill('boss_fengjian2',{player:'phaseAfter'});
trigger.player.markAuto('boss_fengjian2',[player]);
},
},
boss_fengjian2:{
onremove:true,
intro:{
content:'不能对$使用牌',
},
mod:{
playerEnabled:function(card,player,target){
if(player.getStorage('boss_fengjian2').contains(target)) return false;
},
},
},
boss_keding:{
trigger:{player:'useCard2'},
direct:true,
filter:function(event,player){
if(!event.targets||event.targets.length!=1) return false;
var card=event.card;
if(card.name!='sha'&&get.type(card)!='trick')return false;
var info=get.info(card);
if(info.allowMultiple==false) return false;
if(!player.countCards('h')) return false;
if(!info.multitarget){
if(game.hasPlayer(function(current){
return !event.targets.contains(current)&&lib.filter.targetEnabled2(card,player,current)&&lib.filter.targetInRange(card,player,current);
})){
return true;
}
}
return false;
},
content:function(){
'step 0'
var card=trigger.card;
var prompt2='弃置任意张手牌,并为'+get.translation(card)+'增加等量的目标';
var targets=game.filterPlayer(function(current){
return !trigger.targets.contains(current)&&lib.filter.targetEnabled2(card,player,current)&&lib.filter.targetInRange(card,player,current);
});
var max=0;
if(!trigger.targets[0].hasSkill('heiguangkai_skill')) max=targets.filter(function(target){
return get.effect(target,card,player,player)>0;
}).length;
player.chooseCardTarget({
prompt:get.prompt('boss_keding'),
prompt2:prompt2,
selectCard:function(){
var player=_status.event.player;
var targets=_status.event.targets;
return [Math.max(1,ui.selected.targets.length),Math.min(targets.length,player.countCards('h'))];
},
selectTarget:function(){
return ui.selected.cards.length;
},
position:'h',
filterCard:lib.filter.cardDiscardable,
filterTarget:function(card,player,target){
return _status.event.targets.contains(target);
},
targets:targets,
ai1:function(card){
if(ui.selected.cards.length>=_status.event.max) return 0;
return 5-get.value(card);
},
ai2:function(target){
if(target.hasSkill('heiguangkai_skill')) return 0;
var trigger=_status.event.getTrigger();
var player=_status.event.player;
return get.effect(target,trigger.card,player,player);
},
max:max,
});
'step 1'
if(result.bool){
player.logSkill('boss_keding',result.targets);
player.discard(result.cards);
trigger.targets.addArray(result.targets);
}
},
},
boss_bashi:{
filter:function(event,player){
return event.player!=player&&event.card&&(event.card.name=='sha'||get.type(event.card)=='trick')&&!player.isTurnedOver();
},
logTarget:'player',
check:function(event,player){
if(event.getParent().excluded.contains(player)) return false;
if(get.attitude(player,event.player)>0){
return false;
}
if(get.tag(event.card,'respondSha')){
if(player.countCards('h',{name:'sha'})==0){
return true;
}
}
else if(get.tag(event.card,'respondShan')){
if(player.countCards('h',{name:'shan'})==0){
return true;
}
}
else if(get.tag(event.card,'damage')){
if(event.card.name=='shuiyanqijunx') return player.countCards('e')<2;
return true;
//if(player.countCards('h')<2) return true;
}
return false;
},
trigger:{target:'useCardToTargeted'},
content:function(){
player.turnOver();
trigger.getParent().excluded.add(player);
},
},
boss_danjing:{
trigger:{global:'dying'},
filter:function(event,player){
return player.hp>1&&event.player.hp<1&&event.player.isFriendOf(player);
},
check:function(event,player){
var target=event.player;
return get.attitude(player,target)>0&&lib.filter.cardSavable({name:'tao',isCard:true},player,target);
},
logTarget:'player',
content:function(){
'step 0'
player.loseHp();
'step 1'
var card={name:'tao',isCard:true};
if(lib.filter.cardSavable(card,player,trigger.player)) player.useCard(card,trigger.player);
},
},
boss_jiaoxie:{
enable:'phaseUse',
usable:1,
filter:function(event,player){
return game.hasPlayer(function(current){
return lib.skill.boss_jiaoxie.filterTarget(null,player,current);
});
},
filterTarget:function(card,player,target){
return target.isEnemyOf(player)&&target.type=='mech'&&target.countCards('he')>0;
},
content:function(){
'step 0'
if(!target.countCards('he')) event.finish();
else target.chooseCard('he',true,'将一张牌交给'+get.translation(player));
'step 1'
if(result.bool){
player.gain(result.cards,target,'give');
}
},
ai:{
order:9,
result:{
target:function(player,target){
if(target.countCards('e',function(card){
return get.value(card,target)<=0;
})>0) return 1;
return -1;
},
},
},
},
boss_didongjg:{ boss_didongjg:{
trigger:{player:'phaseEnd'}, trigger:{player:'phaseEnd'},
direct:true, direct:true,
@ -4978,13 +5223,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
boss_chiying:{ boss_chiying:{
audio:2, audio:2,
trigger:{global:'damageBegin'}, trigger:{global:'damageBegin4'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
if(event.num<=1) return false; if(event.num<=1) return false;
return event.player.isFriendOf(player); return event.player.isFriendOf(player);
}, },
priority:-11,
content:function(){ content:function(){
trigger.num=1; trigger.num=1;
} }
@ -5086,7 +5330,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}); });
if(target){ if(target){
player.line(target,'thunder'); player.line(target,'thunder');
target.damage(2,'thunder'); target.damage(Math.random()>0.4?2:3,'thunder');
} }
}, },
ai:{ ai:{
@ -5273,7 +5517,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
frequent:true, frequent:true,
content:function(){ content:function(){
"step 0" "step 0"
event.cards=get.cards(3); event.cards=get.cards(5);
event.cards2=[]; event.cards2=[];
for(var i=0;i<event.cards.length;i++){ for(var i=0;i<event.cards.length;i++){
var type=get.type(event.cards[i],'trick'); var type=get.type(event.cards[i],'trick');
@ -5363,8 +5607,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
} }
player.judge(function(card){ player.judge(function(card){
if(get.suit(card)=='spade') return 1; var color=get.color(card);
if(get.color(card)=='red') return 0; if(color=='black') return 1;
if(color=='red') return 0;
return -1; return -1;
}); });
"step 1" "step 1"
@ -5380,7 +5625,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
player.logSkill('kuangfeng',targets,'fire'); player.logSkill('kuangfeng',targets,'fire');
} }
else if(result.suit=='spade'){ else if(result.color=='black'){
game.trySkillAudio('boss_biantianx1'); game.trySkillAudio('boss_biantianx1');
for(var i=0;i<players.length;i++){ for(var i=0;i<players.length;i++){
if(players[i].isFriendOf(player)){ if(players[i].isFriendOf(player)){
@ -5423,7 +5668,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
}, },
boss_biantian3:{ boss_biantian3:{
trigger:{player:'damageBegin'}, trigger:{player:'damageBegin3'},
filter:function(event){ filter:function(event){
if(event.nature=='fire') return true; if(event.nature=='fire') return true;
return false; return false;
@ -5499,7 +5744,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}, },
boss_yuhuojg:{ boss_yuhuojg:{
audio:true, audio:true,
trigger:{player:'damageBefore'}, trigger:{player:'damageBegin2'},
filter:function(event){ filter:function(event){
return event.nature=='fire'; return event.nature=='fire';
}, },
@ -5521,6 +5766,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "step 0"
event.forceDie=true;
player.chooseTarget(get.prompt('boss_tianyun'),function(card,player,target){ player.chooseTarget(get.prompt('boss_tianyun'),function(card,player,target){
return target.isEnemyOf(player); return target.isEnemyOf(player);
}).ai=function(target){ }).ai=function(target){
@ -5543,7 +5789,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
"step 2" "step 2"
if(event.target){ if(event.target){
event.target.damage(2,'fire'); event.target.damage(Math.random()>0.4?2:3,'fire');
} }
"step 3" "step 3"
if(event.target){ if(event.target){