diff --git a/card/standard.js b/card/standard.js index ecb4fa68b..009bfc9e2 100644 --- a/card/standard.js +++ b/card/standard.js @@ -1353,7 +1353,7 @@ card.standard={ trigger:{player:'shaMiss'}, direct:true, filter:function(event,player){ - return player.canUse('sha',event.target); + return player.canUse('sha',event.target)&&player.hasSha(); }, content:function(){ "step 0" diff --git a/character/hearth.js b/character/hearth.js index 378e9b078..83967f2b3 100644 --- a/character/hearth.js +++ b/character/hearth.js @@ -3246,7 +3246,7 @@ character.hearth={ ai:{ nohujia:true, skillTagFilter:function(player){ - return player.hp>1; + return player.hp>player.num('h'); }, threaten:function(player,target){ if(!target.hujia) return 0.8; @@ -3263,6 +3263,7 @@ character.hearth={ }, dunji:{ enable:'phaseUse', + usable:1, filter:function(event,player){ return player.hujia?true:false; }, @@ -3282,7 +3283,9 @@ character.hearth={ order:9, result:{ target:function(player,target){ - return ai.get.damageEffect(target,player,target)+0.5; + var eff=ai.get.damageEffect(target,player,target)+0.5; + if(eff>0&&eff<=0.5) return 0; + return eff; } } } @@ -5454,7 +5457,7 @@ character.hearth={ kuixin_info:'回合结束阶段,你可以将你的手牌与一名其他角色交换(手牌数之差不能多于1)', lianzhan:'连斩', lianzhan_info:'出牌阶段结束时,你可以摸X张牌,X为你本回合使用的卡牌数', - yanshu:'炎爆', + yanshu:'炎舞', yanshu_info:'每回合限一次,当你弃置非基本牌后,你可以获得一张流星火雨', bingshuang:'冰枪', bingshuang_info:'你使用锦囊牌造成伤害后,可令目标摸两张牌并翻面', @@ -5472,9 +5475,9 @@ character.hearth={ xinci:'心刺', xinci_info:'出牌阶段限一次,你可以弃置一张黑色牌令一名角色流失一点体力', zhongjia:'战甲', - zhongjia_info:'锁定技,每当你受到一次伤害,你获得一点护甲;当你的体力值大于1时,你的护甲不为你抵挡伤害', + zhongjia_info:'锁定技,每当你受到一次伤害,你获得一点护甲;当你的体力值大于手牌数时,你的护甲不为你抵挡伤害', dunji:'盾击', - dunji_info:'出牌阶段,你可以失去你的所有护甲,并对等量的其他角色各造成一点伤害', + dunji_info:'出牌阶段限一次,你可以失去你的所有护甲,并对等量的其他角色各造成一点伤害', qiaodong:'巧动', qiaodong_info:'你可以将一张装备牌当作闪使用或打出', fengxian:'奉献', diff --git a/character/rank.js b/character/rank.js index 91aa0869a..6258a6b1b 100644 --- a/character/rank.js +++ b/character/rank.js @@ -221,9 +221,11 @@ window.characterRank={ 'yxs_zhangsanfeng', 'yxs_nandinggeer', 'hs_kazhakusi', + 'swd_yeyaxi', ], bp:[ 'dongbai', + 'swd_moye', 'guohuanghou', 'yxs_zhaoyong', 'yxs_yangguang', @@ -375,7 +377,6 @@ window.characterRank={ 'handang', 'swd_youzhao', 'swd_fu', - 'swd_yeyaxi', 'yxs_chengyaojin', 'yxs_yujix', 'swd_jialanduo', @@ -411,7 +412,6 @@ window.characterRank={ 'daqiao', 'huatuo', 'swd_luchengxuan', - 'swd_moye', 'sp_zhangjiao', 'dongzhuo', 'fazheng', diff --git a/character/swd.js b/character/swd.js index c15fee30e..8678e93b6 100644 --- a/character/swd.js +++ b/character/swd.js @@ -31,14 +31,14 @@ character.swd={ swd_luchengxuan:['male','wu',4,['ljifeng','lxianglong']], swd_xiarou:['female','shu',3,['xianghui','huiqi']], - swd_moye:['female','wu',3,['rexue','liuli']], + swd_moye:['female','wu',3,['rexue','liuli','senluo']], swd_zhaoyun:['male','shu',4,['longdan','pozhen','tanlin']], swd_hengai:['female','shu',3,['funiao','ningxian','hlingbo']], swd_duanmeng:['female','shu',4,['xuanying','lieren']], swd_jiangwu:['male','shu',4,['yijue','dangping']], swd_tuwei:['male','shu',3,['zhanlu','susheng']], - swd_yeyaxi:['female','shu',3,['rexue','huopu']], + swd_yeyaxi:['female','shu',3,['rexue','huopu','shenyan']], swd_muyun:['male','wei',4,['zhuhai','polang','jikong']], swd_lanyin:['female','wei',3,['xingdian','yulin','luomei']], @@ -87,7 +87,7 @@ character.swd={ swd_hanluo:['male','qun',5,['hzhenwei']], - swd_fu:['male','qun',5,['yudun','paoxiao']], + swd_fu:['male','qun',5,['yudun']], swd_linyue:['male','wei',3,['zhenjiu','lmazui']], swd_zidashu:['male','wu',3,['shoulie','hudun']], swd_maixing:['male','wu',3,['toudan','shending']], @@ -143,6 +143,100 @@ character.swd={ swd_luchengxuan:['swd_xiarou'], }, skill:{ + shenyan:{ + trigger:{source:'damageBegin'}, + skillAnimation:true, + animationColor:'fire', + filter:function(event,player){ + return !player.storage.shenyan&&event.nature=='fire'; + }, + intro:{ + content:'limited' + }, + mark:true, + logTarget:'player', + init:function(player){ + player.storage.shenyan=false; + }, + check:function(event,player){ + if(ai.get.attitude(player,event.player)>=0) return 0; + if(player.hasUnknown()) return 0; + var num=0; + for(var i=0;i0){ + num++; + } + else if(eff<0){ + num--; + } + } + } + return num>0; + }, + content:function(){ + trigger.num++; + player.addSkill('shenyan2'); + player.storage.shenyan=true; + player.unmarkSkill('shenyan'); + player.storage.shenyan2=[]; + for(var i=0;i0; + }, + content:function(){ + 'step 0' + target.draw(); + 'step 1' + target.chooseToDiscard(2,'h',true); + }, + selectTarget:-1, + ai:{ + order:9, + result:{ + target:-1 + } + } + }, xuanying:{ subSkill:{ sha:{ @@ -944,23 +1038,39 @@ character.swd={ if(get.type(card,'trick')=='trick') return false; }, }, - enable:['chooseToUse','chooseToRespond'], + enable:'chooseToUse', filterCard:function(card){ return get.type(card,'trick')=='trick'; }, selectCard:2, viewAs:{name:'sha'}, + viewAsFilter:function(player){ + if(player.num('h',{type:['trick','delay']})<2) return false; + }, check:function(){return 1}, ai:{ - effect:{ - target:function(card,player,target,current){ - if(get.tag(card,'respondSha')&¤t<0) return 0.6 - } + skillTagFilter:function(player,tag,arg){ + if(arg!='use') return false; + if(player.num('h',{type:['trick','delay']})<2) return false; }, respondSha:true, - order:4, + order:3.1, useful:-1, value:-1 + }, + group:'yudun_count', + subSkill:{ + count:{ + trigger:{player:'useCard'}, + forced:true, + popup:false, + filter:function(event,player){ + return event.skill=='yudun'&&_status.currentPhase==player; + }, + content:function(){ + player.getStat().card.sha--; + } + } } }, guozao:{ @@ -2501,6 +2611,9 @@ character.swd={ if(!player.storage.pozhou){ player.unmarkSkill('pozhou'); } + else{ + player.updateMarks(); + } var target=trigger.player; var list=[]; for(var i=0;i=4){ + this.node.name.classList.add('long'); + } if(!lib.config.show_name||lib.config.game=='hs'){ this.node.name.style.display='none'; } @@ -28389,6 +28392,11 @@ } // var name=get.translation(item); node.node.name.innerHTML=get.slimName(item); + if(node.node.name.querySelectorAll('br').length>=4){ + node.node.name.classList.add('long'); + node.addEventListener('mouseenter',ui.click.buttonnameenter); + node.addEventListener('mouseleave',ui.click.buttonnameleave); + } // for(var i=0;i'; // } @@ -28755,6 +28763,42 @@ game.saveConfig('favouriteCharacter',lib.config.favouriteCharacter); } e.stopPropagation(); + }, + buttonnameenter:function(){ + if(this.buttonscrollinterval){ + clearInterval(this.buttonscrollinterval); + } + var node=this.node.name; + if(node.offsetHeight=node.scrollHeight){ + clearInterval(that.buttonscrollinterval); + delete that.buttonscrollinterval; + } + else{ + node.scrollTop+=2; + } + },16); + } + }, + buttonnameleave:function(){ + if(this.buttonscrollinterval){ + clearInterval(this.buttonscrollinterval); + } + var node=this.node.name; + if(node.offsetHeight1&& @@ -33090,6 +33134,9 @@ uiintro.add('
来源:'+get.translation(lib.card[name].derivationpack+'_card_config')+'包
'); } } + else{ + uiintro.add('
'+get.translation(lib.card[name].type)+'牌
'); + } uiintro._place_text=uiintro.add('
'+lib.translate[name+'_info']+'
'); } uiintro.add(ui.create.div('.placeholder.slim')); diff --git a/layout/default/layout.css b/layout/default/layout.css index bcc377514..9ccf84885 100644 --- a/layout/default/layout.css +++ b/layout/default/layout.css @@ -857,6 +857,10 @@ div:not(.handcards)>.card>.info>span, .button.character.longcharacter>.name{ overflow: visible; } +.dialog .buttons>.button.character>.name.long{ + transform: scale(0.95); + transform-origin: top left; +} .card.center{top:calc(50% - 52px);left:calc(50% - 52px);} .card>.background{font-size: 80px;height: 80px;padding-top: 14px;text-align: center;} .equips>.card>.background{font-size: 36px;height: 36px;padding-top: 3px;} @@ -1091,6 +1095,12 @@ margin-bottom: 5px; #arena.slim_player .player.minskin>.name{ top:17px; } +#arena .player.minskin>.name.long, +#arena.slim_player .player.minskin>.name.long{ + transform: scale(0.9); + transform-origin: top left; + top: 13px; +} #arena .player.linked.minskin>.name, #arena.slim_player .player.linked.minskin>.name{ transform: rotate(90deg) translate(81px,-66px);