diff --git a/card/extra.js b/card/extra.js index 4bb555b7d..e3dc67ed2 100644 --- a/card/extra.js +++ b/card/extra.js @@ -308,12 +308,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ if(status*get.attitude(viewer,player._trueMe||player)>0 || target.hasSkillTag('nodamage') || target.hasSkillTag('nofire') || target.hasSkillTag('nothunder') || get.attitude(viewer,player)>0 || (1+target.countCards('hs'))*_status.event.getRand()>1.57) return 0; }, basic:{ - order:(item,player)=>{ - if(player.hasCard(card=>{ - return get.tag(card,'damage')&&game.hasNature(card)&&player.hasValueTarget(card); - },'hs')) return 7.3; - return 4.1; - }, + order:7.3, useful:1.2, value:4 }, diff --git a/card/guozhan.js b/card/guozhan.js index 71989d13b..b039871be 100644 --- a/card/guozhan.js +++ b/card/guozhan.js @@ -317,7 +317,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ if(player.hasSkill('gzzongyu')) return 9; if(game.hasPlayer(function(current){ return current.hasSkill('gzzongyu')&&get.attitude(player,current)<=0; - })) return 1; + })) return 1; return 7.2; }, basic:{ diff --git a/card/standard.js b/card/standard.js index 1e221dfa6..e6b87c8dd 100644 --- a/card/standard.js +++ b/card/standard.js @@ -155,7 +155,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ next.set('useShan',(()=>{ if(target.hasSkillTag('noShan',null,event)) return false; if(target.hasSkillTag('useShan',null,event)) return true; - if(event.baseDamage+event.extraDamage<=0 || get.attitude(target,player._trueMe||player)>0) return false; + if(event.baseDamage+event.extraDamage<=0 || target.isLink()&&game.hasNature(event.card)&&get.attitude(target,player._trueMe||player)>0) return false; if(event.shanRequired>1&&target.mayHaveShan(target,'use',null,'count')=target.hp+ ((player.hasSkillTag('jueqing',false,target)||target.hasSkill('gangzhi'))?target.hujia:0)) return true; @@ -1271,33 +1271,39 @@ game.import('card',function(lib,game,ui,get,ai,_status){ value:5.5 }, result:{ - target:-1.5, - player:function(player,target,card){ - if(player.hasSkillTag('directHit_ai',true,{ - target:target, - card:card, - },true)){ - return 0; - } - if(get.damageEffect(target,player,target)>0&&get.attitude(player,target)>0&&get.attitude(target,player)>0){ - return 0; - } - var hs1=target.getCards('h','sha'); - var hs2=player.getCards('h','sha'); - if(hs1.length>hs2.length+1){ + player(player, target, card) { + if (player.hasSkillTag('directHit_ai', true, { + target: target, + card: card + }, true)) return 0; + if (get.damageEffect(target, player, target) >= 0) return 0; + let pd = get.damageEffect(player, target, player), att = get.attitude(player, target); + if (att > 0 && get.damageEffect(target, player, player) > pd) return 0; + let ts = target.mayHaveSha(player, 'respond', null, 'count'), ps = player.mayHaveSha(player, 'respond', null, 'count'); + if (ts < 1 && ts << 3 < Math.pow(player.hp, 2)) return 0; + if (att > 0) { + if (ts < 1) return 0; return -2; } - var hsx=target.getCards('h'); - if(hsx.length>2&&hs2.length==0&&hsx[0].number<6){ - return -2; - } - if(hsx.length>3&&hs2.length==0){ - return -2; - } - if(hs1.length>hs2.length&&(!hs2.length||hs1[0].number>hs2[0].number)){ - return -2; - } - return -0.5; + if (ts - ps + Math.exp(0.8 - player.hp) < 1) return -ts; + if (pd >= 0) return pd / get.attitude(player, player); + return -2 - ts; + }, + target(player, target, card) { + if (player.hasSkillTag('directHit_ai', true, { + target: target, + card: card + }, true)) return -2; + let td = get.damageEffect(target, player, target); + if (td >= 0) return td / get.attitude(target, target); + let pd = get.damageEffect(player, target, player), att = get.attitude(player, target); + if (att > 0 && get.damageEffect(target, player, player) > pd) return -2; + let ts = target.mayHaveSha(player, 'respond', null, 'count'), ps = player.mayHaveSha(player, 'respond', null, 'count'); + if (ts < 1) return -1.5; + if (att > 0) return -2; + if (ts - ps < 1) return -2 - ts; + if (pd >= 0) return -1; + return -ts; } }, tag:{ diff --git a/character/diy.js b/character/diy.js index 85e9758d9..68d02e874 100755 --- a/character/diy.js +++ b/character/diy.js @@ -5870,7 +5870,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter(event,player){ var list=['wei','shu','wu','qun','key','jin']; for(var i in list){ - if(player.hasMark('kotori_yumo_'+list[i])) return true; + if(player.hasMark('kotori_yumo_'+list[i])) return true; } return false; }, @@ -5879,7 +5879,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var list=['wei','shu','wu','qun','key','jin']; var list2=[]; for(var i of list){ - if(player.hasMark('kotori_yumo_'+i)) list2.push('kotori_skill_'+i); + if(player.hasMark('kotori_yumo_'+i)) list2.push('kotori_skill_'+i); } list2.push('cancel2'); player.chooseControl(list2).set('prompt','###是否发动【驭魔】?###弃置对应的标记并获得下列技能中的一个,或点取消,不获得技能').set('choice',function(){ @@ -6090,7 +6090,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var list=['wei','shu','wu','qun','key','jin']; var list2=[]; for(var i of list){ - if(player.hasMark('kotori_yumo_'+i)&&!player.getStorage('kotori_huazhan2').includes('kotori_yumo_'+i)) list2.push('kotori_yumo_'+i); + if(player.hasMark('kotori_yumo_'+i)&&!player.getStorage('kotori_huazhan2').includes('kotori_yumo_'+i)) list2.push('kotori_yumo_'+i); } list2.push('cancel2'); return list2; @@ -6100,7 +6100,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var list=['wei','shu','wu','qun','key','jin']; var list2=[]; for(var i of list){ - if(player.hasMark('kotori_yumo_'+i)&&!player.getStorage('kotori_huazhan2').includes('kotori_yumo_'+i)) list2.push('kotori_yumo_'+i); + if(player.hasMark('kotori_yumo_'+i)&&!player.getStorage('kotori_huazhan2').includes('kotori_yumo_'+i)) list2.push('kotori_yumo_'+i); } if(list2.includes('kotori_yumo_wei')) return 'kotori_yumo_wei'; if(list2.includes('kotori_yumo_wu')) return 'kotori_yumo_wu'; diff --git a/character/jsrg.js b/character/jsrg.js index 5b2b293d5..270abd8cd 100644 --- a/character/jsrg.js +++ b/character/jsrg.js @@ -7454,6 +7454,42 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, jsrgtushe:{ audio:'xinfu_tushe', + mod: { + aiOrder(player, card, num) { + if (get.tag(card, 'multitarget')) { + if (player.countCards('h', { type: 'basic' })) return num / 10; + return num * 10; + } + if (get.type(card) === 'basic') return num + 10; + }, + aiValue(player, card, num) { + if (card.name === 'zhangba') { + let fact = (n) => { + if (n > 1) return n * fact(n - 1); + return 1; + }, basic = 0; + return fact(Math.min(player.countCards('hs', i => { + if (get.tag(i, 'multitarget')) return 2; + if (!['shan', 'tao', 'jiu'].includes(card.name)) return 1; + basic++; + }) / (1 + basic), player.getCardUsable('sha'))); + } + if (['shan', 'tao', 'jiu'].includes(card.name)) { + if (player.getEquip('zhangba') && player.countCards('hs') > 1) return 0.01; + return num / 2; + } + if (get.tag(card, 'multitarget')) return num + game.players.length; + }, + aiUseful(player, card, num) { + if (get.name(card, player) === 'shan') { + if (player.countCards('hs', i => { + if (card === i || card.cards && card.cards.includes(i)) return false; + return get.name(i, player) === 'shan'; + })) return -1; + return num / Math.pow(Math.max(1, player.hp), 2); + } + } + }, trigger:{ player:'useCardToPlayered', }, @@ -7465,6 +7501,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ check:function(event,player){ return !player.countCards('h',{type:'basic'}); }, + locked: false, content:function (){ 'step 0' player.showHandcards(); @@ -7480,7 +7517,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){ presha:true, pretao:true, threaten:1.8, - }, + effect: { + player(card, player, target) { + if (typeof card === 'object' && card.name !== 'shan' && get.type(card) !== 'equip' && !player.countCards('h', i => { + if (card === i || card.cards && card.cards.includes(i)) return false; + return get.type(i) === 'basic'; + })) { + let targets = [], evt = _status.event.getParent('useCard'); + targets.addArray(ui.selected.targets); + if (evt && evt.card == card) targets.addArray(evt.targets); + if (targets.length) return [1, targets.length]; + if (get.tag(card, 'multitarget')) return [1, game.players.length - 1]; + return [1, 1]; + } + } + } + } }, jsrgtongjue:{ audio:2, diff --git a/character/mobile.js b/character/mobile.js index d9dee83bb..f26962b33 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -13908,7 +13908,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } return false; } - })) return -att; + })) return -att; } return 0; } @@ -13964,7 +13964,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 4' if(result.bool&&result.links.length){ var link=result.links[0]; - if(get.position(link)=='e') event.targets[1].equip(link); + if(get.position(link)=='e') event.targets[1].equip(link); else if(link.viewAs) event.targets[1].addJudge({name:link.viewAs},[link]); else event.targets[1].addJudge(link); event.targets[0].$give(link,event.targets[1],false) diff --git a/character/refresh.js b/character/refresh.js index 498a65866..dd7a787e3 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -8347,7 +8347,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return get.value(button.link,_status.event.getTrigger().target); }); } - if(draw) event.draw=true; + if(draw) event.draw=true; 'step 3' if(event.equip&&result.links&&result.links.length){ trigger.target.loseToDiscardpile(result.links); @@ -8523,7 +8523,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.discardPlayerCard(trigger.target,get.prompt('rejianchu',trigger.target)).set('ai',function(button){ if(!_status.event.att) return 0; if(get.position(button.link)=='e'){ - if(get.subtype(button.link)=='equip2') return 2*get.value(button.link); + if(get.subtype(button.link)=='equip2') return 2*get.value(button.link); return get.value(button.link); } return 1; diff --git a/character/sb.js b/character/sb.js index cd63945fa..df2ac8796 100644 --- a/character/sb.js +++ b/character/sb.js @@ -904,7 +904,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(card.name=='sha'&&typeof player.storage.sbwusheng_effect[target.playerid]=='number') return true; }, cardUsableTarget:function(card,player,target){ - if(card.name=='sha'&&typeof player.storage.sbwusheng_effect[target.playerid]=='number') return true; + if(card.name!=='sha'||typeof player.storage.sbwusheng_effect[target.playerid]!=='number') return; + return player.storage.sbwusheng_effect[target.playerid]<3; }, playerEnabled:function(card,player,target){ if(card.name!='sha'||typeof player.storage.sbwusheng_effect[target.playerid]!='number') return; diff --git a/character/shenhua.js b/character/shenhua.js index 194c83e0b..591c897e5 100755 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -2762,7 +2762,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.discardPlayerCard(trigger.target,get.prompt('jianchu',trigger.target),true).set('ai',function(button){ if(!_status.event.att) return 0; if(get.position(button.link)=='e'){ - if(get.subtype(button.link)=='equip2') return 2*get.value(button.link); + if(get.subtype(button.link)=='equip2') return 2*get.value(button.link); return get.value(button.link); } return 1; diff --git a/character/shiji.js b/character/shiji.js index 4f52c48b4..9641498b6 100644 --- a/character/shiji.js +++ b/character/shiji.js @@ -4986,7 +4986,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var num=Math.max(1,player.hp),target=trigger.player; player.chooseCard('he',get.prompt('sheyi',target),'交给其至少'+get.cnNumber(num)+'张牌,防止即将受到的伤害('+trigger.num+'点)',[num,player.countCards('he')]).set('goon',function(){ if(get.attitude(player,target)<0) return false; - if(trigger.num=0) return false; + if(trigger.num=0) return false; if(trigger.num<2&&target.hp>trigger.num) return 6/Math.sqrt(num); if(target==get.zhu(player)) return 9; return 8/Math.sqrt(num); diff --git a/character/swd.js b/character/swd.js index affefb1ae..bec8cbafa 100644 --- a/character/swd.js +++ b/character/swd.js @@ -9768,7 +9768,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ gxianyin_info:'出牌阶段限一次,你可以选择一种花色,将你的手牌中该花色的牌移至弃牌堆,然后选择另一种花色,从牌堆中获得等量的该花色的牌。', // gxianyin_info_alter:'', cyxianjiang:'仙匠', - cyxianjiang_info:'每当你使用一张牌指定惟一目标时,你可以复制对方装备区内的一张你没有的牌,并置入你的装备区,每回合对一名角色最多发动一次。', + cyxianjiang_info:'每当你使用一张牌指定唯一目标时,你可以复制对方装备区内的一张你没有的牌,并置入你的装备区,每回合对一名角色最多发动一次。', cyqiaoxie:'巧械', cyqiaoxie_info:'每当你失去一张装备牌(使用除外),你可以随机观看三张机关牌,并使用其中一张。', cyqiaoxie_info_alter:'每当你装备一件装备,若你的手牌数不大于体力值,你可以摸一张牌;每当你失去一件装备牌,你可以随机观看2张机关牌,并使用其中一张。', @@ -9923,7 +9923,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ pingshen2:'凭神', pingshen_info:'锁定技,受到过你的伤害的角色可在回合内对你发动一次【离魂】(每局限发动一次)。', xingzhui:'星坠', - xingzhui_info:'出牌阶段限一次,你可以弃置一张牌,并令一名有牌的其他角色弃置一张类别相同的牌,若则受到1点伤害。', + xingzhui_info:'出牌阶段限一次,你可以弃置一张牌,并令一名有牌的其他角色弃置一张类别相同的牌,否则受到1点伤害。', lingxian:'凌仙', lingxian_info:'每当你于回合外使用或打出一张手牌,你可以选择攻击范围外的一名其他角色与你各摸一张牌。', shouyin:'守印', @@ -9965,7 +9965,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xiaomoyu:'魔愈', xiaomoyu_info:'锁定技,每当你于一个回合内首次造成伤害,你回复1点体力,若你没有受伤,则改为摸一张牌。', yihua:'移花', - yihua_info:'每当你成为其他角色的某张卡牌的惟一目标时,你可以弃置两张手牌,将使用者与目标对调。', + yihua_info:'每当你成为其他角色的某张卡牌的唯一目标时,你可以弃置两张手牌,将使用者与目标对调。', youyin:'游吟', youyin_info:'每当有其他角色弃置卡牌时,若其中有非基本牌且你的手牌数不超过5,你可以摸一张牌。', rexue:'热血', diff --git a/character/xianding.js b/character/xianding.js index 48117c9b4..4874b9313 100644 --- a/character/xianding.js +++ b/character/xianding.js @@ -3374,7 +3374,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var choices=['选项二']; var choiceList=[ '令'+get.translation(target)+'回复1点体力', - '你于'+get.translation(target)+'各摸一张牌' + '你与'+get.translation(target)+'各摸一张牌' ]; if(target.isDamaged()) choices.unshift('选项一'); else choiceList[0]=''+choiceList[0]+''; diff --git a/character/xianjian.js b/character/xianjian.js index e18fcdddc..b4889de9c 100644 --- a/character/xianjian.js +++ b/character/xianjian.js @@ -4194,8 +4194,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ chengxin2_bg:'心', chengxin_info:'每四轮限一次,当一名角色进入濒死状态时,你可以令其将体力值回复至1,然后该角色防止一切伤害直到下一回合结束。', tianwu:'天舞', - tianwu_info:'每当你使用卡牌指定一名敌方角色为惟一目标,你可以对其施加一个随机的负面效果。', - tianwu_info_alter:'每当你使用卡牌指定一名敌方角色为惟一目标,你可以对其施加一个随机的负面效果,每回合限发动一次。', + tianwu_info:'每当你使用卡牌指定一名敌方角色为唯一目标,你可以对其施加一个随机的负面效果。', + tianwu_info_alter:'每当你使用卡牌指定一名敌方角色为唯一目标,你可以对其施加一个随机的负面效果,每回合限发动一次。', liguang:'离光', liguang_info:'结束阶段,你可以弃置一张手牌并将场上的一张牌移动到另一个合理的位置。', shiying:'逝影', diff --git a/character/xinghuoliaoyuan.js b/character/xinghuoliaoyuan.js index 684e8addc..da72301b6 100755 --- a/character/xinghuoliaoyuan.js +++ b/character/xinghuoliaoyuan.js @@ -1490,9 +1490,46 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, "xinfu_tushe":{ audio:2, + mod: { + aiOrder(player, card, num) { + if (get.tag(card, 'multitarget')) { + if (player.countCards('h', { type: 'basic' })) return num / 10; + return num * 10; + } + if (get.type(card) === 'basic') return num + 10; + }, + aiValue(player, card, num) { + if (card.name === 'zhangba') { + let fact = (n) => { + if (n > 1) return n * fact(n - 1); + return 1; + }, basic = 0; + return fact(Math.min(player.countCards('hs', i => { + if (get.tag(i, 'multitarget')) return 2; + if (!['shan', 'tao', 'jiu'].includes(card.name)) return 1; + basic++; + }) / (1 + basic), player.getCardUsable('sha'))); + } + if (['shan', 'tao', 'jiu'].includes(card.name)) { + if (player.getEquip('zhangba') && player.countCards('hs') > 1) return 0.01; + return num / 2; + } + if (get.tag(card, 'multitarget')) return num + game.players.length; + }, + aiUseful(player, card, num) { + if (get.name(card, player) === 'shan') { + if (player.countCards('hs', i => { + if (card === i || card.cards && card.cards.includes(i)) return false; + return get.name(i, player) === 'shan'; + })) return -1; + return num / Math.pow(Math.max(1, player.hp), 2); + } + } + }, trigger:{ player:"useCardToPlayered", }, + locked: false, frequent:true, filter:function (event,player){ if(get.type(event.card)=='equip') return false; @@ -1506,7 +1543,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){ presha:true, pretao:true, threaten:1.8, - }, + effect: { + player(card, player, target) { + if (typeof card === 'object' && card.name !== 'shan' && get.type(card) !== 'equip' && !player.countCards('h', i => { + if (card === i || card.cards && card.cards.includes(i)) return false; + return get.type(i) === 'basic'; + })) { + let targets = [], evt = _status.event.getParent('useCard'); + targets.addArray(ui.selected.targets); + if (evt && evt.card == card) targets.addArray(evt.targets); + if (targets.length) return [1, targets.length]; + if (get.tag(card, 'multitarget')) return [1, game.players.length - 1]; + return [1, 1]; + } + } + } + } }, "xinfu_limu":{ mod:{ @@ -1518,11 +1570,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ cardUsableTarget:function(card,player,target){ if(player.countCards('j')&&player.inRange(target)) return true; }, - aiValue:function(player,card,num){ - if(card.name=='zhangba') return 15; - if(player.getEquip('zhangba')&&player.countCards('hs')>1&&['shan','tao'].includes(card.name)) return 0; - if(card.name=='shan'||card.name=='tao') return num/2; - }, + aiOrder(player, card, num) { + if (get.type(card, 'delay') && player.canUse(card, player) && player.canAddJudge(card)) return 15; + } }, locked:false, audio:2, @@ -1542,21 +1592,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filterTarget:function (card,player,target){ return player==target; }, - check:function(card){ - var player=_status.event.player; - if(!player.getEquip('zhangba')&&player.countCards('hs','sha')<2){ - if(player.countCards('h',function(cardx){ - return cardx!=card&&cardx.name=='shan'; - })>0) return 0; - var damaged=player.maxHp-player.hp-1; - var ts=player.countCards('h',function(cardx){ - return cardx!=card&&cardx.name=='tao'; - }); - if(ts>0&&ts>damaged) return 0; + check(card) { + var player = _status.event.player; + if (!player.getEquip('zhangba')) { + let damaged = player.maxHp - player.hp - 1; + if (player.countCards('h', function (cardx) { + if (cardx == card) return false; + if (cardx.name == 'tao') { + if (damaged < 1) return true; + damaged--; + } + return ['shan', 'jiu'].includes(cardx.name); + }) > 0) return 0; } - if(card.name=='shan') return 15; - if(card.name=='tao') return 10; - return 9-get.value(card); + if (card.name == 'shan') return 15; + if (card.name == 'tao' || card.name == 'jiu') return 10; + return 9 - get.value(card); }, onuse:function (links,player){ var next=game.createEvent('limu_recover',false,_status.event.getParent()); @@ -1564,10 +1615,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){ next.setContent(function(){player.recover()}); }, ai:{ - result:{ - target:1, + result: { + target(player, target) { + let res = lib.card.lebu.ai.result.target(player, target); + if (target.isDamaged()) return res + 2 * Math.abs(get.recoverEffect(target, player, target)); + return res; + }, + ignoreStatus: true }, - order:12, + order(item, player) { + if (player.hp > 1 && player.countCards('j')) return 0; + return 12; + }, + effect: { + target(card, player, target) { + if (target.isPhaseUsing() && typeof card === 'object' && get.type(card, target) === 'delay' && !target.countCards('j')) { + let shas = target.getCards('hs', i => { + if (card === i || card.cards && card.cards.includes(i)) return false; + return get.name(i, target) === 'sha' && target.getUseValue(i) > 0; + }) - target.getCardUsable('sha'); + if (shas > 0) return [1, 1.5 * shas]; + } + } + } }, }, }, diff --git a/mode/brawl.js b/mode/brawl.js index a8f9734b7..949dd730a 100644 --- a/mode/brawl.js +++ b/mode/brawl.js @@ -571,7 +571,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ if(list.length==3) break; } if(!list.length){event.finish();return;} - if(player.storage._lingli>0) list.push('刷新'); + if(player.storage._lingli>0) list.push('刷新'); event.list=list; var dialog=game.getSkillDialog(event.list,'选择获得一个技能'); player.chooseControl(event.list).set('ai',function(){ diff --git a/mode/guozhan.js b/mode/guozhan.js index 5a1e5983e..65688b013 100644 --- a/mode/guozhan.js +++ b/mode/guozhan.js @@ -1666,7 +1666,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ var cards=[]; //因为是线下武将 所以同一张牌重复进入只算一张 game.getGlobalHistory('cardMove',function(evt){ - if(evt.name=='cardsDiscard'||(evt.name=='lose'&&evt.position==ui.discardPile)) cards.addArray(evt.cards); + if(evt.name=='cardsDiscard'||(evt.name=='lose'&&evt.position==ui.discardPile)) cards.addArray(evt.cards); }); return cards.length; }, diff --git a/mode/identity.js b/mode/identity.js index a78823208..3f8026c59 100644 --- a/mode/identity.js +++ b/mode/identity.js @@ -2752,7 +2752,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ game.countPlayer(function(current){ var identity=current.identity.slice(1); if(identity!='Zhu'){ - if(current.identity.indexOf('r')==0) red.push(current); + if(current.identity.indexOf('r')==0) red.push(current); else blue.push(current); } });