diff --git a/character/refresh.js b/character/refresh.js index a18f47273..91143b23b 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -1155,7 +1155,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, filter:function (event,player){ if(event._notrigger.contains(event.player)) return false; - return event.card&&event.card.name=='sha'&&event.player.isAlive()&&event.player.countGainableCards(player,'hej')>0; + return event.card&&event.card.name=='sha'&&event.player!=player&&event.player.isAlive()&&event.player.countGainableCards(player,'hej')>0; }, direct:true, content:function (){ diff --git a/character/shenhua.js b/character/shenhua.js index e263c3810..723e0c10d 100755 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -5577,7 +5577,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, liegong:{ audio:2, - trigger:{player:'useCardToTargeted'}, + trigger:{player:'useCardToPlayered'}, check:function(event,player){ return get.attitude(player,event.target)<=0; }, diff --git a/character/sp.js b/character/sp.js index 6167ed5d1..de8758e96 100755 --- a/character/sp.js +++ b/character/sp.js @@ -5,12 +5,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ connect:true, characterSort:{ sp:{ - sp_default:["caoying","simahui","baosanniang","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","liuxie","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","fuwan","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","lingju","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","guansuo","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","wenyang","guanlu","gexuan"], + sp_default:["caoying","simahui","baosanniang","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","liuxie","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","fuwan","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","lingju","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","guansuo","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","wenyang"], sp_whlw:["xurong","lijue","zhangji","fanchou","guosi"], sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"], sp_longzhou:["xf_tangzi","xf_huangquan","xf_sufei","sp_liuqi"], sp_zizouqi:["mangyachang","xugong","zhangchangpu"], sp_sbfm:["lisu","xinpi","zhangwen"], + sp_shengun:["puyuan","guanlu","gexuan"], sp_zhongdan:["cuiyan","huangfusong"], sp_star:["sp_xiahoushi","jsp_zhaoyun","huangjinleishi","sp_pangtong","sp_daqiao","sp_ganning","sp_xiahoudun","sp_lvmeng","sp_zhangfei","sp_liubei"], sp_guozhan:["shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan"], @@ -20,6 +21,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, character:{ + puyuan:['male','shu',3,['pytianjiang','pyzhuren'],['unseen']], xinpi:['male','wei',3,['xpchijie','yinju']], lisu:['male','qun',2,['lslixun','lskuizhu']], zhangwen:['male','wu',3,['songshu','sibian']], @@ -167,6 +169,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ //kaisa:["male","western",4,["zhengfu"]], }, characterIntro:{ + puyuan:'蒲元是三国时蜀汉杰出的工匠。为诸葛亮造刀三千口,并且制作木牛流马。后来姜维为他写过两部传记《蒲元传》《蒲元别传》。', zhangwen:'张温(193年—230年),字惠恕,吴郡吴县(今江苏苏州)人。少修节操,容貌奇伟。孙权召拜议郎、选曹尚书,徙太子太傅。黄武三年(224),以辅义中郎将身份出使蜀汉,孙权原先害怕诸葛亮会有意留难张温,但张温不担心。在呈上蜀汉朝廷的文书刻意称颂蜀汉,以表明和解的诚意,重建两国关系。他在蜀汉表现出色,得蜀汉朝廷重视。回东吴后不久,被调进豫章的军队,事业上再无进展。孙权一方面介怀他出使蜀汉时称颂蜀汉,又嫌他声名太盛,恐怕张温不会尽忠地由他任用。当时正好碰上暨艳事件,暨艳是张温引荐的臣子,但他滥用职权,升迁评定等只看自己喜恶。事件被揭发后暨艳及同党徐彪都自杀。孙权见此,于是以张温与暨艳、徐彪等人多有来往而下罪张温,后更将张温发还到家乡吴郡。将军骆统曾上书为张温辩解,但孙权不理会。六年后,张温病逝。', lisu:'李肃(?-192年),五原(治今内蒙古包头西北)人。永汉三年四月,司徒王允、尚书仆射士孙瑞、卓将吕布共谋诛卓。是时,天子有疾新愈,大会未央殿。布使同郡骑都尉肃等、将亲兵十馀人,伪著卫士服守掖门。布怀诏书。卓至,肃等格卓。卓惊呼布所在。布曰“有诏”,遂杀卓,夷三族。后卓女婿中郎将牛辅典兵别屯陕,分遣校尉李傕、郭汜、张济略陈留、颍川诸县。卓死,吕布使李肃至陕,欲以诏命诛辅。辅等逆与肃战,肃败走弘农,布诛肃。', xinpi:'辛毗(生卒年不详),字佐治,颍川阳翟人。三国时期曹魏大臣。原居陇西(郡治在今甘肃临洮县),东汉光武帝建武年间,其先人东迁。当初,辛毗跟随其兄事袁绍。曹操任司空时,征召辛毗,他不受命。官渡战后,辛毗事袁绍的儿子袁谭。公元204年,曹操攻下邺城,上表推荐辛毗任议郎,后为丞相长史。公元220年,曹丕即皇帝位,以辛毗为侍中,赐爵关内侯,后赐广平亭侯。魏明帝即位,封辛毗颍乡侯,食邑三百户,后为卫尉。公元234年,诸葛亮屯兵渭南,司马懿上表魏明帝。魏明帝任辛毗为大将军军师,加使持节号。诸葛亮病逝后,辛毗返回,仍任卫尉。不久,逝世,谥肃侯。', @@ -319,6 +322,70 @@ game.import('character',function(lib,game,ui,get,ai,_status){ cuimao:['caopi'], }, card:{ + pyzhuren_heart:{ + fullskin:true, + //derivation:'puyuan', + type:'equip', + subtype:'equip1', + distance:{attackFrom:-2}, + skills:['pyzhuren_heart'], + ai:{ + basic:{ + equipValue:2 + } + }, + }, + pyzhuren_diamond:{ + fullskin:true, + //derivation:'puyuan', + type:'equip', + subtype:'equip1', + distance:{attackFrom:-1}, + skills:['pyzhuren_diamond'], + ai:{ + basic:{ + equipValue:2 + } + }, + }, + pyzhuren_club:{ + fullskin:true, + //derivation:'puyuan', + type:'equip', + subtype:'equip1', + distance:{attackFrom:-1}, + skills:['pyzhuren_club'], + ai:{ + basic:{ + equipValue:2 + } + }, + }, + pyzhuren_spade:{ + fullskin:true, + //derivation:'puyuan', + type:'equip', + subtype:'equip1', + skills:['pyzhuren_spade'], + ai:{ + basic:{ + equipValue:2.6 + } + }, + }, + pyzhuren_shandian:{ + fullskin:true, + //derivation:'puyuan', + type:'equip', + subtype:'equip1', + distance:{attackFrom:-3}, + skills:['pyzhuren_shandian'], + ai:{ + basic:{ + equipValue:2 + } + }, + }, ly_piliche:{ fullskin:true, vanish:true, @@ -580,6 +647,235 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, skill:{ + //蒲元 + pytianjiang:{ + audio:2, + trigger:{ + global:'gameDrawAfter', + player:'enterGame', + }, + forced:true, + locked:false, + content:function(){ + 'step 0' + var i=0; + var list=[]; + while(i++<2){ + var card=get.cardPile(function(card){ + if(get.type(card)!='equip') return false; + return list.length==0||get.subtype(card)!=get.subtype(list[0]); + }); + if(card) list.push(card); + } + if(!list.length){event.finish();return;} + event.list=list; + player.gain(event.list,'gain2'); + 'step 1' + game.delay(1); + var card=event.list.shift(); + if(player.getCards('h').contains(card)){ + player.$give(card,player,false) + player.equip(card); + } + if(event.list.length) event.redo(); + }, + group:'pytianjiang_move', + }, + pytianjiang_move:{ + audio:'pytianjiang', + prompt:'将装备区里的一张牌移动至其他角色的装备区', + enable:'phaseUse', + position:'e', + filter:function(event,player){ + return player.countCards('e')>0; + }, + filterCard:true, + filterTarget:function(event,player,target){ + return target!=player&&!target.isDisabled(get.subtype(ui.selected.cards[0])); + }, + prepare:'give', + discard:false, + content:function(){ + target.equip(cards[0]); + }, + }, + pyzhuren:{ + audio:2, + enable:'phaseUse', + usable:1, + filterCard:true, + selectCard:1, + content:function(){ + if(!_status.pyzhuren) _status.pyzhuren={}; + var rand=get.number(cards[0])/13; + if(get.isLuckyStar()) rand=1; + var name='pyzhuren_'+(cards[0][cards[0].name=='shandian'?'name':'suit']); + if(!lib.card[name]||_status.pyzhuren[name]||Math.random()>rand){ + player.popup('杯具'); + game.log(player,'锻造失败'); + var card=get.cardPile(function(card){ + return card.name=='sha'; + }); + if(card) player.gain(card,'gain2'); + } + else{ + _status.pyzhuren[name]=true; + player.gain(game.createCard(name,cards[0].name=='shandian'?'spade':cards[0].suit,1),'gain2') + } + }, + group:'pyzhuren_destroy', + }, + pyzhuren_destroy:{ + trigger:{global:['loseEnd','cardsDiscardAfter']}, + forced:true, + filter:function(event,player){ + var cs=event.cards; + for(var i=0;i0; + return player.countCards('h',this.filterCard)>0; + }, + filterCard:function(card){ + return get.name(card)=='sha'||get.subtype(card)=='equip1'; + }, + content:function(){ + 'step 0' + var next=player.chooseToDiscard('h',lib.skill.pyzhuren_diamond.filterCard,get.prompt(event.name,trigger.player),'弃置一张【杀】或武器牌,令即将对其造成的伤害+1'); + next.ai=function(card){ + if(_status.event.goon) return 6-get.value(card); + return -1; + }; + next.set('goon',get.attitude(player,trigger.player)<0&&!trigger.player.getEquip('baiyin')) + next.logSkill=[event.name,trigger.player]; + 'step 1' + if(result.bool) trigger.num++; + }, + }, + pyzhuren_club:{ + audio:true, + trigger:{player:'useCard2'}, + direct:true, + filter:function(event,player){ + if(player.countUsed()>=1) return false; + if(event.card.name!='sha'&&get.type(event.card)!='trick') return false; + var info=get.info(event.card); + if(info.allowMultiple==false) return false; + if(event.targets&&!info.multitarget){ + if(game.hasPlayer(function(current){ + return lib.filter.targetEnabled2(event.card,player,current)&&!event.targets.contains(current); + })){ + return true; + } + } + return false; + }, + content:function(){ + 'step 0' + var prompt2='为'+get.translation(trigger.card)+'额外指定一个目标'; + player.chooseTarget([1,player.storage.fumian_red],get.prompt(event.name),function(card,player,target){ + var player=_status.event.player; + if(_status.event.targets.contains(target)) return false; + return lib.filter.targetEnabled2(_status.event.card,player,target); + }).set('prompt2',prompt2).set('ai',function(target){ + var trigger=_status.event.getTrigger(); + var player=_status.event.player; + return get.effect(target,trigger.card,player,player); + }).set('targets',trigger.targets).set('card',trigger.card); + 'step 1' + if(result.bool){ + if(!_status.connectMode&&!event.isMine()) game.delayx(); + event.targets=result.targets; + } + else{ + event.finish(); + } + 'step 2' + if(event.targets){ + player.logSkill(event.name,event.targets); + trigger.targets.addArray(event.targets); + } + }, + }, + pyzhuren_spade:{ + audio:true, + trigger:{player:'useCardToPlayered'}, + filter:function(event,player){ + return event.card.name=='sha'&&event.targets.length==1&&get.color(event.card)=='black'; + }, + check:function(event,player){ + return get.attitude(player,event.player)<=0; + }, + content:function(){ + trigger.target.gain(trigger.cards.filterInD(),'gain2'); + trigger.target.loseHp(); + }, + ai:{jueqing:true}, + }, + pyzhuren_shandian:{ + audio:true, + trigger:{player:'useCardToPlayered'}, + filter:function(event,player){ + return event.card.name=='sha'&&event.targets.length==1; + }, + check:function(event,player){ + return get.attitude(player,event.player)<=0; + }, + content:function(){ + 'step 0' + player.judge(function(card){ + if(get.suit(card)=='spade'&&card.number>1&&card.number<10) return 10; + return 0; + }); + 'step 1' + if(result.bool){ + trigger.target.damage(3,'thunder'); + trigger.getParent().excluded.add(trigger.target); + } + }, + }, //上兵伐谋 //伊籍在标包 不会移动 songshu:{ @@ -1342,6 +1638,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.popup(trigger.card.name,trigger.name=='useCard'?'metal':'wood'); 'step 1' var random=0.5+player.countCards('e')*0.1; + if(get.isLuckyStar()) random=1; if(random>=Math.random()){ player.popup('洗具'); } @@ -2913,7 +3210,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, "new_zhixi":{ trigger:{ - player:"useCardAfter", + player:"useCard1", }, forced:true, popup:false, @@ -2924,6 +3221,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function (){ player.addTempSkill('new_meibu_viewas','phaseUseEnd'); }, + ai:{presha:true,pretao:true,nokeep:true}, }, "new_mumu2":{ mod:{ @@ -2991,7 +3289,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, weijing:{ - audio:'qingzhong', + audio:2, group:['weijing_sha','weijing_shan'], subSkill:{ sha:{ @@ -3495,7 +3793,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ group:'yingyuan_clear', subSkill:{ clear:{ - trigger:{player:'phaseAfter'}, + trigger:{player:'phaseEnd'}, silent:true, content:function(){ delete player.storage.yingyuan; @@ -13316,6 +13614,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xinpi:'辛毗', lisu:'李肃', zhangwen:'张温', + puyuan:'蒲元', + + pytianjiang:'天匠', + pytianjiang_info:'游戏开始时,你随机获得两张不同副类别的装备牌,并置入你的装备区。出牌阶段,你装备区里的牌可以移动至其他角色的装备区并替换其原有装备。', + pytianjiang_move:'天匠', + pyzhuren:'铸刃', + pyzhuren_info:'出牌阶段限一次,你可以弃置一张手牌。根据此牌的花色点数,你有一定概率打造成功并获得一张武器牌(若打造失败或武器已有则改为摸一张【杀】,花色决定武器名称,点数决定成功率)。此武器牌进入弃牌堆时,将其移出游戏。', + pyzhuren_destroy:'铸刃', + pyzhuren_heart:'红锻枪', + pyzhuren_heart_info:'每回合限一次,当你使用【杀】造成伤害后,你可以进行一次判定,若结果为红色,你回复1点体力。', + pyzhuren_diamond:'裂淬刀', + pyzhuren_diamond_info:'当你使用【杀】对目标角色造成伤害时,你可以弃置一张【杀】或武器牌,令此伤害+1。', + pyzhuren_club:'水波剑', + pyzhuren_club_info:'当你于出牌阶段使用第一张牌时,若此牌是普通锦囊牌或【杀】,则你可以为此牌增加一个目标。', + pyzhuren_spade:'混毒弯匕', + pyzhuren_spade_info:'当你使用的黑色【杀】指定单一目标后,你可令该角色获得此【杀】,然后其失去1点体力。', + pyzhuren_shandian:'天雷刃', + pyzhuren_shandian_info:'当你使用【杀】仅指定一名角色为目标后,可令其进行一次判定,若结果为黑桃2~黑桃9,该角色受到3点雷电伤害,然后此【杀】对其无效。', songshu:'颂蜀', songshu_info:'出牌阶段,你可以和其他角色拼点。若你没赢,其摸两张牌,且你本阶段内不能再发动〖颂蜀〗', @@ -13954,6 +14270,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sp_longzhou:"同舟共济", sp_zizouqi:"自走棋", sp_sbfm:'上兵伐谋', + sp_shengun:'未命名分组', sp_zhongdan:"忠胆英杰", sp_star:"☆SP系列", sp_guozhan:"国战", diff --git a/character/standard.js b/character/standard.js index 43a91d03f..e6fa5edcc 100755 --- a/character/standard.js +++ b/character/standard.js @@ -698,7 +698,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(event.responded) return false; if(player.storage.jijianging) return false; if(!player.hasZhuSkill('jijiang')) return false; - if(event.filterCard({name:'sha'},player,event)==false) return false; + if(!event.filterCard({name:'sha'},player,event)) return false; return game.hasPlayer(function(current){ return current!=player&¤t.group=='shu'; }); diff --git a/character/yijiang.js b/character/yijiang.js index 5bf12a992..a7a7dde27 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -3489,18 +3489,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, mod:{ - cardEnabled:function(card,player){ + cardEnabled2:function(card,player){ if(get.color(card)==player.storage.xinsidi2) return false; }, - cardUsable:function(card,player){ - if(get.color(card)==player.storage.xinsidi2) return false; - }, - cardRespondable:function(card,player){ - if(get.color(card)==player.storage.xinsidi2) return false; - }, - cardSavable:function(card,player){ - if(get.color(card)==player.storage.xinsidi2) return false; - } }, intro:{ content:'不能使用或打出$的牌' @@ -6313,7 +6304,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(event.responded) return false; if(!player.hasZhuSkill('qinwang')) return false; if(!player.countCards('he')) return false; - if(event.filterCard({name:'sha'},player,event)==false) return false; + if(!event.filterCard({name:'sha'},player,event)) return false; return game.hasPlayer(function(current){ return current!=player&¤t.group=='shu'; }); @@ -6424,8 +6415,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } else if(event.current.group=='shu'){ var next=event.current.chooseToRespond('是否替'+get.translation(player)+'对'+get.translation(target)+'使用一张杀', - function(card){ - var evt=_status.event.source; + function(card,player,event){ + var evt=event||_status.event; return card.name=='sha'||evt.source.canUse(card,evt.target); }); next.set('ai',function(card){ diff --git a/game/game.js b/game/game.js index 2903859cb..b0aa44d80 100644 --- a/game/game.js +++ b/game/game.js @@ -44694,7 +44694,10 @@ var nameskin=name; var nameskin2=name; var gzbool=false; - if(nameskin.indexOf('gz_')==0){ + if(nameskin.indexOf('gz_shibing')==0){ + nameskin=nameskin.slice(3,11); + } + else if(nameskin.indexOf('gz_')==0){ nameskin=nameskin.slice(3); gzbool=true; } @@ -48491,7 +48494,10 @@ var nameskin=(avatar2?node.name2:node.name); var nameskin2=nameskin; var gzbool=false; - if(nameskin.indexOf('gz_')==0){ + if(nameskin.indexOf('gz_shibing')==0){ + nameskin=nameskin.slice(3,11); + } + else if(nameskin.indexOf('gz_')==0){ nameskin=nameskin.slice(3); gzbool=true; } @@ -48552,7 +48558,10 @@ var nameskin=(avatar2?node.name2:node.name); var nameskin2=nameskin; var gzbool=false; - if(nameskin.indexOf('gz_')==0){ + if(nameskin.indexOf('gz_shibing')==0){ + nameskin=nameskin.slice(3,11); + } + else if(nameskin.indexOf('gz_')==0){ nameskin=nameskin.slice(3); gzbool=true; } @@ -48984,7 +48993,10 @@ var nameskin=node.link; var nameskin2=nameskin; var gzbool=false; - if(nameskin.indexOf('gz_')==0){ + if(nameskin.indexOf('gz_shibing')==0){ + nameskin=nameskin.slice(3,11); + } + else if(nameskin.indexOf('gz_')==0){ nameskin=nameskin.slice(3); gzbool=true; } diff --git a/game/update.js b/game/update.js index b98dfb5d7..7d59b98c9 100644 --- a/game/update.js +++ b/game/update.js @@ -1,6 +1,6 @@ window.noname_update={ - version:'1.9.96.4.1', - update:'1.9.96.4', + version:'1.9.96.5', + update:'1.9.96.4.1', changeLog:[ '修复BUG', ], @@ -20,9 +20,9 @@ window.noname_update={ //'character/mobile.js', //'character/mtg.js', //'character/old.js', - //'character/refresh.js', + 'character/refresh.js', 'character/shenhua.js', - //'character/sp.js', + 'character/sp.js', //'character/tw.js', 'character/standard.js', //'character/swd.js', @@ -31,9 +31,10 @@ window.noname_update={ 'character/yijiang.js', //'character/yxs.js', //'extension/boss/extension.js', + 'layout/default/layout.css', //'mode/identity.js', //'mode/doudizhu.js', - //'mode/guozhan.js', + 'mode/guozhan.js', //'mode/single.js', //'mode/stone.js', //'mode/versus.js', diff --git a/image/character/puyuan.jpg b/image/character/puyuan.jpg new file mode 100644 index 000000000..ad8cd5d52 Binary files /dev/null and b/image/character/puyuan.jpg differ diff --git a/image/character/re_zuoci.jpg b/image/character/re_zuoci.jpg index 5c9b8b3cb..a5b27d5a5 100644 Binary files a/image/character/re_zuoci.jpg and b/image/character/re_zuoci.jpg differ diff --git a/image/character/xin_yuji.jpg b/image/character/xin_yuji.jpg index 5b0164cf0..ddcf2b608 100644 Binary files a/image/character/xin_yuji.jpg and b/image/character/xin_yuji.jpg differ diff --git a/layout/default/layout.css b/layout/default/layout.css index 1e219d7b5..2820619bd 100644 --- a/layout/default/layout.css +++ b/layout/default/layout.css @@ -2261,6 +2261,9 @@ div:not(.handcards)>.card>.info>span, #window>.damage.fullscreenavatar[data-nature='fire']>div:first-child>div{ box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0,0.5) 0 0 20px, rgba(0, 0, 0,0.3) 0 0 40px, rgba(232, 53, 53, 1) 0 0 80px; } +#window>.damage.fullscreenavatar[data-nature='fire']>div:first-child>div{ + box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0,0.5) 0 0 20px, rgba(0, 0, 0,0.3) 0 0 40px, rgba(203, 177, 255, 1) 0 0 80px; +} #window>.damage.fullscreenavatar[data-nature='orange']>div:first-child>div{ box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0,0.5) 0 0 20px, rgba(0, 0, 0,0.3) 0 0 40px, rgba(255, 120, 0, 1) 0 0 80px; } @@ -3747,6 +3750,23 @@ span[data-nature='metalmm'] { rgba(255, 203, 0,1) 0 0 2px,black 0 0 1px; } +.player .identity[data-color="key"], +div[data-nature='key'], +span[data-nature='key'] { + text-shadow: rgba(203, 177, 255,1) 0 0 2px,rgba(203, 177, 255,1) 0 0 5px,rgba(203, 177, 255,1) 0 0 10px, + rgba(203, 177, 255,1) 0 0 10px,rgba(203, 177, 255,1) 0 0 20px,rgba(203, 177, 255,1) 0 0 20px,black 0 0 1px; +} +div[data-nature='keym'], +span[data-nature='keym'] { + text-shadow: rgba(203, 177, 255,1) 0 0 2px,rgba(203, 177, 255,1) 0 0 5px,rgba(203, 177, 255,1) 0 0 5px, + rgba(203, 177, 255,1) 0 0 5px,black 0 0 1px; +} +div[data-nature='keymm'], +span[data-nature='keymm'] { + text-shadow: rgba(203, 177, 255,1) 0 0 2px,rgba(203, 177, 255,1) 0 0 2px,rgba(203, 177, 255,1) 0 0 2px, + rgba(203, 177, 255,1) 0 0 2px,black 0 0 1px; +} + .player .identity[data-color="nei"], .player .identity[data-color="ye"], div[data-nature='thunder'], diff --git a/mode/boss.js b/mode/boss.js index 4162a03ee..a69cdb23e 100644 --- a/mode/boss.js +++ b/mode/boss.js @@ -4680,18 +4680,18 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ if(get.color(card)=='red'&&player!=target) return false; } }, - global:'boss_fentian2' + group:'boss_fentian2', }, boss_fentian2:{ - mod:{ - cardRespondable:function(card,player){ - var evt=_status.event.parent; - if(evt.player&&evt.player.hasSkill('boss_fentian')&& - player!=evt.player&&evt.card&&get.color(evt.card)=='red'){ - return false; - } - } - } + trigger:{player:'useCard'}, + forced:true, + filter:function(event,player){ + return get.color(event.card)=='red'; + }, + content:function(){ + trigger.directHit.addArray(game.players); + trigger.directHit.remove(player); + }, }, boss_xingxia:{ enable:'phaseUse', @@ -8269,6 +8269,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ boss_shenen_info:'锁定技,所有己方角色使用牌无距离限制;所有敌方角色摸牌阶段多摸一张牌且手牌上限+1', boss_fentian:'焚天', boss_fentian_info:'锁定技,你造成的伤害视为火焰伤害;你使用红色牌无距离和次数限制,且不可被其他角色使用【闪】或【无懈可击】响应', + boss_fentian2:'焚天', boss_xingxia:'行夏', boss_xingxia_info:'每两轮限一次,出牌阶段,你可以对焰灵造成2点火焰伤害,然后令每名敌方角色选择一项:1.弃置一张红色牌;2.你对其造成1点火焰伤害', boss_huihuo:'回火', diff --git a/mode/guozhan.js b/mode/guozhan.js index 13dfd2182..6b1065120 100644 --- a/mode/guozhan.js +++ b/mode/guozhan.js @@ -747,14 +747,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, filter:function (event,player){ return game.hasPlayer(function(current){ - return current!=player&¤t.isFriendOf(player)&¤t.countGainableCards(player,'e')>0; + return current.isFriendOf(player)&¤t.countGainableCards(player,'e')>0; }); }, direct:true, content:function (){ 'step 0' player.chooseTarget(get.prompt2('xindiaodu'),function(card,player,current){ - return current!=player&¤t.isFriendOf(player)&¤t.countGainableCards(player,'e')>0; + return current.isFriendOf(player)&¤t.countGainableCards(player,'e')>0; }).ai=function(target){ var num=1; if(target.hasSkill('gzxiaoji')) num+=2.5; @@ -774,8 +774,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ if(result.bool){ event.card=result.cards[0]; player.chooseTarget('是否将'+get.translation(event.card)+'交给一名其他角色?',function(card,player,current){ - return current!=player&¤t!=event.target1&¤t.isFriendOf(player); - }); + return current!=player&¤t!=_status.event.target1&¤t.isFriendOf(player); + }).set('target1',event.target1); } else event.finish(); 'step 3' @@ -4298,10 +4298,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ trigger.player.addTempSkill('gzyuejian_num'); }, logTarget:'player', - check:function(event,player){ - return event.player.needsToDiscard()&&event.player.isDamaged(); - }, - frequent:true, + forced:true, group:['gzyuejian_count','gzyuejian_clear'], subSkill:{ num:{ @@ -4869,7 +4866,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ unique:true, forceunique:true, enable:'phaseUse', - filterCard:{color:'red'}, + filterCard:function(card){ + return get.name(card)!='taipingyaoshu'&&get.color(card)=='red'; + }, position:'he', check:function(card){ return 6-get.value(card); @@ -5268,6 +5267,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, }, yicheng:{ + audio:2, trigger:{global:'useCardToTargeted'}, filter:function(event,player){ return event.card.name=='sha'&&event.target.isFriendOf(player); @@ -5641,7 +5641,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ 'step 0' player.removeCharacter(1); 'step 1' - player.awakenSkill('baoling'); + player.removeSkill('baoling'); player.gainMaxHp(3,true); 'step 2' player.recover(3); @@ -7140,7 +7140,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ zhuwei_info:'当你的判定牌生效后,若此牌为【杀】或【决斗】,你可以获得之,然后你可令当前回合角色本回合可额外使用一张【杀】,且手牌上限+1。', gz_yuanshu:'袁术', gzweidi:'伪帝', - gzweidi_info:'出牌阶段限一次,你可以指定本回合从牌堆获得过牌的角色,然后选择一个“军令”,令其选择一项:执行该军令;或令你获得其所有手牌,然后交给其等量的牌。', + gzweidi_info:'出牌阶段限一次,你可以指定一名本回合从牌堆获得过牌的其他角色,然后选择一个“军令”,令其选择一项:执行该军令;或令你获得其所有手牌,然后交给其等量的牌。', gzyongsi:'庸肆', gzyongsi_info:'锁定技,若场上没有【玉玺】,视为你装备之;当你成为【知己知彼】的目标时,你展示你的所有手牌。', //gzyongsi_eff1:'玉玺', @@ -7164,7 +7164,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ gzzongyu_info:'当【六龙骖驾】进入其他角色的装备区后,你可以用你装备区内所有坐骑牌(至少一张)与【六龙骖驾】交换位置。锁定技,当你使用一张坐骑牌后,若场上或弃牌堆中有【六龙骖驾】,则将【六龙骖驾】置入你的装备区。', xindiaodu:"调度", - "xindiaodu_info":"当与你势力相同的角色使用装备牌时,该角色可以摸一张牌;出牌阶段开始时,你可以获得与你势力相同的一名其他角色装备区里的一张牌,然后你可以将此牌交给另一名与你势力相同的其他角色。", + "xindiaodu_info":"当与你势力相同的角色使用装备牌时,该角色可以摸一张牌;出牌阶段开始时,你可以获得与你势力相同的一名角色装备区里的一张牌,然后你可以将此牌交给另一名与你势力相同的其他角色。", yigui:"役鬼", "yigui_info":"当你第一次明置此武将牌时,你将剩余武将牌堆的两张牌扣置于游戏外,称为“魂”;你可以将一张“魂”亮出并置入剩余武将牌堆,视为你使用一张本回合你未以此法使用过的基本牌或普通锦囊牌,且目标须为与此“魂”势力相同或未确定势力的角色。 ", "yigui_init":"役鬼", @@ -7199,7 +7199,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ "new_duanliang":"断粮", "new_duanliang_info":"出牌阶段,你可以将一张黑色基本牌或黑色装备牌当做一张【兵粮寸断】使用。你使用【兵粮寸断】没有距离限制。若你对距离超过2的角色发动了“断粮”,则本回合不能再发动“断粮”。", "new_shushen":"淑慎", - "new_shushen_info":"当你回复1点体力时,你可令一名其他角色摸一张牌。", + "new_shushen_info":"当你回复1点体力后,你可令一名其他角色摸一张牌。", "new_fenji":"奋激", "new_fenji_info":"一名角色的结束阶段,若其没有手牌,则你可以令其摸两张牌,然后你失去1点体力。", "new_luanji":"乱击", @@ -7282,7 +7282,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ gzqice_backup:'奇策', gzqice_info:'出牌阶段限一次,你可以将所有手牌当任意一张普通锦囊牌使用,你不能以此法使用目标数超过X的牌(X为你的手牌数),然后你可以变更副将。', gzyuejian:'约俭', - gzyuejian_info:'与你势力相同角色的弃牌阶段开始时,若其本回合未使用指定过其他势力的角色为目标,则该角色本回合手牌上限等同于其体力上限', + gzyuejian_info:'锁定技,与你势力相同角色的弃牌阶段开始时,若其本回合未使用指定过其他势力的角色为目标,则该角色本回合手牌上限等同于其体力上限', gzxiongsuan:'凶算', gzxiongsuan_info:'限定技,出牌阶段,你可以弃置一张手牌并选择与你势力相同的一名角色,对其造成1点伤害,然后你摸三张牌。若该角色有已发动的限定技,则你选择其中一个限定技,此回合结束后视为该限定技未发动过。', gzhuashen:'化身', @@ -7308,7 +7308,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ hongfa_respond:'天兵', hongfa_info:'君主技,锁定技,当此武将牌明置时,你获得“黄巾天兵符”;准备阶段开始时,若没有“天兵”,你将牌堆顶的X张牌置于“黄巾天兵符”上,称为“天兵”(X为群势力角色的数量)', wendao:'问道', - wendao_info:'出牌阶段限一次,你可以弃置一张红色牌,获得弃牌堆里或场上的一张【太平要术】', + wendao_info:'出牌阶段限一次,你可以弃置一张不为【太平要术】的红色牌,获得弃牌堆里或场上的一张【太平要术】', huangjintianbingfu:'黄巾天兵符', huangjintianbingfu_ab:'兵符', huangjintianbingfu_bg:'符', @@ -7334,7 +7334,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ gzsuishi:'随势', gzsuishi_info:'锁定技,当其他角色进入濒死状态时,若伤害来源与你势力相同,你摸一张牌;当其他角色死亡时,若其与你势力相同,你失去1点体力', baoling:'暴凌', - baoling_info:'主将技,锁定技,出牌阶段结束时,若你有副将,则你移除副将,然后加3点体力上限,回复3点体力,并获得“崩坏”', + baoling_info:'主将技,锁定技,出牌阶段结束时,若你有副将,则你移除副将,然后加3点体力上限,回复3点体力,失去技能〖暴凌〗并获得〖崩坏〗', yingyang:'鹰扬', yingyang_info:'当你拼点的牌亮出后,你可以令此牌的点数+3或-3(至多为K,至少为1)', hunshang:'魂殇',