diff --git a/character/clan.js b/character/clan.js index 4825db0e5..6a5e352e2 100644 --- a/character/clan.js +++ b/character/clan.js @@ -1640,7 +1640,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ names.push(namex); } list.sort((a,b)=>{ - return 100*(lib.inpile.indexOf(a[2])-lib.inpile.indexOf(b[2]))+lib.inpile_nature.indexOf(a[3][0])-lib.inpile_nature.indexOf(b[3][0]); + var del1=lib.inpile.indexOf(a[2])-lib.inpile.indexOf(b[2]); + if(del1!=0) return del1; + var a1=0,a2=0; + if(a.length>3) a1=(lib.nature.get(a)||0); + if(b.length>3) b1=(lib.nature.get(b)||0); + return a1-b1; }) player.chooseButton(['是否将'+get.cnNumber(cards.length)+'张牌当下列一张牌使用?',[list,'vcard']]).set('ai',function(button){ return _status.event.player.getUseValue({name:button.link[2],nature:button.link[3]}); diff --git a/character/huicui.js b/character/huicui.js index 6174399bc..00d85ecc5 100644 --- a/character/huicui.js +++ b/character/huicui.js @@ -2627,7 +2627,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var cards=trigger.cards.filterInD(); if(cards.length>0) player.gain(cards,'gain2'); } - }) + }); } }, }, diff --git a/character/jsrg.js b/character/jsrg.js index b0e3b0f23..6961f1155 100644 --- a/character/jsrg.js +++ b/character/jsrg.js @@ -2168,14 +2168,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ prompt2:'你可以获得其他所有群势力角色的各一张牌', logTarget:function(event,player){ return game.filterPlayer(current=>{ - return current.group=='qun'&¤t.countGainableCards(player,'h')>0&¤t!=player; + return current.group=='qun'&¤t.countGainableCards(player,'he')>0&¤t!=player; }) }, content:function(){ game.filterPlayer(current=>{ return current.group=='qun'&¤t!=player; }).sortBySeat().forEach(i=>{ - player.gainPlayerCard(i,'h',true); + player.gainPlayerCard(i,'he',true); }); }, group:'jsrgjulian_draw', diff --git a/character/mobile.js b/character/mobile.js index c1c4f0af1..0e4e38622 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -5723,9 +5723,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 1' if(result.number<7){ var source=trigger.source; - if(source&&source.isIn()&&source.countCards('h')>0){ + if(source&&source.isIn()&&source.countCards('he')>0){ player.line(source); - source.chooseToDiscard('h',true); + source.chooseToDiscard('he',true); } } }, diff --git a/character/old.js b/character/old.js index ce1b929f0..c01891e3b 100755 --- a/character/old.js +++ b/character/old.js @@ -88,14 +88,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ init:function(){ if(!_status.junkguixin){ _status.junkguixin=[]; - for(var name in lib.character){ + if(!_status.characterlist){ + lib.skill.pingjian.initList(); + } + for(const name of _status.characterlist){ if(!lib.character[name][3]) continue; - if(game.players.some(target=>{ - if(target.name&&target.name==name) return true; - if(target.name1&&target.name1==name) return true; - if(target.name2&&target.name2==name) return true; - return false; - })) continue; _status.junkguixin.addArray(lib.character[name][3].filter(skill=>{ var info=get.info(skill); return info&&info.zhuSkill&&(!info.ai||!info.ai.combo); diff --git a/character/sp.js b/character/sp.js index bcd97da9f..0e2509b0b 100755 --- a/character/sp.js +++ b/character/sp.js @@ -22248,19 +22248,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filterTarget:function(card,player,target){ if(get.mode()=='guozhan'){ if(player==target) return true; - if(player.identity=='ye') return false; if(player.identity=='unknown'){ - if(_status.yeidentity.contains(player._group)){ - return false; - } - else if(get.zhu(player)||get.population(player._group)+1<=get.population()/2){ - return player._group==target.identity; - } - else{ - return false; - } + if(!player.wontYe('qun')) return false; + return target.identity=='qun'; } - return player.identity==target.identity; + return target.isFriendOf(player); } else{ return true; @@ -25598,7 +25590,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ retuogu:'托孤', retuogu_info:'一名角色死亡时,你可以令其选择其武将牌上的一个技能(主公技,限定技,觉醒技,隐匿技、使命技等特殊技能除外),然后你获得其选择的技能并失去上次因〖托孤〗获得的技能。', shanzhuan:'擅专', - shanzhuan_info:'当你对其他角色造成伤害后,若其判定区没有牌,则你你可以将其的一张牌置于其的判定区。若此牌不为延时锦囊牌且此牌为:红色,此牌视为【乐不思蜀】;黑色,此牌视为【兵粮寸断】。回合结束时,若你本回合内未造成伤害,你可摸一张牌。', + shanzhuan_info:'当你对其他角色造成伤害后,若其判定区没有牌,则你可以将其的一张牌置于其的判定区。若此牌不为延时锦囊牌且此牌为:红色,此牌视为【乐不思蜀】;黑色,此牌视为【兵粮寸断】。回合结束时,若你本回合内未造成伤害,你可摸一张牌。', spniluan:'逆乱', spniluan_info:'出牌阶段,你可以将一张黑色牌当做【杀】使用。此【杀】使用结算完成后,若你未因此【杀】造成过伤害,则你令此【杀】不计入使用次数。', spweiwu:'违忤', diff --git a/character/tw.js b/character/tw.js index 2bb6ad132..f858e6f96 100644 --- a/character/tw.js +++ b/character/tw.js @@ -13534,7 +13534,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ effect:{ target:function(card,player,target,current){ if(target.countCards('h')) return; - if(get.tag(card,'natureDamage')) return 'zerotarget'; + if(get.tag(card,'natureDamage')) return 'zeroplayertarget'; if(get.type(card)=='trick'&&get.tag(card,'damage')){ return 'zeroplayertarget'; } diff --git a/character/xianding.js b/character/xianding.js index 73b4ba69a..da896faec 100644 --- a/character/xianding.js +++ b/character/xianding.js @@ -10633,14 +10633,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){ list.add(get.suit(card,false)); } game.getGlobalHistory('cardMove',function(evt){ - if(evt==event||evt.getParent()==event||(evt.name!='lose'&&evt.name!='cardsDiscard')) return false; + if(evt.name!='lose'&&evt.name!='cardsDiscard') return false; if(evt.name=='lose'&&evt.position!=ui.discardPile) return false; + if(evt==event||evt.getParent()==event) return false; num+=evt.cards.length; for(var i=0;i0; }, @@ -10650,20 +10651,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var cards=trigger.getd(); for(var i=0;ichoices.length) numx=choices.length; + else if(numx>=choices.length) numx=choices.length-1; return numx; }()); 'step 1' diff --git a/game/game.js b/game/game.js index 6b7ff8f06..53e0319d5 100644 --- a/game/game.js +++ b/game/game.js @@ -12661,7 +12661,7 @@ "step 4" var info=get.info(card,false); if(get.itemtype(result)=='cards'){ - player.lose(result,false,'visible').set('type','equip').set('getlx',false).swapEquip=true; + player.lose(result,'visible').set('type','equip').set('getlx',false).swapEquip=true; if(info.loseThrow){ player.$throw(result,1000); } @@ -26929,6 +26929,7 @@ this.addEquipTrigger(es[i]); } } + _status.event.clearStepCache(); return this; }, removeEquipTrigger:function(card){ @@ -26954,6 +26955,7 @@ this.removeEquipTrigger(es[i]); } } + _status.event.clearStepCache(); return this; }, removeSkillTrigger:function(skill,triggeronly){ @@ -27013,10 +27015,13 @@ } } } + if(_status.event&&_status.event.removeTrigger) _status.event.removeTrigger(skill,this); + _status.event.clearStepCache(); return this; }, removeSkill:function(skill){ if(!skill) return; + _status.event.clearStepCache(); if(Array.isArray(skill)){ for(var i=0;i{ + return i[0]==skillx&&i[1]==player; + }); + if(toremove.length>0) map.list.removeArray(toremove); + } + for(var j=0;j{ - var round=10**f; + var round=Math.pow(10,f); return Math.round(num*round)/round; }, playerNumber:()=>{ diff --git a/mode/boss.js b/mode/boss.js index 71634075a..70e954c6b 100644 --- a/mode/boss.js +++ b/mode/boss.js @@ -2659,7 +2659,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ if(!player.hasEmptySlot('equip2')) return false; if(event.card.name=='nanman') return true; if(event.card.name=='wanjian') return true; - return event.card.name=='sha'&&game.hasNature(event.card); + return event.card.name=='sha'&&!game.hasNature(event.card); }, content:function(){ trigger.cancel(); diff --git a/mode/identity.js b/mode/identity.js index 9ff1fee62..38b586bc3 100644 --- a/mode/identity.js +++ b/mode/identity.js @@ -363,7 +363,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, }); for(var i=0;i