From 6150d8d812bff63abc51e51e488a03372e50ed4b Mon Sep 17 00:00:00 2001 From: libccy Date: Mon, 1 May 2017 15:48:29 +0800 Subject: [PATCH] y --- card/sp.js | 2 +- character/hearth.js | 201 +++++++++++++++++++++++++++++++++++++++---- character/rank.js | 5 ++ character/refresh.js | 2 +- game/asset.js | 1 + game/game.js | 7 +- mode/boss.js | 12 +-- 7 files changed, 204 insertions(+), 26 deletions(-) diff --git a/card/sp.js b/card/sp.js index 7f468e6cc..aad94b3fb 100644 --- a/card/sp.js +++ b/card/sp.js @@ -550,7 +550,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ 'step 0' player.chooseToUse({name:'jinchan'},'是否对'+get.translation(trigger.card)+'使用【金蝉脱壳】?').set('ai1',function(card){ return _status.event.bool; - }).set('bool',-ai.get.effect(player,trigger.card,trigger.player,player)); + }).set('bool',-get.effect(player,trigger.card,trigger.player,player)); trigger.jinchan=true; 'step 1' delete trigger.jinchan; diff --git a/character/hearth.js b/character/hearth.js index cf8757df8..43f366050 100644 --- a/character/hearth.js +++ b/character/hearth.js @@ -80,7 +80,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ hs_hallazeal:['male','wei',4,['shengteng','yuansu']], hs_enzoth:['male','qun',4,['mengye']], hs_walian:['male','shu',4,['wzhanyi']], - // hs_pengpeng:['male','qun',4,['zhadan']], + hs_pengpeng:['male','qun',4,['yindan']], // hs_yashaji:['male','wei',3,[]], // hs_wolazi:['male','wei',3,[]], @@ -108,6 +108,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ hs_zhihuanhua:['fmale','wei',3,['huanjue']], hs_shirencao:['male','wu',3,['srjici']], hs_kaituozhe:['female','wei',3,['tansuo','yinzong']], + + hs_fachaotuteng:['male','wei',3,['xiyong']], + hs_huolituteng:['male','wei',3,['hllingxi']], + hs_manyututeng:['male','wu',3,['zhaochao']], + hs_tgolem:['male','wu',4,['xinwuyan','guozaix']], }, characterIntro:{ hs_jaina:'戴林·普罗德摩尔之女。 在吉安娜成年早期,她致力于阻止将引发第三次战争的天灾瘟疫传播,当战况加剧后,吉安娜获得了新部落大酋长萨尔的信任,成为团结艾泽拉斯各族携手对抗燃烧军团的关键人物。当战争结束后,吉安娜管理着塞拉摩岛,致力于促进部落与联盟间的关系。吉安娜的和平立场与性格在接任萨尔成为部落大酋长的加尔鲁什·地狱咆哮以一颗魔法炸弹夷平塞拉摩后改变了。身为肯瑞托的新领袖,她拥有让加尔鲁什为他酿成的惨剧付出血的代价的权力与决心。', @@ -188,6 +193,164 @@ game.import('character',function(lib,game,ui,get,ai,_status){ hs_malfurion:['hs_malorne'], }, skill:{ + yindan:{ + enable:'phaseUse', + filterCard:{suit:'spade'}, + check:function(card){ + return 8-get.value(card); + }, + usable:1, + filter:function(event,player){ + return player.countCards('he',{suit:'spade'}); + }, + position:'he', + content:function(){ + 'step 0' + player.loseHp(); + 'step 1' + var cards=[]; + for(var i=0;i<2;i++){ + cards.push(game.createCard('hsjixie_zhadan')); + } + player.gain(cards,'gain2'); + }, + ai:{ + order:7, + result:{ + player:function(player,target){ + if(player.hp>=3) return 1; + if(player.hp==2&&game.hasPlayer(function(current){ + return get.damageEffect(current,player,player,'fire')>0&¤t.hp==1; + })){ + return 1; + } + return 0; + } + } + } + }, + hllingxi:{ + enable:'phaseUse', + filter:function(event,player){ + return game.hasPlayer(function(target){ + return lib.skill.hllingxi.filterTarget(null,player,target); + }); + }, + filterTarget:function(card,player,target){ + return target!=player&&target.isDamaged()&&target.countCards('he')>=2; + }, + content:function(){ + 'step 0' + target.chooseToDiscard('he',2,true); + 'step 1' + target.recover(); + }, + group:'hllingxi_end', + subSkill:{ + end:{ + trigger:{player:'phaseEnd'}, + frequent:true, + filter:function(event,player){ + return player.isDamaged(); + }, + content:function(){ + player.recover(); + } + } + }, + ai:{ + order:6, + result:{ + target:function(player,target){ + var nc=target.countCards('he'); + if(target.hasSkillTag('maixie_hp')){ + if(nc>=3) return 1; + if(target.hp==1) return 1; + return 0; + } + if(nc>=4){ + if(target.hp<=2) return 1; + return 0; + } + else if(nc==3){ + if(target.hp==1) return 1; + if(target.hp>=4) return -1; + return 0; + } + else{ + if(target.hp==1) return 0; + return -1; + } + } + } + } + }, + zhaochao:{ + trigger:{player:'phaseEnd'}, + forced:true, + filter:function(event,player){ + return player.getEnemies().length>0; + }, + content:function(){ + 'step 0' + event.targets=player.getEnemies(); + player.addSkill('zhaochao2'); + player.useCard({name:'sha'},event.targets.randomRemove()); + 'step 1' + player.removeSkill('zhaochao2'); + if(player.storage.zhaochao2&&event.targets.length){ + player.useCard({name:'sha'},event.targets.randomRemove()); + delete player.storage.zhaochao2; + } + }, + ai:{ + threaten:1.7 + } + }, + zhaochao2:{ + trigger:{player:'shaMiss'}, + forced:true, + popup:false, + silent:true, + filter:function(event){ + return event.getParent(2).name=='zhaochao'; + }, + content:function(){ + player.storage.zhaochao2=true; + } + }, + xiyong:{ + trigger:{player:'phaseEnd'}, + frequent:true, + content:function(){ + 'step 0' + player.draw(); + 'step 1' + if(Array.isArray(result)&&result.length){ + var gained=result[0]; + if(lib.filter.cardEnabled(gained,target)){ + var next=player.chooseToUse(); + next.filterCard=function(card){ + return card==gained; + }; + next.prompt='是否使用'+get.translation(gained)+'?'; + } + else{ + event.finish(); + } + } + else{ + event.finish(); + } + 'step 2' + if(result.bool){ + player.draw(); + } + }, + ai:{ + threaten:1.6 + } + }, srjici:{ trigger:{source:'damageEnd'}, forced:true, @@ -295,7 +458,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ event.card=card; player.chooseCardButton(true,'猜测哪张牌为'+get.translation(target)+'的手牌', [card,game.createCard(list.randomRemove()),game.createCard(list.randomRemove())].randomSort()).ai=function(button){ - if(ai.get.value(button.link)<0) return -10; + if(get.value(button.link)<0) return -10; if(!_status.event.rand) _status.event.rand=Math.random(); if(_status.event.rand<0.7){ return button.link==card?1:-1; @@ -388,7 +551,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ viewAs:{name:links[0][2],nature:links[0][3]}, popname:true, ai1:function(card){ - return 6-ai.get.value(card); + return 6-get.value(card); } } }, @@ -588,10 +751,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 0' player.chooseToDiscard('he',get.prompt('zhuilie')).set('ai',function(card){ if(player.hp>=4||(player.hasSha()&&player.hasShan())){ - return 6-ai.get.value(card); + return 6-get.value(card); } if(player.hasSha()||player.hasShan()){ - return 3-ai.get.value(card); + return 3-get.value(card); } return 0; }).logSkill='zhuilie'; @@ -671,7 +834,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var dialog=ui.create.dialog(get.prompt('kekao'),[list.randomGets(3),'vcard'],'hidden'); player.chooseButton(dialog).ai=function(button){ var name=button.link[2] - var num=Math.random()*ai.get.value({name:name}); + var num=Math.random()*get.value({name:name}); if(lib.card[name].selectTarget==-1){ return num/10; } @@ -768,7 +931,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var dialog=ui.create.dialog(get.prompt('kqizhou'),[list,'vcard'],'hidden'); var shui=(player.hp<=1&&player.maxHp>=3); var tu=game.hasPlayer(function(current){ - return current.hp==1&&ai.get.attitude(player,current)>0; + return current.hp==1&&get.attitude(player,current)>0; }); player.chooseButton(dialog).ai=function(button){ if(!player.hasFriend()&&button.link[2]=='hsqizhou_tu') return 0; @@ -886,13 +1049,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.chooseTarget(get.prompt('mengye'),function(card,player,target){ return target.countCards('h')>0; }).ai=function(target){ - if(target.hasSkillTag('nodu')) return ai.get.attitude(player,target)*1.5; + if(target.hasSkillTag('nodu')) return get.attitude(player,target)*1.5; if(target.hasCard(function(card){ return card.name!='du'; })){ - return -ai.get.attitude(player,target); + return -get.attitude(player,target); } - return -ai.get.attitude(player,target)/5; + return -get.attitude(player,target)/5; } 'step 1' if(result.bool){ @@ -1330,7 +1493,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 1' if(player.countCards('h')&&event.cardname){ player.chooseCard('是否将一张手牌转化为'+get.translation(event.cardname)+'?','h').ai=function(card){ - return ai.get.value({name:event.cardname})-ai.get.value(card); + return get.value({name:event.cardname})-get.value(card); } } else{ @@ -5295,7 +5458,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ check:function(event,player){ var eff=get.effect(event.targets[0],event.card,event.player,player); if(eff<=0) return true; - if(ai.get.value(event.card,event.player,'raw')<5){ + if(get.value(event.card,event.player,'raw')<5){ return Math.random()<0.5; } return false; @@ -5338,7 +5501,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } player.chooseButton(true,['幻觉',[list,'vcard']]).ai=function(button){ var card={suit:trigger.card.suit,number:trigger.card.number,name:button.link[2]}; - return ai.get.effect(trigger.targets[0],card,trigger.player,player); + return get.effect(trigger.targets[0],card,trigger.player,player); }; 'step 1' if(result.bool){ @@ -6381,6 +6544,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var targets=target.getEnemies(); if(targets.length){ var target2=targets.randomGet(); + player.line(target2,'fire'); target2.addExpose(0.2); target2.damage('fire'); } @@ -7227,15 +7391,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){ hs_fachaotuteng:'法潮图腾', hs_huolituteng:'活力图腾', hs_manyututeng:'蛮鱼图腾', + hs_tgolem:'图腾魔像', + zhaochao:'招潮', zhaochao_info:'锁定技,结束阶段,你视为对一名随机敌人使用一张杀;若此杀被闪避,你视为对另一名随机敌人使用一张杀', hllingxi:'灵息', - hllingxi_info:'出牌阶段,你可以令一名已受伤角色弃置两张牌并回复一点体力(一回合内不能对相同角色发动两次)', + hllingxi_info:'出牌阶段,你可以令一名已受伤的其他角色弃置两张牌并回复一点体力;结束阶段,你可以回复一点体力', xiyong:'汐涌', - xiyong_info:'锁定技,结束阶段,你摸一张牌并可以使用之,若此使用了此牌,你再摸一张牌', + xiyong_info:'结束阶段,你可以摸一张牌并可以使用之,若你使用了此牌,你再摸一张牌', hsjixie:'机械', hsjixie_zhadan:'炸弹机器人', + hsjixie_zhadan_pop:'炸弹', hsjixie_zhadan_info:'出牌阶段对自己使用,对一名随机敌人造成一点火属性伤害', yindan:'引弹', yindan_info:'出牌阶段限一次,你可以弃置一张黑桃牌并流失一点体力,然后获得两张炸弹机器人', @@ -7531,8 +7698,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ guozai2_bg:'载', guozai_info:'出牌阶段限一次,你可将手牌补至四张,并于此阶段结束时弃置等量的牌', guozai_info_alter:'出牌阶段限一次,你可将手牌补至三张,并于此阶段结束时弃置等量的牌', - guozaix:'重载', - guozaix2:'重载', + guozaix:'过载', + guozaix2:'过载', guozaix2_bg:'载', guozaix_info:'出牌阶段限两次,你可将手牌补至四张,并于此阶段结束时弃置等量的牌', hanshuang:'寒霜', diff --git a/character/rank.js b/character/rank.js index 19d0d4031..e9e4fc974 100644 --- a/character/rank.js +++ b/character/rank.js @@ -55,6 +55,8 @@ window.noname_character_rank={ 'swd_shuwaner', ], a:[ + 'hs_pengpeng', + 'hs_manyututeng', 'hs_amala', 'hs_kaituozhe', 'hs_yinggencao', @@ -163,6 +165,7 @@ window.noname_character_rank={ 'hs_zhihuanhua', ], am:[ + 'hs_fachaotuteng', 'huangfusong', 'hs_shizugui', 'hs_shuiwenxuejia', @@ -266,6 +269,8 @@ window.noname_character_rank={ 'hs_mojinbaozi', ], bp:[ + 'hs_tgolem', + 'hs_huolituteng', 'hs_selajin', 'hs_hemite', 'zoushi', diff --git a/character/refresh.js b/character/refresh.js index 48e7223e9..9ef99413e 100644 --- a/character/refresh.js +++ b/character/refresh.js @@ -439,7 +439,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.judge(function(card){ if(get.color(card)=='red') return _status.event.eff; return 0; - }).set('eff',ai.get.damageEffect(trigger.source,player,player)); + }).set('eff',get.damageEffect(trigger.source,player,player)); "step 2" if(result.color=='black'){ if(trigger.source.countCards('he')){ diff --git a/game/asset.js b/game/asset.js index 2d0059796..a040dcb8d 100644 --- a/game/asset.js +++ b/game/asset.js @@ -440,6 +440,7 @@ window.noname_asset_list=[ 'image/character/hs_pyros1.jpg', 'image/character/hs_pyros2.jpg', 'image/character/hs_tanghangu.jpg', + 'image/character/hs_tgolem.jpg', 'image/character/hs_totemic.jpg', 'image/character/hs_trueheart.jpg', 'image/character/hs_tyrande.jpg', diff --git a/game/game.js b/game/game.js index 983ce3309..1da8235a3 100644 --- a/game/game.js +++ b/game/game.js @@ -10896,7 +10896,12 @@ if(get.type(event.card)=='equip'&&lib.config.hide_card_prompt_equip); else if(get.type(event.card)=='basic'&&lib.config.hide_card_prompt_basic); else{ - player.popup(event.card.name,'metal'); + if(lib.translate[event.card.name+'_pop']){ + player.popup(lib.translate[event.card.name+'_pop'],'metal'); + } + else{ + player.popup(event.card.name,'metal'); + } } } if(event.audio===false){ diff --git a/mode/boss.js b/mode/boss.js index 6e5c771b9..b460542e2 100644 --- a/mode/boss.js +++ b/mode/boss.js @@ -1492,7 +1492,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ player.chooseTarget(function(card,player,target){ return target.side!=player.side; }).ai=function(target){ - return ai.get.damageEffect(target,player,player,'fire'); + return get.damageEffect(target,player,player,'fire'); } 'step 1' if(result.bool){ @@ -1501,8 +1501,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ event.target.chooseToDiscard('he',{color:'red'},'弃置一张红色牌或受到一点火焰伤害').ai=function(card){ var player=_status.event.player; var source=_status.event.parent.player; - if(ai.get.damageEffect(player,source,player,'fire')>=0) return 0; - return 8-ai.get.value(card); + if(get.damageEffect(player,source,player,'fire')>=0) return 0; + return 8-get.value(card); } } else{ @@ -1517,7 +1517,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ order:6, result:{ target:function(player,target){ - if(target.isLinked()&&player.isLinked()&&ai.get.damageEffect(player,player,player,'fire')<0) return -1; + if(target.isLinked()&&player.isLinked()&&get.damageEffect(player,player,player,'fire')<0) return -1; return 1; } } @@ -1541,7 +1541,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ return 0.5; } if(get.tag(card,'damage')||get.tag(card,'recover')){ - if(game.boss.isLinked()&&ai.get.damageEffect(game.boss,player,game.boss,'fire')<0){ + if(game.boss.isLinked()&&get.damageEffect(game.boss,player,game.boss,'fire')<0){ if(game.hasPlayer(function(current){ return current.isEnemyOf(game.boss)&¤t.isLinked(); })){ @@ -1764,7 +1764,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ if(target.maxHp-target.hp>=2){ num=1.5; } - return 1.5*ai.get.recoverEffect(target,player,target); + return 1.5*get.recoverEffect(target,player,target); } } }