From 2eef0b2196136e5b44c603356decb7ae972a8718 Mon Sep 17 00:00:00 2001 From: Spmario233 Date: Fri, 23 Oct 2020 22:35:26 +0800 Subject: [PATCH] Shinda Sekai Sensen----!!! --- card/extra.js | 12 ++- card/zhulu.js | 2 +- character/diy.js | 2 +- character/mobile.js | 6 +- character/refresh.js | 114 +++++++++++++++++++++++++++- character/sp.js | 2 +- character/sp2.js | 169 ++++++++++++++++++++++++++++++------------ character/standard.js | 2 +- character/yijiang.js | 150 ++++++++++++++++++++----------------- game/game.js | 4 +- game/keyWords.js | 2 +- game/update.js | 29 ++++---- mode/guozhan.js | 2 +- 13 files changed, 343 insertions(+), 153 deletions(-) diff --git a/card/extra.js b/card/extra.js index 778863865..e1a2831b7 100644 --- a/card/extra.js +++ b/card/extra.js @@ -50,7 +50,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ lianheng:true, logv:false, savable:function(card,player,dying){ - return dying==player; + return dying==player||player.hasSkillTag('jiuOther',null,dying,true); }, usable:1, selectTarget:-1, @@ -196,7 +196,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ return 7-get.value(card,evt.player); } return -1; - }).prompt=false; + }).set('prompt',false); game.delay(2); "step 2" if(result.bool){ @@ -667,12 +667,16 @@ game.import('card',function(lib,game,ui,get,ai,_status){ filterCard:function(){return false}, selectCard:-1, viewAs:links[0], - onuse:function(result,player){ + precontent:function(){ var muniu=player.getEquip(5); + var card=event.result.card; if(muniu&&muniu.cards){ - muniu.cards.remove(result.card); + muniu.cards.remove(event.result.card); lib.skill.muniu_skill.sync(muniu); } + event.result.card=get.autoViewAs(card); + event.result.cards=[card]; + delete event.result.skill; player.updateMarks(); } } diff --git a/card/zhulu.js b/card/zhulu.js index a3da3b29f..663d3b275 100644 --- a/card/zhulu.js +++ b/card/zhulu.js @@ -297,7 +297,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ var evt=evt2.getParent(); var next=game.createEvent('caochuan_gain'); _status.event.next.remove(next); - evt.after.push(next); + evt.after.unshift(next); next.player=player; next.setContent(function(){ var cards=event.getParent().cards.filterInD(); diff --git a/character/diy.js b/character/diy.js index 6784752e2..2a8157714 100755 --- a/character/diy.js +++ b/character/diy.js @@ -5,7 +5,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ connect:true, connectBanned:['diy_tianyu','diy_yangyi','diy_lukang','ns_huamulan','ns_yuji','ns_duangui','ns_liuzhang','key_yuu'], character:{ - sp_key_yuri:['female','qun',4,['mubing','diaoling']], + sp_key_yuri:['female','qun',4,['mubing','ziqu','diaoling']], ns_zhangwei:['female','wei',3,['nsqiyue','nsxuezhu']], ns_chendao:['male','shu',4,['nsjianglie']], yj_caoang:['male','wei',4,['yjxuepin']], diff --git a/character/mobile.js b/character/mobile.js index 697163420..884cb9fd5 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -943,7 +943,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ names.randomSort(); event.videoId=lib.status.videoId++; if(player.isUnderControl()){ - game.modeSwapPlayer(player); + game.swapPlayerAuto(player); } var switchToAuto=function(){ names.remove('du'); @@ -2281,7 +2281,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "step 0" event.videoId=lib.status.videoId++; if(player.isUnderControl()){ - game.modeSwapPlayer(player); + game.swapPlayerAuto(player); } var switchToAuto=function(){ game.pause(); @@ -5166,7 +5166,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, xinzhilve_mark:{ intro:{content:'本回合手牌上限+#'}, - onunmark:true, + onremove:true, charlotte:true, mod:{ maxHandcard:function(player,num){ diff --git a/character/refresh.js b/character/refresh.js index 96ba7760f..a9b84c666 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -36,7 +36,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ re_lingtong:['male','wu',4,['rexuanfeng']], yujin_yujin:['male','wei',4,['rejieyue']], re_caozhang:['male','wei',4,['new_jiangchi']], - re_chengpu:['male','wu',4,['lihuo','rechunlao']], + re_chengpu:['male','wu',4,['decadelihuo','decadechunlao']], re_quancong:['male','wu',4,['xinyaoming']], re_liaohua:['male','shu',4,['xindangxian','xinfuli']], re_guohuai:['male','wei',4,['xinjingce']], @@ -121,6 +121,107 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sunben:['zhouyu','taishici','daqiao'], }, skill:{ + decadelihuo:{ + trigger:{player:'useCard1'}, + filter:function(event,player){ + if(event.card.name=='sha'&&!event.card.nature) return true; + return false; + }, + audio:'lihuo', + audioname:['re_chengpu'], + check:function(event,player){ + return event.baseDamage>1&&game.hasPlayer(function(current){ + return !event.targets.contains(current)&&player.canUse(event.card,current) + &&get.attitude(player,current)<0&&!current.hasShan() + &&get.effect(current,{name:'sha',nature:'fire'},player,player)>0; + }); + }, + content:function(){ + trigger.card.nature='fire'; + }, + group:['decadelihuo2','decadelihuo3'], + }, + decadelihuo2:{ + trigger:{player:'useCard2'}, + filter:function(event,player){ + if(event.card.name!='sha'||event.card.nature!='fire') return false; + return game.hasPlayer(function(current){ + return !event.targets.contains(current)&&player.canUse(event.card,current); + }); + }, + direct:true, + content:function(){ + 'step 0' + player.chooseTarget(get.prompt('decadelihuo'),'为'+get.translation(trigger.card)+'增加一个目标',function(card,player,target){ + return !_status.event.sourcex.contains(target)&&player.canUse(_status.event.card,target); + }).set('sourcex',trigger.targets).set('card',trigger.card).set('ai',function(target){ + var player=_status.event.player; + return get.effect(target,_status.event.card,player,player); + }); + 'step 1' + if(result.bool){ + if(!event.isMine()&&!_status.connectMode) game.delayx(); + event.target=result.targets[0]; + } + else{ + event.finish(); + } + 'step 2' + player.logSkill('decadelihuo',event.target); + trigger.targets.push(event.target); + }, + }, + decadelihuo3:{ + trigger:{player:'useCardAfter'}, + filter:function(event,player){ + return event.card.name=='sha'&&event.card.nature=='fire'&&event.targets.length>1&&player.getHistory('sourceDamage',function(evt){ + return evt.card==event.card; + }).length>0; + }, + forced:true, + audio:'lihuo', + audioname:['re_chengpu'], + content:function(){ + player.loseHp(); + } + }, + decadechunlao:{ + audio:'chunlao', + audioname:['re_chengpu'], + enable:'chooseToUse', + viewAs:{name:'jiu',isCard:true}, + viewAsFilter:function(player){ + return !player.isLinked(); + }, + filterCard:function(){return false}, + selectCard:-1, + precontent:function(){ + player.logSkill('decadechunlao'); + player.link(); + delete event.result.skill; + }, + group:'decadechunlao2', + ai:{ + save:true, + jiuOther:true, + skillTagFilter:function(player,tag){ + if(tag=='save') return !player.isLinked(); + }, + }, + }, + decadechunlao2:{ + trigger:{ + source:'damageSource', + player:'damageEnd', + }, + prompt:'是否发动【醇醪】将武将牌横置?', + filter:function(event,player){ + return player.isLinked()&event.num>1; + }, + content:function(){ + player.link(); + }, + }, oltianxiang:{ audio:'tianxiang', audioname:['daxiaoqiao','re_xiaoqiao','ol_xiaoqiao'], @@ -2967,7 +3068,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ fullimage:true, image:'character:'+list[i] } - lib.translate[cardname]=lib.translate[list[i]]; + lib.translate[cardname]=get.rawName2(list[i]); cards.push(game.createCard(cardname,'','')); } player.$draw(cards,'nobroadcast'); @@ -4533,7 +4634,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ "step 0" if(player.isUnderControl()){ - game.modeSwapPlayer(player); + game.swapPlayerAuto(player); } var num=game.countPlayer()<4?3:5; var cards=get.cards(num); @@ -7562,6 +7663,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ olhongyan_info:'锁定技,你的黑桃牌的花色视为红桃。若你的装备区内有红桃牌,则你的手牌上限基数视为体力上限。', piaoling:'飘零', piaoling_info:'结束阶段,你可以进行判定。若判定结果为红桃,则你选择一项:1.将此牌交给一名角色。若你交给了自己,则你弃置一张牌。2.将此牌置于牌堆顶。', + decadelihuo:'疠火', + decadelihuo2:'疠火', + decadelihuo3:'疠火', + decadelihuo_info:'当你声明使用普【杀】时,你可以将此【杀】改为火【杀】。你使用的火【杀】结算完成后,若此【杀】的目标数大于1且你因此【杀】造成过伤害,则你失去1点体力。', + decadechunlao:'醇醪', + decadechunlao2:'醇醪', + decadechunlao_info:'你可以对其他角色使用【酒(使用方法②)】。当你需要使用【酒】时,若你的武将牌未横置,则你可以将武将牌横置,然后视为使用【酒】。当你受到或造成伤害后,若伤害值大于1且你的武将牌横置,则你可以重置武将牌。', refresh_standard:'界限突破·标', refresh_feng:'界限突破·风', diff --git a/character/sp.js b/character/sp.js index e6f1f1199..b54caf6cd 100755 --- a/character/sp.js +++ b/character/sp.js @@ -5140,7 +5140,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } if(!list.length||!skills.length){event.finish();return;} if(player.isUnderControl()){ - game.modeSwapPlayer(player); + game.swapPlayerAuto(player); } var switchToAuto=function(){ _status.imchoosing=false; diff --git a/character/sp2.js b/character/sp2.js index 6760650a6..03fdfc559 100644 --- a/character/sp2.js +++ b/character/sp2.js @@ -416,7 +416,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return number>=1&&number<=13; }); if(player.isUnderControl()){ - game.modeSwapPlayer(player); + game.swapPlayerAuto(player); } var switchToAuto=function(){ _status.imchoosing=false; @@ -726,52 +726,60 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ 'step 0' - var num=player.storage.mubing2?3:2; - event.num=num+1; - player.chooseToDiscard([1,num],'he',get.prompt('mubing'),'弃置至多'+get.cnNumber(num)+'张牌,然后展示牌堆顶的'+get.cnNumber(num+1)+'张牌').set('ai',function(card){ + var num=player.storage.mubing2?4:3; + event.num=num; + event.cards=game.cardsGotoOrdering(get.cards(num)).cards; + game.log(player,'展示了',event.cards); + event.videoId=lib.status.videoId++; + game.broadcastAll(function(player,id,cards){ + var str=get.translation(player)+'发动了【募兵】'; + var dialog=ui.create.dialog(str,cards); + dialog.videoId=id; + },player,event.videoId,event.cards); + game.addVideo('showCards',player,[get.translation(player)+'发动了【募兵】',get.cardsInfo(event.cards)]); + game.delay(2); + 'step 1' + var numa=0; + cards.sort(function(a,b){ + return a.number-b.number; + }); + for(var i of cards){ + if(get.value(i,player)>0) numa+=get.number(i); + } + player.chooseToDiscard([1,Infinity],'h').set('ai',function(card){ var player=_status.event.player; - if(card.name!='tengjia'&&get.position(card)=='e'&&get.equipValue(card,player)<=0) return 14; - if(!ui.selected.cards.length){ - if(card.number<9) return 0; - if(card.number>11) return card.number; - if(!player.countCards('he',function(xcard){ - return xcard!=card&&card.number+xcard.number>17; - })) return 0; - return card.number; - } + var numa=_status.event.numa; + //if(card.name!='tengjia'&&get.position(card)=='e'&&get.equipValue(card,player)<=0) return 14; var num=0; for(var i of ui.selected.cards){ num+=i.number; } - if(num+card.number<18) return 0; + if(num>=numa) return 0; + if(card.number+num>=numa) return 15-get.value(card); + if(!ui.selected.cards.length){ + var min=_status.event.min; + if(card.numbermin; + })) return 0; + return card.number; + } return Math.max(5-get.value(card),card.number); - }).logSkill='mubing'; - 'step 1' + }).set('prompt',false).set('numa',numa).set('min',cards[0].number); + var func=function(id){ + var dialog=get.idDialog(id); + if(dialog) dialog.content.firstChild.innerHTML='请选择要弃置的牌'; + }; + if(player==game.me) func(event.videoId); + else if(player.isOnline()) player.send(func,event.videoId); + 'step 2' if(!result.bool){ - event.finish();return; + return; } var numx=0; for(var i of result.cards){ numx+=get.number(i); } event.numx=numx; - event.cards=game.cardsGotoOrdering(get.cards(num)).cards; - event.videoId=lib.status.videoId++; - game.broadcastAll(function(player,id,cards,numx){ - var str; - if(player==game.me&&!_status.auto){ - str='募兵:选择任意张点数不大于'+numx+'的牌'; - } - else{ - str='募兵'; - } - var dialog=ui.create.dialog(str,cards); - dialog.videoId=id; - },player,event.videoId,event.cards,numx); - event.time=get.utc(); - game.addVideo('showCards',player,['募兵',get.cardsInfo(event.cards)]); - game.addVideo('delay',null,2); - 'step 2' var next=player.chooseButton([0,num]); next.set('dialog',event.videoId); next.set('filterButton',function(button){ @@ -785,28 +793,89 @@ game.import('character',function(lib,game,ui,get,ai,_status){ next.set('ai',function(button){ return get.value(button.link,_status.event.player); }); + var func=function(id){ + var dialog=get.idDialog(id); + if(dialog) dialog.content.firstChild.innerHTML='请选择要获得的牌'; + }; + if(player==game.me) func(event.videoId); + else if(player.isOnline()) player.send(func,event.videoId); 'step 3' if(!result.bool) event.cards=[]; else event.cards=result.links; - var time=1000-(get.utc()-event.time); - if(time>0){ - game.delay(0,time); - } 'step 4' game.broadcastAll('closeDialog',event.videoId); - if(!cards.length){event.finish();return;} - if(player.storage.mubing2) player.chooseTarget('请选择一名角色获得'+get.translation(cards),true); - else event._result={bool:true,targets:[player]}; + if(!cards.length){ + event.finish(); + return; + } + player.gain(cards,'log','gain2'); + if(!player.storage.mubing2){ + event.finish(); + return; + } + event.given=[]; 'step 5' - var target=result.targets[0]; - player.line(target); - target.gain(cards,'log','gain2'); + var hs=player.getCards('h'); + cards=cards.filter(function(card){ + return hs.contains(card); + }); + if(cards.length&&game.hasPlayer(function(current){ + return current!=player&&!event.given.contains(current); + })) player.chooseCardTarget({ + prompt:'是否将获得的牌中的任意张交给其他角色?', + selectCard:[1,cards.length], + filterCard:function(card){ + return _status.event.cards.contains(card); + }, + filterTarget:function(card,player,target){ + return target!=player&&!_status.event.given.contains(target); + }, + cards:cards, + given:event.given, + ai1:function(card){ + return -1; + }, + }); + else event.finish(); + 'step 6' + if(result.bool){ + var target=result.targets[0]; + var cards=result.cards; + event.given.push(target); + event.cards.removeArray(cards); + player.line(target,'green'); + target.gain(cards,player,'giveAuto'); + event.goto(5); + } }, }, + ziqu:{ + trigger:{source:'damageBegin2'}, + filter:function(event,player){ + return event.player!=player&&!player.getStorage('ziqu').contains(event.player)&& + event.player.countCards('he')>0; + }, + logTarget:'player', + content:function(){ + 'step 0' + trigger.cancel(); + if(!player.storage.ziqu) player.storage.ziqu=[]; + player.storage.ziqu.push(trigger.player); + player.markSkill('ziqu'); + trigger.player.chooseCard(true,'he',function(card,player){ + return !player.countCards('he',function(cardx){ + return cardx.number>card.number; + }); + }); + 'step 1' + if(result.bool&&result.cards&&result.cards.length) player.gain(result.cards,trigger.player,'giveAuto'); + }, + intro:{content:'已对#发动过'}, + }, mubing_rewrite:{ mark:true, intro:{ - content:'出牌阶段开始时,你可以弃置至多三张牌,然后展示牌堆顶的四张牌,并可令一名角色获得任意张点数之和不大于你弃置的牌点数之和的牌。', + content:'出牌阶段开始时,你可以展示牌堆顶的四张牌。你可弃置任意张手牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。然后你可将以此法获得的牌以任意方式交给其他角色。', }, }, diaoling:{ @@ -5464,8 +5533,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return str; }, mubing:function(player){ - if(player.storage.mubing2) return '出牌阶段开始时,你可以弃置至多三张牌,然后展示牌堆顶的四张牌,并可令一名角色获得任意张点数之和不大于你弃置的牌点数之和的牌。'; - return '出牌阶段开始时,你可以弃置至多两张牌,然后展示牌堆顶的三张牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。'; + if(player.storage.mubing2) return '出牌阶段开始时,你可以展示牌堆顶的四张牌。你可弃置任意张手牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。然后你可将以此法获得的牌以任意方式交给其他角色。'; + return '出牌阶段开始时,你可以展示牌堆顶的三张牌。你可弃置任意张手牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。'; }, }, translate:{ @@ -5724,11 +5793,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sp_zhangliao:'SP张辽', //这俩技能给SP仲村由理毫无违和感好吗!!! mubing:'募兵', - mubing_info:'出牌阶段开始时,你可以弃置至多两张牌,然后展示牌堆顶的三张牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。', + mubing_info:'出牌阶段开始时,你可以展示牌堆顶的三张牌。你可弃置任意张手牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。', + ziqu:'资取', + ziqu_info:'每名角色限一次,当你对有牌的其他角色造成伤害后,你可以防止此伤害。然后其将其点数最大的牌交给你。', diaoling:'调令', diaoling_info:'觉醒技,准备阶段,若你已因〖募兵〗获得了6张或更多的【杀】或武器牌或伤害锦囊牌,则你回复1点体力或摸两张牌,然后修改〖募兵〗。', mubing_rewrite:'募兵·改', - mubing_rewrite_info:'出牌阶段开始时,你可以弃置至多三张牌,然后展示牌堆顶的四张牌,并可令一名角色获得任意张点数之和不大于你弃置的牌点数之和的牌。', + mubing_rewrite_info:'出牌阶段开始时,你可以展示牌堆顶的四张牌。你可弃置任意张手牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。然后你可将以此法获得的牌以任意方式交给其他角色。', caobuxing:'曹不兴', moying:'墨影', moying_info:'每回合限一次,当你于回合外不因使用而失去单一一张锦囊牌或装备牌后,你可以选择一个花色和与此牌点数差绝对值不超过2的点数,然后获得牌堆中所有与此牌花色点数相同的牌。', diff --git a/character/standard.js b/character/standard.js index 669a50d43..83afe4b56 100755 --- a/character/standard.js +++ b/character/standard.js @@ -1235,7 +1235,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ "step 0" if(player.isUnderControl()){ - game.modeSwapPlayer(player); + game.swapPlayerAuto(player); } var num=Math.min(5,game.countPlayer()); if(player.hasSkill('yizhi')&&player.hasSkill('guanxing')){ diff --git a/character/yijiang.js b/character/yijiang.js index 6da1dbbbe..0324544eb 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -1886,9 +1886,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } 'step 5' if(!event.e&&player.isMinEquip()){ - var equip=get.cardPile(function(card){ - return get.type(card)=='equip'&&target.hasUseTarget(card); - }); + var equip=get.cardPile(function(card){ + return get.type(card)=='equip'&&target.hasUseTarget(card); + }); if(equip) player.chooseUseTarget(equip,'noanimate','nopopup',true); } 'step 6' @@ -1968,12 +1968,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.syncStorage(); if(target.countCards('he')==0) event._result={index:0}; else{ - player.chooseControlList([ - '令'+get.translation(target)+'摸'+get.cnNumber(event.num)+'张牌', - '令'+get.translation(target)+'弃置'+get.cnNumber(event.num)+'张牌' - ],function(){ - return _status.event.choice; - }).set('choice',get.attitude(player,target)>0?0:1); + player.chooseControlList([ + '令'+get.translation(target)+'摸'+get.cnNumber(event.num)+'张牌', + '令'+get.translation(target)+'弃置'+get.cnNumber(event.num)+'张牌' + ],function(){ + return _status.event.choice; + }).set('choice',get.attitude(player,target)>0?0:1); } 'step 1' if(result.index==0){ @@ -2008,10 +2008,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(event.player==player) return false; if(player!=event.respondTo[0]) return false; if(!player.hasSkill('funan_jiexun')){ - var cards=[] - if(get.itemtype(event.respondTo[1])=='card') cards.push(event.respondTo[1]); - else if(event.respondTo[1].cards) cards.addArray(event.respondTo[1].cards); - return cards.filterInD('od').length>0; + var cards=[] + if(get.itemtype(event.respondTo[1])=='card') cards.push(event.respondTo[1]); + else if(event.respondTo[1].cards) cards.addArray(event.respondTo[1].cards); + return cards.filterInD('od').length>0; } else return event.cards.filterInD('od').length>0; }, @@ -2020,9 +2020,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 0' if(!player.hasSkill('funan_jiexun')){ var cards=[] - if(get.itemtype(trigger.respondTo[1])=='card') cards.push(trigger.respondTo[1]); - else if(trigger.respondTo[1].cards) cards.addArray(trigger.respondTo[1].cards); - cards=cards.filterInD('od'); + if(get.itemtype(trigger.respondTo[1])=='card') cards.push(trigger.respondTo[1]); + else if(trigger.respondTo[1].cards) cards.addArray(trigger.respondTo[1].cards); + cards=cards.filterInD('od'); trigger.player.gain(cards,'gain2','log'); trigger.player.addTempSkill('funan_use'); if(!trigger.player.storage.funan_use){ @@ -7512,12 +7512,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(player.countCards('h')==player.countCards('h','du')) return -1; if(target.hasJudge('lebu')) return 0; if(get.attitude(player,target)>3){ - var basis=get.threaten(target); - if(player==get.zhu(player)&&player.hp<=2&&player.countCards('h','shan')&&!game.hasPlayer(function(current){ - return get.attitude(current,player)>3&¤t.countCards('h','tao')>0; - })) return 0; - if(target.countCards('h')+player.countCards('h')>target.hp+2) return basis*0.8; - return basis; + var basis=get.threaten(target); + if(player==get.zhu(player)&&player.hp<=2&&player.countCards('h','shan')&&!game.hasPlayer(function(current){ + return get.attitude(current,player)>3&¤t.countCards('h','tao')>0; + })) return 0; + if(target.countCards('h')+player.countCards('h')>target.hp+2) return basis*0.8; + return basis; } return 0; } @@ -8551,14 +8551,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ target:function(player,target){ var disbool=false; if(player.hasSkill('rezhiman')){ - if(target.countCards('j')&&get.attitude(player,target)>0){ - return 1; - } - if(target.countCards('he',function(card){ - return card.name=='tengjia'||get.value(card)>0; - })){ - disbool=true; - } + if(target.countCards('j')&&get.attitude(player,target)>0){ + return 1; + } + if(target.countCards('he',function(card){ + return card.name=='tengjia'||get.value(card)>0; + })){ + disbool=true; + } } var damage=get.damageEffect(target,player); if(disbool&&get.attitude(player,target)<0) return Math.min(-1,damage); @@ -8588,24 +8588,34 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, ai:{ - order:10, + order:function(item,player){ + if(player.countCards('h',function(card){ + return player.hasValueTarget(card); + })) return 10; + return 1; + }, result:{ - target:function (player,target){ - if(player.hasSkill('qiaoshui3')) return 0; - var nd=!player.needsToDiscard(); - if(player.hasCard(function(card){ - if(get.position(card)!="h") return false; - var val=get.value(card) - if(nd&&val<0) return true; - if(val<=5){ - return card.number>=12; - } - if(val<=6){ - return card.number>=13; - } - return false; - })) return -1; - return 0; + target:function(player,target){ + if(player.countCards('h',function(card){ + return player.hasValueTarget(card); + })){ + if(player.hasSkill('qiaoshui3')) return 0; + var nd=!player.needsToDiscard(); + if(player.hasCard(function(card){ + if(get.position(card)!="h") return false; + var val=get.value(card) + if(nd&&val<0) return true; + if(val<=5){ + return card.number>=12; + } + if(val<=6){ + return card.number>=13; + } + return false; + })) return -1; + return 0; + } + return -1; }, }, }, @@ -9327,11 +9337,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ order:10, result:{ target:function(player,target){ - if(player!=target) return 0; - if(player.hasSkill('requanji')||(player.countCards('h')+2<=player.hp+player.storage.quanji.length)) return 1; - return 0; - } - }, + if(player!=target) return 0; + if(player.hasSkill('requanji')||(player.countCards('h')+2<=player.hp+player.storage.quanji.length)) return 1; + return 0; + } + }, }, } }, @@ -9642,27 +9652,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){ target:function(card,player,target){ if(card.name!='sha') return; var players=game.filterPlayer(); - if(get.attitude(player,target)<=0){ - for(var i=0;i0&& - get.effect(target2,{name:'shacopy',nature:card.nature,suit:card.suit},player,player)<0){ - if(target.hp==target.maxHp) return 0.3; - return 0.6; - } - } + if(get.attitude(player,target)<=0){ + for(var i=0;i0&& + get.effect(target2,{name:'shacopy',nature:card.nature,suit:card.suit},player,player)<0){ + if(target.hp==target.maxHp) return 0.3; + return 0.6; + } + } } else{ for(var i=0;i0){ - if(player.canUse(card,target2)) return; - if(target.hp==target.maxHp) return [0,1]; - return [0,0]; - } - } + var target2=players[i]; + if(player!=target2&&target!=target2&&player.canUse(card,target2,false)&& + get.effect(target2,{name:'shacopy',nature:card.nature,suit:card.suit},player,player)>0){ + if(player.canUse(card,target2)) return; + if(target.hp==target.maxHp) return [0,1]; + return [0,0]; + } + } } } } diff --git a/game/game.js b/game/game.js index 0616923c9..12b958e3f 100644 --- a/game/game.js +++ b/game/game.js @@ -10155,9 +10155,7 @@ if(!evt.orderingCards) evt.orderingCards=[]; if(!event.noOrdering&&!event.cardsOrdered){ event.cardsOrdered=true; - var next=game.createEvent('orderingDiscard',false); - event.next.remove(next) - evt.after.push(next) + var next=game.createEvent('orderingDiscard',false,evt.getParent()); next.relatedEvent=evt; next.setContent('orderingDiscard'); } diff --git a/game/keyWords.js b/game/keyWords.js index 3f325ecc1..e5b8ac262 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 3fbe479be..b0c927689 100644 --- a/game/update.js +++ b/game/update.js @@ -1,14 +1,13 @@ window.noname_update={ - version:'1.9.105.5', - update:'1.9.105.4', + version:'1.9.105.5.1', + update:'1.9.105.5', changeLog:[ - '乙坂有宇', - '新郭淮', + 'SP仲村由理调整', 'bug修复', ], files:[ - //'card/extra.js', + 'card/extra.js', //'card/huanlekapai.js', //'card/sp.js', //'card/standard.js', @@ -21,40 +20,40 @@ window.noname_update={ //'card/zhenfa.js', 'card/zhulu.js', 'character/diy.js', - 'character/extra.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/refresh.js', - 'character/shenhua.js', + 'character/refresh.js', + //'character/shenhua.js', 'character/sp.js', 'character/sp2.js', //'character/tw.js', 'character/standard.js', - 'character/swd.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/nova/layout.css', - 'mode/identity.js', + //'mode/identity.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', + //'mode/versus.js', //'mode/boss.js', 'game/game.js', - //'game/keyWords.js', + 'game/keyWords.js', //'game/server.js', //'game/NoSleep.js', //'game/config.js', diff --git a/mode/guozhan.js b/mode/guozhan.js index 3c8f987bc..44aae4c6d 100644 --- a/mode/guozhan.js +++ b/mode/guozhan.js @@ -4652,7 +4652,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ fullimage:true, image:'character:'+list[i] } - lib.translate[cardname]=lib.translate[list[i]]; + lib.translate[cardname]=get.rawName2(list[i]); cards.push(game.createCard(cardname,'','')); } player.$draw(cards,'nobroadcast');