diff --git a/card/swd.js b/card/swd.js index 1a8810889..55aaae3ee 100644 --- a/card/swd.js +++ b/card/swd.js @@ -20,6 +20,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){ selectTarget:2, multitarget:true, complexTarget:true, + multicheck:function(){ + return game.hasPlayer(function(current){ + return current.getEquip(5); + })&&game.hasPlayer(function(current){ + return !current.getEquip(5); + }); + }, content:function(){ if(target.getEquip(5)){ target.$give(target.getEquip(5),event.addedTarget); diff --git a/character/diy.js b/character/diy.js index ee1db0047..a1766436b 100644 --- a/character/diy.js +++ b/character/diy.js @@ -13,7 +13,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ // diy_zhouyu:['male','wu',3,['xiongzi','yaliang']], diy_caiwenji:['female','qun',3,['beige','guihan']], diy_lukang:['male','wu',4,['luweiyan','qianxun']], - diy_xuhuang:['male','wei',4,['diyduanliang']], + // diy_xuhuang:['male','wei',4,['diyduanliang']], // diy_dianwei:['male','wei',4,['diyqiangxi']], // diy_huangzhong:['male','shu',4,['liegong','fuli']], // diy_weiyan:['male','shu',4,['diykuanggu']], diff --git a/character/rank.js b/character/rank.js index 4340366f1..82bb5434c 100644 --- a/character/rank.js +++ b/character/rank.js @@ -307,6 +307,8 @@ window.noname_character_rank={ 'diy_caiwenji', 'hs_mijiaojisi', 'hs_mojinbaozi', + 'xuhuang', + 'liuye', ], bp:[ 'gw_qigaiwang', @@ -585,7 +587,6 @@ window.noname_character_rank={ 'luxun', 'zhangjiao', 'zhurong', - 'xuhuang', 'jsp_zhaoyun', 'tianfeng', 'old_zhonghui', diff --git a/character/shenhua.js b/character/shenhua.js index 7d8dc75ee..4991ed6d2 100644 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -26,7 +26,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ menghuo:['male','shu',4,['huoshou','zaiqi']], zhurong:['female','shu',4,['juxiang','lieren']], caopi:['male','wei',3,['xingshang','fangzhu','songwei'],['zhu']], - xuhuang:['male','wei',4,['duanliang']], + xuhuang:['male','wei',4,['duanliang','jiezi']], re_lusu:['male','wu',3,['haoshi','redimeng']], sunjian:['male','wu',4,['yinghun']], dongzhuo:['male','qun',8,['jiuchi','roulin','benghuai','baonue'],['zhu']], @@ -2003,8 +2003,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){ event.goto(1); } }, + jiezi:{ + trigger:{global:'phaseDrawSkipped'}, + forced:true, + filter:function(event,player){ + return event.player!=player; + }, + content:function(){ + player.draw(); + } + }, + gzduanliang:{ + group:['duanliang1','duanliang2'], + ai:{ + threaten:1.2 + } + }, duanliang:{ - group:['duanliang1','duanliang2'], + group:['duanliang1','duanliang3'], ai:{ threaten:1.2 } @@ -2036,6 +2052,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } } }, + duanliang3:{ + mod:{ + targetInRange:function(card,player,target){ + if(card.name=='bingliang'){ + if(target.countCards('h')>=player.countCards('h')) return true; + } + } + } + }, haoshi:{ audio:2, trigger:{player:'phaseDrawBegin'}, @@ -4236,6 +4261,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ luanwu:'乱武', wansha:'完杀', weimu:'帷幕', + jiezi:'截辎', + jiezi_info:'锁定技,一名其他角色跳过摸牌阶段后,你摸一张牌', huoshou_info:'【南蛮入侵】对你无效;你是任何【南蛮入侵】造成伤害的来源。', zaiqi_info:'摸牌阶段,若你已受伤,你可以改为展示牌堆顶的X张牌,X为你已损失的体力值,其中每有一张♥牌,你回复1点体力,然后弃掉这些♥牌,将其余的牌收入手牌。', juxiang_info:'南蛮入侵】对你无效;若其他角色使用的【南蛮入侵】在结算完时进入弃牌堆,你立即获得它。', @@ -4243,7 +4270,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xingshang_info:'你可以立即获得死亡角色的所有牌。', fangzhu_info:'你每受到一次伤害,可令除你以外的任一角色补X张牌,X为你已损失的体力值,然后该角色将其武将牌翻面。', songwei_info:'主公技,其他魏势力的角色的判定牌结果为♠或♣且生效后,可以让你摸一张牌。', - duanliang_info:'出牌阶段,你可以将你的任意一张♠或♣的基本牌或装备牌当【兵粮寸断】使用;你可以对与你距离2以内的角色使用【兵粮寸断】。', + duanliang_info:'你可以将一张黑色基本牌或装备牌当做【兵粮寸断】使用;若一名角色的手牌数大于或等于你的手牌数,你对其使用【兵粮寸断】没有距离限制', haoshi_info:'摸牌阶段,你可以额外摸两张牌,若此时你的手牌数多于五张,你必须将一半(向下取整)的手牌交给场上除你外手牌数最少的一名角色。', dimeng_info:'出牌阶段,你可以选择其他两名角色,你弃掉等同于这两名角色手牌数量之差的牌,然后交换他们的手牌,每回合限一次。', yinghun_old_info:'准备阶段,若你已受伤,可选择一名其他角色执行下列两项中的一项: 1.摸X张牌,然后弃一张牌。 2.摸一张牌,然后弃X张牌。 X为你已损失的体力值,每回合限一次。', diff --git a/character/sp.js b/character/sp.js index 482792519..e2d25fa4a 100644 --- a/character/sp.js +++ b/character/sp.js @@ -108,6 +108,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sunqian:['male','shu',3,['qianya','shuimeng']], xizhicai:['male','wei',3,['tiandu','xianfu','chouce']], quyi:['male','qun',4,['fuqi','jiaozi']], + + liuye:['male','wei',3,['polu','choulve']], }, characterIntro:{ huangfusong:'字义真。安定郡朝那县(今宁夏彭阳)人。于黄巾起义时,以中郎将身份讨伐黄巾,用火攻大破张梁、张宝。[45] 后接替董卓进攻张梁,连胜七阵。掘张角墓,拜左车骑将军、冀州牧,因拒绝贿赂宦官而被免职。[46] 董卓死,王允命其与吕布等共至郿坞抄籍董卓家产、人口,皇甫嵩将坞中所藏良家子女,尽行释放。', @@ -206,6 +208,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){ dongbai:['dongzhuo'] }, card:{ + ly_piliche:{ + fullskin:true, + vanish:true, + derivation:'liuye', + type:'equip', + subtype:'equip1', + distance:{attackFrom:-8}, + skills:['ly_piliche'], + }, wy_meirenji:{ fullskin:true, vanish:true, @@ -306,6 +317,106 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, skill:{ + choulve:{ + trigger:{player:'phaseUseBegin'}, + direct:true, + filter:function(event,player){ + return game.hasPlayer(function(current){ + return current!=player&¤t.countCards('he'); + }) + }, + content:function(){ + 'step 0' + var str='令一名其他角色交给你一张牌'; + if(player.storage.choulve){ + str+='若其如此做,视为你使用'+get.translation(player.storage.choulve); + } + player.chooseTarget(get.prompt('choulve'),str,function(card,player,target){ + return target!=player&&target.countCards('he'); + }).set('ai',function(target){ + var player=_status.event.player; + if(get.attitude(player,target)>=0&&get.attitude(target,player)>=0){ + return Math.sqrt(target.countCards('he')); + } + return 0; + }); + 'step 1' + if(result.bool){ + var target=result.targets[0]; + player.logSkill('choulve',target); + target.chooseCard('he','是否交给'+get.translation(player)+'一张牌?', + player.storage.choulve?('若如此做,视为'+get.translation(player)+ + '使用'+get.translation(player.storage.choulve)):null).set('ai',function(card){ + if(_status.event.goon) return 7-get.value(card); + return 0; + }).set('goon',get.attitude(target,player)>1); + event.target=target; + } + else{ + event.finish(); + } + 'step 2' + if(result.bool){ + event.target.give(result.cards,player); + if(player.storage.choulve){ + player.chooseUseTarget(player.storage.choulve); + } + } + }, + group:'choulve_damage', + subSkill:{ + damage:{ + trigger:{player:'damageEnd'}, + silent:true, + content:function(){ + if(trigger.card&&get.info(trigger.card).enable&&get.type(trigger.card)!='delay'){ + if(trigger.cards&&trigger.cards.length==1&&trigger.cards[0]==trigger.card){ + player.storage.choulve=game.createCard(trigger.card); + } + else{ + player.storage.choulve=trigger.card.name; + } + } + } + } + } + }, + polu:{ + trigger:{player:['phaseBegin','damageEnd']}, + forced:true, + filter:function(event,player){ + return !player.getEquip('ly_piliche'); + }, + content:function(){ + if(trigger.name=='phase'){ + player.useCard(game.createCard('ly_piliche','diamond',1),player); + } + else{ + player.draw(); + } + } + }, + ly_piliche:{ + trigger:{source:'damageEnd'}, + check:function(event,player){ + return get.attitude(player,event.player)<0; + }, + filter:function(event,player){ + if(event.card&&get.type(event.card)=='delay') return false; + return event.player.isIn()&&(event.player.getEquip(2)||event.player.getEquip(3)); + }, + logTarget:'player', + content:function(){ + var equip2=trigger.player.getEquip(2); + var equip3=trigger.player.getEquip(3); + var cards=[]; + if(equip2) cards.push(equip2); + if(equip3) cards.push(equip3); + if(cards.length){ + trigger.player.discard(cards); + } + } + }, shuimeng:{ trigger:{player:'phaseUseAfter'}, direct:true, @@ -9364,7 +9475,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sunqian:'孙乾', xizhicai:'戏志才', quyi:'麹义', + liuye:'刘晔', + ly_piliche:'霹雳车', + ly_piliche_info:'当你对其他角色造成伤害后,若造成伤害牌不为延时锦囊牌,你可以弃置其装备区里的防具牌与+1坐骑牌', + polu:'破橹', + polu_info:'锁定技,回合开始时,若你的装备区里没有【霹雳车】,你使用之;当你受到1点伤害后,若你的装备区里没有【霹雳车】,你摸一张牌', + choulve:'筹略', + choulve_info:'出牌阶段开始时,你可以令一名其他角色交给你一张牌,若其如此做,视为你使用上一张对你造成伤害且不为延时锦囊牌的牌', qianya:'谦雅', qianya_info:'当你成为锦囊牌的目标后,你可以将任意张手牌交给一名其他角色', shuimeng:'说盟', diff --git a/game/asset.js b/game/asset.js index 563402977..498656f19 100644 --- a/game/asset.js +++ b/game/asset.js @@ -170,6 +170,7 @@ window.noname_asset_list=[ 'image/card/longxugou.png', 'image/card/lulitongxin.png', 'image/card/luyugeng.png', + 'image/card/ly_piliche.png', 'image/card/mapodoufu.png', 'image/card/mianlijinzhen.png', 'image/card/mizhilianou.png', @@ -565,6 +566,7 @@ window.noname_asset_list=[ 'image/character/liufeng.jpg', 'image/character/liushan.jpg', 'image/character/liuxie.jpg', + 'image/character/liuye.jpg', 'image/character/liuyu.jpg', 'image/character/liyan.jpg', 'image/character/liuzan.jpg', diff --git a/game/game.js b/game/game.js index 24494a9ae..138de67a8 100644 --- a/game/game.js +++ b/game/game.js @@ -8147,7 +8147,7 @@ var mode=lib.config.all.mode.slice(0); mode.remove('connect'); mode.remove('brawl'); - var banned=['yxs_luzhishen','xuhuang','zhenji','shen_guanyu','shen_caocao','zhurong', + var banned=['yxs_luzhishen','zhenji','shen_guanyu','shen_caocao','zhurong', 'daqiao','lingcao','liuzan','lusu','luxun','yanwen','zhouyu','xiahouyuan', 'zhuzhi','old_caozhen','guojia','simayi','sp_pangde','swd_kangnalishi','hs_siwangzhiyi']; var bannedcards=['zengbin','toulianghuanzhu','huoshan','hongshui','guiyoujie','fengyinzhidan']; @@ -25279,6 +25279,7 @@ if(event.next.length>0){ var next=event.next.shift(); if(next.player&&next.player.skipList.contains(next.name)){ + event.trigger(next.name+'Skipped'); next.player.skipList.remove(next.name); } else{ diff --git a/image/card/ly_piliche.png b/image/card/ly_piliche.png new file mode 100644 index 000000000..b2ef17106 Binary files /dev/null and b/image/card/ly_piliche.png differ diff --git a/image/character/liuye.jpg b/image/character/liuye.jpg new file mode 100644 index 000000000..23aab98fb Binary files /dev/null and b/image/character/liuye.jpg differ diff --git a/mode/guozhan.js b/mode/guozhan.js index 5ce8a7c0b..15323f4a3 100644 --- a/mode/guozhan.js +++ b/mode/guozhan.js @@ -193,7 +193,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ gz_zhenji:['female','wei',3,['luoshen','qingguo']], gz_xiahouyuan:['male','wei',4,['shensu']], gz_zhanghe:['male','wei',4,['qiaobian']], - gz_xuhuang:['male','wei',4,['duanliang']], + gz_xuhuang:['male','wei',4,['gzduanliang']], gz_caoren:['male','wei',4,['jushou']], gz_dianwei:['male','wei',4,['qiangxi']], gz_xunyu:['male','wei',3,['quhu','jieming']], @@ -2831,6 +2831,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ duoshi_info:'出牌阶段限四次,你可以将一张红色手牌当【以逸待劳】使用。', gzxiaoguo:'骁果', gzxiaoguo_info:'其他角色的结束阶段开始时,你可以弃置一张基本牌,令该角色选择一项:1.弃置一张装备牌;2.受到你对其造成的1点伤害。', + gzduanliang:'断粮', + gzduanliang_info:'你可以将一张黑色基本牌或黑色装备牌当【兵粮寸断】使用;你可以对距离为2的角色使用【兵粮寸断】', }, junList:['liubei','zhangjiao'], guozhanPile:[