diff --git a/card/gujian.js b/card/gujian.js index 5e0fd6989..00378014d 100644 --- a/card/gujian.js +++ b/card/gujian.js @@ -141,12 +141,148 @@ card.gujian={ fullskin:true, type:'basic', }, + bingpotong:{ + fullskin:true, + type:'jiguan', + enable:true, + filterTarget:function(card,player,target){ + return target.num('h')>0; + }, + content:function(){ + "step 0" + if(target.num('h')==0||player.num('h')==0){ + event.finish(); + return; + } + player.chooseCard(true); + "step 1" + event.card1=result.cards[0]; + var rand=Math.random()<0.5; + target.chooseCard(true).ai=function(card){ + var num=0; + if(get.color(card)=='red'){ + if(rand) num-=5; + } + else{ + if(!rand) num-=5; + } + return num-ai.get.value(card); + }; + "step 2" + event.card2=result.cards[0]; + ui.arena.classList.add('thrownhighlight'); + game.addVideo('thrownhighlight1'); + player.$compare(event.card1,target,event.card2); + game.delay(4); + "step 3" + game.log(player,'展示了',event.card1); + game.log(target,'展示了',event.card2); + if(get.color(event.card2)==get.color(event.card1)){ + player.discard(event.card1).animate=false; + target.$gain2(event.card2); + var clone=event.card1.clone; + if(clone){ + clone.style.transition='all 0.5s'; + clone.style.transform='scale(1.2)'; + clone.delete(); + game.addVideo('deletenode',player,get.cardsInfo([clone])); + } + target.loseHp(); + } + else{ + player.$gain2(event.card1); + target.discard(event.card2).animate=false; + var clone=event.card2.clone; + if(clone){ + clone.style.transition='all 0.5s'; + clone.style.transform='scale(1.2)'; + clone.delete(); + game.addVideo('deletenode',target,get.cardsInfo([clone])); + } + } + ui.arena.classList.remove('thrownhighlight'); + game.addVideo('thrownhighlight2'); + }, + ai:{ + basic:{ + order:2, + value:5, + useful:1, + }, + result:{ + player:function(player,target){ + if(player.num('h')<=Math.min(5,Math.max(2,player.hp))&&_status.event.name=='chooseToUse'){ + if(typeof _status.event.filterCard=='function'&& + _status.event.filterCard({name:'dujian'})){ + return -10; + } + if(_status.event.skill){ + var viewAs=get.info(_status.event.skill).viewAs; + if(viewAs=='dujian') return -10; + if(viewAs&&viewAs.name=='dujian') return -10; + } + } + return 0; + }, + target:function(player,target){ + if(player.num('h')<=1) return 0; + return -1.5; + } + }, + tag:{ + loseHp:1 + } + } + }, + feibiao:{ + type:'jiguan', + enable:true, + fullskin:true, + filterTarget:function(card,player,target){ + return get.distance(player,target)>1; + }, + content:function(){ + "step 0" + if(!target.num('h',{color:'black'})){ + target.loseHp(); + event.finish(); + } + else{ + target.chooseToDiscard({color:'black'},'弃置一张黑色手牌或受流失一点体力').ai=function(card){ + return 8-ai.get.value(card); + }; + } + "step 1" + if(!result.bool){ + target.loseHp(); + } + }, + ai:{ + basic:{ + order:9, + value:3, + useful:1, + }, + result:{ + target:-2 + }, + tag:{ + discard:1, + loseHp:1 + } + } + } }, skill:{}, cardType:{ food:0.3 }, translate:{ + bingpotong:'冰魄筒', + bingpotong_info:'出牌阶段,对一名有手牌的角色使用,你与其同时展示一张手牌,若颜色相同,你弃置展示的牌,目标流失一点体力;若颜色不同,目标弃置展示的牌', + feibiao:'飞镖', + feibiao_info:'出牌阶段,对一名距离1以外的角色使用,令其弃置一张黑色手牌或流失一点体力', + liuxiaxianniang:'流霞仙酿', liuxiaxianniang_info:'流霞仙酿', yunvyuanshen:'玉女元参', @@ -175,5 +311,14 @@ card.gujian={ yuanbaorou:'元宝肉', molicha:'茉莉茶', mapodoufu:'麻婆豆腐', - } + }, + list:[ + ['club',8,'feibiao','poison'], + ['diamond',9,'feibiao','poison'], + ['spade',11,'feibiao','poison'], + + ['spade',3,'bingpotong','poison'], + ['club',11,'bingpotong','poison'], + ['club',12,'bingpotong','poison'], + ] }; diff --git a/card/swd.js b/card/swd.js index 2433faef7..40141c5d7 100644 --- a/card/swd.js +++ b/card/swd.js @@ -367,18 +367,33 @@ card.swd={ yuchankan:{ fullskin:true, type:'jiqi', - autoViewAs:'xiangyuye', - addinfo:'叶', + autoViewAs:'shenmiguo', + addinfo:'果', ai:{ + order:1, + useful:4, value:6, - useful:1 + result:{ + player:function(){ + var cardname=_status.event.cardname; + if(cardname=='tiesuo') return 0; + if(cardname=='jiu') return 0; + if(cardname=='tianxianjiu') return 0; + if(cardname=='toulianghuanzhu') return 0; + if(cardname=='shijieshu') return 0; + if(cardname=='xietianzi') return 0; + if(cardname=='huogong') return 0; + if(cardname=='shandianjian') return 0; + return 1; + } + }, } }, yuchanli:{ fullskin:true, type:'jiqi', - autoViewAs:'dujian', - addinfo:'箭', + autoViewAs:'tianxianjiu', + addinfo:'仙', ai:{ value:6, useful:1 @@ -1517,7 +1532,7 @@ card.swd={ } } }, - huanpodan:{ + huanpodan_old:{ type:'basic', enable:function(){return game.dead.length>0}, notarget:true, @@ -1647,6 +1662,37 @@ card.swd={ }, } }, + huanpodan:{ + fullskin:true, + type:'basic', + enable:true, + logv:false, + filterTarget:function(card,player,target){ + return !target.hasSkill('huanpodan_skill'); + }, + content:function(){ + target.addSkill('huanpodan_skill'); + if(cards&&cards.length){ + card=cards[0]; + } + if(target==targets[0]&&card.clone&&(card.clone.parentNode==player.parentNode||card.clone.parentNode==ui.arena)){ + card.clone.moveDelete(target); + game.addVideo('gain2',target,get.cardsInfo([card])); + } + }, + ai:{ + basic:{ + value:8, + useful:4, + }, + order:2, + result:{ + target:function(player,target){ + return 1/Math.sqrt(1+target.hp); + }, + }, + } + }, langeguaiyi:{ fullskin:true, type:'equip', @@ -1963,12 +2009,32 @@ card.swd={ }, }, skill:{ + huanpodan_skill:{ + mark:true, + intro:{ + content:'防止一次死亡,改为弃置所有牌,将体力值变为1并摸一张牌' + }, + trigger:{player:'dieBefore'}, + forced:true, + content:function(){ + 'step 0' + trigger.untrigger(); + trigger.finish(); + player.discard(player.get('he')); + player.removeSkill('huanpodan_skill'); + 'step 1' + player.changeHp(1-player.hp); + 'step 2' + player.draw(); + } + }, dujian2:{}, _yuchan_swap:{ trigger:{player:'useCardAfter'}, forced:true, popup:false, silent:true, + priority:-1, content:function(){ var hs=player.get('h'); var list=['yuchanqian','yuchankun','yuchanzhen','yuchanxun','yuchangen','yuchanli','yuchankan','yuchandui']; @@ -2105,6 +2171,7 @@ card.swd={ if(event.parent.parent.name!='phaseUse') return false; if(!event.targets||!event.card) return false; if(event.card.name=='shenmiguo') return false; + if(event.card.name=='yuchankan') return false; if(player.hasSkill('shenmiguo2')) return false; var type=get.type(event.card); if(type!='basic'&&type!='trick') return false; @@ -2116,10 +2183,12 @@ card.swd={ } } if(player.num('h','shenmiguo')) return true; + if(player.num('h','yuchankan')) return true; var mn=player.get('e','5'); if(mn&&mn.name=='muniu'&&mn.cards&&mn.cards.length){ for(var i=0;i0; @@ -4013,7 +4013,7 @@ character.swd={ viewAsFilter:function(player){ if(!player.num('he',{color:'black'})) return false; }, - prompt:'将一张黑色牌当作毒箭使用', + prompt:'将一张黑色牌当作冰魄筒使用', check:function(card){return 5-ai.get.value(card)}, ai:{ threaten:1.1 @@ -8878,7 +8878,7 @@ character.swd={ shengshou:'圣手', huanjian:'幻箭', yuhuo:'浴火', - huanjian_info:'你可以将一张黑色牌当作毒箭使用', + huanjian_info:'你可以将一张黑色牌当作冰魄筒使用', shengshou_info:'你可以将一张黑色手牌当作草药使用', susheng_info:'在任意一名角色即将死亡时,你可以弃置一张手牌防止其死亡,并将其体力回复至1,每回合限发动一次', zhanlu_info:'出牌阶段,你可以弃置一张黑桃牌令至多3名角色各回复一点体力', diff --git a/game/asset.js b/game/asset.js index d09f603c8..fcd76fb36 100644 --- a/game/asset.js +++ b/game/asset.js @@ -13,6 +13,7 @@ window.noname_asset_list=[ 'image/card/baishouzhihu.png', 'image/card/baiyin.png', 'image/card/bingliang.png', + 'image/card/bingpotong.png', 'image/card/cangchizhibi.png', 'image/card/caomu.png', 'image/card/caoyao.png', @@ -29,9 +30,10 @@ window.noname_asset_list=[ 'image/card/diaohulishan.png', 'image/card/donghuangzhong.png', 'image/card/du.png', - 'image/card/dujian.png', + // 'image/card/dujian.png', 'image/card/dunpaigedang.png', 'image/card/fangtian.png', + 'image/card/feibiao.png', 'image/card/fengxueren.png', 'image/card/fengyinzhidan.png', 'image/card/fudichouxin.png', @@ -178,7 +180,7 @@ window.noname_asset_list=[ 'image/card/wuxingpan.png', 'image/card/wuzhong.png', 'image/card/xiajiao.png', - 'image/card/xiangyuye.png', + // 'image/card/xiangyuye.png', 'image/card/xianluhui.png', 'image/card/xiayuncailing.png', 'image/card/xietianzi.png', diff --git a/image/card/bingpotong.png b/image/card/bingpotong.png new file mode 100644 index 000000000..a96262e1d Binary files /dev/null and b/image/card/bingpotong.png differ diff --git a/image/card/feibiao.png b/image/card/feibiao.png new file mode 100644 index 000000000..92e875557 Binary files /dev/null and b/image/card/feibiao.png differ