diff --git a/audio/skill/qice1.mp3 b/audio/skill/qice21.mp3 similarity index 100% rename from audio/skill/qice1.mp3 rename to audio/skill/qice21.mp3 diff --git a/audio/skill/qice2.mp3 b/audio/skill/qice22.mp3 similarity index 100% rename from audio/skill/qice2.mp3 rename to audio/skill/qice22.mp3 diff --git a/audio/skill/tianming.mp3 b/audio/skill/tianming.mp3 deleted file mode 100644 index 1278f7ee7..000000000 Binary files a/audio/skill/tianming.mp3 and /dev/null differ diff --git a/audio/skill/tianming1.mp3 b/audio/skill/tianming1.mp3 new file mode 100755 index 000000000..fbf482c9d Binary files /dev/null and b/audio/skill/tianming1.mp3 differ diff --git a/audio/skill/tianming2.mp3 b/audio/skill/tianming2.mp3 new file mode 100755 index 000000000..9861eb338 Binary files /dev/null and b/audio/skill/tianming2.mp3 differ diff --git a/audio/skill/wusheng1.mp3 b/audio/skill/wusheng1.mp3 index 4480ef02b..bfbb9bf8a 100755 Binary files a/audio/skill/wusheng1.mp3 and b/audio/skill/wusheng1.mp3 differ diff --git a/audio/skill/wusheng2.mp3 b/audio/skill/wusheng2.mp3 index bfbb9bf8a..a7aaab393 100755 Binary files a/audio/skill/wusheng2.mp3 and b/audio/skill/wusheng2.mp3 differ diff --git a/audio/skill/wusheng3.mp3 b/audio/skill/wusheng3.mp3 index c9eb00e94..2ebad6cb0 100755 Binary files a/audio/skill/wusheng3.mp3 and b/audio/skill/wusheng3.mp3 differ diff --git a/audio/skill/wusheng4.mp3 b/audio/skill/wusheng4.mp3 deleted file mode 100755 index ccfd28f17..000000000 Binary files a/audio/skill/wusheng4.mp3 and /dev/null differ diff --git a/audio/skill/wusheng5.mp3 b/audio/skill/wusheng5.mp3 deleted file mode 100755 index a7aaab393..000000000 Binary files a/audio/skill/wusheng5.mp3 and /dev/null differ diff --git a/audio/skill/wusheng6.mp3 b/audio/skill/wusheng6.mp3 deleted file mode 100755 index 2ebad6cb0..000000000 Binary files a/audio/skill/wusheng6.mp3 and /dev/null differ diff --git a/character/diy.js b/character/diy.js index c293bda2e..93d194328 100755 --- a/character/diy.js +++ b/character/diy.js @@ -183,7 +183,7 @@ character.diy={ return 7-ai.get.value(card); }, content:function(){ - target.addJudge('bingliang',cards); + player.useCard({name:'bingliang'},target,cards).animate=false; player.draw(); }, ai:{ diff --git a/character/mountain.js b/character/mountain.js index 03d0895e2..4907eedb4 100755 --- a/character/mountain.js +++ b/character/mountain.js @@ -572,7 +572,11 @@ character.mountain={ player.unmarkSkill('tuntian'); } player.logSkill('jixi',result.targets); - player.useCard({name:'shunshou'},[event.card],result.targets[0]); + player.useCard({name:'shunshou'},[event.card],result.targets[0]).audio=false; + } + else{ + player.addTempSkill('jixi2','phaseAfter'); + event.finish(); } }, ai:{ diff --git a/character/refresh.js b/character/refresh.js index ba311c2df..552a5a7ed 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -774,6 +774,16 @@ character.refresh={ ai:{ result:{ target:function(player,target){ + var hs=player.get('h'); + if(hs.length<3) return 0; + var bool=false; + for(var i=0;i=9&&ai.get.value(hs[i])<7){ + bool=true; + break; + } + } + if(!bool) return 0; if(target.num('h')>target.hp+1&&ai.get.recoverEffect(target)>0){ return 1; } @@ -1088,7 +1098,7 @@ character.refresh={ target.discard(target.getJudge('lebu')); } else{ - target.addJudge('lebu',cards); + player.useCard({name:'lebu'},target,cards).animate=false; } player.draw(); }, diff --git a/character/sp.js b/character/sp.js index 6bd0e9b54..f7dc837a9 100755 --- a/character/sp.js +++ b/character/sp.js @@ -3402,7 +3402,7 @@ character.sp={ } }, tianming:{ - audio:true, + audio:2, trigger:{target:'shaBegin'}, check:function(event,player){ var cards=player.get('h'); diff --git a/character/standard.js b/character/standard.js index cc8b8a45d..da88e9a8f 100755 --- a/character/standard.js +++ b/character/standard.js @@ -313,10 +313,10 @@ character.standard={ }, content:function(){ "step 0" - event.cards=get.cards(2*trigger.num); - player.gain(event.cards); - player.$draw(event.cards.length); + player.draw(2*trigger.num); "step 1" + event.cards=result; + "step 2" player.chooseCardTarget({ filterCard:function(card){ return _status.event.parent.cards.contains(card); @@ -334,14 +334,14 @@ character.standard={ }, prompt:'请选择要送人的卡牌' }); - "step 2" + "step 3" if(result.bool){ result.targets[0].gain(result.cards); player.$give(result.cards.length,result.targets[0]); for(var i=0;imax){ - // result=i; - // max=list[i]; - // } - //} switch(Math.floor(Math.random()*6)){ case 0:return 'heart2'; case 1:case 4:case 5:return 'diamond2'; @@ -1052,6 +1037,7 @@ character.standard={ } }; "step 1" + game.log(target,'选择了'+get.translation(result.control)); event.choice=result.control; target.popup(event.choice); event.card=player.get('h').randomGet(); @@ -1336,6 +1322,9 @@ character.standard={ audio:2, trigger:{player:'shaBegin'}, forced:true, + filter:function(event,player){ + return !event.directHit; + }, content:function(){ "step 0" var next=trigger.target.chooseToRespond({name:'shan'}); diff --git a/character/woods.js b/character/woods.js index 7e96b9d77..f29aca5ef 100755 --- a/character/woods.js +++ b/character/woods.js @@ -540,6 +540,7 @@ character.woods={ trigger:{player:'shaBegin',target:'shaBegin'}, forced:true, filter:function(event,player){ + if(event.directHit) return false; if(player==event.player){ return event.target.sex=='female'; } @@ -638,12 +639,21 @@ character.woods={ intro:{ content:'limited' }, + prepare:function(cards,player){ + player.line(game.players); + for(var i=0;itarget.hp+2) return 0; + if(ai.get.attitude(player,target)>3) return 1; + return 0; + } + } + } + }, + mingjian2:{ + mark:true, + intro:{ + content:'手牌上限+1,出杀次数+1' + }, + mod:{ + maxHandcard:function(player,num){ + return num+1; + }, + cardUsable:function(card,player,num){ + if(card.name=='sha') return num+1; + } + }, + }, + mingjian_old:{ audio:2, trigger:{player:'phaseUseBefore'}, direct:true, @@ -1827,7 +1868,7 @@ character.yijiang={ } } }, - mingjian2:{ + mingjian2_old:{ audio:false, trigger:{global:'phaseAfter'}, forced:true, @@ -4303,6 +4344,7 @@ character.yijiang={ qice2:{ filterCard:true, selectCard:-1, + audio:2 }, qice3:{ trigger:{player:'useCardBefore'}, @@ -4616,7 +4658,7 @@ character.yijiang={ "step 2" var source=target; event.card=result.buttons[0].link; - player.chooseTarget(function(card,player,target){ + player.chooseTarget('选择一个目标送出'+get.translation(event.card),function(card,player,target){ return target!=source&&target!=player; }).ai=function(target){ return ai.get.attitude(player,target); @@ -5472,7 +5514,8 @@ character.yijiang={ huituo:'恢拓', huituo_info:'每当你受到伤害后,你可以令一名角色进行一次判定,若结果为红色,该角色回复1点体力;若结果为黑色,该角色摸X张牌(X为此次伤害的伤害数)', mingjian:'明鉴', - mingjian_info:'你可以跳过出牌阶段并将所有手牌交给一名其他角色。若如此做,你结束此回合,然后该角色进行一个额外的出牌阶段', + mingjian2:'明鉴', + mingjian_info:'出牌阶段限一次,你可以将所有手牌交给一名其他角色,若如此做,该角色于其下个回合的手牌上限+1,且出杀的次数上限+1', xingshuai:'兴衰', xingshuai_info:'主公技,限定技,当你进入濒死状态时,其他魏势力角色可依次令你回复1点体力,然后这些角色依次受到1点伤害', duodao:'夺刀', diff --git a/character/yxs.js b/character/yxs.js index 5a8004c4f..5c3e970c8 100755 --- a/character/yxs.js +++ b/character/yxs.js @@ -20,8 +20,588 @@ character.yxs={ yxs_lishimin:['male','qun',4,['kongju']], yxs_huamulan:['female','shu',3,['xiaoji','yizhuang']], yxs_luobinhan:['male','wu',4,['xiadao','lzhangyi']], + yxs_chengjisihan:['male','qun',4,['mashu','qianglue']], + yxs_mingchenghuanghou:['female','shu',3,['tiewan','chajue']], + yxs_wangzhaojun:['female','qun',3,['heqin','luoyan']], + yxs_luocheng:['male','wu',4,['hanqiang','biaoqi']], + yxs_direnjie:['male','wei',3,['shentan','kanpo']], + yxs_sunwu:['male','wu',3,['bingsheng','taolue']], + yxs_chengyaojin:['male','qun',4,['sanbanfu']], + yxs_yuji:['female','qun',3,['sheshen','changnian']], + yxs_xiangyu:['male','qun',4,['wushuang','ciqiu']], + yxs_yingzheng:['male','qun',4,['jianxiong','batu']], + yxs_yuefei:['male','qun',4,['longdan','wumu']], + yxs_fuermosi:['male','qun',3,['yanyi','jiean']], + yxs_guiguzi:['male','qun',3,['baihe','yinyang','xiushen']], + yxs_xiaoqiao:['female','wu',3,['chujia','zhijie']], + yxs_luzhishen:['male','qun',4,['dili','kuangchan']], }, skill:{ + dili:{ + trigger:{player:'phaseDrawBegin'}, + forced:true, + filter:function(event,player){ + return player.hp=player.maxHp-1) return [0,0]; + } + } + } + }, + kuangchan:{ + init:function(player){ + if(lib.config.mode=='identity'&&player.isZhu){ + player.maxHp--; + player.update(); + } + } + }, + chujia:{ + enable:'phaseUse', + filterCard:function(card){ + if(ui.selected.cards.length){ + return get.color(card)==get.color(ui.selected.cards[0]); + } + return true; + }, + usable:1, + selectCard:2, + check:function(card){ + return 6-ai.get.value(card); + }, + filterTarget:function(card,player,target){ + return target.hptarget.hp){ + target.draw(target.maxHp-target.hp); + } + }, + ai:{ + order:2, + result:{ + target:function(player,target){ + var num=target.maxHp-target.hp; + if(num>2) return num; + return 0; + } + } + } + }, + baihe:{ + enable:'phaseUse', + usable:1, + filterCard:true, + position:'he', + filterTarget:true, + content:function(){ + 'step 0' + if(target.isLinked()){ + target.link(); + } + else{ + target.link(); + target.draw(); + event.finish(); + } + 'step 1' + if(target.num('h')){ + target.chooseToDiscard('h',true); + } + }, + check:function(card){ + return 8-ai.get.value(card); + }, + ai:{ + order:1, + result:{ + player:function(player,target){ + if(!player.skills.contains('xiushen')) return 0; + if(target.isLinked()) return 0; + for(var i=0;i0) return -1; + return (_status.event.player.num('h')-_status.event.player.hp); + }, + ai2:function(target){ + return ai.get.attitude(_status.event.player,target)-4; + }, + prompt:'请选择要送人的卡牌' + }); + "step 3" + if(result.bool){ + result.targets[0].gain(result.cards); + player.$give(result.cards.length,result.targets[0]); + for(var i=0;i=4) return [1,get.tag(card,'damage')*2]; + if(target.hp==3) return [1,get.tag(card,'damage')*1.5]; + if(target.hp==2) return [1,get.tag(card,'damage')*0.5]; + } + } + } + } + }, + yanyi:{ + enable:'phaseUse', + usable:1, + filterCard:{color:'black'}, + position:'he', + filterTarget:function(card,player,target){ + return target!=player&&target.num('h')>0; + }, + content:function(){ + "step 0" + player.chooseControl('heart2','diamond2','club2','spade2').ai=function(event){ + switch(Math.floor(Math.random()*5)){ + case 0:return 'heart2'; + case 1:case 4:return 'diamond2'; + case 2:return 'club2'; + case 3:return 'spade2'; + } + }; + "step 1" + game.log(player,'选择了'+get.translation(result.control)); + event.choice=result.control.slice(0,result.control.length-1); + target.popup(result.control); + target.showHandcards(); + "step 2" + if(target.num('h',{suit:event.choice})){ + target.damage(); + } + }, + ai:{ + result:{ + target:function(player,target){ + return ai.get.damageEffect(target,player,target); + } + } + } + }, + wumu:{ + mod:{ + targetInRange:function(card,player){ + if(card.name=='sha'&&get.color(card)=='black') return true; + }, + cardUsable:function(card){ + if(card.name=='sha'&&get.color(card)=='red') return Infinity; + } + }, + trigger:{player:'useCard'}, + filter:function(event,player){ + return event.card.name=='sha'&&get.color(event.card)=='red'; + }, + forced:true, + content:function(){ + if(player.stat[player.stat.length-1].card.sha>0){ + player.stat[player.stat.length-1].card.sha--; + } + }, + }, + sheshen:{ + inherit:'yiji' + }, + sanbanfu:{ + trigger:{player:'shaBegin'}, + filter:function(event,player){ + return !event.directHit; + }, + check:function(event,player){ + if(ai.get.attitude(player,event.target)>=0) return false; + if(event.target.num('e','bagua')) return false; + if(event.target.hasSkillTag('respondShan')&&event.target.num('h')>=3) return false; + return true; + }, + content:function(){ + "step 0" + var next=trigger.target.chooseToRespond({name:'shan'}); + next.autochoose=lib.filter.autoRespondShan; + next.ai=function(card){ + return ai.get.unuseful2(card); + }; + player.storage.sanbanfu=false; + player.storage.sanbanfu2=false; + "step 1" + if(result.bool==false){ + trigger.untrigger(); + trigger.directHit=true; + player.storage.sanbanfu2=true; + } + else{ + player.storage.sanbanfu=true; + } + }, + group:['sanbanfu2','sanbanfu3'] + }, + sanbanfu2:{ + trigger:{player:'shaAfter'}, + forced:true, + popup:false, + filter:function(event,player){ + return player.storage.sanbanfu; + }, + content:function(){ + player.damage(trigger.target); + } + }, + sanbanfu3:{ + trigger:{source:'damageBegin'}, + forced:true, + popup:false, + filter:function(event,player){ + return event.card&&event.card.name=='sha'&&player.storage.sanbanfu2; + }, + content:function(){ + trigger.num++; + } + }, + bingsheng:{ + enable:'phaseUse', + usable:1, + filterCard:function(card){ + if(ui.selected.cards.length){ + return get.suit(card)!=get.suit(ui.selected.cards[0]); + } + return true; + }, + selectCard:2, + check:function(card){ + return 8-ai.get.value(card); + }, + filterTarget:function(card,player,target){ + if(target.hp>player.hp) return true; + if(target.hp0){ + target.damage(num); + } + else if(num<0&&target.hptarget.maxHp){ + num=player.hp-target.maxHp; + } + else{ + num=player.hp-target.hp; + } + if(target.hp==1&&num){ + return num+1; + } + return num; + } + } + } + }, + taolue:{ + mod:{ + maxHandcard:function(player,num){ + return num+1; + } + }, + }, + shentan:{ + enable:'phaseUse', + usable:1, + filterCard:true, + filterTarget:function(card,player,target){ + return target.num('h')>0&&get.distance(player,target)<=2; + }, + check:function(card){ + return 7-ai.get.value(card); + }, + content:function(){ + "step 0" + var hs=target.get('h'); + if(hs.length){ + event.card=hs.randomGet(); + player.gain(event.card); + target.$give(1,player); + + } + else{ + event.finish(); + } + "step 1" + var source=target; + player.chooseTarget('选择一个目标送出'+get.translation(event.card),function(card,player,target){ + return target!=player; + }).ai=function(target){ + var att=ai.get.attitude(player,target); + if(att>3&&player.num('h')>target.num('h')){ + return att; + } + return 0; + } + "step 2" + if(result.bool){ + result.targets[0].gain(card); + player.$give(1,result.targets[0]); + game.delay(); + } + }, + ai:{ + order:9, + result:{ + target:-1, + player:function(player,target){ + if(ai.get.attitude(player,target)>0){ + return 0; + } + return 1; + } + }, + }, + }, + hanqiang:{ + mod:{ + attackFrom:function(from,to,distance){ + if(!from.get('e','1')) return distance-1 + } + } + }, + biaoqi:{ + trigger:{player:'shaBegin'}, + forced:true, + content:function(){ + var range=get.attackRange(player); + if(range>trigger.target.hp){ + trigger.directHit=true; + } + else if(range0; + }, + check:function(event,player){ + return ai.get.attitude(player,event.target)<0; + }, + content:function(){ + 'step 0' + player.judge(function(card){ + return get.color(card)=='black'?1:-1; + }); + 'step 1' + if(result.bool){ + player.gainPlayerCard('he',trigger.target); + } + } + }, xiadao:{ enable:['chooseToRespond'], filterCard:true, @@ -1470,7 +2050,68 @@ character.yxs={ yxs_lishimin:'李世民', yxs_huamulan:'花木兰', yxs_luobinhan:'罗宾汉', + yxs_chengjisihan:'成吉思汗', + yxs_mingchenghuanghou:'明成皇后', + yxs_wangzhaojun:'王昭君', + yxs_luocheng:'罗成', + yxs_direnjie:'狄人杰', + yxs_sunwu:'孙武', + yxs_chengyaojin:'程咬金', + yxs_yuji:'虞姬', + yxs_xiangyu:'项羽', + yxs_yingzheng:'嬴政', + yxs_yuefei:'岳飞', + yxs_fuermosi:'福尔摩斯', + yxs_guiguzi:'鬼谷子', + yxs_xiaoqiao:'小乔', + yxs_luzhishen:'鲁智深', + kuangchan:'狂禅', + kuangchan_info:'锁定技,你做主公时,不增加体力上限', + dili:'底力', + dili_info:'锁定技,摸牌阶段,你额外摸X张牌,X为你已损失的体力值', + chujia:'初嫁', + chujia_info:'出牌阶段限一次,你可以弃置两张相同颜色的手牌,指定任意一名角色摸X张牌。(X为该角色已损失的体力值) ', + zhijie:'知节', + zhijie_info:'出牌阶段限一次,你的红桃手牌可以当做无中生有使用', + baihe:'捭阖', + baihe_info:'出牌阶段限一次,你可以弃置一张牌,选择以下1项执行:(1)横置1名未横置角色,该角色摸一张牌;(2)重置一名已横置角色,该角色弃置一张手牌', + yinyang:'阴阳', + yinyang_info:'出牌阶段限一次,你可以弃置两张手牌并选择3名角色,分别横置或重置这些角色', + xiushen:'修身', + xiushen_info:'锁定技,回合结束阶段,若场上有横置角色,你摸两张牌', + yanyi:'演绎', + yanyi_info:'出牌阶段限一次,你可以弃置一张黑色牌,指定1名角色和1种花色,若被指定角色的手牌中含有此花色,则受到1点伤害', + jiean:'结案', + jiean_info:'每当【演绎】造成伤害时,你可以摸X张牌,并以任意数量分配给任意角色(X为被【演绎】造成伤害角色的已损失体力值)。', + wumu:'武穆', + wumu_info:'锁定技,你的黑杀无视距离,红色不计入回合内的出杀限制', + sheshen:'舍身', + sheshen_info:'每当你受到一点伤害,可以观看牌堆顶的两张牌,并将其交给任意1~名角色', + sanbanfu:'三板斧', + sanbanfu_info:'当你对其他角色使用杀时,你可以使此杀有如下效果:若对方没有出闪,其受到2点伤害;若对方打出了一张闪,你与其各受到1点伤害;若对方打出了两张闪,你受到一点伤害', + bingsheng:'兵圣', + bingsheng_info:'出牌阶段限一次,你可以弃置两张花色不同的手牌,指定一名其他角色使其体力值与你相同', + taolue:'韬略', + taolue_info:'锁定技,你的手牌上限+1', + shentan:'神探', + shentan_info:'出牌阶段限一次,你可以弃置一张牌,获得距离2以内的一名角色的手牌,并可以将其交给任意一名角色', + hanqiang:'寒枪', + hanqiang_info:'锁定技,当你没装备武器时,攻击范围+1', + biaoqi:'骠骑', + biaoqi_info:'锁定技,当你出杀指定目标后,若你的攻击范围大于目标体力值,则此杀不可闪避;若你的攻击范围小于目标体力值,你摸一张牌', + luoyan:'落雁', + luoyan_info:'锁定技,你即将受到的属性伤害均改为无属性', + heqin:'和亲', + heqin2:'和亲', + heqin3:'和亲', + heqin_info:'限定技,你可以与场上一名男性角色形成【和亲】状态,你与该男性角色于摸牌阶段摸牌数+1。你或者男性角色阵亡,【和亲】状态消失', + chajue:'察觉', + chajue_info:'锁定技,你的回合外,你每受到一次伤害,任何【杀】或非延时类锦囊均对你无效,直到该回合结束。', + tiewan:'铁腕', + tiewan_info:'每当其他角色使用乐不思蜀时,你可以立即将一张红色牌当作乐不思蜀使用', + qianglue:'强掠', + qianglue_info:'每当你的杀被闪避时,你可以进行一次判定,若结果为黑色,你可以获得对方的一张牌', xiadao:'侠盗', xiadao_info:'当你的装备区内没有牌时,你可以将一张手牌当作闪使用或打出', lzhangyi:'仗义', @@ -1517,7 +2158,7 @@ character.yxs={ nvquan:'女权', nvquan1:'女权', nvquan2:'女权', - nvquan_info:'你对男性角色使用【杀】或【决斗】时,对方需连续打出两张【杀】当做一张【杀】;你不能成为男性角色的决斗目标', + nvquan_info:'你对男性角色使用【杀】或【决斗】时,对方需连续打出两张【闪】或【杀】响应;你不能成为男性角色的决斗目标', qiandu:'迁都', qiandu_info:'出牌阶段,你可以弃一张黑色手牌,和一名存活的玩家与其交换位置。每回合限一次。', budao:'补刀', @@ -1536,8 +2177,6 @@ character.yxs={ sheshi_info:'每受到1次伤害,可以指定1种花色,依次展示牌堆顶的牌,直到出现指定花色的牌为止,你获得与指定花色不同花色的所有牌(最多展示4张牌)。', - sanbanfu:'三板斧', - sanbanfu_info:'出牌阶段,你使用对目标角色使用【杀】时,若目标角色不出闪,则目标受到2点伤害,你弃掉1张手牌;若目标角色出1张闪,则目标角色受到1点伤害,你自减1点血量;若目标角色出2张闪,则目标角色不掉血,你自减1点血量。每回合限一次。', fengyi:'凤仪', fengyi_info:'出牌阶段,你可以弃一张手牌,指定任意目标摸两张牌。(每回合限用一次)', wange:'婉歌', @@ -1547,8 +2186,6 @@ character.yxs={ nichang_info:'摸牌时,你可以选择不摸牌,回合结束时展示手牌,每少一种花色摸一张牌', fengyan:'丰艳', fengyan_info:'你可以获得其他男性角色的红色判定牌', - chujia:'出嫁', - chujia_info:'出牌阶段可以弃掉两张相同颜色的手牌,指定任意角色摸X张牌。(X为该角色已损失的血量)', zhulu:'逐鹿', zhulu_info:'回合外,当有非延时锦囊结算完毕后,你可以立即弃掉一张相同花色手牌或装备区的牌,获得这张锦囊牌。', jieyong:'节用', diff --git a/game/game.js b/game/game.js index 686be6c61..9a12fb1a3 100755 --- a/game/game.js +++ b/game/game.js @@ -16,8 +16,11 @@ dieClose:[] }; var lib={ - version:1.72, - changeLog:[], + version:1.73, + changeLog:[ + 'bug修复', + '新武将' + ], configprefix:'noname_0.9_', updates:[], canvasUpdates:[], @@ -3905,6 +3908,9 @@ player.logSkill(event.skill); player.popup(event.card.name); } + if(event.audio===false){ + cardaudio=false; + } if(cardaudio&&lib.config.background_audio){ var sex=player.sex=='female'?'female':'male'; if(lib.card[card.name].audio||lib.config.background_ogg){ @@ -4078,7 +4084,7 @@ "step 0" var info=get.info(event.skill); event._skill=event.skill; - if(lib.config.background_speak&& + if(!info.direct&&lib.config.background_speak&& (!lib.skill.global.contains(event.skill)||lib.skill[event.skill].forceaudio)){ var audioname=event.skill; var audioinfo=info.audio; @@ -4103,6 +4109,9 @@ } if(info.discard!=false&&info.lose!=false&&!info.viewAs){ player.discard(cards).delay=false; + if(info.prepare){ + info.prepare(cards,player,targets); + } } else{ if(info.lose!=false){ @@ -10343,8 +10352,8 @@ if(temp<0) temp+=num; players[i].dataset.position=temp; } - game.me.node.handcards1.delete(); - game.me.node.handcards2.delete(); + game.me.node.handcards1.remove(); + game.me.node.handcards2.remove(); game.me=player; ui.handcards1=player.node.handcards1.animate('start').fix(); ui.handcards2=player.node.handcards2.animate('start').fix(); @@ -11749,8 +11758,8 @@ if(temp<0) temp+=num; players[i].dataset.position=temp; } - game.me.node.handcards1.delete(); - game.me.node.handcards2.delete(); + game.me.node.handcards1.remove(); + game.me.node.handcards2.remove(); game.me=player; ui.handcards1=player.node.handcards1.animate('start').fix(); ui.handcards2=player.node.handcards2.animate('start').fix(); @@ -11872,6 +11881,9 @@ game.pause(); "step 3" if(event.bool){ + if(game.changeCoin){ + game.changeCoin(-10); + } game.me.lose(game.me.get('h'))._triggered=null; } else{ @@ -15261,6 +15273,9 @@ var currentrow3=null; var clickrow3=function(){ + if(game.changeCoin){ + game.changeCoin(-20); + } game.swapPlayer(this.link); }; menuUpdates.push(function(){ @@ -17520,6 +17535,7 @@ } } if(this.parentNode.classList.contains('hidden')) return; + if(this.parentNode.classList.contains('removing')) return; if(ui.intro){ ui.intro.close(); delete ui.intro; diff --git a/image/character/yxs_chengjisihan.jpg b/image/character/yxs_chengjisihan.jpg new file mode 100644 index 000000000..10f11c59e Binary files /dev/null and b/image/character/yxs_chengjisihan.jpg differ diff --git a/image/character/yxs_chengyaojin.jpg b/image/character/yxs_chengyaojin.jpg new file mode 100644 index 000000000..50e80a74d Binary files /dev/null and b/image/character/yxs_chengyaojin.jpg differ diff --git a/image/character/yxs_direnjie.jpg b/image/character/yxs_direnjie.jpg new file mode 100644 index 000000000..269956fe2 Binary files /dev/null and b/image/character/yxs_direnjie.jpg differ diff --git a/image/character/yxs_fuermosi.jpg b/image/character/yxs_fuermosi.jpg new file mode 100644 index 000000000..30b8a5193 Binary files /dev/null and b/image/character/yxs_fuermosi.jpg differ diff --git a/image/character/yxs_guiguzi.jpg b/image/character/yxs_guiguzi.jpg new file mode 100644 index 000000000..3fbcf84fa Binary files /dev/null and b/image/character/yxs_guiguzi.jpg differ diff --git a/image/character/yxs_luocheng.jpg b/image/character/yxs_luocheng.jpg new file mode 100644 index 000000000..e4eaab3a2 Binary files /dev/null and b/image/character/yxs_luocheng.jpg differ diff --git a/image/character/yxs_luzhishen.jpg b/image/character/yxs_luzhishen.jpg new file mode 100644 index 000000000..6b4adf802 Binary files /dev/null and b/image/character/yxs_luzhishen.jpg differ diff --git a/image/character/yxs_mingchenghuanghou.jpg b/image/character/yxs_mingchenghuanghou.jpg new file mode 100644 index 000000000..42c658a87 Binary files /dev/null and b/image/character/yxs_mingchenghuanghou.jpg differ diff --git a/image/character/yxs_mozi.jpg b/image/character/yxs_mozi.jpg index ac3b65a08..e30747ef9 100644 Binary files a/image/character/yxs_mozi.jpg and b/image/character/yxs_mozi.jpg differ diff --git a/image/character/yxs_sunwu.jpg b/image/character/yxs_sunwu.jpg new file mode 100644 index 000000000..2d970d6da Binary files /dev/null and b/image/character/yxs_sunwu.jpg differ diff --git a/image/character/yxs_wangzhaojun.jpg b/image/character/yxs_wangzhaojun.jpg new file mode 100644 index 000000000..7377ea420 Binary files /dev/null and b/image/character/yxs_wangzhaojun.jpg differ diff --git a/image/character/yxs_xiangyu.jpg b/image/character/yxs_xiangyu.jpg new file mode 100644 index 000000000..9e7859323 Binary files /dev/null and b/image/character/yxs_xiangyu.jpg differ diff --git a/image/character/yxs_xiaoqiao.jpg b/image/character/yxs_xiaoqiao.jpg new file mode 100644 index 000000000..2fbf86e55 Binary files /dev/null and b/image/character/yxs_xiaoqiao.jpg differ diff --git a/image/character/yxs_yingzheng.jpg b/image/character/yxs_yingzheng.jpg new file mode 100644 index 000000000..cf53201a2 Binary files /dev/null and b/image/character/yxs_yingzheng.jpg differ diff --git a/image/character/yxs_yuefei.jpg b/image/character/yxs_yuefei.jpg new file mode 100644 index 000000000..bf62b1ee4 Binary files /dev/null and b/image/character/yxs_yuefei.jpg differ diff --git a/image/character/yxs_yuji.jpg b/image/character/yxs_yuji.jpg new file mode 100644 index 000000000..9394c89ae Binary files /dev/null and b/image/character/yxs_yuji.jpg differ diff --git a/mode/boss.js b/mode/boss.js index a5b017cf6..ca83b8c06 100755 --- a/mode/boss.js +++ b/mode/boss.js @@ -458,6 +458,9 @@ mode.boss={ if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){ return; } + if(game.changeCoin){ + game.changeCoin(-10); + } list.randomSort(); _status.event.dialog.close(); _status.event.dialog=ui.create.dialog('选择参战角色','hidden'); @@ -481,6 +484,9 @@ mode.boss={ _status.createControl=event.asboss; ui.cheat2=ui.create.control('自由选将',function(){ if(this.dialog==_status.event.dialog){ + if(game.changeCoin){ + game.changeCoin(50); + } this.dialog.close(); _status.event.dialog=this.backup; ui.window.appendChild(this.backup); @@ -496,6 +502,9 @@ mode.boss={ } } else{ + if(game.changeCoin){ + game.changeCoin(-50); + } ui.cheat2x=ui.create.groupControl(_status.event.parent.dialogxx); this.backup=_status.event.dialog; _status.event.dialog.close(); diff --git a/mode/chess.js b/mode/chess.js index 590869014..06b9c88aa 100755 --- a/mode/chess.js +++ b/mode/chess.js @@ -3601,6 +3601,9 @@ mode.chess={ if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){ return; } + if(game.changeCoin){ + game.changeCoin(-10); + } list.randomSort(); _status.event.dialog.close(); var dialog=ui.create.dialog('选择出场角色','hidden'); @@ -3630,6 +3633,9 @@ mode.chess={ ui.create.cheat2=function(){ ui.cheat2=ui.create.control('自由选将',function(){ if(this.dialog==_status.event.dialog){ + if(game.changeCoin){ + game.changeCoin(50); + } this.dialog.close(); _status.event.dialog=this.backup; this.backup.open(); @@ -3645,6 +3651,9 @@ mode.chess={ } } else{ + if(game.changeCoin){ + game.changeCoin(-50); + } ui.cheat2x=ui.create.groupControl(_status.event.parent.dialogxx); this.backup=_status.event.dialog; _status.event.dialog.close(); diff --git a/mode/guozhan.js b/mode/guozhan.js index a474b7256..74d14bf62 100755 --- a/mode/guozhan.js +++ b/mode/guozhan.js @@ -321,6 +321,9 @@ mode.guozhan={ ui.create.cheat2=function(){ ui.cheat2=ui.create.control('自由选将',function(){ if(this.dialog==_status.event.dialog){ + if(game.changeCoin){ + game.changeCoin(50); + } this.dialog.close(); _status.event.dialog=this.backup; this.backup.open(); @@ -336,6 +339,9 @@ mode.guozhan={ } } else{ + if(game.changeCoin){ + game.changeCoin(-50); + } ui.cheat2x=ui.create.groupControl(_status.event.parent.dialogxx); this.backup=_status.event.dialog; _status.event.dialog.close(); @@ -356,6 +362,9 @@ mode.guozhan={ if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){ return; } + if(game.changeCoin){ + game.changeCoin(-10); + } event.list=event.list.concat(list); event.list.randomSort(); list=event.list.splice(0,parseInt(get.config('choice_num'))); diff --git a/mode/identity.js b/mode/identity.js index 9d8d5fc1b..fff16c92f 100755 --- a/mode/identity.js +++ b/mode/identity.js @@ -618,6 +618,9 @@ mode.identity={ if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){ return; } + if(game.changeCoin){ + game.changeCoin(-10); + } if(game.zhu!=game.me){ event.list=event.list.concat(list); event.list.randomSort(); @@ -641,6 +644,9 @@ mode.identity={ ui.create.cheat2=function(){ ui.cheat2=ui.create.control('自由选将',function(){ if(this.dialog==_status.event.dialog){ + if(game.changeCoin){ + game.changeCoin(50); + } this.dialog.close(); _status.event.dialog=this.backup; this.backup.open(); @@ -656,6 +662,9 @@ mode.identity={ } } else{ + if(game.changeCoin){ + game.changeCoin(-50); + } ui.cheat2x=ui.create.groupControl(_status.event.parent.dialogxx); this.backup=_status.event.dialog; _status.event.dialog.close(); diff --git a/mode/stone.js b/mode/stone.js index 1ff39045e..41f9cb105 100755 --- a/mode/stone.js +++ b/mode/stone.js @@ -902,6 +902,9 @@ mode.stone={ if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){ return; } + if(game.changeCoin){ + game.changeCoin(-10); + } list.randomSort(); _status.event.dialog.close(); _status.event.dialog=ui.create.dialog('按顺序选择出场角色'+(get.config('double_character')?'(双将)':'')); @@ -919,6 +922,9 @@ mode.stone={ ui.create.cheat2=function(){ ui.cheat2=ui.create.control('自由选将',function(){ if(this.dialog==_status.event.dialog){ + if(game.changeCoin){ + game.changeCoin(50); + } this.dialog.close(); _status.event.dialog=this.backup; this.backup.open(); @@ -934,6 +940,9 @@ mode.stone={ } } else{ + if(game.changeCoin){ + game.changeCoin(-50); + } ui.cheat2x=ui.create.groupControl(_status.event.parent.dialogxx); this.backup=_status.event.dialog; _status.event.dialog.close(); diff --git a/play/coin.js b/play/coin.js index c4a932af9..85588bb0d 100644 --- a/play/coin.js +++ b/play/coin.js @@ -16,6 +16,16 @@ play.coin={ str=''+lib.config.coin+''; } ui.coin=ui.create.system(str,null,true); + // lib.setPopped(ui.coin,function(){ + // var uiintro=ui.create.dialog('hidden'); + // uiintro.add('商店'); + // uiintro.listen(function(e){ + // e.stopPropagation(); + // }); + // uiintro.add('
本局比赛能否获得胜利?
'); + // uiintro.classList.add('noleave'); + // return uiintro; + // },220,400); } }, game:{ @@ -37,7 +47,8 @@ play.coin={ '富甲天下':'
  • 每完成一次对局,可获得一定数量的金币'+ '
  • 战斗胜利可额外获得20金币,每杀死一个敌人可获得10金币(托管无效)'+ '
  • 使用的武将越强,获得的金币数越少'+ - '
  • 每进行一次作弊,扣除20金币'+ + '
  • 执行以下操作时,将扣除金币:
    • 作弊:20金币
    • 换将卡:10金币
    • '+ + '自由选将:50金币
    • 手气卡:10金币
    • 换人:20金币
    '+ '
  • 金币暂时还没什么用〜' } }