diff --git a/audio/skill/reyingzi_re_sunce1.mp3 b/audio/skill/reyingzi_re_sunce1.mp3 new file mode 100644 index 000000000..8daedf3d2 Binary files /dev/null and b/audio/skill/reyingzi_re_sunce1.mp3 differ diff --git a/audio/skill/reyingzi_re_sunce2.mp3 b/audio/skill/reyingzi_re_sunce2.mp3 new file mode 100644 index 000000000..9ab742c6a Binary files /dev/null and b/audio/skill/reyingzi_re_sunce2.mp3 differ diff --git a/audio/skill/yinghun_re_sunce1.mp3 b/audio/skill/yinghun_re_sunce1.mp3 new file mode 100644 index 000000000..e65c64986 Binary files /dev/null and b/audio/skill/yinghun_re_sunce1.mp3 differ diff --git a/audio/skill/yinghun_re_sunce2.mp3 b/audio/skill/yinghun_re_sunce2.mp3 new file mode 100644 index 000000000..e208cef89 Binary files /dev/null and b/audio/skill/yinghun_re_sunce2.mp3 differ diff --git a/card/standard.js b/card/standard.js index 490367ea6..4440c854b 100644 --- a/card/standard.js +++ b/card/standard.js @@ -1680,6 +1680,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ selectCard:2, position:'h', viewAs:{name:'sha'}, + complexCard:true, filter:function(event,player){ return player.countCards('h')>=2; }, @@ -2018,7 +2019,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ if(eff>=0) return 0; return state*get.attitude(_status.event.player,source); } - else{ + else if(target){ var triggerevent=_status.event.getTrigger(); if(triggerevent&&triggerevent.parent&& triggerevent.parent.postAi&& @@ -2040,6 +2041,21 @@ game.import('card',function(lib,game,ui,get,ai,_status){ if(Math.abs(get.attitude(_status.event.player,target))<3) return 0; return -get.effect(target,card,source,_status.event.player)*state; } + else{ + var triggerevent=_status.event.getTrigger(); + if(triggerevent&&triggerevent.parent&& + triggerevent.parent.postAi&& + triggerevent.player.isUnknown(_status.event.player)){ + return 0; + } + var info=get.info(card); + if(info.ai&&info.ai.wuxie){ + var aiii=info.ai.wuxie(target,card,source,_status.event.player,state); + if(typeof aiii=='number') return aiii; + } + if(Math.abs(get.attitude(_status.event.player,source))<3) return 0; + return -get.attitude(_status.event.player,source) + } }, source:target, source2:targets, diff --git a/character/extra.js b/character/extra.js index 0916f07ec..acf691456 100755 --- a/character/extra.js +++ b/character/extra.js @@ -355,7 +355,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{player:'phaseDiscardEnd'}, direct:true, filter:function(event,player){ - return event.cards&&event.cards.length>1 + var cards=[]; + player.getHistory('lose',function(evt){ + if(evt.type=='discard'&&evt.getParent('phaseDiscard')==event) cards.addArray(evt.cards2); + }); + return cards.length>1; }, content:function(){ "step 0" @@ -743,7 +747,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filterCard:lib.filter.cardDiscardable, discard:false, lose:false, - delay:0, + delay:false, selectCard:[1,Infinity], prompt:'弃置一枚“忍”,然后弃置任意张牌并摸等量的牌。若弃置了所有的手牌,则可以多摸一张牌。', check:function(card){ @@ -793,7 +797,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:true, trigger:{player:'useCard'}, filter:function(event,player){ - return (get.type(event.card,'trick')=='trick'&&event.card.isCard); + return (get.type(event.card,'trick')=='trick'&&event.card.isCard&&player.hasMark('renjie')); }, init:function(player){ player.storage.jilue_jizhi=0; diff --git a/character/gwent.js b/character/gwent.js index 890bd170b..162ba1ca0 100644 --- a/character/gwent.js +++ b/character/gwent.js @@ -1902,7 +1902,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, usable:1, filter:function(event,player){ - if(event.cards.length.length==1&&event.cards[0]==event.card){ + if(event.card.isCard){ return !player.hasSkill('jielue2')&&get.type(event.card)=='basic'&&!event.card.storage.jielue; } return false; diff --git a/character/hearth.js b/character/hearth.js index a7d117b5c..377e6238b 100644 --- a/character/hearth.js +++ b/character/hearth.js @@ -2287,7 +2287,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{target:'useCardToBegin'}, forced:true, filter:function(event,player){ - return get.type(event.card,'trick')=='trick'&&event.player==player&&event.cards[0]&&event.cards[0]==event.card; + return player==event.player&&get.type(event.card,'trick')=='trick'&&event.card.isCard; }, content:function(){ 'step 0' @@ -5222,7 +5222,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ usable:3, filter:function(event,player){ if(_status.currentPhase!=player) return false; - return (get.type(event.card)=='trick'&&event.cards[0]&&event.cards[0]==event.card); + return (get.type(event.card)=='trick'&&event.card.isCard); }, content:function(){ player.draw(); @@ -5265,7 +5265,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ frequent:true, filter:function(event,player){ if(_status.currentPhase!=player) return false; - return (get.type(event.card)=='trick'&&event.cards[0]&&event.cards[0]==event.card); + return (get.type(event.card)=='trick'&&event.card.isCard); }, content:function(){ player.draw(); @@ -6204,7 +6204,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{player:'useCard'}, direct:true, filter:function(event){ - return get.type(event.card,'trick')=='trick'&&event.cards[0]&&event.cards[0]==event.card; + return get.type(event.card,'trick')=='trick'&&event.card.isCard; }, content:function(){ "step 0" diff --git a/character/shenhua.js b/character/shenhua.js index de11324aa..feeaa4a83 100755 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -275,7 +275,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filterTarget:function(card,player,target){ return target.countDiscardableCards(player,'ej')>0; }, - delay:0, + delay:false, audio:'drlt_zhengrong', content:lib.skill.qingce.contentx, ai:{ @@ -3240,7 +3240,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return { filterCard:function(){return false}, selectCard:-1, - viewAs:{name:'shunshou'}, + viewAs:{name:'shunshou',cards:links}, cards:links, onuse:function(result,player){ result.cards=lib.skill[result.skill].cards; @@ -3258,7 +3258,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, prompt:function(links,player){ - return '选择急袭的目标'; + return '请选择【顺手牵羊】的目标'; } }, ai:{ @@ -6406,9 +6406,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ evt=event.getParent(); } var player=evt[event.name=='gain'?'source':'player']; - if(!player||_status.currentPhase==player||player.isDead()) return false; + if(!player||player.isDead()) return false; if(evt[event.name=='gain'?'bySelf':'notBySelf']!=true) return false; - if(evt.name=='lose') return evt.hs.length>0; + if(event.name=='lose') return event.hs.length>0; return event.relatedLose&&event.relatedLose.hs&&event.relatedLose.hs.length>0; }, check:function(event,player){ @@ -7066,7 +7066,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ guidao_info:'一名角色的判定牌生效前,你可以打出一张黑色牌替换之。', huangtian_info:'主公技,其他群势力角色的出牌阶段限一次,其可以交给你一张【闪】或【闪电】。', guhuo_info:'每名角色的回合限一次,你可以扣置一张手牌当一张基本牌或普通锦囊牌使用或打出。其他角色依次选择是否质疑。一旦有其他角色质疑则翻开此牌:若为假则此牌作废,若为真,则质疑角色获得技能“缠怨”(锁定技,你不能质疑于吉,只要你的体力值为1,你失去你的武将技能)', - fenji_info:'每当一名角色的手牌于回合外被其他角色弃置或获得时,你可以失去1点体力,然后令该角色摸两张牌。', + fenji_info:'当一名角色的手牌被其他角色弃置或获得后,你可以失去1点体力,然后令该角色摸两张牌。', gzduanliang:'断粮', gzduanliang_info:'你可以将一张黑色基本牌或黑色装备牌当【兵粮寸断】使用;你可以对距离为2的角色使用【兵粮寸断】', diff --git a/character/sp.js b/character/sp.js index 7ad46b533..c379c5c04 100755 --- a/character/sp.js +++ b/character/sp.js @@ -1946,7 +1946,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var cards=get.cards(2); event.cards=cards; game.log(player,'观看了牌堆顶的'+get.cnNumber(cards.length)+'张牌'); - player.chooseControl('ok').set('dialog',['卜卦',cards]); + player.chooseControl('ok').set('dialog',['推演',cards]); 'step 1' while(cards.length){ ui.cardPile.insertBefore(cards.pop(),ui.cardPile.firstChild); @@ -4130,7 +4130,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return event.player.hasMark('zongkui_mark'); }, content:function(){ - trigger.getParent().excluded.add(player); + trigger.targets.remove(player); game.delay(); trigger.player.removeMark('zongkui_mark'); } @@ -4782,7 +4782,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, discard:false, lose:true, - delay:0, + delay:false, content:function(){ 'step 0' player.showCards(get.translation(player)+'对'+get.translation(target)+'发动了【连计】',cards); @@ -4997,7 +4997,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return card.name=='sha'||get.type(card)=='equip'; }); }, - delay:0, + delay:false, usable:1, content:function(){ 'step 0' @@ -6240,7 +6240,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ forced:true, popup:false, filter:function(event,player){ - return event.card==player.storage.fuman3&&player.storage.fuman2.isIn(); + return event.cards.contains(player.storage.fuman3)&&player.storage.fuman2.isIn(); }, mark:true, intro:{ @@ -7613,7 +7613,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filterCard:{color:'black'}, mark:true, discard:false, - delay:0, + delay:false, check:function(card){ if(_status.event.player.hp==1) return 8-get.value(card); return 6-get.value(card); diff --git a/character/yijiang.js b/character/yijiang.js index 8c3c5d77b..3a664f326 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -2809,7 +2809,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }); }, direct:true, - delay:0, + delay:false, filterCard:true, discard:false, lose:false, @@ -3135,9 +3135,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter:function(event,player){ if(!player.countCards('h')) return false; if(player.getStat('skill').zhongjian&&!player.hasSkill('zhongjian2')) return false; - return game.hasPlayer(function(current){ - return current!=player&¤t.countCards('h')>current.hp; - }); + return true; }, filterCard:true, check:function(){ @@ -3146,7 +3144,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ discard:false, lose:false, filterTarget:function(card,player,target){ - return target!=player; + return target!=player&&target.countCards('h')>0; }, content:function(){ 'step 0' @@ -3459,7 +3457,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ if(player.storage.xinsidi4.isAlive()&&!player.getHistory('useCard',function(evt){ return evt.card.name=='sha'; - })){ + }).length&&player.storage.xinsidi4.canUse({name:'sha',isCard:true},player,false)){ player.storage.xinsidi4.logSkill('xinsidi',player); player.storage.xinsidi4.useCard({name:'sha',isCard:true},player); } @@ -4007,7 +4005,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filterCard:true, discard:false, lose:false, - delay:0, + delay:false, content:function(){ 'step 0' player.showCards(cards); @@ -5149,7 +5147,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return target==_status.event.dying; }, direct:true, - delay:0, + delay:false, selectTarget:-1, content:function(){ "step 0" @@ -5298,14 +5296,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{global:'phaseJudgeBegin'}, direct:true, filter:function(event,player){ - return event.player!=player&&event.player.countCards('j')>0&&player.inRange(event.player)<=1; + return event.player!=player&&event.player.countCards('j')>0&&player.inRange(event.player); }, content:function(){ 'step 0' var att=get.attitude(player,trigger.player); var nh=trigger.player.countCards('h'); - var eff=get.effect(trigger.player,{name:'sha'},player,player); - if(!player.canUse({name:'sha'},trigger.player)) eff=0; + var eff=get.effect(trigger.player,{name:'sha',isCard:true},player,player); + if(!player.canUse({name:'sha',isCard:true},trigger.player)) eff=0; player.discardPlayerCard(get.prompt('yonglve',trigger.player),trigger.player,'j').set('ai',function(button){ var name=button.link.viewAs||button.link.name; var att=_status.event.att; @@ -5781,7 +5779,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, enable:'phaseUse', usable:1, - delay:0, + delay:false, filter:function(event,player){ return player.countCards('h',{color:'red'})&&player.countCards('h',{color:'black'}); }, @@ -8238,7 +8236,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filterCard:function(){return false}, selectCard:-1, card:links[0], - delay:0, + delay:false, content:lib.skill.paiyi.contentx, ai:{ order:10, @@ -10527,7 +10525,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ forceaudio:true, direct:true, prompt:'弃置一名有【逆】的角色的两张【逆】,然后视为对包含其在内的角色使用【杀】。', - delay:0, + delay:false, log:false, precontent:function(){ "step 0" diff --git a/font/huangcao.ttf b/font/huangcao.ttf index afe13f425..67e0d49a6 100644 Binary files a/font/huangcao.ttf and b/font/huangcao.ttf differ diff --git a/font/xiaozhuan.ttf b/font/xiaozhuan.ttf index 0a41e0413..33eb29f71 100644 Binary files a/font/xiaozhuan.ttf and b/font/xiaozhuan.ttf differ diff --git a/font/yuanli.ttf b/font/yuanli.ttf index 9c9dd5432..c806ec5eb 100644 Binary files a/font/yuanli.ttf and b/font/yuanli.ttf differ diff --git a/game/asset.js b/game/asset.js index 0717c7f17..fbf8d7ab1 100644 --- a/game/asset.js +++ b/game/asset.js @@ -1,5 +1,5 @@ window.noname_asset_list=[ - '1.9.98.1', + '1.9.98.2.3', 'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_online.mp3', 'audio/background/aozhan_rewrite.mp3', @@ -2334,6 +2334,10 @@ window.noname_asset_list=[ 'audio/skill/xiangle_ol_liushan2.mp3', 'audio/skill/zongkui_tw_beimihu1.mp3', 'audio/skill/zongkui_tw_beimihu2.mp3', + 'audio/skill/reyingzi_re_sunce1.mp3', + 'audio/skill/reyingzi_re_sunce2.mp3', + 'audio/skill/yinghun_re_sunce1.mp3', + 'audio/skill/yinghun_re_sunce2.mp3', 'font/huangcao.ttf', 'font/shousha.ttf', diff --git a/game/game.js b/game/game.js index cc5a155aa..ed8e060b7 100644 --- a/game/game.js +++ b/game/game.js @@ -31907,11 +31907,9 @@ if(method=='raw') return equipValue; return equipValue-value; } - if(!card.ai.result.target) card.ai.result.target=(function(name){ - return (function(player,target){ - return get.equipResult(player,target,name); - }); - }(i)); + if(!card.ai.result.keepAI) card.ai.result.target=function(player,target,card){ + return get.equipResult(player,target,card.name); + }; } else if(card.type=='delay'){ if(card.enable==undefined) card.enable=true; @@ -39056,12 +39054,12 @@ } else{ if(updates[i].indexOf('image/character')==0){ - if(updates[i].indexOf('jun_')!=16&&!skipcharacter.contains(updates[i].slice(16,updates[i].lastIndexOf('.')))){ + if(updates[i].indexOf('jun_')!=16&&updates[i].indexOf('gz_')!=16&&!skipcharacter.contains(updates[i].slice(16,updates[i].lastIndexOf('.')))){ updates.splice(i--,1); } } else if(updates[i].indexOf('image/card')==0){ - if(!skipcard.contains(updates[i].slice(11,updates[i].lastIndexOf('.')))){ + if(updates[i].indexOf('qiaosi_card')!=11&&!skipcard.contains(updates[i].slice(11,updates[i].lastIndexOf('.')))){ updates.splice(i--,1); } } diff --git a/game/package.js b/game/package.js index 80a02aece..68564c785 100644 --- a/game/package.js +++ b/game/package.js @@ -117,7 +117,7 @@ window.noname_package={ xiaozhuan:'小篆', xinwei:'新魏', huangcao:'黄草', - yuanli:'隶书', + yuanli:'楷体', xingkai:'行楷', shousha:'手杀', }, diff --git a/game/update.js b/game/update.js index c435f6eb6..24cba747c 100644 --- a/game/update.js +++ b/game/update.js @@ -1,50 +1,49 @@ window.noname_update={ - version:'1.9.98.2', - update:'1.9.98.1', + version:'1.9.98.2.3', + update:'1.9.98.2.2', changeLog:[ - '3v3v2模式', - '逐鹿中原卡牌包', + 'bug修复', ], files:[ - 'card/extra.js', - 'card/huanlekapai.js', + //'card/extra.js', + //'card/huanlekapai.js', //'card/sp.js', 'card/standard.js', //'card/swd.js', //'card/mtg.js', - 'card/guozhan.js', + //'card/guozhan.js', //'card/gwent.js', - 'card/zhulu.js', - 'character/diy.js', + //'card/zhulu.js', + //'character/diy.js', 'character/extra.js', - //'character/hearth.js', + 'character/hearth.js', //'character/gujian.js', - //'character/gwent.js', - 'character/mobile.js', + 'character/gwent.js', + //'character/mobile.js', //'character/mtg.js', - 'character/old.js', - 'character/refresh.js', + //'character/old.js', + //'character/refresh.js', 'character/shenhua.js', 'character/sp.js', - 'character/tw.js', - 'character/standard.js', + //'character/tw.js', + //'character/standard.js', //'character/swd.js', //'character/xianjian.js', - 'character/xinghuoliaoyuan.js', + //'character/xinghuoliaoyuan.js', 'character/yijiang.js', //'character/yxs.js', //'extension/boss/extension.js', - 'layout/default/layout.css', - 'mode/identity.js', + //'layout/default/layout.css', + //'mode/identity.js', //'mode/doudizhu.js', - 'mode/guozhan.js', + //'mode/guozhan.js', //'mode/chess.js', //'mode/tafang.js', //'mode/single.js', //'mode/stone.js', - 'mode/brawl.js', + //'mode/brawl.js', //'mode/versus.js', - 'mode/boss.js', + //'mode/boss.js', 'game/game.js', //'game/NoSleep.js', //'game/config.js',