diff --git a/card/standard.js b/card/standard.js index bd621a717..cce6bc389 100644 --- a/card/standard.js +++ b/card/standard.js @@ -1735,11 +1735,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){ }); next.logSkill='guanshi_skill'; next.set('ai',function(card){ - var evt=_status.event.getParent(); - if(get.attitude(evt.player,evt._trigger.target)<0){ - if(evt.player.hasSkill('jiu')|| - evt.player.hasSkill('tianxianjiu')|| - evt._trigger.target.hp==1){ + var evt=_status.event.getTrigger(); + if(get.attitude(evt.player,evt.target)<0){ + if(evt.baseDamage+evt.extraDamage>=Math.min(2,evt.target.hp)){ return 8-get.value(card) } return 5-get.value(card) diff --git a/character/diy.js b/character/diy.js index 424bc6db9..fcd564070 100755 --- a/character/diy.js +++ b/character/diy.js @@ -57,6 +57,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ key_kaori:['female','key','3/4',['kaori_siyuan']], key_akiko:['female','key',3,['akiko_dongcha']], key_abyusa:['female','key',3,['abyusa_jueqing','abyusa_dunying']], + key_godan:['male','key',6,['godan_yuanyi','godan_feiqu','godan_xiaoyuan']], key_kud:['female','key',3,['kud_qiaoshou','kud_buhui']], key_misuzu:['female','key',3,['misuzu_hengzhou','misuzu_nongyin','misuzu_zhongxing']], @@ -151,7 +152,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "ns_huangchengyan","ns_sunchensunjun","ns_yuanxi","ns_caoshuang"], diy_tieba:["diy_wenyang","ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua","ns_zhangwei"], diy_default:["diy_feishi","diy_liuyan","diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji","diy_liufu","diy_xizhenxihong","diy_liuzan","diy_zaozhirenjun","diy_yangyi","diy_tianyu"], - diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa"], + diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan"], diy_yongjian:["ns_chendao","yj_caoang"], }, }, @@ -167,6 +168,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。', }, characterTitle:{ + key_godan:'#rAngel Beats!', key_abyusa:'#rAngel Beats!', key_akiko:'#bKanon', key_kaori:'#bKanon', @@ -319,6 +321,38 @@ game.import('character',function(lib,game,ui,get,ai,_status){ key_lucia:['key_shizuru'], }, skill:{ + godan_yuanyi:{ + trigger:{player:'phaseBegin'}, + forced:true, + content:function(){ + 'step 0' + var num=game.roundNumber; + if(num&&typeof num=='number') player.draw(Math.min(3,num)); + 'step 1' + var next=player.phaseUse(); + event.next.remove(next); + trigger.next.push(next); + }, + }, + godan_feiqu:{ + inherit:'doruji_feiqu', + }, + godan_xiaoyuan:{ + trigger:{player:'changeHp'}, + forced:true, + juexingji:true, + skillAnimation:true, + animationColor:'soil', + filter:function(event,player){ + return event.num<0&&player.hp<4; + }, + content:function(){ + player.awakenSkill('godan_xiaoyuan'); + player.loseMaxHp(3); + player.draw(3); + player.removeSkill('godan_feiqu'); + }, + }, abyusa_jueqing:{ audio:'jueqing', trigger:{source:'damageBegin2'}, @@ -4291,7 +4325,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ai:{ effect:{ player:function(card,player,target){ - if(get.attitude(player,target)>0&&get.tag(card,'damage')) return 'zeroplayertarget'; + if(target&&get.attitude(player,target)>0&&get.tag(card,'damage')) return 'zeroplayertarget'; }, }, }, @@ -10325,6 +10359,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ key_kaori:'美坂香里', key_akiko:'水濑秋子', key_abyusa:'游佐', + key_godan:'松下护騨', lucia_duqu:'毒躯', lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。
②当你因【毒】失去体力时,你改为回复等量的体力。
③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。', lucia_zhenren:'振刃', @@ -10567,6 +10602,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ abyusa_jueqing_rewrite_info:'锁定技,你即将造成的伤害均视为失去体力。', abyusa_dunying:'遁影', abyusa_dunying_info:'锁定技,其他角色计算与你的距离时+X。准备阶段和结束阶段,你摸X张牌(X为你已损失的体力值)。', + godan_yuanyi:'远忆', + godan_yuanyi_info:'锁定技,回合开始时,你摸X张牌并进行一个额外的出牌阶段。(X为游戏轮数且至多为3)', + godan_feiqu:'肥躯', + godan_feiqu_info:'锁定技,当你使用【杀】时,或你成为【杀】的目标后,你令此【杀】不可被响应。', + godan_xiaoyuan:'消元', + godan_xiaoyuan_info:'觉醒技,当你扣减体力时,若你的体力值小于4,则你减3点体力上限并摸三张牌,失去【肥躯】。', key_kud:'库特莉亚芙卡', kud_qiaoshou:'巧手', diff --git a/character/mobile.js b/character/mobile.js index f9bcf28f6..b21d94cec 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -5615,7 +5615,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ shixin:'释衅', shixin_info:'锁定技,当你受到火属性伤害时,你防止此伤害。', zhaohuo:'招祸', - zhaohuo_info:'锁定技,当其他角色进入濒死状态时,你将体力上限调整为1点。若你的体力上限因此减少,则你摸一张牌。(X为你以此法减少的体力上限)', + zhaohuo_info:'锁定技,当其他角色进入濒死状态时,你将体力上限调整为1点。若你的体力上限因此减少,则你摸X张牌。(X为你以此法减少的体力上限)', yixiang:'义襄', yixiang_info:'每名角色的回合限一次,当你成为一名角色使用牌的目标后,若该角色的体力值大于你的体力值,你可以随机获得牌堆里的一张你没有的基本牌。', yirang:'揖让', diff --git a/character/refresh.js b/character/refresh.js index 307a0a385..cbaf3a633 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -2407,7 +2407,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, mod:{ judge:function(player,result){ - if(_status.event.card&&_status.event.card.name=='lebu'&&player.countMark('sishu2')%2==1){ + if(_status.event.cardname=='lebu'&&player.countMark('sishu2')%2==1){ if(result.bool==false){ result.bool=true; } @@ -4249,11 +4249,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, "new_repaoxiao":{ audio:"paoxiao", - inherit:"paoxiao", + firstDo:true, + audioname2:{old_guanzhang:'old_fuhun'}, + audioname:['re_zhangfei','guanzhang','xiahouba'], + trigger:{player:'useCard1'}, + forced:true, + filter:function(event,player){ + return (!event.audioed||!player.hasSkill('new_repaoxiao2'))&&event.card.name=='sha'; + }, + content:function(){ + trigger.audioed=true; + player.addTempSkill('new_repaoxiao2'); + }, mod:{ - targetInRange:function (card,player){ - if(card.name=='sha'&&get.cardCount({name:'sha'},player)>0) return true; - }, cardUsable:function (card,player,num){ if(card.name=='sha') return Infinity; }, @@ -4267,6 +4275,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, }, + new_repaoxiao2:{ + charlotte:true, + mod:{ + targetInRange:function (card,player){ + if(card.name=='sha') return true; + }, + }, + }, "new_tishen":{ trigger:{ player:"phaseUseEnd", @@ -6975,9 +6991,41 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return true; }, prompt:'将一张黑桃手牌当酒使用', - check:function(card){ + check:function(cardx){ if(_status.event.type=='dying') return 1; - return 4-get.value(card); + var player=_status.event.player; + var shas=player.getCards('h','sha'); + if(shas.length>1&&(player.getCardUsable('sha')>1||player.countCards('h','zhuge'))){ + return 0; + } + shas.sort(function(a,b){ + return get.order(b)-get.order(a); + }); + var card; + if(shas.length){ + for(var i=0;i1+(player.storage.jiu||0) + &&player.canUse(card,current,true,true)&& + !current.hasSkillTag('filterDamage',null,{ + player:player, + card:card, + jiu:true, + })&& + get.effect(current,card,player)>0); + })){ + return 4-get.value(cardx); + } + } + return 0; }, ai:{ skillTagFilter:function(player){ diff --git a/character/shenhua.js b/character/shenhua.js index da98e20cf..ff659ea8e 100755 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -15,7 +15,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, character:{ - old_zhoutai:['male','wu',4,['gzbuqu']], + old_zhoutai:['male','wu',4,['buqu','new_fenji']], old_caoren:['male','wei',4,['moon_jushou','jiewei']], xuhuang:['male','wei',4,['gzduanliang']], re_pangde:['male','qun',4,['mashu','jianchu']], @@ -816,11 +816,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, forced:true, filter:function(event,player){ - var num=player.getStat('damage'); + var num=0; + player.getHistory('sourceDamage',function(evt){ + if(evt.getParent('phaseUse')==event) num+=evt.num; + }); return !num||num>1; }, content:function(){ - var numx=player.getStat('damage'); + var numx=0; + player.getHistory('sourceDamage',function(evt){ + if(evt.getParent('phaseUse')==trigger) numx+=evt.num; + }); if(!numx){ var num=player.hp-player.countCards('h'); if(num>0) player.draw(num); @@ -2719,8 +2725,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ shaRelated:true, mod:{ targetInRange:function(card,player,target){ - if(card.name=='sha'&&card.number){ - if(get.distance(player,target)<=card.number) return true; + if(card.name=='sha'&&typeof get.number(card)=='number'){ + if(get.distance(player,target)<=get.number(card)) return true; } } }, @@ -6502,6 +6508,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger[trigger.name=='gain'?'source':'player'].draw(2); }, }, + new_fenji:{ + audio:"fenji", + trigger:{ + global:"phaseJieshuBegin", + }, + filter:function (event,player){ + if(event.player.countCards('h')==0&&event.player.isAlive()) return true; + return false; + }, + check:function (event,player){ + return get.attitude(player,event.player)>2; + }, + content:function (){ + player.line(trigger.player,'green'); + trigger.player.draw(2); + player.loseHp(); + }, + }, leiji:{ audio:2, trigger:{player:['useCard','respond']}, @@ -7530,6 +7554,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ guhuo_info:'每名角色的回合限一次,你可以扣置一张手牌当一张基本牌或普通锦囊牌使用或打出。其他角色依次选择是否质疑。一旦有其他角色质疑则翻开此牌:若为假则此牌作废,若为真,则质疑角色获得技能“缠怨”(锁定技,你不能质疑于吉,只要你的体力值为1,你失去你的武将技能)', fenji_info:'当一名角色的手牌被其他角色弃置或获得后,你可以失去1点体力,然后令该角色摸两张牌。', + new_fenji:"奋激", + new_fenji_info:"一名角色的结束阶段开始时,若其没有手牌,你可以令其摸两张牌,然后你失去1点体力。", gzduanliang:'断粮', gzduanliang_info:'你可以将一张黑色基本牌或黑色装备牌当【兵粮寸断】使用;你可以对距离为2的角色使用【兵粮寸断】', "xinfu_guhuo":"蛊惑", diff --git a/character/sp.js b/character/sp.js index f773db138..d3460dced 100755 --- a/character/sp.js +++ b/character/sp.js @@ -879,62 +879,57 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xinjingong:{ audio:'jingong', enable:'phaseUse', + usable:1, filter:function(event,player){ - return player.countCards('he',function(card){ + return event.xinjingong_list&&player.countCards('he',function(card){ return card.name=='sha'||get.type(card)=='equip'; }); }, - delay:false, - usable:1, - content:function(){ - 'step 0' - var list=get.inpile('trick').randomGets(2); - if(Math.random()<0.5){ - list.push('wy_meirenji'); + onChooseToUse:function(event){ + if(!game.online){ + var evt=event.getParent(); + if(evt.name!='phaseUse') return; + if(!evt.xinjingong_list){ + var list=get.inpile('trick').randomGets(2); + if(Math.random()<0.5){ + list.push('wy_meirenji'); + } + else{ + list.push('wy_xiaolicangdao'); + } + evt.xinjingong_list=list; + } + if(!event.xinjingong_list) event.set('xinjingong_list',evt.xinjingong_list); } - else{ - list.push('wy_xiaolicangdao'); - } - for(var i=0;iplayer.storage.qiangwu) return num+2; + if(card.name=='sha'&&get.number(card)>player.storage.qiangwu) return num+2; }, targetInRange:function(card,player){ - if(_status.currentPhase==player&&card.name=='sha'&&card.numberplayer.storage.qiangwu) return Infinity; + if(_status.currentPhase==player&&card.name=='sha'&&get.number(card)>player.storage.qiangwu) return Infinity; } }, trigger:{player:'useCard1'}, filter:function(event,player){ if(_status.currentPhase==player&&event.card.name=='sha'&& - event.card.number>player.storage.qiangwu&&event.addCount!==false) return true; + get.number(event.card)>player.storage.qiangwu&&event.addCount!==false) return true; return false; }, forced:true, @@ -15194,7 +15193,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ canshi_info:'摸牌阶段开始时,你可以改为摸X张牌(X为已受伤的角色数),若如此做,当你于此回合内使用基本牌或锦囊牌时,你弃置一张牌。', recanshi:'残蚀', recanshi2:'残蚀', - recanshi_info:'摸牌阶段开始时,你可以多摸X张牌(X为已受伤的角色数),若如此做,当你于此回合内使用【杀】或锦囊牌时,你弃置一张牌。', + recanshi_info:'摸牌阶段开始时,你可以多摸X张牌(X为已受伤的角色数),若如此做,当你于此回合内使用【杀】或普通锦囊牌时,你弃置一张牌。', zhuiji_info:'锁定技,你与体力值不大于你的角色的距离视为1。', kunfen:'困奋', kunfen_info:'锁定技,结束阶段开始时,你失去1点体力,然后摸两张牌。', @@ -15317,6 +15316,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xinmoucheng:'谋逞', xinmoucheng_info:'觉醒技,准备阶段,若你已经发动了3次以上的〖连计〗,则你失去〖连计〗并获得〖矜功〗。', xinjingong:'矜功', + xinjingong_backup:'矜功', xinjingong_info:'出牌阶段限一次,你可以将一张【杀】或装备牌当做三张随机锦囊牌中的一张使用。', caiyang:'蔡阳', yinka:'印卡', diff --git a/character/sp2.js b/character/sp2.js index a1a880491..88929dd7b 100644 --- a/character/sp2.js +++ b/character/sp2.js @@ -3139,14 +3139,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, pingjian_temp:{ onremove:true, - trigger:{player:'useSkillAfter'}, + trigger:{player:['useSkillBegin','useCard1']}, silent:true, firstDo:true, filter:function(event,player){ - return event.skill==player.storage.pingjian_temp; + if(!lib.skill[event.skill]) return false; + if(event.skill==player.storage.pingjian_temp) return true; + if(lib.skill[event.skill].sourceSkill==player.storage.pingjian_temp) return true; + return false; }, content:function(){ - player.removeSkill(trigger.skill); + player.removeSkill(player.storage.pingjian_temp); player.removeSkill('pingjian_temp'); }, }, @@ -3999,14 +4002,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ 'step 0' - var list=[]; - for(var i=0;i=2; + return player.getHistory('lose',function(evt){ + var evt2=evt.getParent(); + return evt2.name=='useSkill'&&evt2.skill=='yanyu'&&evt.getParent(3)==event; + }).length>=2; }, content:function(){ 'step 0' @@ -12452,7 +12455,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ zhiyu:'智愚', qice:'奇策', qice_backup:'奇策', - jiangchi:'将弛', + jiangchi:'将驰', jiangchi_less:'少摸一张', jiangchi_more:'多摸一张', zishou:'自守', diff --git a/game/asset.js b/game/asset.js index 41c7f8c89..6d7602ab8 100644 --- a/game/asset.js +++ b/game/asset.js @@ -1,5 +1,5 @@ window.noname_asset_list=[ - 'v1.9.104.1', + 'v1.9.105.1', 'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_online.mp3', 'audio/background/aozhan_rewrite.mp3', @@ -3379,6 +3379,7 @@ window.noname_asset_list=[ 'image/character/xin_caozhang.jpg', 'image/character/xin_gongsunzan.jpg', 'image/character/xin_liaohua.jpg', + 'image/character/key_godan.jpg', 'image/character/baiwuchang.jpg', 'image/character/baosanniang.jpg', diff --git a/game/config.js b/game/config.js index 8c6a5c765..7b26faa1f 100644 --- a/game/config.js +++ b/game/config.js @@ -126,10 +126,10 @@ window.config={ right_click:'pause', sort:'type_sort', - cards:['standard','ex','extra','sp','classic','basic','zhulu'], + cards:['standard','ex','extra','sp','classic','basic'], characters:['standard','shenhua','sp','sp2','yijiang','refresh','xinghuoliaoyuan','mobile','extra'], - connect_characters:[], - connect_cards:[], + connect_characters:['diy'], + connect_cards:['huanlekapai','guozhan','sp','zhulu'], plays:[], extensions:[], banned:[], diff --git a/game/game.js b/game/game.js index 035ae0448..411e05059 100644 --- a/game/game.js +++ b/game/game.js @@ -837,23 +837,23 @@ } }, // fewplayer:{ - // name:'启用人数', + // name:'启用人数', // intro:'设置启用新版布局的最小人数(不足时切换至默认布局)', - // init:'3', - // // unfrequent:true, - // item:{ - // '2':'两人', - // '3':'三人', - // '4':'四人', - // '5':'五人', - // '6':'六人', - // '7':'七人', - // '8':'八人', - // }, - // onclick:function(item){ - // game.saveConfig('fewplayer',item); - // if(ui.arena) ui.arena.setNumber(ui.arena.dataset.number); - // } + // init:'3', + // // unfrequent:true, + // item:{ + // '2':'两人', + // '3':'三人', + // '4':'四人', + // '5':'五人', + // '6':'六人', + // '7':'七人', + // '8':'八人', + // }, + // onclick:function(item){ + // game.saveConfig('fewplayer',item); + // if(ui.arena) ui.arena.setNumber(ui.arena.dataset.number); + // } // }, player_height:{ name:'角色高度', @@ -3772,43 +3772,43 @@ // onclick:function(){ // if(this.innerHTML!='已隐藏'){ // this.innerHTML='已隐藏'; - // var pack=lib.config.all.cards.slice(0); - // if(Array.isArray(lib.config.hiddenCardPack)){ - // for(var i=0;i>',page,function(){ - // if(expanded){ - // this.classList.remove('on'); - // this.parentNode.classList.remove('expanded'); - // } - // else{ - // this.classList.add('on'); - // this.parentNode.classList.add('expanded'); - // } - // expanded=!expanded; + // if(expanded){ + // this.classList.remove('on'); + // this.parentNode.classList.remove('expanded'); + // } + // else{ + // this.classList.add('on'); + // this.parentNode.classList.add('expanded'); + // } + // expanded=!expanded; // }); page.classList.add('morenodes'); for(var k=0;k
  • 列表1-条目1
  • 列表1-条目2
    1. 列表2-条目1
    2. 列表2-条目2"\n}\n帮助内容将显示在菜单-选项-帮助中\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/'); + createCode('主','主代码',page,clickCode,'content','function(config,pack){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之后、界面加载之前\n参数1扩展选项(见选项代码);参数2为扩展定义的武将、卡牌和技能等(可在此函数中修改)\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/'); + createCode('启','启动代码',page,clickCode,'precontent','function(){\n \n}\n\n\/*\n函数执行时机为游戏数据加载之前,且不受禁用扩展的限制\n除添加模式外请慎用\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/'); + createCode('选','选项代码',page,clickCode,'config','config={\n \n}\n\n\/*\n示例:\nconfig={\n switcher_example:{\n name:"示例列表选项",\n init:"3",\n item:{"1":"一","2":"二","3":"三"}\n },\n toggle_example:{\n name:"示例开关选项",\n init:true\n }\n}\n此例中传入的主代码函数的默认参数为{switcher_example:"3",toggle_example:true}\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/'); + createCode('帮','帮助代码',page,clickCode,'help','help={\n \n}\n\n\/*\n示例:\nhelp={\n "帮助条目":"
      • 列表1-条目1
      • 列表1-条目2
      1. 列表2-条目1
      2. 列表2-条目2"\n}\n帮助内容将显示在菜单-选项-帮助中\n导出时本段代码中的换行、缩进以及注释将被清除\n*\/'); return page; }()); @@ -39825,7 +39905,7 @@ game.checkForUpdate(null,true); }; // if(lib.config.dev){ - // li1.lastChild.appendChild(button3); + // li1.lastChild.appendChild(button3); // } (function(){ @@ -41004,14 +41084,14 @@ }, characterDialog:function(){ // if(lib.config.character_dialog_style=='newstyle'){ - // for(var i=0;i
        '; - // var stint=get.storageintro(intro.content,storage[i],node,null,i); - // if(stint){ - // translation+=stint+'
        '; - // uiintro.add(translation); - // } - // } - // } + // var storage=node.storage; + // for(i in storage){ + // if(get.info(i)&&get.info(i).intro){ + // intro=get.info(i).intro; + // if(node.getSkills().concat(lib.skill.global).contains(i)==false&&!intro.show) continue; + // var name=intro.name?intro.name:get.translation(i); + // if(typeof name=='function'){ + // name=name(storage[i],node); + // } + // translation='
        『'+name.slice(0,2)+'』
        '; + // var stint=get.storageintro(intro.content,storage[i],node,null,i); + // if(stint){ + // translation+=stint+'
        '; + // uiintro.add(translation); + // } + // } + // } // } if(lib.config.right_range&&_status.gameStarted){ @@ -51023,21 +51105,21 @@ else temp3=undefined; if(temp2&&typeof temp2.effect=='function'){ if(!player.hasSkillTag('ignoreSkill',true,{ - card:card, - target:target, - skill:skills2[i], - isLink:isLink, - })) temp2=temp2.effect(card,player,target,result2,isLink); - else temp2=undefined; + card:card, + target:target, + skill:skills2[i], + isLink:isLink, + })) temp2=temp2.effect(card,player,target,result2,isLink); + else temp2=undefined; } else if(temp2&&typeof temp2.effect=='object'&&typeof temp2.effect.target=='function'){ if(!player.hasSkillTag('ignoreSkill',true,{ - card:card, - target:target, - skill:skills2[i], - isLink:isLink, - })) temp2=temp2.effect.target(card,player,target,result2,isLink); - else temp2=undefined; + card:card, + target:target, + skill:skills2[i], + isLink:isLink, + })) temp2=temp2.effect.target(card,player,target,result2,isLink); + else temp2=undefined; } else temp2=undefined; if(typeof temp2=='object'){ @@ -51185,21 +51267,21 @@ else temp3=undefined; if(temp2&&typeof temp2.effect=='function'){ if(!player.hasSkillTag('ignoreSkill',true,{ - card:card, - target:target, - skill:skills2[i], - isLink:isLink, - })) temp2=temp2.effect(card,player,target,result2,isLink); - else temp2=undefined; + card:card, + target:target, + skill:skills2[i], + isLink:isLink, + })) temp2=temp2.effect(card,player,target,result2,isLink); + else temp2=undefined; } else if(temp2&&typeof temp2.effect=='object'&&typeof temp2.effect.target=='function'){ if(!player.hasSkillTag('ignoreSkill',true,{ - card:card, - target:target, - skill:skills2[i], - isLink:isLink, - })) temp2=temp2.effect.target(card,player,target,result2,isLink); - else temp2=undefined; + card:card, + target:target, + skill:skills2[i], + isLink:isLink, + })) temp2=temp2.effect.target(card,player,target,result2,isLink); + else temp2=undefined; } else temp2=undefined; if(typeof temp2=='object'){ diff --git a/game/keyWords.js b/game/keyWords.js index a4b84f427..6598b26d7 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 d5d7dad73..9f29e66aa 100644 --- a/game/update.js +++ b/game/update.js @@ -1,8 +1,8 @@ window.noname_update={ - version:'1.9.105', - update:'1.9.104.1', + version:'1.9.105.1', + update:'1.9.105', changeLog:[ - '动态技能描述(dynamicTranslate)', + '松下护騨', 'bug修复', ], @@ -11,16 +11,16 @@ window.noname_update={ //'card/huanlekapai.js', //'card/sp.js', 'card/standard.js', - 'card/swd.js', + //'card/swd.js', //'card/mtg.js', //'card/gujian.js', //'card/guozhan.js', - 'card/gwent.js', + //'card/gwent.js', //'card/yunchou.js', //'card/zhenfa.js', - 'card/zhulu.js', + //'card/zhulu.js', 'character/diy.js', - 'character/extra.js', + //'character/extra.js', //'character/hearth.js', //'character/gujian.js', //'character/gwent.js', @@ -33,17 +33,17 @@ window.noname_update={ 'character/sp.js', 'character/sp2.js', //'character/tw.js', - 'character/standard.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', + //'layout/default/layout.css', //'layout/nova/layout.css', //'mode/identity.js', - 'mode/doudizhu.js', + //'mode/doudizhu.js', 'mode/guozhan.js', //'mode/chess.js', //'mode/tafang.js', @@ -51,11 +51,11 @@ window.noname_update={ //'mode/stone.js', //'mode/brawl.js', //'mode/versus.js', - //'mode/boss.js', + 'mode/boss.js', 'game/game.js', 'game/keyWords.js', //'game/NoSleep.js', - //'game/config.js', + 'game/config.js', //'game/package.js', //'game/asset.js', //'game/source.js', diff --git a/image/character/key_godan.jpg b/image/character/key_godan.jpg new file mode 100644 index 000000000..0bcca46f3 Binary files /dev/null and b/image/character/key_godan.jpg differ diff --git a/mode/boss.js b/mode/boss.js index 1c73bb9ce..3e5332b8d 100644 --- a/mode/boss.js +++ b/mode/boss.js @@ -2797,7 +2797,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, logTarget:'source', content:function(){ - trigger.source.damage().nature=lib.linked.randomGet(); + trigger.source.damage().nature=['fire','thunder'].randomGet(); }, }, boss_pingdeng:{ diff --git a/mode/guozhan.js b/mode/guozhan.js index 4da2a5387..d0cb7568f 100644 --- a/mode/guozhan.js +++ b/mode/guozhan.js @@ -211,6 +211,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ vanish:true, derivation:'guozhan', }, + zhulian_card:{ + cardimage:'wuzhong', + }, }, aozhanRank:{ '8':[], @@ -1167,7 +1170,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ else{ if(get.attitude(player,trigger.source)>=0) check=false; } - player.chooseCard(get.prompt('gzfudi'),'交给其一张手牌,然后对其势力中体力值最大且不小于你的一名角色造成1点伤害').set('aicheck',check).set('ai',function(card){ + player.chooseCard(get.prompt('gzfudi',trigger.source),'交给其一张手牌,然后对其势力中体力值最大且不小于你的一名角色造成1点伤害').set('aicheck',check).set('ai',function(card){ if(!_status.event.aicheck) return 0; return 9-get.value(card); }); @@ -2227,24 +2230,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ expose:0.1, }, }, - "new_fenji":{ - audio:"fenji", - trigger:{ - global:"phaseAfter", - }, - filter:function (event,player){ - if(event.player.countCards('h')==0&&event.player.isAlive()) return true; - return false; - }, - check:function (event,player){ - return get.attitude(player,event.player)>2; - }, - content:function (){ - player.line(trigger.player,'green'); - trigger.player.draw(2); - player.loseHp(); - }, - }, "new_luanji":{ audio:"luanji", enable:"phaseUse", @@ -3532,12 +3517,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ game.countPlayer(function(current){current.addSkill('aozhan')}); }, }, - "xianqu_skill":{ + "_xianqu_skill":{ ruleSkill:true, enable:"phaseUse", - //filter:function (event,player){ - //return player.countCards('h')<4; - //}, + filter:function (event,player){ + return player.hasMark('_xianqu_skill'); + }, usable:1, mark:true, intro:{ @@ -3545,9 +3530,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, content:function (){ "step 0" + player.removeMark('_xianqu_skill',1); + game.log(player,'移去了','#g先驱','标记'); var num=4-player.countCards('h'); if(num) player.draw(num); - player.chooseTarget('是否观看一名其他角色的一张暗置武将牌?',function(card,player,target){ + "step 1" + if(game.hasPlayer(function(current){ + return current!=player&¤t.isUnseen(2); + })) player.chooseTarget('是否观看一名其他角色的一张暗置武将牌?',function(card,player,target){ return target!=player&&target.isUnseen(2); }).set('ai',function(target){ if(target.isUnseen()){ @@ -3557,7 +3547,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ } return -get.attitude(_status.event.player,target); }); - "step 1" + else event.finish(); + "step 2" if(result.bool){ event.target=result.targets[0]; player.line(event.target,'green'); @@ -3570,10 +3561,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ if(controls.length==0) event.finish(); } else{ - player.removeSkill('xianqu_skill'); + player.removeSkill('_xianqu_skill'); event.finish(); } - "step 2" + "step 3" if(result.control){ if(result.control=='主将'){ player.viewCharacter(event.target,0); @@ -3588,7 +3579,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ else{ player.viewCharacter(event.target,1); } - player.removeSkill('xianqu_skill'); }, ai:{ order:1, @@ -3602,78 +3592,93 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, "zhulianbihe_skill":{ ruleSkill:true, - group:["zhulianbihe_skill_draw","zhulianbihe_skill_tao"], mark:true, intro:{ content:"◇出牌阶段,你可以弃置此标记 然后摸两张牌。
        ◇你可以将此标记当做【桃】使用。", }, }, "yinyang_skill":{ - ruleSkill:true, - group:["yinyang_skill_draw","yinyang_skill_add"], mark:true, intro:{ content:"◇出牌阶段,你可以弃置此标记,然后摸一张牌。
        ◇弃牌阶段,你可以弃置此标记,然后本回合手牌上限+2。", }, }, - "zhulianbihe_skill_draw":{ + "_zhulianbihe_skill_draw":{ ruleSkill:true, enable:"phaseUse", - usable:1, - content:function (){ - player.draw(2); - player.removeSkill('zhulianbihe_skill'); + filter:function(event,player){ + return player.hasMark('zhulianbihe_skill'); + }, + chooseButton:{ + dialog:function(event,player){ + return ui.create.dialog('珠联璧合',[[ + ['摸牌','','zhulian_card'], + ['基本','','tao'] + ],'vcard'],'hidden'); + }, + filter:function(button,player){ + if(button.link[2]!='tao') return true; + return lib.filter.filterCard({name:'tao',isCard:true},player,_status.event.getParent()); + }, + check:function(button){ + var player=_status.event.player; + if(button.link[2]=='tao') return get.effect_use(player,{name:'tao'},player)>0?2:0; + if(player.getHandcardLimit()-player.countCards('h')>1&&!game.hasPlayer(function(current){ + return current!=player&¤t.isFriendOf(player)&¤t.hp+current.countCards('h','shan')<=2; + })) return 1; + return 0; + }, + backup:function(links,player){ + if(links[0][2]=='tao') return get.copy(lib.skill._zhulianbihe_skill_tao); + return { + content:function(){ + player.draw(2); + player.removeMark('zhulianbihe_skill',1); + }, + }; + }, }, ai:{ - order:function (item,player){ - var cards=player.getCards('h'); - if(player.hp>=3){ - if(cards.length>=3){ - for(var i=0;i=1) return 7.2; - } - return 1; - } - else return 7.2; - } - if(player.hp=2){ - if(cards.length<2){ - for(var i=0;i=1) return 7.2; - } - return 1; - } - } - return 1; + order:function(item,player){ + if(get.effect_use(player,{name:'tao'},player)>0) return get.order({name:'tao'},player)-0.1; + return 7.2; }, result:{ - player:2, + player:1, }, }, }, - "zhulianbihe_skill_tao":{ + "_zhulianbihe_skill_tao":{ ruleSkill:true, enable:"chooseToUse", + filter:function(event,player){ + return event.type!='phase'&&player.hasMark('zhulianbihe_skill'); + }, viewAs:{ name:"tao", + isCard:true, }, - filterCard:function (){return false}, + filterCard:function(){return false}, selectCard:-1, - precontent:function (){ - player.removeSkill('zhulianbihe_skill'); + precontent:function(){ + player.removeMark('zhulianbihe_skill',1); }, ai:{ save:true, - respondTao:true, + skillTagFilter:function(player){ + if(!player.hasMark('zhulianbihe_skill')) return false; + }, }, }, - "yinyang_skill_draw":{ + "_yinyang_skill_draw":{ ruleSkill:true, enable:"phaseUse", - usable:1, - content:function (){ + filter:function(event,player){ + return player.hasMark('yinyang_skill'); + }, + content:function(){ player.draw(); - player.removeSkill('yinyang_skill'); + player.removeMark('yinyang_skill',1); }, ai:{ order:function (item,player){ @@ -3690,18 +3695,18 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, }, }, - "yinyang_skill_add":{ + "_yinyang_skill_add":{ ruleSkill:true, trigger:{ - player:"phaseDiscardBefore", + player:"phaseDiscardBegin", }, filter:function (event,player){ - return player.needsToDiscard(); + return player.hasMark('yinyang_skill')&&player.needsToDiscard(); }, - prompt:"是否弃置【阴阳鱼】标记,使本回合的手牌上限+2?", + prompt:"是否弃置一枚【阴阳鱼】标记,使本回合的手牌上限+2?", content:function (){ player.addTempSkill('yinyang_add','phaseAfter'); - player.removeSkill('yinyang_skill'); + player.removeMark('yinyang_skill',1); }, }, "yinyang_add":{ @@ -7436,20 +7441,24 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ jihun_info:"当你受到伤害后,或与你势力不同的角色脱离濒死状态后,你可以将剩余武将牌堆的一张牌当做“魂”扣置于游戏外。", - "xianqu_skill":"先驱", - "xianqu_skill_info":"", + "_xianqu_skill":"先驱", + "_xianqu_skill_info":"", "zhulianbihe_skill":"珠联璧合", "zhulianbihe_skill_info":"", + _zhulianbihe_skill_draw_backup:'珠联', + zhulian_card:'摸两张牌', + zhulian_card_info:'弃置【珠联璧合】标记并摸两张牌', + zhulian_card_bg:'摸', "yinyang_skill":"阴阳鱼", "yinyang_skill_info":"", - "zhulianbihe_skill_draw":"珠联•摸牌", - "zhulianbihe_skill_draw_info":"", - "zhulianbihe_skill_tao":"珠联•桃", - "zhulianbihe_skill_tao_info":"", - "yinyang_skill_draw":"阴阳鱼", - "yinyang_skill_draw_info":"", - "yinyang_skill_add":"阴阳鱼", - "yinyang_skill_add_info":"", + "_zhulianbihe_skill_draw":"珠联", + "_zhulianbihe_skill_draw_info":"", + "_zhulianbihe_skill_tao":"珠联", + "_zhulianbihe_skill_tao_info":"", + "_yinyang_skill_draw":"阴阳鱼", + "_yinyang_skill_draw_info":"", + "_yinyang_skill_add":"阴阳鱼", + "_yinyang_skill_add_info":"", "yinyang_add":"阴阳鱼", "yinyang_add_info":"", @@ -7459,8 +7468,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ "new_duanliang_info":"出牌阶段,你可以将一张黑色基本牌或黑色装备牌当做【兵粮寸断】使用。你使用【兵粮寸断】没有距离限制。若你对距离超过2的角色发动了〖断粮〗,则本回合不能再发动〖断粮〗。", "new_shushen":"淑慎", "new_shushen_info":"当你回复1点体力后,你可令一名其他角色摸一张牌。", - "new_fenji":"奋激", - "new_fenji_info":"一名角色的结束阶段开始时,若其没有手牌,你可以令其摸两张牌,然后你失去1点体力。", "new_luanji":"乱击", "new_luanji_info":"你可以将两张与你本回合以此法转化的花色均不相同的手牌当【万箭齐发】使用。当一名与你势力相同的角色因响应此牌而打出【闪】时,该角色摸一张牌。", "new_qingcheng":"倾城", @@ -7950,8 +7957,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ player.$removeCharacter(event.num); }, doubleDraw:function(){ - game.log(player,'获得了','#g【阴阳鱼】','标记'); - player.addSkill('yinyang_skill'); + if(!player.hasMark('yinyang_skill')) player.addMark('yinyang_skill',1); }, changeViceOnline:function(){ 'step 0' @@ -8028,8 +8034,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, zhulian:function(){ player.popup('珠联璧合'); - game.log(player,'获得了','#g【珠联璧合】','标记'); - player.addSkill('zhulianbihe_skill'); + if(!player.hasMark('zhulianbihe_skill')) player.addMark('zhulianbihe_skill',1); }, }, player:{ @@ -8430,8 +8435,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ this.draw(2).log=false; } else{ - this.addSkill('xianqu_skill'); - game.log(this,'获得了','#g【先驱】','标记'); + this.addMark('_xianqu_skill',1); } _status.initshown=true; }