diff --git a/CHANGELOG.MD b/CHANGELOG.MD index f46f9e750..7f0d550b9 100644 --- a/CHANGELOG.MD +++ b/CHANGELOG.MD @@ -1,12 +1,11 @@ 1.6.1 -* bug修复 -* 本轮不无懈按钮 -* 编辑牌堆功能、牌堆按钮 -皮肤菜单 +bug修复 +本轮不无懈按钮 +编辑牌堆功能、牌堆按钮 +皮肤菜单(右键) 珠联璧合提示 选将人数、高亮颜色选项 -* 收藏录像 -* boss武将包 -* 标记数量显示 +收藏录像 +boss武将包 +标记数量显示 精简版 -利奴 diff --git a/character/boss.js b/character/boss.js index 8f57aa468..36fdeee1e 100644 --- a/character/boss.js +++ b/character/boss.js @@ -8,6 +8,7 @@ character.boss={ // boss_zhugeliang:['male','shu',4,[],['boss','bossallowed'],'qun'], boss_huangyueying:['female','shu',4,['boss_gongshen','boss_jizhi','qicai','boss_guiyin'],['boss','bossallowed'],'wei'], boss_pangtong:['male','shu',4,['boss_tianyu','qiwu','niepan','boss_yuhuo'],['boss','bossallowed'],'zhu'], + boss_zhaoyun:['male','shu',1,['boss_juejing','longhun'],['boss','bossallowed'],'qun'], boss_zhouyu:['male','wu',6,['huoshen','boss_honglian','boss_xianyin'],['boss','bossallowed'],'zhu'], boss_lvbu1:['male','qun',8,['mashu','wushuang','boss_baonu'],['boss','bossallowed'],'wei'], boss_lvbu2:['male','qun',4,['mashu','wushuang','swd_xiuluo','shenwei','shenji'],['hiddenboss'],'qun'], @@ -21,6 +22,25 @@ character.boss={ // boss_shuijing:['male','qun',8,[],['boss','bossallowed'],'wei'], }, skill:{ + boss_juejing:{ + trigger:{player:'phaseDrawBefore'}, + forced:true, + content:function(){ + trigger.untrigger(); + trigger.finish(); + }, + group:'boss_juejing2' + }, + boss_juejing2:{ + trigger:{player:'loseEnd'}, + forced:true, + filter:function(event,player){ + return player.num('h')<4; + }, + content:function(){ + player.draw(4-player.num('h')); + } + }, boss_leiji:{ audio:2, trigger:{player:'respond'}, @@ -845,6 +865,10 @@ character.boss={ // boss_yuhuo_info:'觉醒技,在你涅槃后,你获得技能【神威】、【朱羽】', boss_tianyu:'天狱', + boss_juejing:'绝境', + boss_juejing2:'绝境', + boss_juejing_info:'锁定技,摸牌阶段开始时,你不摸牌;锁定技,若你的手牌数小于4,你将手牌补至四张', + boss_jizhi:'集智', boss_jizhi_info:'每当你使用一张锦囊牌或装备牌,你可以摸一张牌并展示之', boss_guiyin:'归隐', @@ -889,5 +913,6 @@ character.boss={ boss_luxun:'蹁跹君子', boss_zhenji:'洛水仙子', boss_diaochan:'绝代妖姬', + boss_zhaoyun:'高达一号', } }; diff --git a/character/mountain.js b/character/mountain.js index 4c560ed4e..8bc49de97 100755 --- a/character/mountain.js +++ b/character/mountain.js @@ -84,10 +84,14 @@ character.mountain={ }, content:function(){ "step 0" + var eff=ai.get.effect(player,trigger.card,trigger.player,trigger.player); trigger.player.chooseToDiscard(function(card){ return get.type(card)=='basic'; }).ai=function(card){ - return 10-ai.get.value(card); + if(eff>0){ + return 10-ai.get.value(card); + } + return 0; }; "step 1" if(result.bool==false){ diff --git a/character/refresh.js b/character/refresh.js index 4d64a46fd..1c1763247 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -19,11 +19,40 @@ character.refresh={ re_luxun:['male','wu',3,['reqianxun','relianying']], re_daqiao:['female','wu',3,['reguose','liuli']], re_huanggai:['male','wu',4,['rekurou','zhaxiang']], - re_lvbu:['male','qun',5,['wushuang']], + re_lvbu:['male','qun',5,['wushuang','linu']], re_gongsunzan:['male','qun',4,['qiaomeng','reyicong']], re_huatuo:['male','qun',3,['chulao','jijiu']], }, skill:{ + linu:{ + trigger:{source:'damageEnd'}, + direct:true, + filter:function(event,player){ + return event.card&&event.card.name=='sha'&&event.player.isAlive()&&event.player.num('he')>0; + }, + content:function(){ + 'step 0' + trigger.player.chooseTarget(function(card,player,target){ + return player.canUse({name:'juedou'},target); + },'是否发动【利奴】?').ai=function(target){ + return ai.get.effect(target,{name:'juedou'},player,trigger.player)-2; + }; + 'step 1' + if(result.bool){ + player.gainPlayerCard(trigger.player,'he',true); + player.logSkill('linu'); + event.target=result.targets[0]; + trigger.player.line(player,'green'); + } + else{ + event.finish(); + } + 'step 2' + if(event.target){ + player.useCard({name:'juedou'},event.target); + } + } + }, reqicai:{ trigger:{player:'equipEnd'}, frequent:true, @@ -1260,7 +1289,8 @@ character.refresh={ fenwei:'奋威', chulao:'除痨', rejizhi:'集智', -// rejizhi_info:'当你使用一张装备牌或锦囊牌时,你可以展示牌堆顶牌,若该牌为基本牌,将之置入弃牌堆或用一张手牌与之交换;若不为基本牌,则将之收入手牌。', + linu:'利驭', + linu_info:'当你使用【杀】对一名其他角色造成伤害后,该角色可令你获得其一张牌,若如此做,则视为你对其选择的另一名角色使用一张【决斗】', rejizhi_info:'当你使用一张装备牌或锦囊牌时,你可以摸一张牌并展示之,若此牌是基本牌,你须弃置一张手牌', xunxun_info:'摸牌阶段,你可以放弃摸牌,改为观看牌堆顶的四张牌,然后获得其中的两张牌,将其余的牌以任意顺序置于牌堆底。', wangxi_info:'每当你对其他角色造成1点伤害后,或受到其他角色造成的1点伤害后,你可与该角色各摸一张牌。', diff --git a/character/sp.js b/character/sp.js index 500329107..e8663feb2 100755 --- a/character/sp.js +++ b/character/sp.js @@ -36,6 +36,17 @@ character.sp={ sp_caiwenji:['female','wei',3,['chenqing','mozhi']], zhugeguo:['female','shu',3,['yuhua','qirang']], }, + perfectPair:{ + zhugejin:['zhugeke'], + guanyinping:['guanyu'], + zhangxingcai:['liushan'], + fuwan:['fuhuanghou'], + sunshangxiang:['liubei'], + caoang:['caocao'], + zhangbao:['zhangliang','zhangjiao'], + zhangliang:['zhangjiao'], + maliang:['masu'], + }, skill:{ qirang:{ trigger:{player:'equipEnd'}, diff --git a/character/yijiang.js b/character/yijiang.js index 34c6fb2ad..459aa24dc 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -63,6 +63,22 @@ character.yijiang={ gongsunyuan:['male','qun',4,['huaiyi']], guotufengji:['male','qun',3,['jigong','shifei']], }, + perfectPair:{ + wuguotai:['sunjian','sunshangxiang'], + zhangchunhua:['simayi'], + caozhi:['zhenji'], + xunyou:['xunyu'], + xushu:['liubei'], + lingtong:['ganning'], + chengong:['lvbu'], + bulianshi:['sunquan'], + fuhuanghou:['liuxie'], + sunluban:['quancong'], + caifuren:['liubiao'], + xiahoushi:['zhangfei'], + zhoucang:['guanyu'], + guanping:['guanyu'], + }, skill:{ jinjiu:{ mod:{ diff --git a/game/config.js b/game/config.js index 501232223..9eb7fd5ba 100755 --- a/game/config.js +++ b/game/config.js @@ -207,7 +207,7 @@ window.config={ background_music:'music_default', background_audio:true, background_speak:true, - glow_phase:true, + glow_phase:'yellow', skin:{}, diff --git a/game/game.js b/game/game.js index 85ffdfe8e..4464c8927 100755 --- a/game/game.js +++ b/game/game.js @@ -435,6 +435,29 @@ }, unfrequent:true, }, + glow_phase:{ + name:'当前回合角色高亮', + unfrequent:true, + init:'yellow', + item:{ + none:'无', + yellow:'黄色', + green:'绿色', + purple:'紫色', + }, + onclick:function(bool){ + game.saveConfig('glow_phase',bool); + if(_status.currentPhase){ + if(lib.config.glow_phase){ + _status.currentPhase.classList.add('glow_phase'); + ui.arena.dataset.glow_phase=lib.config.glow_phase; + } + else{ + _status.currentPhase.classList.remove('glow_phase'); + } + } + } + }, auto_popped_config:{ name:'自动弹出选项', init:true, @@ -476,22 +499,6 @@ // init:false, // unfrequent:true, // }, - glow_phase:{ - name:'当前回合角色高亮', - init:false, - unfrequent:true, - onclick:function(bool){ - game.saveConfig('glow_phase',bool); - if(_status.currentPhase){ - if(lib.config.glow_phase){ - _status.currentPhase.classList.add('glow_phase'); - } - else{ - _status.currentPhase.classList.remove('glow_phase'); - } - } - } - }, show_name:{ name:'显示武将名', init:false, @@ -685,7 +692,7 @@ }, die_flip:{ name:'阵亡效果', - init:true, + init:false, unfrequent:true, }, animation:{ @@ -1211,6 +1218,58 @@ hard:'仇视', } }, + choice_zhu:{ + name:'主公候选武将数', + init:'3', + restart:true, + item:{ + '3':'三', + '4':'四', + '5':'五', + '6':'六', + '8':'八', + '10':'十', + } + }, + choice_zhong:{ + name:'忠臣候选武将数', + init:'4', + restart:true, + item:{ + '3':'三', + '4':'四', + '5':'五', + '6':'六', + '8':'八', + '10':'十', + } + }, + choice_nei:{ + name:'内奸候选武将数', + init:'5', + restart:true, + item:{ + '3':'三', + '4':'四', + '5':'五', + '6':'六', + '8':'八', + '10':'十', + } + }, + choice_fan:{ + name:'反贼候选武将数', + init:'3', + restart:true, + item:{ + '3':'三', + '4':'四', + '5':'五', + '6':'六', + '8':'八', + '10':'十', + } + }, } }, guozhan:{ @@ -1377,7 +1436,20 @@ normal:'一般', hard:'仇视', } - } + }, + choice_num:{ + name:'候选武将数', + init:'7', + restart:true, + item:{ + '5':'五', + '6':'六', + '7':'七', + '8':'八', + '9':'九', + '10':'十', + } + }, } }, versus:{ @@ -7935,6 +8007,7 @@ _status.currentPhase.classList.remove('glow_phase'); } player.classList.add('glow_phase'); + // player.dataset.glow_phase=lib.config.glow_phase; // player.animate('playerbright',500); } // player.$damage(null,'phase') @@ -8493,6 +8566,7 @@ } if(lib.config.glow_phase){ player.classList.add('glow_phase'); + // player.dataset.glow_phase=lib.config.glow_phase; } } else{ @@ -11713,6 +11787,7 @@ if(lib.config.layout=='default'&&lib.config.hp_style=='official'){ ui.arena.classList.add('hpimage'); } + ui.arena.dataset.glow_phase=lib.config.glow_phase; ui.updatePhone(); ui.backgroundMusic=document.createElement('audio'); ui.backgroundMusic.volume=lib.config.volumn_background/8; @@ -14630,7 +14705,12 @@ var height=this._poppedheight||uiintro.content.scrollHeight; uiintro.style.height=Math.min(ui.window.offsetHeight-260,height)+'px'; - uiintro.style.top='50px'; + if(lib.config.layout=='phone'){ + uiintro.style.top='70px'; + } + else{ + uiintro.style.top='50px'; + } var left=this.parentNode.offsetLeft+this.offsetLeft+this.offsetWidth/2-width/2; if(left<10){ left=10; @@ -16523,6 +16603,7 @@ }, updateh:function(compute){ if(!game.me) return; + if(!ui.handcards1Container) return; if(lib.config.low_performance){ if(compute){ ui.updatehl(); @@ -17452,8 +17533,7 @@ uiintro.add('
【'+translation+'】
'+'已禁用'+'
'); } } - // if(!simple) - if(lib.config.touchscreen){ + if(!simple||lib.config.touchscreen){ var storage=node.storage; for(i in storage){ if(get.info(i)&&get.info(i).intro){ @@ -17508,6 +17588,73 @@ uiintro.content.appendChild(table); } + if(lib.config.change_skin&&( + !node.classList.contains('unseen')||!node.classList.contains('unseen2') + )){ + var num=1; + var introadded=false; + var loadImage=function(avatar2){ + var img=new Image(); + img.onload=function(){ + num++; + loadImage(avatar2); + } + img.onerror=function(){ + num--; + if(num){ + if(!introadded){ + introadded=true; + uiintro.add('更改皮肤'); + } + var buttons=ui.create.div('.buttons.smallzoom'); + for(var i=0;i<=num;i++){ + var button=ui.create.div('.button.character',buttons,function(){ + if(this._link){ + if(avatar2){ + lib.config.skin[node.name2]=this._link; + node.node.avatar2.style.backgroundImage=this.style.backgroundImage; + } + else{ + lib.config.skin[node.name]=this._link; + node.node.avatar.style.backgroundImage=this.style.backgroundImage; + } + game.saveConfig('skin',lib.config.skin); + } + else{ + if(avatar2){ + delete lib.config.skin[node.name2]; + node.node.avatar2.setBackground(node.name2,'character'); + } + else{ + delete lib.config.skin[node.name]; + node.node.avatar.setBackground(node.name,'character'); + } + game.saveConfig('skin',lib.config.skin); + } + }); + button._link=i; + if(i){ + button.style.backgroundImage='url("image/skin/'+(avatar2?node.name2:node.name)+'/'+i+'.jpg")'; + } + else{ + button.style.backgroundImage='url("image/character/'+(avatar2?node.name2:node.name)+'.jpg")'; + } + } + uiintro.add(buttons); + } + if(!avatar2){ + if(!node.classList.contains('unseen2')&&node.name2){ + num=1; + loadImage(true); + } + } + } + img.src='image/skin/'+(avatar2?node.name2:node.name)+'/'+num+'.jpg'; + } + if(!node.classList.contains('unseen')){ + loadImage(); + } + } } uiintro.add(ui.create.div('.placeholder.slim')); diff --git a/image/character/boss_zhaoyun.jpg b/image/character/boss_zhaoyun.jpg new file mode 100644 index 000000000..68d46ae9f Binary files /dev/null and b/image/character/boss_zhaoyun.jpg differ diff --git a/layout/default/layout.css b/layout/default/layout.css index 8f09a37f5..0b7b7f9fc 100755 --- a/layout/default/layout.css +++ b/layout/default/layout.css @@ -224,6 +224,7 @@ body>.background{z-index:-2} } .dialog .buttons>.button.character{ height:108px; + background-size: cover; } .card.center{top:calc(50% - 52px);left:calc(50% - 52px);} .card>.background{font-size: 80px;height: 80px;padding-top: 14px;text-align: center;} @@ -233,7 +234,7 @@ body>.background{z-index:-2} .button.card>.background{font-size: 68px;height: 68px;padding-top: 12px;} .card>.background{font-family:'xiaozhuan'} .card>.background.tight{letter-spacing: -0.2em} -.marks>.card>.background.skillmark{font-family:'huangcao';padding-top:4px;} +.marks>.card>.background.skillmark{font-family:'huangcao','xinwei';padding-top:4px;} .marks>.card.overflowmark{ overflow: visible; } @@ -330,7 +331,7 @@ margin-bottom: 5px; .button.character>.hp.text{ top:8px; left:6px; - font-family:'huangcao'; + font-family:'huangcao','xinwei'; font-size:20px; letter-spacing:3px; } @@ -390,7 +391,7 @@ margin-bottom: 5px; } .player>.intro{top:87px;left: 18px;} .player>.damage{ - font-family: 'huangcao'; + font-family: 'huangcao','xinwei'; font-size:72px; width: 100%; text-align: center; @@ -400,7 +401,7 @@ margin-bottom: 5px; transform:scale(0.7); } .player>.cardeffect{ - font-family: 'huangcao'; + font-family: 'huangcao','xinwei'; font-size:108px; width: 100%; text-align: center; @@ -820,7 +821,7 @@ div:hover>.intro{opacity: 1;} .player .identity>div{ margin: auto; position: relative; - font-family: 'huangcao'; + font-family: 'huangcao','xinwei'; font-size: 24px; top:0; } @@ -998,7 +999,7 @@ div[data-color="unknownm"]{ color: rgb(195,161,223); } .wunature{ - font-family:'huangcao'; + font-family:'huangcao','xinwei'; font-size: 24px; color:white !important; pointer-events: none; @@ -1067,12 +1068,18 @@ div:hover>.wunature{ /*-webkit-animation:control_glow 4s infinite;*/ box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(10, 155, 67, 1) 0 0 15px, rgba(10, 155, 67, 1) 0 0 15px !important; } -.player:not(.glow_phase)>.avatar.glow2{ +.player:not(.glow_phase)>.avatar.glow2, +.button.glow2:not(.selected){ box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(10, 155, 67, 1) 0 0 5px, rgba(10, 155, 67, 1) 0 0 5px, rgba(10, 155, 67, 1) 0 0 10px, rgba(10, 155, 67, 1) 0 0 10px !important } -.player:not(.selectable):not(.selected).glow_phase{ +#arena[data-glow_phase="yellow"] .player:not(.selectable):not(.selected).glow_phase{ box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgb(235, 239, 59) 0 0 15px, rgb(199, 64, 64) 0 0 15px !important; - /*box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(10, 155, 67, 1) 0 0 15px, rgba(10, 155, 67, 1) 0 0 15px !important;*/ +} +#arena[data-glow_phase="green"] .player:not(.selectable):not(.selected).glow_phase{ + box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(10, 155, 67, 1) 0 0 15px, rgba(10, 155, 67, 1) 0 0 15px !important; +} +#arena[data-glow_phase="purple"] .player:not(.selectable):not(.selected).glow_phase{ + box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgb(178, 59, 239) 0 0 15px, rgb(199, 64, 101) 0 0 15px !important; } .control.blue{ diff --git a/layout/default/menu.css b/layout/default/menu.css index ac0c6ff5f..f7aab92f4 100644 --- a/layout/default/menu.css +++ b/layout/default/menu.css @@ -330,7 +330,7 @@ } .config.more>div{ transform:translateY(-2px); - font-family: 'huangcao'; + font-family: 'huangcao','xinwei'; } .config.more.on>div{ transform:rotate(90deg) translateX(-2px); @@ -481,7 +481,7 @@ font-family:'STHeiti','SimHei','Microsoft JhengHei','Microsoft YaHei','WenQuanYi Micro Hei',Helvetica,Arial,sans-serif } .videonode.menubutton>.victory{ - font-family: 'huangcao'; + font-family: 'huangcao','xinwei'; font-size: 25px; text-shadow: black 0 0 1px,rgba(255, 203, 0,1) 0 0 2px,rgba(255, 203, 0,1) 0 0 5px,rgba(255, 203, 0,1) 0 0 5px, rgba(255, 203, 0,1) 0 0 5px,black 0 0 1px; diff --git a/layout/newlayout/global.css b/layout/newlayout/global.css index 8c9f6e647..9f8529f91 100644 --- a/layout/newlayout/global.css +++ b/layout/newlayout/global.css @@ -127,7 +127,7 @@ transform:rotate(180deg); } .player .hp.text{ - font-family:'huangcao'; + font-family:'huangcao','xinwei'; font-size:22px; transform:none; transition:all 0s; diff --git a/manifest.json b/manifest.json index c2e31639d..933ea5669 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "name": "noname", - "xwalk_version": "1.6.0", + "xwalk_version": "1.6.1", "start_url": "index.html", "icons": [ { diff --git a/mode/boss.js b/mode/boss.js index 9335f90f6..dca5c5498 100755 --- a/mode/boss.js +++ b/mode/boss.js @@ -561,6 +561,9 @@ mode.boss={ loopType:2, chongzheng:12 }, + boss_zhaoyun:{ + chongzheng:12 + }, boss_zhenji:{ chongzheng:4, }, diff --git a/mode/guozhan.js b/mode/guozhan.js index c7b4dbd1c..384fb8025 100755 --- a/mode/guozhan.js +++ b/mode/guozhan.js @@ -207,7 +207,7 @@ mode.guozhan={ event.list.push(i); } event.list.randomSort(); - var list=event.list.splice(0,7); + var list=event.list.splice(0,parseInt(get.config('choice_num'))); if(_status.auto){ event.ai(game.me,list); } @@ -218,6 +218,17 @@ mode.guozhan={ } var next=game.me.chooseButton(dialog,true,2); next.filterButton=function(button){ + if(ui.dialog.buttons.length<=10){ + for(var i=0;i