diff --git a/character/hearth.js b/character/hearth.js index 88d9eead7..281e0bd62 100755 --- a/character/hearth.js +++ b/character/hearth.js @@ -39,7 +39,7 @@ character.hearth={ hs_huzhixiannv:['female','wu',3,['jingmeng','qingliu']], // hs_tgolem:['male','qun',4,['guozai']], hs_totemic:['male','wu',3,['s_tuteng']], - hs_xsylvanas:['female','qun',3,['busi','shixin','xmojian']], + hs_xsylvanas:['female','qun',3,['busi','xshixin','xmojian']], hs_siwangzhiyi:['male','qun',12,['mieshi']], hs_bilanyoulong:['male','wei',4,['lingzhou']], }, @@ -225,7 +225,7 @@ character.hearth={ } }, xmojian2:{}, - shixin:{ + xshixin:{ trigger:{source:'damageEnd'}, forced:true, filter:function(event,player){ @@ -2223,8 +2223,8 @@ character.hearth={ lingzhou_info:'每当你使用一张锦囊牌,可令一名角色摸一张牌或回复一点体力', mieshi:'灭世', mieshi_info:'锁定技,回合结束阶段,你流失一点体力,并对一名随机的其他角色造成一点火焰伤害', - shixin:'蚀心', - shixin_info:'锁定技,每当你对一名其他角色造成一次伤害,受伤害角色与你各流失一点体力', + xshixin:'蚀心', + xshixin_info:'锁定技,每当你对一名其他角色造成一次伤害,受伤害角色与你各流失一点体力', xmojian:'魔箭', xmojian_info:'每当你翻面时,你可以指定一名角色视为对其使用了一张杀,每回合最多发动一次', enze:'恩泽', diff --git a/character/refresh.js b/character/refresh.js index 4abbf2777..ba311c2df 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -366,7 +366,7 @@ character.refresh={ }, discard:false, prepare:function(cards,player,targets){ - player.$give(1,targets[0]); + player.$give(cards,targets[0]); }, content:function(){ "step 0" diff --git a/character/sp.js b/character/sp.js index 338b35ea6..114177202 100755 --- a/character/sp.js +++ b/character/sp.js @@ -35,6 +35,11 @@ character.sp={ wutugu:['male','qun',15,['ranshang','hanyong']], sp_caiwenji:['female','wei',3,['chenqing','mozhi']], zhugeguo:['female','shu',3,['yuhua','qirang']], + liuzan:['male','wu',4,['fenyin']], + lingcao:['male','wu',4,['dujin']], + sunru:['female','wu',3,['shixin','qingyi']], + lingju:['female','qun',3,['jieyuan','fenxin']], + lifeng:['male','shu',3,['tunchu','shuliang']], }, perfectPair:{ zhugejin:['zhugeke'], @@ -46,8 +51,337 @@ character.sp={ zhangbao:['zhangliang','zhangjiao'], zhangliang:['zhangjiao'], maliang:['masu'], + lingcao:['lingtong'], + lingju:['diaochan','lvbu'], }, skill:{ + tunchu:{ + trigger:{player:'phaseDrawBegin'}, + check:function(event,player){ + return player.num('h')-player.num('h',{type:'equip'})+2<=player.hp; + }, + content:function(){ + trigger.num+=2; + player.addTempSkill('tunchu_choose','phaseDrawAfter'); + }, + init:function(player){ + player.storage.tunchu=[]; + }, + intro:{ + content:'cards' + }, + group:'tunchu_disable', + subSkill:{ + choose:{ + trigger:{player:'phaseDrawEnd'}, + forced:true, + popup:false, + content:function(){ + 'step 0' + player.removeSkill('tunchu_choose'); + if(player.num('h')){ + player.chooseCard('h',true); + } + else{ + event.finish(); + } + 'step 1' + player.lose(result.cards,ui.special); + player.storage.tunchu=player.storage.tunchu.concat(result.cards); + player.markSkill('tunchu'); + player.syncStorage('tunchu'); + } + }, + disable:{ + mod:{ + cardEnabled:function(card,player){ + if(player.storage.tunchu&&player.storage.tunchu.length&& + (card.name=='sha'||card.name=='juedou')){ + return false; + } + }, + cardUsable:function(card,player){ + if(player.storage.tunchu&&player.storage.tunchu.length&& + (card.name=='sha'||card.name=='juedou')){ + return false; + } + }, + } + } + } + }, + shuliang:{ + trigger:{global:'phaseEnd'}, + direct:true, + filter:function(event,player){ + return player.storage.tunchu&&player.storage.tunchu.length>0&&event.player.num('h')==0; + }, + content:function(){ + 'step 0' + var goon=(ai.get.attitude(player,trigger.player)>0); + player.chooseCardButton('是否对'+get.translation(trigger.player)+'发动【输粮】?',player.storage.tunchu).ai=function(){ + if(goon) return 1; + return 0; + } + 'step 1' + if(result.bool){ + player.logSkill('shuliang',trigger.player); + player.storage.tunchu.remove(result.links[0]); + player.$throw(result.links); + ui.discardPile.appendChild(result.links[0]); + player.syncStorage('tunchu'); + if(player.storage.tunchu.length==0){ + player.unmarkSkill('tunchu'); + } + trigger.player.draw(2); + } + } + }, + jieyuan:{ + group:['jieyuan_more','jieyuan_less'], + subSkill:{ + more:{ + trigger:{source:'damageBegin'}, + direct:true, + filter:function(event,player){ + if(!player.num('h',{color:'black'})) return false; + return event.player.hp>=player.hp&&player!=event.player; + }, + content:function(){ + 'step 0' + var goon=(ai.get.attitude(player,trigger.player)<0); + var next=player.chooseToDiscard('是否对'+get.translation(trigger.player)+'发动【竭缘】?',{color:'black'}); + next.ai=function(){ + if(goon){ + return 8-ai.get.value(card); + } + return 0; + } + next.logSkill=['jieyuan',trigger.player]; + 'step 1' + if(result.bool){ + player.logSkill('jieyuan',trigger.player); + trigger.num++; + } + } + }, + less:{ + trigger:{player:'damageBegin'}, + filter:function(event,player){ + if(!player.num('h',{color:'red'})) return false; + return event.source&&event.source.hp>=player.hp&&player!=event.source; + }, + direct:true, + content:function(){ + "step 0" + var next=player.chooseToDiscard('竭缘:是否弃置一张红色手牌令伤害-1?',{color:'red'}); + next.ai=function(card){ + if(player.hp==1||trigger.num>1){ + return 9-ai.get.value(card); + } + if(player.hp==2){ + return 8-ai.get.value(card); + } + return 7-ai.get.value(card); + }; + next.logSkill='jieyuan'; + "step 1" + if(result.bool){ + game.delay(); + trigger.num--; + } + } + } + }, + ai:{ + expose:0.2, + threaten:1.5 + } + }, + fenxin:{ + mode:['identity'], + trigger:{source:'dieBegin'}, + filter:function(event,player){ + return event.player.identity!='zhu'&&player.identity!='zhu'&& + player.identity!='mingzhong'&&event.player.identity!='mingzhong'; + }, + check:function(event,player){ + if(player.identity==event.player.identity) return Math.random()<0.5; + var stat=ai.get.situation(); + switch(player.identity){ + case 'fan': + if(stat<0) return false; + if(stat==0) return Math.random()<0.6; + return true; + case 'zhong': + if(stat>0) return false; + if(stat==0) return Math.random()<0.6; + return true; + case 'nei': + if(event.player.identity=='fan'&&stat<0) return true; + if(event.player.identity=='zhong'&&stat>0) return true; + if(stat==0) return Math.random()<0.7; + return false; + } + }, + prompt:function(event,player){ + return '焚心:是否与'+get.translation(event.player)+'交换身份?'; + }, + content:function(){ + var identity=player.identity; + player.identity=trigger.player.identity; + if(player.identityShown||player==game.me){ + player.setIdentity(); + } + trigger.player.identity=identity; + player.line(trigger.player,'green'); + } + }, + qingyi:{ + group:['qingyi1','qingyi2'] + }, + qingyi1:{ + audio:2, + trigger:{player:'phaseBegin'}, + direct:true, + content:function(){ + "step 0" + player.addSkill('qingyi3'); + var check= player.num('h')>2; + player.chooseTarget('是否发动【轻逸】?',function(card,player,target){ + if(player==target) return false; + return player.canUse({name:'sha'},target); + }).ai=function(target){ + if(!check) return 0; + return ai.get.effect(target,{name:'sha'},_status.event.player); + } + "step 1" + if(result.bool){ + player.logSkill('qingyi1',result.targets); + player.useCard({name:'sha'},result.targets[0],false); + player.skip('phaseJudge'); + player.skip('phaseDraw'); + } + player.removeSkill('qingyi3'); + } + }, + qingyi2:{ + audio:2, + trigger:{player:'phaseUseBefore'}, + direct:true, + filter:function(event,player){ + return player.num('he',{type:'equip'})>0; + }, + content:function(){ + "step 0" + player.addSkill('qingyi3'); + var check=player.num('h')<=player.hp; + player.chooseCardTarget({ + prompt:'是否发动【轻逸】?', + filterCard:function(card){ + return get.type(card)=='equip' + }, + position:'he', + filterTarget:function(card,player,target){ + if(player==target) return false; + return player.canUse({name:'sha'},target); + }, + ai1:function(card){ + if(!check) return 0; + return 6-ai.get.value(card); + }, + ai2:function(target){ + if(!check) return 0; + return ai.get.effect(target,{name:'sha'},_status.event.player); + } + }); + "step 1" + if(result.bool){ + player.logSkill('qingyi2',result.targets); + player.discard(result.cards[0]); + player.useCard({name:'sha'},result.targets[0]); + trigger.untrigger(); + trigger.finish(); + } + player.removeSkill('qingyi3'); + } + }, + qingyi3:{ + mod:{ + targetInRange:function(card,player,target,now){ + return true; + } + }, + }, + shixin:{ + trigger:{player:'damageBefore'}, + filter:function(event){ + return event.nature=='fire'; + }, + forced:true, + content:function(){ + trigger.untrigger(); + trigger.finish(); + }, + ai:{ + nofire:true, + effect:{ + target:function(card,player,target,current){ + if(get.tag(card,'fireDamage')) return 0; + } + } + } + }, + fenyin:{ + audio:2, + trigger:{player:'useCard'}, + frequent:true, + filter:function(event,player){ + if(!event.cards||event.cards.length!=1) return false; + if(_status.currentPhase!=player) return false; + if(!player.storage.fenyin) return false; + return get.color(player.storage.fenyin)!=get.color(event.cards[0]); + }, + content:function(){ + player.draw(); + }, + intro:{ + content:'card' + }, + group:['fenyin2','fenyin3'] + }, + fenyin3:{ + trigger:{player:'useCard'}, + priority:-1, + forced:true, + popup:false, + silent:true, + filter:function(event,player){ + if(!event.cards||event.cards.length!=1) return false; + if(_status.currentPhase!=player) return false; + return true; + }, + content:function(){ + player.storage.fenyin=trigger.cards[0]; + } + }, + fenyin2:{ + trigger:{player:'phaseAfter'}, + forced:true, + silent:true, + popup:false, + content:function(){ + player.storage.fenyin=null; + } + }, + dujin:{ + audio:2, + trigger:{player:'phaseDrawBegin'}, + frequent:true, + content:function(){ + trigger.num+=1+Math.floor(player.num('e')/2); + } + }, qirang:{ audio:2, trigger:{player:'equipEnd'}, @@ -3367,7 +3701,26 @@ character.sp={ mateng:'马腾', sp_caiwenji:'sp蔡文姬', zhugeguo:'诸葛果', + liuzan:'留赞', + lingcao:'凌操', + sunru:'孙茹', + lingju:'灵雎', + lifeng:'李丰', + tunchu:'屯储', + tunchu_info:'摸牌阶段摸牌时,你可以额外摸两张牌,若如此做,将一张手牌置于你的武将上,称为“粮”,只要你的武将牌上有“粮”,你便不能使用【杀】和【决斗】', + shuliang:'输粮', + shuliang_info:'每当一名角色的结束阶段开始时,若其没有手牌,你可以将一张“粮”置入弃牌堆,然后该角色摸两张牌', + jieyuan:'竭缘', + jieyuan_info:'当你对一名其他角色造成伤害时,若其体力值大于或等于你的体力值,你可弃置一张黑色手牌令此伤害+1;当你受到一名其他角色造成的伤害时,若其体力值大于或等于你的体力值,你可弃置一张红色手牌令此伤害-1。', + fenxin:'焚心', + fenxin_info:'定技,当你杀死一名非主公角色时,在其翻开身份牌之前,你可以与该角色交换身份牌。(你的身份为主公时不能发动此技能)', + shixin:'释衅', + shixin_info:'锁定技,当你受到火属性伤害时,你防止此伤害', + qingyi:'轻逸', + qingyi_info:'你可以跳过摸牌阶段,或跳过出牌阶段并弃置一张装备牌,若如此则视为对任意一名使用一张【杀】', + dujin:'独进', + dujin_info:'摸牌阶段,你可以额外摸X+1张牌(X为你装备区里牌数的一半且向下取整)', yuhua:'羽化', yuhua_info:'锁定技,弃牌阶段内,你的非基本牌不计入手牌数,且你不能弃置你的非基本牌', qirang:'祈禳', @@ -3472,6 +3825,8 @@ character.sp={ jilei2:'鸡肋', fulu:'符箓', fuji:'助祭', + fenyin:'奋音', + fenyin_info:'你的回合内,当你使用牌时,若此牌与你于此回合内使用的上一张牌颜色不同,则你可以摸一张牌', fuji_info:'当一名角色造成雷电伤害时,你可以令其进行一次判定,若结果为黑色,此伤害+1;若结果为红色,该角色获得此牌。', fulu_info:'你可以将【杀】当雷【杀】使用。', jilei_info:'每当你受到一次伤害,可以令伤害来源不能使用或打出其手牌直到回合结束', diff --git a/character/standard.js b/character/standard.js index dd590e1dc..cc8b8a45d 100755 --- a/character/standard.js +++ b/character/standard.js @@ -884,6 +884,9 @@ character.standard={ tieji:{ audio:2, trigger:{player:'shaBegin'}, + check:function(event,player){ + return ai.get.attitude(player,event.target)<=0; + }, content:function(){ "step 0" player.judge(function(card){ diff --git a/character/swd.js b/character/swd.js index a5ba23e2e..f204289be 100755 --- a/character/swd.js +++ b/character/swd.js @@ -166,17 +166,6 @@ character.swd={ threaten:2 } }, - miaobi:{ - enable:'phaseUse', - viewAs:{name:'wugu'}, - filterCard:{suit:'heart'}, - filter:function(event,player){ - return !player.getStat('skill').miaobi&&player.num('h',{suit:'heart'})>0; - }, - check:function(card){ - return 5-ai.get.value(card); - } - }, huajing:{ trigger:{source:'damageEnd'}, filter:function(event,player){ @@ -7736,9 +7725,6 @@ character.swd={ } } }, - zhexian:{ - inherit:'lingbo' - } }, translate:{ swd_yangshuo:'杨硕', @@ -7839,9 +7825,6 @@ character.swd={ jingjie_old_info:'限定技,出牌阶段,你可以令所有角色弃置所有牌,然后摸两张牌(不触发任何技能)', kongmo:'恐魔', kongmo_info:'锁定技,你使用基本牌或非延时锦囊牌后将额外结算一次卡牌效果', - miaobi:'妙笔', - miaobi_info:'出牌阶段限一次,你可以将一张红桃牌当作五谷丰登使用', - zhexian:'谪仙', jufu:'巨斧', jufu_info:'锁定技,当你有武器牌时,杀造成的伤害+1', huajing:'化精', @@ -8231,7 +8214,6 @@ character.swd={ xingdian_info:'出牌阶段限一次,你可以弃置一张手牌,然后指定至多两名角色令其各弃置一张牌', yulin_info:'每当你即将受到伤害,你可以弃置一张装备牌抵消此伤害', funiao_info:'出牌阶段,你可以交给一名角色一张手牌,然后观看其手牌,每个阶段对一名角色只能发动一次', - zhexian_info:'每当你使用或打出一张闪,你可以摸两张牌', lingbo_info:'每当你使用或打出一张闪,你可以摸两张牌', xuehuang_info:'出牌阶段限一次,你可以弃置一张红色手牌令距离你一以内的所有角色受到一点火焰伤害', zhuyu_info:'每当有横置的角色即将受到非火焰伤害,你可以弃置一张红色牌使其额外受到一点火焰伤害', diff --git a/character/wind.js b/character/wind.js index 8ac3e78bd..9b4f58ef3 100755 --- a/character/wind.js +++ b/character/wind.js @@ -94,7 +94,7 @@ character.wind={ "step 0" player.addSkill('shensu3'); var check= player.num('h')>2; - player.chooseTarget('是否发动神速?',function(card,player,target){ + player.chooseTarget('是否发动【神速】?',function(card,player,target){ if(player==target) return false; return player.canUse({name:'sha'},target); }).ai=function(target){ diff --git a/character/xianjian.js b/character/xianjian.js index fc4edcac6..462b387f8 100755 --- a/character/xianjian.js +++ b/character/xianjian.js @@ -27,7 +27,7 @@ character.xianjian={ pal_hanlingsha:['female','shu',3,['tannang','tuoqiao']], pal_liumengli:['female','wei',3,['tianxian','runxin','zhimeng']], pal_murongziying:['male','wei',4,['xuanning','poyun','qianfang']], - pal_xuanxiao:['male','wei',4,['xuanyan','ningbin','fenxin']], + pal_xuanxiao:['male','wei',4,['xuanyan','ningbin','xfenxin']], }, skill:{ @@ -80,14 +80,14 @@ character.xianjian={ effect:{ target:function(card,player,target){ if(get.tag(card,'thunderDamage')){ - if(target.hp<=1||!target.skills.contains('fenxin')) return [0,0]; + if(target.hp<=1||!target.skills.contains('xfenxin')) return [0,0]; return [0,1.5]; } } } }, }, - fenxin:{ + xfenxin:{ trigger:{player:'changeHp'}, forced:true, filter:function(event){ @@ -106,9 +106,9 @@ character.xianjian={ } } }, - group:'fenxin2' + group:'xfenxin2' }, - fenxin2:{ + xfenxin2:{ trigger:{source:'dieAfter'}, forced:true, content:function(){ @@ -1366,9 +1366,9 @@ character.xianjian={ xuanyan_info:'锁定技,你的火属性伤害+1;你造成火属性伤害后流失1点体力', ningbin:'凝冰', ningbin_info:'锁定技,每当你受到1次雷属性伤害,你回复1点体力', - fenxin:'焚心', - fenxin2:'焚心', - fenxin_info:'锁定技,每当你的体力值发生改变,你摸等量的牌;每当你杀死一名角色,你增加一点体力上限并回复一点体力', + xfenxin:'焚心', + xfenxin2:'焚心', + xfenxin_info:'锁定技,每当你的体力值发生改变,你摸等量的牌;每当你杀死一名角色,你增加一点体力上限并回复一点体力', luanjian:'乱剑', luanjian_info:'你可以将两张杀当杀使用,此杀无视距离和防具,且可以指定任意名目标', tianfu:'天符', diff --git a/character/yijiang.js b/character/yijiang.js index 4a12af473..46b48f46d 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -1018,6 +1018,8 @@ character.yijiang={ if(result&&result.cards){ event.card=result.cards[0]; event.current.lose(result.cards,ui.special); + var cardx=ui.create.card(); + cardx.classList.add('infohidden') event.current.$throw(ui.create.card(),1000); } else{ @@ -2776,7 +2778,7 @@ character.yijiang={ direct:true, content:function(){ "step 0" - var next=player.chooseToDiscard('he','是否弃置一张装备牌令伤害-1?',function(card,player){ + var next=player.chooseToDiscard('he','骄矜:是否弃置一张装备牌令伤害-1?',function(card,player){ return get.type(card)=='equip'; }); next.ai=function(card){ diff --git a/character/yxs.js b/character/yxs.js index 983898c87..fb262c876 100755 --- a/character/yxs.js +++ b/character/yxs.js @@ -8,8 +8,412 @@ character.yxs={ yxs_aijiyanhou:['female','qun',3,['seyou','sheshi']], yxs_diaochan:['female','qun',3,['fengyi','wange']], yxs_yangyuhuan:['female','wu',3,['fengyan','nichang']], + yxs_baosi:['female','qun',3,['jieyin','fenghuo']], + yxs_napolun:['male','qun',4,['tongling','fanpu']], + yxs_kaisa:['male','qun',4,['ducai']], + yxs_zhuyuanzhang:['male','qun',4,['qiangyun']], + yxs_jinke:['male','qun',3,['cike','qiangxi']], + yxs_libai:['male','qun',3,['miaobi','zhexian']], + yxs_luban:['male','qun',3,['guifu','lshengong']], + yxs_lvzhi:['female','qun',4,['zhensha','xumou']], + yxs_goujian:['male','qun',3,['keji','tuqiang']], + yxs_lishimin:['male','qun',4,['kongju']], + yxs_huamulan:['female','qun',3,['xiaoji','yizhuang']], + yxs_luobinhan:['male','qun',4,['xiadao','lzhangyi']], }, skill:{ + xiadao:{ + enable:['chooseToRespond'], + filterCard:true, + viewAs:{name:'shan'}, + viewAsFilter:function(player){ + if(!player.num('h')) return false; + if(player.num('e')) return false; + }, + prompt:'将一张手牌当闪打出', + check:function(){return 1}, + ai:{ + respondShan:true, + skillTagFilter:function(player){ + if(!player.num('h')) return false; + if(player.num('e')) return false; + }, + result:{ + target:function(card,player,target,current){ + if(get.tag(card,'respondShan')&¤t<0&&!target.num('e')) return 0.6 + } + } + } + }, + lzhangyi:{ + trigger:{player:'discardAfter'}, + filter:function(event,player){ + for(var i=0;itarget.maxHp){ + if(card.name=='lebu') return false; + } + } + }, + }, + tuqiang:{ + trigger:{player:'respond'}, + filter:function(event,player){ + return event.card.name=='shan'; + }, + frequent:true, + content:function(){ + player.draw(); + }, + ai:{ + mingzhi:false, + effect:{ + target:function(card,player,target){ + if(get.tag(card,'respondShan')){ + return 0.8; + } + } + }, + } + }, + xumou:{ + inherit:'jushou' + }, + zhensha:{ + trigger:{global:'dying'}, + priority:11, + filter:function(event,player){ + return event.player.hp<=0&&player.num('h','jiu')>0&&player!=event.player; + }, + check:function(event,player){ + return ai.get.attitude(player,event.player)<0; + }, + direct:true, + content:function(){ + 'step 0' + var goon=(ai.get.attitude(player,trigger.player)<0); + var next=player.chooseToDiscard({name:'jiu'},'鸠杀:是否弃置一张酒令'+get.translation(trigger.player)+'立即死亡?'); + next.ai=function(card){ + if(goon) return 1; + return 0; + }; + next.logSkill=['zhensha',trigger.player]; + 'step 1' + if(result.bool){ + trigger.player.die(); + } + else{ + event.finish(); + } + 'step 2' + if(!trigger.player.isAlive()){ + trigger.untrigger(true); + trigger.finish(); + } + } + }, + ducai:{ + enable:'phaseUse', + usable:1, + unique:true, + forceunique:true, + check:function(card){ + return 5-ai.get.value(card); + }, + position:'he', + filterCard:true, + content:function(){ + player.storage.ducai2=cards[0]; + player.addTempSkill('ducai2',{player:'phaseBegin'}); + }, + ai:{ + order:8, + result:{ + player:1 + } + }, + global:'ducai3' + }, + ducai2:{ + mark:'card', + intro:{ + content:'card' + } + }, + ducai3:{ + mod:{ + cardEnabled:function(card,player){ + if(player.skills.contains('ducai2')) return; + var suit; + for(var i=0;i=3; + }, + promptfunc:function(){ + return '令自己在本轮内不能成为出杀的目标(选择自己),或对攻击范围内的一名其他角色造成一点伤害' + }, + filterTarget:function(card,player,target){ + return player==target||get.distance(player,target,'attack')<=1; + }, + content:function(){ + if(target==player){ + target.addTempSkill('fanpu_disable',{player:'phaseBegin'}); + } + else{ + target.damage(); + } + player.storage.tongling-=3; + player.unmarkSkill('tongling'); + player.syncStorage('tongling'); + }, + subSkill:{ + disable:{ + mark:true, + intro:{ + content:'不能成为杀的目标' + }, + mod:{ + targetEnabled:function(card,player,target,now){ + if(card.name=='sha') return false; + } + } + } + }, + ai:{ + order:2, + result:{ + target:function(player,target){ + if(player==target){ + if(player.hp<=2&&!player.num('h','shan')){ + return 2; + } + return 0; + } + else{ + return ai.get.damageEffect(target,player,target); + } + } + } + } + }, + fenghuo:{ + enable:'chooseToUse', + filter:function(event,player){ + return player.num('e')>0; + }, + filterCard:true, + position:'e', + viewAs:{name:'nanman'}, + prompt:'将一张装备区内的牌当南蛮入侵使用', + check:function(card){ + var player=_status.currentPhase; + if(player.num('he',{subtype:get.subtype(card)})>1){ + return 11-ai.get.equipValue(card); + } + if(player.num('h')0; + }, + check:function(card){ + return 5-ai.get.value(card); + } + }, + zhexian:{ + inherit:'niepan', + }, + guifu:{ + enable:'phaseUse', + usable:1, + filterTarget:function(card,player,target){ + return player!=target&&target.num('e')>0; + }, + content:function(){ + 'step 0' + player.discardPlayerCard(target,'e',true); + 'step 1' + game.asyncDraw([player,target]); + }, + ai:{ + order:8, + threaten:1.5, + result:{ + target:-1, + player:0.5 + } + } + }, + lshengong:{ + enable:'phaseUse', + usable:1, + filterTarget:function(card,player,target){ + return player!=target&&target.num('e')>0; + }, + check:function(card){ + return 6-ai.get.value(card); + }, + filterCard:true, + discard:false, + lose:false, + prepare:function(cards,player,targets){ + player.line(targets,'green'); + }, + content:function(){ + 'step 0' + player.choosePlayerCard(target,'e',true).ai=ai.get.buttonValue; + 'step 1' + if(result.links[0]){ + cards[0].init([result.links[0].suit,result.links[0].number,result.links[0].name,result.links[0].nature]); + event.card=cards[0]; + player.chooseTarget('选择一个角色装备'+get.translation(result.links),function(card,player,target){ + return !target.isMin(); + }).ai=function(target){ + if(!target.num('e',{subtype:get.subtype(event.card)})){ + return ai.get.attitude(player,target); + } + return 0; + } + } + else{ + event.finish(); + } + 'step 2' + if(result.targets&&result.targets[0]&&event.card){ + player.$give(event.card,result.targets[0]); + game.delay(); + event.toequip=result.targets[0]; + } + else{ + event.finish(); + } + 'step 3' + if(event.toequip){ + event.toequip.equip(event.card); + } + }, + ai:{ + order:9, + threaten:1.5, + result:{ + player:function(player){ + if(player.num('e')<3) return 1; + return 0; + } + } + } } }, translate:{ @@ -919,7 +1458,56 @@ character.yxs={ yxs_aijiyanhou:'埃及艳后', yxs_diaochan:'貂蝉', yxs_yangyuhuan:'杨玉环', + yxs_baosi:'褒姒', + yxs_napolun:'拿破仑', + yxs_kaisa:'凯撒', + yxs_zhuyuanzhang:'朱元璋', + yxs_jinke:'荆轲', + yxs_libai:'李白', + yxs_luban:'鲁班', + yxs_lvzhi:'吕雉', + yxs_goujian:'勾践', + yxs_lishimin:'李世民', + yxs_huamulan:'花木兰', + yxs_luobinhan:'罗宾汉', + xiadao:'侠盗', + xiadao_info:'当你的装备区内没有牌时,你可以将一张手牌当作闪使用或打出', + lzhangyi:'仗义', + lzhangyi_info:'你可以将你弃置的卡牌交给一名其他角色', + yizhuang:'易装', + yizhuang2:'易装', + yizhuang_info:'回合开始阶段,你可以弃置一张牌并选择一名男性角色,获得其所有技能,直到你首次受到伤害', + kongju:'控局', + kongju_info:'锁定技,你的手牌上限为你的体力上限;当你的手牌数小于体力上限时,你不能成为过河拆桥或顺手牵羊的目标;当你的手牌数大于体力上限时,你不能成为乐不思蜀的目标', + tuqiang:'图强', + tuqiang_info:'每当你使用或打出一张闪,你可以摸一张牌', + zhensha:'鸩杀', + zhensha_info:'当场上有角色进入濒死状态时,你可以弃置一张酒,则该角色立即死亡。', + xumou:'蓄谋', + xumou_info:'回合结束阶段,你可以将武将牌翻页并摸3张牌', + guifu:'鬼斧', + guifu_info:'出牌阶段限一次,你可以指定一名角色装备区内的一张牌,将其弃掉,自己和对方同时摸取一张牌', + lshengong:'神工', + lshengong_info:'出牌阶段限一次,你可以选定场上任意一名角色的装备区的牌,出自己的一张手牌复制该装备,然后可以选择装备上自己或者别的角色的装备区', + zhexian:'谪仙', + zhexian_info:'当你处于濒死状态时,你可以丢弃你所有的牌和你判定区里的牌,并重置你的武将牌,然后摸三张牌且体力回复至3点。', + miaobi:'妙笔', + miaobi_info:'出牌阶段限一次,你可以将一张红桃牌当作五谷丰登使用', + cike:'刺客', + cike_info:'你对别的角色出【杀】时可以选择做一次判定:若判定牌为红色花色,则此【杀】不可回避,直接命中;若判定牌为黑色花色,你可以选择弃掉对方一张牌。', + qiangyun:'强运', + qiangyun_info:'每当你失去最后一张手牌,可摸两张牌', + ducai:'独裁', + ducai2:'独裁', + ducai3:'独裁', + ducai_info:'出牌阶段限一次,你可以弃置一张牌,则本轮内除你外的角色不能使用与该手牌花色相同的手牌', + tongling:'统领', + tongling_info:'每当其他角色受到一次伤害时,你获得1个统领标记(标记上限为3)', + fanpu:'反扑', + fanpu_info:'出牌阶段限一次,你可以弃掉3个统领标记并选择1项执行:(1)本轮内不能成为【杀】的目标;(2)对你攻击范围内的1名其他角色造成1点伤害。', + fenghuo:'烽火', + fenghuo_info:'你可以将一张装备区内的牌当作南蛮入侵使用', weiyi:'威仪', weiyi_info:'每当你受到一次伤害,可以令伤害来源弃置两张牌', xieling:'挟令', diff --git a/game/game.js b/game/game.js index 3be98c073..113e97337 100755 --- a/game/game.js +++ b/game/game.js @@ -16,15 +16,16 @@ dieClose:[] }; var lib={ - version:1.71, - changeLog:[], - configprefix:'noname_0.9_', - updates:[ + version:1.72, + changeLog:[ 'DIY命名规则修改:冒号改为竖线|', 'DIY技能引用现有配音', '从现有技能创建新技能', '记住对话框位置', + '新武将(SP&英雄杀)' ], + configprefix:'noname_0.9_', + updates:[], canvasUpdates:[], video:[], arenaReady:[], @@ -6641,7 +6642,6 @@ } if(this.marks[name]){ this.marks[name].info=info; - this.updateMarks(); } else{ if(card){ @@ -6651,6 +6651,7 @@ this.marks[name]=this.mark(name,info); } } + this.updateMarks(); return this; }, unmarkSkill:function(name){ @@ -8011,6 +8012,7 @@ this.node.info.classList.add('red'); } this.node.name.innerHTML=''; + this.node.image.className='image'; var name=get.translation(card[2]); if(card[2]=='sha'){ if(card[3]=='fire'){ @@ -8040,6 +8042,10 @@ if(lib.nature.contains(card[3])) this.nature=card[3]; this.classList.add(card[3]); } + else if(this.nature){ + this.classList.remove(this.nature); + delete this.nature; + } if(lib.card[card[2]].subtype) this.classList.add(lib.card[card[2]].subtype); if(this.inits){ for(var i=0;i.new_character>.add_skill.options{ top:145px; diff --git a/mode/guozhan.js b/mode/guozhan.js index c954f57cf..a474b7256 100755 --- a/mode/guozhan.js +++ b/mode/guozhan.js @@ -405,7 +405,11 @@ mode.guozhan={ game.players[i].node.identity.firstChild.innerHTML='猜'; game.players[i].node.identity.dataset.color='unknown'; } - game.players[i].hiddenSkills=lib.character[game.players[i].name][3].concat(lib.character[game.players[i].name2][3]); + game.players[i].hiddenSkills=lib.character[game.players[i].name][3].slice(0); + var hiddenSkills2=lib.character[game.players[i].name2][3]; + for(var j=0;j