diff --git a/audio/die/bianfuren.mp3 b/audio/die/bianfuren.mp3 new file mode 100644 index 000000000..997fb0e30 Binary files /dev/null and b/audio/die/bianfuren.mp3 differ diff --git a/audio/die/caochun.mp3 b/audio/die/caochun.mp3 new file mode 100644 index 000000000..9c0a9ac60 Binary files /dev/null and b/audio/die/caochun.mp3 differ diff --git a/audio/die/mizhu.mp3 b/audio/die/mizhu.mp3 new file mode 100644 index 000000000..df4c746a8 Binary files /dev/null and b/audio/die/mizhu.mp3 differ diff --git a/audio/die/re_hanhaoshihuan.mp3 b/audio/die/re_hanhaoshihuan.mp3 new file mode 100644 index 000000000..b11d67925 Binary files /dev/null and b/audio/die/re_hanhaoshihuan.mp3 differ diff --git a/audio/die/re_panfeng.mp3 b/audio/die/re_panfeng.mp3 new file mode 100644 index 000000000..05ef5fa4b Binary files /dev/null and b/audio/die/re_panfeng.mp3 differ diff --git a/audio/die/re_panzhangmazhong.mp3 b/audio/die/re_panzhangmazhong.mp3 new file mode 100644 index 000000000..695a64731 Binary files /dev/null and b/audio/die/re_panzhangmazhong.mp3 differ diff --git a/audio/die/shen_ganning.mp3 b/audio/die/shen_ganning.mp3 new file mode 100644 index 000000000..60da5139e Binary files /dev/null and b/audio/die/shen_ganning.mp3 differ diff --git a/audio/die/shen_zhangliao.mp3 b/audio/die/shen_zhangliao.mp3 new file mode 100644 index 000000000..0aebd72a4 Binary files /dev/null and b/audio/die/shen_zhangliao.mp3 differ diff --git a/audio/die/shen_zhaoyun.mp3 b/audio/die/shen_zhaoyun.mp3 index 5b16f3b04..38e480c34 100644 Binary files a/audio/die/shen_zhaoyun.mp3 and b/audio/die/shen_zhaoyun.mp3 differ diff --git a/audio/die/shixie.mp3 b/audio/die/shixie.mp3 new file mode 100644 index 000000000..34b825753 Binary files /dev/null and b/audio/die/shixie.mp3 differ diff --git a/audio/die/simazhao.mp3 b/audio/die/simazhao.mp3 new file mode 100644 index 000000000..837e828fd Binary files /dev/null and b/audio/die/simazhao.mp3 differ diff --git a/audio/die/sunqian.mp3 b/audio/die/sunqian.mp3 new file mode 100644 index 000000000..d1872ef17 Binary files /dev/null and b/audio/die/sunqian.mp3 differ diff --git a/audio/die/wuxian.mp3 b/audio/die/wuxian.mp3 new file mode 100644 index 000000000..eea4d68d8 Binary files /dev/null and b/audio/die/wuxian.mp3 differ diff --git a/audio/skill/gzfudi1.mp3 b/audio/skill/gzfudi1.mp3 new file mode 100644 index 000000000..9bbe161af Binary files /dev/null and b/audio/skill/gzfudi1.mp3 differ diff --git a/audio/skill/gzfudi2.mp3 b/audio/skill/gzfudi2.mp3 new file mode 100644 index 000000000..0cca6fdb6 Binary files /dev/null and b/audio/skill/gzfudi2.mp3 differ diff --git a/audio/skill/reanjian1.mp3 b/audio/skill/reanjian1.mp3 new file mode 100644 index 000000000..8fd2ce0d1 Binary files /dev/null and b/audio/skill/reanjian1.mp3 differ diff --git a/audio/skill/reanjian2.mp3 b/audio/skill/reanjian2.mp3 new file mode 100644 index 000000000..4ca5c3810 Binary files /dev/null and b/audio/skill/reanjian2.mp3 differ diff --git a/audio/skill/reduodao1.mp3 b/audio/skill/reduodao1.mp3 new file mode 100644 index 000000000..f3678a965 Binary files /dev/null and b/audio/skill/reduodao1.mp3 differ diff --git a/audio/skill/reduodao2.mp3 b/audio/skill/reduodao2.mp3 new file mode 100644 index 000000000..6f6ff215b Binary files /dev/null and b/audio/skill/reduodao2.mp3 differ diff --git a/audio/skill/relonghun1.mp3 b/audio/skill/relonghun1.mp3 new file mode 100644 index 000000000..a8e672b1d Binary files /dev/null and b/audio/skill/relonghun1.mp3 differ diff --git a/audio/skill/relonghun2.mp3 b/audio/skill/relonghun2.mp3 new file mode 100644 index 000000000..9d73938c3 Binary files /dev/null and b/audio/skill/relonghun2.mp3 differ diff --git a/audio/skill/reshenduan1.mp3 b/audio/skill/reshenduan1.mp3 new file mode 100644 index 000000000..c34aefa4c Binary files /dev/null and b/audio/skill/reshenduan1.mp3 differ diff --git a/audio/skill/reshenduan2.mp3 b/audio/skill/reshenduan2.mp3 new file mode 100644 index 000000000..2f96cd4e7 Binary files /dev/null and b/audio/skill/reshenduan2.mp3 differ diff --git a/audio/skill/reyonglve1.mp3 b/audio/skill/reyonglve1.mp3 new file mode 100644 index 000000000..d025a26f9 Binary files /dev/null and b/audio/skill/reyonglve1.mp3 differ diff --git a/audio/skill/reyonglve2.mp3 b/audio/skill/reyonglve2.mp3 new file mode 100644 index 000000000..df7d98f2e Binary files /dev/null and b/audio/skill/reyonglve2.mp3 differ diff --git a/audio/skill/wanwei1.mp3 b/audio/skill/wanwei1.mp3 new file mode 100644 index 000000000..7ea052a3b Binary files /dev/null and b/audio/skill/wanwei1.mp3 differ diff --git a/audio/skill/wanwei2.mp3 b/audio/skill/wanwei2.mp3 new file mode 100644 index 000000000..f46acc58b Binary files /dev/null and b/audio/skill/wanwei2.mp3 differ diff --git a/audio/skill/xiaoji_sp_sunshangxiang1.mp3 b/audio/skill/xiaoji_sp_sunshangxiang1.mp3 new file mode 100644 index 000000000..fe27284c2 Binary files /dev/null and b/audio/skill/xiaoji_sp_sunshangxiang1.mp3 differ diff --git a/audio/skill/xiaoji_sp_sunshangxiang2.mp3 b/audio/skill/xiaoji_sp_sunshangxiang2.mp3 new file mode 100644 index 000000000..e3b26d791 Binary files /dev/null and b/audio/skill/xiaoji_sp_sunshangxiang2.mp3 differ diff --git a/audio/skill/xinjuejing1.mp3 b/audio/skill/xinjuejing1.mp3 new file mode 100644 index 000000000..85c2ef2fd Binary files /dev/null and b/audio/skill/xinjuejing1.mp3 differ diff --git a/audio/skill/xinjuejing2.mp3 b/audio/skill/xinjuejing2.mp3 new file mode 100644 index 000000000..3deb78f6b Binary files /dev/null and b/audio/skill/xinjuejing2.mp3 differ diff --git a/audio/skill/xinkuangfu1.mp3 b/audio/skill/xinkuangfu1.mp3 new file mode 100644 index 000000000..4a2b16cdd Binary files /dev/null and b/audio/skill/xinkuangfu1.mp3 differ diff --git a/audio/skill/xinkuangfu2.mp3 b/audio/skill/xinkuangfu2.mp3 new file mode 100644 index 000000000..2f8748a82 Binary files /dev/null and b/audio/skill/xinkuangfu2.mp3 differ diff --git a/audio/skill/yuejian1.mp3 b/audio/skill/yuejian1.mp3 new file mode 100644 index 000000000..715a569a3 Binary files /dev/null and b/audio/skill/yuejian1.mp3 differ diff --git a/audio/skill/yuejian2.mp3 b/audio/skill/yuejian2.mp3 new file mode 100644 index 000000000..91a255801 Binary files /dev/null and b/audio/skill/yuejian2.mp3 differ diff --git a/card/zhulu.js b/card/zhulu.js index 0b753dffb..0b2e58d87 100644 --- a/card/zhulu.js +++ b/card/zhulu.js @@ -591,7 +591,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){ }, result:{ keepAI:true, - target:function(player,target){ + target:function(player,target,cardx){ + if(_status.jinhe&&_status.jinhe[cardx.cardid]) return -0.5-2*target.countCards('h'); + var card=target.getEquip(5); + if(!card) return 0; + return -get.value(card,target); + }, + target_use:function(player,target){ return -0.5-2*target.countCards('h'); }, }, diff --git a/character/extra.js b/character/extra.js index 7b8d02627..24deb19a4 100755 --- a/character/extra.js +++ b/character/extra.js @@ -18,6 +18,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ character:{ key_kagari:['female','shen',3,['kagari_zongsi'],['key']], key_shiki:['female','shen','3/5',['shiki_omusubi'],['key']], + //key_hina:['female','shen',3,[],['key']], shen_guanyu:['male','shen',5,['new_wuhun','wushen'],['shu']], shen_zhaoyun:['male','shen',2,['xinjuejing','relonghun'],['shu']], @@ -2178,7 +2179,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, relonghun:{ - audio:'longhun', + audio:2, //技能发动时机 enable:['chooseToUse','chooseToRespond'], //发动时提示的技能描述 @@ -2449,7 +2450,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return 2+num; } }, - audio:'juejing', + audio:2, trigger:{player:['dying','dyingAfter']}, forced:true, content:function(){ @@ -3412,6 +3413,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ key_shiki:'神山识', shiki_omusubi:'御结', shiki_omusubi_info:'一轮游戏开始时,你可以减1点体力上限,然后将一名其他角色武将牌上的技能加入到你的武将牌上。', + //key_hina:'雏', extra_feng:'神话再临·风', extra_huo:'神话再临·火', diff --git a/character/refresh.js b/character/refresh.js index 2d3775f4e..a9e73f865 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -84,7 +84,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ caoren:['male','wei',4,['xinjushou','xinjiewei']], re_huangzhong:['male','shu',4,['xinliegong']], ol_weiyan:['male','shu',4,['xinkuanggu','reqimou']], - ol_xiaoqiao:['female','wu',3,['retianxiang','rehongyan']], + ol_xiaoqiao:['female','wu',3,['oltianxiang','olhongyan','piaoling']], zhoutai:['male','wu',4,['buqu','fenji']], ol_pangde:['male','qun',4,['mashu','rejianchu']], re_xuhuang:['male','wei',4,['duanliang','jiezi']], @@ -121,6 +121,149 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sunben:['zhouyu','taishici','daqiao'], }, skill:{ + oltianxiang:{ + audio:'tianxiang', + audioname:['daxiaoqiao','re_xiaoqiao','ol_xiaoqiao'], + trigger:{player:'damageBegin4'}, + direct:true, + filter:function(event,player){ + return player.countCards('he',function(card){ + if(_status.connectMode&&get.position(card)=='h') return true; + return get.suit(card,player)=='heart'; + })>0&&event.num>0; + }, + content:function(){ + "step 0" + player.chooseCardTarget({ + filterCard:function(card,player){ + return get.suit(card)=='heart'&&lib.filter.cardDiscardable(card,player); + }, + filterTarget:function(card,player,target){ + return player!=target; + }, + position:'he', + ai1:function(card){ + return 10-get.value(card); + }, + ai2:function(target){ + var att=get.attitude(_status.event.player,target); + var trigger=_status.event.getTrigger(); + var da=0; + if(_status.event.player.hp==1){ + da=10; + } + var eff=get.damageEffect(target,trigger.source,target); + if(att==0) return 0.1+da; + if(eff>=0&&att>0){ + return att+da; + } + if(att>0&&target.hp>1){ + if(target.maxHp-target.hp>=3) return att*1.1+da; + if(target.maxHp-target.hp>=2) return att*0.9+da; + } + return -att+da; + }, + prompt:get.prompt('oltianxiang'), + prompt2:lib.translate.oltianxiang_info + }); + "step 1" + if(result.bool){ + player.discard(result.cards); + var target=result.targets[0]; + player.chooseControlList(true,function(event,player){ + var target=_status.event.target; + var att=get.attitude(player,target); + if(target.hasSkillTag('maihp')) att=-att; + if(att>0){ + return 0; + } + else{ + return 1; + } + }, + ['令'+get.translation(target)+'受到伤害来源对其造成的1点伤害,然后摸X张牌(X为其已损失体力值且至多为5)', + '令'+get.translation(target)+'失去1点体力,然后获得'+get.translation(result.cards)]).set('target',target); + player.logSkill(event.name,target); + trigger.cancel(); + event.target=target; + event.card=result.cards[0]; + } + else{ + event.finish(); + } + "step 2" + if(typeof result.index=='number'){ + event.index=result.index; + if(result.index){ + event.related=event.target.loseHp(); + } + else{ + event.related=event.target.damage(trigger.source||'nosource','nocard'); + } + } + else event.finish(); + "step 3" + if(event.related.cancelled||target.isDead()) return; + if(event.index&&card.isInPile()) target.gain(card,'gain2'); + else if(target.getDamagedHp()) target.draw(Math.min(5,target.getDamagedHp())); + }, + ai:{ + maixie_defend:true, + effect:{ + target:function(card,player,target){ + if(player.hasSkillTag('jueqing',false,target)) return; + if(get.tag(card,'damage')&&target.countCards('he')>1) return 0.7; + } + }, + } + }, + olhongyan:{ + audio:'rehongyan', + mod:{ + suit:function(card,suit){ + if(suit=='spade') return 'heart'; + }, + maxHandcardBase:function(player,num){ + if(player.countCards('e',function(card){ + return get.suit(card,player)=='heart'; + })) return player.maxHp; + }, + }, + }, + piaoling:{ + audio:2, + trigger:{player:'phaseJieshuBegin'}, + frequent:true, + content:function(){ + 'step 0' + player.judge(function(card){ + return get.suit(card)=='heart'?2:0; + }); + 'step 1' + event.card=result.card; + if(result.bool&&get.position(event.card,true)=='d'){ + player.chooseTarget('令一名角色获得'+get.translation(event.card)+',或点【取消】将其置于牌堆顶').set('ai',function(target){ + var player=_status.event.player; + var att=get.attitude(player,target); + if(player==target) att/=2; + return att; + }); + } + else event.finish(); + 'step 2' + if(result.targets&&result.targets.length){ + var target=result.targets[0]; + player.line(target,'green'); + target.gain(card,'gain2','log'); + if(player==target) player.chooseToDiscard('he',true); + } + else{ + card.fix(); + ui.cardPile.insertBefore(card,ui.cardPile.firstChild); + game.updateRoundNumber(); + } + }, + }, xinyicong:{ mod:{ globalFrom:function(from,to,current){ @@ -7349,6 +7492,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xin_gongsunzan:'界公孙瓒', xinyicong:'义从', xinyicong_info:'锁定技,你计算与其他角色的距离时-X,其他角色计算与你的距离时+Y。(X为你的体力值-1,Y为你的已损失体力值-1)', + oltianxiang:'天香', + oltianxiang_info:'当你受到伤害时,你可以弃置一张红桃手牌,防止此次伤害并选择一名其他角色,然后你选择一项:1.令其受到伤害来源对其造成的1点伤害,然后摸X张牌(X为其已损失体力值且至多为5);2.令其失去1点体力,然后获得你弃置的牌。', + olhongyan:'红颜', + olhongyan_info:'锁定技,你的黑桃牌的花色视为红桃。若你的装备区内有红桃牌,则你的手牌上限基数视为体力上限。', + piaoling:'飘零', + piaoling_info:'结束阶段,你可以进行判定。若判定结果为红桃,则你选择一项:1.将此牌交给一名角色。若你交给了自己,则你弃置一张牌。2.将此牌置于牌堆顶。', refresh_standard:'界限突破·标', refresh_feng:'界限突破·风', diff --git a/character/shenhua.js b/character/shenhua.js index a8a0cc408..f42dd0557 100755 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -2115,7 +2115,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ var pl=player.storage.nzry_shenshi2; var card=player.storage.nzry_shenshi1; - if(player.getCards('hej').contains(card)&&4-pl.countCards('h')>0){ + if(player.getCards('he').contains(card)&&4-pl.countCards('h')>0){ pl.draw(4-pl.countCards('h')); pl.logSkill('nzry_shenshi'); }; @@ -5995,7 +5995,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{player:'damageBegin4'}, direct:true, filter:function(event,player){ - return player.countCards('he',{suit:'heart'})>0&&event.num>0; + return player.countCards('h',{suit:'heart'})>0&&event.num>0; }, content:function(){ "step 0" diff --git a/character/sp.js b/character/sp.js index ba4afd946..e3ed6c976 100755 --- a/character/sp.js +++ b/character/sp.js @@ -5129,7 +5129,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ list.remove(players[i].name1); list.remove(players[i].name2); } - list=list.randomGets(Math.max(2,Math.min(8,game.countPlayer()))); + list=list.randomGets(Math.max(4,game.countPlayer())); var skills=[]; for(var i of list){ skills.addArray((lib.character[i][3]||[]).filter(function(skill){ @@ -14863,7 +14863,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ fuhan:'扶汉', fuhan_info:'限定技,回合开始时,你可以移去所有“梅影”标记并摸等量的牌,随机观看五名未登场的蜀势力角色,将武将牌替换为其中一名角色,并将体力上限数调整为本局游戏中移去“梅影”标记的数量(至少为2,至多为8),然后回复1点体力。', refuhan:'扶汉', - refuhan_info:'限定技,回合开始时,你可以移去所有"梅影"标记并摸等量的牌,然后从X张蜀势力武将牌中选择并获得至多两个技能(限定技、觉醒技、主公技除外)。若此时你是体力值最低的角色,你回复1点体力(X为场上角色数,且X∈[2,8])。', + refuhan_info:'限定技,回合开始时,你可以移去所有"梅影"标记并摸等量的牌,然后从X张蜀势力武将牌中选择并获得至多两个技能(限定技、觉醒技、主公技除外)。若此时你是体力值最低的角色,你回复1点体力(X为场上角色数,且X∈[4,+∞))。', yjixi:'觊玺', yjixi_info:'觉醒技,结束阶段,若你连续三回合没有因〖庸肆〗而失去过体力,则你增加1点体力上限并回复1点体力,然后选择一项:获得技能〖妄尊〗;摸两张牌并获得当前主公的主公技。', xinyongsi:'庸肆', diff --git a/character/sp2.js b/character/sp2.js index a73d8da1e..37ae6cac0 100644 --- a/character/sp2.js +++ b/character/sp2.js @@ -1308,6 +1308,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(!player.countCards('he')||player.hasSkill('souying2')) return false; if(!event.targets||event.targets.length!=1||event.player==event.target) return false; if(name=='useCardToPlayered'){ + if(!event.cards.filterInD().length) return false; var target=event.target; return player.getHistory('useCard',function(evt){ return evt.targets&&evt.targets.length==1&&evt.targets[0]==target; @@ -1323,23 +1324,28 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ 'step 0' var next=player.chooseToDiscard('he'); + var prompt; if(event.triggername=='useCardToTargeted'){ event.target=trigger.player; + prompt='令'+get.translation(trigger.card)+'对你无效'; + next.set('goon',-get.effect(player,trigger.card,trigger.player,player)); } else{ - event.target=trigger.cards[0]; + event.target=trigger.targets[0]; + prompt='弃置一张牌,并获得'+get.translation(trigger.cards.filterInD()); + next.set('goon',get.value(trigger.cards.filterInD())); } next.set('prompt',get.prompt('souying',event.target)); - next.set('prompt2','弃置一张牌,并获得'+get.translation(trigger.cards.filterInD())) + next.set('prompt2',prompt) next.set('ai',function(card){ - if(_status.event.goon) return 6-get.value(card); - return -1; + return _status.event.goon-get.value(card); }); next.set('logSkill',['souying',event.target]); 'step 1' if(result.bool){ player.addTempSkill('souying2'); - player.gain(trigger.cards.filterInD()); + if(event.triggername=='useCardToPlayered') player.gain(trigger.cards.filterInD()); + else trigger.excluded.add(player); } }, ai:{ @@ -1363,6 +1369,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 0' player.awakenSkill('zhanyuan'); player.gainMaxHp(); + player.recover(); 'step 1' player.chooseTarget('是否失去〖蛮嗣〗,令一名其他男性角色和自己一同获得技能〖系力〗?',function(card,player,target){ return target!=player&&target.sex=='male'; @@ -1384,11 +1391,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, audio:2, filter:function(event,player){ - return event.source&&event.source!=player&&event.source==_status.currentPhase&&event.source.hasSkill('hmxili')&&player.countCards('he')>0&&!player.hasSkill('hmxili2'); + return event.source&&event.source!=player&&event.source==_status.currentPhase&&event.source.hasSkill('hmxili')&&!event.player.hasSkill('hmxili')&&player.countCards('he')>0&&!player.hasSkill('hmxili2'); }, content:function(){ 'step 0' - player.chooseToDiscard('是否弃置一张牌,令'+get.translation(trigger.source)+'对'+get.translation(trigger.player)+'的伤害+1,且你与其各摸两张牌?','he').set('logSkill',['hmxili',trigger.target]).ai=function(card){ + player.chooseToDiscard('是否弃置一张牌,令'+get.translation(trigger.source)+'对'+get.translation(trigger.player)+'的伤害+1,且你与其各摸两张牌?','he').set('logSkill',['hmxili',trigger.player]).ai=function(card){ return 9-get.value(card); }; 'step 1' @@ -1506,6 +1513,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xinkuangfu:{ enable:'phaseUse', usable:1, + audio:2, delay:false, filterTarget:function(card,player,target){ if(player==target) return player.countCards('e',function(card){ @@ -5428,7 +5436,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ souying:'薮影', souying_info:'每回合限一次,当你对其他角色(或其他角色对你)使用牌指定唯一目标后,若此牌不是本回合你对其(或其对你)使用的第一张牌,你可以弃置一张牌将此牌收回手牌(或令此牌对你无效)。', zhanyuan:'战缘', - zhanyuan_info:'觉醒技,准备阶段,若你已因蛮嗣累计获得超过7张牌,你加一点体力上限,并可以选择一名男性角色,你与其获得技能〖系力〗,然后你失去技能〖蛮嗣〗', + zhanyuan_info:'觉醒技,准备阶段,若你已因蛮嗣累计获得超过7张牌,你加一点体力上限并回复1点体力,并可以选择一名男性角色,你与其获得技能〖系力〗,然后你失去技能〖蛮嗣〗', hmxili:'系力', hmxili_info:'每回合限一次,你的回合外,当其他拥有【系力】技能的角色在其回合内对没有【系力】技能的角色造成伤害时,你可以弃置一张牌,令此伤害+1,然后你与其各摸两张牌。', wangshuang:'王双', diff --git a/character/yijiang.js b/character/yijiang.js index 853c33305..fec408e5f 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -5637,7 +5637,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, reshenduan:{ - audio:'shenduan', + audio:2, trigger:{player:'loseAfter'}, filter:function(event,player){ if(event.type!='discard') return; @@ -5715,6 +5715,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, reyonglve:{ + audio:2, trigger:{global:'phaseJudgeBegin'}, direct:true, filter:function(event,player){ @@ -7640,7 +7641,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ reanjian:{ trigger:{player:'useCardToPlayered'}, forced:true, - audio:'anjian', + audio:2, filter:function(event,player){ return event.card.name=='sha'&&!event.target.inRange(player); }, @@ -7713,7 +7714,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return event.card.name=='sha'&&(get.color(event.card)=='red'?event.player.getEquip(1):player.countCards('he')>0); }, direct:true, - audio:'duodao', + audio:2, content:function(){ 'step 0' var prompt='弃置一张牌' diff --git a/game/asset.js b/game/asset.js index 1b4ca3de5..d172073a2 100644 --- a/game/asset.js +++ b/game/asset.js @@ -1,5 +1,5 @@ window.noname_asset_list=[ - 'v1.9.104', + 'v1.9.104.1', 'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_online.mp3', 'audio/background/aozhan_rewrite.mp3', @@ -613,6 +613,18 @@ window.noname_asset_list=[ 'audio/die/xin_gongsunzan.mp3', 'audio/die/xin_liaohua.mp3', 'audio/die/xin_xusheng.mp3', + 'audio/die/bianfuren.mp3.mp3', + 'audio/die/caochun.mp3.mp3', + 'audio/die/mizhu.mp3.mp3', + 'audio/die/re_hanhaoshihuan.mp3.mp3', + 'audio/die/re_panfeng.mp3.mp3', + 'audio/die/re_panzhangmazhong.mp3.mp3', + 'audio/die/shen_ganning.mp3.mp3', + 'audio/die/shen_zhangliao.mp3.mp3', + 'audio/die/shixie.mp3.mp3', + 'audio/die/simazhao.mp3.mp3', + 'audio/die/sunqian.mp3.mp3', + 'audio/die/wuxian.mp3.mp3', 'audio/skill/anguo1.mp3', 'audio/skill/anguo2.mp3', @@ -2705,6 +2717,28 @@ window.noname_asset_list=[ 'audio/skill/zhuiyi_re_bulianshi2.mp3', 'audio/skill/zishou_re_liubiao1.mp3', 'audio/skill/zishou_re_liubiao2.mp3', + 'audio/skill/gzfudi1.mp3.mp3', + 'audio/skill/gzfudi2.mp3.mp3', + 'audio/skill/reanjian1.mp3.mp3', + 'audio/skill/reanjian2.mp3.mp3', + 'audio/skill/reduodao1.mp3.mp3', + 'audio/skill/reduodao2.mp3.mp3', + 'audio/skill/relonghun1.mp3.mp3', + 'audio/skill/relonghun2.mp3.mp3', + 'audio/skill/reshenduan1.mp3.mp3', + 'audio/skill/reshenduan2.mp3.mp3', + 'audio/skill/reyonglve1.mp3.mp3', + 'audio/skill/reyonglve2.mp3.mp3', + 'audio/skill/wanwei1.mp3.mp3', + 'audio/skill/wanwei2.mp3.mp3', + 'audio/skill/xiaoji_sp_sunshangxiang1.mp3.mp3', + 'audio/skill/xiaoji_sp_sunshangxiang2.mp3.mp3', + 'audio/skill/xinjuejing1.mp3.mp3', + 'audio/skill/xinjuejing2.mp3.mp3', + 'audio/skill/xinkuangfu1.mp3.mp3', + 'audio/skill/xinkuangfu2.mp3.mp3', + 'audio/skill/yuejian1.mp3.mp3', + 'audio/skill/yuejian2.mp3.mp3', 'font/huangcao.ttf', 'font/shousha.ttf', diff --git a/game/game.js b/game/game.js index a20d2c2a5..5ba2a885f 100644 --- a/game/game.js +++ b/game/game.js @@ -32,7 +32,7 @@ }, updateURL:'https://raw.githubusercontent.com/libccy/noname', mirrorURL:'https://nakamurayuri.coding.net/p/noname/d/noname/git/raw', - hallURL:'noname.mobi', + hallURL:'47.99.105.222', assetURL:'', changeLog:[], updates:[], @@ -8565,7 +8565,10 @@ clickedNode=true; lib.config.mode=this.link; game.saveConfig('mode',this.link); - if(this.link=='connect') game.reload(); + if(this.link=='connect'){ + localStorage.setItem(lib.configprefix+'directstart',true); + game.reload(); + } else{ if(game.layout!='mobile'&&lib.layoutfixed.indexOf(lib.config.mode)!==-1){ game.layout='mobile'; @@ -25864,7 +25867,7 @@ updaterooms:function(list,clients){ if(ui.rooms){ ui.window.classList.add('more_room'); - var list2=['re_caocao','re_liubei','sunquan','sp_zhangjiao','re_yuanshao','dongzhuo']; + var list2=['re_caocao','re_liubei','re_sunquan','re_zhangjiao','ol_yuanshao','ol_dongzhuo']; for(var i=0;iID:'+button.info[i].creator,eventnode); ui.create.div('','已有'+(button.info[i].members.length)+'人加入',eventnode); ui.create.div('','时间:'+str,eventnode); if(button.info[i].members.contains(game.onlineKey)){ diff --git a/game/keyWords.js b/game/keyWords.js index 43514d4d5..57a10fb8d 100644 --- a/game/keyWords.js +++ b/game/keyWords.js @@ -1,3 +1,3 @@ window.bannedKeyWords=[ -'ghs','直肠','性交','做爱','http','吃奶', +'ghs','直肠','性交','做爱','http','吃奶','骚逼','哈巴狗','美眉','癌','屁眼','艹','傻逼','操你','做鸡','奸','姦','华为', ]; \ No newline at end of file diff --git a/game/update.js b/game/update.js index cb85c1a49..5367a03b7 100644 --- a/game/update.js +++ b/game/update.js @@ -1,11 +1,9 @@ window.noname_update={ - version:'1.9.104', - update:'1.9.103.4', + version:'1.9.104.1', + update:'1.9.104', changeLog:[ - '游佐', - '曹爽', - '界潘璋马忠、界韩浩史涣、新花蔓、新赵襄', - '傅肜、界步练师、界刘表、手杀曹彰、界公孙瓒、手杀廖化、贾逵重制', + '界小乔', + '新的默认联机地址', 'bug修复', ], @@ -13,7 +11,7 @@ window.noname_update={ //'card/extra.js', //'card/huanlekapai.js', //'card/sp.js', - 'card/standard.js', + //'card/standard.js', //'card/swd.js', //'card/mtg.js', //'card/gujian.js', @@ -21,22 +19,22 @@ window.noname_update={ //'card/gwent.js', //'card/yunchou.js', //'card/zhenfa.js', - //'card/zhulu.js', - 'character/diy.js', - //'character/extra.js', + 'card/zhulu.js', + //'character/diy.js', + 'character/extra.js', //'character/hearth.js', //'character/gujian.js', //'character/gwent.js', //'character/hearth.js', - 'character/mobile.js', + //'character/mobile.js', //'character/mtg.js', - 'character/old.js', + //'character/old.js', 'character/refresh.js', 'character/shenhua.js', 'character/sp.js', 'character/sp2.js', //'character/tw.js', - 'character/standard.js', + //'character/standard.js', //'character/swd.js', //'character/xianjian.js', //'character/xinghuoliaoyuan.js', @@ -46,11 +44,11 @@ window.noname_update={ //'layout/default/layout.css', //'layout/nova/layout.css', //'mode/identity.js', - 'mode/doudizhu.js', - //'mode/guozhan.js', + //'mode/doudizhu.js', + 'mode/guozhan.js', //'mode/chess.js', //'mode/tafang.js', - 'mode/single.js', + //'mode/single.js', //'mode/stone.js', //'mode/brawl.js', //'mode/versus.js', @@ -61,7 +59,7 @@ window.noname_update={ //'game/config.js', //'game/package.js', //'game/asset.js', - 'game/source.js', + //'game/source.js', //'theme/style/hp/xinglass.css', //'theme/style/hp/xinround.css', //'theme/style/hp/image/xinglass1.png', diff --git a/mode/guozhan.js b/mode/guozhan.js index 0e6493372..1e894a5cb 100644 --- a/mode/guozhan.js +++ b/mode/guozhan.js @@ -1153,6 +1153,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ gzfudi:{ trigger:{global:'damageEnd'}, direct:true, + audio:2, filter:function(event,player){return event.source&&event.source.isAlive()&&event.source!=player&&event.player==player&&player.countCards('h')&&event.num>0}, content:function(){ 'step 0' @@ -1212,6 +1213,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ source:'damageBegin1', }, forced:true, + audio:'drlt_congjian', filter:function(event,player,name){ if(event.num<=0) return false; if(name=='damageBegin1'&&_status.currentPhase!=player&&event.notLink()) return true; @@ -6068,9 +6070,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ content:function(){ if(trigger.name=='addJudge'){ trigger.cancel(); - for(var i=0;i