From 482d6c8b581a8f28b05f2dea54a4ac27ab64925a Mon Sep 17 00:00:00 2001 From: libccy Date: Tue, 5 May 2015 17:23:31 +0800 Subject: [PATCH] 1.1.0 --- card/extra.js | 13 +- card/refresh.js | 2 +- card/standard.js | 7 +- card/swd.js | 1 + card/yibao.js | 13 +- character/extra.js | 1 + character/refresh.js | 1 + character/sp.js | 10 +- character/yijiang.js | 4 + character/yxs.js | 2 +- game/config.js | 1 + game/game.js | 28 +- .../{stone_wanghou.jpg => stone_huanghou.jpg} | Bin index.html | 1 - mode/stone.js | 369 +++++++++++------- package.json | 2 +- 16 files changed, 302 insertions(+), 153 deletions(-) rename image/character/default/{stone_wanghou.jpg => stone_huanghou.jpg} (100%) diff --git a/card/extra.js b/card/extra.js index e985ee543..c63e1c203 100644 --- a/card/extra.js +++ b/card/extra.js @@ -106,10 +106,15 @@ card.extra={ result:{ player:function(player){ var nh=player.num('h'); - if(nh<=player.hp&& - _status.event.name=='chooseToUse'&& - _status.event.filterCard({name:'huogong'})){ - return -10; + if(nh<=player.hp&&_status.event.name=='chooseToUse'){ + if(_status.event.filterCard({name:'huogong'})){ + return -10; + } + if(_status.event.skill){ + var viewAs=get.info(_status.event.skill).viewAs; + if(viewAs=='huogong') return -10; + if(viewAs&&viewAs.name=='huogong') return -10; + } } return 0; }, diff --git a/card/refresh.js b/card/refresh.js index c265267b2..8cb04f2c0 100644 --- a/card/refresh.js +++ b/card/refresh.js @@ -132,7 +132,7 @@ card.refresh={ var dialog=ui.create.dialog('木牛流马',player.get('e','5').cards); var trigger=event.parent.parent; player.chooseButton(dialog,function(button){ - if(get.info(button.link).selectTarget==-1){ + if(get.select(get.info(button.link).selectTarget)[1]==-1){ if(get.type(button.link)=='delay') return -1; if(get.type(button.link)=='equip'){ var current=player.get('e',{subtype:get.subtype(button.link)})[0]; diff --git a/card/standard.js b/card/standard.js index a46b7349a..fc6a81580 100644 --- a/card/standard.js +++ b/card/standard.js @@ -199,8 +199,8 @@ card.standard={ if(target.num('h')<=target.hp&&target.hp>2) return 0; if(target.hp<0&&target!=player&&target.identity!='zhu') return 0; if(ai.get.attitude(player,target)<3) return 0; + var tri=_status.event.parent._trigger; if(lib.config.mode=='identity'&&player.identity=='fan'&&target.identity=='fan'){ - var tri=_status.event.parent._trigger; if(tri&&tri.name=='dying'&&tri.source&&tri.source.identity=='fan'&&tri.source!=target){ var num=target.num('h','jiu')?1:0; for(var i=0;i=5){ diff --git a/character/refresh.js b/character/refresh.js index 9a864b255..5dea29fa2 100644 --- a/character/refresh.js +++ b/character/refresh.js @@ -240,6 +240,7 @@ character.refresh={ return false; }, content:function(){ + player.storage.qinxue=true; player.loseMaxHp(); player.addSkill('gongxin'); } diff --git a/character/sp.js b/character/sp.js index b732fe739..068c464fd 100644 --- a/character/sp.js +++ b/character/sp.js @@ -578,12 +578,14 @@ character.sp={ if(player.storage.zhoufu3.isAlive()){ player.storage.zhoufu3.gain(player.storage.zhoufu2); player.$give(player.storage.zhoufu2,player.storage.zhoufu3); - player.removeSkill('zhoufu2'); - delete player.storage.zhoufu2; - delete player.storage.zhoufu3; game.delay(); } - + else{ + ui.discardPile.appendChild(player.storage.zhoufu2); + } + player.removeSkill('zhoufu2'); + delete player.storage.zhoufu2; + delete player.storage.zhoufu3; }, }, yingbin:{}, diff --git a/character/yijiang.js b/character/yijiang.js index 17c70261b..7414d9b3a 100644 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -1052,6 +1052,9 @@ character.yijiang={ } return false; }, + prompt:function(event){ + return '是否对'+get.translation(event.player)+'发动【惴恐】?'; + }, filter:function(event,player){ return player.hp0&&event.player.num('h')>0; @@ -2432,6 +2435,7 @@ character.yijiang={ usable:1, selectTarget:2, filterTarget:function(card,player,target){ + if(target.isMin()) return false; if(ui.selected.targets.length==0) return true; if(ui.selected.targets[0].num('e')==0&&target.num('e')==0) return false; return Math.abs(ui.selected.targets[0].num('e')-target.num('e'))<=player.maxHp-player.hp; diff --git a/character/yxs.js b/character/yxs.js index 3c787126a..fa88ee6f1 100644 --- a/character/yxs.js +++ b/character/yxs.js @@ -939,7 +939,7 @@ character.yxs={ bolehuiyan:'慧眼', bolehuiyan_info:'当一名有手牌的其他角色成为来源不为你的杀的目标时,你可以预言此杀能否命中,若预言正确,你摸一张牌,每回合限发动一次', xiangma:'相马', - xiangma_info:'锁定技,计算你与其他角色的距离时始终-1,计算其他角色与你的距离时始终+1', + xiangma_info:'锁定技,只要你的体力值大于2点,你计算与其他角色的距离时,始终-1;只要你的体力值为2点或更低,其他角色计算与你的距离时,始终+1。', seyou:'色诱', seyou_info:'限定技,出牌阶段,你可以指定任意1名角色,其他所有男性角色需选择1项执行:(1)对你指定的角色出【杀】;(2)令你获得其一张牌。', sheshi:'蛇噬', diff --git a/game/config.js b/game/config.js index ec8dd818c..97de1f666 100644 --- a/game/config.js +++ b/game/config.js @@ -181,6 +181,7 @@ window.config={ show_name_config:'显示角色名称', auto_popped_config:'自动弹出菜单', ui_zoom_config:'界面缩放', + no_ios_zoom_config:'禁止触屏缩放', show_stat_config:'显示战斗统计', show_scrollbar_config:'显示滚动条', mousewheel_config:'滚轮控制手牌', diff --git a/game/game.js b/game/game.js index c8e50e448..f544d399a 100644 --- a/game/game.js +++ b/game/game.js @@ -29,7 +29,7 @@ window.play={}; frameId:0, }, help:{ - '关于':'无名杀 1.0.6
  • 1L 先谢神上
  • 图片等素材来自网(shén)络(shā)
  • bug反馈/建议欢迎来百度无名杀吧', + '关于':'无名杀 1.1.0
    • 1L 先谢神上
    • 图片等素材来自网(shén)络(shā)
    • bug反馈/建议欢迎来百度无名杀吧', '选项帮助':'
      • 控制台命令:开启后可用浏览器控制台控制游戏
      • 自动确认:开启后当候选目标仅有1个时点击目标无需再点击确定
      • 悬停时间:弹出角色/卡牌介绍所需的等待时间
      • '+ '触屏模式:可消除iOS等设备上300ms的点击延迟,但开启后无法使用鼠标
      • 滚轮控制手牌:开启后滚轮可控制手牌的左右滚动,建议Mac等具备横向滚动功能的设备关闭此选项'+ '
      • 隐藏非全身皮肤:在新版布局中,若角色没有全身皮肤将被隐藏
      • 游戏玩法:为游戏增加不同玩法,开启后可在帮助中查看介绍'+ @@ -3314,6 +3314,7 @@ window.play={}; next.reason=reason; if(reason) next.source=reason.source; next.content=lib.element.playerproto.die; + return next; }, revive:function(hp){ game.log(get.translation(this)+'复活'); @@ -5785,6 +5786,22 @@ window.play={}; game.me.node.handcards1.getElementsByClassName('removing').length)-1; game.me.node.handcards2.dataset.number=Math.min(6,game.me.node.handcards2.childNodes.length- game.me.node.handcards2.getElementsByClassName('removing').length)-1; + + if(game.me.isAlive()){ + if(ui.auto) ui.auto.show(); + if(ui.revive){ + ui.revive.close(); + delete ui.revive; + } + if(ui.swap){ + ui.swap.close(); + delete ui.swap; + } + if(ui.restart){ + ui.restart.close(); + delete ui.restart; + } + } }, phaseLoop:function(player){ var next=game.createEvent('phaseLoop'); @@ -6941,6 +6958,7 @@ window.play={}; gameconfig.push(ui.hoverhandcardconfig); if(!lib.config.hover_all) ui.hoverhandcardconfig.classList.add('disabled'); gameconfig.push(ui.create.switcher('touchscreen',lib.config.touchscreen,ui.click.sidebar.touchscreen)); + gameconfig.push(ui.create.switcher('no_ios_zoom',lib.config.no_ios_zoom,ui.click.sidebar.global)); ui.handcardmousewheel=ui.create.switcher('mousewheel',lib.config.mousewheel,ui.click.sidebar.mousewheel); if(lib.config.touchscreen) ui.handcardmousewheel.classList.add('disabled'); gameconfig.push(ui.handcardmousewheel); @@ -6965,6 +6983,12 @@ window.play={}; case '很大':ui.window.style.zoom=1.1;break; default:ui.window.style.zoom=1; } + if(lib.config.no_ios_zoom){ + var meta=document.createElement('meta'); + meta.name='viewport'; + meta.content="user-scalable=0"; + document.head.appendChild(meta); + } var appearence=[]; appearence._configstr='appearence'; @@ -11338,6 +11362,6 @@ window.play={}; } } document.ontouchmove = function(e) { - e.preventDefault(); + e.preventDefault(); }; }()); diff --git a/image/character/default/stone_wanghou.jpg b/image/character/default/stone_huanghou.jpg similarity index 100% rename from image/character/default/stone_wanghou.jpg rename to image/character/default/stone_huanghou.jpg diff --git a/index.html b/index.html index ed5d9da61..574ab9583 100644 --- a/index.html +++ b/index.html @@ -1,7 +1,6 @@ - 无名杀 diff --git a/mode/stone.js b/mode/stone.js index 65d719ee5..6d4018e48 100644 --- a/mode/stone.js +++ b/mode/stone.js @@ -8,7 +8,7 @@ mode.stone={ player.node.actcount=ui.create.div('.actcount.hp',player); } if(typeof player.actcount!=='number'){ - player.actcount=1; + player.actcount=2; } player.actused=0; if(!player.actcharacterlist){ @@ -17,7 +17,7 @@ mode.stone={ player.updateActCount(); } }, - updateActCount:function(){ + updateActCount:function(used){ for(var i=0;i<10;i++){ if(this.actcount>this.node.actcount.childElementCount){ ui.create.div(this.node.actcount); @@ -29,13 +29,15 @@ mode.stone={ break; } } - var count=this.actcount-this.getActCount(); - for(var i=0;i0){ + source.actused--; + } source.updateActCount(); } game.dead.remove(this); @@ -195,99 +208,48 @@ mode.stone={ lib.character[i][3].add('stonesha'); lib.character[i][3].add('stoneshan'); lib.character[i][3].add('stonedraw'); - list.push(i); + name=i+'_stonecharacter'; + list.push(name); + lib.card[name]={ + image:'character/default/'+i, + stoneact:lib.character[i][5][0] + }; + for(j in lib.card.stonecharacter){ + lib.card[name][j]=lib.card.stonecharacter[j]; + } + lib.translate[name]=get.translation(i); + lib.translate[name+'_info']=get.skillintro(i); } } - var totallength=lib.card.list.length/3; + var totallength=Math.ceil(lib.card.list.length/40); var addedcardcount=Math.ceil(lib.card.list.length/80); + var addedcardcount2=Math.ceil(lib.card.list.length/160); var suit=['heart','diamond','club','spade']; - for(i=0;i=2) return 1; + if(target.hp>=3) return target.hp; return 0; } } @@ -650,16 +684,20 @@ mode.stone={ enable:true, stoneact:4, filterTarget:function(card,player,target){ - return target.isMin()&&target.maxHp<5; + return target.isMin()&&target.hp<5; }, content:function(){ - target.gainMaxHp(Math.min(2,5-target.maxHp)); + if(target.maxHp<5){ + target.gainMaxHp(Math.min(2,5-target.maxHp)); + } target.recover(2); }, ai:{ order:7, result:{ - target:1 + target:function(player,target){ + return 5-target.hp; + } } } }, @@ -728,9 +766,9 @@ mode.stone={ stone_gongzhu:['female','wu',1,['shushen'],['minskin','stone'],[3,2]], stone_genv:['female','wei',1,['jieyin'],['minskin','stone'],[2,2]], stone_wunv:['female','qun',1,['biyue'],['minskin','stone'],[3,2]], - stone_wanghou:['female','qun',2,['ganlu'],['minskin','stone'],[3,1]], + stone_huanghou:['female','qun',2,['stone_huanghou'],['minskin','stone'],[3,1]], stone_feipin:['female','qun',1,['guixiu'],['minskin','stone'],[1,2]], - stone_yiji:['female','qun',1,['liuli'],['minskin','stone'],[2,2]], + stone_yiji:['female','qun',1,['stone_yiji'],['minskin','stone'],[2,2]], }, skill:{ chaofeng:{}, @@ -792,7 +830,7 @@ mode.stone={ unique:true, filter:function(event,player){ for(var i=0;iplayer.getLeader().countFellow(); + }, + content:function(){ + "step 0" + event.chooser=player.getEnemy(); + event.chooser.chooseTarget('皇后:选择己方一名随从令其死亡',function(card,playerx,target){ + return target.isMin()&&target.side!=player.side; + },true).ai=function(target){ + return -target.hp; + }; + player.line(event.chooser); + "step 1" + if(result.bool){ + event.chooser.line(result.targets[0]); + game.delay(); + result.targets[0].die(); + } + } + }, + stone_yiji:{ + trigger:{player:'dieBegin'}, + forced:true, + filter:function(event){ + return event.source!=undefined&&event.source.isMin(); + }, + content:function(){ + trigger.source.addSkill('stone_yiji2'); + }, + }, + stone_yiji2:{ + trigger:{global:'dieAfter'}, + forced:true, + popup:false, + unique:true, + filter:function(event,player){ + return player.skills.contains('stone_yiji2'); + }, + content:function(){ + player.loseHp(); + player.removeSkill('stone_yiji2'); + } + }, _actcount:{ mod:{ cardEnabled:function(card,player){ @@ -1091,18 +1178,23 @@ mode.stone={ if(player.getActCount()+stoneact>player.actcount) return false; } }, - trigger:{player:'phaseUseBegin'}, + trigger:{player:'phaseBegin'}, forced:true, popup:false, filter:function(event,player){ return !player.isMin(); }, content:function(){ - player.actcount++; + player.actused=0; + if(player.side){ + player.actcount=player.getEnemy().actcount; + } + else{ + player.actcount=player.getEnemy().actcount+1; + } if(player.actcount>6){ player.actcount-=5; } - player.actused=0; player.updateActCount(); } }, @@ -1208,9 +1300,9 @@ mode.stone={ stone_daoshi:'道士', stone_daoshi_info:'回合开始阶段,若你没有手牌,你摸一张牌', stone_sanxian:'散仙', - stone_sanxian_info:'你死亡时,已方主将可令一名敌方随从失去1点体力', + stone_sanxian_info:'你死亡前,已方主将可令一名敌方随从失去1点体力', stone_banxian:'半仙', - stone_banxian_info:'你死亡时,已方主将可令一名敌方随从失去1点体力上限', + stone_banxian_info:'你死亡后,场上所有其他随从失去1点体力', stone_yisheng:'医生', stone_yinshi:'隐士', stone_yinshi_info:'在你的回合开始前,不能成为任何卡牌的目标', @@ -1218,9 +1310,11 @@ mode.stone={ stone_gongzhu:'公主', stone_genv:'歌女', stone_wunv:'舞女', - stone_wanghou:'皇后', + stone_huanghou:'皇后', + stone_huanghou_info:'你出场时,若敌方随从数多于己方,敌方主将须选择一名随从令其死亡', stone_feipin:'王妃', stone_yiji:'艺伎', + stone_yiji_info:'杀死你的随从失去一点体力', stone_daogu:'道姑', stone_daogu_info:'回合结束阶段,若你没有手牌,你摸一张牌', @@ -1233,9 +1327,9 @@ mode.stone={ shengerpingdeng:'生而平等', shengerpingdeng_info:'将所有随从体力上限降为1', emofengdi:'恶魔之眼', - emofengdi_info:'将一名敌方随从吸收为已方', + emofengdi_info:'限主将使用,将一名敌方随从吸收为已方', konghunshi:'控魂石', - konghunshi_info:'使一名敌方随从变为已方,并于下个回合结束后死亡', + konghunshi_info:'限主将使用,将一名敌方随从吸收为已方,并令其于下个回合结束后死亡', konghunshi_die:'控魂石', konghunshi_die_info:'下个回合结束后死亡', mindieyi:'冥蝶翼', @@ -1243,7 +1337,7 @@ mode.stone={ miefafu:'灭法符', miefafu_info:'将目标随从翻面', liumangxingzhen:'六芒星阵', - liumangxingzhen_info:'令场上所有随从死亡', + liumangxingzhen_info:'令场上所有随从立即死亡(无法触发死亡技能)', dianhaishenzhu:'颠海神珠', dianhaishenzhu_info:'令目标随从获得嘲讽', chaofeng:'嘲讽', @@ -1268,11 +1362,14 @@ mode.stone={ }, config:['battle_number','double_character','ban_weak','free_choose','change_choice'], help:{ - '炉石模式':'
        • 主将出牌阶段的出牌数量有上限,先手为2,后手为3
        • 每进行一个回合,主将的出牌上限+1,超过6时减至2并重新累加'+ - '
        • 牌堆中随机加入总量1/3的随从牌,使用之可召唤一个随从,随从出场时背面朝上
        • 随从于摸牌阶段摸牌基数为1,随从的随从牌均视为闪,装备牌均视为杀
        • '+ + '炉石模式':'
          • 游戏流程类似1v1,场上有两名主将进行对抗'+ + '
          • 主将出牌阶段的出牌数量(行动值)有上限,先手为2,后手为3
          • 游戏每进行一轮,主将的出牌上限+1,超过6时减至2并重新累加'+ + '
          • 牌堆中随机加入总量1/3的随从牌,使用之可召唤一个随从,随从出场时背面朝上。每一方在场的随从数不能超过4
          • 随从于摸牌阶段摸牌基数为1,随从的随从牌均视为闪,装备牌均视为杀
          • '+ '随从与其他所有角色相互距离基数为1
          • '+ - '主将杀死对方随从后获得一个额外的行动值并摸两张牌'+ - '
          • 游戏中装备牌和随从牌均可重铸,但回合内总的重铸次数不能超过3'+ - '
          • 嘲讽:若一方阵营中有嘲讽角色,则同阵营的无嘲讽角色不以能成为杀或决斗的目标' + '主将杀死对方随从后获得一个额外的行动值并摸两张牌,杀死己方随从无惩罚,随从杀死随从无效果'+ + '
          • 牌堆中随机加入总量1/6的炉石牌,效果主要与随从有关,炉石牌根据强度不同可能会消耗额外的行动值'+ + '
          • 主将可重铸装备牌和随从牌,但回合内总的重铸次数不能超过3,随从不能重铸任何牌(包括铁索等默认可以重铸的牌)'+ + '
          • 嘲讽:若一方阵营中有嘲讽角色,则同阵营的无嘲讽角色不以能成为杀或决斗的目标'+ + '
          • 主将或随从死亡后立即移出游戏,主将死亡后替补登场,无替补时游戏结束' } } diff --git a/package.json b/package.json index cc15ff82d..a5e75f822 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { "name" : "无名杀", - "version" : "0.9.71", + "version" : "1.1.0", "main" : "main.js" }