diff --git a/card/guozhan.js b/card/guozhan.js index fb821fb87..046bd4f5d 100644 --- a/card/guozhan.js +++ b/card/guozhan.js @@ -252,7 +252,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ if(card.yingbian||!result.bool) target.damage('thunder'); }, ai:{ - order:7, + order:6, value:4, useful:2, tag:{ diff --git a/card/standard.js b/card/standard.js index 1b30503e1..bd367146b 100644 --- a/card/standard.js +++ b/card/standard.js @@ -207,12 +207,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){ card:card, jiu:true, })){ - if(get.attitude(player,target)>0){ - return -7; - } - else{ - return -4; - } + if(get.attitude(player,target)>0){ + return -7; + } + else{ + return -4; + } } return -0.5; } @@ -450,19 +450,25 @@ game.import('card',function(lib,game,ui,get,ai,_status){ return get.order({name:'sha'})-0.1; }, equipValue:function(card,player){ - if(!game.hasPlayer(function(current){ - return get.distance(player,current)<=1&&player.canUse('sha',current)&&get.effect(current,{name:'sha'},player,player)>0; - })){ - return 1; - } - if(player.hasSha()&&_status.currentPhase==player){ - if(player.getEquip('zhuge')&&player.countUsed('sha')||player.getCardUsable('sha')==0){ - return 10; + if(player._zhuge_temp) return 1; + player._zhuge_temp=true; + var result=function(){ + if(!game.hasPlayer(function(current){ + return get.distance(player,current)<=1&&player.canUse('sha',current)&&get.effect(current,{name:'sha'},player,player)>0; + })){ + return 1; } - } - var num=player.countCards('h','sha'); - if(num>1) return 6+num; - return 3+num; + if(player.hasSha()&&_status.currentPhase==player){ + if(player.getEquip('zhuge')&&player.countUsed('sha')||player.getCardUsable('sha')==0){ + return 10; + } + } + var num=player.countCards('h','sha'); + if(num>1) return 6+num; + return 3+num; + }(); + delete player._zhuge_temp; + return result; }, basic:{ equipValue:5 @@ -661,10 +667,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){ if(dialog.buttons[i].link==card){ button=dialog.buttons[i]; button.querySelector('.info').innerHTML=function(target){ - if(target._tempTranslate) return target._tempTranslate; - var name=target.name; - if(lib.translate[name+'_ab']) return lib.translate[name+'_ab']; - return get.translation(name); + if(target._tempTranslate) return target._tempTranslate; + var name=target.name; + if(lib.translate[name+'_ab']) return lib.translate[name+'_ab']; + return get.translation(name); }(target); dialog.buttons.remove(button); break; diff --git a/card/yingbian.js b/card/yingbian.js index e43136a25..0bf00ab81 100644 --- a/card/yingbian.js +++ b/card/yingbian.js @@ -218,7 +218,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ subtype:'equip5', ai:{ basic:{ - equipValue:2 + equipValue:6.5 } }, skills:['tongque_skill'] @@ -274,7 +274,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ subtype:'equip5', ai:{ basic:{ - equipValue:2 + equipValue:3 } }, skills:['taigongyinfu_skill','taigongyinfu_link'], diff --git a/character/mobile.js b/character/mobile.js index da5258a34..1d4b0ebf6 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -590,7 +590,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ delete player.storage.jinglve2; delete player.storage.jinglve3; }, - trigger:{global:['dieBegin','loseAfter']}, + trigger:{global:['dieEnd','loseAfter']}, silent:true, lastDo:true, charlotte:true, @@ -3565,6 +3565,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return 1; }, discard:false, + delay:false, content:function(){ 'step 0' target.gain(cards,player,'giveAuto'); diff --git a/character/rank.js b/character/rank.js index 297a0629d..76fc59236 100644 --- a/character/rank.js +++ b/character/rank.js @@ -998,6 +998,7 @@ window.noname_character_rank={ 'zangba', 'junk_zhangrang', 'ol_guohuai', + 'junk_simayi', ], rarity:{ legend:[ @@ -1550,6 +1551,7 @@ window.noname_character_rank={ 'caiyong', 'xin_chengpu', 'junk_zhangrang', + 'junk_simayi', ], } }; diff --git a/character/refresh.js b/character/refresh.js index f68cae3b9..51f020b6b 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -577,7 +577,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ui.cardPile.insertBefore(cards[0],ui.cardPile.firstChild); game.updateRoundNumber(); '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' if(result.cards&&result.cards.length){ if(get.type2(result.cards[0])=='trick'){ diff --git a/character/sp2.js b/character/sp2.js index 3b2506a41..90eafcdea 100644 --- a/character/sp2.js +++ b/character/sp2.js @@ -766,6 +766,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, ai:{ order:9, + threaten:1.7, result:{ target:function(player,target){ if(target.hasSkillTag('nogain')) return -0.1; diff --git a/character/yijiang.js b/character/yijiang.js index 60428c4c8..16b4ec5a8 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -10213,9 +10213,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } } 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 false; diff --git a/game/asset.js b/game/asset.js index 662ee6007..ac5a0d89c 100644 --- a/game/asset.js +++ b/game/asset.js @@ -1,5 +1,5 @@ window.noname_asset_list=[ - 'v1.9.108.3.2', + 'v1.9.108.3.3', 'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_online.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_yuhuoshiyuan.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/tangzi.jpg', 'image/splash/boss.jpg', diff --git a/game/game.js b/game/game.js index 6b25d7807..ae7837098 100644 --- a/game/game.js +++ b/game/game.js @@ -15109,7 +15109,10 @@ 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){ player.changeHp(num,false); game.broadcastAll(function(player){ @@ -15968,8 +15971,6 @@ } if(!player.isUnseen(2)){ 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.update(); } @@ -44847,7 +44848,8 @@ } else{ 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); if(game.getIdentityList2){ @@ -51039,7 +51041,7 @@ table.style.position='relative'; var listi=['flower','egg']; for(var i=0;i.card>.info>span, 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), .unseen2>.avatar2,.unseen2>.name2 { opacity: 0 !important; diff --git a/mode/brawl.js b/mode/brawl.js index 2ebaae8ee..c14ee194d 100644 --- a/mode/brawl.js +++ b/mode/brawl.js @@ -1824,10 +1824,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ game.identityVideoName='同将模式'; var target=(_status.mode=='zhong')?game.zhong:game.zhu; if(get.config('double_character')){ - target.init(game.me.name,game.me.name2); + target.init(game.me.name1,game.me.name2); } else{ - target.init(game.me.name); + target.init(game.me.name1); } target.hp++; target.maxHp++; @@ -1839,10 +1839,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ } else{ if(get.config('double_character')){ - player.init(game.me.name,game.me.name2); + player.init(game.me.name1,game.me.name2); } 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)); } } - } + }, + chooseCharacterBefore:function(){ + if(_status.mode=='purple') _status.mode='normal'; + }, } }, jiazuzhizheng:{ diff --git a/mode/guozhan.js b/mode/guozhan.js index 87b441f95..d2c15bc29 100644 --- a/mode/guozhan.js +++ b/mode/guozhan.js @@ -30,9 +30,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ onreinit:function(){ var pack=lib.characterPack.mode_guozhan; for(var i in pack){ - if(!lib.configOL.onlyguozhan){ - if(lib.character[i.slice(3)]) continue; - } lib.character[i]=pack[i]; if(!lib.character[i][4]){ lib.character[i][4]=[]; @@ -271,6 +268,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ ], '2':[ 'gz_re_lusu','gz_zhangzhang', + 'gz_jin_simashi','gz_jin_zhangchunhua', ], '1':[ '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_xiaoqiao','gz_zhoutai','gz_lvfan', 'gz_beimihu','gz_mateng','gz_jiaxu', + 'gz_jin_wangyuanji', ], '7':[ 'gz_zhanghe','gz_jianggan','gz_simayi', 'gz_weiyan','gz_huangyueying','gz_zhugeliang', 'gz_lingtong','gz_sunshangxiang','gz_sunce', 'gz_re_yuanshao','gz_yuanshu','gz_hetaihou', + 'gz_jin_simashi', ], '6':[ '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_wuguotai','gz_luxun','gz_taishici', 'gz_zhangjiao','gz_zuoci','gz_pangde', + 'gz_jin_zhangchunhua', ], '3':[ 'gz_xiahoudun','gz_yuejin','gz_caoren', 'gz_machao','gz_masu','gz_fazheng', 'gz_zhangzhang','gz_lvmeng','gz_huanggai', 'gz_jiling','gz_lvbu','gz_dongzhuo', + 'gz_jin_xiahouhui','gz_jin_simazhao', ], '2':[ 'gz_cuimao','gz_xiahouyuan','gz_caohong', 'gz_zhurong','gz_zhurong','gz_jiangfei', 'gz_xusheng','gz_dingfeng','gz_sunjian', 'gz_zhangren','gz_kongrong','gz_yanwen', + 'gz_jin_simayi', ], '1':[ 'gz_zangba','gz_bianfuren','gz_xuzhu', @@ -6676,18 +6679,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ uiintro.add('
出牌时限:'+lib.configOL.choose_timeout+'秒'); uiintro.add('
国战牌堆:'+(lib.configOL.guozhanpile?'开启':'关闭')); uiintro.add('
鏖战模式:'+(lib.configOL.aozhan?'开启':'关闭')); - uiintro.add('
观看下家副将:'+(lib.configOL.viewnext?'开启':'关闭')); - last=uiintro.add('
国战武将:'+(lib.configOL.onlyguozhan?'开启':'关闭')); - if(!lib.configOL.onlyguozhan){ - // uiintro.add('
屏蔽弱将:'+(lib.configOL.ban_weak?'开启':'关闭')); - // last=uiintro.add('
屏蔽强将:'+(lib.configOL.ban_strong?'开启':'关闭')); - if(lib.configOL.banned.length){ - last=uiintro.add('
禁用武将:'+get.translation(lib.configOL.banned)); - } - if(lib.configOL.bannedcards.length){ - last=uiintro.add('
禁用卡牌:'+get.translation(lib.configOL.bannedcards)); - } - } + last=uiintro.add('
观看下家副将:'+(lib.configOL.viewnext?'开启':'关闭')); last.style.paddingBottom='8px'; }, addRecord:function(bool){ @@ -6755,6 +6747,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ case 'unknown':list[i]='未知';break; case 'ye':list[i]='野心家';break; case 'qun':list[i]+='雄';break; + case 'key':list[i]='Key';break; + case 'jin':list[i]+='朝';break; default:list[i]+='国'; } } diff --git a/mode/versus.js b/mode/versus.js index bea1884b9..57a406828 100644 --- a/mode/versus.js +++ b/mode/versus.js @@ -5,14 +5,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ init:function(){ if(get.config('versus_mode')=='jiange'){ 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'){ lib.characterPack.mode_versus={ @@ -653,6 +645,18 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ 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' for(var i in lib.skill){ 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_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_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_yunpingqinglong:['male','shu',4,['boss_jiguan','boss_mojianjg'],['jiangemech','hiddenboss','bossallowed'],'shu'], + boss_jileibaihu:['male','shu',5,['boss_jiguan','boss_zhenwei','boss_benlei'],['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_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_shihuosuanni:['male','wei',3,['boss_jiguan','boss_lianyujg'],['jiangemech','hiddenboss','bossallowed'],'wei'], - boss_lieshiyazi:['male','wei',4,['boss_jiguan','boss_nailuo'],['jiangemech','hiddenboss','bossallowed'],'wei'], + boss_shihuosuanni:['male','wei',5,['boss_jiguan','boss_lianyujg'],['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:[ ["spade",7,"sha"], @@ -4231,7 +4240,28 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ boss_tuntianchiwen:'吞天螭吻', boss_shihuosuanni:'食火狻猊', boss_lieshiyazi:'裂石睚眦', + + boss_kumuyuanrang:'枯目元让', + boss_baijiwenyuan:'百计文远', + boss_yihanyunchang:'翊汉云长', + boss_fuweizilong:'扶危子龙', + boss_xiaorui:'骁锐', + boss_xiaorui2:'骁锐', + boss_xiaorui_info:'友方角色于其回合内使用【杀】造成伤害后,其使用【杀】的次数+1。', + boss_huchen:'虎臣', + boss_huchen_info:'锁定技,你摸牌阶段摸牌数+X(X为你击杀的敌方角色数)。', + 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_info:'结束阶段,你可以对所有敌方角色造成1点火焰伤害', boss_didongjg:'地动', @@ -4243,11 +4273,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ boss_lingyu:'灵愈', boss_lingyu_info:'结束阶段,你可以将自己的武将牌翻面,然后令所有已受伤的己方其他角色回复1点体力', boss_tianyun:'天陨', - boss_tianyun_info:'结束阶段,你可以失去1点体力,然后令一名敌方角色受到2点火焰伤害并弃置其装备区里的所有牌', + boss_tianyun_info:'结束阶段,你可以失去1点体力,然后令一名敌方角色随机受到2~3点火焰伤害并弃置其装备区里的所有牌。', boss_zhenwei:'镇卫', boss_zhenwei_info:'锁定技,其他己方角色的防御距离+1', boss_benlei:'奔雷', - boss_benlei_info:'锁定技,准备阶段,对敌方攻城器械造成2点雷电伤害', + boss_benlei_info:'锁定技,准备阶段,你对敌方攻城器械随机造成2~3点雷电伤害。', boss_nailuo:'奈落', boss_nailuo_info:'结束阶段,你可以将你的武将牌翻面,令所有敌方角色弃置装备区内的所有牌', boss_tanshi:'贪食', @@ -4263,11 +4293,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ boss_gongshenjg:'工神', boss_gongshenjg_info:'结束阶段,若已方器械已受伤,你可以为其回复一点体力;否则你可以对敌方器械造成一点火焰伤害', boss_zhinang:'智囊', - boss_zhinang_info:'准备阶段,你可以亮出牌堆顶的三张牌,你可以将其中锦囊或装备牌交给一名己方角色', + boss_zhinang_info:'准备阶段,你可以亮出牌堆顶的五张牌,你可以将其中锦囊或装备牌交给一名己方角色', boss_jingmiao:'精妙', boss_jingmiao_info:'锁定技,每当敌方角色使用的无懈可击生效后,你令其失去1点体力', boss_biantian:'变天', - boss_biantian_info:'锁定技,准备阶段,你进行一次判定,若为红色,直到下个回合开始前,令敌方所有角色处于“狂风”状态,若为黑桃,直到下个回合开始前,令己方所有角色处于“大雾”状态', + boss_biantian_info:'锁定技,准备阶段,你进行一次判定,若为红色,直到下个回合开始前,令敌方所有角色处于“狂风”状态,若为黑色,直到下个回合开始前,令己方所有角色处于“大雾”状态', boss_biantian2:'大雾', boss_biantian3:'狂风', boss_lingfeng:'灵锋', @@ -4558,7 +4588,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ } }, xionghuangjiu:{ - trigger:{source:'damageBegin'}, + trigger:{source:'damageBegin1'}, filter:function(event,player){ 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:{ trigger:{player:'phaseEnd'}, direct:true, @@ -4978,13 +5223,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, boss_chiying:{ audio:2, - trigger:{global:'damageBegin'}, + trigger:{global:'damageBegin4'}, forced:true, filter:function(event,player){ if(event.num<=1) return false; return event.player.isFriendOf(player); }, - priority:-11, content:function(){ trigger.num=1; } @@ -5086,7 +5330,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }); if(target){ player.line(target,'thunder'); - target.damage(2,'thunder'); + target.damage(Math.random()>0.4?2:3,'thunder'); } }, ai:{ @@ -5273,7 +5517,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ frequent:true, content:function(){ "step 0" - event.cards=get.cards(3); + event.cards=get.cards(5); event.cards2=[]; for(var i=0;i0.4?2:3,'fire'); } "step 3" if(event.target){