2016-01-24 08:34:21 +00:00
|
|
|
|
'use strict';
|
2017-04-17 05:18:46 +00:00
|
|
|
|
game.import('character',function(lib,game,ui,get,ai,_status){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return {
|
|
|
|
|
name:'shenhua',
|
|
|
|
|
connect:true,
|
|
|
|
|
connectBanned:['zuoci'],
|
2019-08-23 15:03:21 +00:00
|
|
|
|
characterSort:{
|
|
|
|
|
shenhua:{
|
2020-05-16 05:03:13 +00:00
|
|
|
|
shenhua_feng:["sp_zhangjiao","re_yuji","old_zhoutai","old_caoren","re_xiahouyuan","re_xiaoqiao","huangzhong","re_weiyan"],
|
2020-07-11 01:45:52 +00:00
|
|
|
|
shenhua_huo:['dianwei','xunyu','pangtong','sp_zhugeliang','taishici','yanwen','re_yuanshao','re_pangde'],
|
2022-04-18 02:27:32 +00:00
|
|
|
|
shenhua_lin:['caopi','re_xuhuang','menghuo','zhurong','re_lusu','sunjian','dongzhuo','jiaxu'],
|
2019-08-23 15:03:21 +00:00
|
|
|
|
shenhua_shan:['dengai','zhanghe','liushan','jiangwei','zhangzhang','sunce','caiwenji','zuoci'],
|
|
|
|
|
shenhua_yin:['wangji','kuailiangkuaiyue','yanyan','wangping','sunliang','luji','xuyou','yl_luzhi'],
|
|
|
|
|
shenhua_lei:['haozhao','guanqiujian','chendao','zhugezhan','lukang','zhoufei','zhangxiu','yl_yuanshu'],
|
|
|
|
|
},
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
character:{
|
2020-10-09 03:37:02 +00:00
|
|
|
|
old_zhoutai:['male','wu',4,['buqu','new_fenji']],
|
2019-12-25 05:21:37 +00:00
|
|
|
|
old_caoren:['male','wei',4,['moon_jushou','jiewei']],
|
2022-04-18 02:27:32 +00:00
|
|
|
|
re_xuhuang:['male','wei',4,['duanliang','jiezi']],
|
2020-07-11 01:45:52 +00:00
|
|
|
|
re_pangde:['male','qun',4,['mashu','jianchu']],
|
2020-03-30 11:56:37 +00:00
|
|
|
|
re_xiahouyuan:['male','wei',4,['xinshensu']],
|
2019-12-25 05:21:37 +00:00
|
|
|
|
huangzhong:['male','shu',4,['liegong']],
|
2020-05-16 05:03:13 +00:00
|
|
|
|
re_weiyan:['male','shu',4,['xinkuanggu','qimou']],
|
2021-02-25 12:26:19 +00:00
|
|
|
|
re_xiaoqiao:['female','wu',3,['retianxiang','xinhongyan']],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
sp_zhangjiao:['male','qun',3,['releiji','guidao','huangtian'],['zhu']],
|
2019-06-09 03:23:49 +00:00
|
|
|
|
re_yuji:["male","qun",3,["xinfu_guhuo"],["forbidai"]],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
// yuji:['male','qun',3,['guhuo']],
|
|
|
|
|
// xin_yuji:['male','qun',3,['guhuo']],
|
2016-01-24 08:34:21 +00:00
|
|
|
|
|
2018-04-17 07:32:43 +00:00
|
|
|
|
sp_zhugeliang:['male','shu',3,['huoji','bazhen','kanpo']],
|
2019-07-14 10:58:01 +00:00
|
|
|
|
pangtong:['male','shu',3,['lianhuan','oldniepan']],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
xunyu:['male','wei',3,['quhu','jieming']],
|
2019-11-09 13:20:13 +00:00
|
|
|
|
dianwei:['male','wei',4,['qiangxix']],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
taishici:['male','wu',4,['tianyi']],
|
|
|
|
|
yanwen:['male','qun',4,['shuangxiong']],
|
2019-07-14 10:58:01 +00:00
|
|
|
|
re_yuanshao:['male','qun',4,['luanji','xueyi'],['zhu']],
|
2016-01-24 08:34:21 +00:00
|
|
|
|
|
2019-11-07 14:42:15 +00:00
|
|
|
|
menghuo:['male','shu',4,['huoshou','zaiqixx']],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
zhurong:['female','shu',4,['juxiang','lieren']],
|
|
|
|
|
caopi:['male','wei',3,['xingshang','fangzhu','songwei'],['zhu']],
|
2019-07-14 10:58:01 +00:00
|
|
|
|
re_lusu:['male','wu',3,['haoshi','dimeng']],
|
|
|
|
|
sunjian:['male','wu',4,['gzyinghun']],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
dongzhuo:['male','qun',8,['jiuchi','roulin','benghuai','baonue'],['zhu']],
|
|
|
|
|
jiaxu:['male','qun',3,['luanwu','wansha','weimu']],
|
2016-01-24 08:34:21 +00:00
|
|
|
|
|
2018-04-17 07:32:43 +00:00
|
|
|
|
jiangwei:['male','shu',4,['tiaoxin','zhiji']],
|
|
|
|
|
liushan:['male','shu',3,['xiangle','fangquan','ruoyu'],['zhu']],
|
|
|
|
|
zhanghe:['male','wei',4,['qiaobian']],
|
|
|
|
|
dengai:['male','wei',4,['tuntian','zaoxian']],
|
|
|
|
|
sunce:['male','wu',4,['jiang','hunzi','zhiba'],['zhu']],
|
|
|
|
|
zhangzhang:['male','wu',3,['zhijian','guzheng']],
|
|
|
|
|
caiwenji:['female','qun',3,['beige','duanchang']],
|
|
|
|
|
zuoci:['male','qun',3,['huashen','xinsheng']],
|
2019-06-09 03:23:49 +00:00
|
|
|
|
|
|
|
|
|
wangji:['male','wei',3,['qizhi','jinqu']],
|
|
|
|
|
"yanyan":["male","shu",4,["nzry_juzhan"],[]],
|
|
|
|
|
"wangping":["male","shu",4,["nzry_feijun","nzry_binglve"],[]],
|
|
|
|
|
"luji":["male","wu",3,["nzry_huaiju","nzry_yili","nzry_zhenglun"],[]],
|
|
|
|
|
"sunliang":["male","wu",3,["nzry_kuizhu","nzry_zhizheng","nzry_lijun"],['zhu']],
|
|
|
|
|
"xuyou":["male","qun",3,["nzry_chenglve","nzry_shicai","nzry_cunmu"],[]],
|
2019-07-29 04:08:42 +00:00
|
|
|
|
"yl_luzhi":["male","qun",3,["nzry_mingren","nzry_zhenliang"],["die_audio"]],
|
2019-06-09 03:23:49 +00:00
|
|
|
|
"kuailiangkuaiyue":["male","wei",3,["nzry_jianxiang","nzry_shenshi"],[]],
|
2019-06-13 12:51:34 +00:00
|
|
|
|
|
2020-02-23 05:45:11 +00:00
|
|
|
|
guanqiujian:['male','wei',4,['zhengrong','hongju']],
|
2019-06-13 12:51:34 +00:00
|
|
|
|
"haozhao":["male","wei",4,["drlt_zhenggu"],[]],
|
|
|
|
|
"zhugezhan":["male","shu",3,["xinfu_zuilun","xinfu_fuyin"],[]],
|
|
|
|
|
"lukang":["male","wu",4,["drlt_qianjie","drlt_jueyan","drlt_poshi"],[]],
|
|
|
|
|
"yl_yuanshu":["male","qun",4,["drlt_yongsi","drlt_weidi"],["zhu"]],
|
|
|
|
|
"zhangxiu":["male","qun",4,["drlt_xiongluan","drlt_congjian"],[]],
|
|
|
|
|
"chendao":["male","shu",4,["drlt_wanglie"],[]],
|
2019-08-07 15:38:38 +00:00
|
|
|
|
zhoufei:["female","wu",3,["liangyin","kongsheng"],[]],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
perfectPair:{
|
2018-08-10 09:29:29 +00:00
|
|
|
|
jiaxu:['liqueguosi'],
|
2021-04-28 12:41:23 +00:00
|
|
|
|
re_yuanshao:['yanwen','tianfeng'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
menghuo:['zhurong'],
|
2020-10-20 13:54:19 +00:00
|
|
|
|
sp_zhugeliang:['pangtong','huangyueying'],
|
2018-08-10 15:48:28 +00:00
|
|
|
|
sunce:['zhouyu','taishici','daqiao'],
|
|
|
|
|
zuoci:['yuji'],
|
|
|
|
|
xunyu:['xunyou'],
|
2019-07-07 10:35:24 +00:00
|
|
|
|
lukang:['luxun'],
|
|
|
|
|
yuanshu:['jiling'],
|
|
|
|
|
zhangxiu:['jiaxu'],
|
|
|
|
|
wangping:['jiangfei'],
|
2021-10-18 10:34:20 +00:00
|
|
|
|
jiangwei:['xiahouba'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
characterFilter:{
|
|
|
|
|
zuoci:function(mode){
|
|
|
|
|
return mode!='guozhan';
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
characterIntro:{
|
|
|
|
|
huangzhong:'字汉升,今河南南阳人。汉末三国时期蜀汉名将。本为刘表部下中郎将,后归刘备,并助刘备攻益州刘璋,在定军山一战中阵斩曹操部下名将夏侯渊。备称汉中王后改封后将军,赐关内侯。',
|
|
|
|
|
weiyan:'字文长,义阳人。三国时期蜀汉名将,诸葛亮死后,魏延因被陷害谋反而遭杨仪一党所杀。',
|
|
|
|
|
xiahouyuan:'字妙才,沛国谯人。东汉末年曹操部下名将,夏侯惇之族弟,八虎骑之一。群雄征讨董卓时随曹操一同起兵,后征战四方,屡立功勋。在平定马超叛乱后负责西北防线的镇守。公元219年刘备攻打汉中,被刘备部将黄忠所杀。',
|
|
|
|
|
caoren:'字子孝,沛国谯人,曹操的从弟。三国时期曹魏名将,官至大司马。谥曰忠侯。',
|
|
|
|
|
xiaoqiao:'庐江皖县人也。父桥国老德尊于时。小乔国色流离,资貌绝伦。建安三年,周瑜协策攻皖,拔之。娶小乔为妻。后人谓英雄美女,天作之合。',
|
|
|
|
|
zhoutai:'字幼平,九江下蔡人,三国时期吴国武将。早年与蒋钦随孙策左右,立过数次战功。孙策讨伐六县山贼时,周泰胆气绝伦,保卫孙权,勇战退敌,身受十二处伤。有诗云:三番救主出重围,忠勇如公世所稀。遍体疮痍犹痛饮,血痕残酒满征衣。',
|
|
|
|
|
yuji:'自号太平道人,琅琊人,在吴郡、会稽一带为百姓治病,甚得人心。孙策怒之,以惑人心为由斩之,后策常受吉咒而亡。',
|
|
|
|
|
zhangjiao:'乱世的开始,黄巾起义军首领,太平道创始人。张角早年信奉黄老学说,对在汉代十分流行的谶纬之学也深有研究,对民间医术 、巫术也很熟悉。',
|
|
|
|
|
dianwei:'己吾城村人。东汉末年曹魏猛将。擅使大双戟,为人壮猛任侠,曾为乡人刘氏报仇,杀人出市,人莫敢近。相貌魁梧,膂力过人。建安二年(197),张绣背叛曹操,典韦为保护曹操而独挡叛军,击杀多人,但最终因寡不敌众而战死。',
|
|
|
|
|
xunyu:'荀彧,字文若,颍川颍阴(今河南许昌)人。东汉末年曹操帐下首席谋臣,杰出的战略家。自小被世人称作“王佐之才”。',
|
|
|
|
|
pangtong:'庞统,字士元,襄阳(治今湖北襄阳)人。三国时刘备帐下谋士,官拜军师中郎将。才智与诸葛亮齐名,人称“凤雏”。在进围雒县时,统率众攻城,不幸被流矢击中去世,时年三十六岁。追赐统为关内侯,谥曰靖侯。庞统死后,葬于落凤庞统墓坡。',
|
|
|
|
|
sp_zhugeliang:'字孔明,号卧龙居士,琅琊阳都人。刘备曾“三顾茅庐”得见卧龙。卧龙以一篇《隆中对》分析天下形势,提出先取荆州,再取益州成鼎足之势的说法。《三国演义》中的诸葛亮善用“火攻”,曾用火攻战术赢得多场战役,如“火烧赤壁”、“火烧博望坡”、“火烧藤甲兵”等。',
|
|
|
|
|
taishici:'太史慈,字子义,东莱黄县(今山东龙口东黄城集)人。东汉末年武将,守言应诺,恪遵信义,始终如一,弭息诽论。官至建昌都尉。弓马熟练,箭法精良。原为刘繇部下,后被孙策收降,于赤壁之战前病逝,死时才四十一岁。',
|
|
|
|
|
pangde:'字令明,东汉末年雍州南安郡狟道县(今甘肃天水市武山县四门镇)人。曹操部下重要将领。官至立义将军,拜关门亭侯。谥曰壮侯。有一子庞会。',
|
|
|
|
|
yanwen:'东汉末年河北袁绍部下武将,素有威名。颜良与文丑一起作为袁绍军队的勇将而闻名。建安四年(199),袁绍以颜良、文丑为将,率精卒十万,准备攻许都;次年,兵进黎阳,遣颜良攻白马。终均亡于关羽刀下。',
|
|
|
|
|
yuanshao:'字本初,汉族,汝南汝阳人,出身名门望族,自曾祖父起四代有五人位居三公,自己也居三公之上,其家族也因此有“四世三公”之称。曾于初平元年被推举为反董卓联合军的盟主,联军瓦解后,在汉末群雄割据的过程中,袁绍先占据冀州,又先后夺青、并二州,并于建安四年击败了割据幽州的军阀公孙瓒,势力达到顶点;但在建安五年的官渡之战中败于曹操。在平定冀州叛乱之后,于建安七年病死。',
|
|
|
|
|
xuhuang:'字公明,河东杨人。三国时期曹魏名将,本为杨奉帐下骑都尉,杨奉被曹操击败后转投曹操,在曹操手下多立功勋,参与官渡、赤壁、关中征伐、汉中征伐等几次重大战役。',
|
|
|
|
|
caopi:'字子桓,三国时期著名的政治家、文学家,曹魏的开国皇帝,公元220-226年在位。沛国谯人,魏武帝曹操与武宣卞皇后的长子。去世后庙号高祖,谥为文皇帝,葬于首阳陵。',
|
|
|
|
|
sunjian:'字文台,汉族,吴郡富春人。东汉末期地方军阀,著名将领。史书说他“容貌不凡,性阔达,好奇节”,是大军事家孙武的后裔。汉末群雄之一,三国中吴国的奠基人。孙权建国后,追谥孙坚为武烈皇帝。',
|
|
|
|
|
dongzhuo:'字仲颖,陇西临洮人。东汉末年少帝、献帝时权臣,西凉军阀。官至太师、郿侯。其为人残忍嗜杀,倒行逆施,招致群雄联合讨伐,但联合军在董卓迁都长安不久后瓦解。后被其亲信吕布所杀。',
|
|
|
|
|
zhurong:'据传为火神祝融氏后裔,南蛮王孟获之妻。武艺超群,善使飞刀,是《三国演义》中写到的唯一真正上过战场的女性。曾与孟获一起抵抗蜀军,在诸葛亮七擒七纵孟获之后,随孟获投降蜀汉。',
|
|
|
|
|
menghuo:'中国三国时期南中少数族首领。系东汉末益州建宁郡( 今云南晋宁东 )大姓,身材肥硕。生卒年不详。官至御史中丞。曾被诸葛亮七擒七纵,传为佳话。',
|
|
|
|
|
jiaxu:'字文和,武威姑臧人。三国时期魏国著名谋士。曾先后担任三国军阀李傕、张绣、曹操的谋士。官至魏国太尉,谥曰肃侯。',
|
|
|
|
|
lusu:'字子敬,汉族,临淮东城人,中国东汉末年东吴的著名军事统帅。他曾为孙权提出鼎足江东的战略规划,因此得到孙权的赏识,于周瑜死后代替周瑜领兵,守陆口。曾单刀赴会关羽于荆州。',
|
|
|
|
|
zhanghe:'字儁乂,河间鄚人。三国时期魏国名将。官渡之战时,本为袁绍部将的张郃投降了曹操,并在曹操帐下多立功勋,于曹魏建立后加封为征西车骑将军。诸葛亮六出祁山之间,张郃多次抵御蜀军的进攻,于公元231年在木门道被诸葛亮设伏射死。后谥曰壮侯。为曹魏“五子良将”之一。',
|
|
|
|
|
dengai:'字士载,义阳棘阳人。三国时期魏国杰出的军事家、将领。公元263年他与钟会分别率军攻打蜀汉,最后他率先进入成都,使得蜀汉灭亡。后因遭到钟会的污蔑和陷害,被司马昭猜忌而被收押,最后与其子邓忠一起被卫瓘派遣的武将田续所杀害。',
|
|
|
|
|
jiangwei:'字伯约,天水冀人。三国时期蜀汉著名将领、军事统帅。原为曹魏天水郡的中郎将,后降蜀汉,官至凉州刺史、大将军。诸葛亮去世后继承诸葛亮的遗志,继续率领蜀汉军队北伐曹魏,与曹魏名将陈泰、郭淮、邓艾等多次交手。',
|
|
|
|
|
liushan:'蜀汉后主,字公嗣。小名阿斗。刘备之子,母亲是昭烈皇后甘氏。三国时期蜀汉第二位皇帝,公元223-263年在位。公元263年蜀汉被曹魏所灭,刘禅投降曹魏,被封为安乐公。',
|
|
|
|
|
sunce:'字伯符,吴郡富春人。孙坚长子,孙权长兄。东汉末年割据江东一带的军阀,汉末群雄之一,三国时期吴国的奠基者。三国演义中绰号“小霸王”,统一江东。在一次狩猎中为刺客所伤,不久后身亡,年仅二十六岁。其弟孙权接掌孙策势力,并于称帝后,追谥孙策为长沙桓王。',
|
|
|
|
|
zhangzhang:'张昭,字子布,彭城人,三国时期吴国重臣,善丹青。拜辅吴将军,班亚三司,改封娄侯。年八十一卒,谥曰文侯。张纮,字子纲,广陵人。东吴谋士,和张昭一起合称“二张”。孙策平定江东时亲自登门邀请,张纮遂出仕为官。张纮后来建议孙权迁都秣陵,孙权正在准备时张纮病逝,其年六十岁。孙权为之流涕。',
|
|
|
|
|
zuoci:'左慈,字元放,东汉末方士,汉族,庐江(今安徽庐江西南)人。在道教历史上,东汉时期的丹鼎派道术是从他一脉相传。',
|
|
|
|
|
caiwenji:'名琰,原字昭姬,晋时避司马昭讳,改字文姬,东汉末年陈留圉(今河南开封杞县)人,东汉大文学家蔡邕的女儿,是中国历史上著名的才女和文学家,精于天文数理,既博学能文,又善诗赋,兼长辩才与音律。代表作有《胡笳十八拍》、《悲愤诗》等 。',
|
2019-06-09 03:23:49 +00:00
|
|
|
|
|
|
|
|
|
"yanyan":"严颜,东汉末年武将,初为刘璋部下,担任巴郡太守。建安十九年,刘备进攻江州,严颜战败被俘,张飞对严颜说:“大军至,何以不降而敢拒战?”,严颜回答说:“卿等无状,侵夺我州,我州但有断头将军,无降将军也!”,张飞生气,命左右将严颜牵去砍头,严颜表情不变地说:“砍头便砍头,何为怒邪!”张飞敬佩严颜的勇气,遂释放严颜并以严颜为宾客,之后的事迹不在正史中出现。",
|
|
|
|
|
"wangping":"王平,字子均,巴西宕渠(今四川省渠县东北)人,籍贯益州。三国时蜀汉后期大将。原属曹操,曹操与刘备争汉中,得以投降刘备。诸葛亮第一次北伐时与马谡一同守街亭,之后深受诸葛亮的器重,率领蜀汉的王牌军队无当飞军,多次随诸葛亮北伐。诸葛亮死后,拜前监军、镇北大将军,镇守汉中,曹爽率领十万大军攻汉中时,被王平所击退,累封安汉侯。延熙十一年,王平去世,其子王训继承了爵位。",
|
|
|
|
|
"luji":"陆绩(公元188年-公元219年),字公纪,吴郡吴县(今苏州)人,汉末庐江太守陆康之子。陆绩成年后,博学多识,通晓天文、历算,星历算数无不涉览。孙权征其为奏曹掾,常以直道见惮。后出为郁林太守,加偏将军。在军中不废著作,曾作《浑天图》,注《易经》,撰写《太玄经注》。",
|
|
|
|
|
"sunliang":"孙亮(243-260年),字子明,吴郡富春(今浙江杭州富阳区)人。三国时期吴国的第二位皇帝,公元252-258年在位。吴大帝孙权第七子,母潘皇后。史称吴少帝、吴废帝、会稽王。建兴元年(252年),十岁登基为帝,太平二年(257年),十五岁亲政,但一年后(258年)就被权臣孙綝废为会稽王。永安三年(260年),孙亮再被贬为候官侯,在前往封地途中自杀(一说被毒杀),终年18岁。西晋太康年间,原先任职吴国的官员戴显将孙亮的遗骨葬在赖乡。",
|
|
|
|
|
"xuyou":"许攸(?-204年),字子远,南阳(治今河南南阳)人。本为袁绍帐下谋士,官渡之战时其家人因犯法而被收捕,许攸因此背袁投曹,并为曹操设下偷袭袁绍军屯粮之所乌巢的计策,袁绍因此而大败于官渡。后许攸随曹操平定冀州,因自恃其功而屡屡口出狂言,终因触怒曹操而被杀。",
|
|
|
|
|
"yl_luzhi":"卢植(139年—192年),字子干。涿郡涿县(今河北涿州)人。东汉末年经学家、将领。卢植性格刚毅,师从太尉陈球、大儒马融等,为郑玄、管宁、华歆的同门师兄。曾先后担任九江、庐江太守,平定蛮族叛乱。后与马日磾、蔡邕等一起在东观校勘儒学经典书籍,并参与续写《汉记》。黄巾起义时为北中郎将,率军与张角交战,后被诬陷下狱,皇甫嵩平定黄巾后力救卢植,于是复任为尚书。后因上谏激怒董卓被免官,隐居在上谷军都山,被袁绍请为军师。初平三年(192年)去世。著有《尚书章句》、《三礼解诂》等,今皆失佚。唐代时配享孔子,北宋时被追封为良乡伯。白马将军公孙瓒以及后来的蜀汉昭烈帝刘备皆为卢植门下弟子。范阳卢氏后来也成为著名的家族。",
|
|
|
|
|
"kuailiangkuaiyue":"蒯(kuǎi)良,字子柔,襄阳中庐人。归刘表。蒯良为刘表定下安抚荆楚的政治方向,佐其成业,被刘表誉为“雍季之论”。之后,蒯良就被刘表擢升为主簿(bù)。其后蒯良的生平,就不得而知了,《三国志》亦没有记载其卒年。与蒯越、以及同样活跃于襄阳的蒯祺(诸葛亮姐夫)或为同族兄弟。蒯越(?-214年),字异度,襄阳中庐(今湖北襄阳西南)人。东汉末期人物,演义中为蒯良之弟。原本是荆州牧刘表的部下,曾经在刘表初上任时帮助刘表铲除荆州一带的宗贼(以宗族、乡里关系组成的武装集团)。刘表病逝后与刘琮一同投降曹操,后来官至光禄勋。",
|
2019-06-13 12:51:34 +00:00
|
|
|
|
|
|
|
|
|
"guanqiujian":"毌丘俭,字仲恭,河东闻喜(今山西闻喜县)人。三国时期曹魏后期的重要将领。继承父毌丘兴爵位高阳乡侯,任平原侯文学。魏明帝即位后,上疏劝魏明帝停止加建皇宫的工程,升为荆州刺史。景初二年(238年)从司马懿攻灭公孙渊;正始五年(244年)至正始六年(245年)两次率兵征讨高句丽,攻破丸都,几亡其国,刻石纪功而还;253年击退吴国诸葛恪的大举进犯,战功累累。司马师废帝,毌丘俭感昔日魏明帝之恩,为曹魏政权做拼死一搏,于正元二年(255年)发动兵变,即后人所谓“淮南三叛”(王淩、毌丘俭、诸葛诞)之一,惜准备不足,兵败身亡。",
|
|
|
|
|
"haozhao":"郝昭(生卒年不详),字伯道,太原人,中国东汉末年至曹魏初年著名将领。郝昭少年从军,屡立战功,逐渐晋升为杂号将军,后受曹真的推荐镇守陈仓(在小说三国演义中是司马懿推荐),防御蜀汉。太和二年(228年),诸葛亮率军北伐,为郝昭所阻,劝降不成,昼夜相攻二十余日后被迫退军。魏明帝因此封其为关内侯。不久因染疾而病死。",
|
|
|
|
|
"zhugezhan":"诸葛瞻,字思远,琅邪阳都(今山东沂南县)人。三国时期蜀汉大臣,蜀汉丞相诸葛亮之子。邓艾伐蜀时,他与长子诸葛尚及蜀将张遵、李球、黄崇等人防御绵竹(今四川德阳),因不听黄崇速占险要的建议而坐失良机,后来出城与邓艾决战,在交战时阵亡,绵竹也随后失守。",
|
2019-08-30 15:02:50 +00:00
|
|
|
|
"zhoufei":"周妃(210年?—?),一说本名周彻。周瑜独女,生母无载,疑为汉末美女小乔,因嫁孙登为太子妃,故称周妃。周瑜英年早逝,其遗孤都得到孙权厚遇,除却她本人在黄武四年(225年)嫁予太子外,兄长周循亦娶孙权长女孙鲁班为妻。",
|
2019-06-13 12:51:34 +00:00
|
|
|
|
"lukang":"陆抗,字幼节,吴郡吴县(今江苏苏州)人。三国时期吴国名将,丞相陆逊次子。陆抗袭父爵为江陵侯,为建武校尉,领其父众五千人。后迁立节中郎将、镇军将军等。孙皓为帝,任镇军大将军、都督西陵、信陵、夷道、乐乡、公安诸军事,驻乐乡(今湖北江陵西南)。凤凰元年(272年),击退晋将羊祜进攻,并攻杀叛将西陵督步阐。后拜大司马、荆州牧,卒于官,终年49岁。与陆逊皆是吴国的中流砥柱,并称“逊抗 ”,被誉为吴国最后的名将。",
|
|
|
|
|
"zhangxiu":"张绣,武威祖厉(今甘肃靖远)人。骠骑将军张济的从子。东汉末年割据宛城的军阀,汉末群雄之一。初随张济征伐,张济死后与刘表联合。后降曹操,因曹操调戏其嫂而突袭曹操,复与刘表连和。官渡之战前夕,听从贾诩的建议再次投降曹操,参加官渡之战,官至破羌将军,封宣威侯。在北征乌桓(207年)途中去世(一说为曹丕逼死),谥定侯。",
|
|
|
|
|
"chendao":"陈到,字叔至,生卒年不详,豫州汝南(今河南驻马店平舆县)人。三国时期蜀汉将领,刘备帐下白毦兵统领,名位常亚于赵云,以忠勇著称。蜀汉建兴年间,任征西将军、永安都督,封亭侯。在任期间去世。",
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
skill:{
|
2020-02-23 05:45:11 +00:00
|
|
|
|
//新毌丘俭
|
|
|
|
|
zhengrong:{
|
|
|
|
|
trigger:{player:'useCardToPlayered'},
|
|
|
|
|
direct:true,
|
|
|
|
|
audio:'drlt_zhenrong',
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(!event.isFirstTarget) return false;
|
|
|
|
|
if(!['basic','trick'].contains(get.type(event.card))) return false;
|
|
|
|
|
if(get.tag(event.card,'damage')) return game.hasPlayer(function(current){
|
|
|
|
|
return event.targets.contains(current)&¤t.countCards('h')>=player.countCards('h')&¤t.countCards('he')>0;
|
|
|
|
|
});
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.chooseTarget(get.prompt('zhengrong'),'将一名手牌数不小于你的目标角色的一张牌置于你的武将牌上,成为「荣」',function(card,player,target){
|
|
|
|
|
return _status.event.targets.contains(target)&&target.countCards('h')>=player.countCards('h')&&target.countCards('he')>0;
|
|
|
|
|
}).set('ai',function(target){
|
|
|
|
|
return (1-get.attitude(_status.event.player,target))/target.countCards('he');
|
|
|
|
|
}).set('targets',trigger.targets);
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
var target=result.targets[0];
|
|
|
|
|
event.target=result.targets[0];
|
|
|
|
|
player.logSkill('zhengrong',target);
|
2020-05-23 04:37:37 +00:00
|
|
|
|
player.choosePlayerCard(target,'he',true).ai=get.buttonValue;
|
2020-02-23 05:45:11 +00:00
|
|
|
|
}
|
|
|
|
|
else event.finish();
|
|
|
|
|
'step 2'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
var card=result.links[0];
|
2022-04-10 16:34:02 +00:00
|
|
|
|
player.addToExpansion(card,'give','log',target).gaintag.add('zhengrong');
|
2020-02-23 05:45:11 +00:00
|
|
|
|
}
|
2022-04-10 16:34:02 +00:00
|
|
|
|
},
|
|
|
|
|
onremove:function(player,skill){
|
|
|
|
|
var cards=player.getExpansions(skill);
|
|
|
|
|
if(cards.length) player.loseToDiscardpile(cards);
|
2020-02-23 05:45:11 +00:00
|
|
|
|
},
|
|
|
|
|
marktext:'荣',
|
|
|
|
|
intro:{
|
2022-04-10 16:34:02 +00:00
|
|
|
|
content:'expansion',
|
|
|
|
|
markcount:'expansion',
|
2020-02-23 05:45:11 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
hongju:{
|
|
|
|
|
trigger:{player:'phaseZhunbeiBegin'},
|
|
|
|
|
audio:'drlt_hongju',
|
|
|
|
|
forced:true,
|
|
|
|
|
unique:true,
|
|
|
|
|
juexingji:true,
|
|
|
|
|
skillAnimation:true,
|
|
|
|
|
animationColor:'thunder',
|
|
|
|
|
derivation:'qingce',
|
|
|
|
|
filter:function(event,player){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
return player.getExpansions('zhengrong').length>=3;
|
2020-02-23 05:45:11 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.awakenSkill('hongju');
|
2022-04-10 16:34:02 +00:00
|
|
|
|
var cards=player.getExpansions('zhengrong');
|
2021-12-09 13:57:51 +00:00
|
|
|
|
if(!cards.length||!player.countCards('h')){
|
2022-01-15 06:12:01 +00:00
|
|
|
|
event.goto(2);
|
2021-12-09 13:57:51 +00:00
|
|
|
|
return;
|
2020-02-23 05:45:11 +00:00
|
|
|
|
}
|
2021-12-09 13:57:51 +00:00
|
|
|
|
var next=player.chooseToMove('征荣:是否交换“荣”和手牌?');
|
|
|
|
|
next.set('list',[
|
|
|
|
|
[get.translation(player)+'(你)的“荣”',cards],
|
|
|
|
|
['手牌区',player.getCards('h')],
|
|
|
|
|
]);
|
|
|
|
|
next.set('filterMove',function(from,to){
|
|
|
|
|
return typeof to!='number';
|
|
|
|
|
});
|
|
|
|
|
next.set('processAI',function(list){
|
|
|
|
|
var player=_status.event.player,cards=list[0][1].concat(list[1][1]).sort(function(a,b){
|
|
|
|
|
return get.value(a)-get.value(b);
|
2022-04-10 16:34:02 +00:00
|
|
|
|
}),cards2=cards.splice(0,player.getExpansions('zhengrong').length);
|
2021-12-09 13:57:51 +00:00
|
|
|
|
return [cards2,cards];
|
|
|
|
|
});
|
2020-02-23 05:45:11 +00:00
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
2021-12-09 13:57:51 +00:00
|
|
|
|
var pushs=result.moved[0],gains=result.moved[1];
|
2022-04-10 16:34:02 +00:00
|
|
|
|
pushs.removeArray(player.getExpansions('zhengrong'));
|
2021-12-09 13:57:51 +00:00
|
|
|
|
gains.removeArray(player.getCards('h'));
|
|
|
|
|
if(!pushs.length||pushs.length!=gains.length) return;
|
2022-04-10 16:34:02 +00:00
|
|
|
|
player.addToExpansion(pushs).gaintag.add('zhengrong');
|
|
|
|
|
player.gain(gains,'gain2','log');
|
2020-02-23 05:45:11 +00:00
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
player.addSkill('qingce');
|
|
|
|
|
game.log(player,'获得了技能','#g【清侧】');
|
|
|
|
|
player.loseMaxHp();
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
qingce:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
audio:'drlt_qingce',
|
|
|
|
|
filter:function(event,player){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
return player.getExpansions('zhengrong').length>0&&player.countCards('h')>0;
|
2020-02-23 05:45:11 +00:00
|
|
|
|
},
|
|
|
|
|
chooseButton:{
|
|
|
|
|
dialog:function(event,player){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
return ui.create.dialog('请选择要获得的「荣」',player.getExpansions('zhengrong'),'hidden');
|
2020-02-23 05:45:11 +00:00
|
|
|
|
},
|
|
|
|
|
backup:function(links,player){
|
|
|
|
|
return {
|
|
|
|
|
card:links[0],
|
2020-03-05 13:10:37 +00:00
|
|
|
|
filterCard:true,
|
2020-03-13 10:02:18 +00:00
|
|
|
|
position:'h',
|
2020-03-05 13:10:37 +00:00
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target.countDiscardableCards(player,'ej')>0;
|
|
|
|
|
},
|
2020-03-07 14:00:26 +00:00
|
|
|
|
delay:false,
|
2020-03-13 10:02:18 +00:00
|
|
|
|
audio:'drlt_qingce',
|
2020-02-23 05:45:11 +00:00
|
|
|
|
content:lib.skill.qingce.contentx,
|
2020-03-05 13:10:37 +00:00
|
|
|
|
ai:{
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
var att=get.attitude(player,target);
|
|
|
|
|
if(att>0&&(target.countCards('j')>0||target.countCards('e',function(card){
|
|
|
|
|
return get.value(card,target)<0;
|
|
|
|
|
}))) return 2;
|
|
|
|
|
if(att<0&&target.countCards('e')>0&&!target.hasSkillTag('noe')) return -1;
|
|
|
|
|
return 0;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-02-23 05:45:11 +00:00
|
|
|
|
}
|
2020-03-05 13:10:37 +00:00
|
|
|
|
},
|
|
|
|
|
prompt:function(links,player){
|
2020-04-25 05:40:05 +00:00
|
|
|
|
return '选择弃置一张手牌,获得'+get.translation(links[0])+'并弃置一名角色装备区或判定区内的一张牌';
|
2020-03-05 13:10:37 +00:00
|
|
|
|
},
|
2020-02-23 05:45:11 +00:00
|
|
|
|
},
|
|
|
|
|
contentx:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var card=lib.skill.qingce_backup.card;
|
2022-04-10 16:34:02 +00:00
|
|
|
|
player.gain(card,'gain2','log');
|
2020-02-23 05:45:11 +00:00
|
|
|
|
'step 1'
|
2020-03-05 13:10:37 +00:00
|
|
|
|
if(target.countDiscardableCards(player,'ej')>0){
|
|
|
|
|
player.discardPlayerCard('ej',true,target);
|
2020-02-23 05:45:11 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:8,
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player){
|
|
|
|
|
if(game.hasPlayer(function(current){
|
|
|
|
|
var att=get.attitude(player,current);
|
|
|
|
|
if((att>0&¤t.countCards('j')>0)||(att<0&¤t.countCards('e')>0)) return true;
|
|
|
|
|
return false;
|
|
|
|
|
})) return 1;
|
|
|
|
|
return 0;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2019-06-09 03:23:49 +00:00
|
|
|
|
//阴雷
|
2019-06-13 12:51:34 +00:00
|
|
|
|
"drlt_zhenrong":{
|
2019-08-24 15:41:12 +00:00
|
|
|
|
marktext:"荣",
|
|
|
|
|
intro:{
|
2022-04-10 16:34:02 +00:00
|
|
|
|
content:'expansion',
|
|
|
|
|
markcount:'expansion',
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
2019-10-09 14:31:43 +00:00
|
|
|
|
source:'damageSource',
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.player!=player&&event.player.countCards('h')>player.countCards('h');
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
content:function(){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'step 0'
|
|
|
|
|
player.choosePlayerCard('hej',get.prompt('drlt_zhenrong'),trigger.player).set('ai',function(button){
|
|
|
|
|
return -get.attitude(player,trigger.player)+1;
|
|
|
|
|
});
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result&&result.links&&result.links.length){
|
|
|
|
|
player.line(player,trigger.player);
|
|
|
|
|
player.logSkill('drlt_zhenrong');
|
2022-04-10 16:34:02 +00:00
|
|
|
|
player.addToExpansion(result.links,trigger.player,'give','log').gaintag.add('drlt_zhengrong');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"drlt_hongju":{
|
|
|
|
|
skillAnimation:true,
|
2019-09-15 14:45:05 +00:00
|
|
|
|
animationColor:'thunder',
|
2019-08-24 15:41:12 +00:00
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
2019-11-22 05:19:45 +00:00
|
|
|
|
player:'phaseZhunbeiBegin',
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
unique:true,
|
|
|
|
|
juexingji:true,
|
|
|
|
|
derivation:['drlt_qingce'],
|
|
|
|
|
filter:function(event,player){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
return player.getExpansions('drlt_zhengrong').length>=3&&game.dead.length>0;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2022-04-10 16:34:02 +00:00
|
|
|
|
player.awakenSkill('drlt_hongju');
|
|
|
|
|
var cards=player.getExpansions('drlt_zhengrong');
|
|
|
|
|
if(!cards.length||!player.countCards('h')){
|
|
|
|
|
event.goto(2);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var next=player.chooseToMove('征荣:是否交换“荣”和手牌?');
|
|
|
|
|
next.set('list',[
|
|
|
|
|
[get.translation(player)+'(你)的“荣”',cards],
|
|
|
|
|
['手牌区',player.getCards('h')],
|
|
|
|
|
]);
|
|
|
|
|
next.set('filterMove',function(from,to){
|
|
|
|
|
return typeof to!='number';
|
|
|
|
|
});
|
|
|
|
|
next.set('processAI',function(list){
|
|
|
|
|
var player=_status.event.player,cards=list[0][1].concat(list[1][1]).sort(function(a,b){
|
|
|
|
|
return get.value(a)-get.value(b);
|
|
|
|
|
}),cards2=cards.splice(0,player.getExpansions('drlt_zhengrong').length);
|
|
|
|
|
return [cards2,cards];
|
|
|
|
|
});
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
var pushs=result.moved[0],gains=result.moved[1];
|
|
|
|
|
pushs.removeArray(player.getExpansions('drlt_zhengrong'));
|
|
|
|
|
gains.removeArray(player.getCards('h'));
|
|
|
|
|
if(!pushs.length||pushs.length!=gains.length) return;
|
|
|
|
|
player.addToExpansion(pushs).gaintag.add('drlt_zhengrong');
|
|
|
|
|
player.gain(gains,'gain2','log');
|
|
|
|
|
}
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'step 2'
|
2022-04-10 16:34:02 +00:00
|
|
|
|
player.addSkillLog('drlt_qingce');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
player.loseMaxHp();
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
'drlt_qingce':{
|
|
|
|
|
audio:2,
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.storage.drlt_zhenrong&&player.storage.drlt_zhenrong.length>0;
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
2020-02-23 05:45:11 +00:00
|
|
|
|
return target.countDiscardableCards(player,'ej')>0;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.chooseCardButton(player.storage.drlt_zhenrong,1,'请选择需要弃置的“荣”',true).ai=function(button){
|
|
|
|
|
return 6-get.value(button.link);
|
|
|
|
|
};
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
var cards=result.links;
|
|
|
|
|
for(var i=0;i<cards.length;i++){
|
|
|
|
|
player.storage.drlt_zhenrong.remove(cards[i]);
|
|
|
|
|
};
|
|
|
|
|
player.syncStorage('drlt_zhenrong');
|
|
|
|
|
player.$throw(cards);
|
2020-02-23 05:45:11 +00:00
|
|
|
|
player.discardPlayerCard(target,'ej',1,true);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:13,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
if(get.attitude(player,target)>0&&target.countCards('j')>0) return 1;
|
|
|
|
|
return -1;
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"drlt_zhenggu":{
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
2019-11-22 05:19:45 +00:00
|
|
|
|
player:"phaseJieshuBegin",
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2019-08-30 15:02:50 +00:00
|
|
|
|
player.chooseTarget(get.prompt2('drlt_zhenggu'),function(card,player,target){
|
2020-04-29 05:59:50 +00:00
|
|
|
|
//if(target.storage.drlt_zhenggu_mark&&target.storage.drlt_zhenggu_mark.contains(player)) return false;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return target!=player;
|
2020-04-29 05:59:50 +00:00
|
|
|
|
}).set('ai',function(target){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
var player=_status.event.player;
|
2020-04-29 05:59:50 +00:00
|
|
|
|
//if(target.storage.drlt_zhenggu_mark&&target.storage.drlt_zhenggu_mark.contains(player)) return 0;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
var num=(Math.min(5,player.countCards('h'))-target.countCards('h'));
|
|
|
|
|
var att=get.attitude(player,target);
|
|
|
|
|
return num*att;
|
2020-04-29 05:59:50 +00:00
|
|
|
|
});
|
2019-08-24 15:41:12 +00:00
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
var target=result.targets[0];
|
|
|
|
|
player.logSkill('drlt_zhenggu',target);
|
2020-03-23 09:11:24 +00:00
|
|
|
|
player.addSkill("drlt_zhenggu2");
|
|
|
|
|
target.addSkill("drlt_zhenggu_mark");
|
|
|
|
|
target.storage.drlt_zhenggu_mark.push(player);
|
|
|
|
|
target.markSkill("drlt_zhenggu_mark");
|
|
|
|
|
lib.skill.drlt_zhenggu.sync(player,target);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
sync:function(player,target){
|
|
|
|
|
var num=player.countCards('h');
|
|
|
|
|
var num2=target.countCards('h');
|
|
|
|
|
if(num<num2){
|
|
|
|
|
target.chooseToDiscard(num2-num,true,'h');
|
|
|
|
|
}
|
|
|
|
|
else target.drawTo(Math.min(5,num));
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"drlt_zhenggu2":{
|
2020-03-23 09:11:24 +00:00
|
|
|
|
audio:"drlt_zhenggu",
|
2019-08-24 15:41:12 +00:00
|
|
|
|
trigger:{
|
2020-03-23 09:11:24 +00:00
|
|
|
|
global:"phaseEnd",
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
forced:true,
|
2020-03-23 09:11:24 +00:00
|
|
|
|
charlotte:true,
|
|
|
|
|
logTarget:"player",
|
2019-08-24 15:41:12 +00:00
|
|
|
|
filter:function(event,player){
|
2020-03-23 09:11:24 +00:00
|
|
|
|
return event.player.storage.drlt_zhenggu_mark&&event.player.storage.drlt_zhenggu_mark.contains(player);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2020-04-29 05:59:50 +00:00
|
|
|
|
while(trigger.player.storage.drlt_zhenggu_mark.contains(player)){
|
|
|
|
|
trigger.player.storage.drlt_zhenggu_mark.remove(player);
|
|
|
|
|
}
|
2020-03-23 09:11:24 +00:00
|
|
|
|
if(trigger.player.storage.drlt_zhenggu_mark.length==0) trigger.player.unmarkSkill('drlt_zhenggu_mark');
|
|
|
|
|
lib.skill.drlt_zhenggu.sync(player,trigger.player);
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
drlt_zhenggu_mark:{
|
|
|
|
|
init:function(player,skill){
|
|
|
|
|
if(!player.storage[skill]) player.storage[skill]=[];
|
|
|
|
|
},
|
|
|
|
|
marktext:'镇',
|
|
|
|
|
intro:{
|
|
|
|
|
name:'镇骨',
|
|
|
|
|
content:'已成为$〖镇骨〗的目标',
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"xinfu_zuilun":{
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
2019-11-22 05:19:45 +00:00
|
|
|
|
player:"phaseJieshuBegin",
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
check:function(event,player){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
var num=0;
|
2021-12-09 13:57:51 +00:00
|
|
|
|
if(player.hasHistory('lose',function(evt){
|
2020-02-14 05:33:43 +00:00
|
|
|
|
return evt.type=='discard';
|
2021-12-09 13:57:51 +00:00
|
|
|
|
})) num++;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
if(!player.isMinHandcard()) num++;
|
|
|
|
|
if(!player.getStat('damage')) num++;
|
|
|
|
|
if(num==3) return player.hp>=2;
|
2020-02-14 05:33:43 +00:00
|
|
|
|
return true;
|
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
prompt:function(event,player){
|
2020-02-14 05:33:43 +00:00
|
|
|
|
var num=3;
|
2021-12-09 13:57:51 +00:00
|
|
|
|
if(player.hasHistory('lose',function(evt){
|
2020-02-14 05:33:43 +00:00
|
|
|
|
return evt.type=='discard';
|
2021-12-09 13:57:51 +00:00
|
|
|
|
})) num--;
|
2020-02-14 05:33:43 +00:00
|
|
|
|
if(!player.isMinHandcard()) num--;
|
|
|
|
|
if(!player.getStat('damage')) num--;
|
|
|
|
|
return get.prompt('xinfu_zuilun')+'(可获得'+get.cnNumber(num)+'张牌)'
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
content:function(){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'step 0'
|
|
|
|
|
event.num=0;
|
|
|
|
|
event.cards=get.cards(3);
|
2021-12-09 13:57:51 +00:00
|
|
|
|
game.cardsGotoOrdering(cards);
|
|
|
|
|
if(player.hasHistory('lose',function(evt){
|
2020-02-14 05:33:43 +00:00
|
|
|
|
return evt.type=='discard';
|
2021-12-09 13:57:51 +00:00
|
|
|
|
})) event.num++;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
if(!player.isMinHandcard()) event.num++;
|
|
|
|
|
if(!player.getStat('damage')) event.num++;
|
|
|
|
|
'step 1'
|
|
|
|
|
if(event.num==0){
|
|
|
|
|
player.gain(event.cards,'draw');
|
|
|
|
|
event.finish();
|
2021-12-09 13:57:51 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
var prompt='罪论:将'+get.cnNumber(num)+'牌置于牌堆顶';
|
|
|
|
|
if(num<3) prompt+='并获得其余的牌';
|
|
|
|
|
var next=player.chooseToMove(prompt,true);
|
|
|
|
|
if(num<3){
|
|
|
|
|
next.set('list',[
|
|
|
|
|
['牌堆顶',cards],
|
|
|
|
|
['获得'],
|
|
|
|
|
]);
|
|
|
|
|
next.set('filterMove',function(from,to,moved){
|
|
|
|
|
if(to==1&&moved[0].length<=_status.event.num) return false;
|
|
|
|
|
return true;
|
|
|
|
|
});
|
|
|
|
|
next.set('filterOk',function(moved){
|
|
|
|
|
return moved[0].length==_status.event.num;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
next.set('list',[
|
|
|
|
|
['牌堆顶',cards],
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
next.set('num',num);
|
|
|
|
|
next.set('processAI',function(list){
|
|
|
|
|
var check=function(card){
|
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
var next=player.next;
|
|
|
|
|
var att=get.attitude(player,next);
|
|
|
|
|
var judge=next.getCards('j')[tops.length];
|
|
|
|
|
if(judge){
|
|
|
|
|
return get.judge(judge)(card)*att;
|
|
|
|
|
}
|
|
|
|
|
return next.getUseValue(card)*att;
|
|
|
|
|
}
|
|
|
|
|
var cards=list[0][1].slice(0),tops=[];
|
|
|
|
|
while(tops.length<_status.event.num){
|
|
|
|
|
list.sort(function(a,b){
|
|
|
|
|
return check(b)-check(a);
|
|
|
|
|
});
|
|
|
|
|
tops.push(cards.shift());
|
2020-11-20 06:06:26 +00:00
|
|
|
|
}
|
2021-12-09 13:57:51 +00:00
|
|
|
|
return [tops,cards];
|
2019-08-24 15:41:12 +00:00
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
if(result.bool){
|
2021-12-09 13:57:51 +00:00
|
|
|
|
var list=result.moved[0];
|
2019-08-24 15:41:12 +00:00
|
|
|
|
var num=list.length-1;
|
|
|
|
|
for(var i=0;i<list.length;i++){
|
|
|
|
|
event.cards.remove(list[num-i]);
|
|
|
|
|
ui.cardPile.insertBefore(list[num-i],ui.cardPile.firstChild);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
'step 3'
|
|
|
|
|
game.updateRoundNumber();
|
|
|
|
|
if(event.cards.length){
|
|
|
|
|
player.gain(event.cards,'draw');
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.chooseTarget('请选择一名角色,与其一同失去1点体力',true,function(card,player,target){
|
|
|
|
|
return target!=player;
|
|
|
|
|
}).ai=function(target){
|
|
|
|
|
return -get.attitude(_status.event.player,target);
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
'step 4'
|
|
|
|
|
player.line(result.targets[0],'fire');
|
|
|
|
|
player.loseHp();
|
|
|
|
|
result.targets[0].loseHp();
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"xinfu_fuyin":{
|
|
|
|
|
trigger:{
|
2019-10-24 04:55:01 +00:00
|
|
|
|
target:"useCardToTargeted",
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
audio:2,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
if(event.player.countCards('h')<player.countCards('h')) return false;
|
2020-03-27 05:30:48 +00:00
|
|
|
|
if(event.card.name!='sha'&&event.card.name!='juedou') return false;
|
2020-03-25 12:27:23 +00:00
|
|
|
|
return !game.hasPlayer2(function(current){
|
|
|
|
|
return current.getHistory('useCard',function(evt){
|
|
|
|
|
return evt!=event.getParent()&&evt.card&&['sha','juedou'].contains(evt.card.name)&&evt.targets.contains(player);
|
|
|
|
|
}).length>0;
|
|
|
|
|
});
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
content:function(){
|
2019-10-24 04:55:01 +00:00
|
|
|
|
trigger.getParent().excluded.add(player);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"drlt_qianjie":{
|
|
|
|
|
group:["drlt_qianjie_1","drlt_qianjie_2","drlt_qianjie_3"],
|
2019-12-07 12:48:38 +00:00
|
|
|
|
locked:true,
|
2020-01-22 06:04:55 +00:00
|
|
|
|
ai:{
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card){
|
|
|
|
|
if(card.name=='tiesuo') return 'zeroplayertarget';
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
subSkill:{
|
|
|
|
|
'1':{
|
2019-06-13 12:51:34 +00:00
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
2019-08-24 15:41:12 +00:00
|
|
|
|
player:'linkBegin'
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
|
|
|
|
forced:true,
|
2020-09-06 06:22:50 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !player.isLinked();
|
|
|
|
|
},
|
2019-06-13 12:51:34 +00:00
|
|
|
|
content:function(){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
trigger.cancel();
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'2':{
|
|
|
|
|
mod:{
|
|
|
|
|
targetEnabled:function(card,player,target){
|
|
|
|
|
if(get.type(card)=='delay') return false;
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'3':{
|
|
|
|
|
ai:{noCompareTarget:true,},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
'drlt_jueyan':{
|
|
|
|
|
audio:2,
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.storage.disableEquip!=undefined&&player.storage.disableEquip.length<5;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.chooseToDisable(true).set('ai',function(event,player,list){
|
|
|
|
|
if(list.contains('equip2')) return 'equip2';
|
2020-06-20 04:53:15 +00:00
|
|
|
|
if(list.contains('equip1')&&(player.countCards('h',function(card){
|
|
|
|
|
return get.name(card,player)=='sha'&&player.hasUseTarget(card);
|
|
|
|
|
})-player.getCardUsable('sha'))>1) return 'equip1';
|
|
|
|
|
if(list.contains('equip5')&&player.countCards('h',function(card){
|
|
|
|
|
return get.type2(card,player)=='trick'&&player.hasUseTarget(card);
|
|
|
|
|
})>1) return 'equip5';
|
2019-08-24 15:41:12 +00:00
|
|
|
|
});
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.control=='equip1'){
|
|
|
|
|
player.addTempSkill('drlt_jueyan1',{player:'phaseAfter'});
|
|
|
|
|
};
|
|
|
|
|
if(result.control=='equip2'){
|
|
|
|
|
player.draw(3);
|
|
|
|
|
player.addTempSkill('drlt_jueyan3',{player:'phaseAfter'});
|
|
|
|
|
};
|
|
|
|
|
if(result.control=='equip6'){
|
|
|
|
|
player.addTempSkill('drlt_jueyan2',{player:'phaseAfter'});
|
|
|
|
|
};
|
|
|
|
|
if(result.control=='equip5'){
|
|
|
|
|
player.addTempSkill('rejizhi',{player:'phaseAfter'});
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:13,
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player){
|
|
|
|
|
if(!player.isDisabled('equip2')) return 1;
|
2020-06-20 04:53:15 +00:00
|
|
|
|
if(!player.isDisabled('equip1')&&(player.countCards('h',function(card){
|
2021-05-21 12:54:33 +00:00
|
|
|
|
return get.name(card,player)=='sha'&&player.hasValueTarget(card);
|
2020-06-20 04:53:15 +00:00
|
|
|
|
})-player.getCardUsable('sha'))>1) return 1;
|
|
|
|
|
if(!player.isDisabled('equip5')&&player.countCards('h',function(card){
|
|
|
|
|
return get.type2(card,player)=='trick'&&player.hasUseTarget(card);
|
|
|
|
|
})>1) return 1;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return -1;
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
'drlt_jueyan1':{
|
|
|
|
|
mod:{
|
2021-04-22 14:05:36 +00:00
|
|
|
|
cardUsable:function(card,player,num){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
if(card.name=='sha') return num+3;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
mark:true,
|
|
|
|
|
marktext:'决',
|
|
|
|
|
intro:{name:'决堰 - 武器',content:'本回合内可以多使用三张【杀】'},
|
|
|
|
|
},
|
|
|
|
|
'drlt_jueyan2':{
|
|
|
|
|
mod:{
|
2021-04-22 14:05:36 +00:00
|
|
|
|
targetInRange:function(card,player,target,now){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
mark:true,
|
|
|
|
|
marktext:'决',
|
|
|
|
|
intro:{name:'决堰 - 坐骑',content:'本回合内使用牌没有距离限制'},
|
|
|
|
|
},
|
|
|
|
|
'drlt_jueyan3':{
|
|
|
|
|
mod:{
|
2021-04-22 14:05:36 +00:00
|
|
|
|
maxHandcard:function(player,num){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return num+3;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
mark:true,
|
|
|
|
|
marktext:'决',
|
|
|
|
|
intro:{name:'决堰 - 防具',content:'本回合内手牌上限+3'},
|
|
|
|
|
},
|
|
|
|
|
"drlt_poshi":{
|
|
|
|
|
audio:2,
|
|
|
|
|
skillAnimation:true,
|
2019-09-15 14:45:05 +00:00
|
|
|
|
animationColor:'wood',
|
2019-08-24 15:41:12 +00:00
|
|
|
|
trigger:{
|
2019-11-22 05:19:45 +00:00
|
|
|
|
player:'phaseZhunbeiBegin',
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
unique:true,
|
|
|
|
|
juexingji:true,
|
|
|
|
|
derivation:['drlt_huairou'],
|
|
|
|
|
init:function(player){
|
|
|
|
|
player.storage.drlt_poshi=false;
|
|
|
|
|
},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !player.storage.drlt_poshi&&((player.storage.disableEquip!=undefined&&player.storage.disableEquip.length==5)||player.hp==1);
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.storage.drlt_poshi=true;
|
2021-10-18 10:34:20 +00:00
|
|
|
|
player.awakenSkill('drlt_poshi');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
player.loseMaxHp();
|
|
|
|
|
"step 1"
|
|
|
|
|
var num=player.maxHp-player.countCards('h');
|
|
|
|
|
if(num>0) player.draw(num);
|
|
|
|
|
player.removeSkill('drlt_jueyan');
|
|
|
|
|
player.addSkill('drlt_huairou');
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"drlt_huairou":{
|
|
|
|
|
audio:2,
|
|
|
|
|
enable:"phaseUse",
|
2019-12-06 04:59:14 +00:00
|
|
|
|
position:'he',
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2019-11-22 05:19:45 +00:00
|
|
|
|
return player.countCards('he',{type:'equip'})>0;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filterCard:function(card){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return get.type(card)=='equip';
|
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
check:function(card){
|
2020-01-07 14:43:55 +00:00
|
|
|
|
if(_status.event.player.isDisabled(get.subtype(card))) return 5;
|
2019-12-16 04:54:06 +00:00
|
|
|
|
return 3-get.value(card);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
content:function(){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
player.draw();
|
|
|
|
|
},
|
|
|
|
|
discard:false,
|
2019-11-22 05:19:45 +00:00
|
|
|
|
visible:true,
|
|
|
|
|
loseTo:'discardPile',
|
2019-08-24 15:41:12 +00:00
|
|
|
|
prompt:"将一张装备牌置入弃牌堆并摸一张牌",
|
|
|
|
|
delay:0.5,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
prepare:function(cards,player){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
player.$throw(cards,1000);
|
2019-11-22 05:19:45 +00:00
|
|
|
|
game.log(player,'将',cards,'置入了弃牌堆');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2019-12-16 04:54:06 +00:00
|
|
|
|
ai:{
|
|
|
|
|
order:10,
|
|
|
|
|
result:{
|
|
|
|
|
player:1,
|
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
"drlt_yongsi":{
|
2020-07-17 22:44:32 +00:00
|
|
|
|
audio:2,
|
2019-08-24 15:41:12 +00:00
|
|
|
|
group:["drlt_yongsi_1","drlt_yongsi_2"],
|
|
|
|
|
subSkill:{
|
|
|
|
|
'1':{
|
2020-07-17 22:44:32 +00:00
|
|
|
|
audio:"drlt_yongsi",
|
2019-06-13 12:51:34 +00:00
|
|
|
|
trigger:{
|
2020-01-01 14:36:18 +00:00
|
|
|
|
player:'phaseDrawBegin2'
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
|
|
|
|
forced:true,
|
2020-03-13 10:02:18 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !event.numFixed;
|
|
|
|
|
},
|
2019-06-13 12:51:34 +00:00
|
|
|
|
content:function(){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
trigger.num=game.countGroup();
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'2':{
|
2020-07-17 22:44:32 +00:00
|
|
|
|
audio:"drlt_yongsi",
|
2019-06-13 12:51:34 +00:00
|
|
|
|
trigger:{
|
2019-11-22 05:19:45 +00:00
|
|
|
|
player:'phaseUseEnd'
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
2020-10-09 03:37:02 +00:00
|
|
|
|
var num=0;
|
|
|
|
|
player.getHistory('sourceDamage',function(evt){
|
|
|
|
|
if(evt.getParent('phaseUse')==event) num+=evt.num;
|
|
|
|
|
});
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return !num||num>1;
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
content:function(){
|
2020-10-09 03:37:02 +00:00
|
|
|
|
var numx=0;
|
|
|
|
|
player.getHistory('sourceDamage',function(evt){
|
|
|
|
|
if(evt.getParent('phaseUse')==trigger) numx+=evt.num;
|
|
|
|
|
});
|
2019-08-24 15:41:12 +00:00
|
|
|
|
if(!numx){
|
|
|
|
|
var num=player.hp-player.countCards('h');
|
|
|
|
|
if(num>0) player.draw(num);
|
2019-06-13 12:51:34 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
2019-08-24 15:41:12 +00:00
|
|
|
|
player.addTempSkill('drlt_yongsi1',{player:'phaseDiscardAfter'});
|
|
|
|
|
};
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
'drlt_yongsi1':{
|
|
|
|
|
mod:{
|
2021-04-22 14:05:36 +00:00
|
|
|
|
maxHandcard:function(player,num){
|
2019-10-19 11:18:56 +00:00
|
|
|
|
return num+player.maxHp-2*Math.max(0,player.hp);
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"drlt_weidi":{
|
|
|
|
|
audio:2,
|
2019-08-30 15:02:50 +00:00
|
|
|
|
forceaudio:true,
|
2019-08-24 15:41:12 +00:00
|
|
|
|
unique:true,
|
|
|
|
|
zhuSkill:true,
|
|
|
|
|
trigger:{
|
2019-11-22 05:19:45 +00:00
|
|
|
|
player:"phaseDiscardBegin",
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
direct:true,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
if(!player.hasZhuSkill('drlt_weidi')) return false;
|
2019-11-22 05:19:45 +00:00
|
|
|
|
return player.needsToDiscard()>0&&game.countPlayer(function(current){return current!=player&¤t.group=='qun'})>0;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2019-11-22 05:19:45 +00:00
|
|
|
|
event.count=player.needsToDiscard();
|
2019-08-24 15:41:12 +00:00
|
|
|
|
event.logged=false;
|
|
|
|
|
event.gived=[];
|
|
|
|
|
'step 1'
|
|
|
|
|
if(!game.hasPlayer(function(target){
|
|
|
|
|
return target!=player&&target.group=='qun'&&!event.gived.contains(target);
|
|
|
|
|
})) event.finish();
|
2019-11-22 05:19:45 +00:00
|
|
|
|
else player.chooseCardTarget({
|
|
|
|
|
prompt:'是否将一张手牌给予其他群雄角色?',
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target!=player&&target.group=='qun'&&!_status.event.gived.contains(target);
|
|
|
|
|
},
|
|
|
|
|
filterCard:true,
|
|
|
|
|
position:'h',
|
|
|
|
|
ai1:function(card){
|
|
|
|
|
var player=_status.event.player;
|
2019-12-16 04:54:06 +00:00
|
|
|
|
var value=get.value(card,player,'raw');
|
2019-11-22 05:19:45 +00:00
|
|
|
|
if(game.hasPlayer(function(current){
|
|
|
|
|
return get.sgn(value)==get.sgn(get.attitude(player,current))
|
|
|
|
|
})) return 1;
|
|
|
|
|
return -1;
|
|
|
|
|
},
|
|
|
|
|
ai2:function(target){
|
|
|
|
|
var player=_status.event.player;
|
2019-12-16 04:54:06 +00:00
|
|
|
|
if(get.value(ui.selected.cards[0],player,'raw')<0) return -get.attitude(player,target);
|
2019-11-22 05:19:45 +00:00
|
|
|
|
return get.attitude(player,target);
|
|
|
|
|
},
|
|
|
|
|
gived:event.gived,
|
|
|
|
|
});
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'step 2'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
if(!event.logged){
|
|
|
|
|
player.logSkill('drlt_weidi');
|
|
|
|
|
event.logged=true;
|
|
|
|
|
}
|
2019-11-22 05:19:45 +00:00
|
|
|
|
player.line(result.targets[0]);
|
|
|
|
|
result.targets[0].gain(result.cards[0],player,'giveAuto');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
event.gived.add(result.targets[0]);
|
2019-11-22 05:19:45 +00:00
|
|
|
|
event.count--;
|
|
|
|
|
if(event.count) event.goto(1);
|
|
|
|
|
}
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"drlt_xiongluan":{
|
|
|
|
|
audio:2,
|
|
|
|
|
unique:true,
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
mark:true,
|
|
|
|
|
skillAnimation:true,
|
2019-09-15 14:45:05 +00:00
|
|
|
|
animationColor:'gray',
|
2019-08-24 15:41:12 +00:00
|
|
|
|
limited:true,
|
|
|
|
|
init:function(player){
|
|
|
|
|
player.storage.drlt_xiongluan=false;
|
|
|
|
|
},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(player.storage.drlt_xiongluan) return false;
|
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target!=player;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.awakenSkill('drlt_xiongluan');
|
|
|
|
|
player.storage.drlt_xiongluan=true;
|
|
|
|
|
player.disableEquip('equip1');
|
|
|
|
|
player.disableEquip('equip2');
|
|
|
|
|
player.disableEquip('equip3');
|
|
|
|
|
player.disableEquip('equip4');
|
|
|
|
|
player.disableEquip('equip5');
|
|
|
|
|
player.disableJudge();
|
|
|
|
|
player.addTempSkill('drlt_xiongluan1');
|
|
|
|
|
player.storage.drlt_xiongluan1=target;
|
|
|
|
|
target.addSkill('drlt_xiongluan2');
|
|
|
|
|
target.markSkillCharacter('drlt_xiongluan1',player,'雄乱','无法使用或打出任何手牌');
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:13,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
2020-04-18 05:32:41 +00:00
|
|
|
|
if(target.getEquip('bagua')||target.getEquip('rewrite_bagua')) return 0;
|
|
|
|
|
var hs=player.countCards('h',function(card){
|
|
|
|
|
return ['sha','juedou'].contains(card.name)&&get.effect(target,card,player,player)!=0;
|
|
|
|
|
});
|
2019-08-24 15:41:12 +00:00
|
|
|
|
var ts=target.hp;
|
|
|
|
|
if(hs>=ts&&ts>1) return -1;
|
|
|
|
|
return 0;
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
intro:{
|
|
|
|
|
content:'limited'
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
'drlt_xiongluan1':{
|
|
|
|
|
onremove:function(player){
|
|
|
|
|
player.storage.drlt_xiongluan1.removeSkill('drlt_xiongluan2');
|
|
|
|
|
player.storage.drlt_xiongluan1.unmarkSkill('drlt_xiongluan1');
|
|
|
|
|
delete player.storage.drlt_xiongluan1;
|
|
|
|
|
},
|
|
|
|
|
mod:{
|
2021-04-22 14:05:36 +00:00
|
|
|
|
targetInRange:function(card,player,target){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
if(target.hasSkill('drlt_xiongluan2')){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2020-10-30 04:51:00 +00:00
|
|
|
|
cardUsableTarget:function(card,player,target){
|
|
|
|
|
if(target.hasSkill('drlt_xiongluan2')) return true;
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-10-05 15:46:56 +00:00
|
|
|
|
charlotte:true,
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
'drlt_xiongluan2':{
|
|
|
|
|
mod:{
|
2019-12-05 15:15:43 +00:00
|
|
|
|
cardEnabled2:function(card,player){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
if(get.position(card)=='h') return false;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
|
|
|
|
if(get.tag(card,'damage')) return [0,-999999];
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-10-05 15:46:56 +00:00
|
|
|
|
charlotte:true,
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"drlt_congjian":{
|
|
|
|
|
audio:2,
|
2022-01-15 06:12:01 +00:00
|
|
|
|
audioname2:{tongyuan:'ocongjian_tongyuan'},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
trigger:{
|
2019-10-24 04:55:01 +00:00
|
|
|
|
target:"useCardToTargeted",
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
direct:true,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2019-10-24 04:55:01 +00:00
|
|
|
|
return get.type(event.card)=='trick'&&event.targets.length>1&&player.countCards('he')>0;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.chooseCardTarget({
|
|
|
|
|
filterCard:true,
|
|
|
|
|
selectCard:1,
|
|
|
|
|
position:'he',
|
|
|
|
|
filterTarget:function(card,player,target){
|
2020-03-23 09:11:24 +00:00
|
|
|
|
return player!=target&&_status.event.targets.contains(target);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
ai1:function(card){
|
|
|
|
|
if(card.name=='du') return 20;
|
|
|
|
|
if(_status.event.player.storage.drlt_xiongluan&&get.type(card)=="equip") return 15;
|
|
|
|
|
return 6-get.value(card);
|
|
|
|
|
},
|
|
|
|
|
ai2:function(target){
|
|
|
|
|
var att=get.attitude(_status.event.player,target);
|
|
|
|
|
if(ui.selected.cards.length&&ui.selected.cards[0].name=='du'){
|
|
|
|
|
if(target.hasSkillTag('nodu')) return 0.1;
|
|
|
|
|
return 1-att;
|
|
|
|
|
}
|
|
|
|
|
return att-3;
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-08-30 15:02:50 +00:00
|
|
|
|
prompt:get.prompt2('drlt_congjian'),
|
2020-03-23 09:11:24 +00:00
|
|
|
|
targets:trigger.targets,
|
2019-08-24 15:41:12 +00:00
|
|
|
|
});
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
event.target=result.targets[0];
|
|
|
|
|
player.line(event.target);
|
2019-10-09 14:31:43 +00:00
|
|
|
|
player.logSkill('drlt_congjian');
|
|
|
|
|
event.target.gain(result.cards[0],player,'give');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
var num=1;
|
|
|
|
|
if(get.type(result.cards[0])=='equip') num=2;
|
|
|
|
|
player.draw(num);
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"drlt_wanglie":{
|
2021-10-26 13:24:26 +00:00
|
|
|
|
locked:false,
|
2019-08-24 15:41:12 +00:00
|
|
|
|
mod:{
|
2021-04-22 14:05:36 +00:00
|
|
|
|
targetInRange:function(card,player,target,now){
|
2020-02-23 05:45:11 +00:00
|
|
|
|
if(game.online){
|
|
|
|
|
if(!player.countUsed()) return true;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
var evt=_status.event.getParent('phaseUse');
|
|
|
|
|
if(evt&&evt.name=='phaseUse'&&player.getHistory('useCard',function(evt2){
|
|
|
|
|
return evt2.getParent('phaseUse')==evt
|
|
|
|
|
}).length==0) return true;
|
|
|
|
|
}
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
2019-10-31 04:41:32 +00:00
|
|
|
|
player:"useCard",
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-01-19 14:04:52 +00:00
|
|
|
|
filter:function(event,player){
|
2020-02-23 05:45:11 +00:00
|
|
|
|
return player.isPhaseUsing()&&(event.card.name=='sha'||get.type(event.card)=='trick');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-01-19 14:04:52 +00:00
|
|
|
|
check:function(event,player){
|
|
|
|
|
if(['wuzhong','kaihua','dongzhuxianji'].contains(event.card.name)) return false;
|
|
|
|
|
player._wanglie_temp=true;
|
|
|
|
|
var eff=0;
|
|
|
|
|
for(var i of event.targets){
|
|
|
|
|
eff+=get.effect(i,event.card,player,player);
|
|
|
|
|
}
|
|
|
|
|
delete player._wanglie_temp;
|
|
|
|
|
if(eff<0) return true;
|
|
|
|
|
if(!player.countCards('h',function(card){
|
|
|
|
|
return player.hasValueTarget(card,null,true);
|
|
|
|
|
})) return true;
|
|
|
|
|
if(get.tag(event.card,'damage')&&!player.needsToDiscard()&&!player.countCards('h',function(card){
|
|
|
|
|
return get.tag(card,'damage')&&player.hasValueTarget(card,null,true);
|
|
|
|
|
})) return true;
|
2019-10-31 04:41:32 +00:00
|
|
|
|
return false;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-12-09 13:57:51 +00:00
|
|
|
|
prompt2:function(event){
|
|
|
|
|
return '令'+get.translation(event.card)+'不能被响应,然后本回合不能再使用牌'
|
|
|
|
|
},
|
2019-10-31 04:41:32 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
trigger.nowuxie=true;
|
|
|
|
|
trigger.directHit.addArray(game.players);
|
|
|
|
|
player.addTempSkill('drlt_wanglie2');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-01-19 14:04:52 +00:00
|
|
|
|
ai:{
|
|
|
|
|
pretao:true,
|
|
|
|
|
directHit_ai:true,
|
|
|
|
|
skillTagFilter:function(player,tag,arg){
|
2021-02-05 14:52:19 +00:00
|
|
|
|
if(tag=='pretao') return true;
|
2021-01-19 14:04:52 +00:00
|
|
|
|
if(player._wanglie_temp) return false;
|
|
|
|
|
player._wanglie_temp=true;
|
|
|
|
|
var bool=function(){
|
|
|
|
|
if(['wuzhong','kaihua','dongzhuxianji'].contains(arg.card.name)) return false;
|
|
|
|
|
if(get.attitude(player,arg.target)>0||!player.isPhaseUsing()) return false;
|
|
|
|
|
var cards=player.getCards('h',function(card){
|
|
|
|
|
return card!=arg.card&&(!arg.card.cards||!arg.card.cards.contains(card));
|
|
|
|
|
});
|
|
|
|
|
var sha=player.getCardUsable('sha');
|
|
|
|
|
if(arg.card.name=='sha') sha--;
|
|
|
|
|
cards=cards.filter(function(card){
|
|
|
|
|
if(card.name=='sha'&&sha<=0) return false;
|
|
|
|
|
return player.hasValueTarget(card,null,true);
|
|
|
|
|
});
|
|
|
|
|
if(!cards.length) return true;
|
|
|
|
|
if(!get.tag(arg.card,'damage')) return false;
|
|
|
|
|
if(!player.needsToDiscard()&&!cards.filter(function(card){
|
|
|
|
|
return get.tag(card,'damage');
|
|
|
|
|
}).length) return true;
|
|
|
|
|
return false;
|
|
|
|
|
}();
|
|
|
|
|
delete player._wanglie_temp;
|
|
|
|
|
return bool;
|
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
"drlt_wanglie2":{
|
|
|
|
|
mod:{
|
|
|
|
|
cardEnabled:function(card,player){
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
liangyin:{
|
|
|
|
|
audio:2,
|
|
|
|
|
group:["liangyin_1","liangyin_2"],
|
|
|
|
|
subSkill:{
|
|
|
|
|
"1":{
|
2019-06-13 12:51:34 +00:00
|
|
|
|
trigger:{
|
2022-04-10 16:34:02 +00:00
|
|
|
|
global:["loseAfter","addToExpansionAfter","cardsGotoSpecialAfter",'loseAsyncAfter'],
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2021-05-18 07:57:26 +00:00
|
|
|
|
filter:function(event,player,name){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
if(event.name=='lose'||event.name=='loseAsync') return event.getlx!==false&&event.toStorage==true;
|
|
|
|
|
if(event.name=='cardGotoSpecial') return !event.notrigger;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return true;
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
direct:true,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
content:function(){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
"step 0"
|
|
|
|
|
player.chooseTarget('是否发动【良姻】令手牌数大于你的一名角色摸一张牌?',function(card,player,target){
|
|
|
|
|
return target!=player&&target.countCards('h')>player.countCards('h');
|
2019-06-13 12:51:34 +00:00
|
|
|
|
}).ai=function(target){
|
|
|
|
|
return get.attitude(player,target);
|
|
|
|
|
};
|
2019-08-24 15:41:12 +00:00
|
|
|
|
"step 1"
|
2019-06-13 12:51:34 +00:00
|
|
|
|
if(result.bool){
|
2020-12-16 11:55:55 +00:00
|
|
|
|
player.logSkill('liangyin',result.targets);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
result.targets[0].draw();
|
2020-12-16 11:55:55 +00:00
|
|
|
|
}
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
sub:true,
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
"2":{
|
|
|
|
|
trigger:{
|
|
|
|
|
global:"gainAfter",
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
return event.fromStorage==true||game.hasPlayer2(function(current){
|
|
|
|
|
var evt=event.getl(current);
|
|
|
|
|
return evt&&evt.xs&&evt.xs.length>0;
|
|
|
|
|
});
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
direct:true,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
content:function(){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
"step 0"
|
|
|
|
|
player.chooseTarget('是否发动【良姻】令手牌数小于你的一名角色弃置一张牌?',function(card,player,target){
|
|
|
|
|
return target!=player&&target.countCards('h')<player.countCards('h')&&target.countCards('he')>0;
|
|
|
|
|
}).ai=function(target){
|
|
|
|
|
return -get.attitude(player,target);
|
|
|
|
|
};
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
2020-12-16 11:55:55 +00:00
|
|
|
|
player.logSkill('liangyin',result.targets);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
result.targets[0].chooseToDiscard('he',1,true);
|
2020-12-16 11:55:55 +00:00
|
|
|
|
}
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
sub:true,
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
kongsheng:{
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
2019-11-22 05:19:45 +00:00
|
|
|
|
player:"phaseZhunbeiBegin",
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
direct:true,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return player.countCards('he')>0;
|
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
content:function(){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'step 0'
|
2022-04-10 16:34:02 +00:00
|
|
|
|
player.chooseCard(get.prompt('kongsheng'),'将任意张牌置于武将牌上','he',[1,player.countCards('he')]).set('ai',function(card){
|
2020-03-13 10:02:18 +00:00
|
|
|
|
if(get.position(card)=='e') return 1-get.value(card);
|
|
|
|
|
if(card.name=='shan'||card.name=='du'||!player.hasValueTarget(card)) return 1;
|
|
|
|
|
return 4-get.value(card);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
});
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('kongsheng');
|
|
|
|
|
player.addSkill('kongsheng2');
|
2022-04-10 16:34:02 +00:00
|
|
|
|
player.addToExpansion(result.cards,'log','give',player).gaintag.add('kongsheng2');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-03-13 10:02:18 +00:00
|
|
|
|
kongsheng_ai:{ai:{reverseOrder:true}},
|
2022-04-10 16:34:02 +00:00
|
|
|
|
kongsheng2:{
|
2020-03-13 10:02:18 +00:00
|
|
|
|
audio:'kongsheng',
|
2019-08-24 15:41:12 +00:00
|
|
|
|
marktext:"箜",
|
|
|
|
|
intro:{
|
2022-04-10 16:34:02 +00:00
|
|
|
|
content:"expansion",
|
|
|
|
|
markcount:'expansion',
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
trigger:{
|
2019-11-22 05:19:45 +00:00
|
|
|
|
player:"phaseJieshuBegin",
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
return player.getExpansions('kongsheng2').length>0;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
forced:true,
|
2022-04-10 16:34:02 +00:00
|
|
|
|
charlotte:true,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
content:function(){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'step 0'
|
2020-03-13 10:02:18 +00:00
|
|
|
|
player.addTempSkill('kongsheng_ai','kongsheng2After');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'step 1'
|
2022-04-10 16:34:02 +00:00
|
|
|
|
var cards=player.getExpansions('kongsheng2').filter(function(i){
|
|
|
|
|
return get.type(i,false)=='equip'&&player.hasUseTarget(i);
|
|
|
|
|
});
|
|
|
|
|
if(cards.length==1){
|
|
|
|
|
event._result={bool:true,links:cards}
|
2020-03-13 10:02:18 +00:00
|
|
|
|
}
|
2022-04-10 16:34:02 +00:00
|
|
|
|
else if(cards.length) player.chooseButton(true,['选择要使用的装备牌',cards]).set('ai',function(button){
|
2020-03-13 10:02:18 +00:00
|
|
|
|
return get.order(button.link);
|
|
|
|
|
});
|
2022-04-10 16:34:02 +00:00
|
|
|
|
else event.goto(3);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'step 2'
|
2020-03-13 10:02:18 +00:00
|
|
|
|
if(result.bool){
|
|
|
|
|
player.chooseUseTarget(result.links[0],true);
|
2022-04-10 16:34:02 +00:00
|
|
|
|
event.goto(1);
|
2020-03-13 10:02:18 +00:00
|
|
|
|
}
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'step 3'
|
2022-04-10 16:34:02 +00:00
|
|
|
|
var cards=player.getExpansions('kongsheng2');
|
|
|
|
|
if(cards.length) player.gain(cards,'gain2');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
"nzry_juzhan":{
|
|
|
|
|
audio:"nzry_juzhan_1",
|
|
|
|
|
mark:true,
|
|
|
|
|
locked:false,
|
|
|
|
|
zhuanhuanji:true,
|
|
|
|
|
marktext:'拒',
|
|
|
|
|
intro:{
|
|
|
|
|
content:function(storage,player,skill){
|
|
|
|
|
if(player.storage.nzry_juzhan1==true) return '当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌';
|
|
|
|
|
return '当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌';
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
mod:{
|
|
|
|
|
targetEnabled:function(card,player,target){
|
|
|
|
|
if(player.storage.nzry_juzhan==true) return false;
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
group:["nzry_juzhan_1","nzry_juzhan_2"],
|
|
|
|
|
subSkill:{
|
|
|
|
|
'1':{
|
2019-06-13 12:51:34 +00:00
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
2019-10-24 04:55:01 +00:00
|
|
|
|
target:'useCardToTargeted'
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-10-24 04:55:01 +00:00
|
|
|
|
prompt2:'当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。',
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2019-10-24 04:55:01 +00:00
|
|
|
|
return event.card.name=='sha'&&(player.storage.nzry_juzhan1==false||player.storage.nzry_juzhan1==undefined);
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-10-24 04:55:01 +00:00
|
|
|
|
logTarget:'player',
|
2019-06-13 12:51:34 +00:00
|
|
|
|
content:function(){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
game.asyncDraw([player,trigger.player]);
|
2019-10-31 04:41:32 +00:00
|
|
|
|
trigger.player.addTempSkill('nzry_juzhany');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
player.storage.nzry_juzhan1=true;
|
2019-10-24 04:55:01 +00:00
|
|
|
|
player.addTempSkill('nzry_juzhanx');
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'2':{
|
2019-06-13 12:51:34 +00:00
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
2019-10-24 04:55:01 +00:00
|
|
|
|
player:'useCardToPlayered'
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-10-24 04:55:01 +00:00
|
|
|
|
prompt2:'当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌',
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2019-10-24 04:55:01 +00:00
|
|
|
|
return event.card.name=='sha'&&event.player.countGainableCards(player,'he')>0&&player.storage.nzry_juzhan1==true;
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
check:function(event,player){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return event.player.countCards('he')>0&&event.targets&&event.targets.length==1;
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-10-24 04:55:01 +00:00
|
|
|
|
logTarget:'target',
|
2019-08-24 15:41:12 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
player.gainPlayerCard(trigger.targets[0],'he',true);
|
|
|
|
|
player.storage.nzry_juzhan1=false;
|
2019-10-24 04:55:01 +00:00
|
|
|
|
trigger.target.addTempSkill('nzry_juzhanx');
|
2019-10-31 04:41:32 +00:00
|
|
|
|
player.addTempSkill('nzry_juzhany');
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2019-10-24 04:55:01 +00:00
|
|
|
|
"nzry_juzhanx":{
|
2019-08-24 15:41:12 +00:00
|
|
|
|
mod:{
|
|
|
|
|
targetEnabled:function(card,player,target){
|
2019-10-31 04:41:32 +00:00
|
|
|
|
if(player.hasSkill('nzry_juzhany')) return false;
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2019-10-31 04:41:32 +00:00
|
|
|
|
nzry_juzhany:{},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
"nzry_feijun":{
|
2021-04-22 14:05:36 +00:00
|
|
|
|
init:function(player){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
player.storage.nzry_feijun=[];
|
|
|
|
|
},
|
|
|
|
|
marktext:"飞",
|
|
|
|
|
intro:{
|
2021-04-22 14:05:36 +00:00
|
|
|
|
content:function(storage){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
if(!storage.length) return '尚未发动';
|
|
|
|
|
var str=get.translation(storage);
|
|
|
|
|
return '已对'+str+'发动过〖飞军〗';
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
mark:true,
|
|
|
|
|
enable:"phaseUse",
|
|
|
|
|
usable:1,
|
|
|
|
|
position:"he",
|
|
|
|
|
audio:2,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return game.countPlayer(function(current){return current.countCards('h')>=player.countCards('h')})>0||game.countPlayer(function(current){return current.countCards('e')>player.countCards('e')})>0;
|
|
|
|
|
},
|
|
|
|
|
filterCard:true,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
check:function(card){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return 5-get.value(card);
|
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
content:function(){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'step 0'
|
|
|
|
|
var list=[];
|
|
|
|
|
if(game.countPlayer(function(current){return current.countCards('h')>player.countCards('h')})>0) list.push('令一名手牌数大于你的角色交给你一张牌');
|
|
|
|
|
if(game.countPlayer(function(current){return current.countCards('e')>player.countCards('e')})>0) list.push('令一名装备区里牌数大于你的角色弃置一张装备牌');
|
|
|
|
|
if(list.length==0) event.finish();
|
|
|
|
|
else if(list.length<2){
|
|
|
|
|
if(game.countPlayer(function(current){return current.countCards('h')>player.countCards('h')})>0) event._result={index:0};
|
|
|
|
|
else event._result={index:1};
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.chooseControl().set('ai',function(){
|
|
|
|
|
if(game.hasPlayer(function(current){
|
|
|
|
|
return current.countCards('h')>player.countCards('h')&&get.attitude(player,current)<0
|
|
|
|
|
})) return 0;
|
|
|
|
|
return 1;
|
|
|
|
|
}).set('choiceList',list);
|
|
|
|
|
}
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.index==0){
|
|
|
|
|
event.control='令一名手牌数大于你的角色交给你一张牌';
|
|
|
|
|
player.chooseTarget(function(card,player,target){
|
|
|
|
|
return target.countCards('h')>player.countCards('h')&&target!=player;
|
|
|
|
|
},'请选择【飞军】的目标').ai=function(target){
|
|
|
|
|
return -get.attitude(player,target)
|
|
|
|
|
};
|
|
|
|
|
}else{
|
|
|
|
|
event.control='令一名装备区里牌数大于你的角色弃置一张装备牌';
|
|
|
|
|
player.chooseTarget(function(card,player,target){
|
|
|
|
|
return target.countCards('e')>player.countCards('e')&&target!=player;
|
|
|
|
|
},'请选择【飞军】的目标').ai=function(target){
|
|
|
|
|
return -get.attitude(player,target)
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
'step 2'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
event.target=result.targets[0];
|
|
|
|
|
if(!player.storage.nzry_feijun.contains(event.target)){
|
|
|
|
|
if(player.hasSkill('nzry_binglve')){
|
|
|
|
|
player.draw(2);
|
|
|
|
|
player.logSkill('nzry_binglve');
|
2019-06-13 12:51:34 +00:00
|
|
|
|
}
|
2019-08-24 15:41:12 +00:00
|
|
|
|
player.storage.nzry_feijun.push(event.target);
|
|
|
|
|
player.syncStorage('nzry_feijun');
|
|
|
|
|
};
|
|
|
|
|
player.line(event.target);
|
|
|
|
|
if(event.control=='令一名手牌数大于你的角色交给你一张牌'){
|
2019-10-09 14:31:43 +00:00
|
|
|
|
event.target.chooseCard(1,'he',true).set('ai',function(card){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return 6-get.value(card);
|
|
|
|
|
});
|
|
|
|
|
}else{
|
|
|
|
|
event.target.chooseToDiscard(1,'e',true);
|
|
|
|
|
event.finish();
|
|
|
|
|
};
|
|
|
|
|
}else{
|
|
|
|
|
event.finish();
|
|
|
|
|
};
|
|
|
|
|
'step 3'
|
|
|
|
|
if(result.bool){
|
2019-10-09 14:31:43 +00:00
|
|
|
|
player.gain(result.cards,event.target,'giveAuto');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:11,
|
|
|
|
|
result:{
|
2021-04-22 14:05:36 +00:00
|
|
|
|
player:function(player){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
if(game.countPlayer(function(current){return (current.countCards('h')>player.countCards('h')||current.countCards('e')>player.countCards('e'))&&get.attitude(player,current)<0&&!player.storage.nzry_feijun.contains(current)})>0||game.countPlayer(function(current){return current.countCards('h')>player.countCards('h')&&get.attitude(player,current)<0})>0||(player.countCards('h')>=2&&game.countPlayer(function(current){return current.countCards('e')>player.countCards('e')&&get.attitude(player,current)<0})>0)) return 1;
|
2019-06-13 12:51:34 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"nzry_binglve":{audio:2},
|
2020-02-14 05:33:43 +00:00
|
|
|
|
nzry_huaiju_ai:{
|
|
|
|
|
charlotte:true,
|
|
|
|
|
ai:{
|
|
|
|
|
filterDamage:true,
|
|
|
|
|
skillTagFilter:function(player,tag,arg){
|
|
|
|
|
if(!player.hasMark('nzry_huaiju')) return false;
|
|
|
|
|
if(!game.hasPlayer(function(current){
|
|
|
|
|
return current.hasSkill('tachibana_effect');
|
|
|
|
|
})) return false;
|
|
|
|
|
if(arg&&arg.player){
|
|
|
|
|
if(arg.player.hasSkillTag('jueqing',false,player)) return false;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
"nzry_huaiju":{
|
|
|
|
|
marktext:"橘",
|
|
|
|
|
intro:{
|
2020-01-22 06:04:55 +00:00
|
|
|
|
name:'怀橘',
|
|
|
|
|
name2:'橘',
|
2019-08-24 15:41:12 +00:00
|
|
|
|
content:'当前有#个“橘”',
|
|
|
|
|
},
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
2021-11-23 04:58:31 +00:00
|
|
|
|
global:'phaseBefore',
|
|
|
|
|
player:'enterGame',
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
forced:true,
|
2021-11-23 04:58:31 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return (event.name!='phase'||game.phaseNumber==0);
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
content:function(){
|
2020-01-22 06:04:55 +00:00
|
|
|
|
player.addMark('nzry_huaiju',3);
|
2020-02-14 05:33:43 +00:00
|
|
|
|
player.addSkill('nzry_huaiju_ai');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
group:['tachibana_effect'],
|
|
|
|
|
},
|
|
|
|
|
//没错 这是个橘
|
2021-11-23 04:58:31 +00:00
|
|
|
|
tachibana_effect:{
|
2019-08-24 15:41:12 +00:00
|
|
|
|
audio:'nzry_huaiju',
|
|
|
|
|
trigger:{
|
2020-03-13 10:02:18 +00:00
|
|
|
|
global:['damageBegin4','phaseDrawBegin2'],
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
2020-03-13 10:02:18 +00:00
|
|
|
|
return event.player.hasMark('nzry_huaiju')&&(event.name=='damage'||!event.numFixed);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.line(trigger.player,'green');
|
|
|
|
|
if(trigger.name=='damage'){
|
|
|
|
|
trigger.cancel();
|
2020-01-22 06:04:55 +00:00
|
|
|
|
trigger.player.removeMark('nzry_huaiju',1);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
}
|
|
|
|
|
else trigger.num++;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"nzry_yili":{
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
|
|
|
|
player:"phaseUseBegin",
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
content:function(){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'step 0'
|
2019-08-30 15:02:50 +00:00
|
|
|
|
player.chooseTarget(get.prompt('nzry_yili'),"移去一个【橘】或失去1点体力,然后令一名其他角色获得一个【橘】",function(card,player,target){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return target!=player
|
|
|
|
|
}).ai=function(target){
|
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
if(player.storage.nzry_huaiju>2||player.hp>2) return get.attitude(player,target);
|
|
|
|
|
return -1;
|
|
|
|
|
};
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
event.target=result.targets[0];
|
2020-01-22 06:04:55 +00:00
|
|
|
|
if(player.hasMark('nzry_huaiju')){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
player.chooseControl().set('choiceList',['流失一点体力','移去一个“橘”']).set('ai',function(){
|
|
|
|
|
if(player.hp>2) return 0;
|
|
|
|
|
return 1;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
else event._result={index:0};
|
|
|
|
|
}else{
|
|
|
|
|
event.finish();
|
|
|
|
|
};
|
|
|
|
|
'step 2'
|
2019-12-07 12:53:15 +00:00
|
|
|
|
player.logSkill('nzry_yili',target);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
if(result.index==1){
|
2020-01-22 06:04:55 +00:00
|
|
|
|
player.removeMark('nzry_huaiju',1);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
}else{
|
|
|
|
|
player.loseHp();
|
|
|
|
|
};
|
2020-01-22 06:04:55 +00:00
|
|
|
|
target.addMark('nzry_huaiju',1);
|
2020-02-14 05:33:43 +00:00
|
|
|
|
target.addSkill('nzry_huaiju_ai');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"nzry_zhenglun":{
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
|
|
|
|
player:'phaseDrawBefore'
|
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2020-01-22 06:04:55 +00:00
|
|
|
|
return !player.hasMark('nzry_huaiju');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
check:function(event,player){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return player.countCards('h')>=2||player.skipList.contains('phaseUse');
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.cancel();
|
2020-01-22 06:04:55 +00:00
|
|
|
|
player.addMark('nzry_huaiju',1);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"nzry_kuizhu":{
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
|
|
|
|
player:"phaseDiscardAfter",
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2020-02-14 05:33:43 +00:00
|
|
|
|
var cards=[];
|
|
|
|
|
player.getHistory('lose',function(evt){
|
|
|
|
|
if(evt.type=='discard'&&evt.getParent('phaseDiscard')==event) cards.addArray(evt.cards2);
|
|
|
|
|
});
|
|
|
|
|
return cards.length>0;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
content:function(){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'step 0'
|
2020-02-14 05:33:43 +00:00
|
|
|
|
var cards=[];
|
|
|
|
|
player.getHistory('lose',function(evt){
|
|
|
|
|
if(evt.type=='discard'&&evt.getParent('phaseDiscard')==trigger) cards.addArray(evt.cards2);
|
|
|
|
|
});
|
|
|
|
|
event.num=cards.length;
|
|
|
|
|
event.str1='令至多'+event.num+'名角色摸一张牌';
|
|
|
|
|
event.str2='对任意名体力值之和为'+event.num+'的角色造成一点伤害';
|
2019-08-30 15:02:50 +00:00
|
|
|
|
player.chooseControl('cancel2').set('ai',function(){
|
2020-02-14 05:33:43 +00:00
|
|
|
|
if(game.countPlayer(function(current){return get.attitude(player,current)<0&¤t.hp==event.num})>0&&event.num<=3) return 1;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return 0;
|
|
|
|
|
}).set('choiceList',[event.str1,event.str2]).set('prompt','是否发动【溃诛】?');
|
|
|
|
|
'step 1'
|
2019-08-30 15:02:50 +00:00
|
|
|
|
if(result.control=='cancel2') event.finish();
|
2019-08-24 15:41:12 +00:00
|
|
|
|
event.control=[event.str1,event.str2][result.index];
|
|
|
|
|
'step 2'
|
2020-02-14 05:33:43 +00:00
|
|
|
|
var str='请选择〖溃诛〗的目标';
|
|
|
|
|
if(event.bool==false) str='<br>所选目标体力之和不足'+event.num+',请重选';
|
2019-08-24 15:41:12 +00:00
|
|
|
|
if(event.control==event.str2){
|
2020-02-14 05:33:43 +00:00
|
|
|
|
player.chooseTarget(str,function(card,player,target){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
var targets=ui.selected.targets;
|
|
|
|
|
var num=0;
|
|
|
|
|
for(var i=0;i<targets.length;i++){
|
|
|
|
|
num+=targets[i].hp;
|
2019-06-13 12:51:34 +00:00
|
|
|
|
};
|
2020-02-14 05:33:43 +00:00
|
|
|
|
return num+target.hp<=_status.event.num;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
}).set('ai',function(target){
|
|
|
|
|
if(ui.selected.targets[0]!=undefined) return -1;
|
|
|
|
|
return get.attitude(player,target)<0;
|
2020-02-14 05:33:43 +00:00
|
|
|
|
}).set('promptbar','none').set('num',event.num).set('selectTarget',function(){
|
|
|
|
|
var targets=ui.selected.targets;
|
|
|
|
|
var num=0;
|
|
|
|
|
for(var i=0;i<targets.length;i++){
|
|
|
|
|
num+=targets[i].hp;
|
|
|
|
|
}
|
|
|
|
|
if(num==_status.event.num) return ui.selected.targets.length;
|
|
|
|
|
return ui.selected.targets.length+1;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.chooseTarget('请选择〖溃诛〗的目标',[1,event.num]).ai=function(target){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return get.attitude(player,target);
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
'step 3'
|
|
|
|
|
if(result.bool){
|
2021-01-16 14:42:47 +00:00
|
|
|
|
var targets=result.targets.sortBySeat();
|
2019-08-24 15:41:12 +00:00
|
|
|
|
if(event.control==event.str1){
|
2021-01-16 14:42:47 +00:00
|
|
|
|
//player.line(targets);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
player.logSkill('nzry_kuizhu',targets);
|
|
|
|
|
game.asyncDraw(targets);
|
2020-02-14 05:33:43 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
2019-08-24 15:41:12 +00:00
|
|
|
|
var num=0;
|
|
|
|
|
for(var i=0;i<targets.length;i++){
|
|
|
|
|
num+=targets[i].hp;
|
2019-06-13 12:51:34 +00:00
|
|
|
|
};
|
2020-02-14 05:33:43 +00:00
|
|
|
|
if(num<event.num){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
event.bool=false;
|
|
|
|
|
event.goto(2);
|
2020-02-14 05:33:43 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
2021-01-16 14:42:47 +00:00
|
|
|
|
//player.line(targets);
|
|
|
|
|
player.logSkill('nzry_kuizhu',targets);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
for(var i=0;i<targets.length;i++){
|
|
|
|
|
targets[i].damage();
|
|
|
|
|
};
|
2021-09-07 05:05:57 +00:00
|
|
|
|
//if(targets.length>=2) player.loseHp();
|
2019-06-13 12:51:34 +00:00
|
|
|
|
};
|
2019-08-24 15:41:12 +00:00
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
},
|
2021-09-07 05:05:57 +00:00
|
|
|
|
rechezheng:{
|
|
|
|
|
audio:'nzry_zhizheng',
|
|
|
|
|
trigger:{source:'damageBegin2'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.isPhaseUsing()&&!player.inRangeOf(event.player);
|
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
logTarget:'player',
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.cancel();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
effect:{
|
|
|
|
|
player:function(card,player,target){
|
|
|
|
|
if(get.tag(card,'damage')&&!player.inRangeOf(target)) return 'zerotarget';
|
|
|
|
|
},
|
2020-02-14 05:33:43 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2021-09-07 05:05:57 +00:00
|
|
|
|
},
|
|
|
|
|
nzry_zhizheng:{
|
|
|
|
|
audio:2,
|
|
|
|
|
//mod:{
|
|
|
|
|
// playerEnabled:function(card,player,target){
|
|
|
|
|
// var info=get.info(card);
|
|
|
|
|
// if(target!=player&&(!info||!info.singleCard||!ui.selected.targets.length)&&player.isPhaseUsing()&&!target.inRange(player)) return false;
|
|
|
|
|
// },
|
|
|
|
|
//},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
trigger:{
|
2020-02-14 05:33:43 +00:00
|
|
|
|
player:'phaseUseEnd'
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2020-02-14 05:33:43 +00:00
|
|
|
|
forced:true,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2020-02-23 05:45:11 +00:00
|
|
|
|
return (player.getHistory('useCard',function(evt){
|
2020-02-14 05:33:43 +00:00
|
|
|
|
return evt.getParent('phaseUse')==event;
|
2020-09-06 06:22:50 +00:00
|
|
|
|
}).length<game.countPlayer(function(current){return current!=player&&!current.inRange(player)}))&&game.hasPlayer(function(target){
|
2020-07-03 05:22:31 +00:00
|
|
|
|
return target!=player&&!target.inRange(player)&&target.countDiscardableCards(player,'he');
|
2020-02-14 05:33:43 +00:00
|
|
|
|
});
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2020-02-14 05:33:43 +00:00
|
|
|
|
'step 0'
|
|
|
|
|
player.chooseTarget("请选择〖掣政〗的目标","弃置一名攻击范围内不包含你的角色的一张牌",true,function(card,player,target){
|
2020-07-03 05:22:31 +00:00
|
|
|
|
return target!=player&&!target.inRange(player)&&target.countDiscardableCards(player,'he');
|
2020-02-14 05:33:43 +00:00
|
|
|
|
}).ai=function(target){
|
|
|
|
|
return -get.attitude(player,target);
|
|
|
|
|
};
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.line(result.targets);
|
|
|
|
|
player.discardPlayerCard(result.targets[0],'he',1,true);
|
|
|
|
|
};
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-09-07 05:05:57 +00:00
|
|
|
|
group:'rechezheng',
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-09-07 05:05:57 +00:00
|
|
|
|
nzry_lijun:{
|
2019-08-24 15:41:12 +00:00
|
|
|
|
unique:true,
|
|
|
|
|
global:'nzry_lijun1',
|
|
|
|
|
audio:'nzry_lijun1',
|
|
|
|
|
zhuSkill:true,
|
|
|
|
|
},
|
2021-09-07 05:05:57 +00:00
|
|
|
|
nzry_lijun2:{
|
|
|
|
|
mod:{
|
|
|
|
|
cardUsable:function(card,player,num){
|
|
|
|
|
if(card.name=='sha') return num+player.countMark('nzry_lijun2');
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
onremove:true,
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
"nzry_lijun1":{
|
|
|
|
|
audio:2,
|
2020-01-11 12:17:57 +00:00
|
|
|
|
//forceaudio:true,
|
2019-08-24 15:41:12 +00:00
|
|
|
|
trigger:{
|
|
|
|
|
player:'useCardAfter'
|
|
|
|
|
},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(event.card.name!='sha') return false;
|
2021-09-07 05:05:57 +00:00
|
|
|
|
if(player.hasSkill('nzry_lijun2')) return false;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
if(player.group!='wu') return false;
|
|
|
|
|
if(_status.currentPhase!=player) return false;
|
|
|
|
|
if(!game.hasPlayer(function(target){
|
|
|
|
|
return player!=target&&target.hasZhuSkill('nzry_lijun',player);
|
|
|
|
|
})) return false;
|
|
|
|
|
for(var i=0;i<event.cards.length;i++){
|
2019-12-16 04:54:06 +00:00
|
|
|
|
if(get.position(event.cards[i],true)=='o'){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2019-08-30 15:02:50 +00:00
|
|
|
|
var list=game.filterPlayer(function(target){
|
|
|
|
|
return player!=target&&target.hasZhuSkill('nzry_lijun',player);
|
|
|
|
|
});
|
|
|
|
|
player.chooseTarget(get.prompt('nzry_lijun'),'将'+get.translation(trigger.cards)+'交给'+get.translation(list)+(list.length>1?'中的一人':''),function(card,player,target){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return player!=target&&target.hasZhuSkill('nzry_lijun',player);
|
|
|
|
|
}).ai=function(target){
|
|
|
|
|
return get.attitude(_status.event.player,target);
|
|
|
|
|
};
|
|
|
|
|
'step 1'
|
|
|
|
|
if(!result.bool) event.finish();
|
|
|
|
|
else{
|
2021-09-07 05:05:57 +00:00
|
|
|
|
player.addTempSkill('nzry_lijun2','phaseUseEnd');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
var zhu=result.targets[0];
|
2020-01-11 12:17:57 +00:00
|
|
|
|
player.line(zhu,'green');
|
2020-01-18 05:34:45 +00:00
|
|
|
|
zhu.logSkill('nzry_lijun');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
var list=[];
|
|
|
|
|
for(var i=0;i<trigger.cards.length;i++){
|
2019-12-16 04:54:06 +00:00
|
|
|
|
if(get.position(trigger.cards[i],true)=='o'){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
list.push(trigger.cards[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
player.give(list,zhu);
|
|
|
|
|
zhu.chooseBool().set('ai',function(){
|
|
|
|
|
if(get.attitude(zhu,player)>0) return true;
|
|
|
|
|
return false;
|
|
|
|
|
}).set('prompt','是否令'+get.translation(player)+'摸一张牌?');
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
2021-09-07 05:05:57 +00:00
|
|
|
|
if(result.bool){
|
|
|
|
|
player.draw();
|
|
|
|
|
player.addMark('nzry_lijun2',1,false);
|
|
|
|
|
}
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"nzry_chenglve":{
|
|
|
|
|
mark:true,
|
|
|
|
|
locked:false,
|
|
|
|
|
zhuanhuanji:true,
|
|
|
|
|
marktext:'成',
|
|
|
|
|
intro:{
|
|
|
|
|
content:function(storage,player,skill){
|
2020-05-09 05:30:03 +00:00
|
|
|
|
var str=player.storage.nzry_chenglve?'出牌阶段限一次,你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制':'出牌阶段限一次,你可以摸一张牌,然后弃置两张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制';
|
|
|
|
|
if(player.storage.nzry_chenglve1){
|
|
|
|
|
str+='<br><li>当前花色:';
|
|
|
|
|
str+=get.translation(player.storage.nzry_chenglve1);
|
|
|
|
|
}
|
|
|
|
|
return str;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
enable:"phaseUse",
|
|
|
|
|
usable:1,
|
|
|
|
|
audio:2,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
if(player.storage.nzry_chenglve==true){
|
|
|
|
|
player.storage.nzry_chenglve=false;
|
|
|
|
|
player.draw(2);
|
|
|
|
|
player.chooseToDiscard('h',true);
|
|
|
|
|
}else{
|
|
|
|
|
player.storage.nzry_chenglve=true;
|
|
|
|
|
player.draw();
|
|
|
|
|
player.chooseToDiscard('h',2,true);
|
|
|
|
|
};
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
2020-05-09 05:30:03 +00:00
|
|
|
|
player.storage.nzry_chenglve1=[];
|
|
|
|
|
for(var i=0;i<result.cards.length;i++){
|
|
|
|
|
player.storage.nzry_chenglve1.add(get.suit(result.cards[i],player));
|
|
|
|
|
}
|
|
|
|
|
player.markSkill('nzry_chenglve');
|
|
|
|
|
player.addTempSkill('nzry_chenglve1');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:2.7,
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player){
|
|
|
|
|
if((player.storage.nzry_chenglve==undefined||player.storage.nzry_chenglve==false)&&player.countCards('h')<3) return 0;
|
|
|
|
|
return 1;
|
2019-06-29 13:27:14 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"nzry_chenglve1":{
|
|
|
|
|
mod:{
|
|
|
|
|
cardUsable:function(card,player){
|
|
|
|
|
var cards=player.storage.nzry_chenglve1;
|
|
|
|
|
for(var i=0;i<cards.length;i++){
|
2020-05-09 05:30:03 +00:00
|
|
|
|
if(cards[i]==get.suit(card)) return Infinity;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
targetInRange:function(card,player){
|
|
|
|
|
var cards=player.storage.nzry_chenglve1;
|
|
|
|
|
for(var i=0;i<cards.length;i++){
|
2020-05-09 05:30:03 +00:00
|
|
|
|
if(cards[i]==get.suit(card)) return true;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
},
|
2020-05-09 05:30:03 +00:00
|
|
|
|
onremove:true,
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
"nzry_shicai":{
|
|
|
|
|
audio:"nzry_shicai_2",
|
|
|
|
|
ai:{
|
2020-01-01 14:36:18 +00:00
|
|
|
|
reverseOrder:true,
|
|
|
|
|
skillTagFilter:function(player){
|
2020-02-23 05:45:11 +00:00
|
|
|
|
if(player.getHistory('useCard',function(evt){
|
|
|
|
|
return get.type(evt.card)=='equip';
|
|
|
|
|
}).length>0) return false;
|
2020-01-01 14:36:18 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
2020-03-05 13:10:37 +00:00
|
|
|
|
if(player==target&&get.type(card)=='equip'&&!player.getHistory('useCard',function(evt){
|
2020-02-23 05:45:11 +00:00
|
|
|
|
return get.type(evt.card)=='equip'
|
|
|
|
|
}).length==0) return [1,3];
|
2019-06-09 03:23:49 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
threaten:2.4,
|
|
|
|
|
},
|
|
|
|
|
subSkill:{
|
|
|
|
|
"2":{
|
|
|
|
|
audio:2,
|
2019-06-09 03:23:49 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2020-01-01 14:36:18 +00:00
|
|
|
|
trigger:{
|
|
|
|
|
player:['useCardAfter'],
|
|
|
|
|
target:'useCardToTargeted',
|
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player,name){
|
2020-01-01 14:36:18 +00:00
|
|
|
|
if(name=='useCardToTargeted'&&('equip'!=get.type(event.card)||event.player!=player)) return false;
|
|
|
|
|
if(name=='useCardAfter'&&['equip','delay'].contains(get.type(event.card))) return false;
|
|
|
|
|
if(event.cards.filterInD().length<=0) return false;
|
|
|
|
|
var history=player.getHistory('useCard');
|
2020-01-03 15:22:37 +00:00
|
|
|
|
var evt=name=='useCardAfter'?event:event.getParent();
|
2020-01-01 14:36:18 +00:00
|
|
|
|
for(var i=0;i<history.length;i++){
|
2021-12-09 13:57:51 +00:00
|
|
|
|
if(history[i]!=evt&&get.type2(history[i].card)==get.type2(event.card)) return false;
|
2020-01-03 15:22:37 +00:00
|
|
|
|
else if(history[i]==evt) return true;
|
2020-01-01 14:36:18 +00:00
|
|
|
|
}
|
2020-01-03 15:22:37 +00:00
|
|
|
|
return false;
|
2020-01-01 14:36:18 +00:00
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
check:function(event,player){
|
2020-01-01 14:36:18 +00:00
|
|
|
|
if(get.type(event.card)=='equip'){
|
2020-02-23 05:45:11 +00:00
|
|
|
|
if(get.subtype(event.card)=='equip6') return true;
|
|
|
|
|
if(get.equipResult(player,event.target,event.card.name)<=0) return true;
|
|
|
|
|
var eff1=player.getUseValue(event.card);
|
|
|
|
|
var subtype=get.subtype(event.card);
|
|
|
|
|
return player.countCards('h',function(card){
|
|
|
|
|
return get.subtype(card)==subtype&&player.getUseValue(card)>=eff1;
|
|
|
|
|
})>0;
|
2020-01-01 14:36:18 +00:00
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2020-02-23 05:45:11 +00:00
|
|
|
|
event.cards=trigger.cards.filterInD();
|
|
|
|
|
if(event.cards.length>1){
|
2021-12-09 13:57:51 +00:00
|
|
|
|
var next=player.chooseToMove('恃才:将牌按顺序置于牌堆顶');
|
|
|
|
|
next.set('list',[['牌堆顶',event.cards]]);
|
|
|
|
|
next.set('reverse',((_status.currentPhase&&_status.currentPhase.next)?get.attitude(player,_status.currentPhase.next)>0:false));
|
|
|
|
|
next.set('processAI',function(list){
|
|
|
|
|
var cards=list[0][1].slice(0);
|
|
|
|
|
cards.sort(function(a,b){
|
|
|
|
|
return (_status.event.reverse?1:-1)*(get.value(b)-get.value(a));
|
|
|
|
|
});
|
|
|
|
|
return [cards];
|
|
|
|
|
});
|
2020-02-23 05:45:11 +00:00
|
|
|
|
}
|
|
|
|
|
"step 1"
|
2021-12-09 13:57:51 +00:00
|
|
|
|
if(result.bool&&result.moved&&result.moved[0].length) cards=result.moved[0].slice(0);
|
2020-02-23 05:45:11 +00:00
|
|
|
|
while(cards.length){
|
|
|
|
|
var card=cards.pop();
|
|
|
|
|
if(get.position(card,true)=='o'){
|
|
|
|
|
card.fix();
|
|
|
|
|
ui.cardPile.insertBefore(card,ui.cardPile.firstChild);
|
|
|
|
|
game.log(player,'将',card,'置于牌堆顶');
|
2020-01-01 14:36:18 +00:00
|
|
|
|
}
|
2020-02-23 05:45:11 +00:00
|
|
|
|
}
|
2020-01-01 14:36:18 +00:00
|
|
|
|
game.updateRoundNumber();
|
|
|
|
|
player.draw();
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
"nzry_cunmu":{
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
|
|
|
|
player:'drawBegin'
|
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.bottom=true;
|
|
|
|
|
},
|
|
|
|
|
},
|
2021-02-28 15:59:11 +00:00
|
|
|
|
nzry_mingren:{
|
2019-08-24 15:41:12 +00:00
|
|
|
|
audio:"nzry_mingren_1",
|
|
|
|
|
marktext:"任",
|
|
|
|
|
intro:{
|
2022-04-10 16:34:02 +00:00
|
|
|
|
content:'expansion',
|
|
|
|
|
markcount:'expansion',
|
|
|
|
|
},
|
|
|
|
|
onremove:function(player,skill){
|
|
|
|
|
var cards=player.getExpansions(skill);
|
|
|
|
|
if(cards.length) player.loseToDiscardpile(cards);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
group:["nzry_mingren_1","nzry_mingren_2"],
|
|
|
|
|
subSkill:{
|
2021-02-28 15:59:11 +00:00
|
|
|
|
1:{
|
2019-06-29 13:27:14 +00:00
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
2021-11-23 04:58:31 +00:00
|
|
|
|
global:'phaseBefore',
|
2020-02-08 03:39:33 +00:00
|
|
|
|
player:'enterGame',
|
2019-06-29 13:27:14 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
forced:true,
|
2021-02-28 15:59:11 +00:00
|
|
|
|
locked:false,
|
2020-02-08 03:39:33 +00:00
|
|
|
|
filter:function(event,player){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
return (event.name!='phase'||game.phaseNumber==0)&&!player.getExpansions('nzry_mingren').length;
|
2020-02-08 03:39:33 +00:00
|
|
|
|
},
|
2021-02-28 15:59:11 +00:00
|
|
|
|
content:function(){
|
2019-06-29 13:27:14 +00:00
|
|
|
|
'step 0'
|
2021-02-28 15:59:11 +00:00
|
|
|
|
player.draw(2);
|
2019-06-29 13:27:14 +00:00
|
|
|
|
'step 1'
|
2021-02-28 15:59:11 +00:00
|
|
|
|
if(!player.countCards('h')) event.finish();
|
|
|
|
|
else player.chooseCard('h','将一张手牌置于武将牌上,称为“任”',true).set('ai',function(card){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return 6-get.value(card);
|
|
|
|
|
});
|
2019-06-29 13:27:14 +00:00
|
|
|
|
'step 2'
|
|
|
|
|
if(result.bool){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
player.addToExpansion(result.cards[0],player,'give','log').gaintag.add('nzry_mingren');
|
2019-06-29 13:27:14 +00:00
|
|
|
|
};
|
|
|
|
|
},
|
2019-06-09 03:23:49 +00:00
|
|
|
|
},
|
2021-02-28 15:59:11 +00:00
|
|
|
|
2:{
|
2019-06-09 03:23:49 +00:00
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
2019-11-22 05:19:45 +00:00
|
|
|
|
player:'phaseJieshuBegin',
|
2019-06-09 03:23:49 +00:00
|
|
|
|
},
|
2021-02-28 15:59:11 +00:00
|
|
|
|
filter:function(event,player){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
return player.countCards('h')>0&&player.getExpansions('nzry_mingren').length>0;
|
2021-02-28 15:59:11 +00:00
|
|
|
|
},
|
2019-06-09 03:23:49 +00:00
|
|
|
|
direct:true,
|
2021-02-28 15:59:11 +00:00
|
|
|
|
content:function(){
|
2019-06-09 03:23:49 +00:00
|
|
|
|
'step 0'
|
2022-04-10 16:34:02 +00:00
|
|
|
|
player.chooseCard('h','是否用一张手牌替换“任”('+get.translation(player.getExpansions('nzry_mingren')[0])+')?').set('ai',function(card){
|
2021-02-28 15:59:11 +00:00
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
var color=get.color(card);
|
2022-04-10 16:34:02 +00:00
|
|
|
|
if(color==get.color(player.getExpansions('nzry_mingren')[0])) return false;
|
2021-02-28 15:59:11 +00:00
|
|
|
|
var num=0;
|
|
|
|
|
var list=[];
|
|
|
|
|
player.countCards('h',function(cardx){
|
|
|
|
|
if(cardx!=card||get.color(cardx)!=color) return false;
|
|
|
|
|
if(list.contains(cardx.name)) return false;
|
|
|
|
|
list.push(cardx.name);
|
|
|
|
|
switch(cardx.name){
|
|
|
|
|
case 'wuxie':num+=(game.countPlayer()/2.2);break;
|
|
|
|
|
case 'caochuan':num+=1.1;break;
|
|
|
|
|
case 'shan':num+=1;break;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
return num*(30-get.value(card));
|
2019-08-24 15:41:12 +00:00
|
|
|
|
});
|
2019-06-09 03:23:49 +00:00
|
|
|
|
'step 1'
|
2019-08-24 15:41:12 +00:00
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('nzry_mingren');
|
2022-04-10 16:34:02 +00:00
|
|
|
|
player.addToExpansion(result.cards[0],'log','give',player).gaintag.add('nzry_mingren');
|
|
|
|
|
var card=player.getExpansions('nzry_mingren')[0];
|
|
|
|
|
if(card) player.gain(card,'gain2');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
};
|
2019-06-09 03:23:49 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-01-08 13:11:52 +00:00
|
|
|
|
ai:{
|
|
|
|
|
combo:'nzry_zhenliang',
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
"nzry_zhenliang":{
|
|
|
|
|
audio:"nzry_zhenliang_1",
|
|
|
|
|
mark:true,
|
|
|
|
|
locked:false,
|
|
|
|
|
zhuanhuanji:true,
|
|
|
|
|
intro:{
|
|
|
|
|
content:function(storage,player,skill){
|
2021-02-28 15:59:11 +00:00
|
|
|
|
if(player.storage.nzry_zhenliang==true) return '当你于回合外使用或打出的牌结算完成后,若此牌与“任”颜色相同,则你可以令一名角色摸一张牌。';
|
|
|
|
|
return '出牌阶段限一次,你可以弃置一张与“任”颜色相同的牌并对攻击范围内的一名角色造成1点伤害。';
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
group:["nzry_zhenliang_1","nzry_zhenliang_2"],
|
|
|
|
|
subSkill:{
|
2021-02-28 15:59:11 +00:00
|
|
|
|
1:{
|
|
|
|
|
prompt:'弃置一张与“任”颜色相同的牌,并对攻击范围内的一名角色造成1点伤害。',
|
2019-06-09 03:23:49 +00:00
|
|
|
|
audio:2,
|
2019-08-24 15:41:12 +00:00
|
|
|
|
enable:'phaseUse',
|
2019-06-09 03:23:49 +00:00
|
|
|
|
filter:function(event,player){
|
2021-02-28 15:59:11 +00:00
|
|
|
|
if(player.storage.nzry_zhenliang==true) return false;
|
2022-04-10 16:34:02 +00:00
|
|
|
|
var storage=player.getExpansions('nzry_mingren');
|
2021-02-28 15:59:11 +00:00
|
|
|
|
if(!storage.length) return false;
|
|
|
|
|
var color=get.color(storage[0]);
|
|
|
|
|
if(player.countCards('he',function(card){
|
|
|
|
|
return get.color(card)==color;
|
|
|
|
|
})==0) return false;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return game.hasPlayer(function(current){
|
2021-02-28 15:59:11 +00:00
|
|
|
|
return player.inRange(current);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
position:'he',
|
|
|
|
|
filterCard:function(card,player){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
return get.color(card)==get.color(player.getExpansions('nzry_mingren')[0]);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
2021-02-28 15:59:11 +00:00
|
|
|
|
return player.inRange(target);
|
|
|
|
|
},
|
|
|
|
|
check:function(card){
|
|
|
|
|
return 6.5-get.value(card);
|
2019-06-09 03:23:49 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2021-02-28 15:59:11 +00:00
|
|
|
|
player.storage.nzry_zhenliang=true;
|
|
|
|
|
target.damage('nocard');
|
2019-06-09 03:23:49 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
2019-08-24 15:41:12 +00:00
|
|
|
|
order:5,
|
2019-06-09 03:23:49 +00:00
|
|
|
|
result:{
|
2021-02-28 15:59:11 +00:00
|
|
|
|
player:function(player,target){
|
|
|
|
|
return get.damageEffect(target,player,player);
|
2019-06-09 03:23:49 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2021-02-28 15:59:11 +00:00
|
|
|
|
2:{
|
2019-06-09 03:23:49 +00:00
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
2019-08-24 15:41:12 +00:00
|
|
|
|
player:['useCardAfter','respondAfter'],
|
2019-06-09 03:23:49 +00:00
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2021-02-28 15:59:11 +00:00
|
|
|
|
if(_status.currentPhase==player||player.storage.nzry_zhenliang!=true) return false;
|
2022-04-10 16:34:02 +00:00
|
|
|
|
var card=player.getExpansions('nzry_mingren')[0];
|
2021-02-28 15:59:11 +00:00
|
|
|
|
return card&&get.color(event.card)==get.color(card);
|
2019-06-09 03:23:49 +00:00
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2019-08-30 15:02:50 +00:00
|
|
|
|
player.chooseTarget(get.prompt('nzry_zhenliang'),'令一名角色摸一张牌').ai=function(target){
|
2021-02-28 15:59:11 +00:00
|
|
|
|
if(target.hasSkillTag('nogain')) return 0.1;
|
|
|
|
|
var att=get.attitude(player,target);
|
|
|
|
|
return att*(Math.max(5-target.countCards('h'),2)+3);
|
2019-06-09 03:23:49 +00:00
|
|
|
|
};
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
player.storage.nzry_zhenliang=false;
|
2020-12-16 11:55:55 +00:00
|
|
|
|
player.logSkill('nzry_zhenliang',result.targets);
|
2019-06-09 03:23:49 +00:00
|
|
|
|
result.targets[0].draw();
|
2020-12-16 11:55:55 +00:00
|
|
|
|
}
|
2019-06-09 03:23:49 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-01-08 13:11:52 +00:00
|
|
|
|
ai:{
|
|
|
|
|
combo:'nzry_mingren',
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
'nzry_jianxiang':{
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
2019-10-24 04:55:01 +00:00
|
|
|
|
target:'useCardToTargeted',
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2019-10-24 04:55:01 +00:00
|
|
|
|
return event.player!=player;
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2019-08-30 15:02:50 +00:00
|
|
|
|
player.chooseTarget(get.prompt('nzry_jianxiang'),'令场上手牌数最少的一名角色摸一张牌',function(card,player,target){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return target.isMinHandcard();
|
|
|
|
|
}).ai=function(target){
|
|
|
|
|
return get.attitude(player,target)
|
|
|
|
|
};
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
2019-10-24 04:55:01 +00:00
|
|
|
|
player.logSkill('nzry_jianxiang',result.targets);
|
2019-08-24 15:41:12 +00:00
|
|
|
|
result.targets[0].draw();
|
2019-10-24 04:55:01 +00:00
|
|
|
|
}
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"nzry_shenshi":{
|
|
|
|
|
mark:true,
|
|
|
|
|
audio:'nzry_shenshi_1',
|
|
|
|
|
locked:false,
|
|
|
|
|
zhuanhuanji:true,
|
|
|
|
|
marktext:'审',
|
|
|
|
|
intro:{
|
|
|
|
|
content:function(storage,player,skill){
|
2020-11-07 08:52:28 +00:00
|
|
|
|
if(player.storage.nzry_shenshi==true) return '其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张';
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return '出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张';
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
group:["nzry_shenshi_1","nzry_shenshi_2"],
|
|
|
|
|
subSkill:{
|
|
|
|
|
'1':{
|
|
|
|
|
audio:2,
|
|
|
|
|
prompt:'出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张',
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filter:function(event,player){
|
2021-07-06 08:45:57 +00:00
|
|
|
|
return player.countCards('he')>0&&player.storage.nzry_shenshi!=true;
|
2019-06-09 03:23:49 +00:00
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
discard:false,
|
|
|
|
|
line:true,
|
2020-06-06 04:40:45 +00:00
|
|
|
|
lose:false,
|
|
|
|
|
delay:false,
|
2019-08-24 15:41:12 +00:00
|
|
|
|
position:'he',
|
|
|
|
|
filterCard:true,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target!=player&&!game.hasPlayer(function(current){
|
|
|
|
|
return current!=player&¤t.countCards('h')>target.countCards('h');
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
check:function(card){
|
|
|
|
|
return 5-get.value(card);
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.storage.nzry_shenshi=true;
|
2020-06-06 04:40:45 +00:00
|
|
|
|
target.gain(cards,player,'giveAuto');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
target.damage('nocard');
|
|
|
|
|
'step 1'
|
|
|
|
|
if(!target.isAlive()){
|
|
|
|
|
player.chooseTarget('请选择一名角色并令其将手牌摸至四张',function(card,player,target){
|
|
|
|
|
return target.countCards('h')<4;
|
|
|
|
|
}).ai=function(target){
|
|
|
|
|
return get.attitude(player,target)
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
};
|
|
|
|
|
'step 2'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.line(result.targets);
|
|
|
|
|
result.targets[0].draw(4-result.targets[0].countCards('h'))
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
return -1;
|
2019-06-09 03:23:49 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
'2':{
|
2019-06-09 03:23:49 +00:00
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
2019-12-06 15:40:06 +00:00
|
|
|
|
player:'damageEnd',
|
2019-06-09 03:23:49 +00:00
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return player.countCards('he')>0&&event.source&&event.source!=player&&player.storage.nzry_shenshi==true;
|
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
check:function(event,player){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return event.source&&event.source.countCards('h')<=2&&player.countCards('h')<4;
|
2019-06-09 03:23:49 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
"step 0"
|
|
|
|
|
player.storage.nzry_shenshi=false;
|
|
|
|
|
player.viewHandcards(trigger.source);
|
|
|
|
|
player.chooseCard('he',true).set('ai',function(card){
|
|
|
|
|
return 5-get.value(card);
|
|
|
|
|
});
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
2019-10-09 14:31:43 +00:00
|
|
|
|
trigger.source.gain(result.cards,player,'give');
|
2019-08-24 15:41:12 +00:00
|
|
|
|
trigger.source.storage.nzry_shenshi1=result.cards[0];
|
|
|
|
|
trigger.source.storage.nzry_shenshi2=player;
|
|
|
|
|
trigger.source.addSkill('nzry_shenshi1');
|
2019-06-09 03:23:49 +00:00
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
},
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"nzry_shenshi1":{
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
2019-11-22 05:19:45 +00:00
|
|
|
|
global:'phaseJieshuBegin',
|
2019-08-24 15:41:12 +00:00
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
popup:false,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return player.storage.nzry_shenshi1!=undefined&&player.storage.nzry_shenshi2!=undefined;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
var pl=player.storage.nzry_shenshi2;
|
|
|
|
|
var card=player.storage.nzry_shenshi1;
|
2020-09-30 07:46:55 +00:00
|
|
|
|
if(player.getCards('he').contains(card)&&4-pl.countCards('h')>0){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
pl.draw(4-pl.countCards('h'));
|
|
|
|
|
pl.logSkill('nzry_shenshi');
|
|
|
|
|
};
|
|
|
|
|
player.removeSkill('nzry_shenshi1');
|
|
|
|
|
delete player.storage.nzry_shenshi1;
|
|
|
|
|
delete player.storage.nzry_shenshi2;
|
|
|
|
|
},
|
|
|
|
|
},
|
2019-06-09 03:23:49 +00:00
|
|
|
|
|
2018-04-17 07:32:43 +00:00
|
|
|
|
xinjushou:{
|
2020-02-23 05:45:11 +00:00
|
|
|
|
audio:2,
|
2019-11-22 05:19:45 +00:00
|
|
|
|
trigger:{player:'phaseJieshuBegin'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.draw(4);
|
|
|
|
|
player.turnOver();
|
|
|
|
|
'step 1'
|
|
|
|
|
player.chooseCard('h',true,'弃置一张手牌,若以此法弃置的是装备牌,则你改为使用之').set('ai',function(card){
|
|
|
|
|
if(get.type(card)=='equip'){
|
|
|
|
|
return 5-get.value(card);
|
|
|
|
|
}
|
|
|
|
|
return -get.value(card);
|
|
|
|
|
}).set('filterCard',lib.filter.cardDiscardable);
|
|
|
|
|
'step 2'
|
|
|
|
|
if(result.bool&&result.cards.length){
|
2019-06-13 12:51:34 +00:00
|
|
|
|
if(get.type(result.cards[0])=='equip'&&!player.isDisabled(get.subtype(result.cards[0]))){
|
2019-09-22 15:02:29 +00:00
|
|
|
|
player.chooseUseTarget(result.cards[0],true,'nopopup');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.discard(result.cards[0]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
|
|
|
|
if(card.name=='guiyoujie') return [0,1];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
xinjiewei:{
|
2020-02-23 05:45:11 +00:00
|
|
|
|
audio:2,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
enable:'chooseToUse',
|
|
|
|
|
filterCard:true,
|
|
|
|
|
position:'e',
|
|
|
|
|
viewAs:{name:'wuxie'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('e')>0;
|
|
|
|
|
},
|
|
|
|
|
viewAsFilter:function(player){
|
|
|
|
|
return player.countCards('e')>0;
|
|
|
|
|
},
|
|
|
|
|
prompt:'将一张装备区内的牌当无懈可击使用',
|
|
|
|
|
check:function(card){return 8-get.equipValue(card)},
|
|
|
|
|
threaten:1.2,
|
|
|
|
|
group:'xinjiewei_move',
|
|
|
|
|
subSkill:{
|
|
|
|
|
move:{
|
|
|
|
|
trigger:{player:'turnOverEnd'},
|
|
|
|
|
direct:true,
|
|
|
|
|
audio:'jiewei',
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !player.isTurnedOver()&&player.canMoveCard();
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.chooseToDiscard('he',get.prompt('xinjiewei'),'弃置一张牌并移动场上的一张牌',lib.filter.cardDiscardable).set('ai',function(card){
|
|
|
|
|
if(!_status.event.check) return 0;
|
|
|
|
|
return 7-get.value(card);
|
|
|
|
|
}).set('check',player.canMoveCard(true)).set('logSkill','xinjiewei');
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.moveCard(true);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
jianchu:{
|
2020-03-25 12:27:23 +00:00
|
|
|
|
shaRelated:true,
|
2019-07-23 09:59:48 +00:00
|
|
|
|
audio:2,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_pangde'],
|
2019-10-24 04:55:01 +00:00
|
|
|
|
trigger:{player:'useCardToPlayered'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.card.name=='sha'&&event.target.countDiscardableCards(player,'he')>0;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
|
|
|
|
check:function(event,player){
|
2022-01-15 06:12:01 +00:00
|
|
|
|
return get.attitude(player,event.target)<=0;
|
2021-10-22 05:07:02 +00:00
|
|
|
|
},
|
|
|
|
|
logTarget:'target',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2021-10-22 05:07:02 +00:00
|
|
|
|
player.discardPlayerCard(trigger.target,get.prompt('jianchu',trigger.target),true).set('ai',function(button){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(!_status.event.att) return 0;
|
2020-03-05 13:10:37 +00:00
|
|
|
|
if(get.position(button.link)=='e'){
|
|
|
|
|
if(get.subtype(button.link)=='equip2') return 2*get.value(button.link);
|
|
|
|
|
return get.value(button.link);
|
|
|
|
|
}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return 1;
|
2021-10-22 05:07:02 +00:00
|
|
|
|
}).set('att',get.attitude(player,trigger.target)<=0);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool&&result.links&&result.links.length){
|
2020-04-29 05:59:50 +00:00
|
|
|
|
if(get.type(result.links[0],null,result.links[0].original=='h'?player:false)=='equip'){
|
2019-10-24 04:55:01 +00:00
|
|
|
|
trigger.getParent().directHit.add(trigger.target);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
else if(trigger.cards){
|
2019-11-23 12:41:07 +00:00
|
|
|
|
var list=[];
|
|
|
|
|
for(var i=0;i<trigger.cards.length;i++){
|
2019-12-16 04:54:06 +00:00
|
|
|
|
if(get.position(trigger.cards[i],true)=='o') list.push(trigger.cards[i]);
|
2019-11-23 12:41:07 +00:00
|
|
|
|
}
|
|
|
|
|
if(list.length) trigger.target.gain(list,'gain2','log');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2020-03-05 13:10:37 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
unequip_ai:true,
|
2021-01-19 14:04:52 +00:00
|
|
|
|
directHit_ai:true,
|
2020-03-05 13:10:37 +00:00
|
|
|
|
skillTagFilter:function(player,tag,arg){
|
2021-01-19 14:04:52 +00:00
|
|
|
|
if(tag=='directHit_ai') return arg.card.name=='sha'&&arg.target.countCards('e',function(card){
|
|
|
|
|
return get.value(card)>1;
|
|
|
|
|
})>0;
|
2020-03-05 13:10:37 +00:00
|
|
|
|
if(arg&&arg.name=='sha'&&arg.target.getEquip(2)) return true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
redimeng:{
|
|
|
|
|
audio:'dimeng',
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
position:'he',
|
|
|
|
|
filterCard:function(){
|
|
|
|
|
if(ui.selected.targets.length==2) return false;
|
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
selectCard:[0,Infinity],
|
|
|
|
|
selectTarget:2,
|
|
|
|
|
complexCard:true,
|
|
|
|
|
complexSelect:true,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
if(player==target) return false;
|
|
|
|
|
if(ui.selected.targets.length==0) return true;
|
|
|
|
|
return (Math.abs(ui.selected.targets[0].countCards('h')-target.countCards('h'))==
|
|
|
|
|
ui.selected.cards.length);
|
|
|
|
|
},
|
|
|
|
|
multitarget:true,
|
|
|
|
|
multiline:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var cards=targets[0].getCards('h').concat(targets[1].getCards('h'));
|
|
|
|
|
var dialog=ui.create.dialog('缔盟',true);
|
|
|
|
|
if(player.isUnderControl(true)||targets[0].isUnderControl(true)||targets[1].isUnderControl(true)){
|
|
|
|
|
dialog.add(cards);
|
|
|
|
|
dialog.seeing=true;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
dialog.add([cards,'blank']);
|
|
|
|
|
}
|
|
|
|
|
_status.dieClose.push(dialog);
|
|
|
|
|
dialog.videoId=lib.status.videoId++;
|
|
|
|
|
game.addVideo('cardDialog',null,['缔盟',get.cardsInfo(cards),dialog.videoId]);
|
|
|
|
|
game.broadcast(function(cards,id,player,targets){
|
|
|
|
|
var dialog=ui.create.dialog('缔盟',true);
|
|
|
|
|
if(player.isUnderControl(true)||targets[0].isUnderControl(true)||targets[1].isUnderControl(true)){
|
|
|
|
|
dialog.add(cards);
|
|
|
|
|
dialog.seeing=true;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
dialog.add([cards,'blank']);
|
|
|
|
|
}
|
|
|
|
|
_status.dieClose.push(dialog);
|
|
|
|
|
dialog.videoId=id;
|
|
|
|
|
},cards,dialog.videoId,player,targets);
|
2017-01-23 13:04:22 +00:00
|
|
|
|
|
2018-04-17 07:32:43 +00:00
|
|
|
|
event.current=targets[0];
|
|
|
|
|
event.dialog=dialog;
|
|
|
|
|
event.num1=0;
|
|
|
|
|
event.num2=0;
|
|
|
|
|
game.delay();
|
|
|
|
|
'step 1'
|
|
|
|
|
if(event.dialog.buttons.length>1){
|
|
|
|
|
var next=event.current.chooseButton(true,function(button){
|
|
|
|
|
return get.value(button.link,_status.event.player);
|
|
|
|
|
});
|
|
|
|
|
next.set('dialog',event.dialog.videoId);
|
|
|
|
|
next.set('closeDialog',false);
|
|
|
|
|
next.set('dialogdisplay',true);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.directButton=event.dialog.buttons[0];
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
var dialog=event.dialog;
|
|
|
|
|
var card;
|
|
|
|
|
if(event.directButton){
|
|
|
|
|
card=event.directButton.link;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
card=result.links[0];
|
|
|
|
|
}
|
|
|
|
|
for(var i=0;i<dialog.buttons.length;i++){
|
|
|
|
|
if(dialog.buttons[i].link==card){
|
|
|
|
|
var button=dialog.buttons[i];
|
|
|
|
|
if(dialog.seeing){
|
|
|
|
|
button.querySelector('.info').innerHTML=get.translation(event.current.name);
|
|
|
|
|
if(!_status.connectMode){
|
|
|
|
|
game.log(event.current,'选择了',button.link);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
dialog.buttons.remove(button);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(card){
|
|
|
|
|
event.current.gain(card);
|
|
|
|
|
if(dialog.seeing){
|
|
|
|
|
event.current.$draw(card,'nobroadcast');
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.current.$draw(1,'nobroadcast');
|
|
|
|
|
}
|
|
|
|
|
game.broadcast(function(card,id,target){
|
|
|
|
|
var dialog=get.idDialog(id);
|
|
|
|
|
if(dialog&&dialog.seeing){
|
|
|
|
|
for(var i=0;i<dialog.buttons.length;i++){
|
|
|
|
|
if(dialog.buttons[i].link==card){
|
|
|
|
|
dialog.buttons[i].querySelector('.info').innerHTML=get.translation(target.name);
|
|
|
|
|
dialog.buttons.splice(i--,1);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
target.$draw(card,'nobroadcast');
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
target.$draw(1,'nobroadcast');
|
|
|
|
|
}
|
|
|
|
|
},card,dialog.videoId,event.current);
|
|
|
|
|
}
|
|
|
|
|
game.delay(2);
|
|
|
|
|
if(event.current==targets[0]){
|
|
|
|
|
event.num1++;
|
|
|
|
|
event.current=targets[1];
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.num2++;
|
|
|
|
|
event.current=targets[0];
|
|
|
|
|
}
|
|
|
|
|
if(dialog.buttons.length){
|
|
|
|
|
event.goto(1);
|
|
|
|
|
}
|
|
|
|
|
'step 3'
|
|
|
|
|
if(!_status.connectMode){
|
|
|
|
|
game.log(targets[0],'获得了'+get.cnNumber(event.num1)+'张牌');
|
|
|
|
|
game.log(targets[1],'获得了'+get.cnNumber(event.num2)+'张牌');
|
|
|
|
|
}
|
|
|
|
|
var dialog=event.dialog;
|
|
|
|
|
dialog.close();
|
|
|
|
|
_status.dieClose.remove(dialog);
|
|
|
|
|
game.broadcast(function(id){
|
|
|
|
|
var dialog=get.idDialog(id);
|
|
|
|
|
if(dialog){
|
|
|
|
|
dialog.close();
|
|
|
|
|
_status.dieClose.remove(dialog);
|
|
|
|
|
}
|
|
|
|
|
},dialog.videoId);
|
|
|
|
|
game.addVideo('cardDialog',null,dialog.videoId);
|
|
|
|
|
},
|
|
|
|
|
targetprompt:['先拿牌','后拿牌'],
|
|
|
|
|
find:function(type){
|
|
|
|
|
var list=game.filterPlayer(function(current){
|
|
|
|
|
return current!=player&&get.attitude(player,current)>3;
|
|
|
|
|
});
|
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
var num=player.countCards('he',function(card){
|
|
|
|
|
return get.value(card)<7;
|
|
|
|
|
});
|
|
|
|
|
var count=null;
|
|
|
|
|
var from,nh;
|
|
|
|
|
if(list.length==0) return null;
|
|
|
|
|
list.sort(function(a,b){
|
|
|
|
|
return a.countCards('h')-b.countCards('h');
|
|
|
|
|
});
|
|
|
|
|
if(type==1) return list[0];
|
|
|
|
|
from=list[0];
|
|
|
|
|
nh=from.countCards('h');
|
2017-01-23 12:19:03 +00:00
|
|
|
|
|
2018-04-17 07:32:43 +00:00
|
|
|
|
list=game.filterPlayer(function(current){
|
|
|
|
|
return current!=player&&get.attitude(player,current)<1;
|
|
|
|
|
});
|
|
|
|
|
if(list.length==0) return null;
|
|
|
|
|
list.sort(function(a,b){
|
|
|
|
|
return b.countCards('h')-a.countCards('h');
|
|
|
|
|
});
|
|
|
|
|
for(var i=0;i<list.length;i++){
|
|
|
|
|
var nh2=list[i].countCards('h');
|
|
|
|
|
if(nh2-nh<=num){
|
|
|
|
|
count=nh2-nh;break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(count==null||count<0) return null;
|
|
|
|
|
if(type==3) return count;
|
|
|
|
|
return list[i];
|
|
|
|
|
},
|
|
|
|
|
check:function(card){
|
|
|
|
|
var count=lib.skill.redimeng.find(3);
|
|
|
|
|
if(count==null) return -1;
|
|
|
|
|
if(ui.selected.cards.length<count) return 7-get.value(card);
|
|
|
|
|
return -1;
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:8,
|
|
|
|
|
threaten:1.6,
|
|
|
|
|
expose:0.5,
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player,target){
|
|
|
|
|
if(ui.selected.targets.length==0){
|
|
|
|
|
if(target==lib.skill.redimeng.find(1)) return 1;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
if(target==lib.skill.redimeng.find(2)) return 1;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2020-10-05 05:33:08 +00:00
|
|
|
|
ollianhuan:{
|
|
|
|
|
audio:'xinlianhuan',
|
|
|
|
|
audioname:['ol_pangtong'],
|
|
|
|
|
group:['ollianhuan3','ollianhuan5','lianhuan4'],
|
|
|
|
|
},
|
|
|
|
|
ollianhuan5:{
|
|
|
|
|
inherit:'lianhuan2',
|
|
|
|
|
audioname:['ol_pangtong'],
|
|
|
|
|
audio:['xinlianhuan',2],
|
|
|
|
|
position:'he',
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('he',{suit:'club'})>0;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
ollianhuan3:{
|
|
|
|
|
audio:['xinlianhuan',1],
|
|
|
|
|
audioname:['ol_pangtong'],
|
|
|
|
|
enable:'chooseToUse',
|
|
|
|
|
filter:function(event,player){
|
2021-05-18 07:57:26 +00:00
|
|
|
|
return player.countCards('hes',{suit:'club'})>0;
|
2020-10-05 05:33:08 +00:00
|
|
|
|
},
|
|
|
|
|
filterCard:{suit:'club'},
|
|
|
|
|
viewAs:{name:'tiesuo'},
|
|
|
|
|
prompt:'将一张梅花牌当铁锁连环使用',
|
|
|
|
|
check:function(card){return 6-get.value(card)},
|
2021-05-18 07:57:26 +00:00
|
|
|
|
position:'hes',
|
2020-10-05 05:33:08 +00:00
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
xinlianhuan:{
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audio:2,
|
2020-04-25 05:40:05 +00:00
|
|
|
|
audioname:['ol_pangtong'],
|
2019-12-28 14:03:35 +00:00
|
|
|
|
group:['lianhuan3','lianhuan5','lianhuan4'],
|
|
|
|
|
},
|
|
|
|
|
lianhuan5:{
|
|
|
|
|
inherit:'lianhuan2',
|
2020-04-25 05:40:05 +00:00
|
|
|
|
audioname:['ol_pangtong'],
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audio:['xinlianhuan',2],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
lianhuan3:{
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audio:['xinlianhuan',1],
|
2020-04-25 05:40:05 +00:00
|
|
|
|
audioname:['ol_pangtong'],
|
2020-03-05 13:10:37 +00:00
|
|
|
|
enable:'chooseToUse',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
2021-05-18 07:57:26 +00:00
|
|
|
|
return player.countCards('hs',{suit:'club'})>0;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
filterCard:{suit:'club'},
|
|
|
|
|
viewAs:{name:'tiesuo'},
|
|
|
|
|
prompt:'将一张梅花牌当铁锁连环使用',
|
|
|
|
|
check:function(card){return 6-get.value(card)},
|
|
|
|
|
},
|
|
|
|
|
lianhuan4:{
|
2019-07-14 10:58:01 +00:00
|
|
|
|
mod:{
|
2020-04-25 05:40:05 +00:00
|
|
|
|
selectTarget:function(card,player,range){
|
|
|
|
|
if(card.name=='tiesuo'&&range[1]!=-1) range[1]++;
|
|
|
|
|
},
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
reluanji:{
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audio:2,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
viewAs:{name:'wanjian'},
|
|
|
|
|
filterCard:function(card,player){
|
|
|
|
|
if(!player.storage.reluanji) return true;
|
|
|
|
|
return !player.storage.reluanji.contains(get.suit(card));
|
|
|
|
|
},
|
2021-05-18 07:57:26 +00:00
|
|
|
|
position:'hs',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
selectCard:2,
|
|
|
|
|
check:function(card){
|
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
var targets=game.filterPlayer(function(current){
|
|
|
|
|
return player.canUse('wanjian',current);
|
|
|
|
|
});
|
|
|
|
|
var num=0;
|
|
|
|
|
for(var i=0;i<targets.length;i++){
|
|
|
|
|
var eff=get.sgn(get.effect(targets[i],{name:'wanjian'},player,player));
|
|
|
|
|
if(targets[i].hp==1){
|
|
|
|
|
eff*=1.5;
|
|
|
|
|
}
|
|
|
|
|
num+=eff;
|
|
|
|
|
}
|
|
|
|
|
if(!player.needsToDiscard(-1)){
|
|
|
|
|
if(targets.length>=7){
|
|
|
|
|
if(num<2) return 0;
|
|
|
|
|
}
|
|
|
|
|
else if(targets.length>=5){
|
|
|
|
|
if(num<1.5) return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return 6-get.value(card);
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
basic:{
|
2019-11-03 01:16:54 +00:00
|
|
|
|
order:8.9
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
2019-07-14 10:58:01 +00:00
|
|
|
|
group:['reluanji_count','reluanji_reset','reluanji_respond','reluanji_damage','reluanji_draw'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
subSkill:{
|
|
|
|
|
reset:{
|
|
|
|
|
trigger:{player:'phaseAfter'},
|
|
|
|
|
silent:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
delete player.storage.reluanji;
|
2019-07-14 10:58:01 +00:00
|
|
|
|
delete player.storage.reluanji2;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
count:{
|
|
|
|
|
trigger:{player:'useCard'},
|
|
|
|
|
silent:true,
|
|
|
|
|
filter:function(event){
|
|
|
|
|
return event.skill=='reluanji';
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2019-10-26 12:40:13 +00:00
|
|
|
|
player.storage.reluanji2=trigger.card;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(!player.storage.reluanji){
|
|
|
|
|
player.storage.reluanji=[];
|
|
|
|
|
}
|
|
|
|
|
for(var i=0;i<trigger.cards.length;i++){
|
|
|
|
|
player.storage.reluanji.add(get.suit(trigger.cards[i]));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
respond:{
|
|
|
|
|
trigger:{global:'respond'},
|
|
|
|
|
silent:true,
|
|
|
|
|
filter:function(event){
|
2019-07-14 10:58:01 +00:00
|
|
|
|
return event.getParent(2).skill=='reluanji';
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.player.draw();
|
|
|
|
|
}
|
2019-07-14 10:58:01 +00:00
|
|
|
|
},
|
|
|
|
|
damage:{
|
2019-10-09 14:31:43 +00:00
|
|
|
|
trigger:{source:'damage'},
|
2019-08-07 15:38:38 +00:00
|
|
|
|
forced:true,
|
|
|
|
|
silent:true,
|
|
|
|
|
popup:false,
|
|
|
|
|
filter:function(event,player){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return player.storage.reluanji2&&event.card==player.storage.reluanji2;
|
2019-08-07 15:38:38 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
delete player.storage.reluanji2;
|
2019-08-07 15:38:38 +00:00
|
|
|
|
},
|
2019-07-14 10:58:01 +00:00
|
|
|
|
},
|
|
|
|
|
draw:{
|
2019-08-07 15:38:38 +00:00
|
|
|
|
trigger:{player:'useCardAfter'},
|
|
|
|
|
forced:true,
|
|
|
|
|
silent:true,
|
|
|
|
|
popup:false,
|
|
|
|
|
filter:function(event,player){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
return player.storage.reluanji2&&event.card==player.storage.reluanji2;
|
2019-08-07 15:38:38 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2019-08-24 15:41:12 +00:00
|
|
|
|
player.draw(trigger.targets.length);
|
2019-10-26 12:40:13 +00:00
|
|
|
|
delete player.storage.reluanji2;
|
2019-08-07 15:38:38 +00:00
|
|
|
|
},
|
2019-07-14 10:58:01 +00:00
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
qimou:{
|
|
|
|
|
unique:true,
|
2019-07-17 08:25:58 +00:00
|
|
|
|
limited:true,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audio:2,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !player.storage.qimou;
|
|
|
|
|
},
|
|
|
|
|
init:function(player){
|
|
|
|
|
player.storage.qimou=false;
|
|
|
|
|
},
|
|
|
|
|
mark:true,
|
|
|
|
|
intro:{
|
|
|
|
|
content:'limited'
|
|
|
|
|
},
|
2019-09-15 14:45:05 +00:00
|
|
|
|
skillAnimation:true,
|
|
|
|
|
animationColor:'orange',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var shas=player.getCards('h','sha');
|
|
|
|
|
var num;
|
|
|
|
|
if(player.hp>=4&&shas.length>=3){
|
|
|
|
|
num=3;
|
|
|
|
|
}
|
|
|
|
|
else if(player.hp>=3&&shas.length>=2){
|
|
|
|
|
num=2;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
num=1
|
|
|
|
|
}
|
2019-10-19 11:18:56 +00:00
|
|
|
|
var map={};
|
|
|
|
|
var list=[];
|
|
|
|
|
for(var i=1;i<=player.hp;i++){
|
|
|
|
|
var cn=get.cnNumber(i,true);
|
|
|
|
|
map[cn]=i;
|
|
|
|
|
list.push(cn);
|
|
|
|
|
}
|
|
|
|
|
event.map=map;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.awakenSkill('qimou');
|
|
|
|
|
player.storage.qimou=true;
|
2019-10-19 11:18:56 +00:00
|
|
|
|
player.chooseControl(list,function(){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return get.cnNumber(_status.event.goon,true);
|
|
|
|
|
}).set('prompt','失去任意点体力').set('goon',num);
|
|
|
|
|
'step 1'
|
2019-10-19 11:18:56 +00:00
|
|
|
|
var num=event.map[result.control]||1;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.storage.qimou2=num;
|
|
|
|
|
player.loseHp(num);
|
|
|
|
|
player.addTempSkill('qimou2');
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:2,
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player){
|
|
|
|
|
if(player.hp==1) return 0;
|
|
|
|
|
var shas=player.getCards('h','sha');
|
|
|
|
|
if(!shas.length) return 0;
|
|
|
|
|
var card=shas[0];
|
|
|
|
|
if(!lib.filter.cardEnabled(card,player)) return 0;
|
|
|
|
|
if(lib.filter.cardUsable(card,player)) return 0;
|
|
|
|
|
var mindist;
|
|
|
|
|
if(player.hp>=4&&shas.length>=3){
|
|
|
|
|
mindist=4;
|
|
|
|
|
}
|
|
|
|
|
else if(player.hp>=3&&shas.length>=2){
|
|
|
|
|
mindist=3;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
mindist=2;
|
|
|
|
|
}
|
|
|
|
|
if(game.hasPlayer(function(current){
|
|
|
|
|
return (current.hp<=mindist-1&&
|
|
|
|
|
get.distance(player,current,'attack')<=mindist&&
|
|
|
|
|
player.canUse(card,current,false)&&
|
|
|
|
|
get.effect(current,card,player,player)>0);
|
|
|
|
|
})){
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
qimou2:{
|
|
|
|
|
onremove:true,
|
|
|
|
|
mod:{
|
|
|
|
|
cardUsable:function(card,player,num){
|
|
|
|
|
if(typeof player.storage.qimou2=='number'&&card.name=='sha'){
|
|
|
|
|
return num+player.storage.qimou2;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
globalFrom:function(from,to,distance){
|
|
|
|
|
if(typeof from.storage.qimou2=='number'){
|
|
|
|
|
return distance-from.storage.qimou2;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
xinkuanggu:{
|
2019-10-09 14:31:43 +00:00
|
|
|
|
trigger:{source:'damageSource'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return get.distance(player,event.player)<=1&&event.num>0;
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
audio:'kuanggu',
|
2020-05-29 11:10:14 +00:00
|
|
|
|
audioname:['re_weiyan','ol_weiyan'],
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
event.num=trigger.num;
|
|
|
|
|
'step 1'
|
2021-05-21 12:54:33 +00:00
|
|
|
|
var choice;
|
|
|
|
|
if(player.isDamaged()&&get.recoverEffect(player)>0&&(player.countCards('hs',function(card){
|
|
|
|
|
return card.name=='sha'&&player.hasValueTarget(card);
|
|
|
|
|
})>=player.getCardUsable('sha'))){
|
|
|
|
|
choice='recover_hp';
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
choice='draw_card';
|
|
|
|
|
}
|
|
|
|
|
var next=player.chooseDrawRecover(get.prompt(event.name)).set('logSkill',event.name).set('prompt2','摸一张牌或回复1点体力');
|
|
|
|
|
next.set('choice',choice);
|
|
|
|
|
next.set('ai',function(){
|
|
|
|
|
return _status.event.getParent().choice;
|
|
|
|
|
});
|
2021-10-22 05:07:02 +00:00
|
|
|
|
next.setHiddenSkill('xinkuanggu');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
'step 2'
|
|
|
|
|
if(result.control!='cancel2'){
|
|
|
|
|
event.num--;
|
|
|
|
|
if(event.num>0){
|
|
|
|
|
event.goto(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
xinliegong:{
|
2020-03-25 12:27:23 +00:00
|
|
|
|
shaRelated:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
mod:{
|
|
|
|
|
targetInRange:function(card,player,target){
|
2020-10-09 03:37:02 +00:00
|
|
|
|
if(card.name=='sha'&&typeof get.number(card)=='number'){
|
|
|
|
|
if(get.distance(player,target)<=get.number(card)) return true;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
audio:'liegong',
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_huangzhong'],
|
2019-11-22 05:19:45 +00:00
|
|
|
|
trigger:{player:'useCardToTargeted'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
logTarget:'target',
|
|
|
|
|
check:function(event,player){
|
|
|
|
|
return get.attitude(player,event.target)<=0;
|
|
|
|
|
},
|
|
|
|
|
filter:function(event,player){
|
2019-11-22 05:19:45 +00:00
|
|
|
|
if(event.card.name!='sha') return false;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(event.target.countCards('h')<=player.countCards('h')) return true;
|
2019-11-03 01:16:54 +00:00
|
|
|
|
if(event.target.hp>=player.hp) return true;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2019-11-22 05:19:45 +00:00
|
|
|
|
if(trigger.target.countCards('h')<=player.countCards('h')) trigger.getParent().directHit.push(trigger.target);
|
2019-06-17 07:19:46 +00:00
|
|
|
|
if(trigger.target.hp>=player.hp){
|
2019-11-22 05:19:45 +00:00
|
|
|
|
var id=trigger.target.playerid;
|
|
|
|
|
var map=trigger.getParent().customArgs;
|
|
|
|
|
if(!map[id]) map[id]={};
|
|
|
|
|
if(typeof map[id].extraDamage!='number'){
|
|
|
|
|
map[id].extraDamage=0;
|
2019-08-07 15:38:38 +00:00
|
|
|
|
}
|
2019-11-22 05:19:45 +00:00
|
|
|
|
map[id].extraDamage++;
|
2019-11-03 01:16:54 +00:00
|
|
|
|
}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
2021-01-19 14:04:52 +00:00
|
|
|
|
threaten:0.5,
|
|
|
|
|
directHit_ai:true,
|
|
|
|
|
skillTagFilter:function(player,tag,arg){
|
|
|
|
|
if(get.attitude(player,arg.target)<=0&&arg.card.name=='sha'&&player.countCards('h',function(card){
|
|
|
|
|
return card!=arg.card&&(!arg.card.cards||!arg.card.cards.contains(card));
|
|
|
|
|
})>=arg.target.countCards('h')) return true;
|
|
|
|
|
return false;
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
tiaoxin:{
|
2019-07-23 09:59:48 +00:00
|
|
|
|
audio:2,
|
2021-08-05 11:46:11 +00:00
|
|
|
|
audioname:['sp_jiangwei','xiahouba','re_jiangwei','gz_jiangwei','ol_jiangwei'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filterTarget:function(card,player,target){
|
2020-03-05 13:10:37 +00:00
|
|
|
|
return target!=player&&target.inRange(player)&&target.countCards('he')>0;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2021-01-19 14:04:52 +00:00
|
|
|
|
target.chooseToUse(function(card,player,event){
|
|
|
|
|
if(get.name(card)!='sha') return false;
|
|
|
|
|
return lib.filter.filterCard.apply(this,arguments);
|
|
|
|
|
},'挑衅:对'+get.translation(player)+'使用一张杀,或令其弃置你的一张牌').set('targetRequired',true).set('complexSelect',true).set('filterTarget',function(card,player,target){
|
2019-11-14 05:47:38 +00:00
|
|
|
|
if(target!=_status.event.sourcex&&!ui.selected.targets.contains(_status.event.sourcex)) return false;
|
|
|
|
|
return lib.filter.filterTarget.apply(this,arguments);
|
|
|
|
|
}).set('sourcex',player);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool==false&&target.countCards('he')>0){
|
|
|
|
|
player.discardPlayerCard(target,'he',true);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:4,
|
|
|
|
|
expose:0.2,
|
|
|
|
|
result:{
|
|
|
|
|
target:-1,
|
|
|
|
|
player:function(player,target){
|
|
|
|
|
if(target.countCards('h')==0) return 0;
|
|
|
|
|
if(target.countCards('h')==1) return -0.1;
|
|
|
|
|
if(player.hp<=2) return -2;
|
|
|
|
|
if(player.countCards('h','shan')==0) return -1;
|
|
|
|
|
return -0.5;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
threaten:1.1
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
zhiji:{
|
|
|
|
|
skillAnimation:true,
|
2019-09-15 14:45:05 +00:00
|
|
|
|
animationColor:'fire',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
audio:2,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_jiangwei'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
unique:true,
|
2019-07-17 08:25:58 +00:00
|
|
|
|
juexingji:true,
|
2019-08-17 10:44:34 +00:00
|
|
|
|
//priority:-10,
|
2019-06-09 03:23:49 +00:00
|
|
|
|
derivation:'reguanxing',
|
2019-11-22 05:19:45 +00:00
|
|
|
|
trigger:{player:'phaseZhunbeiBegin'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(player.storage.zhiji) return false;
|
|
|
|
|
return player.countCards('h')==0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.awakenSkill('zhiji');
|
2019-08-17 10:44:34 +00:00
|
|
|
|
player.chooseDrawRecover(2,true);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
"step 1"
|
|
|
|
|
player.loseMaxHp();
|
|
|
|
|
player.storage.zhiji=true;
|
|
|
|
|
if(player.hp>player.maxHp) player.hp=player.maxHp;
|
|
|
|
|
player.update();
|
2019-06-09 03:23:49 +00:00
|
|
|
|
player.addSkill('reguanxing');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
xiangle:{
|
|
|
|
|
audio:2,
|
2020-03-05 13:10:37 +00:00
|
|
|
|
audioname:['re_liushan','ol_liushan'],
|
2019-10-24 04:55:01 +00:00
|
|
|
|
trigger:{target:'useCardToTargeted'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
forced:true,
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.card.name=='sha';
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
var eff=get.effect(player,trigger.card,trigger.player,trigger.player);
|
|
|
|
|
trigger.player.chooseToDiscard('享乐:弃置一张基本牌,否则杀对'+get.translation(player)+'无效',function(card){
|
|
|
|
|
return get.type(card)=='basic';
|
|
|
|
|
}).set('ai',function(card){
|
|
|
|
|
if(_status.event.eff>0){
|
|
|
|
|
return 10-get.value(card);
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}).set('eff',eff);
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool==false){
|
2019-10-24 04:55:01 +00:00
|
|
|
|
trigger.getParent().excluded.add(player);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target,current){
|
|
|
|
|
if(card.name=='sha'&&get.attitude(player,target)<0){
|
|
|
|
|
if(_status.event.name=='xiangle') return;
|
|
|
|
|
var bs=player.getCards('h',{type:'basic'});
|
|
|
|
|
if(bs.length<2) return 0;
|
|
|
|
|
if(player.hasSkill('jiu')||player.hasSkill('tianxianjiu')) return;
|
|
|
|
|
if(bs.length<=3&&player.countCards('h','sha')<=1){
|
|
|
|
|
for(var i=0;i<bs.length;i++){
|
|
|
|
|
if(bs[i].name!='sha'&&get.value(bs[i])<7){
|
|
|
|
|
return [1,0,1,-0.5];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
return [1,0,1,-0.5];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
fangquan:{
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{player:'phaseUseBefore'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('h')>0&&!player.hasSkill('fangquan3');
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2020-02-23 05:45:11 +00:00
|
|
|
|
var fang=player.countMark('fangquan2')==0&&player.hp>=2&&player.countCards('h')<=player.hp+1;
|
2019-11-23 12:41:07 +00:00
|
|
|
|
player.chooseBool(get.prompt2('fangquan')).set('ai',function(){
|
|
|
|
|
if(!_status.event.fang) return false;
|
|
|
|
|
return game.hasPlayer(function(target){
|
2019-11-26 14:50:57 +00:00
|
|
|
|
if(target.hasJudge('lebu')||target==player) return false;
|
2019-11-23 12:41:07 +00:00
|
|
|
|
if(get.attitude(player,target)>4){
|
|
|
|
|
return (get.threaten(target)/Math.sqrt(target.hp+1)/Math.sqrt(target.countCards('h')+1)>0);
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
});
|
2021-10-22 05:07:02 +00:00
|
|
|
|
}).set('fang',fang).setHiddenSkill(event.name);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
2019-11-23 12:41:07 +00:00
|
|
|
|
player.logSkill('fangquan');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
trigger.cancel();
|
2020-03-05 13:10:37 +00:00
|
|
|
|
player.addTempSkill('fangquan2');
|
2020-02-23 05:45:11 +00:00
|
|
|
|
player.addMark('fangquan2',1,false);
|
2019-11-23 12:41:07 +00:00
|
|
|
|
//player.storage.fangquan=result.targets[0];
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
fangquan2:{
|
2019-11-26 05:15:06 +00:00
|
|
|
|
trigger:{player:'phaseEnd'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
forced:true,
|
|
|
|
|
popup:false,
|
|
|
|
|
audio:false,
|
2019-11-22 05:19:45 +00:00
|
|
|
|
//priority:-50,
|
2020-02-23 05:45:11 +00:00
|
|
|
|
onremove:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2020-02-23 05:45:11 +00:00
|
|
|
|
event.count=player.countMark(event.name);
|
2020-03-05 13:10:37 +00:00
|
|
|
|
player.removeMark(event.name,event.count);
|
2020-02-23 05:45:11 +00:00
|
|
|
|
"step 1"
|
|
|
|
|
event.count--;
|
2020-01-26 11:35:17 +00:00
|
|
|
|
player.chooseToDiscard('是否弃置一张牌并令一名其他角色进行一个额外回合?').set('logSkill',player.name=='re_liushan'?'refangquan':'fangquan').ai=function(card){
|
2019-11-23 12:41:07 +00:00
|
|
|
|
return 20-get.value(card);
|
|
|
|
|
};
|
2020-02-23 05:45:11 +00:00
|
|
|
|
"step 2"
|
2019-11-23 12:41:07 +00:00
|
|
|
|
if(result.bool){
|
|
|
|
|
player.chooseTarget(true,'请选择进行额外回合的目标角色',lib.filter.notMe).ai=function(target){
|
|
|
|
|
if(target.hasJudge('lebu')) return -1;
|
|
|
|
|
if(get.attitude(player,target)>4){
|
|
|
|
|
return get.threaten(target)/Math.sqrt(target.hp+1)/Math.sqrt(target.countCards('h')+1);
|
|
|
|
|
}
|
|
|
|
|
return -1;
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
else event.finish();
|
2020-02-23 05:45:11 +00:00
|
|
|
|
"step 3"
|
2019-11-23 12:41:07 +00:00
|
|
|
|
var target=result.targets[0];
|
|
|
|
|
player.line(target,'fire');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
target.markSkillCharacter('fangquan',player,'放权','进行一个额外回合');
|
|
|
|
|
target.insertPhase();
|
|
|
|
|
target.addSkill('fangquan3');
|
2020-02-23 05:45:11 +00:00
|
|
|
|
if(event.count>0) event.goto(1);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
fangquan3:{
|
|
|
|
|
trigger:{player:['phaseAfter','phaseCancelled']},
|
|
|
|
|
forced:true,
|
|
|
|
|
popup:false,
|
|
|
|
|
audio:false,
|
|
|
|
|
content:function(){
|
|
|
|
|
player.unmarkSkill('fangquan');
|
|
|
|
|
player.removeSkill('fangquan3');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ruoyu:{
|
|
|
|
|
skillAnimation:true,
|
2019-09-15 14:45:05 +00:00
|
|
|
|
animationColor:'fire',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
audio:2,
|
2019-12-25 05:21:37 +00:00
|
|
|
|
audioname:['re_liushan'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
unique:true,
|
2019-07-17 08:25:58 +00:00
|
|
|
|
juexingji:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
zhuSkill:true,
|
|
|
|
|
keepSkill:true,
|
2022-01-15 06:12:01 +00:00
|
|
|
|
derivation:'rejijiang',
|
2019-11-22 05:19:45 +00:00
|
|
|
|
trigger:{player:'phaseZhunbeiBegin'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(!player.hasZhuSkill('ruoyu'))return false;
|
|
|
|
|
if(player.storage.ruoyu) return false;
|
|
|
|
|
return player.isMinHp();
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2019-12-25 05:21:37 +00:00
|
|
|
|
'step 0'
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.storage.ruoyu=true;
|
2019-12-25 05:21:37 +00:00
|
|
|
|
player.gainMaxHp();
|
|
|
|
|
'step 1'
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.recover();
|
|
|
|
|
if(player.hasSkill('ruoyu')){
|
2022-01-15 06:12:01 +00:00
|
|
|
|
player.addSkill('rejijiang');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
2022-01-15 06:12:01 +00:00
|
|
|
|
player.addAdditionalSkill('ruoyu','rejijiang');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
if(!player.isZhu){
|
2022-01-15 06:12:01 +00:00
|
|
|
|
player.storage.zhuSkill_ruoyu=['rejijiang'];
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.trigger('zhuUpdate');
|
|
|
|
|
}
|
|
|
|
|
player.awakenSkill('ruoyu');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
qiaobian:{
|
|
|
|
|
audio:2,
|
|
|
|
|
group:['qiaobian1','qiaobian2','qiaobian3','qiaobian4'],
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
ai:{
|
|
|
|
|
threaten:3
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
qiaobian1:{
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{player:'phaseJudgeBefore'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('h')>0;
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
frequent:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2021-10-22 05:07:02 +00:00
|
|
|
|
if(player.countCards('j')==0&&!event.isOnline()&&(!event.isMine()||!lib.config.autoskilllist.contains('qiaobian1'))){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
var next=player.chooseToDiscard(get.prompt('qiaobian'),'弃置一张手牌并跳过判定阶段');
|
|
|
|
|
next.set('ai',get.unuseful2);
|
2018-08-13 02:34:59 +00:00
|
|
|
|
next.set('logSkill','qiaobian1');
|
2021-10-22 05:07:02 +00:00
|
|
|
|
next.setHiddenSkill('qiaobian');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
trigger.cancel();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
qiaobian2:{
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{player:'phaseDrawBefore'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('h')>0;
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
var check,i,num=0,num2=0,players=game.filterPlayer();
|
|
|
|
|
for(i=0;i<players.length;i++){
|
|
|
|
|
if(player!=players[i]&&players[i].countCards('h')){
|
|
|
|
|
var att=get.attitude(player,players[i]);
|
|
|
|
|
if(att<=0){
|
|
|
|
|
num++;
|
|
|
|
|
}
|
|
|
|
|
if(att<0){
|
|
|
|
|
num2++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
check=(num>=2&&num2>0);
|
2016-01-24 08:34:21 +00:00
|
|
|
|
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.chooseToDiscard(get.prompt('qiaobian'),'弃置一张手牌并跳过摸牌阶段,然后可以获得至多两名角色各一张手牌',lib.filter.cardDiscardable).set('ai',function(card){
|
|
|
|
|
if(!_status.event.check) return 0;
|
|
|
|
|
return 7-get.value(card);
|
2021-10-22 05:07:02 +00:00
|
|
|
|
}).set('check',check).set('logSkill','qiaobian2').setHiddenSkill('qiaobian');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
trigger.cancel();
|
|
|
|
|
player.chooseTarget([1,2],'获得至多两名角色各一张手牌',function(card,player,target){
|
|
|
|
|
return target!=player&&target.countCards('h');
|
|
|
|
|
}).set('ai',function(target){
|
|
|
|
|
return 1-get.attitude(_status.event.player,target);
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
"step 2"
|
|
|
|
|
if(result.bool){
|
2020-04-18 05:32:41 +00:00
|
|
|
|
result.targets.sortBySeat();
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.line(result.targets,'green');
|
|
|
|
|
event.targets=result.targets;
|
|
|
|
|
if(!event.targets.length) event.finish();
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
"step 3"
|
|
|
|
|
player.gainMultiple(event.targets);
|
|
|
|
|
"step 4"
|
|
|
|
|
game.delay();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
expose:0.2
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
qiaobian3:{
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{player:'phaseUseBefore'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('h')>0;
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
var check;
|
|
|
|
|
if(!player.canMoveCard(true)){
|
|
|
|
|
check=false;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
check=game.hasPlayer(function(current){
|
|
|
|
|
return get.attitude(player,current)>0&¤t.countCards('j');
|
|
|
|
|
});
|
|
|
|
|
if(!check){
|
|
|
|
|
if(player.countCards('h')>player.hp+1){
|
|
|
|
|
check=false;
|
|
|
|
|
}
|
|
|
|
|
else if(player.countCards('h',{name:['wuzhong']})){
|
|
|
|
|
check=false;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
check=true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
player.chooseToDiscard(get.prompt('qiaobian'),'弃置一张手牌并跳过出牌阶段,然后可以移动场上的一张牌',lib.filter.cardDiscardable).set('ai',function(card){
|
|
|
|
|
if(!_status.event.check) return 0;
|
|
|
|
|
return 7-get.value(card);
|
2021-10-22 05:07:02 +00:00
|
|
|
|
}).set('check',check).set('logSkill','qiaobian3').setHiddenSkill('qiaobian');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
trigger.cancel();
|
|
|
|
|
player.moveCard();
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
expose:0.2
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
qiaobian4:{
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{player:'phaseDiscardBefore'},
|
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('h')>0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
var discard=player.countCards('h')>player.hp;
|
2018-08-13 02:34:59 +00:00
|
|
|
|
var next=player.chooseToDiscard(get.prompt('qiaobian4'),'弃置一张手牌并跳过弃牌阶段');
|
2021-10-22 05:07:02 +00:00
|
|
|
|
next.setHiddenSkill('qiaobian');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
next.logSkill='qiaobian';
|
|
|
|
|
next.ai=function(card){
|
|
|
|
|
if(discard){
|
|
|
|
|
return 100-get.useful(card);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
trigger.cancel();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
tuntian:{
|
|
|
|
|
audio:2,
|
2019-07-23 09:59:48 +00:00
|
|
|
|
audioname:['gz_dengai'],
|
2020-10-15 05:41:31 +00:00
|
|
|
|
trigger:{
|
|
|
|
|
player:'loseAfter',
|
2022-04-10 16:34:02 +00:00
|
|
|
|
global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter','addToExpansionAfter'],
|
2020-10-15 05:41:31 +00:00
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
frequent:true,
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(player==_status.currentPhase) return false;
|
2020-10-26 11:03:09 +00:00
|
|
|
|
if(event.name=='gain'&&event.player==player) return false;
|
2020-10-15 05:41:31 +00:00
|
|
|
|
var evt=event.getl(player);
|
|
|
|
|
return evt&&evt.cards2&&evt.cards2.length>0;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2019-12-16 04:54:06 +00:00
|
|
|
|
'step 0'
|
|
|
|
|
var next=player.judge(function(card){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(get.suit(card)=='heart') return -1;
|
|
|
|
|
return 1;
|
2019-12-16 04:54:06 +00:00
|
|
|
|
});
|
2021-09-23 15:07:50 +00:00
|
|
|
|
next.judge2=function(result){
|
|
|
|
|
return result.bool;
|
|
|
|
|
};
|
2019-12-16 04:54:06 +00:00
|
|
|
|
if(get.mode()!='guozhan'){
|
|
|
|
|
next.callback=lib.skill.tuntian.callback;
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 1'
|
|
|
|
|
if(!result.bool||get.position(result.card)!='d'){
|
2020-02-08 03:39:33 +00:00
|
|
|
|
//game.cardsDiscard(card);
|
|
|
|
|
event.finish();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
event.card=result.card;
|
|
|
|
|
player.chooseBool('是否将'+get.translation(event.card)+'作为【田】置于武将牌上?').ai=function(){
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
'step 2'
|
|
|
|
|
if(!result.bool&&!event.directbool){
|
|
|
|
|
return;
|
|
|
|
|
};
|
2022-04-10 16:34:02 +00:00
|
|
|
|
player.addToExpansion(event.card,'gain2').gaintag.add('tuntian');
|
2019-12-16 04:54:06 +00:00
|
|
|
|
},
|
|
|
|
|
callback:function(){
|
|
|
|
|
if(!event.judgeResult.bool){
|
|
|
|
|
event.finish();
|
|
|
|
|
return;
|
|
|
|
|
}
|
2022-04-10 16:34:02 +00:00
|
|
|
|
player.addToExpansion(event.judgeResult.card,'gain2').gaintag.add('tuntian');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
2022-04-10 16:34:02 +00:00
|
|
|
|
marktext:'田',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
intro:{
|
2022-04-10 16:34:02 +00:00
|
|
|
|
content:'expansion',
|
|
|
|
|
markcount:'expansion',
|
|
|
|
|
},
|
|
|
|
|
onremove:function(player,skill){
|
|
|
|
|
var cards=player.getExpansions(skill);
|
|
|
|
|
if(cards.length) player.loseToDiscardpile(cards);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
group:'tuntian_dist',
|
2019-11-22 05:19:45 +00:00
|
|
|
|
locked:false,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
subSkill:{
|
|
|
|
|
dist:{
|
2019-11-22 05:19:45 +00:00
|
|
|
|
locked:false,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
mod:{
|
|
|
|
|
globalFrom:function(from,to,distance){
|
2022-04-18 02:27:32 +00:00
|
|
|
|
var num=distance-from.getExpansions('tuntian').length;
|
|
|
|
|
if(_status.event.skill=='jixi_backup'||_status.event.skill=='gzjixi_backup') num++;
|
|
|
|
|
return num;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
locked:false,
|
|
|
|
|
ai:{
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target,current){
|
|
|
|
|
if(!target.hasFriend()&&!player.hasUnknown()) return;
|
|
|
|
|
if(_status.currentPhase==target) return;
|
2020-12-22 13:57:12 +00:00
|
|
|
|
if(card.name!='shuiyanqijunx'&&get.tag(card,'loseCard')&&target.countCards('he')){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(target.hasSkill('ziliang')) return 0.7;
|
|
|
|
|
return [0.5,Math.max(2,target.countCards('h'))];
|
|
|
|
|
}
|
|
|
|
|
if(target.isUnderControl(true,player)){
|
|
|
|
|
if((get.tag(card,'respondSha')&&target.countCards('h','sha'))||
|
|
|
|
|
(get.tag(card,'respondShan')&&target.countCards('h','shan'))){
|
|
|
|
|
if(target.hasSkill('ziliang')) return 0.7;
|
|
|
|
|
return [0.5,1];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(get.tag(card,'respondSha')||get.tag(card,'respondShan')){
|
|
|
|
|
if(get.attitude(player,target)>0&&card.name=='juedou') return;
|
|
|
|
|
if(get.tag(card,'damage')&&target.hasSkillTag('maixie')) return;
|
|
|
|
|
if(target.countCards('h')==0) return 2;
|
|
|
|
|
if(target.hasSkill('ziliang')) return 0.7;
|
|
|
|
|
if(get.mode()=='guozhan') return 0.5;
|
|
|
|
|
return [0.5,Math.max(target.countCards('h')/4,target.countCards('h','sha')+target.countCards('h','shan'))];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
threaten:function(player,target){
|
|
|
|
|
if(target.countCards('h')==0) return 2;
|
|
|
|
|
return 0.5;
|
|
|
|
|
},
|
|
|
|
|
nodiscard:true,
|
|
|
|
|
nolose:true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
zaoxian:{
|
|
|
|
|
skillAnimation:true,
|
2019-09-15 14:45:05 +00:00
|
|
|
|
animationColor:'thunder',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
audio:2,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_dengai'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
unique:true,
|
2019-07-17 08:25:58 +00:00
|
|
|
|
juexingji:true,
|
2019-11-22 05:19:45 +00:00
|
|
|
|
trigger:{player:'phaseZhunbeiBegin'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
return player.getExpansions('tuntian').length>=3;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
derivation:'jixi',
|
|
|
|
|
content:function(){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
player.awakenSkill('zaoxian');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.loseMaxHp();
|
|
|
|
|
player.addSkill('jixi');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
jixi:{
|
|
|
|
|
audio:2,
|
2020-10-26 11:03:09 +00:00
|
|
|
|
audioname:['re_dengai','gz_dengai','ol_dengai'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
filter:function(event,player){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
return player.getExpansions('tuntian').length>0&&event.filterCard({name:'shunshou'},player,event);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
chooseButton:{
|
|
|
|
|
dialog:function(event,player){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
return ui.create.dialog('急袭',player.getExpansions('tuntian'),'hidden');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
2022-05-09 16:59:02 +00:00
|
|
|
|
filter:function(button,player){
|
|
|
|
|
var card=button.link;
|
|
|
|
|
if(!game.checkMod(card,player,'unchanged','cardEnabled2',player)) return false;
|
|
|
|
|
var evt=_status.event.getParent();
|
|
|
|
|
return evt.filterCard(get.autoViewAs({name:'shunshou'},[card]),player,evt)
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
backup:function(links,player){
|
2022-04-18 02:27:32 +00:00
|
|
|
|
var skill=_status.event.buttoned;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return {
|
2022-04-10 16:34:02 +00:00
|
|
|
|
audio:'jixi',
|
|
|
|
|
audioname:['re_dengai','gz_dengai','ol_dengai'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
selectCard:-1,
|
2022-04-10 16:34:02 +00:00
|
|
|
|
position:'x',
|
2022-04-18 02:27:32 +00:00
|
|
|
|
filterCard:skill=='jixi'?(card)=>card==lib.skill.jixi_backup.card:(card)=>card==lib.skill.gzjixi_backup.card,
|
2022-04-10 16:34:02 +00:00
|
|
|
|
viewAs:{name:'shunshou'},
|
|
|
|
|
card:links[0],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
prompt:function(links,player){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
return '选择 顺手牵羊('+get.translation(links[0])+')的目标';
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:10,
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
return player.getExpansions('tuntian').length-1;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
jiang:{
|
2020-03-25 12:27:23 +00:00
|
|
|
|
shaRelated:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
audio:2,
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2020-03-05 13:10:37 +00:00
|
|
|
|
audioname:['sp_lvmeng','re_sunben','re_sunce'],
|
2019-11-08 14:25:46 +00:00
|
|
|
|
trigger:{
|
|
|
|
|
player:'useCardToPlayered',
|
|
|
|
|
target:'useCardToTargeted',
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
2019-06-14 13:59:07 +00:00
|
|
|
|
if(!(event.card.name=='juedou'||(event.card.name=='sha'&&get.color(event.card)=='red'))) return false;
|
2019-11-08 14:25:46 +00:00
|
|
|
|
return player==event.target||event.getParent().triggeredTargets3.length==1;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
frequent:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
player.draw();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
|
|
|
|
if(card.name=='sha'&&get.color(card)=='red') return [1,0.6];
|
|
|
|
|
},
|
|
|
|
|
player:function(card,player,target){
|
|
|
|
|
if(card.name=='sha'&&get.color(card)=='red') return [1,1];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
hunzi:{
|
2020-01-26 11:35:17 +00:00
|
|
|
|
//audioname:['re_sunben'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
skillAnimation:true,
|
2019-09-15 14:45:05 +00:00
|
|
|
|
animationColor:'wood',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
audio:2,
|
2019-08-17 10:44:34 +00:00
|
|
|
|
juexingji:true,
|
2019-07-14 10:58:01 +00:00
|
|
|
|
derivation:['reyingzi','gzyinghun'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
unique:true,
|
2019-11-22 05:19:45 +00:00
|
|
|
|
trigger:{player:'phaseZhunbeiBegin'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
2019-12-25 05:21:37 +00:00
|
|
|
|
return player.hp<=1&&!player.storage.hunzi;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
forced:true,
|
2019-08-17 10:44:34 +00:00
|
|
|
|
//priority:3,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
player.loseMaxHp();
|
|
|
|
|
player.addSkill('reyingzi');
|
2019-07-14 10:58:01 +00:00
|
|
|
|
player.addSkill('gzyinghun');
|
|
|
|
|
game.log(player,'获得了技能','#g【英姿】和【英魂】')
|
2019-12-25 05:21:37 +00:00
|
|
|
|
player.awakenSkill(event.name);
|
|
|
|
|
player.storage[event.name]=true;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:function(player,target){
|
|
|
|
|
if(target.hp==1) return 2;
|
|
|
|
|
return 0.5;
|
|
|
|
|
},
|
|
|
|
|
maixie:true,
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
|
|
|
|
if(!target.hasFriend()) return;
|
|
|
|
|
if(get.tag(card,'damage')==1&&target.hp==2&&!target.isTurnedOver()&&
|
|
|
|
|
_status.currentPhase!=target&&get.distance(_status.currentPhase,target,'absolute')<=3) return [0.5,1];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
zhiba:{
|
|
|
|
|
unique:true,
|
|
|
|
|
global:'zhiba2',
|
2020-01-26 11:35:17 +00:00
|
|
|
|
audioname:['re_sunben'],
|
2019-07-23 09:59:48 +00:00
|
|
|
|
audio:'zhiba2',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
zhuSkill:true,
|
|
|
|
|
},
|
|
|
|
|
zhiba2:{
|
|
|
|
|
audio:2,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_sunben'],
|
2020-01-26 11:35:17 +00:00
|
|
|
|
//forceaudio:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
enable:'phaseUse',
|
2019-07-14 10:58:01 +00:00
|
|
|
|
prompt:function(){
|
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
var list=game.filterPlayer(function(target){
|
|
|
|
|
return target.hasZhuSkill('zhiba',player)&&player.canCompare(target);
|
|
|
|
|
});
|
|
|
|
|
var str='和'+get.translation(list);
|
|
|
|
|
if(list.length>1) str+='中的一人';
|
|
|
|
|
str+='进行拼点。若你没赢,其可以获得两张拼点牌。';
|
|
|
|
|
return str;
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(player.group!='wu'||player.countCards('h')==0) return false;
|
|
|
|
|
return game.hasPlayer(function(target){
|
2019-06-13 12:51:34 +00:00
|
|
|
|
return target.hasZhuSkill('zhiba',player)&&player.canCompare(target);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
2019-06-13 12:51:34 +00:00
|
|
|
|
return target.hasZhuSkill('zhiba',player)&&player.canCompare(target);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
2020-01-26 11:35:17 +00:00
|
|
|
|
direct:true,
|
2020-06-20 04:53:15 +00:00
|
|
|
|
clearTime:true,
|
2020-01-26 11:35:17 +00:00
|
|
|
|
prepare:function(cards,player,targets){
|
|
|
|
|
targets[0].logSkill('zhiba');
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
usable:1,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2019-12-25 05:21:37 +00:00
|
|
|
|
if(target.storage.hunzi||target.storage.rehunzi){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
target.chooseControl('拒绝','不拒绝').set('prompt','是否拒绝制霸拼点?').set('choice',get.attitude(target,player)<=0);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.forced=true;
|
|
|
|
|
}
|
|
|
|
|
"step 1"
|
|
|
|
|
if(!event.forced&&result.control=='拒绝'){
|
|
|
|
|
game.log(target,'拒绝了拼点');
|
|
|
|
|
target.chat('拒绝');
|
|
|
|
|
event.finish();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
player.chooseToCompare(target,function(card){
|
|
|
|
|
if(card.name=='du') return 20;
|
|
|
|
|
var player=get.owner(card);
|
|
|
|
|
var target=_status.event.getParent().target;
|
|
|
|
|
if(player!=target&&get.attitude(player,target)>0){
|
|
|
|
|
return -get.number(card);
|
|
|
|
|
}
|
|
|
|
|
return get.number(card);
|
|
|
|
|
}).set('preserve','lose');
|
|
|
|
|
"step 2"
|
|
|
|
|
if(result.bool==false){
|
2019-10-09 14:31:43 +00:00
|
|
|
|
var list=[];
|
|
|
|
|
if(get.position(result.player)=='d') list.push(result.player);
|
|
|
|
|
if(get.position(result.target)=='d') list.push(result.target);
|
|
|
|
|
if(!list.length) event.finish();
|
|
|
|
|
else{
|
|
|
|
|
event.list=list;
|
|
|
|
|
target.chooseBool('是否获得'+get.translation(list)+'?').ai=function(){
|
|
|
|
|
return get.value(list)>0;
|
|
|
|
|
};
|
|
|
|
|
}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
2019-10-09 14:31:43 +00:00
|
|
|
|
else event.finish();
|
|
|
|
|
"step 3"
|
|
|
|
|
if(result.bool) target.gain(event.list,'gain2');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
basic:{
|
|
|
|
|
order:1
|
|
|
|
|
},
|
|
|
|
|
expose:0.2,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
if(player.countCards('h','du')&&get.attitude(player,target)<0) return -1;
|
|
|
|
|
if(player.countCards('h')<=player.hp) return 0;
|
|
|
|
|
var maxnum=0;
|
|
|
|
|
var cards2=target.getCards('h');
|
|
|
|
|
for(var i=0;i<cards2.length;i++){
|
2022-05-30 10:35:29 +00:00
|
|
|
|
if(get.number(cards2[i])>maxnum){
|
|
|
|
|
maxnum=get.number(cards2[i]);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(maxnum>10) maxnum=10;
|
|
|
|
|
if(maxnum<5&&cards2.length>1) maxnum=5;
|
|
|
|
|
var cards=player.getCards('h');
|
|
|
|
|
for(var i=0;i<cards.length;i++){
|
2022-05-30 10:35:29 +00:00
|
|
|
|
if(get.number(cards[i])<maxnum) return 1;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
zhijian:{
|
|
|
|
|
audio:2,
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('h',{type:'equip'})>0;
|
|
|
|
|
},
|
|
|
|
|
filterCard:function(card){
|
|
|
|
|
return get.type(card)=='equip';
|
|
|
|
|
},
|
|
|
|
|
check:function(card){
|
|
|
|
|
var player=_status.currentPhase;
|
|
|
|
|
if(player.countCards('he',{subtype:get.subtype(card)})>1){
|
|
|
|
|
return 11-get.equipValue(card);
|
|
|
|
|
}
|
|
|
|
|
return 6-get.value(card);
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
if(target.isMin()) return false;
|
2019-06-13 12:51:34 +00:00
|
|
|
|
var type=get.subtype(card);
|
|
|
|
|
return player!=target&&target.isEmpty(type);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
target.equip(cards[0]);
|
|
|
|
|
player.draw();
|
|
|
|
|
},
|
|
|
|
|
discard:false,
|
|
|
|
|
prepare:function(cards,player,targets){
|
|
|
|
|
player.$give(cards,targets[0],false);
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
basic:{
|
|
|
|
|
order:10
|
|
|
|
|
},
|
|
|
|
|
result:{
|
2020-03-05 13:10:37 +00:00
|
|
|
|
target:function(player,target){
|
|
|
|
|
var card=ui.selected.cards[0];
|
|
|
|
|
if(card) return get.effect(target,card,target,target);
|
|
|
|
|
return 0;
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
threaten:1.3
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
guzheng:{
|
|
|
|
|
audio:2,
|
2019-12-25 05:21:37 +00:00
|
|
|
|
audioname:['re_zhangzhang'],
|
2019-07-20 14:58:35 +00:00
|
|
|
|
trigger:{global:'phaseDiscardAfter'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
2020-02-14 05:33:43 +00:00
|
|
|
|
if(event.player!=player&&event.player.isIn()){
|
|
|
|
|
return event.player.getHistory('lose',function(evt){
|
|
|
|
|
return evt.type=='discard'&&evt.getParent('phaseDiscard')==event&&evt.hs.filterInD('d').length>0;
|
|
|
|
|
}).length>0;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
2020-02-14 05:33:43 +00:00
|
|
|
|
return false;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
2020-02-14 05:33:43 +00:00
|
|
|
|
checkx:function(event,player,cards,cards2){
|
|
|
|
|
if(cards.length>2||get.attitude(player,event.player)>0) return true;
|
|
|
|
|
for(var i=0;i<cards2.length;i++){
|
2020-03-13 10:02:18 +00:00
|
|
|
|
if(get.value(cards2[i],event.player,'raw')<0) return true;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
2020-02-14 05:33:43 +00:00
|
|
|
|
return false;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
direct:true,
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2020-02-14 05:33:43 +00:00
|
|
|
|
var cards=[];
|
|
|
|
|
var cards2=[];
|
|
|
|
|
game.getGlobalHistory('cardMove',function(evt){
|
|
|
|
|
if(evt.name=='cardsDiscard'&&evt.getParent('phaseDiscard')==trigger) cards.addArray(evt.cards.filterInD('d'));
|
|
|
|
|
});
|
|
|
|
|
game.countPlayer2(function(current){
|
|
|
|
|
current.getHistory('lose',function(evt){
|
|
|
|
|
if(evt.type!='discard'||evt.getParent('phaseDiscard')!=trigger) return;
|
|
|
|
|
cards.addArray(evt.cards.filterInD('d'));
|
|
|
|
|
if(current==trigger.player) cards2.addArray(evt.hs.filterInD('d'));
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
event.cards=cards;
|
|
|
|
|
var check=lib.skill.guzheng.checkx(trigger,player,cards,cards2);
|
|
|
|
|
player.chooseCardButton(cards,'固政:选择令'+get.translation(trigger.player)+'收回的牌').set('ai',function(button){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(_status.event.check){
|
2020-02-14 05:33:43 +00:00
|
|
|
|
return 20-get.value(button.link,_status.event.getTrigger().player);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
return 0;
|
2020-02-14 05:33:43 +00:00
|
|
|
|
}).set('check',check).set('cards',cards2).set('filterButton',function(button){
|
|
|
|
|
return _status.event.cards.contains(button.link);
|
2021-10-22 05:07:02 +00:00
|
|
|
|
}).setHiddenSkill(event.name);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
game.delay(0.5);
|
|
|
|
|
player.logSkill('guzheng',trigger.player);
|
|
|
|
|
trigger.player.gain(result.links[0]);
|
|
|
|
|
trigger.player.$gain2(result.links[0]);
|
|
|
|
|
game.log(trigger.player,'收回了',result.links[0]);
|
|
|
|
|
event.cards.remove(result.links[0]);
|
|
|
|
|
if(event.cards.length){
|
|
|
|
|
player.gain(event.cards);
|
|
|
|
|
player.$gain2(event.cards);
|
|
|
|
|
game.log(player,'收回了',event.cards);
|
|
|
|
|
}
|
|
|
|
|
game.delay();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.3,
|
|
|
|
|
expose:0.2
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
beige:{
|
2020-02-16 04:25:41 +00:00
|
|
|
|
audio:2,
|
|
|
|
|
audioname:['re_caiwenji'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
trigger:{global:'damageEnd'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return (event.card&&event.card.name=='sha'&&event.source&&
|
|
|
|
|
event.player.classList.contains('dead')==false&&player.countCards('he'));
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
checkx:function(event,player){
|
|
|
|
|
var att1=get.attitude(player,event.player);
|
|
|
|
|
var att2=get.attitude(player,event.source);
|
|
|
|
|
return att1>0&&att2<=0;
|
|
|
|
|
},
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2019-08-30 15:02:50 +00:00
|
|
|
|
var next=player.chooseToDiscard('he',get.prompt2('beige',trigger.player));
|
2018-04-17 07:32:43 +00:00
|
|
|
|
var check=lib.skill.beige.checkx(trigger,player);
|
|
|
|
|
next.set('ai',function(card){
|
|
|
|
|
if(_status.event.goon) return 8-get.value(card);
|
|
|
|
|
return 0;
|
|
|
|
|
});
|
|
|
|
|
next.set('logSkill','beige');
|
|
|
|
|
next.set('goon',check);
|
2021-10-22 05:07:02 +00:00
|
|
|
|
next.setHiddenSkill('beige');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
trigger.player.judge();
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
"step 2"
|
2020-02-08 03:39:33 +00:00
|
|
|
|
switch(result.suit){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
case 'heart':trigger.player.recover();break;
|
|
|
|
|
case 'diamond':trigger.player.draw(2);break;
|
|
|
|
|
case 'club':trigger.source.chooseToDiscard('he',2,true);break;
|
|
|
|
|
case 'spade':trigger.source.turnOver();break;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
expose:0.3
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
duanchang:{
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audio:2,
|
|
|
|
|
audioname:['re_caiwenji'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
forbid:['boss'],
|
2019-09-15 14:45:05 +00:00
|
|
|
|
trigger:{player:'die'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
forced:true,
|
2019-09-15 14:45:05 +00:00
|
|
|
|
forceDie:true,
|
2019-09-25 14:52:38 +00:00
|
|
|
|
skillAnimation:true,
|
|
|
|
|
animationColor:'gray',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event){
|
|
|
|
|
return event.source&&event.source.isIn();
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.source.clearSkills();
|
|
|
|
|
},
|
|
|
|
|
logTarget:'source',
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:function(player,target){
|
|
|
|
|
if(target.hp==1) return 0.2;
|
|
|
|
|
return 1.5;
|
|
|
|
|
},
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target,current){
|
|
|
|
|
if(!target.hasFriend()) return;
|
|
|
|
|
if(target.hp<=1&&get.tag(card,'damage')) return [1,0,0,-2];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
huashen:{
|
2019-07-25 11:17:52 +00:00
|
|
|
|
audio:'huashen2',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
unique:true,
|
|
|
|
|
forbid:['guozhan'],
|
|
|
|
|
init:function(player){
|
|
|
|
|
player.storage.huashen={
|
|
|
|
|
list:[],
|
|
|
|
|
shown:[],
|
|
|
|
|
owned:{},
|
|
|
|
|
player:player,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
get:function(player,num){
|
|
|
|
|
if(typeof num!='number') num=1;
|
2018-08-13 02:34:59 +00:00
|
|
|
|
var list=[];
|
2018-04-17 07:32:43 +00:00
|
|
|
|
while(num--){
|
|
|
|
|
var name=player.storage.huashen.list.randomRemove();
|
|
|
|
|
var skills=lib.character[name][3].slice(0);
|
|
|
|
|
for(var i=0;i<skills.length;i++){
|
|
|
|
|
var info=lib.skill[skills[i]];
|
2021-08-27 04:05:15 +00:00
|
|
|
|
if(info.limited||info.juexingji||info.charlotte||info.zhuSkill||info.hiddenSkill||info.dutySkill){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
skills.splice(i--,1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
player.storage.huashen.owned[name]=skills;
|
|
|
|
|
// player.popup(name);
|
|
|
|
|
game.log(player,'获得了一个化身');
|
2018-08-13 02:34:59 +00:00
|
|
|
|
list.push(name);
|
|
|
|
|
}
|
|
|
|
|
if(player.isUnderControl(true)){
|
|
|
|
|
var cards=[];
|
|
|
|
|
for(var i=0;i<list.length;i++){
|
|
|
|
|
var cardname='huashen_card_'+list[i];
|
|
|
|
|
lib.card[cardname]={
|
|
|
|
|
fullimage:true,
|
|
|
|
|
image:'character:'+list[i]
|
|
|
|
|
}
|
|
|
|
|
lib.translate[cardname]=lib.translate[list[i]];
|
|
|
|
|
cards.push(game.createCard(cardname,'',''));
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
2018-08-13 02:34:59 +00:00
|
|
|
|
player.$draw(cards);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
group:['huashen1','huashen2'],
|
|
|
|
|
intro:{
|
|
|
|
|
content:function(storage,player){
|
|
|
|
|
var str='';
|
|
|
|
|
var slist=storage.owned;
|
|
|
|
|
var list=[];
|
|
|
|
|
for(var i in slist){
|
|
|
|
|
list.push(i);
|
|
|
|
|
}
|
|
|
|
|
if(list.length){
|
|
|
|
|
str+=get.translation(list[0]);
|
|
|
|
|
for(var i=1;i<list.length;i++){
|
|
|
|
|
str+='、'+get.translation(list[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var skill=player.additionalSkills.huashen[0];
|
|
|
|
|
if(skill){
|
|
|
|
|
str+='<p>当前技能:'+get.translation(skill);
|
|
|
|
|
}
|
|
|
|
|
return str;
|
|
|
|
|
},
|
|
|
|
|
mark:function(dialog,content,player){
|
|
|
|
|
var slist=content.owned;
|
|
|
|
|
var list=[];
|
|
|
|
|
for(var i in slist){
|
|
|
|
|
list.push(i);
|
|
|
|
|
}
|
|
|
|
|
if(list.length){
|
|
|
|
|
dialog.addSmall([list,'character']);
|
|
|
|
|
}
|
|
|
|
|
if(!player.isUnderControl(true)){
|
|
|
|
|
for(var i=0;i<dialog.buttons.length;i++){
|
|
|
|
|
if(!content.shown.contains(dialog.buttons[i].link)){
|
|
|
|
|
dialog.buttons[i].node.group.remove();
|
|
|
|
|
dialog.buttons[i].node.hp.remove();
|
|
|
|
|
dialog.buttons[i].node.intro.remove();
|
|
|
|
|
dialog.buttons[i].node.name.innerHTML='未<br>知';
|
|
|
|
|
dialog.buttons[i].node.name.dataset.nature='';
|
|
|
|
|
dialog.buttons[i].style.background='';
|
|
|
|
|
dialog.buttons[i]._nointro=true;
|
|
|
|
|
dialog.buttons[i].classList.add('menubg');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(player.additionalSkills.huashen){
|
|
|
|
|
var skill=player.additionalSkills.huashen[0];
|
|
|
|
|
if(skill){
|
|
|
|
|
dialog.add('<div><div class="skill">【'+get.translation(skill)+
|
|
|
|
|
'】</div><div>'+lib.translate[skill+'_info']+'</div></div>');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2019-06-07 03:46:13 +00:00
|
|
|
|
setup:function(player,gain){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
for(var i in lib.character){
|
2019-12-09 14:49:08 +00:00
|
|
|
|
if(lib.filter.characterDisabled2(i)||lib.filter.characterDisabled(i)) continue;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
var add=false;
|
|
|
|
|
for(var j=0;j<lib.character[i][3].length;j++){
|
|
|
|
|
var info=lib.skill[lib.character[i][3][j]];
|
|
|
|
|
if(!info){
|
|
|
|
|
continue;
|
|
|
|
|
}
|
2021-08-27 04:05:15 +00:00
|
|
|
|
if(!info.limited&&!info.juexingji&&!info.charlotte&&!info.zhuSkill&&!info.hiddenSkill&&!info.dutySkill){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
add=true;break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(add){
|
|
|
|
|
player.storage.huashen.list.push(i);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for(var i=0;i<game.players.length;i++){
|
|
|
|
|
player.storage.huashen.list.remove([game.players[i].name]);
|
|
|
|
|
player.storage.huashen.list.remove([game.players[i].name1]);
|
|
|
|
|
player.storage.huashen.list.remove([game.players[i].name2]);
|
|
|
|
|
}
|
|
|
|
|
player.storage.huasheninited=true;
|
2019-06-07 03:46:13 +00:00
|
|
|
|
if(gain){
|
|
|
|
|
player.markSkill('huashen');
|
|
|
|
|
lib.skill.huashen.get(player,2);
|
|
|
|
|
_status.event.trigger('huashenStart');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
huashen1:{
|
|
|
|
|
trigger:{global:'gameStart',player:['enterGame','damageBefore']},
|
|
|
|
|
forced:true,
|
|
|
|
|
popup:false,
|
2019-11-26 05:15:06 +00:00
|
|
|
|
//priority:10,
|
2019-06-07 03:46:13 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !player.storage.huasheninited;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
lib.skill.huashen.setup(player,trigger.name!='damage');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
huashen2:{
|
|
|
|
|
audio:2,
|
2019-11-26 05:15:06 +00:00
|
|
|
|
trigger:{player:['phaseBegin','phaseEnd','huashenStart']},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player,name){
|
2020-02-23 05:45:11 +00:00
|
|
|
|
//if(name=='phaseBegin'&&game.phaseNumber==1) return false;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return true;
|
|
|
|
|
},
|
2019-08-17 10:44:34 +00:00
|
|
|
|
//priority:50,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
forced:true,
|
2019-08-17 10:44:34 +00:00
|
|
|
|
//popup:false,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
2018-07-08 10:16:24 +00:00
|
|
|
|
'step 0'
|
2019-06-07 03:46:13 +00:00
|
|
|
|
if(get.is.empty(player.storage.huashen.owned)){
|
|
|
|
|
if(!player.storage.huasheninited){
|
|
|
|
|
lib.skill.huashen.setup(player,false);
|
|
|
|
|
}
|
|
|
|
|
event.finish();
|
|
|
|
|
return;
|
|
|
|
|
}
|
2018-07-08 10:16:24 +00:00
|
|
|
|
event.trigger('playercontrol');
|
|
|
|
|
'step 1'
|
2018-04-17 07:32:43 +00:00
|
|
|
|
var slist=player.storage.huashen.owned;
|
|
|
|
|
var list=[];
|
|
|
|
|
for(var i in slist){
|
|
|
|
|
list.push(i);
|
|
|
|
|
}
|
|
|
|
|
event.switchToAuto=function(){
|
|
|
|
|
var currentbutton=event.dialog.querySelector('.selected.button');
|
|
|
|
|
if(!currentbutton){
|
|
|
|
|
currentbutton=event.dialog.buttons[0];
|
|
|
|
|
currentbutton.classList.add('selected');
|
|
|
|
|
}
|
|
|
|
|
event.clickControl(player.storage.huashen.owned[currentbutton.link].randomGet());
|
|
|
|
|
}
|
2017-11-23 17:48:56 +00:00
|
|
|
|
|
2018-04-17 07:32:43 +00:00
|
|
|
|
event.clickControl=function(link,type){
|
|
|
|
|
if(link!='cancel2'){
|
|
|
|
|
var currentname;
|
|
|
|
|
if(type=='ai'){
|
|
|
|
|
currentname=event.currentname;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
currentname=event.dialog.querySelector('.selected.button').link;
|
|
|
|
|
}
|
|
|
|
|
player.storage.huashen.shown.add(currentname);
|
|
|
|
|
var mark=player.marks.huashen;
|
|
|
|
|
if(trigger.name=='game'||trigger.name=='enterGame'){
|
|
|
|
|
mark.hide();
|
|
|
|
|
// mark.style.transform='scale(0.8)';
|
|
|
|
|
mark.style.transition='all 0.3s';
|
|
|
|
|
setTimeout(function(){
|
|
|
|
|
mark.style.transition='all 0s';
|
|
|
|
|
ui.refresh(mark);
|
|
|
|
|
mark.setBackground(currentname,'character');
|
|
|
|
|
if(mark.firstChild){
|
|
|
|
|
mark.firstChild.remove();
|
|
|
|
|
}
|
|
|
|
|
setTimeout(function(){
|
|
|
|
|
mark.style.transition='';
|
|
|
|
|
mark.show();
|
|
|
|
|
// mark.style.transform='';
|
|
|
|
|
},50);
|
|
|
|
|
},500);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
if(mark.firstChild){
|
|
|
|
|
mark.firstChild.remove();
|
|
|
|
|
}
|
|
|
|
|
mark.setBackground(currentname,'character');
|
|
|
|
|
}
|
|
|
|
|
if(!player.additionalSkills.huashen||!player.additionalSkills.huashen.contains(link)){
|
|
|
|
|
player.addAdditionalSkill('huashen',link);
|
2019-08-17 10:44:34 +00:00
|
|
|
|
//player.logSkill('huashen2');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.flashAvatar('huashen',currentname);
|
|
|
|
|
game.log(player,'获得技能','【'+get.translation(link)+'】');
|
|
|
|
|
player.popup(link);
|
2017-11-23 17:48:56 +00:00
|
|
|
|
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(event.dialog&&event.dialog.buttons){
|
|
|
|
|
for(var i=0;i<event.dialog.buttons.length;i++){
|
|
|
|
|
if(event.dialog.buttons[i].classList.contains('selected')){
|
|
|
|
|
var name=event.dialog.buttons[i].link;
|
|
|
|
|
player.sex=lib.character[name][0];
|
|
|
|
|
player.group=lib.character[name][1];
|
|
|
|
|
// player.node.identity.style.backgroundColor=get.translation(player.group+'Color');
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2017-11-23 17:48:56 +00:00
|
|
|
|
|
2019-11-22 05:19:45 +00:00
|
|
|
|
// if(event.triggername=='phaseZhunbeiBegin'){
|
2018-08-10 09:29:29 +00:00
|
|
|
|
// (function(){
|
|
|
|
|
// var skills=[link];
|
|
|
|
|
// var list=[];
|
|
|
|
|
// game.expandSkills(skills);
|
|
|
|
|
// var triggerevent=event._trigger;
|
2019-11-22 05:19:45 +00:00
|
|
|
|
// var name='phaseZhunbeiBegin';
|
2018-08-10 09:29:29 +00:00
|
|
|
|
// for(i=0;i<skills.length;i++){
|
|
|
|
|
// var trigger=get.info(skills[i]).trigger;
|
|
|
|
|
// if(trigger){
|
|
|
|
|
// var add=false;
|
|
|
|
|
// if(player==triggerevent.player&&trigger.player){
|
|
|
|
|
// if(typeof trigger.player=='string'){
|
|
|
|
|
// if(trigger.player==name) add=true;
|
|
|
|
|
// }
|
|
|
|
|
// else if(trigger.player.contains(name)) add=true;
|
|
|
|
|
// }
|
|
|
|
|
// if(trigger.global){
|
|
|
|
|
// if(typeof trigger.global=='string'){
|
|
|
|
|
// if(trigger.global==name) add=true;
|
|
|
|
|
// }
|
|
|
|
|
// else if(trigger.global.contains(name)) add=true;
|
|
|
|
|
// }
|
|
|
|
|
// if(add&&player.isOut()==false) list.push(skills[i]);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// for(var i=0;i<list.length;i++){
|
2019-11-22 05:19:45 +00:00
|
|
|
|
// game.createTrigger('phaseZhunbeiBegin',list[i],player,triggerevent);
|
2018-08-10 09:29:29 +00:00
|
|
|
|
// }
|
|
|
|
|
// }());
|
|
|
|
|
// }
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(type!='ai'){
|
|
|
|
|
// ui.auto.show();
|
|
|
|
|
event.dialog.close();
|
|
|
|
|
event.control.close();
|
|
|
|
|
game.resume();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
if(event.isMine()){
|
|
|
|
|
event.dialog=ui.create.dialog('选择获得一项技能',[list,'character']);
|
|
|
|
|
for(var i=0;i<event.dialog.buttons.length;i++){
|
|
|
|
|
event.dialog.buttons[i].classList.add('pointerdiv');
|
|
|
|
|
}
|
|
|
|
|
if(trigger.name=='game'){
|
|
|
|
|
event.control=ui.create.control();
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.control=ui.create.control(['cancel2']);
|
|
|
|
|
}
|
|
|
|
|
event.control.custom=event.clickControl;
|
|
|
|
|
event.control.replaceTransition=false;
|
|
|
|
|
// ui.auto.hide();
|
|
|
|
|
game.pause();
|
|
|
|
|
for(var i=0;i<event.dialog.buttons.length;i++){
|
|
|
|
|
event.dialog.buttons[i].classList.add('selectable');
|
|
|
|
|
}
|
|
|
|
|
event.custom.replace.button=function(button){
|
|
|
|
|
if(button.classList.contains('selected')){
|
|
|
|
|
button.classList.remove('selected');
|
|
|
|
|
if(trigger.name=='game'){
|
|
|
|
|
event.control.style.opacity=0;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.control.replace(['cancel2']);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
for(var i=0;i<event.dialog.buttons.length;i++){
|
|
|
|
|
event.dialog.buttons[i].classList.remove('selected');
|
|
|
|
|
}
|
|
|
|
|
button.classList.add('selected');
|
|
|
|
|
event.control.replace(slist[button.link]);
|
|
|
|
|
if(trigger.name=='game'&&getComputedStyle(event.control).opacity==0){
|
|
|
|
|
event.control.style.transition='opacity 0.5s';
|
|
|
|
|
ui.refresh(event.control);
|
|
|
|
|
event.control.style.opacity=1;
|
|
|
|
|
event.control.style.transition='';
|
|
|
|
|
ui.refresh(event.control);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.control.style.opacity=1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
event.control.custom=event.clickControl;
|
|
|
|
|
}
|
|
|
|
|
event.custom.replace.window=function(){
|
|
|
|
|
for(var i=0;i<event.dialog.buttons.length;i++){
|
|
|
|
|
if(event.dialog.buttons[i].classList.contains('selected')){
|
|
|
|
|
event.dialog.buttons[i].classList.remove('selected');
|
|
|
|
|
if(trigger.name=='game'){
|
|
|
|
|
event.control.style.opacity=0;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.control.replace(['cancel2']);
|
|
|
|
|
}
|
|
|
|
|
event.control.custom=event.clickControl;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
var skills=[];
|
|
|
|
|
var map={};
|
|
|
|
|
for(var i=0;i<list.length;i++){
|
|
|
|
|
var sub=player.storage.huashen.owned[list[i]];
|
|
|
|
|
skills.addArray(sub);
|
|
|
|
|
for(var j=0;j<sub.length;j++){
|
|
|
|
|
map[sub[j]]=list[i];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var add=player.additionalSkills.huashen;
|
|
|
|
|
if(typeof add=='string'){
|
|
|
|
|
add=[add];
|
|
|
|
|
}
|
|
|
|
|
if(Array.isArray(add)){
|
|
|
|
|
for(var i=0;i<add.length;i++){
|
|
|
|
|
skills.remove(add[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var cond='out';
|
2019-11-22 05:19:45 +00:00
|
|
|
|
if(event.triggername=='phaseZhunbeiBegin'){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
cond='in';
|
|
|
|
|
}
|
|
|
|
|
skills.randomSort();
|
|
|
|
|
skills.sort(function(a,b){
|
|
|
|
|
return get.skillRank(b,cond)-get.skillRank(a,cond);
|
|
|
|
|
});
|
|
|
|
|
var choice=skills[0];
|
2019-06-07 03:46:13 +00:00
|
|
|
|
if(choice){
|
|
|
|
|
event.currentname=map[choice];
|
|
|
|
|
event.clickControl(choice,'ai');
|
|
|
|
|
}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
xinsheng:{
|
|
|
|
|
audio:2,
|
|
|
|
|
unique:true,
|
|
|
|
|
forbid:['guozhan'],
|
|
|
|
|
trigger:{player:'damageEnd'},
|
|
|
|
|
frequent:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.storage.huashen&&player.storage.huashen.list&&
|
|
|
|
|
player.storage.huashen.list.length>0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
for(var i=0;i<trigger.num;i++){
|
|
|
|
|
lib.skill.huashen.get(player);
|
|
|
|
|
}
|
2019-06-07 03:46:13 +00:00
|
|
|
|
player.markSkill('huashen');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
maixie_hp:true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
huoshou:{
|
2019-07-23 09:59:48 +00:00
|
|
|
|
audio:"huoshou1",
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_menghuo'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
locked:true,
|
|
|
|
|
group:['huoshou1','huoshou2'],
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:['huoshou1','huoshou2'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
ai:{
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
|
|
|
|
if(card.name=='nanman') return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
huoshou1:{
|
|
|
|
|
audio:2,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_menghuo'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
trigger:{target:'useCardToBefore'},
|
|
|
|
|
forced:true,
|
|
|
|
|
priority:15,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return (event.card.name=='nanman');
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.cancel();
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
huoshou2:{
|
2019-07-23 09:59:48 +00:00
|
|
|
|
audio:"huoshou1",
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_menghuo'],
|
2019-12-30 05:04:47 +00:00
|
|
|
|
trigger:{global:'useCard'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
2019-12-30 05:04:47 +00:00
|
|
|
|
return (event.card&&event.card.name=='nanman'&&event.player!=player);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2019-12-30 05:04:47 +00:00
|
|
|
|
trigger.customArgs.default.customSource=player;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
2019-11-07 14:42:15 +00:00
|
|
|
|
zaiqixx:{
|
|
|
|
|
audio:'zaiqi',
|
|
|
|
|
inherit:'zaiqi',
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
zaiqi:{
|
|
|
|
|
audio:2,
|
2020-01-01 14:36:18 +00:00
|
|
|
|
trigger:{player:'phaseDrawBegin1'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
2020-03-13 10:02:18 +00:00
|
|
|
|
return !event.numFixed&&player.hp<player.maxHp;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
check:function(event,player){
|
2019-10-19 11:18:56 +00:00
|
|
|
|
if(player.getDamagedHp()<2){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return false;
|
|
|
|
|
}
|
2019-10-19 11:18:56 +00:00
|
|
|
|
else if(player.getDamagedHp()==2){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return player.countCards('h')>=2;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2020-03-13 10:02:18 +00:00
|
|
|
|
trigger.changeToZero();
|
2019-11-07 14:42:15 +00:00
|
|
|
|
event.cards=get.cards(player.getDamagedHp()+(event.name=='zaiqi'?0:1));
|
2020-01-01 14:36:18 +00:00
|
|
|
|
game.cardsGotoOrdering(event.cards);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.showCards(event.cards);
|
|
|
|
|
"step 1"
|
|
|
|
|
var num=0;
|
|
|
|
|
for(var i=0;i<event.cards.length;i++){
|
|
|
|
|
if(get.suit(event.cards[i])=='heart'){
|
|
|
|
|
num++;
|
|
|
|
|
event.cards.splice(i--,1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(num){
|
|
|
|
|
player.recover(num);
|
|
|
|
|
}
|
|
|
|
|
"step 2"
|
|
|
|
|
if(event.cards.length){
|
|
|
|
|
player.gain(event.cards);
|
|
|
|
|
player.$gain2(event.cards);
|
|
|
|
|
game.delay();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:function(player,target){
|
|
|
|
|
if(target.hp==1) return 2;
|
|
|
|
|
if(target.hp==2) return 1.5;
|
|
|
|
|
return 1;
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
juxiang:{
|
2020-02-04 05:31:47 +00:00
|
|
|
|
//unique:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
locked:true,
|
2019-07-23 09:59:48 +00:00
|
|
|
|
audio:"juxiang1",
|
2021-08-05 11:46:11 +00:00
|
|
|
|
audioname:['re_zhurong','ol_zhurong'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
group:['juxiang1','juxiang2'],
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:['juxiang1','juxiang2'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
ai:{
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card){
|
|
|
|
|
if(card.name=='nanman') return [0,1];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
juxiang1:{
|
|
|
|
|
audio:2,
|
2021-08-05 11:46:11 +00:00
|
|
|
|
audioname:['re_zhurong','ol_zhurong'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
trigger:{target:'useCardToBefore'},
|
|
|
|
|
forced:true,
|
|
|
|
|
priority:15,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return (event.card.name=='nanman');
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.cancel();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
juxiang2:{
|
2019-07-23 09:59:48 +00:00
|
|
|
|
audio:"juxiang1",
|
2021-08-05 11:46:11 +00:00
|
|
|
|
audioname:['re_zhurong','ol_zhurong'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
trigger:{global:'useCardAfter'},
|
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
2019-12-16 04:54:06 +00:00
|
|
|
|
return (event.card.name=='nanman'&&event.player!=player&&get.itemtype(event.cards)=='cards'&&get.position(event.cards[0],true)=='o');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2019-08-07 15:38:38 +00:00
|
|
|
|
player.gain(trigger.cards,'gain2');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
lieren:{
|
2020-03-25 12:27:23 +00:00
|
|
|
|
shaRelated:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
audio:2,
|
2021-08-05 11:46:11 +00:00
|
|
|
|
audioname:['boss_lvbu3','ol_zhurong'],
|
2019-10-09 14:31:43 +00:00
|
|
|
|
trigger:{source:'damageSource'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(event._notrigger.contains(event.player)) return false;
|
2020-06-20 04:53:15 +00:00
|
|
|
|
return (event.card&&event.card.name=='sha'&&event.getParent().name=='sha'&&
|
2019-06-13 12:51:34 +00:00
|
|
|
|
event.player.isAlive()&&
|
|
|
|
|
player.canCompare(event.player));
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
check:function(event,player){
|
|
|
|
|
return get.attitude(player,event.player)<0&&player.countCards('h')>1;
|
|
|
|
|
},
|
2019-11-22 05:19:45 +00:00
|
|
|
|
//priority:5,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.chooseToCompare(trigger.player);
|
|
|
|
|
"step 1"
|
2018-08-11 16:48:38 +00:00
|
|
|
|
if(result.bool&&trigger.player.countGainableCards(player,'he')){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.gainPlayerCard(trigger.player,true,'he');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
xingshang:{
|
|
|
|
|
audio:2,
|
2019-07-17 08:25:58 +00:00
|
|
|
|
trigger:{global:'die'},
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event){
|
2019-08-03 13:29:18 +00:00
|
|
|
|
return event.player.countCards('he')>0;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2019-08-03 13:29:18 +00:00
|
|
|
|
event.togain=trigger.player.getCards('he');
|
2019-10-09 14:31:43 +00:00
|
|
|
|
player.gain(event.togain,trigger.player,'giveAuto');
|
2019-07-17 08:25:58 +00:00
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
fangzhu:{
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{player:'damageEnd'},
|
|
|
|
|
direct:true,
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2019-10-19 11:18:56 +00:00
|
|
|
|
player.chooseTarget(get.prompt('fangzhu'),'令一名其他角色将武将牌翻面并摸'+get.cnNumber(player.getDamagedHp())+'张牌',function(card,player,target){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return player!=target
|
2021-10-22 05:07:02 +00:00
|
|
|
|
}).setHiddenSkill('fangzhu').ai=function(target){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(target.hasSkillTag('noturn')) return 0;
|
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
if(get.attitude(_status.event.player,target)==0) return 0;
|
|
|
|
|
if(get.attitude(_status.event.player,target)>0){
|
|
|
|
|
if(target.classList.contains('turnedover')) return 1000-target.countCards('h');
|
2019-10-19 11:18:56 +00:00
|
|
|
|
if(player.getDamagedHp()<3) return -1;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return 100-target.countCards('h');
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
if(target.classList.contains('turnedover')) return -1;
|
2019-10-19 11:18:56 +00:00
|
|
|
|
if(player.getDamagedHp()>=3) return -1;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return 1+target.countCards('h');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('fangzhu',result.targets);
|
2019-10-19 11:18:56 +00:00
|
|
|
|
result.targets[0].draw(player.getDamagedHp());
|
2018-04-17 07:32:43 +00:00
|
|
|
|
result.targets[0].turnOver();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
maixie:true,
|
|
|
|
|
maixie_hp:true,
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
|
|
|
|
if(get.tag(card,'damage')){
|
|
|
|
|
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
|
|
|
|
|
if(target.hp<=1) return;
|
|
|
|
|
if(!target.hasFriend()) return;
|
|
|
|
|
var hastarget=false;
|
|
|
|
|
var turnfriend=false;
|
|
|
|
|
var players=game.filterPlayer();
|
|
|
|
|
for(var i=0;i<players.length;i++){
|
|
|
|
|
if(get.attitude(target,players[i])<0&&!players[i].isTurnedOver()){
|
|
|
|
|
hastarget=true;
|
|
|
|
|
}
|
|
|
|
|
if(get.attitude(target,players[i])>0&&players[i].isTurnedOver()){
|
|
|
|
|
hastarget=true;
|
|
|
|
|
turnfriend=true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(get.attitude(player,target)>0&&!hastarget) return;
|
|
|
|
|
if(turnfriend||target.hp==target.maxHp) return [0.5,1];
|
|
|
|
|
if(target.hp>1) return [1,0.5];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
songwei:{
|
|
|
|
|
unique:true,
|
2020-01-11 12:17:57 +00:00
|
|
|
|
group:'songwei2',
|
2020-02-16 04:25:41 +00:00
|
|
|
|
audioname:['re_caopi'],
|
2019-07-23 09:59:48 +00:00
|
|
|
|
audio:"songwei2",
|
2018-04-17 07:32:43 +00:00
|
|
|
|
zhuSkill:true,
|
|
|
|
|
},
|
|
|
|
|
songwei2:{
|
|
|
|
|
audio:2,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_caopi'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
forceaudio:true,
|
2020-01-11 12:17:57 +00:00
|
|
|
|
trigger:{global:'judgeEnd'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
2020-01-11 12:17:57 +00:00
|
|
|
|
if(event.player==player||event.player.group!='wei') return false;
|
|
|
|
|
if(event.result.color!='black') return false;
|
|
|
|
|
return player.hasZhuSkill('songwei',event.player);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2020-01-11 12:17:57 +00:00
|
|
|
|
trigger.player.chooseBool('是否发动【颂威】,令'+get.translation(player)+'摸一张牌?').set('choice',get.attitude(trigger.player,player)>0);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
2020-01-11 12:17:57 +00:00
|
|
|
|
player.logSkill('songwei2');
|
|
|
|
|
trigger.player.line(player,'green');
|
|
|
|
|
player.draw();
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
jiezi:{
|
|
|
|
|
trigger:{global:['phaseDrawSkipped','phaseDrawCancelled']},
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audio:2,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.player!=player;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.draw();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
gzduanliang:{
|
2020-02-16 04:25:41 +00:00
|
|
|
|
audio:'duanliang1',
|
|
|
|
|
audioname:['re_xuhuang'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
group:['duanliang1','duanliang2'],
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.2
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
duanliang:{
|
2020-02-16 04:25:41 +00:00
|
|
|
|
audio:'duanliang1',
|
|
|
|
|
audioname:['re_xuhuang'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
group:['duanliang1','duanliang3'],
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.2
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
duanliang1:{
|
|
|
|
|
audio:2,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_xuhuang'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
enable:'chooseToUse',
|
|
|
|
|
filterCard:function(card){
|
|
|
|
|
if(get.type(card)!='basic'&&get.type(card)!='equip') return false;
|
|
|
|
|
return get.color(card)=='black';
|
|
|
|
|
},
|
|
|
|
|
filter:function(event,player){
|
2021-05-18 07:57:26 +00:00
|
|
|
|
return player.countCards('hes',{type:['basic','equip'],color:'black'})
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
2021-05-18 07:57:26 +00:00
|
|
|
|
position:'hes',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
viewAs:{name:'bingliang'},
|
|
|
|
|
prompt:'将一黑色的基本牌或装备牌当兵粮寸断使用',
|
|
|
|
|
check:function(card){return 6-get.value(card)},
|
|
|
|
|
ai:{
|
|
|
|
|
order:9
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
duanliang2:{
|
|
|
|
|
mod:{
|
|
|
|
|
targetInRange:function(card,player,target){
|
|
|
|
|
if(card.name=='bingliang'){
|
|
|
|
|
if(get.distance(player,target)<=2) return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
duanliang3:{
|
|
|
|
|
mod:{
|
|
|
|
|
targetInRange:function(card,player,target){
|
|
|
|
|
if(card.name=='bingliang'){
|
|
|
|
|
if(target.countCards('h')>=player.countCards('h')) return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
haoshi:{
|
|
|
|
|
audio:2,
|
2020-01-01 14:36:18 +00:00
|
|
|
|
trigger:{player:'phaseDrawBegin2'},
|
2020-03-13 10:02:18 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !event.numFixed;
|
|
|
|
|
},
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
check:function(event,player){
|
|
|
|
|
if(player.countCards('h')<=1) return true;
|
|
|
|
|
return game.hasPlayer(function(current){
|
|
|
|
|
return current!=player&¤t.isMinHandcard()&&get.attitude(player,current)>0;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.num+=2;
|
|
|
|
|
player.addSkill('haoshi2');
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:2,
|
|
|
|
|
ai:{
|
|
|
|
|
noh:true,
|
|
|
|
|
skillTagFilter:function(player,tag){
|
|
|
|
|
if(tag=='noh'){
|
|
|
|
|
if(player.countCards('h')!=2) return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
haoshi2:{
|
|
|
|
|
trigger:{player:'phaseDrawEnd'},
|
|
|
|
|
forced:true,
|
|
|
|
|
popup:false,
|
|
|
|
|
audio:false,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.removeSkill('haoshi2');
|
|
|
|
|
if(player.countCards('h')<=5){
|
|
|
|
|
event.finish();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
player.chooseCardTarget({
|
|
|
|
|
selectCard:Math.floor(player.countCards('h')/2),
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target.isMinHandcard();
|
|
|
|
|
},
|
2019-07-20 14:58:35 +00:00
|
|
|
|
prompt:'将一半的手牌交给场上手牌数最少的一名角色',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
forced:true,
|
|
|
|
|
ai2:function(target){
|
|
|
|
|
return get.attitude(_status.event.player,target);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.targets&&result.targets[0]){
|
2019-10-09 14:31:43 +00:00
|
|
|
|
result.targets[0].gain(result.cards,player,'giveAuto');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
dimeng:{
|
|
|
|
|
audio:2,
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
position:'he',
|
|
|
|
|
filterCard:function(){
|
|
|
|
|
if(ui.selected.targets.length==2) return false;
|
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
selectCard:[0,Infinity],
|
|
|
|
|
selectTarget:2,
|
|
|
|
|
complexCard:true,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
if(player==target) return false;
|
|
|
|
|
if(ui.selected.targets.length==0) return true;
|
|
|
|
|
return (Math.abs(ui.selected.targets[0].countCards('h')-target.countCards('h'))==
|
|
|
|
|
ui.selected.cards.length);
|
|
|
|
|
},
|
|
|
|
|
multitarget:true,
|
|
|
|
|
multiline:true,
|
|
|
|
|
complexSelect:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
targets[0].swapHandcards(targets[1]);
|
|
|
|
|
},
|
|
|
|
|
check:function(card){
|
|
|
|
|
var list=[],player=_status.event.player;
|
|
|
|
|
var num=player.countCards('he');
|
|
|
|
|
var count;
|
|
|
|
|
var players=game.filterPlayer();
|
|
|
|
|
for(var i=0;i<players.length;i++){
|
|
|
|
|
if(players[i]!=player&&get.attitude(player,players[i])>3) list.push(players[i]);
|
|
|
|
|
}
|
|
|
|
|
list.sort(function(a,b){
|
|
|
|
|
return a.countCards('h')-b.countCards('h');
|
|
|
|
|
});
|
|
|
|
|
if(list.length==0) return -1;
|
|
|
|
|
var from=list[0];
|
|
|
|
|
list.length=0;
|
2016-01-24 08:34:21 +00:00
|
|
|
|
|
2018-04-17 07:32:43 +00:00
|
|
|
|
for(var i=0;i<players.length;i++){
|
|
|
|
|
if(players[i]!=player&&get.attitude(player,players[i])<1) list.push(players[i]);
|
|
|
|
|
}
|
|
|
|
|
if(list.length==0) return -1;
|
|
|
|
|
list.sort(function(a,b){
|
|
|
|
|
return b.countCards('h')-a.countCards('h');
|
|
|
|
|
});
|
|
|
|
|
if(from.countCards('h')>=list[0].countCards('h')) return -1;
|
|
|
|
|
for(var i=0;i<list.length&&from.countCards('h')<list[i].countCards('h');i++){
|
|
|
|
|
if(list[i].countCards('h')-from.countCards('h')<=num){
|
|
|
|
|
count=list[i].countCards('h')-from.countCards('h');break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(count<2&&from.countCards('h')>=2) return -1;
|
|
|
|
|
if(ui.selected.cards.length<count) return 11-get.value(card);
|
|
|
|
|
return -1;
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:6,
|
|
|
|
|
threaten:3,
|
|
|
|
|
expose:0.9,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
var list=[];
|
|
|
|
|
var num=player.countCards('he');
|
|
|
|
|
var players=game.filterPlayer();
|
|
|
|
|
if(ui.selected.targets.length==0){
|
|
|
|
|
for(var i=0;i<players.length;i++){
|
|
|
|
|
if(players[i]!=player&&get.attitude(player,players[i])>3) list.push(players[i]);
|
|
|
|
|
}
|
|
|
|
|
list.sort(function(a,b){
|
|
|
|
|
return a.countCards('h')-b.countCards('h');
|
|
|
|
|
});
|
|
|
|
|
if(target==list[0]) return get.attitude(player,target);
|
|
|
|
|
return -get.attitude(player,target);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
var from=ui.selected.targets[0];
|
|
|
|
|
for(var i=0;i<players.length;i++){
|
|
|
|
|
if(players[i]!=player&&get.attitude(player,players[i])<1) list.push(players[i]);
|
|
|
|
|
}
|
|
|
|
|
list.sort(function(a,b){
|
|
|
|
|
return b.countCards('h')-a.countCards('h');
|
|
|
|
|
});
|
|
|
|
|
if(from.countCards('h')>=list[0].countCards('h')) return -get.attitude(player,target);
|
|
|
|
|
for(var i=0;i<list.length&&from.countCards('h')<list[i].countCards('h');i++){
|
|
|
|
|
if(list[i].countCards('h')-from.countCards('h')<=num){
|
|
|
|
|
var count=list[i].countCards('h')-from.countCards('h');
|
|
|
|
|
if(count<2&&from.countCards('h')>=2) return -get.attitude(player,target);
|
|
|
|
|
if(target==list[i]) return get.attitude(player,target);
|
|
|
|
|
return -get.attitude(player,target);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
yinghun:{
|
|
|
|
|
audio:2,
|
2020-07-03 05:22:31 +00:00
|
|
|
|
audioname:['re_sunjian','sunce','re_sunben','re_sunce','ol_sunjian'],
|
2019-11-22 05:19:45 +00:00
|
|
|
|
trigger:{player:'phaseZhunbeiBegin'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
direct:true,
|
2022-05-30 10:35:29 +00:00
|
|
|
|
preHidden:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2019-08-30 15:02:50 +00:00
|
|
|
|
player.chooseTarget(get.prompt2('yinghun'),function(card,player,target){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return player!=target;
|
|
|
|
|
}).set('ai',function(target){
|
|
|
|
|
var player=_status.event.player;
|
2022-05-30 10:35:29 +00:00
|
|
|
|
if(player.getDamagedHp()==1&&target.countCards('he')==0){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
if(get.attitude(_status.event.player,target)>0){
|
|
|
|
|
return 10+get.attitude(_status.event.player,target);
|
|
|
|
|
}
|
2022-05-30 10:35:29 +00:00
|
|
|
|
if(player.getDamagedHp()==1){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
return 1;
|
2022-05-30 10:35:29 +00:00
|
|
|
|
}).setHiddenSkill(event.name);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
2022-05-30 10:35:29 +00:00
|
|
|
|
event.num=player.getDamagedHp();
|
|
|
|
|
player.logSkill(event.name,result.targets);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
event.target=result.targets[0];
|
|
|
|
|
if(event.num==1){
|
|
|
|
|
event.directcontrol=true;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
var str1='摸'+get.cnNumber(event.num,true)+'弃一';
|
|
|
|
|
var str2='摸一弃'+get.cnNumber(event.num,true);
|
|
|
|
|
player.chooseControl(str1,str2,function(event,player){
|
2022-05-30 10:35:29 +00:00
|
|
|
|
if(player.isHealthy()) return 1-_status.event.choice;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return _status.event.choice;
|
2022-05-30 10:35:29 +00:00
|
|
|
|
}).set('choice',(get.attitude(player,event.target)>0)?0:1);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
event.str=str1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
"step 2"
|
|
|
|
|
if(event.directcontrol||result.control==event.str){
|
2022-05-30 10:35:29 +00:00
|
|
|
|
if(event.num>0) event.target.draw(event.num);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
event.target.chooseToDiscard(true,'he');
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.target.draw();
|
2022-05-30 10:35:29 +00:00
|
|
|
|
if(event.num>0) event.target.chooseToDiscard(event.num,true,'he');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
gzyinghun:{
|
|
|
|
|
audio:'yinghun',
|
2020-07-03 05:22:31 +00:00
|
|
|
|
audioname:['re_sunjian','sunce','re_sunben','re_sunce','ol_sunjian'],
|
2019-11-22 05:19:45 +00:00
|
|
|
|
trigger:{player:'phaseZhunbeiBegin'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
2019-10-19 11:18:56 +00:00
|
|
|
|
return player.getDamagedHp()>0;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
direct:true,
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2019-08-30 15:02:50 +00:00
|
|
|
|
player.chooseTarget(get.prompt2('gzyinghun'),function(card,player,target){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return player!=target;
|
|
|
|
|
}).set('ai',function(target){
|
|
|
|
|
var player=_status.event.player;
|
2019-10-19 11:18:56 +00:00
|
|
|
|
if(player.getDamagedHp()==1&&target.countCards('he')==0){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
if(get.attitude(_status.event.player,target)>0){
|
|
|
|
|
return 10+get.attitude(_status.event.player,target);
|
|
|
|
|
}
|
2019-10-19 11:18:56 +00:00
|
|
|
|
if(player.getDamagedHp()==1){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
return 1;
|
2021-10-22 05:07:02 +00:00
|
|
|
|
}).setHiddenSkill(event.name);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
2019-10-19 11:18:56 +00:00
|
|
|
|
event.num=player.getDamagedHp();
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.logSkill(event.name,result.targets);
|
|
|
|
|
event.target=result.targets[0];
|
|
|
|
|
if(event.num==1){
|
|
|
|
|
event.directcontrol=true;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
var str1='摸'+get.cnNumber(event.num,true)+'弃一';
|
|
|
|
|
var str2='摸一弃'+get.cnNumber(event.num,true);
|
|
|
|
|
player.chooseControl(str1,str2,function(event,player){
|
|
|
|
|
return _status.event.choice;
|
|
|
|
|
}).set('choice',get.attitude(player,event.target)>0?str1:str2);
|
|
|
|
|
event.str=str1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
"step 2"
|
|
|
|
|
if(event.directcontrol||result.control==event.str){
|
|
|
|
|
event.target.draw(event.num);
|
|
|
|
|
event.target.chooseToDiscard(true,'he');
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.target.draw();
|
|
|
|
|
event.target.chooseToDiscard(event.num,true,'he');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:function(player,target){
|
|
|
|
|
if(target.hp==target.maxHp) return 0.5;
|
|
|
|
|
if(target.hp==1) return 2;
|
|
|
|
|
if(target.hp==2) return 1.5;
|
|
|
|
|
return 0.5;
|
|
|
|
|
},
|
|
|
|
|
maixie:true,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
jiuchi:{
|
|
|
|
|
audio:2,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_dongzhuo'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
enable:'chooseToUse',
|
|
|
|
|
filterCard:function(card){
|
|
|
|
|
return get.suit(card)=='spade';
|
|
|
|
|
},
|
|
|
|
|
viewAs:{name:'jiu'},
|
|
|
|
|
viewAsFilter:function(player){
|
2021-05-18 07:57:26 +00:00
|
|
|
|
if(!player.countCards('hs',{suit:'spade'})) return false;
|
2022-03-22 14:53:37 +00:00
|
|
|
|
return true;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
prompt:'将一张黑桃手牌当酒使用',
|
|
|
|
|
check:function(card){
|
2021-01-10 02:28:38 +00:00
|
|
|
|
if(_status.event.type=='dying') return 1/Math.max(0.1,get.value(card));
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return 4-get.value(card);
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.5,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
roulin:{
|
|
|
|
|
audio:2,
|
2020-09-06 06:26:37 +00:00
|
|
|
|
audioname:['re_dongzhuo','ol_dongzhuo'],
|
2019-11-22 05:19:45 +00:00
|
|
|
|
trigger:{player:'useCardToPlayered',target:'useCardToTargeted'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
2019-11-22 05:19:45 +00:00
|
|
|
|
if(event.card.name!='sha') return false;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(player==event.player){
|
2021-11-23 04:58:31 +00:00
|
|
|
|
return event.target.hasSex('female');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
2021-11-23 04:58:31 +00:00
|
|
|
|
return event.player.hasSex('female');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
check:function(event,player){
|
|
|
|
|
return player==event.player;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2019-11-22 05:19:45 +00:00
|
|
|
|
var id=(player==trigger.player?trigger.target:player).playerid;
|
|
|
|
|
var map=trigger.getParent().customArgs;
|
|
|
|
|
if(!map[id]) map[id]={};
|
|
|
|
|
if(typeof map[id].shanRequired=='number'){
|
|
|
|
|
map[id].shanRequired++;
|
2017-07-13 02:23:11 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
2019-11-22 05:19:45 +00:00
|
|
|
|
map[id].shanRequired=2;
|
2017-07-13 02:23:11 +00:00
|
|
|
|
}
|
2021-01-19 14:04:52 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
directHit_ai:true,
|
|
|
|
|
skillTagFilter:function(player,tag,arg){
|
2021-11-23 04:58:31 +00:00
|
|
|
|
if(arg.card.name!='sha'||!arg.target.hasSex('female')||arg.target.countCards('h','shan')>1) return false;
|
2021-01-19 14:04:52 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
benghuai:{
|
2019-07-23 09:59:48 +00:00
|
|
|
|
audio:2,
|
2020-09-06 06:26:37 +00:00
|
|
|
|
audioname:['zhugedan','re_dongzhuo','ol_dongzhuo'],
|
2019-11-22 05:19:45 +00:00
|
|
|
|
trigger:{player:'phaseJieshuBegin'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
forced:true,
|
|
|
|
|
check:function(){
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
filter:function(event,player){
|
2020-09-06 06:26:37 +00:00
|
|
|
|
return !player.isMinHp()&&!player.hasSkill('rejiuchi_air')&&!player.hasSkill('oljiuchi_air');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.chooseControl('baonue_hp','baonue_maxHp',function(event,player){
|
|
|
|
|
if(player.hp==player.maxHp) return 'baonue_hp';
|
|
|
|
|
if(player.hp<player.maxHp-1||player.hp<=2) return 'baonue_maxHp';
|
|
|
|
|
return 'baonue_hp';
|
2019-10-19 11:18:56 +00:00
|
|
|
|
}).set('prompt','崩坏:失去1点体力或减1点体力上限');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
"step 1"
|
|
|
|
|
if(result.control=='baonue_hp'){
|
|
|
|
|
player.loseHp();
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.loseMaxHp(true);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:0.5,
|
|
|
|
|
neg:true,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
baonue:{
|
|
|
|
|
unique:true,
|
2020-01-11 12:17:57 +00:00
|
|
|
|
group:'baonue2',
|
2020-02-16 04:25:41 +00:00
|
|
|
|
audioname:['re_dongzhuo'],
|
2019-07-23 09:59:48 +00:00
|
|
|
|
audio:'baonue2',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
zhuSkill:true,
|
|
|
|
|
},
|
|
|
|
|
baonue2:{
|
|
|
|
|
audio:2,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_dongzhuo'],
|
2020-01-11 12:17:57 +00:00
|
|
|
|
//forceaudio:true,
|
|
|
|
|
trigger:{global:'damageSource'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
2020-01-13 15:59:01 +00:00
|
|
|
|
if(player==event.source||!event.source||event.source.group!='qun') return false;
|
|
|
|
|
return player.hasZhuSkill('baonue',event.source);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2020-01-15 15:08:08 +00:00
|
|
|
|
trigger.source.chooseBool('是否对'+get.translation(player)+'发动【暴虐】?').set('choice',get.attitude(trigger.source,player)>0);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
2020-01-11 12:17:57 +00:00
|
|
|
|
player.logSkill('baonue');
|
2020-01-13 15:13:24 +00:00
|
|
|
|
trigger.source.line(player,'green')
|
|
|
|
|
trigger.source.judge(function(card){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(get.suit(card)=='spade') return 4;
|
|
|
|
|
return 0;
|
2021-09-23 15:07:50 +00:00
|
|
|
|
}).judge2=function(result){
|
|
|
|
|
return result.bool?true:false;
|
|
|
|
|
};
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
2020-01-11 12:17:57 +00:00
|
|
|
|
event.finish();
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
2020-01-13 15:13:24 +00:00
|
|
|
|
'step 2'
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(result.suit=='spade'){
|
2020-01-11 12:17:57 +00:00
|
|
|
|
player.recover();
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
luanwu:{
|
|
|
|
|
audio:2,
|
2021-11-01 14:32:23 +00:00
|
|
|
|
audioname:['re_jiaxu'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
unique:true,
|
|
|
|
|
enable:'phaseUse',
|
2018-08-10 09:29:29 +00:00
|
|
|
|
limited:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
skillAnimation:'epic',
|
|
|
|
|
animationColor:'thunder',
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target!=player;
|
|
|
|
|
},
|
|
|
|
|
selectTarget:-1,
|
|
|
|
|
multitarget:true,
|
|
|
|
|
multiline:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2018-08-10 09:29:29 +00:00
|
|
|
|
player.awakenSkill('luanwu');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
event.current=player.next;
|
2019-09-22 15:02:29 +00:00
|
|
|
|
event.currented=[];
|
2018-04-17 07:32:43 +00:00
|
|
|
|
"step 1"
|
2019-09-22 15:02:29 +00:00
|
|
|
|
event.currented.push(event.current);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
event.current.animate('target');
|
2021-10-12 05:02:49 +00:00
|
|
|
|
event.current.chooseToUse('乱武:使用一张杀或失去一点体力',function(card){
|
|
|
|
|
if(get.name(card)!='sha') return false;
|
|
|
|
|
return lib.filter.filterCard.apply(this,arguments)
|
|
|
|
|
},function(card,player,target){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(player==target) return false;
|
2021-10-12 05:02:49 +00:00
|
|
|
|
var dist=get.distance(player,target);
|
|
|
|
|
if(dist>1){
|
|
|
|
|
if(game.hasPlayer(function(current){
|
|
|
|
|
return current!=player&&get.distance(player,current)<dist;
|
|
|
|
|
})){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
2021-10-12 05:02:49 +00:00
|
|
|
|
return lib.filter.filterTarget.apply(this,arguments)
|
|
|
|
|
}).set('ai2',function(){
|
|
|
|
|
return get.effect_use.apply(this,arguments)+0.01;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
});
|
|
|
|
|
"step 2"
|
|
|
|
|
if(result.bool==false) event.current.loseHp();
|
2019-09-22 15:02:29 +00:00
|
|
|
|
event.current=event.current.next;
|
|
|
|
|
if(event.current!=player&&!event.currented.contains(event.current)){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
game.delay(0.5);
|
|
|
|
|
event.goto(1);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player){
|
|
|
|
|
if(lib.config.mode=='identity'&&game.zhu.isZhu&&player.identity=='fan'){
|
|
|
|
|
if(game.zhu.hp==1&&game.zhu.countCards('h')<=2) return 1;
|
|
|
|
|
}
|
|
|
|
|
var num=0;
|
|
|
|
|
var players=game.filterPlayer();
|
|
|
|
|
for(var i=0;i<players.length;i++){
|
|
|
|
|
var att=get.attitude(player,players[i]);
|
|
|
|
|
if(att>0) att=1;
|
|
|
|
|
if(att<0) att=-1;
|
|
|
|
|
if(players[i]!=player&&players[i].hp<=3){
|
|
|
|
|
if(players[i].countCards('h')==0) num+=att/players[i].hp;
|
|
|
|
|
else if(players[i].countCards('h')==1) num+=att/2/players[i].hp;
|
|
|
|
|
else if(players[i].countCards('h')==2) num+=att/4/players[i].hp;
|
|
|
|
|
}
|
|
|
|
|
if(players[i].hp==1) num+=att*1.5;
|
|
|
|
|
}
|
|
|
|
|
if(player.hp==1){
|
|
|
|
|
return -num;
|
|
|
|
|
}
|
|
|
|
|
if(player.hp==2){
|
|
|
|
|
return -game.players.length/4-num;
|
|
|
|
|
}
|
|
|
|
|
return -game.players.length/3-num;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
wansha:{
|
|
|
|
|
locked:true,
|
2019-07-17 08:25:58 +00:00
|
|
|
|
audio:2,
|
2019-07-23 09:59:48 +00:00
|
|
|
|
audioname:['boss_lvbu3','shen_simayi'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
global:'wansha2',
|
|
|
|
|
trigger:{global:'dying'},
|
|
|
|
|
priority:15,
|
|
|
|
|
forced:true,
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2019-08-17 10:44:34 +00:00
|
|
|
|
filter:function(event,player,name){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return _status.currentPhase==player&&event.player!=player;
|
|
|
|
|
},
|
|
|
|
|
content:function(){}
|
|
|
|
|
},
|
|
|
|
|
wansha2:{
|
|
|
|
|
mod:{
|
|
|
|
|
cardSavable:function(card,player){
|
|
|
|
|
if(!_status.currentPhase) return;
|
2019-12-25 05:21:37 +00:00
|
|
|
|
if(_status.currentPhase.isAlive()&&_status.currentPhase.hasSkill('wansha')&&_status.currentPhase!=player){
|
|
|
|
|
if(card.name=='tao'&&!player.isDying()) return false;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
cardEnabled:function(card,player){
|
|
|
|
|
if(!_status.currentPhase) return;
|
|
|
|
|
if(_status.currentPhase.isAlive()&&_status.currentPhase.hasSkill('wansha')&&_status.currentPhase!=player){
|
2019-08-17 10:44:34 +00:00
|
|
|
|
if(card.name=='tao'&&!player.isDying()) return false;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
weimu:{
|
2020-10-15 05:41:31 +00:00
|
|
|
|
trigger:{global:'useCard1'},
|
2019-07-23 09:59:48 +00:00
|
|
|
|
audio:2,
|
|
|
|
|
forced:true,
|
2020-10-15 05:41:31 +00:00
|
|
|
|
firstDo:true,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player,card){
|
2019-07-23 09:59:48 +00:00
|
|
|
|
if(get.color(event.card)!='black') return false;
|
|
|
|
|
return event.card.name=='nanman'&&player!=event.player||event.card.name=='wanjian'&&player!=event.player||event.card.name=='taoyuan'&&player.hp<player.maxHp||event.card.name=='wugu';
|
|
|
|
|
},
|
|
|
|
|
content:function(){},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
mod:{
|
|
|
|
|
targetEnabled:function(card){
|
|
|
|
|
if((get.type(card)=='trick'||get.type(card)=='delay')&&
|
|
|
|
|
get.color(card)=='black') return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
huoji:{
|
|
|
|
|
audio:2,
|
2019-12-09 14:49:08 +00:00
|
|
|
|
enable:'phaseUse',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filterCard:function(card){
|
|
|
|
|
return get.color(card)=='red';
|
|
|
|
|
},
|
|
|
|
|
viewAs:{name:'huogong',nature:'fire'},
|
|
|
|
|
viewAsFilter:function(player){
|
2021-05-18 07:57:26 +00:00
|
|
|
|
if(!player.countCards('hs',{color:'red'})) return false;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
2021-05-18 07:57:26 +00:00
|
|
|
|
position:'hs',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
prompt:'将一张红色牌当火攻使用',
|
|
|
|
|
check:function(card){
|
|
|
|
|
var player=_status.currentPhase;
|
|
|
|
|
if(player.countCards('h')>player.hp){
|
|
|
|
|
return 6-get.value(card);
|
|
|
|
|
}
|
2019-12-09 14:49:08 +00:00
|
|
|
|
return 3-get.value(card)
|
2020-12-02 11:48:23 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
fireAttack:true,
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
bazhen:{
|
|
|
|
|
audio:2,
|
2020-04-25 05:40:05 +00:00
|
|
|
|
audioname:['re_sp_zhugeliang','ol_sp_zhugeliang','ol_pangtong'],
|
2020-07-25 12:14:50 +00:00
|
|
|
|
group:'bazhen_bagua',
|
|
|
|
|
locked:true,
|
|
|
|
|
},
|
|
|
|
|
bazhen_bagua:{
|
|
|
|
|
audio:'bazhen',
|
|
|
|
|
audioname:['re_sp_zhugeliang','ol_sp_zhugeliang','ol_pangtong'],
|
2019-11-26 05:15:06 +00:00
|
|
|
|
equipSkill:true,
|
2019-12-13 14:26:51 +00:00
|
|
|
|
noHidden:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
inherit:'bagua_skill',
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(!lib.skill.bagua_skill.filter(event,player)) return false;
|
2019-06-13 12:51:34 +00:00
|
|
|
|
if(!player.isEmpty(2)) return false;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
2019-12-06 15:40:06 +00:00
|
|
|
|
respondShan:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
|
|
|
|
if(player==target&&get.subtype(card)=='equip2'){
|
|
|
|
|
if(get.equipValue(card)<=7.5) return 0;
|
|
|
|
|
}
|
2019-06-13 12:51:34 +00:00
|
|
|
|
if(!target.isEmpty(2)) return;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return lib.skill.bagua_skill.ai.effect.target.apply(this,arguments);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
kanpo:{
|
2021-10-12 05:02:49 +00:00
|
|
|
|
mod:{
|
|
|
|
|
aiValue:function(player,card,num){
|
|
|
|
|
if(get.name(card)!='wuxie'&&get.color(card)!='black') return;
|
|
|
|
|
var cards=player.getCards('hs',function(card){
|
|
|
|
|
return get.name(card)=='wuxie'||get.color(card)=='black';
|
|
|
|
|
});
|
|
|
|
|
cards.sort(function(a,b){
|
|
|
|
|
return (get.name(b)=='wuxie'?1:2)-(get.name(a)=='wuxie'?1:2);
|
|
|
|
|
});
|
|
|
|
|
var geti=function(){
|
|
|
|
|
if(cards.contains(card)){
|
|
|
|
|
return cards.indexOf(card);
|
|
|
|
|
}
|
|
|
|
|
return cards.length;
|
|
|
|
|
};
|
|
|
|
|
if(get.name(card)=='wuxie') return Math.min(num,[6,4,3][Math.min(geti(),2)])*0.6;
|
|
|
|
|
return Math.max(num,[6,4,3][Math.min(geti(),2)]);
|
|
|
|
|
},
|
|
|
|
|
aiUseful:function(){
|
|
|
|
|
return lib.skill.kanpo.mod.aiValue.apply(this,arguments);
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
locked:false,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
audio:2,
|
|
|
|
|
enable:'chooseToUse',
|
|
|
|
|
filterCard:function(card){
|
|
|
|
|
return get.color(card)=='black';
|
|
|
|
|
},
|
|
|
|
|
viewAsFilter:function(player){
|
2021-05-18 07:57:26 +00:00
|
|
|
|
return player.countCards('hs',{color:'black'})>0;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
viewAs:{name:'wuxie'},
|
2021-05-18 07:57:26 +00:00
|
|
|
|
position:'hs',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
prompt:'将一张黑色手牌当无懈可击使用',
|
2019-12-25 05:21:37 +00:00
|
|
|
|
check:function(card){
|
|
|
|
|
var tri=_status.event.getTrigger();
|
|
|
|
|
if(tri&&tri.card&&tri.card.name=='chiling') return -1;
|
|
|
|
|
return 8-get.value(card)
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
threaten:1.2
|
|
|
|
|
},
|
|
|
|
|
lianhuan:{
|
2020-02-16 04:25:41 +00:00
|
|
|
|
audio:'lianhuan1',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
group:['lianhuan1','lianhuan2']
|
|
|
|
|
},
|
|
|
|
|
lianhuan1:{
|
|
|
|
|
audio:2,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_pangtong'],
|
2020-03-05 13:10:37 +00:00
|
|
|
|
enable:'chooseToUse',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
2021-05-18 07:57:26 +00:00
|
|
|
|
return player.countCards('hs',{suit:'club'})>0;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
2021-05-18 07:57:26 +00:00
|
|
|
|
position:'hs',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filterCard:function(card){
|
|
|
|
|
return get.suit(card)=='club';
|
|
|
|
|
},
|
|
|
|
|
viewAs:{name:'tiesuo'},
|
|
|
|
|
prompt:'将一张梅花牌当铁锁连环使用',
|
2019-07-14 10:58:01 +00:00
|
|
|
|
check:function(card){return 4.5-get.value(card)}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
lianhuan2:{
|
|
|
|
|
audio:2,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
popup:'lianhuan',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('h',{suit:'club'})>0;
|
|
|
|
|
},
|
|
|
|
|
filterCard:function(card){
|
|
|
|
|
return get.suit(card)=='club';
|
|
|
|
|
},
|
|
|
|
|
check:function(card){
|
|
|
|
|
return 5-get.useful(card);
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.draw();
|
|
|
|
|
},
|
|
|
|
|
discard:false,
|
2019-11-22 05:19:45 +00:00
|
|
|
|
visible:true,
|
|
|
|
|
loseTo:'discardPile',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
prompt:'将一张梅花牌置入弃牌堆并摸一张牌',
|
|
|
|
|
delay:0.5,
|
|
|
|
|
prepare:function(cards,player){
|
|
|
|
|
player.$throw(cards,1000);
|
2019-11-22 05:19:45 +00:00
|
|
|
|
game.log(player,'将',cards,'置入了弃牌堆');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
basic:{
|
|
|
|
|
order:1
|
|
|
|
|
},
|
|
|
|
|
result:{
|
|
|
|
|
player:1,
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
niepan:{
|
|
|
|
|
audio:2,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_pangtong'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
unique:true,
|
|
|
|
|
enable:'chooseToUse',
|
|
|
|
|
mark:true,
|
2019-07-17 08:25:58 +00:00
|
|
|
|
limited:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
skillAnimation:true,
|
|
|
|
|
animationStr:'涅盘',
|
|
|
|
|
animationColor:'fire',
|
|
|
|
|
init:function(player){
|
|
|
|
|
player.storage.niepan=false;
|
|
|
|
|
},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(player.storage.niepan) return false;
|
|
|
|
|
if(event.type=='dying'){
|
|
|
|
|
if(player!=event.dying) return false;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
else if(event.parent.name=='phaseUse'){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.awakenSkill('niepan');
|
|
|
|
|
player.storage.niepan=true;
|
2019-07-23 09:59:48 +00:00
|
|
|
|
player.discard(player.getCards('hej'));
|
2018-04-17 07:32:43 +00:00
|
|
|
|
'step 1'
|
2020-03-05 13:10:37 +00:00
|
|
|
|
player.link(false);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
'step 2'
|
2020-03-05 13:10:37 +00:00
|
|
|
|
player.turnOver(false);
|
2019-07-23 09:59:48 +00:00
|
|
|
|
'step 3'
|
2020-03-05 13:10:37 +00:00
|
|
|
|
player.draw(3);
|
2019-07-23 09:59:48 +00:00
|
|
|
|
'step 4'
|
2020-03-05 13:10:37 +00:00
|
|
|
|
if(player.hp<3){
|
|
|
|
|
player.recover(3-player.hp);
|
|
|
|
|
}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:0.5,
|
2021-01-10 02:28:38 +00:00
|
|
|
|
skillTagFilter:function(player,tag,target){
|
|
|
|
|
if(player!=target||player.storage.niepan) return false;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
save:true,
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player){
|
2020-03-05 13:10:37 +00:00
|
|
|
|
if(player.hp<=0) return 10;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(player.hp<=1&&player.countCards('he')<=1) return 10;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
threaten:function(player,target){
|
|
|
|
|
if(!target.storage.niepan) return 0.6;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
intro:{
|
|
|
|
|
content:'limited'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
oldniepan:{
|
|
|
|
|
audio:'niepan',
|
|
|
|
|
unique:true,
|
|
|
|
|
enable:'chooseToUse',
|
|
|
|
|
mark:true,
|
|
|
|
|
skillAnimation:true,
|
|
|
|
|
animationStr:'涅盘',
|
2019-07-17 08:25:58 +00:00
|
|
|
|
limited:true,
|
2019-09-15 14:45:05 +00:00
|
|
|
|
animationColor:'orange',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
init:function(player){
|
|
|
|
|
player.storage.oldniepan=false;
|
|
|
|
|
},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(player.storage.oldniepan) return false;
|
|
|
|
|
if(event.type=='dying'){
|
|
|
|
|
if(player!=event.dying) return false;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.awakenSkill('oldniepan');
|
|
|
|
|
player.storage.oldniepan=true;
|
2019-07-23 09:59:48 +00:00
|
|
|
|
player.discard(player.getCards('hej'));
|
2018-04-17 07:32:43 +00:00
|
|
|
|
'step 1'
|
2020-03-05 13:10:37 +00:00
|
|
|
|
player.link(false);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
'step 2'
|
2020-03-05 13:10:37 +00:00
|
|
|
|
player.turnOver(false);
|
2019-07-23 09:59:48 +00:00
|
|
|
|
'step 3'
|
2020-03-05 13:10:37 +00:00
|
|
|
|
player.draw(3);
|
2019-07-23 09:59:48 +00:00
|
|
|
|
'step 4'
|
2020-03-05 13:10:37 +00:00
|
|
|
|
if(player.hp<3){
|
|
|
|
|
player.recover(3-player.hp);
|
|
|
|
|
}
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:1,
|
2021-01-10 02:28:38 +00:00
|
|
|
|
skillTagFilter:function(player,arg,target){
|
|
|
|
|
if(player!=target||player.storage.oldniepan) return false;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
save:true,
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player){
|
2020-03-05 13:10:37 +00:00
|
|
|
|
if(player.hp<=0) return 10;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(player.hp<=2&&player.countCards('he')<=1) return 10;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
threaten:function(player,target){
|
|
|
|
|
if(!target.storage.oldniepan) return 0.6;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
intro:{
|
|
|
|
|
content:'limited'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
quhu:{
|
|
|
|
|
audio:2,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_xunyu'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(player.countCards('h')==0) return false;
|
|
|
|
|
return game.hasPlayer(function(current){
|
|
|
|
|
return current.hp>player.hp&¤t.countCards('h');
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
2019-06-13 12:51:34 +00:00
|
|
|
|
return target.hp>player.hp&&player.canCompare(target);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.chooseToCompare(target);
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
if(game.hasPlayer(function(player){
|
2020-03-19 13:24:54 +00:00
|
|
|
|
return player!=target&&target.inRange(player);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
})){
|
|
|
|
|
player.chooseTarget(function(card,player,target){
|
|
|
|
|
var source=_status.event.source;
|
2020-03-23 09:11:24 +00:00
|
|
|
|
return target!=source&&source.inRange(target);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},true).set('ai',function(target){
|
|
|
|
|
return get.damageEffect(target,_status.event.source,player);
|
|
|
|
|
}).set('source',target);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.damage(target);
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
"step 2"
|
|
|
|
|
if(result.bool&&result.targets&&result.targets.length){
|
|
|
|
|
target.line(result.targets[0],'green');
|
|
|
|
|
result.targets[0].damage(target);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:0.5,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
var att=get.attitude(player,target);
|
|
|
|
|
var oc=(target.countCards('h')==1);
|
|
|
|
|
if(att>0&&oc) return 0;
|
|
|
|
|
var players=game.filterPlayer();
|
|
|
|
|
for(var i=0;i<players.length;i++){
|
|
|
|
|
if(players[i]!=target&&players[i]!=player&&
|
2020-03-05 13:10:37 +00:00
|
|
|
|
target.inRange(players[i])){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(get.damageEffect(players[i],target,player)>0){
|
|
|
|
|
return att>0?att/2:att-(oc?5:0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
},
|
|
|
|
|
player:function(player,target){
|
|
|
|
|
if(target.hasSkillTag('jueqing',false,target)) return -10;
|
|
|
|
|
var mn=1;
|
|
|
|
|
var hs=player.getCards('h');
|
|
|
|
|
for(var i=0;i<hs.length;i++){
|
2022-05-30 10:35:29 +00:00
|
|
|
|
mn=Math.max(mn,get.number(hs[i]));
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
if(mn<=11&&player.hp<2) return -20;
|
|
|
|
|
var max=player.maxHp-hs.length;
|
|
|
|
|
var players=game.filterPlayer();
|
|
|
|
|
for(var i=0;i<players.length;i++){
|
|
|
|
|
if(get.attitude(player,players[i])>2){
|
|
|
|
|
max=Math.max(Math.min(5,players[i].hp)-players[i].countCards('h'),max);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
switch(max){
|
|
|
|
|
case 0:return mn==13?0:-20;
|
|
|
|
|
case 1:return mn>=12?0:-15;
|
|
|
|
|
case 2:return 0;
|
|
|
|
|
case 3:return 1;
|
|
|
|
|
default:return max;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
expose:0.2
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
jieming:{
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{player:'damageEnd'},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2020-02-04 05:31:47 +00:00
|
|
|
|
event.count=trigger.num;
|
|
|
|
|
"step 1"
|
|
|
|
|
event.count--;
|
|
|
|
|
player.chooseTarget(get.prompt2('jieming'),function(card,player,target){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return target.countCards('h')<Math.min(target.maxHp,5);
|
|
|
|
|
}).set('ai',function(target){
|
|
|
|
|
var att=get.attitude(_status.event.player,target);
|
2021-09-07 05:05:57 +00:00
|
|
|
|
if(target.hasSkillTag('nogain')) att/=6;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(att>2){
|
|
|
|
|
return Math.min(5,target.maxHp)-target.countCards('h');
|
|
|
|
|
}
|
|
|
|
|
return att/3;
|
|
|
|
|
});
|
2020-02-04 05:31:47 +00:00
|
|
|
|
"step 2"
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('jieming',result.targets);
|
|
|
|
|
for(var i=0;i<result.targets.length;i++){
|
2020-02-04 05:31:47 +00:00
|
|
|
|
result.targets[i].drawTo(Math.min(5,result.targets[i].maxHp));
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
2020-02-04 05:31:47 +00:00
|
|
|
|
if(event.count) event.goto(1);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
maixie:true,
|
|
|
|
|
maixie_hp:true,
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target,current){
|
|
|
|
|
if(get.tag(card,'damage')&&target.hp>1){
|
|
|
|
|
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
|
|
|
|
|
var max=0;
|
|
|
|
|
var players=game.filterPlayer();
|
|
|
|
|
for(var i=0;i<players.length;i++){
|
|
|
|
|
if(get.attitude(target,players[i])>0){
|
|
|
|
|
max=Math.max(Math.min(5,players[i].hp)-players[i].countCards('h'),max);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
switch(max){
|
|
|
|
|
case 0:return 2;
|
|
|
|
|
case 1:return 1.5;
|
|
|
|
|
case 2:return [1,2];
|
|
|
|
|
default:return [0,max];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if((card.name=='tao'||card.name=='caoyao')&&
|
|
|
|
|
target.hp>1&&target.countCards('h')<=target.hp) return [0,0];
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
2019-11-09 13:20:13 +00:00
|
|
|
|
qiangxix:{
|
|
|
|
|
inherit:'reqiangxi',
|
2020-02-16 04:25:41 +00:00
|
|
|
|
audioname:['boss_lvbu3'],
|
|
|
|
|
audio:'qiangxi',
|
2019-11-09 13:20:13 +00:00
|
|
|
|
usable:2,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filterTarget:function(card,player,target){
|
2019-11-09 13:20:13 +00:00
|
|
|
|
if(player==target) return false;
|
|
|
|
|
if(target.hasSkill('reqiangxi_off')) return false;
|
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
qiangxi:{
|
|
|
|
|
audio:2,
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
2019-07-17 08:25:58 +00:00
|
|
|
|
audioname:['boss_lvbu3'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filterCard:function(card){
|
|
|
|
|
return get.subtype(card)=='equip1';
|
|
|
|
|
},
|
|
|
|
|
selectCard:[0,1],
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
if(player==target) return false;
|
2020-03-05 13:10:37 +00:00
|
|
|
|
return player.inRange(target);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
if(cards.length==0){
|
|
|
|
|
player.loseHp();
|
|
|
|
|
}
|
|
|
|
|
"step 1"
|
2019-07-17 08:25:58 +00:00
|
|
|
|
target.damage('nocard');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
check:function(card){
|
|
|
|
|
return 10-get.value(card);
|
|
|
|
|
},
|
|
|
|
|
position:'he',
|
|
|
|
|
ai:{
|
|
|
|
|
damage:true,
|
|
|
|
|
order:8,
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player,target){
|
2021-03-08 11:10:12 +00:00
|
|
|
|
if(ui.selected.cards.length) return 0;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(player.hp>=target.hp) return -0.9;
|
|
|
|
|
if(player.hp<=2) return -10;
|
|
|
|
|
return -2;
|
|
|
|
|
},
|
|
|
|
|
target:function(player,target){
|
2021-03-08 11:10:12 +00:00
|
|
|
|
if(!ui.selected.cards.length){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(player.hp<2) return 0;
|
|
|
|
|
if(player.hp==2&&target.hp>=2) return 0;
|
|
|
|
|
if(target.hp>player.hp) return 0;
|
|
|
|
|
}
|
|
|
|
|
return get.damageEffect(target,player);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
threaten:1.3
|
|
|
|
|
},
|
|
|
|
|
xinqiangxi:{
|
|
|
|
|
audio:'qiangxi',
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(player.hasSkill('xinqiangxi2')){
|
|
|
|
|
return !player.hasSkill('xinqiangxi3');
|
|
|
|
|
}
|
|
|
|
|
else if(player.hasSkill('xinqiangxi3')){
|
|
|
|
|
return !player.hasSkill('xinqiangxi2')&&player.countCards('he',{type:'equip'})>0;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
filterCard:function(card){
|
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
if(player.hasSkill('xinqiangxi2')) return false;
|
|
|
|
|
return get.type(card)=='equip';
|
|
|
|
|
},
|
|
|
|
|
selectCard:function(){
|
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
if(player.hasSkill('xinqiangxi2')) return -1;
|
|
|
|
|
if(player.hasSkill('xinqiangxi3')) return [1,1];
|
|
|
|
|
return [0,1];
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
if(player==target) return false;
|
2020-03-05 13:10:37 +00:00
|
|
|
|
return player.inRange(target);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
if(cards.length==0){
|
|
|
|
|
player.loseHp();
|
|
|
|
|
player.addTempSkill('xinqiangxi3');
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.addTempSkill('xinqiangxi2');
|
|
|
|
|
}
|
|
|
|
|
"step 1"
|
2019-07-17 08:25:58 +00:00
|
|
|
|
target.damage('nocard');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
check:function(card){
|
|
|
|
|
return 10-get.value(card);
|
|
|
|
|
},
|
|
|
|
|
position:'he',
|
|
|
|
|
ai:{
|
|
|
|
|
order:8.5,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
2021-03-08 11:10:12 +00:00
|
|
|
|
if(!ui.selected.cards.length){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(player.hp<2) return 0;
|
|
|
|
|
if(target.hp>=player.hp) return 0;
|
|
|
|
|
}
|
|
|
|
|
return get.damageEffect(target,player);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
threaten:1.5
|
|
|
|
|
},
|
|
|
|
|
xinqiangxi2:{},
|
|
|
|
|
xinqiangxi3:{},
|
|
|
|
|
tianyi:{
|
|
|
|
|
audio:2,
|
2020-07-11 01:45:52 +00:00
|
|
|
|
audioname:['re_taishici'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filterTarget:function(card,player,target){
|
2019-06-13 12:51:34 +00:00
|
|
|
|
return player.canCompare(target);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('h')>0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.chooseToCompare(target);
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.addTempSkill('tianyi2');
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.addTempSkill('tianyi3');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:function(name,player){
|
|
|
|
|
var cards=player.getCards('h');
|
|
|
|
|
if(player.countCards('h','sha')==0){
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
for(var i=0;i<cards.length;i++){
|
2022-05-30 10:35:29 +00:00
|
|
|
|
if(cards[i].name!='sha'&&get.number(cards[i])>11&&get.value(cards[i])<7){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return 9;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return get.order({name:'sha'})-1;
|
|
|
|
|
},
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player){
|
|
|
|
|
if(player.countCards('h','sha')>0) return 0.6;
|
|
|
|
|
var num=player.countCards('h');
|
|
|
|
|
if(num>player.hp) return 0;
|
|
|
|
|
if(num==1) return -2;
|
|
|
|
|
if(num==2) return -1;
|
|
|
|
|
return -0.7;
|
|
|
|
|
},
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
var num=target.countCards('h');
|
|
|
|
|
if(num==1) return -1;
|
|
|
|
|
if(num==2) return -0.7;
|
|
|
|
|
return -0.5
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
threaten:1.3
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
tianyi2:{
|
|
|
|
|
mod:{
|
|
|
|
|
targetInRange:function(card,player,target,now){
|
|
|
|
|
if(card.name=='sha') return true;
|
|
|
|
|
},
|
|
|
|
|
selectTarget:function(card,player,range){
|
|
|
|
|
if(card.name=='sha'&&range[1]!=-1) range[1]++;
|
|
|
|
|
},
|
|
|
|
|
cardUsable:function(card,player,num){
|
|
|
|
|
if(card.name=='sha') return num+1;
|
|
|
|
|
}
|
|
|
|
|
},
|
2021-07-15 04:47:00 +00:00
|
|
|
|
charlotte:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
tianyi3:{
|
|
|
|
|
mod:{
|
|
|
|
|
cardEnabled:function(card){if(card.name=='sha') return false}
|
2021-07-15 04:47:00 +00:00
|
|
|
|
},
|
|
|
|
|
charlotte:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
shuangxiong:{
|
|
|
|
|
audio:true,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_yanwen'],
|
2020-01-01 14:36:18 +00:00
|
|
|
|
trigger:{player:'phaseDrawBegin1'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
check:function(event,player){
|
|
|
|
|
if(player.countCards('h')>player.hp) return true;
|
|
|
|
|
if(player.countCards('h')>3) return true;
|
|
|
|
|
return false;
|
|
|
|
|
},
|
2020-03-13 10:02:18 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !event.numFixed;
|
|
|
|
|
},
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
2022-04-10 16:34:02 +00:00
|
|
|
|
player.judge().set('callback',lib.skill.shuangxiong.callback);
|
2020-03-13 10:02:18 +00:00
|
|
|
|
trigger.changeToZero();
|
2022-04-10 16:34:02 +00:00
|
|
|
|
},
|
|
|
|
|
callback:function(){
|
|
|
|
|
player.gain(card,'gain2');
|
|
|
|
|
player.addTempSkill('shuangxiong2');
|
|
|
|
|
player.storage.shuangxiong=event.judgeResult.color;
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
shuangxiong2:{
|
|
|
|
|
audio:true,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_yanwen'],
|
2021-06-10 15:27:23 +00:00
|
|
|
|
enable:'chooseToUse',
|
2019-07-14 10:58:01 +00:00
|
|
|
|
prompt:function(){
|
|
|
|
|
var player=_status.event.player;
|
2019-12-30 05:04:47 +00:00
|
|
|
|
var str='将一张'+(player.storage.shuangxiong!='red'?'红':'黑')+'色手牌当做【决斗】使用';
|
2019-07-14 10:58:01 +00:00
|
|
|
|
return str;
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
viewAs:{name:'juedou'},
|
2021-05-18 07:57:26 +00:00
|
|
|
|
position:'hs',
|
2019-07-14 10:58:01 +00:00
|
|
|
|
onremove:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filterCard:function(card,player){
|
|
|
|
|
return get.color(card)!=player.storage.shuangxiong;
|
|
|
|
|
},
|
|
|
|
|
check:function(card){
|
|
|
|
|
return 8-get.value(card);
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
basic:{
|
|
|
|
|
order:10
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
luanji:{
|
|
|
|
|
audio:2,
|
|
|
|
|
enable:'phaseUse',
|
2021-05-18 07:57:26 +00:00
|
|
|
|
position:'hs',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
viewAs:{name:'wanjian'},
|
|
|
|
|
filterCard:function(card,player){
|
|
|
|
|
if(ui.selected.cards.length){
|
|
|
|
|
return get.suit(card)==get.suit(ui.selected.cards[0]);
|
|
|
|
|
}
|
2021-05-18 07:57:26 +00:00
|
|
|
|
var cards=player.getCards('hs');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
for(var i=0;i<cards.length;i++){
|
|
|
|
|
if(card!=cards[i]){
|
|
|
|
|
if(get.suit(card)==get.suit(cards[i])) return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
selectCard:2,
|
|
|
|
|
complexCard:true,
|
|
|
|
|
check:function(card){
|
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
var targets=game.filterPlayer(function(current){
|
|
|
|
|
return player.canUse('wanjian',current);
|
|
|
|
|
});
|
|
|
|
|
var num=0;
|
|
|
|
|
for(var i=0;i<targets.length;i++){
|
|
|
|
|
var eff=get.sgn(get.effect(targets[i],{name:'wanjian'},player,player));
|
|
|
|
|
if(targets[i].hp==1){
|
|
|
|
|
eff*=1.5;
|
|
|
|
|
}
|
|
|
|
|
num+=eff;
|
|
|
|
|
}
|
|
|
|
|
if(!player.needsToDiscard(-1)){
|
|
|
|
|
if(targets.length>=7){
|
|
|
|
|
if(num<2) return 0;
|
|
|
|
|
}
|
|
|
|
|
else if(targets.length>=5){
|
|
|
|
|
if(num<1.5) return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return 6-get.value(card);
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
basic:{
|
2019-11-03 01:16:54 +00:00
|
|
|
|
order:8.5
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
xueyi:{
|
2019-07-23 09:59:48 +00:00
|
|
|
|
trigger:{player:'phaseDiscardBefore'},
|
|
|
|
|
audio:2,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_yuanshao'],
|
2019-07-23 09:59:48 +00:00
|
|
|
|
forced:true,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
firstDo:true,
|
2019-07-23 09:59:48 +00:00
|
|
|
|
filter:function(event,player){
|
2020-03-13 10:02:18 +00:00
|
|
|
|
return player.hasZhuSkill('xueyi')&&game.hasPlayer(function(current){
|
|
|
|
|
return current!=player&¤t.group=='qun';
|
|
|
|
|
})&&player.countCards('h')>player.hp;
|
2019-07-23 09:59:48 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
mod:{
|
|
|
|
|
maxHandcard:function(player,num){
|
|
|
|
|
if(player.hasZhuSkill('xueyi')){
|
|
|
|
|
return num+game.countPlayer(function(current){
|
|
|
|
|
if(player!=current&¤t.group=='qun') return 2;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
return num;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
zhuSkill:true,
|
|
|
|
|
},
|
|
|
|
|
mengjin:{
|
2020-03-25 12:27:23 +00:00
|
|
|
|
shaRelated:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{player:'shaMiss'},
|
2019-11-22 05:19:45 +00:00
|
|
|
|
//priority:-1,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event){
|
|
|
|
|
return event.target.countCards('he')>0;
|
|
|
|
|
},
|
|
|
|
|
check:function(event,player){
|
|
|
|
|
return get.attitude(player,event.target)<0;
|
|
|
|
|
},
|
2019-11-14 05:47:38 +00:00
|
|
|
|
logTarget:'target',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
player.discardPlayerCard('he',trigger.target,true);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
jiewei:{
|
|
|
|
|
trigger:{player:'turnOverEnd'},
|
2019-09-20 15:19:26 +00:00
|
|
|
|
//direct:true,
|
|
|
|
|
frequent:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
audio:2,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2019-09-20 15:19:26 +00:00
|
|
|
|
player.draw();
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.chooseToUse(function(card){
|
|
|
|
|
if(!lib.filter.cardEnabled(card,_status.event.player,_status.event)){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
var type=get.type(card,'trick');
|
|
|
|
|
return type=='trick'||type=='equip';
|
2019-09-20 15:19:26 +00:00
|
|
|
|
},'是否使用一张锦囊牌或装备牌?');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
var type=get.type(result.card||result.cards[0]);
|
|
|
|
|
if(game.hasPlayer(function(current){
|
|
|
|
|
if(type=='equip'){
|
|
|
|
|
return current.countCards('e');
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return current.countCards('j');
|
|
|
|
|
}
|
|
|
|
|
})){
|
|
|
|
|
var next=player.chooseTarget('是否弃置场上的一张'+get.translation(type)+'牌?',function(card,player,target){
|
|
|
|
|
if(_status.event.type=='equip'){
|
|
|
|
|
return target.countCards('e')>0;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return target.countCards('j')>0;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
next.set('ai',function(target){
|
|
|
|
|
if(type=='equip'){
|
|
|
|
|
return -get.attitude(player,target);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return get.attitude(player,target);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
next.set('type',type);
|
|
|
|
|
event.type=type;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
if(event.type&&result.bool&&result.targets&&result.targets.length){
|
|
|
|
|
player.line(result.targets,'green');
|
|
|
|
|
if(event.type=='equip'){
|
|
|
|
|
player.discardPlayerCard(result.targets[0],'e',true);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.discardPlayerCard(result.targets[0],'j',true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
releiji:{
|
|
|
|
|
audio:2,
|
|
|
|
|
audioname:['boss_qinglong'],
|
2019-12-05 15:15:43 +00:00
|
|
|
|
trigger:{player:['useCard','respond']},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.card.name=='shan';
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0";
|
2020-02-14 05:33:43 +00:00
|
|
|
|
player.chooseTarget(get.prompt2('releiji'),function(card,player,target){
|
|
|
|
|
return target!=player;
|
|
|
|
|
}).ai=function(target){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(target.hasSkill('hongyan')) return 0;
|
|
|
|
|
return get.damageEffect(target,_status.event.player,_status.event.player,'thunder');
|
|
|
|
|
};
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('releiji',result.targets,'thunder');
|
|
|
|
|
event.target=result.targets[0];
|
|
|
|
|
event.target.judge(function(card){
|
|
|
|
|
var suit=get.suit(card);
|
|
|
|
|
if(suit=='spade') return -4;
|
|
|
|
|
if(suit=='club') return -2;
|
|
|
|
|
return 0;
|
2021-09-23 15:07:50 +00:00
|
|
|
|
}).judge2=function(result){
|
|
|
|
|
return result.bool==false?true:false;
|
|
|
|
|
};
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
"step 2"
|
|
|
|
|
if(result.suit=='club'){
|
|
|
|
|
event.target.damage('thunder');
|
|
|
|
|
player.recover();
|
|
|
|
|
}
|
|
|
|
|
else if(result.suit=='spade'){
|
|
|
|
|
event.target.damage(2,'thunder');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
useShan:true,
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target,current){
|
|
|
|
|
if(get.tag(card,'respondShan')){
|
|
|
|
|
var hastarget=game.hasPlayer(function(current){
|
|
|
|
|
return get.attitude(target,current)<0;
|
|
|
|
|
});
|
|
|
|
|
var be=target.countCards('e',{color:'black'});
|
|
|
|
|
if(target.countCards('h','shan')&&be){
|
|
|
|
|
if(!target.hasSkill('guidao')) return 0;
|
|
|
|
|
return [0,hastarget?target.countCards('he')/2:0];
|
|
|
|
|
}
|
|
|
|
|
if(target.countCards('h','shan')&&target.countCards('h')>2){
|
|
|
|
|
if(!target.hasSkill('guidao')) return 0;
|
|
|
|
|
return [0,hastarget?target.countCards('h')/4:0];
|
|
|
|
|
}
|
|
|
|
|
if(target.countCards('h')>3||(be&&target.countCards('h')>=2)){
|
|
|
|
|
return [0,0];
|
|
|
|
|
}
|
|
|
|
|
if(target.countCards('h')==0){
|
|
|
|
|
return [1.5,0];
|
|
|
|
|
}
|
|
|
|
|
if(target.countCards('h')==1&&!be){
|
|
|
|
|
return [1.2,0];
|
|
|
|
|
}
|
|
|
|
|
if(!target.hasSkill('guidao')) return [1,0.05];
|
|
|
|
|
return [1,Math.min(0.5,(target.countCards('h')+be)/4)];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
shensu:{
|
2019-07-23 09:59:48 +00:00
|
|
|
|
audio:'shensu1',
|
2020-03-30 11:56:37 +00:00
|
|
|
|
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
|
2021-10-22 05:07:02 +00:00
|
|
|
|
group:['shensu1','shensu2'],
|
|
|
|
|
preHidden:['shensu1','shensu2'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
xinshensu:{
|
2019-07-23 09:59:48 +00:00
|
|
|
|
audio:'shensu1',
|
2020-03-30 11:56:37 +00:00
|
|
|
|
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
group:['shensu1','shensu2','shensu4']
|
|
|
|
|
},
|
|
|
|
|
shensu1:{
|
|
|
|
|
audio:2,
|
2020-03-30 11:56:37 +00:00
|
|
|
|
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
|
2019-08-30 15:02:50 +00:00
|
|
|
|
trigger:{player:'phaseJudgeBefore'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
var check= player.countCards('h')>2;
|
2019-08-30 15:02:50 +00:00
|
|
|
|
player.chooseTarget(get.prompt("shensu"),"跳过判定阶段和摸牌阶段,视为对一名其他角色使用一张【杀】",function(card,player,target){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(player==target) return false;
|
|
|
|
|
return player.canUse({name:'sha'},target,false);
|
|
|
|
|
}).set('check',check).set('ai',function(target){
|
|
|
|
|
if(!_status.event.check) return 0;
|
|
|
|
|
return get.effect(target,{name:'sha'},_status.event.player);
|
2021-10-22 05:07:02 +00:00
|
|
|
|
}).setHiddenSkill('shensu1');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('shensu1',result.targets);
|
2020-03-05 13:10:37 +00:00
|
|
|
|
player.useCard({name:'sha',isCard:true},result.targets[0],false);
|
2019-08-30 15:02:50 +00:00
|
|
|
|
trigger.cancel();
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.skip('phaseDraw');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
shensu2:{
|
2019-07-23 09:59:48 +00:00
|
|
|
|
audio:'shensu1',
|
2020-03-30 11:56:37 +00:00
|
|
|
|
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
trigger:{player:'phaseUseBefore'},
|
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
2020-11-13 07:36:36 +00:00
|
|
|
|
return player.countCards('he',function(card){
|
|
|
|
|
if(_status.connectMode) return true;
|
|
|
|
|
return get.type(card)=='equip';
|
|
|
|
|
})>0;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
var check=player.needsToDiscard();
|
|
|
|
|
player.chooseCardTarget({
|
|
|
|
|
prompt:get.prompt('shensu'),
|
2019-08-30 15:02:50 +00:00
|
|
|
|
prompt2:"弃置一张装备牌并跳过出牌阶段,视为对一名其他角色使用一张【杀】",
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filterCard:function(card,player){
|
|
|
|
|
return get.type(card)=='equip'&&lib.filter.cardDiscardable(card,player)
|
|
|
|
|
},
|
|
|
|
|
position:'he',
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
if(player==target) return false;
|
|
|
|
|
return player.canUse({name:'sha'},target,false);
|
|
|
|
|
},
|
|
|
|
|
ai1:function(card){
|
|
|
|
|
if(_status.event.check) return 0;
|
|
|
|
|
return 6-get.value(card);
|
|
|
|
|
},
|
|
|
|
|
ai2:function(target){
|
|
|
|
|
if(_status.event.check) return 0;
|
|
|
|
|
return get.effect(target,{name:'sha'},_status.event.player);
|
|
|
|
|
},
|
|
|
|
|
check:check
|
2021-10-22 05:07:02 +00:00
|
|
|
|
}).setHiddenSkill('shensu2');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('shensu2',result.targets);
|
|
|
|
|
player.discard(result.cards[0]);
|
2020-11-13 07:36:36 +00:00
|
|
|
|
player.useCard({name:'sha',isCard:true},result.targets[0],false);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
trigger.cancel();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
shensu4:{
|
|
|
|
|
audio:'shensu1',
|
2020-03-30 11:56:37 +00:00
|
|
|
|
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
trigger:{player:'phaseDiscardBefore'},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2020-03-30 11:56:37 +00:00
|
|
|
|
var check=player.needsToDiscard()||player.isTurnedOver()||(player.hasSkill('shebian')&&player.canMoveCard(true,true));
|
2019-08-30 15:02:50 +00:00
|
|
|
|
player.chooseTarget(get.prompt('shensu'),"跳过弃牌阶段并将武将牌翻面,视为对一名其他角色使用一张【杀】",function(card,player,target){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(player==target) return false;
|
|
|
|
|
return player.canUse({name:'sha'},target,false);
|
|
|
|
|
}).set('check',check).set('ai',function(target){
|
|
|
|
|
if(!_status.event.check) return 0;
|
2019-12-22 07:59:53 +00:00
|
|
|
|
return get.effect(target,{name:'sha'},_status.event.player,_status.event.player);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
});
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('shensu4',result.targets);
|
|
|
|
|
player.turnOver();
|
2020-03-05 13:10:37 +00:00
|
|
|
|
player.useCard({name:'sha',isCard:true},result.targets[0],false);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
trigger.cancel();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
jushou:{
|
|
|
|
|
audio:true,
|
2019-11-22 05:19:45 +00:00
|
|
|
|
trigger:{player:'phaseJieshuBegin'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
player.draw(3);
|
|
|
|
|
player.turnOver();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
|
|
|
|
if(card.name=='guiyoujie') return [0,1];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
2019-09-20 15:19:26 +00:00
|
|
|
|
moon_jushou:{
|
|
|
|
|
audio:'jushou',
|
2019-11-22 05:19:45 +00:00
|
|
|
|
trigger:{player:'phaseJieshuBegin'},
|
2019-09-20 15:19:26 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
player.draw();
|
|
|
|
|
player.turnOver();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
|
|
|
|
if(card.name=='guiyoujie') return [0,1];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
liegong:{
|
2020-03-25 12:27:23 +00:00
|
|
|
|
shaRelated:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
audio:2,
|
2019-12-28 14:03:35 +00:00
|
|
|
|
audioname:['re_huangzhong'],
|
2019-12-20 06:56:40 +00:00
|
|
|
|
trigger:{player:'useCardToPlayered'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
check:function(event,player){
|
|
|
|
|
return get.attitude(player,event.target)<=0;
|
|
|
|
|
},
|
|
|
|
|
logTarget:'target',
|
|
|
|
|
filter:function(event,player){
|
2019-11-22 05:19:45 +00:00
|
|
|
|
if(event.card.name!='sha') return false;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
var length=event.target.countCards('h');
|
|
|
|
|
return (length>=player.hp||length<=player.getAttackRange());
|
|
|
|
|
},
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
2019-11-22 05:19:45 +00:00
|
|
|
|
trigger.getParent().directHit.push(trigger.target);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
2018-08-10 09:29:29 +00:00
|
|
|
|
locked:false,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
mod:{
|
2022-05-09 16:59:02 +00:00
|
|
|
|
attackRange:function(player,distance){
|
|
|
|
|
if(get.zhu(player,'shouyue')) return distance+1;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
2021-01-19 14:04:52 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
directHit_ai:true,
|
|
|
|
|
skillTagFilter:function(player,tag,arg){
|
|
|
|
|
if(get.attitude(player,arg.target)>0||arg.card.name!='sha') return false;
|
|
|
|
|
var length=arg.target.countCards('h');
|
|
|
|
|
return (length>=player.hp||length<=player.getAttackRange());
|
|
|
|
|
},
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
kuanggu:{
|
|
|
|
|
audio:2,
|
2020-05-29 11:10:14 +00:00
|
|
|
|
audioname:['re_weiyan','ol_weiyan'],
|
2019-10-09 14:31:43 +00:00
|
|
|
|
trigger:{source:'damageSource'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return get.distance(player,event.player)<=1&&player.isDamaged();
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.recover(trigger.num);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
tianxiang:{
|
|
|
|
|
audio:2,
|
2020-05-23 04:37:37 +00:00
|
|
|
|
audioname:['daxiaoqiao','re_xiaoqiao','ol_xiaoqiao'],
|
2019-11-14 05:47:38 +00:00
|
|
|
|
trigger:{player:'damageBegin3'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('h',{suit:'heart'})>0&&event.num>0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.chooseCardTarget({
|
|
|
|
|
filterCard:function(card,player){
|
|
|
|
|
return get.suit(card)=='heart'&&lib.filter.cardDiscardable(card,player);
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return player!=target;
|
|
|
|
|
},
|
|
|
|
|
ai1:function(card){
|
|
|
|
|
return 10-get.value(card);
|
|
|
|
|
},
|
|
|
|
|
ai2:function(target){
|
|
|
|
|
var att=get.attitude(_status.event.player,target);
|
|
|
|
|
var trigger=_status.event.getTrigger();
|
|
|
|
|
var da=0;
|
|
|
|
|
if(_status.event.player.hp==1){
|
|
|
|
|
da=10;
|
|
|
|
|
}
|
|
|
|
|
if(trigger.num>1){
|
|
|
|
|
if(target.maxHp>5&&target.hp>1) return -att/10+da;
|
|
|
|
|
return -att+da;
|
|
|
|
|
}
|
|
|
|
|
var eff=get.damageEffect(target,trigger.source,target,trigger.nature);
|
|
|
|
|
if(att==0) return 0.1+da;
|
|
|
|
|
if(eff>=0&&trigger.num==1){
|
|
|
|
|
return att+da;
|
|
|
|
|
}
|
|
|
|
|
if(target.hp==target.maxHp) return -att+da;
|
|
|
|
|
if(target.hp==1){
|
|
|
|
|
if(target.maxHp<=4&&!target.hasSkillTag('maixie')){
|
|
|
|
|
if(target.maxHp<=3){
|
|
|
|
|
return -att+da;
|
|
|
|
|
}
|
|
|
|
|
return -att/2+da;
|
|
|
|
|
}
|
|
|
|
|
return da;
|
|
|
|
|
}
|
|
|
|
|
if(target.hp==target.maxHp-1){
|
|
|
|
|
if(target.hp>2||target.hasSkillTag('maixie')) return att/5+da;
|
|
|
|
|
if(att>0) return 0.02+da;
|
|
|
|
|
return 0.05+da;
|
|
|
|
|
}
|
|
|
|
|
return att/2+da;
|
|
|
|
|
},
|
2019-08-30 15:02:50 +00:00
|
|
|
|
prompt:get.prompt2('tianxiang')
|
2018-04-17 07:32:43 +00:00
|
|
|
|
});
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill(event.name,result.targets);
|
|
|
|
|
trigger.player=result.targets[0];
|
|
|
|
|
trigger.player.addSkill('tianxiang2');
|
|
|
|
|
player.discard(result.cards[0]);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
maixie_defend:true,
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
|
|
|
|
if(player.hasSkillTag('jueqing',false,target)) return;
|
|
|
|
|
if(get.tag(card,'damage')&&target.countCards('h')>1) return 0.7;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
threaten:function(player,target){
|
|
|
|
|
if(target.countCards('h')==0) return 2;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
tianxiang2:{
|
|
|
|
|
trigger:{player:['damageAfter','damageCancelled','damageZero']},
|
|
|
|
|
forced:true,
|
|
|
|
|
popup:false,
|
|
|
|
|
audio:false,
|
|
|
|
|
vanish:true,
|
2019-10-19 11:18:56 +00:00
|
|
|
|
charlotte:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
2019-10-19 11:18:56 +00:00
|
|
|
|
if(player.getDamagedHp()) player.draw(player.getDamagedHp());
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.removeSkill('tianxiang2');
|
|
|
|
|
player.popup('tianxiang');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
retianxiang:{
|
|
|
|
|
audio:'tianxiang',
|
2020-05-23 04:37:37 +00:00
|
|
|
|
audioname:['daxiaoqiao','re_xiaoqiao','ol_xiaoqiao'],
|
2019-11-14 05:47:38 +00:00
|
|
|
|
trigger:{player:'damageBegin4'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
direct:true,
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
2020-10-05 05:33:08 +00:00
|
|
|
|
return player.countCards('h',function(card){
|
|
|
|
|
return _status.connectMode||get.suit(card,player)=='heart';
|
|
|
|
|
})>0&&event.num>0;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.chooseCardTarget({
|
|
|
|
|
filterCard:function(card,player){
|
|
|
|
|
return get.suit(card)=='heart'&&lib.filter.cardDiscardable(card,player);
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return player!=target;
|
|
|
|
|
},
|
|
|
|
|
ai1:function(card){
|
|
|
|
|
return 10-get.value(card);
|
|
|
|
|
},
|
|
|
|
|
ai2:function(target){
|
|
|
|
|
var att=get.attitude(_status.event.player,target);
|
|
|
|
|
var trigger=_status.event.getTrigger();
|
|
|
|
|
var da=0;
|
|
|
|
|
if(_status.event.player.hp==1){
|
|
|
|
|
da=10;
|
|
|
|
|
}
|
|
|
|
|
var eff=get.damageEffect(target,trigger.source,target);
|
|
|
|
|
if(att==0) return 0.1+da;
|
|
|
|
|
if(eff>=0&&att>0){
|
|
|
|
|
return att+da;
|
|
|
|
|
}
|
|
|
|
|
if(att>0&&target.hp>1){
|
|
|
|
|
if(target.maxHp-target.hp>=3) return att*1.1+da;
|
|
|
|
|
if(target.maxHp-target.hp>=2) return att*0.9+da;
|
|
|
|
|
}
|
|
|
|
|
return -att+da;
|
|
|
|
|
},
|
|
|
|
|
prompt:get.prompt('retianxiang'),
|
|
|
|
|
prompt2:lib.translate.retianxiang_info
|
2021-10-22 05:07:02 +00:00
|
|
|
|
}).setHiddenSkill(event.name);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
2020-02-08 03:39:33 +00:00
|
|
|
|
player.discard(result.cards);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
var target=result.targets[0];
|
|
|
|
|
player.chooseControlList(true,function(event,player){
|
|
|
|
|
var target=_status.event.target;
|
|
|
|
|
var att=get.attitude(player,target);
|
|
|
|
|
if(target.hasSkillTag('maihp')) att=-att;
|
|
|
|
|
if(att>0){
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
['令'+get.translation(target)+'受到伤害来源对其造成的1点伤害,然后摸X张牌(X为其已损失体力值且至多为5)',
|
|
|
|
|
'令'+get.translation(target)+'失去1点体力,然后获得'+get.translation(result.cards)]).set('target',target);
|
|
|
|
|
player.logSkill(event.name,target);
|
|
|
|
|
trigger.cancel();
|
|
|
|
|
event.target=target;
|
|
|
|
|
event.card=result.cards[0];
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
"step 2"
|
|
|
|
|
if(typeof result.index=='number'){
|
2020-02-08 03:39:33 +00:00
|
|
|
|
event.index=result.index;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(result.index){
|
2020-02-08 03:39:33 +00:00
|
|
|
|
event.related=event.target.loseHp();
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
2020-02-08 03:39:33 +00:00
|
|
|
|
event.related=event.target.damage(trigger.source||'nosource','nocard');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2020-02-08 03:39:33 +00:00
|
|
|
|
else event.finish();
|
|
|
|
|
"step 3"
|
2022-05-30 10:35:29 +00:00
|
|
|
|
//if(event.related.cancelled||target.isDead()) return;
|
2020-02-08 03:39:33 +00:00
|
|
|
|
if(event.index&&card.isInPile()) target.gain(card,'gain2');
|
|
|
|
|
else if(target.getDamagedHp()) target.draw(Math.min(5,target.getDamagedHp()));
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
maixie_defend:true,
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
|
|
|
|
if(player.hasSkillTag('jueqing',false,target)) return;
|
|
|
|
|
if(get.tag(card,'damage')&&target.countCards('he')>1) return 0.7;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
retianxiang3:{
|
|
|
|
|
trigger:{player:'loseHpAfter'},
|
|
|
|
|
forced:true,
|
|
|
|
|
popup:false,
|
|
|
|
|
filter:function(event){
|
|
|
|
|
return event.type=='retianxiang';
|
|
|
|
|
},
|
|
|
|
|
vanish:true,
|
|
|
|
|
content:function(){
|
2019-08-07 15:38:38 +00:00
|
|
|
|
'step 0'
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.gain(player.storage.retianxiang3,'gain2');
|
2019-08-07 15:38:38 +00:00
|
|
|
|
'step 1'
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.removeSkill('retianxiang3');
|
|
|
|
|
},
|
|
|
|
|
onremove:function(player){
|
|
|
|
|
var card=player.storage.retianxiang3;
|
|
|
|
|
if(get.position(card)=='s'){
|
2019-08-03 13:29:18 +00:00
|
|
|
|
game.cardsDiscard(card);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
delete player.storage.retianxiang3;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
retianxiang2:{
|
|
|
|
|
trigger:{player:'damageAfter'},
|
|
|
|
|
forced:true,
|
|
|
|
|
popup:false,
|
|
|
|
|
filter:function(event){
|
|
|
|
|
return event.type=='retianxiang';
|
|
|
|
|
},
|
2017-05-07 17:47:09 +00:00
|
|
|
|
vanish:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
if(player.isDamaged()){
|
2019-10-19 11:18:56 +00:00
|
|
|
|
player.draw(player.getDamagedHp());
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
player.removeSkill('retianxiang2');
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
xintianxiang:{
|
|
|
|
|
audio:'tianxiang',
|
|
|
|
|
trigger:{player:'damageBefore'},
|
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.countCards('he',{suit:'heart'})>0&&event.num>0&&!player.hasSkill('xintianxiang3');
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.chooseCardTarget({
|
|
|
|
|
filterCard:function(card,player){
|
|
|
|
|
return get.suit(card)=='heart'&&lib.filter.cardDiscardable(card,player);
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return player!=target;
|
|
|
|
|
},
|
|
|
|
|
position:'he',
|
|
|
|
|
ai1:function(card){
|
|
|
|
|
return 10-get.value(card);
|
|
|
|
|
},
|
|
|
|
|
ai2:function(target){
|
|
|
|
|
var att=get.attitude(_status.event.player,target);
|
|
|
|
|
var trigger=_status.event.getTrigger();
|
|
|
|
|
var da=0;
|
|
|
|
|
if(_status.event.player.hp==1){
|
|
|
|
|
da=10;
|
|
|
|
|
}
|
|
|
|
|
if(trigger.num>1){
|
|
|
|
|
if(target.maxHp>5&&target.hp>1) return -att/10+da;
|
|
|
|
|
return -att+da;
|
|
|
|
|
}
|
|
|
|
|
var eff=get.damageEffect(target,trigger.source,target,trigger.nature);
|
|
|
|
|
if(att==0) return 0.1+da;
|
|
|
|
|
if(eff>=0&&trigger.num==1){
|
|
|
|
|
return att+da;
|
|
|
|
|
}
|
|
|
|
|
if(target.hp==target.maxHp) return -att+da;
|
|
|
|
|
if(target.hp==1){
|
|
|
|
|
if(target.maxHp<=4&&!target.hasSkillTag('maixie')){
|
|
|
|
|
if(target.maxHp<=3){
|
|
|
|
|
return -att+da;
|
|
|
|
|
}
|
|
|
|
|
return -att/2+da;
|
|
|
|
|
}
|
|
|
|
|
return da;
|
|
|
|
|
}
|
|
|
|
|
if(target.hp==target.maxHp-1){
|
|
|
|
|
if(target.hp>2||target.hasSkillTag('maixie')) return att/5+da;
|
|
|
|
|
if(att>0) return 0.02+da;
|
|
|
|
|
return 0.05+da;
|
|
|
|
|
}
|
|
|
|
|
return att/2+da;
|
|
|
|
|
},
|
2019-08-30 15:02:50 +00:00
|
|
|
|
prompt:get.prompt2('xintianxiang')
|
2018-04-17 07:32:43 +00:00
|
|
|
|
});
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill(event.name,result.targets);
|
|
|
|
|
trigger.player=result.targets[0];
|
|
|
|
|
trigger.player.addSkill('xintianxiang2');
|
|
|
|
|
trigger.player.storage.xintianxiang=player;
|
|
|
|
|
player.discard(result.cards[0]);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
maixie_defend:true,
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
|
|
|
|
if(player.hasSkillTag('jueqing',false,target)) return;
|
|
|
|
|
if(get.tag(card,'damage')&&target.countCards('he')>1) return 0.7;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
xintianxiang2:{
|
|
|
|
|
trigger:{player:['damageAfter','damageCancelled','damageZero']},
|
|
|
|
|
forced:true,
|
|
|
|
|
popup:false,
|
|
|
|
|
audio:false,
|
2017-05-07 17:47:09 +00:00
|
|
|
|
vanish:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var source=player.storage.xintianxiang;
|
|
|
|
|
if(source.isDead()){
|
|
|
|
|
event.finish();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var num=player.maxHp-player.hp||0;
|
|
|
|
|
var str1='令'+get.translation(player)+'摸'+get.cnNumber(num)+'张牌';
|
|
|
|
|
var str2='令'+get.translation(player)+'防止造成和受到的所有伤害且天香失效直到你下一回合开始';
|
|
|
|
|
var att=get.attitude(source,player);
|
|
|
|
|
var choice='选项一';
|
|
|
|
|
if(att<0){
|
|
|
|
|
if(num>=2){
|
|
|
|
|
choice='选项二';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(att>0){
|
|
|
|
|
if(num<2&&!player.hasSkillTag('maixie')){
|
|
|
|
|
choice='选项二';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
source.chooseControl(function(){
|
|
|
|
|
return _status.event.choice;
|
|
|
|
|
}).set('choiceList',[str1,str2]).set('choice',choice);
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.control=='选项一'){
|
|
|
|
|
if(player.isDamaged()){
|
|
|
|
|
player.draw(player.maxHp-player.hp);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
player.storage.xintianxiang.addSkill('xintianxiang3');
|
|
|
|
|
player.storage.xintianxiang.storage.xintianxiang3=player;
|
|
|
|
|
player.addSkill('xintianxiang4');
|
|
|
|
|
}
|
|
|
|
|
player.removeSkill('xintianxiang2');
|
|
|
|
|
delete player.storage.xintianxiang;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
xintianxiang3:{
|
2019-11-22 05:19:45 +00:00
|
|
|
|
trigger:{player:['phaseZhunbeiBegin','dieBegin']},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
silent:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
if(player.storage.xintianxiang3){
|
|
|
|
|
player.storage.xintianxiang3.removeSkill('xintianxiang4');
|
|
|
|
|
delete player.storage.xintianxiang3;
|
|
|
|
|
}
|
|
|
|
|
player.removeSkill('xintianxiang3');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
xintianxiang4:{
|
|
|
|
|
trigger:{source:'damageBefore',player:'damageBefore'},
|
|
|
|
|
forced:true,
|
|
|
|
|
mark:true,
|
|
|
|
|
intro:{
|
|
|
|
|
content:'防止造成和受到的一切伤害'
|
|
|
|
|
},
|
|
|
|
|
priority:15,
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.cancel();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
nofire:true,
|
|
|
|
|
nothunder:true,
|
|
|
|
|
nodamage:true,
|
|
|
|
|
notrick:true,
|
|
|
|
|
notricksource:true,
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target,current){
|
|
|
|
|
if(get.tag(card,'damage')){
|
|
|
|
|
return 'zeroplayertarget';
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
player:function(card,player,target,current){
|
|
|
|
|
if(get.tag(card,'damage')){
|
|
|
|
|
return 'zeroplayertarget';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
hongyan:{
|
|
|
|
|
mod:{
|
|
|
|
|
suit:function(card,suit){
|
|
|
|
|
if(suit=='spade') return 'heart';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2021-02-25 12:26:19 +00:00
|
|
|
|
xinhongyan:{
|
|
|
|
|
audio:2,
|
|
|
|
|
mod:{
|
|
|
|
|
suit:function(card,suit){
|
|
|
|
|
if(suit=='spade') return 'heart';
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger:{global:'judge'},
|
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(event.fixedResult&&event.fixedResult.suit) return event.fixedResult.suit=='heart';
|
|
|
|
|
return get.suit(event.player.judging[0],event.player)=='heart';
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
var str='红颜:'+get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+
|
|
|
|
|
get.translation(trigger.player.judging[0])+',请将其改为一种花色';
|
|
|
|
|
player.chooseControl('spade','heart','diamond','club').set('prompt',str).set('ai',function(){
|
|
|
|
|
var judging=_status.event.judging;
|
|
|
|
|
var trigger=_status.event.getTrigger();
|
|
|
|
|
var res1=trigger.judge(judging);
|
|
|
|
|
var list=lib.suit.slice(0);
|
|
|
|
|
var attitude=get.attitude(player,trigger.player);
|
|
|
|
|
if(attitude==0) return 0;
|
|
|
|
|
var getj=function(suit){
|
|
|
|
|
return trigger.judge({
|
|
|
|
|
name:get.name(judging),
|
|
|
|
|
nature:get.nature(judging),
|
|
|
|
|
suit:suit,
|
|
|
|
|
number:get.number(judging),
|
|
|
|
|
})
|
|
|
|
|
};
|
|
|
|
|
list.sort(function(a,b){
|
|
|
|
|
return (getj(b)-getj(a))*get.sgn(attitude);
|
|
|
|
|
});
|
|
|
|
|
return list[0];
|
|
|
|
|
}).set('judging',trigger.player.judging[0]);
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.control!='cancel2'){
|
|
|
|
|
player.addExpose(0.25);
|
|
|
|
|
player.popup(result.control);
|
|
|
|
|
game.log(player,'将判定结果改为了','#y'+get.translation(result.control+2));
|
|
|
|
|
if(!trigger.fixedResult) trigger.fixedResult={};
|
|
|
|
|
trigger.fixedResult.suit=result.control;
|
|
|
|
|
trigger.fixedResult.color=get.color({suit:result.control});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
rejudge:true,
|
|
|
|
|
tag:{
|
|
|
|
|
rejudge:0.4,
|
|
|
|
|
},
|
|
|
|
|
expose:0.5,
|
|
|
|
|
},
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
gzbuqu:{
|
2020-02-23 05:45:11 +00:00
|
|
|
|
audio:2,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
trigger:{player:'changeHp'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.hp<=0&&event.num<0;
|
|
|
|
|
},
|
|
|
|
|
init:function(player){
|
2020-02-08 03:39:33 +00:00
|
|
|
|
if(!player.storage.gzbuqu) player.storage.gzbuqu=[];
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
2019-11-22 05:19:45 +00:00
|
|
|
|
//priority:-15,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
intro:{
|
2020-04-05 10:42:38 +00:00
|
|
|
|
content:'cards',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
group:'gzbuqu_recover',
|
2020-04-05 10:42:38 +00:00
|
|
|
|
//locked:true,
|
2021-09-23 15:07:50 +00:00
|
|
|
|
forced:true,
|
|
|
|
|
locked:false,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
ondisable:true,
|
|
|
|
|
onremove:function(player){
|
|
|
|
|
if(player.storage.gzbuqu.length){
|
|
|
|
|
delete player.nodying;
|
|
|
|
|
player.hp=1-player.storage.gzbuqu.length;
|
|
|
|
|
game.log(player,'移去了不屈牌',player.storage.gzbuqu);
|
2020-02-08 03:39:33 +00:00
|
|
|
|
game.cardsDiscard(player.storage.gzbuqu);
|
|
|
|
|
player.storage.gzbuqu=[];
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.unmarkSkill('gzbuqu');
|
|
|
|
|
player.dying({});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
process:function(player){
|
|
|
|
|
delete player.nodying;
|
|
|
|
|
player.markSkill('gzbuqu');
|
|
|
|
|
player.syncStorage('gzbuqu');
|
|
|
|
|
var nums=[];
|
|
|
|
|
var cards=player.storage.gzbuqu;
|
|
|
|
|
for(var i=0;i<cards.length;i++){
|
2022-05-30 10:35:29 +00:00
|
|
|
|
if(nums.contains(get.number(cards[i]))){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else{
|
2022-05-30 10:35:29 +00:00
|
|
|
|
nums.push(get.number(cards[i]));
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
player.nodying=true;
|
|
|
|
|
},
|
|
|
|
|
subSkill:{
|
|
|
|
|
recover:{
|
|
|
|
|
trigger:{player:'changeHp'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.storage.gzbuqu.length>0&&event.num>0;
|
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
popup:false,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2019-10-19 11:18:56 +00:00
|
|
|
|
event.count=trigger.num;
|
|
|
|
|
'step 1'
|
|
|
|
|
event.count--;
|
|
|
|
|
if((player.hp+player.storage.gzbuqu.length)>1){
|
|
|
|
|
player.chooseCardButton('移去一张不屈牌',true,player.storage.gzbuqu).set('ai',function(button){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
var buttons=get.selectableButtons();
|
|
|
|
|
for(var i=0;i<buttons.length;i++){
|
|
|
|
|
if(buttons[i]!=button&&
|
2022-05-30 10:35:29 +00:00
|
|
|
|
get.number(buttons[i].link)==get.number(button.link)&&
|
2018-04-17 07:32:43 +00:00
|
|
|
|
!ui.selected.buttons.contains(buttons[i])){
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
});
|
|
|
|
|
}
|
2019-10-19 11:18:56 +00:00
|
|
|
|
'step 2'
|
2018-04-17 07:32:43 +00:00
|
|
|
|
for(var i=0;i<result.links.length;i++){
|
|
|
|
|
result.links[i].discard();
|
|
|
|
|
player.storage.gzbuqu.remove(result.links[i]);
|
|
|
|
|
}
|
|
|
|
|
player.$throw(result.links);
|
|
|
|
|
game.log(player,'移去了不屈牌',result.links);
|
2019-10-19 11:18:56 +00:00
|
|
|
|
if(event.count) event.goto(1);
|
|
|
|
|
'step 3'
|
2018-04-17 07:32:43 +00:00
|
|
|
|
lib.skill.gzbuqu.process(player);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2019-11-22 05:19:45 +00:00
|
|
|
|
var num=(-trigger.num-Math.max(player.hp-trigger.num,1)+1);
|
|
|
|
|
var cards=get.cards(num);
|
|
|
|
|
game.cardsGotoSpecial(cards);
|
|
|
|
|
player.storage.gzbuqu.addArray(cards);
|
|
|
|
|
//event.trigger("addCardToStorage");
|
2018-04-17 07:32:43 +00:00
|
|
|
|
player.showCards(get.translation(player)+'的不屈牌',player.storage.gzbuqu);
|
|
|
|
|
'step 1'
|
|
|
|
|
lib.skill.gzbuqu.process(player);
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
mingzhi:true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
buqu:{
|
|
|
|
|
audio:2,
|
2019-12-07 12:48:38 +00:00
|
|
|
|
audioname:['key_yuri'],
|
2019-08-13 04:42:32 +00:00
|
|
|
|
trigger:{player:'chooseToUseBefore'},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
forced:true,
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2022-04-10 16:34:02 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.type=='dying'&&player.isDying()&&event.dying==player&&!event.getParent()._buqu;
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
2022-04-10 16:34:02 +00:00
|
|
|
|
trigger.getParent()._buqu=true;
|
|
|
|
|
var card=get.cards()[0];
|
|
|
|
|
event.card=card;
|
|
|
|
|
player.addToExpansion(card,'gain2').gaintag.add('buqu');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
"step 1"
|
2022-04-10 16:34:02 +00:00
|
|
|
|
var cards=player.getExpansions('buqu'),num=get.number(card);
|
|
|
|
|
player.showCards(cards,'不屈')
|
|
|
|
|
for(var i=0;i<cards.length;i++){
|
|
|
|
|
if(cards[i]!=card&&get.number(cards[i])==num){
|
|
|
|
|
player.loseToDiscardpile(card);
|
2019-08-13 04:42:32 +00:00
|
|
|
|
return;
|
|
|
|
|
};
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
trigger.cancel();
|
2019-08-13 04:42:32 +00:00
|
|
|
|
trigger.result={bool:true};
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(player.hp<=0){
|
2019-08-13 04:42:32 +00:00
|
|
|
|
player.recover(1-player.hp);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mod:{
|
2020-05-23 04:37:37 +00:00
|
|
|
|
maxHandcardBase:function(player,num){
|
2022-04-18 02:27:32 +00:00
|
|
|
|
if(get.mode()!='guozhan'&&player.getExpansions('buqu').length) return player.getExpansions('buqu').length;
|
2019-08-13 04:42:32 +00:00
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
2019-10-09 14:31:43 +00:00
|
|
|
|
ai:{
|
|
|
|
|
save:true,
|
2020-04-06 06:23:59 +00:00
|
|
|
|
mingzhi:true,
|
2021-01-10 02:28:38 +00:00
|
|
|
|
skillTagFilter:function(player,tag,target){
|
|
|
|
|
if(player!=target) return false;
|
2019-10-09 14:31:43 +00:00
|
|
|
|
},
|
2020-04-06 06:23:59 +00:00
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
intro:{
|
2022-04-10 16:34:02 +00:00
|
|
|
|
content:'expansion',
|
|
|
|
|
markcount:'expansion',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
fenji:{
|
|
|
|
|
audio:2,
|
2019-06-09 03:23:49 +00:00
|
|
|
|
trigger:{
|
2020-02-14 05:33:43 +00:00
|
|
|
|
global:["gainAfter","loseAfter"],
|
2019-06-09 03:23:49 +00:00
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event){
|
2020-02-14 05:33:43 +00:00
|
|
|
|
var evt=event;
|
|
|
|
|
if(event.name=='lose'){
|
|
|
|
|
if(event.type!='discard') return false;
|
|
|
|
|
evt=event.getParent();
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
2020-02-14 05:33:43 +00:00
|
|
|
|
var player=evt[event.name=='gain'?'source':'player'];
|
2020-03-07 14:00:26 +00:00
|
|
|
|
if(!player||player.isDead()) return false;
|
2020-02-14 05:33:43 +00:00
|
|
|
|
if(evt[event.name=='gain'?'bySelf':'notBySelf']!=true) return false;
|
2020-03-07 14:00:26 +00:00
|
|
|
|
if(event.name=='lose') return event.hs.length>0;
|
2020-02-14 05:33:43 +00:00
|
|
|
|
return event.relatedLose&&event.relatedLose.hs&&event.relatedLose.hs.length>0;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
check:function(event,player){
|
2019-10-26 12:40:13 +00:00
|
|
|
|
return get.attitude(player,event[event.name=='gain'?'source':'player'])>2;
|
|
|
|
|
},
|
|
|
|
|
logTarget:function(event){
|
|
|
|
|
return event[event.name=='gain'?'source':'player'];
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.loseHp();
|
|
|
|
|
"step 1"
|
2019-10-26 12:40:13 +00:00
|
|
|
|
trigger[trigger.name=='gain'?'source':'player'].draw(2);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2020-10-09 03:37:02 +00:00
|
|
|
|
new_fenji:{
|
|
|
|
|
audio:"fenji",
|
|
|
|
|
trigger:{
|
|
|
|
|
global:"phaseJieshuBegin",
|
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2020-10-09 03:37:02 +00:00
|
|
|
|
if(event.player.countCards('h')==0&&event.player.isAlive()) return true;
|
|
|
|
|
return false;
|
|
|
|
|
},
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
check:function(event,player){
|
2020-10-09 03:37:02 +00:00
|
|
|
|
return get.attitude(player,event.player)>2;
|
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
content:function(){
|
2020-10-09 03:37:02 +00:00
|
|
|
|
player.line(trigger.player,'green');
|
|
|
|
|
trigger.player.draw(2);
|
|
|
|
|
player.loseHp();
|
|
|
|
|
},
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
leiji:{
|
|
|
|
|
audio:2,
|
2019-12-05 15:15:43 +00:00
|
|
|
|
trigger:{player:['useCard','respond']},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.card.name=='shan';
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
2021-10-22 05:07:02 +00:00
|
|
|
|
preHidden:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
|
|
|
|
"step 0";
|
2021-10-22 05:07:02 +00:00
|
|
|
|
player.chooseTarget(get.prompt2('leiji')).setHiddenSkill(event.name).ai=function(target){
|
2018-04-17 07:32:43 +00:00
|
|
|
|
if(target.hasSkill('hongyan')) return 0;
|
|
|
|
|
return get.damageEffect(target,_status.event.player,_status.event.player,'thunder');
|
|
|
|
|
};
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('leiji',result.targets,'thunder');
|
|
|
|
|
event.target=result.targets[0];
|
|
|
|
|
event.target.judge(function(card){
|
|
|
|
|
if(get.suit(card)=='spade') return -4;
|
|
|
|
|
return 0;
|
2021-09-23 15:07:50 +00:00
|
|
|
|
}).judge2=function(result){
|
|
|
|
|
return result.bool==false?true:false;
|
|
|
|
|
};
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
"step 2"
|
|
|
|
|
if(result.bool==false){
|
|
|
|
|
event.target.damage(2,'thunder');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
mingzhi:false,
|
|
|
|
|
useShan:true,
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target,current){
|
|
|
|
|
if(get.tag(card,'respondShan')){
|
|
|
|
|
var hastarget=game.hasPlayer(function(current){
|
|
|
|
|
return get.attitude(target,current)<0;
|
|
|
|
|
});
|
|
|
|
|
if(target.countCards('h','shan')&&target.countCards('e',{suit:'spade'})){
|
|
|
|
|
return [0,hastarget?target.countCards('he')/2:0];
|
|
|
|
|
}
|
|
|
|
|
if(target.countCards('h','shan')){
|
|
|
|
|
return [1,hastarget?target.countCards('he')/2:0];
|
|
|
|
|
}
|
|
|
|
|
return [1,target.countCards('h')/4];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
guidao:{
|
|
|
|
|
audio:2,
|
2020-02-16 04:25:41 +00:00
|
|
|
|
audioname:['sp_zhangjiao'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
trigger:{global:'judge'},
|
|
|
|
|
filter:function(event,player){
|
2021-05-18 07:57:26 +00:00
|
|
|
|
return player.countCards('hes',{color:'black'})>0;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.chooseCard(get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+
|
2021-05-18 07:57:26 +00:00
|
|
|
|
get.translation(trigger.player.judging[0])+','+get.prompt('guidao'),'hes',function(card){
|
2020-03-19 13:24:54 +00:00
|
|
|
|
if(get.color(card)!='black') return false;
|
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
var mod2=game.checkMod(card,player,'unchanged','cardEnabled2',player);
|
|
|
|
|
if(mod2!='unchanged') return mod2;
|
|
|
|
|
var mod=game.checkMod(card,player,'unchanged','cardRespondable',player);
|
|
|
|
|
if(mod!='unchanged') return mod;
|
|
|
|
|
return true;
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}).set('ai',function(card){
|
|
|
|
|
var trigger=_status.event.getTrigger();
|
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
var judging=_status.event.judging;
|
|
|
|
|
var result=trigger.judge(card)-trigger.judge(judging);
|
|
|
|
|
var attitude=get.attitude(player,trigger.player);
|
|
|
|
|
if(attitude==0||result==0) return 0;
|
|
|
|
|
if(attitude>0){
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return -result;
|
|
|
|
|
}
|
|
|
|
|
}).set('judging',trigger.player.judging[0]);
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
2019-12-16 04:54:06 +00:00
|
|
|
|
player.respond(result.cards,'highlight','guidao','noOrdering');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
"step 2"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.$gain2(trigger.player.judging[0]);
|
|
|
|
|
player.gain(trigger.player.judging[0]);
|
|
|
|
|
trigger.player.judging[0]=result.cards[0];
|
2019-12-16 04:54:06 +00:00
|
|
|
|
trigger.orderingCards.addArray(result.cards);
|
2018-04-17 07:32:43 +00:00
|
|
|
|
game.log(trigger.player,'的判定牌改为',result.cards[0]);
|
|
|
|
|
}
|
|
|
|
|
"step 3"
|
|
|
|
|
game.delay(2);
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
2020-01-18 05:34:45 +00:00
|
|
|
|
rejudge:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
tag:{
|
|
|
|
|
rejudge:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
guhuo:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
audio:2,
|
|
|
|
|
filter:function(event,player){
|
2021-05-18 07:57:26 +00:00
|
|
|
|
return player.countCards('hs')>0
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
chooseButton:{
|
|
|
|
|
dialog:function(){
|
|
|
|
|
var list=['sha','tao','jiu','taoyuan','wugu','juedou','huogong','jiedao','tiesuo','guohe','shunshou','wuzhong','wanjian','nanman'];
|
|
|
|
|
for(var i=0;i<list.length;i++){
|
|
|
|
|
if(i<3){
|
|
|
|
|
list[i]=['基本','',list[i]];
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
list[i]=['锦囊','',list[i]];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return ui.create.dialog([list,'vcard']);
|
|
|
|
|
},
|
|
|
|
|
filter:function(button,player){
|
|
|
|
|
return lib.filter.filterCard({name:button.link[2]},player,_status.event.getParent());
|
|
|
|
|
},
|
|
|
|
|
check:function(button){
|
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
if(player.countCards('h','wuzhong')){
|
|
|
|
|
if(player.hp==1&&player.countCards('h','tao')){
|
|
|
|
|
return button.link=='tao'?1:0;
|
|
|
|
|
}
|
|
|
|
|
return button.link=='wuzhong'?1:0;
|
|
|
|
|
}
|
|
|
|
|
if(player.hp<player.maxHp){
|
|
|
|
|
if(player.countCards('h','tao')){
|
|
|
|
|
return button.link=='tao'?1:0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
backup:function(links,player){
|
|
|
|
|
return {
|
|
|
|
|
filterCard:true,
|
|
|
|
|
selectCard:-1,
|
|
|
|
|
audio:2,
|
|
|
|
|
popname:true,
|
|
|
|
|
viewAs:{name:links[0][2]},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
prompt:function(links,player){
|
|
|
|
|
return '将全部手牌当'+get.translation(links[0][2])+'使用';
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player){
|
|
|
|
|
var num=0;
|
|
|
|
|
var cards=player.getCards('h');
|
|
|
|
|
if(cards.length>=3&&player.hp>=3) return 0;
|
|
|
|
|
for(var i=0;i<cards.length;i++){
|
|
|
|
|
num+=Math.max(0,get.value(cards[i],player,'raw'));
|
|
|
|
|
}
|
|
|
|
|
num/=cards.length;
|
|
|
|
|
num*=Math.min(cards.length,player.hp);
|
|
|
|
|
return 12-num;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
threaten:1.6,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
huangtian:{
|
|
|
|
|
unique:true,
|
2019-07-23 09:59:48 +00:00
|
|
|
|
audio:'huangtian2',
|
2020-01-11 12:17:57 +00:00
|
|
|
|
audioname:['zhangjiao','re_zhangjiao'],
|
2018-04-17 07:32:43 +00:00
|
|
|
|
global:'huangtian2',
|
|
|
|
|
zhuSkill:true,
|
|
|
|
|
},
|
|
|
|
|
huangtian2:{
|
|
|
|
|
audio:2,
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
discard:false,
|
2020-06-06 04:40:45 +00:00
|
|
|
|
lose:false,
|
|
|
|
|
delay:false,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
line:true,
|
2020-01-11 12:17:57 +00:00
|
|
|
|
direct:true,
|
2020-06-20 04:53:15 +00:00
|
|
|
|
clearTime:true,
|
2020-01-11 12:17:57 +00:00
|
|
|
|
prepare:function(cards,player,targets){
|
|
|
|
|
targets[0].logSkill('huangtian');
|
|
|
|
|
},
|
2019-07-14 10:58:01 +00:00
|
|
|
|
prompt:function(){
|
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
var list=game.filterPlayer(function(target){
|
|
|
|
|
return target!=player&&target.hasZhuSkill('huangtian',player);
|
|
|
|
|
});
|
|
|
|
|
var str='将一张【闪】或【闪电】交给'+get.translation(list);
|
|
|
|
|
if(list.length>1) str+='中的一人';
|
|
|
|
|
return str;
|
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(player.group!='qun') return false;
|
|
|
|
|
if(player.countCards('h','shan')+player.countCards('h','shandian')==0) return 0;
|
|
|
|
|
return game.hasPlayer(function(target){
|
2020-01-11 12:17:57 +00:00
|
|
|
|
return target!=player&&target.hasZhuSkill('huangtian',player)&&!target.hasSkill('huangtian3');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
filterCard:function(card){
|
|
|
|
|
return (card.name=='shan'||card.name=='shandian')
|
|
|
|
|
},
|
2020-01-11 12:17:57 +00:00
|
|
|
|
log:false,
|
|
|
|
|
visible:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
filterTarget:function(card,player,target){
|
2020-01-11 12:17:57 +00:00
|
|
|
|
return target!=player&&target.hasZhuSkill('huangtian',player)&&!target.hasSkill('huangtian3');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
2020-01-11 12:17:57 +00:00
|
|
|
|
//usable:1,
|
|
|
|
|
//forceaudio:true,
|
2018-04-17 07:32:43 +00:00
|
|
|
|
content:function(){
|
2020-06-06 04:40:45 +00:00
|
|
|
|
target.gain(cards,player,'giveAuto');
|
2020-01-11 12:17:57 +00:00
|
|
|
|
target.addTempSkill('huangtian3','phaseUseEnd');
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
expose:0.3,
|
|
|
|
|
order:10,
|
|
|
|
|
result:{
|
|
|
|
|
target:5
|
|
|
|
|
}
|
|
|
|
|
}
|
2020-01-11 12:17:57 +00:00
|
|
|
|
},
|
|
|
|
|
huangtian3:{},
|
2020-03-25 12:27:23 +00:00
|
|
|
|
"xinfu_guhuo":{
|
|
|
|
|
derivation:["chanyuan"],
|
|
|
|
|
group:["guhuo_guess","guhuo_respond","guhuo_wuxie"],
|
|
|
|
|
enable:"chooseToUse",
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2020-03-25 12:27:23 +00:00
|
|
|
|
if(player.hasSkill('guhuo_phase'))return false;
|
2021-05-18 07:57:26 +00:00
|
|
|
|
if(!player.countCards('hs')) return false;
|
2020-03-25 12:27:23 +00:00
|
|
|
|
var list=['sha','shan','tao','jiu','taoyuan','wugu','juedou','huogong','jiedao','tiesuo','guohe','shunshou','wuzhong','wanjian','nanman'];
|
|
|
|
|
if(get.mode()=='guozhan'){
|
|
|
|
|
list=list.concat(['xietianzi','shuiyanqijunx','lulitongxin','lianjunshengyan','chiling','diaohulishan','yuanjiao','huoshaolianying']);
|
|
|
|
|
}
|
|
|
|
|
for(var i=0;i<list.length;i++){
|
|
|
|
|
if(event.filterCard({name:list[i]},player)) return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
chooseButton:{
|
2021-04-22 14:05:36 +00:00
|
|
|
|
dialog:function(){
|
2020-03-25 12:27:23 +00:00
|
|
|
|
var list=[];
|
|
|
|
|
for(var i=0;i<lib.inpile.length;i++){
|
|
|
|
|
var name=lib.inpile[i];
|
|
|
|
|
if(name=='wuxie') continue;
|
|
|
|
|
if(name=='sha'){
|
|
|
|
|
list.push(['基本','','sha']);
|
2021-11-26 14:55:37 +00:00
|
|
|
|
for(var j of lib.inpile_nature) list.push(['基本','','sha',j]);
|
2020-03-25 12:27:23 +00:00
|
|
|
|
}
|
|
|
|
|
else if(get.type(name)=='trick') list.push(['锦囊','',name]);
|
|
|
|
|
else if(get.type(name)=='basic') list.push(['基本','',name]);
|
|
|
|
|
}
|
|
|
|
|
return ui.create.dialog('蛊惑',[list,'vcard']);
|
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(button,player){
|
2020-03-25 12:27:23 +00:00
|
|
|
|
var evt=_status.event.getParent();
|
|
|
|
|
if(evt&&evt.filterCard){
|
|
|
|
|
return evt.filterCard({name:button.link[2]},player,evt);
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
backup:function(links,player){
|
2020-03-25 12:27:23 +00:00
|
|
|
|
return {
|
|
|
|
|
filterCard:true,
|
|
|
|
|
selectCard:1,
|
2021-05-18 07:57:26 +00:00
|
|
|
|
position:'hs',
|
2020-03-25 12:27:23 +00:00
|
|
|
|
viewAs:{name:links[0][2],nature:links[0][3]},
|
|
|
|
|
}
|
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
prompt:function(links,player){
|
2020-03-25 12:27:23 +00:00
|
|
|
|
return '将一张手牌做当'+get.translation(links[0][2])+'使用';
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
save:true,
|
|
|
|
|
respondShan:true,
|
2020-12-02 11:48:23 +00:00
|
|
|
|
fireAttack:true,
|
2020-03-25 12:27:23 +00:00
|
|
|
|
skillTagFilter:function(player){
|
|
|
|
|
if(player.hasSkill('guhuo_phase')) return false;
|
|
|
|
|
},
|
2020-12-02 11:48:23 +00:00
|
|
|
|
threaten:1.2,
|
2020-03-25 12:27:23 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"guhuo_guess":{
|
|
|
|
|
audio:2,
|
|
|
|
|
trigger:{
|
|
|
|
|
player:"useCardBefore",
|
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2020-03-25 12:27:23 +00:00
|
|
|
|
return event.skill=="xinfu_guhuo_backup"||event.skill=="guhuo_wuxie";
|
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
direct:true,
|
|
|
|
|
priority:15,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
content:function(){
|
2020-03-25 12:27:23 +00:00
|
|
|
|
'step 0'
|
|
|
|
|
player.logSkill('guhuo_guess');
|
|
|
|
|
player.addTempSkill('guhuo_phase');
|
|
|
|
|
player.popup(trigger.card.name,'metal');
|
|
|
|
|
player.lose(trigger.cards,ui.special);
|
|
|
|
|
player.line(trigger.targets,trigger.card.nature);
|
|
|
|
|
trigger.line=false;
|
|
|
|
|
trigger.animate=false;
|
|
|
|
|
event.prompt=get.translation(player)+'声明了'+get.translation(trigger.card.name)+',是否质疑?';
|
|
|
|
|
event.guessers=game.filterPlayer(function(current){
|
|
|
|
|
return current!=player&&!current.hasSkill('chanyuan');
|
|
|
|
|
});
|
|
|
|
|
event.guessers.sort(lib.sort.seat);
|
|
|
|
|
|
|
|
|
|
game.broadcastAll(function(card){
|
|
|
|
|
_status.guhuoNode=card.copy('thrown');
|
|
|
|
|
if(lib.config.cardback_style!='default'){
|
|
|
|
|
_status.guhuoNode.style.transitionProperty='none';
|
|
|
|
|
ui.refresh(_status.guhuoNode);
|
|
|
|
|
_status.guhuoNode.classList.add('infohidden');
|
|
|
|
|
ui.refresh(_status.guhuoNode);
|
|
|
|
|
_status.guhuoNode.style.transitionProperty='';
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
_status.guhuoNode.classList.add('infohidden');
|
|
|
|
|
}
|
|
|
|
|
_status.guhuoNode.style.transform='perspective(600px) rotateY(180deg) translateX(0)';
|
|
|
|
|
player.$throwordered2(_status.guhuoNode);
|
|
|
|
|
},trigger.cards[0]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
event.onEnd01=function(){
|
|
|
|
|
_status.guhuoNode.removeEventListener('webkitTransitionEnd',event.onEnd01);
|
|
|
|
|
_status.guhuoNode.style.transition='all ease-in 0.3s';
|
|
|
|
|
_status.guhuoNode.style.transform='perspective(600px) rotateY(270deg) translateX(52px)';
|
|
|
|
|
var onEnd=function(){
|
|
|
|
|
_status.guhuoNode.classList.remove('infohidden');
|
|
|
|
|
_status.guhuoNode.style.transition='all 0s';
|
|
|
|
|
ui.refresh(_status.guhuoNode);
|
|
|
|
|
_status.guhuoNode.style.transform='perspective(600px) rotateY(-90deg) translateX(52px)';
|
|
|
|
|
ui.refresh(_status.guhuoNode);
|
|
|
|
|
_status.guhuoNode.style.transition='';
|
|
|
|
|
ui.refresh(_status.guhuoNode);
|
|
|
|
|
_status.guhuoNode.style.transform='';
|
|
|
|
|
_status.guhuoNode.removeEventListener('webkitTransitionEnd',onEnd);
|
|
|
|
|
}
|
|
|
|
|
_status.guhuoNode.listenTransition(onEnd);
|
|
|
|
|
};
|
|
|
|
|
'step 1'
|
|
|
|
|
if(event.guessers.length==0) event.goto(3);
|
|
|
|
|
else{
|
|
|
|
|
event.guessers[0].chooseControl('质疑','不质疑').set('prompt',event.prompt).set('ai',function(){
|
|
|
|
|
if(get.attitude(event.guessers[0],player)>0) return '不质疑';
|
|
|
|
|
return Math.random()<0.5?'不质疑':'质疑';
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
if(!result.control) result.control='不质疑';
|
|
|
|
|
event.guessers[0].chat(result.control);
|
|
|
|
|
game.delay(1);
|
|
|
|
|
if(result.control=='不质疑'){
|
|
|
|
|
game.log(event.guessers[0],'#g不质疑');
|
|
|
|
|
event.guessers.remove(event.guessers[0]);
|
|
|
|
|
event.goto(1);
|
|
|
|
|
}else{
|
|
|
|
|
game.log(event.guessers[0],'#y质疑');
|
|
|
|
|
}
|
|
|
|
|
'step 3'
|
|
|
|
|
game.broadcastAll(function(onEnd){
|
|
|
|
|
_status.guhuoNode.listenTransition(onEnd);
|
|
|
|
|
},event.onEnd01);
|
|
|
|
|
'step 4'
|
|
|
|
|
game.delay(3.2);
|
|
|
|
|
'step 5'
|
|
|
|
|
if(!event.guessers.length) event.finish();
|
|
|
|
|
'step 6'
|
|
|
|
|
if(trigger.card.name==trigger.cards[0].name){
|
|
|
|
|
event.guessers[0].popup('质疑错误','fire');
|
|
|
|
|
event.guessers[0].addSkill('chanyuan');
|
|
|
|
|
game.log(event.guessers[0],'获得了技能','#g【缠怨】');
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.guessers[0].popup('质疑正确','wood');
|
|
|
|
|
game.log(player,'使用的',trigger.card,'作废了');
|
|
|
|
|
game.cardsDiscard(trigger.cards);
|
|
|
|
|
game.broadcastAll(ui.clear);
|
|
|
|
|
trigger.cancel();
|
|
|
|
|
if(trigger.name=='useCard'&&trigger.parent) trigger.parent.goto(0);
|
|
|
|
|
}
|
|
|
|
|
game.delay();
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
chanyuan:{
|
2021-09-30 16:25:44 +00:00
|
|
|
|
init:function(player,skill){
|
|
|
|
|
player.addSkillBlocker(skill);
|
2020-03-25 12:27:23 +00:00
|
|
|
|
},
|
2021-09-30 16:25:44 +00:00
|
|
|
|
onremove:function(player,skill){
|
|
|
|
|
player.removeSkillBlocker(skill);
|
|
|
|
|
},
|
|
|
|
|
charlotte:true,
|
|
|
|
|
locked:true,
|
|
|
|
|
skillBlocker:function(skill,player){
|
|
|
|
|
return skill!='chanyuan'&&skill!='rechanyuan'&&!lib.skill[skill].charlotte&&player.hp<=1;
|
2020-03-25 12:27:23 +00:00
|
|
|
|
},
|
|
|
|
|
mark:true,
|
|
|
|
|
intro:{
|
2021-04-22 14:05:36 +00:00
|
|
|
|
content:function(storage,player,skill){
|
2020-03-25 12:27:23 +00:00
|
|
|
|
var str='<li>锁定技,你不能质疑于吉,只要你的体力值为1,你的其他技能便全部失效。';
|
2021-11-07 05:45:48 +00:00
|
|
|
|
var list=player.getSkills(null,false,false).filter(function(i){
|
2021-09-30 16:25:44 +00:00
|
|
|
|
return lib.skill.rechanyuan.skillBlocker(i,player);
|
|
|
|
|
});
|
|
|
|
|
if(list.length) str+=('<br><li>失效技能:'+get.translation(list))
|
|
|
|
|
return str;
|
2020-03-25 12:27:23 +00:00
|
|
|
|
}
|
2021-09-30 16:25:44 +00:00
|
|
|
|
}
|
2020-03-25 12:27:23 +00:00
|
|
|
|
},
|
|
|
|
|
"guhuo_respond":{
|
|
|
|
|
trigger:{
|
|
|
|
|
player:"chooseToRespondBegin",
|
|
|
|
|
},
|
2021-04-22 14:05:36 +00:00
|
|
|
|
filter:function(event,player){
|
2020-03-25 12:27:23 +00:00
|
|
|
|
if(player.hasSkill('guhuo_phase'))return false;
|
|
|
|
|
if(event.responded) return false;
|
|
|
|
|
if(!event.filterCard({name:'shan'})&&!event.filterCard({name:'sha'})) return false;
|
|
|
|
|
if(!lib.filter.cardRespondable({name:'shan'},player,event)&&!lib.filter.cardRespondable({name:'sha'},player,event)) return false;
|
2021-05-18 07:57:26 +00:00
|
|
|
|
if(!player.countCards('hs')) return false;
|
2020-03-25 12:27:23 +00:00
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
content:function(){
|
2020-03-25 12:27:23 +00:00
|
|
|
|
"step 0"
|
|
|
|
|
if(trigger.filterCard({name:'shan'})&&lib.filter.cardRespondable({name:'shan'},player,trigger)) event.name='shan';
|
|
|
|
|
else event.name='sha';
|
2021-05-18 07:57:26 +00:00
|
|
|
|
player.chooseCard('是否发动【蛊惑】,将一张手牌当做'+get.translation(event.name)+'打出?','hs');
|
2020-03-25 12:27:23 +00:00
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.addTempSkill('guhuo_phase');
|
|
|
|
|
player.logSkill('guhuo_guess');
|
|
|
|
|
player.popup(event.name,'metal');
|
|
|
|
|
event.card=result.cards[0];
|
|
|
|
|
player.lose(event.card,ui.special);
|
|
|
|
|
event.prompt=get.translation(player)+'声明了'+get.translation(event.name)+',是否质疑?';
|
|
|
|
|
event.guessers=game.filterPlayer(function(current){
|
|
|
|
|
return current!=player&&!current.hasSkill('chanyuan');
|
|
|
|
|
});
|
|
|
|
|
event.guessers.sort(lib.sort.seat);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
game.broadcastAll(function(card){
|
|
|
|
|
_status.guhuoNode=card.copy('thrown');
|
|
|
|
|
if(lib.config.cardback_style!='default'){
|
|
|
|
|
_status.guhuoNode.style.transitionProperty='none';
|
|
|
|
|
ui.refresh(_status.guhuoNode);
|
|
|
|
|
_status.guhuoNode.classList.add('infohidden');
|
|
|
|
|
ui.refresh(_status.guhuoNode);
|
|
|
|
|
_status.guhuoNode.style.transitionProperty='';
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
_status.guhuoNode.classList.add('infohidden');
|
|
|
|
|
}
|
|
|
|
|
_status.guhuoNode.style.transform='perspective(600px) rotateY(180deg) translateX(0)';
|
|
|
|
|
player.$throwordered2(_status.guhuoNode);
|
|
|
|
|
},result.cards[0]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
event.onEnd01=function(){
|
|
|
|
|
_status.guhuoNode.removeEventListener('webkitTransitionEnd',event.onEnd01);
|
|
|
|
|
_status.guhuoNode.style.transition='all ease-in 0.3s';
|
|
|
|
|
_status.guhuoNode.style.transform='perspective(600px) rotateY(270deg) translateX(52px)';
|
|
|
|
|
var onEnd=function(){
|
|
|
|
|
_status.guhuoNode.classList.remove('infohidden');
|
|
|
|
|
_status.guhuoNode.style.transition='all 0s';
|
|
|
|
|
ui.refresh(_status.guhuoNode);
|
|
|
|
|
_status.guhuoNode.style.transform='perspective(600px) rotateY(-90deg) translateX(52px)';
|
|
|
|
|
ui.refresh(_status.guhuoNode);
|
|
|
|
|
_status.guhuoNode.style.transition='';
|
|
|
|
|
ui.refresh(_status.guhuoNode);
|
|
|
|
|
_status.guhuoNode.style.transform='';
|
|
|
|
|
_status.guhuoNode.removeEventListener('webkitTransitionEnd',onEnd);
|
|
|
|
|
}
|
|
|
|
|
_status.guhuoNode.listenTransition(onEnd);
|
|
|
|
|
};
|
|
|
|
|
}else event.finish();
|
|
|
|
|
"step 2"
|
|
|
|
|
if(event.guessers.length==0) event.goto(4);
|
|
|
|
|
else{
|
|
|
|
|
event.guessers[0].chooseControl('质疑','不质疑').set('prompt',event.prompt).set('ai',function(){
|
|
|
|
|
if(get.attitude(event.guessers[0],player)>0) return '不质疑';
|
|
|
|
|
return Math.random()<0.5?'不质疑':'质疑';
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
"step 3"
|
|
|
|
|
if(!result.control) result.control='不质疑';
|
|
|
|
|
event.guessers[0].chat(result.control);
|
|
|
|
|
game.delay();
|
|
|
|
|
if(result.control=='不质疑'){
|
|
|
|
|
game.log(event.guessers[0],'#g不质疑');
|
|
|
|
|
event.guessers.remove(event.guessers[0]);
|
|
|
|
|
event.goto(2);
|
|
|
|
|
}else{
|
|
|
|
|
game.log(event.guessers[0],'#y质疑');
|
|
|
|
|
}
|
|
|
|
|
"step 4"
|
|
|
|
|
game.broadcastAll(function(onEnd){
|
|
|
|
|
_status.guhuoNode.listenTransition(onEnd);
|
|
|
|
|
},event.onEnd01);
|
|
|
|
|
"step 5"
|
|
|
|
|
game.delay(3.2);
|
|
|
|
|
if(!event.guessers.length) event.goto(7);
|
|
|
|
|
"step 6"
|
|
|
|
|
if(event.name==event.card.name){
|
|
|
|
|
event.guessers[0].popup('质疑错误','fire');
|
|
|
|
|
event.guessers[0].addSkill('chanyuan');
|
|
|
|
|
game.log(event.guessers[0],'获得了技能','#g【缠怨】');
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.guessers[0].popup('质疑正确','wood');
|
|
|
|
|
game.log(player,'打出的','#y'+get.translation(event.name),'作废了');
|
|
|
|
|
game.cardsDiscard(event.card);
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
"step 7"
|
|
|
|
|
trigger.untrigger();
|
|
|
|
|
trigger.responded=true;
|
|
|
|
|
trigger.result={bool:true,card:{name:event.name},cards:[event.card],noanimate:true};
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:4,
|
|
|
|
|
useful:-1,
|
|
|
|
|
value:-1,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
"guhuo_wuxie":{
|
|
|
|
|
log:false,
|
|
|
|
|
silent:true,
|
|
|
|
|
popup:false,
|
|
|
|
|
enable:"chooseToUse",
|
2021-05-18 07:57:26 +00:00
|
|
|
|
position:'hs',
|
2020-03-25 12:27:23 +00:00
|
|
|
|
filterCard:true,
|
2021-04-22 14:05:36 +00:00
|
|
|
|
viewAsFilter:function(player){
|
2020-03-25 12:27:23 +00:00
|
|
|
|
if(player.hasSkill('guhuo_phase'))return false;
|
2021-05-18 07:57:26 +00:00
|
|
|
|
return player.countCards('hs')>0;
|
2020-03-25 12:27:23 +00:00
|
|
|
|
},
|
|
|
|
|
viewAs:{
|
|
|
|
|
name:"wuxie",
|
|
|
|
|
},
|
|
|
|
|
check:function(card){
|
|
|
|
|
if(card.name=='wuxie') return 1000;
|
|
|
|
|
return 0;
|
|
|
|
|
},
|
|
|
|
|
prompt:"将一张手牌当无懈可击使用",
|
|
|
|
|
threaten:1.2,
|
|
|
|
|
},
|
|
|
|
|
"guhuo_phase":{},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
2021-08-27 04:05:15 +00:00
|
|
|
|
card:{},
|
2020-10-05 05:33:08 +00:00
|
|
|
|
dynamicTranslate:{
|
|
|
|
|
nzry_juzhan:function(player){
|
|
|
|
|
if(player.storage.nzry_juzhan1==true) return '转换技,阴:当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。<span class="bluetext">阳:当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌。</span>';
|
|
|
|
|
return '转换技,<span class="bluetext">阴:当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。</span>阳:当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌。';
|
|
|
|
|
},
|
|
|
|
|
nzry_zhenliang:function(player){
|
2021-02-28 15:59:11 +00:00
|
|
|
|
if(player.storage.nzry_zhenliang==true) return '转换技,阴:出牌阶段限一次,你可以弃置一张与“任”颜色相同的牌并对攻击范围内的一名角色造成1点伤害。<span class="bluetext">阳:当你于回合外使用或打出的牌结算完成后,若此牌与“任”颜色相同,则你可以令一名角色摸一张牌。</span>';
|
|
|
|
|
return '转换技,<span class="bluetext">阴:出牌阶段限一次,你可以弃置一张与“任”颜色相同的牌并对攻击范围内的一名角色造成1点伤害。</span>阳:当你于回合外使用或打出的牌结算完成后,若此牌与“任”颜色相同,则你可以令一名角色摸一张牌。';
|
2020-10-05 05:33:08 +00:00
|
|
|
|
},
|
|
|
|
|
nzry_chenglve:function(player){
|
|
|
|
|
if(player.storage.nzry_chenglve==true) return '转换技,出牌阶段限一次,阴:你可以摸一张牌,然后弃置两张手牌。<span class="bluetext">阳:你可以摸两张牌,然后弃置一张手牌。</span>若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。';
|
|
|
|
|
return '转换技,出牌阶段限一次,<span class="bluetext">阴:你可以摸一张牌,然后弃置两张手牌。</span>阳:你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。';
|
|
|
|
|
},
|
|
|
|
|
nzry_shenshi:function(player){
|
2020-11-07 08:52:28 +00:00
|
|
|
|
if(player.storage.nzry_shenshi==true) return '转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。<span class="bluetext">阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张。</span>';
|
|
|
|
|
return '转换技,<span class="bluetext">阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。</span>阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张。';
|
2020-10-05 05:33:08 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2020-12-09 13:40:44 +00:00
|
|
|
|
characterReplace:{
|
2021-04-22 14:05:36 +00:00
|
|
|
|
caoren:['caoren','old_caoren'],
|
|
|
|
|
sp_caoren:['sp_caoren','jsp_caoren'],
|
2020-12-09 13:40:44 +00:00
|
|
|
|
xiahouyuan:['ol_xiahouyuan','re_xiahouyuan','xiahouyuan'],
|
|
|
|
|
huangzhong:['re_huangzhong','huangzhong'],
|
|
|
|
|
weiyan:['ol_weiyan','re_weiyan','weiyan'],
|
|
|
|
|
zhoutai:['zhoutai','old_zhoutai'],
|
|
|
|
|
xiaoqiao:['ol_xiaoqiao','re_xiaoqiao','xiaoqiao'],
|
|
|
|
|
yuji:['xin_yuji','re_yuji','yuji'],
|
|
|
|
|
zhangjiao:['re_zhangjiao','sp_zhangjiao','zhangjiao'],
|
|
|
|
|
dianwei:['dianwei','re_dianwei'],
|
|
|
|
|
xunyu:['re_xunyu','xunyu'],
|
|
|
|
|
sp_zhugeliang:['ol_sp_zhugeliang','re_sp_zhugeliang','sp_zhugeliang'],
|
2021-04-22 14:05:36 +00:00
|
|
|
|
pangtong:['ol_pangtong','re_pangtong','pangtong'],
|
|
|
|
|
re_jsp_pangtong:['re_jsp_pangtong','sp_pangtong'],
|
|
|
|
|
taishici:['re_taishici','taishici'],
|
2020-12-09 13:40:44 +00:00
|
|
|
|
re_yuanshao:['ol_yuanshao','re_yuanshao','xin_yuanshao'],
|
2021-04-22 14:05:36 +00:00
|
|
|
|
pangde:['ol_pangde','re_pangde','pangde'],
|
2020-12-09 13:40:44 +00:00
|
|
|
|
yanwen:['re_yanwen','yanwen'],
|
|
|
|
|
caopi:['caopi','re_caopi'],
|
2022-04-18 02:27:32 +00:00
|
|
|
|
xuhuang:['ol_xuhuang','re_xuhuang','xuhuang'],
|
2020-12-09 13:40:44 +00:00
|
|
|
|
menghuo:['re_menghuo','menghuo'],
|
2021-07-15 04:47:00 +00:00
|
|
|
|
zhurong:['re_zhurong','ol_zhurong','zhurong'],
|
2020-12-09 13:40:44 +00:00
|
|
|
|
sunjian:['ol_sunjian','re_sunjian','sunjian'],
|
2021-09-30 16:25:44 +00:00
|
|
|
|
jiaxu:['re_jiaxu','jiaxu','ns_jiaxu'],
|
2020-12-31 10:28:10 +00:00
|
|
|
|
dongzhuo:['ol_dongzhuo','sp_dongzhuo','re_dongzhuo','dongzhuo'],
|
2020-12-09 13:40:44 +00:00
|
|
|
|
dengai:['re_dengai','ol_dengai','dengai'],
|
2022-02-06 18:13:56 +00:00
|
|
|
|
sp_ol_zhanghe:['sp_ol_zhanghe','yj_zhanghe','sp_zhanghe'],
|
2021-09-11 09:09:08 +00:00
|
|
|
|
jiangwei:['ol_jiangwei','re_jiangwei','jiangwei'],
|
2020-12-09 13:40:44 +00:00
|
|
|
|
liushan:['ol_liushan','re_liushan','liushan'],
|
|
|
|
|
sunce:['re_sunben','re_sunce','sunce'],
|
|
|
|
|
zhangzhang:['re_zhangzhang','zhangzhang'],
|
2021-09-11 09:09:08 +00:00
|
|
|
|
zuoci:['re_zuoci','zuoci'],
|
2021-04-22 14:05:36 +00:00
|
|
|
|
caiwenji:['re_caiwenji','caiwenji'],
|
2020-12-09 13:40:44 +00:00
|
|
|
|
xuyou:['sp_xuyou','xuyou'],
|
|
|
|
|
guanqiujian:['guanqiujian','re_guanqiujian','old_guanqiujian'],
|
|
|
|
|
chendao:['chendao','ns_chendao'],
|
|
|
|
|
zhugezhan:['zhugezhan','old_zhugezhan'],
|
2021-10-12 05:02:49 +00:00
|
|
|
|
ol_lusu:['ol_lusu','re_lusu'],
|
2022-05-30 10:35:29 +00:00
|
|
|
|
zhanghe:['re_zhanghe','zhanghe'],
|
2020-12-09 13:40:44 +00:00
|
|
|
|
},
|
2018-04-17 07:32:43 +00:00
|
|
|
|
translate:{
|
|
|
|
|
re_yuanshao:'袁绍',
|
|
|
|
|
re_lusu:'鲁肃',
|
2019-08-07 15:38:38 +00:00
|
|
|
|
re_yuji:"于吉",
|
2019-06-09 03:23:49 +00:00
|
|
|
|
wangji:'王基',
|
|
|
|
|
"kuailiangkuaiyue":"蒯良蒯越",
|
|
|
|
|
"sunliang":"孙亮",
|
|
|
|
|
"yl_luzhi":"卢植",
|
|
|
|
|
"xuyou":"许攸",
|
|
|
|
|
"luji":"陆绩",
|
|
|
|
|
"wangping":"王平",
|
|
|
|
|
"yanyan":"严颜",
|
|
|
|
|
|
2019-06-13 12:51:34 +00:00
|
|
|
|
"zhugezhan":"诸葛瞻",
|
|
|
|
|
"lukang":"陆抗",
|
|
|
|
|
"haozhao":"郝昭",
|
|
|
|
|
"yl_yuanshu":"袁术",
|
|
|
|
|
"zhangxiu":"张绣",
|
|
|
|
|
"chendao":"陈到",
|
|
|
|
|
"guanqiujian":"毌丘俭",
|
|
|
|
|
zhoufei:"周妃",
|
|
|
|
|
|
2019-06-09 03:23:49 +00:00
|
|
|
|
"nzry_jianxiang":"荐降",
|
2020-10-05 05:33:08 +00:00
|
|
|
|
"nzry_jianxiang_info":"当你成为其他角色使用牌的目标时,你可令手牌数最少的一名角色摸一张牌。",
|
2019-06-09 03:23:49 +00:00
|
|
|
|
"nzry_shenshi1":"审时",
|
|
|
|
|
"nzry_shenshi":"审时",
|
2020-11-07 08:52:28 +00:00
|
|
|
|
"nzry_shenshi_info":"转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张。",
|
2019-06-09 03:23:49 +00:00
|
|
|
|
"nzry_mingren":"明任",
|
2021-02-28 15:59:11 +00:00
|
|
|
|
"nzry_mingren_info":"游戏开始时,你摸两张牌,然后将一张手牌置于你的武将牌上,称为“任”。结束阶段,你可以用一张手牌替换“任”。",
|
2019-06-09 03:23:49 +00:00
|
|
|
|
"nzry_zhenliang":"贞良",
|
2021-02-28 15:59:11 +00:00
|
|
|
|
"nzry_zhenliang_info":"转换技,阴:出牌阶段限一次,你可以弃置一张与“任”颜色相同的牌并对攻击范围内的一名角色造成1点伤害。阳:当你于回合外使用或打出的牌结算完成后,若此牌与“任”颜色相同,则你可以令一名角色摸一张牌。",
|
2019-06-09 03:23:49 +00:00
|
|
|
|
"nzry_chenglve1":"成略",
|
|
|
|
|
"nzry_chenglve":"成略",
|
2020-10-05 05:33:08 +00:00
|
|
|
|
"nzry_chenglve_info":"转换技,出牌阶段限一次,阴:你可以摸一张牌,然后弃置两张手牌。阳:你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。",
|
2019-06-09 03:23:49 +00:00
|
|
|
|
"nzry_shicai":"恃才",
|
2020-10-05 05:33:08 +00:00
|
|
|
|
"nzry_shicai_info":"当你使用牌时,若此牌与你本回合使用的牌类型均不同(包括装备牌),则你可以将此牌置于牌堆顶,然后摸一张牌。",
|
2019-06-09 03:23:49 +00:00
|
|
|
|
"nzry_cunmu":"寸目",
|
2020-10-05 05:33:08 +00:00
|
|
|
|
"nzry_cunmu_info":"锁定技,当你摸牌时,改为从牌堆底摸牌。",
|
2019-06-09 03:23:49 +00:00
|
|
|
|
"nzry_kuizhu":"溃诛",
|
2021-09-07 05:05:57 +00:00
|
|
|
|
"nzry_kuizhu_info":"弃牌阶段结束后,你可以选择一项:①令至多X名角色各摸一张牌。②对任意名体力值之和为X的角色造成一点伤害。(X为你此阶段弃置的牌数)",
|
2019-06-09 03:23:49 +00:00
|
|
|
|
"nzry_zhizheng":"掣政",
|
2021-09-07 05:05:57 +00:00
|
|
|
|
rechezheng:'掣政',
|
2021-09-11 09:09:08 +00:00
|
|
|
|
"nzry_zhizheng_info":"锁定技,你的出牌阶段内,当你对攻击范围内不包含你的其他角色造成伤害时,防止此伤害。出牌阶段结束时,若你本阶段内使用的牌数小于这些角色的数量,则你弃置其中一名角色的一张牌。",
|
2019-06-09 03:23:49 +00:00
|
|
|
|
"nzry_lijun1":"立军",
|
|
|
|
|
"nzry_lijun":"立军",
|
2021-09-07 05:05:57 +00:00
|
|
|
|
"nzry_lijun_info":"主公技,其他吴势力角色的出牌阶段限一次,其使用【杀】结算后,可以将此【杀】对应的实体牌交给你,然后你可以令其摸一张牌且本阶段内使用【杀】的次数上限+1。",
|
2019-06-09 03:23:49 +00:00
|
|
|
|
"nzry_huaiju":"怀橘",
|
|
|
|
|
"nzry_huaiju_info":"锁定技,游戏开始时,你获得3个“橘”标记。(有“橘”的角色受到伤害时,防止此伤害,然后移去一个“橘”;有“橘”的角色摸牌阶段额外摸一张牌)",
|
2019-07-17 08:25:58 +00:00
|
|
|
|
"tachibana_effect":"怀橘",
|
2019-06-09 03:23:49 +00:00
|
|
|
|
"nzry_yili":"遗礼",
|
|
|
|
|
"nzry_yili_info":"出牌阶段开始时,你可以失去一点体力或移去一个“橘”,然后令一名其他角色获得一个“橘”",
|
|
|
|
|
"nzry_zhenglun":"整论",
|
|
|
|
|
"nzry_zhenglun_info":"若你没有“橘”,你可以跳过摸牌阶段然后获得一个“橘”",
|
|
|
|
|
"nzry_feijun":"飞军",
|
|
|
|
|
"nzry_feijun_info":"出牌阶段限一次,你可以弃置一张牌,然后选择一项:令一名手牌数大于你的角色交给你一张牌;或令一名装备区里牌数大于你的角色弃置一张装备牌",
|
|
|
|
|
"nzry_binglve":"兵略",
|
|
|
|
|
"nzry_binglve_info":"锁定技,当你发动“飞军”时,若目标与你之前指定的目标均不相同,则你摸两张牌",
|
|
|
|
|
"nzry_juzhan1":"拒战",
|
|
|
|
|
"nzry_juzhan":"拒战",
|
2020-10-05 05:33:08 +00:00
|
|
|
|
"nzry_juzhan_info":"转换技,阴:当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。阳:当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌。",
|
2019-08-07 15:38:38 +00:00
|
|
|
|
|
2019-06-13 12:51:34 +00:00
|
|
|
|
liangyin:"良姻",
|
2019-08-07 15:38:38 +00:00
|
|
|
|
"liangyin_info":"当有牌移至游戏外时,你可以令手牌数大于你的一名角色摸一张牌;当有牌从游戏外加入任意角色的手牌时,你可以令手牌数小于你的一名角色弃置一张牌",
|
|
|
|
|
kongsheng:"箜声",
|
|
|
|
|
"kongsheng_info":"准备阶段,你可以将任意张牌置于你的武将牌上;结束阶段,你使用武将牌上的装备牌,并获得武将牌上的其他牌",
|
|
|
|
|
"kongsheng2":"箜声",
|
|
|
|
|
"kongsheng2_info":"",
|
2019-06-13 12:51:34 +00:00
|
|
|
|
"xinfu_zuilun":"罪论",
|
|
|
|
|
"xinfu_zuilun_info":"结束阶段,你可以观看牌堆顶三张牌,你每满足以下一项便保留一张,然后以任意顺序放回其余的牌:1.你于此回合内造成过伤害;2.你于此回合内未弃置过牌;3.手牌数为全场最少。若均不满足,你与一名其他角色失去一点体力。",
|
|
|
|
|
"xinfu_fuyin":"父荫",
|
|
|
|
|
"xinfu_fuyin_info":"锁定技,你每回合第一次成为【杀】或【决斗】的目标后,若你的手牌数小于等于该角色,此牌对你无效。",
|
|
|
|
|
"drlt_wanglie":"往烈",
|
2019-06-29 13:27:14 +00:00
|
|
|
|
"drlt_wanglie_info":"出牌阶段,你使用的第一张牌无距离限制;当你于回合内使用牌时,你可以令此牌不能被响应,若如此做,本回合内你不能再使用牌",
|
2019-06-13 12:51:34 +00:00
|
|
|
|
"drlt_xiongluan":"雄乱",
|
|
|
|
|
"drlt_xiongluan_info":"限定技,出牌阶段,你可以废除你的判定区和装备区,然后指定一名其他角色。直到回合结束,你对其使用牌无距离和次数限制,其不能使用和打出手牌",
|
|
|
|
|
"drlt_congjian":"从谏",
|
|
|
|
|
"drlt_congjian_info":"当你成为锦囊牌的目标时,若此牌的目标数大于1,则你可以交给其中一名其他目标角色一张牌,然后摸一张牌,若你给出的是装备牌,改为摸两张牌",
|
|
|
|
|
"drlt_yongsi":"庸肆",
|
2019-11-22 05:19:45 +00:00
|
|
|
|
"drlt_yongsi_info":"锁定技,摸牌阶段,你改为摸X张牌(X为存活势力数);出牌阶段结束时,若你本回合:1.没有造成伤害,将手牌摸至当前体力值;2.造成的伤害超过1点,本回合手牌上限改为已损失体力值",
|
2019-06-13 12:51:34 +00:00
|
|
|
|
"drlt_weidi":"伪帝",
|
2019-11-22 05:19:45 +00:00
|
|
|
|
"drlt_weidi_info":"主公技,弃牌阶段开始时,若你的手牌数大于手牌上限,则你可以将至多X张手牌分别交给等量的其他群雄角色(X为你的手牌数与手牌上限之差)。",
|
2019-06-13 12:51:34 +00:00
|
|
|
|
"drlt_qianjie":"谦节",
|
2019-11-22 05:19:45 +00:00
|
|
|
|
"drlt_qianjie_info":"锁定技,当你横置时,取消之。你不能成为延时类锦囊的目标。你不能成为其他角色拼点的目标。",
|
2019-06-13 12:51:34 +00:00
|
|
|
|
"drlt_jueyan":"决堰",
|
|
|
|
|
"drlt_jueyan_info":"出牌阶段限一次,你可以废除一个装备栏,然后执行对应一项:武器栏,本回合内你可以多使用三张【杀】;防具栏,摸三张牌,本回合手牌上限+3;2个坐骑栏,本回合你使用的牌无距离限制;宝物栏,本回合获得技能集智",
|
|
|
|
|
"drlt_poshi":"破势",
|
2019-11-22 05:19:45 +00:00
|
|
|
|
"drlt_poshi_info":"觉醒技,准备阶段开始时,若你的装备栏均已被废除或体力值为1,则你减一点体力上限,将手牌摸至体力上限,失去技能“决堰”并获得技能“怀柔”",
|
2019-06-13 12:51:34 +00:00
|
|
|
|
"drlt_huairou":"怀柔",
|
|
|
|
|
"drlt_huairou_info":"出牌阶段,你可以重铸装备牌",
|
|
|
|
|
"drlt_zhenggu":"镇骨",
|
2020-03-23 09:11:24 +00:00
|
|
|
|
drlt_zhenggu2:"镇骨",
|
2019-06-17 07:19:46 +00:00
|
|
|
|
"drlt_zhenggu_info":"结束阶段,你可以选择一名其他角色,你的回合结束后和该角色的下个回合结束时,其将手牌摸至或弃至X张。(X为你的手牌数且至多为5)",
|
2019-06-13 12:51:34 +00:00
|
|
|
|
"drlt_zhenrong":"徵荣",
|
|
|
|
|
"drlt_zhenrong_info":"当你对其他角色造成伤害后,若其手牌比你多,你可以将其一张牌置于你的武将牌上,称为“荣”",
|
|
|
|
|
"drlt_hongju":"鸿举",
|
|
|
|
|
"drlt_hongju_info":"觉醒技,准备阶段,若“荣”的数量大于或等于3且场上有角色死亡,则你可以用任意张手牌替换等量的“荣”,然后扣减一点体力上限并获得技能“清侧”",
|
|
|
|
|
"drlt_qingce":"清侧",
|
2020-02-23 05:45:11 +00:00
|
|
|
|
"drlt_qingce_info":"出牌阶段,你可以移去一张“荣”,然后弃置一名角色装备区或判定区内的一张牌。",
|
|
|
|
|
|
|
|
|
|
zhengrong:'征荣',
|
|
|
|
|
hongju:'鸿举',
|
|
|
|
|
qingce:'清侧',
|
|
|
|
|
qingce_backup:'清侧',
|
|
|
|
|
zhengrong_info:'当你使用带有「伤害」标签的基本牌或锦囊牌指定目标后,你可以将一名手牌数不小于你的目标角色的一张牌置于你的武将牌上,称为「荣」。',
|
|
|
|
|
hongju_info:'觉醒技,准备阶段,若你武将牌上「荣」的数量不小于3,则你触发此技能。你可以用任意数量的手牌交换等量的「荣」。你减1点体力上限并获得技能〖清侧〗。',
|
|
|
|
|
qingce_info:'出牌阶段,你可以获得一张「荣」并弃置一张手牌,然后弃置场上的一张牌。',
|
2017-01-23 12:19:03 +00:00
|
|
|
|
|
2018-04-17 07:32:43 +00:00
|
|
|
|
jianchu:'鞬出',
|
|
|
|
|
jianchu_info:'当你使用【杀】指定一名角色为目标后,你可以弃置其一张牌,若以此法弃置的牌为装备牌,此【杀】不可被【闪】响应,若不为装备牌,该角色获得此【杀】',
|
|
|
|
|
redimeng:'缔盟',
|
|
|
|
|
redimeng_info:'出牌阶段限一次,你可以弃置X张牌选择两名其他角色(X为这两名角色的手牌差),你混合他们的手牌,然后令其中一名角色获得其中的一张牌,并令另一名角色获得其中的一张牌,然后重复此流程,直到这些牌均被获得为止',
|
|
|
|
|
reluanji:'乱击',
|
2019-07-14 10:58:01 +00:00
|
|
|
|
reluanji_info:'你可以将两张与你本回合以此法转化的花色均不相同的手牌当【万箭齐发】使用,然后当一名角色因响应此牌而打出【闪】时,该角色摸一张牌。若你以此法使用的【万箭齐发】未造成伤害,则你可以在此牌结算完成后摸X张牌。(X为此牌的目标数)',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
xintianxiang:'天香',
|
|
|
|
|
xintianxiang2:'天香',
|
|
|
|
|
xintianxiang3:'天香',
|
|
|
|
|
xintianxiang4:'天香',
|
|
|
|
|
xintianxiang_bg:'香',
|
|
|
|
|
xintianxiang_info:'当你受到伤害时,你可以弃置一张♥牌,将此伤害转移给一名其他角色,然后你选择一项:令该角色摸X张牌(X为其已损失的体力值);或防止其造成与受到的所有伤害,且此技能失效直到你的下回合开始',
|
|
|
|
|
xinshensu:'神速',
|
2019-08-17 10:44:34 +00:00
|
|
|
|
xinshensu_info:'你可以选择一至三项:1. 跳过判定阶段和摸牌阶段;2. 跳过出牌阶段并弃置一张装备牌;3. 跳过弃牌阶段并将你的武将牌翻面。你每选择一项,视为你对一名其他角色使用一张没有距离限制的【杀】',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
yinghun:'英魂',
|
2022-05-30 10:35:29 +00:00
|
|
|
|
yinghun_info:'准备阶段开始时,若你已受伤,你可令一名其他角色执行一项:摸X张牌,然后弃置一张牌;或摸一张牌,然后弃置X张牌(X为你已损失的体力值)',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
gzyinghun:'英魂',
|
|
|
|
|
gzyinghun_info:'准备阶段开始时,若你已受伤,你可令一名其他角色执行一项:摸X张牌,然后弃置一张牌;或摸一张牌,然后弃置X张牌(X为你已损失的体力值)',
|
2017-01-23 07:30:15 +00:00
|
|
|
|
|
2018-04-17 07:32:43 +00:00
|
|
|
|
tiaoxin:'挑衅',
|
|
|
|
|
zhiji:'志继',
|
|
|
|
|
zhiji_draw:'摸牌',
|
|
|
|
|
zhiji_recover:'回血',
|
|
|
|
|
xiangle:'享乐',
|
|
|
|
|
fangquan:'放权',
|
|
|
|
|
ruoyu:'若愚',
|
|
|
|
|
qiaobian:'巧变',
|
|
|
|
|
qiaobian1:'巧变·判定',
|
|
|
|
|
qiaobian2:'巧变·摸牌',
|
|
|
|
|
qiaobian3:'巧变·出牌',
|
|
|
|
|
qiaobian4:'巧变·弃牌',
|
|
|
|
|
tuntian:'屯田',
|
|
|
|
|
tuntian_bg:'田',
|
|
|
|
|
zaoxian:'凿险',
|
|
|
|
|
jixi:'急袭',
|
|
|
|
|
jiang:'激昂',
|
|
|
|
|
hunzi:'魂姿',
|
|
|
|
|
zhiba:'制霸',
|
|
|
|
|
zhiba2:'制霸',
|
|
|
|
|
zhijian:'直谏',
|
|
|
|
|
guzheng:'固政',
|
|
|
|
|
beige:'悲歌',
|
|
|
|
|
duanchang:'断肠',
|
|
|
|
|
// fushen:'附身',
|
|
|
|
|
huashen:'化身',
|
|
|
|
|
huashen1:'化身',
|
|
|
|
|
huashen2:'化身',
|
|
|
|
|
xinsheng:'新生',
|
|
|
|
|
qimou:'奇谋',
|
|
|
|
|
xinqiangxi:'强袭',
|
|
|
|
|
xinjushou:'据守',
|
|
|
|
|
xinjiewei:'解围',
|
|
|
|
|
retianxiang:'天香',
|
|
|
|
|
retianxiang_info:'当你受到伤害时,你可以弃置一张红桃手牌,防止此次伤害并选择一名其他角色,然后你选择一项:1.令其受到伤害来源对其造成的1点伤害,然后摸X张牌(X为其已损失体力值且至多为5);2.令其失去1点体力,然后获得你弃置的牌。',
|
2019-08-17 10:44:34 +00:00
|
|
|
|
xinjiewei_info:'你可以将装备区里的牌当【无懈可击】使用;当你的武将牌从背面翻至正面时,你可以弃置一张牌,然后移动场上的一张牌',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
xinjushou_info:'结束阶段,你可以翻面并摸四张牌,然后弃置一张手牌,若以此法弃置的是装备牌,则你改为使用之',
|
2019-08-17 10:44:34 +00:00
|
|
|
|
jixi_info:'出牌阶段,你可以将任意一张【田】当作【顺手牵羊】使用',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
xinqiangxi_info:'出牌阶段各限一次,你可以选择一项:1. 失去一点体力并对你攻击范围内的一名其他角色造成一点伤害;2. 弃置一张装备牌并对你攻击范围内的一名其他角色造成一点伤害 ',
|
2019-08-17 10:44:34 +00:00
|
|
|
|
qimou_info:'限定技,出牌阶段,你可以失去任意点体力,然后直到回合结束,你计算与其他角色的距离时-X,且你可以多使用X张【杀】(X为你失去的体力值)',
|
|
|
|
|
tiaoxin_info:'出牌阶段限一次,你可以指定一名攻击范围内包含你的角色,该角色需对你使用一张【杀】,否则你弃置其一张牌。',
|
|
|
|
|
zhiji_info:'觉醒技,准备阶段,若你没有手牌,你须回复1点体力或摸两张牌,然后减1点体力上限,并获得技能〖观星〗。',
|
|
|
|
|
xiangle_info:'锁定技,当其他角色使用【杀】指定你为目标时,其需弃置一张基本牌,否则此【杀】对你无效。',
|
|
|
|
|
fangquan_info:'你可跳过你的出牌阶段,若如此做,回合结束时,你可以弃置一张手牌并令一名其他角色进行一个额外的回合。',
|
|
|
|
|
ruoyu_info:'主公技,觉醒技,准备阶段,若你的体力是全场最少的(或之一),你须增加1点体力上限并回复1点体力,然后获得技能〖激将〗。',
|
|
|
|
|
qiaobian_info:'你可以弃置一张手牌并跳过自己的一个阶段(准备阶段和结束阶段除外);若你以此法跳过了摸牌阶段,则你可以获得至多两名其他角色的各一张手牌;若你以此法跳过了出牌阶段,则你可以移动场上的一张牌。',
|
|
|
|
|
tuntian_info:'当你于回合外失去牌时,你可以进行一次判定。若判定结果不为♥,则你将此牌置于你的武将牌上,称之为【田】。锁定技,你计算与其他角色的距离时-X(X为你武将牌上【田】的数目)',
|
|
|
|
|
zaoxian_info:'觉醒技,准备阶段,若你武将牌上【田】的数量达到3张或更多,则你减1点体力上限,并获得技能〖急袭〗',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
jiang_info:'每当你使用(指定目标后)或被使用(成为目标后)一张【决斗】或红色的【杀】时,你可以摸一张牌。',
|
2019-08-17 10:44:34 +00:00
|
|
|
|
hunzi_info:'觉醒技,准备阶段,若你的体力值为1,你减1点体力上限,并获得技能〖英姿〗和〖英魂〗。',
|
|
|
|
|
zhiba_info:'主公技,其他吴势力角色的出牌阶段限一次,其可与你进行一次拼点。若该角色没赢,你可以获得双方拼点的牌;你的觉醒技发动后,你可以拒绝此拼点。',
|
|
|
|
|
zhijian_info:'出牌阶段,你可以将手牌中的一张装备牌置于一名其他角色装备区里(不得替换原装备),然后摸一张牌。',
|
|
|
|
|
guzheng_info:'其他角色的弃牌阶段结束时,你可以令其获得本阶段内进入弃牌堆的牌中的一张,然后你获得其余的牌。',
|
|
|
|
|
beige_info:'当有角色受到【杀】造成的伤害后,你可以弃一张牌,并令其进行一次判定,若判定结果为:♥该角色回复1点体力;♦︎该角色摸两张牌;♣伤害来源弃两张牌;♠伤害来源将其武将牌翻面',
|
|
|
|
|
duanchang_info:'锁定技,杀死你的角色失去当前的所有技能。',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
// fushen_info:'回合开始前,你可以选择与任意一名角色交换控制权,该角色可选择在下一个回合开始前与你换回',
|
2021-08-27 04:05:15 +00:00
|
|
|
|
huashen_info:'所有人都展示武将牌后,你随机获得两张未加入游戏的武将牌,选一张置于你面前并声明该武将的一项技能,你拥有该技能且同时将性别和势力属性变成与该武将相同直到该化身被替换。在你的每个准备阶段和结束后,你可以替换化身牌,你须为新的化身重新声明一项技能(你不可声明限定技、觉醒技、隐匿技、使命技、主公技等特殊技能)。',
|
2019-08-17 10:44:34 +00:00
|
|
|
|
xinsheng_info:'每当你受到1点伤害后,你可获得一张新的化身牌。',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
jiangwei:'姜维',
|
|
|
|
|
liushan:'刘禅',
|
|
|
|
|
zhanghe:'张郃',
|
|
|
|
|
dengai:'邓艾',
|
|
|
|
|
sunce:'孙策',
|
|
|
|
|
zhangzhang:'张昭张紘',
|
2022-02-06 18:13:56 +00:00
|
|
|
|
caiwenji:'蔡琰',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
zuoci:'左慈',
|
2016-01-24 08:34:21 +00:00
|
|
|
|
|
2018-04-17 07:32:43 +00:00
|
|
|
|
zhurong:'祝融',
|
|
|
|
|
menghuo:'孟获',
|
|
|
|
|
caopi:'曹丕',
|
2022-04-18 02:27:32 +00:00
|
|
|
|
re_xuhuang:'徐晃',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
lusu:'旧鲁肃',
|
|
|
|
|
sunjian:'孙坚',
|
|
|
|
|
dongzhuo:'董卓',
|
|
|
|
|
jiaxu:'贾诩',
|
|
|
|
|
huoshou:'祸首',
|
|
|
|
|
huoshou1:'祸首',
|
|
|
|
|
huoshou2:'祸首',
|
|
|
|
|
zaiqi:'再起',
|
2019-11-07 14:42:15 +00:00
|
|
|
|
zaiqixx:'再起',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
juxiang:'巨象',
|
|
|
|
|
juxiang1:'巨象',
|
|
|
|
|
juxiang2:'巨象',
|
|
|
|
|
lieren:'烈刃',
|
|
|
|
|
xingshang:'行殇',
|
|
|
|
|
fangzhu:'放逐',
|
|
|
|
|
songwei:'颂威',
|
|
|
|
|
songwei2:'颂威',
|
|
|
|
|
duanliang:'断粮',
|
|
|
|
|
duanliang1:'断粮',
|
|
|
|
|
haoshi:'好施',
|
|
|
|
|
dimeng:'缔盟',
|
|
|
|
|
jiuchi:'酒池',
|
|
|
|
|
roulin:'肉林',
|
|
|
|
|
benghuai:'崩坏',
|
|
|
|
|
baonue:'暴虐',
|
|
|
|
|
baonue2:'暴虐',
|
|
|
|
|
baonue_hp:'体力',
|
|
|
|
|
baonue_maxHp:'体力上限',
|
|
|
|
|
luanwu:'乱武',
|
|
|
|
|
wansha:'完杀',
|
|
|
|
|
weimu:'帷幕',
|
|
|
|
|
jiezi:'截辎',
|
2019-08-17 10:44:34 +00:00
|
|
|
|
jiezi_info:'锁定技,其他角色跳过摸牌阶段后,你摸一张牌。',
|
|
|
|
|
huoshou_info:'锁定技,【南蛮入侵】对你无效;你视为所有【南蛮入侵】的伤害来源。',
|
|
|
|
|
zaiqi_info:'摸牌阶段,若你已受伤,则你可以改为展示牌堆顶的X张牌(X为你已损失的体力值),并回复X点体力(X为其中♥牌的数目)。然后你将这些♥牌置入弃牌堆,并获得其余的牌。',
|
2019-11-07 14:42:15 +00:00
|
|
|
|
zaiqixx_info:'摸牌阶段,若你已受伤,则你可以改为展示牌堆顶的X张牌(X为你已损失的体力值+1),并回复X点体力(X为其中♥牌的数目)。然后你将这些♥牌置入弃牌堆,并获得其余的牌。',
|
2019-08-17 10:44:34 +00:00
|
|
|
|
juxiang_info:'锁定技,【南蛮入侵】对你无效。其他角色使用的【南蛮入侵】结算后进入弃牌堆时,你获得之。',
|
|
|
|
|
lieren_info:'当你使用【杀】造成伤害后,可与受到该伤害的角色进行拼点;若你赢,你获得对方的一张牌。',
|
|
|
|
|
xingshang_info:'当有角色死亡后,你可以获得该角色的所有牌。',
|
|
|
|
|
fangzhu_info:'当你受到伤害后,你可令一名其他角色摸X张牌(X为你已损失的体力值),然后该角色将武将牌翻面。',
|
|
|
|
|
songwei_info:'主公技,其他魏势力的角色的判定牌结果为黑色且生效后,其可以令你摸一张牌。',
|
|
|
|
|
duanliang_info:'你可以将一张黑色基本牌或装备牌当做【兵粮寸断】使用;若一名角色的手牌数大于或等于你的手牌数,则你对其使用【兵粮寸断】没有距离限制。',
|
|
|
|
|
haoshi_info:'摸牌阶段,你可以额外摸两张牌。若此时你的手牌数多于五张,你须将一半(向下取整)的手牌交给场上除你外手牌数最少的一名角色。',
|
|
|
|
|
dimeng_info:'出牌阶段限一次,你可以选择其他两名角色,你弃置等同于这两名角色手牌数量之差的牌,然后交换他们的手牌。',
|
|
|
|
|
yinghun_old_info:'准备阶段,若你已受伤,则你可以令一名其他角色执行下列两项中的一项: 1.摸X张牌,然后弃一张牌。 2.摸一张牌,然后弃X张牌。 (X为你已损失的体力值)',
|
|
|
|
|
jiuchi_info:'你可以将一张♠手牌当作【酒】使用。',
|
|
|
|
|
roulin_info:'锁定技。你对女性角色、女性角色对你使用【杀】时,都需连续使用两张【闪】才能抵消。',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
benghuai_info:'结束阶段,若你的体力不是全场最少的(或之一),你须减1点体力或体力上限。',
|
2019-08-17 10:44:34 +00:00
|
|
|
|
baonue_info:'主公技,其他群雄角色造成伤害后,可进行一次判定,若为♠,你回复1点体力。',
|
|
|
|
|
luanwu_info:'限定技,出牌阶段,你可令除你外的所有角色依次对与其距离最近的另一名角色使用一张【杀】,否则失去1点体力。',
|
|
|
|
|
wansha_info:'锁定技,你的回合内,除你以外,不处于濒死状态的角色不能使用【桃】。',
|
|
|
|
|
weimu_info:'锁定技,你不能成为黑色锦囊牌的目标。',
|
2016-01-24 08:34:21 +00:00
|
|
|
|
|
2018-04-17 07:32:43 +00:00
|
|
|
|
sp_zhugeliang:'卧龙',
|
|
|
|
|
pangtong:'庞统',
|
|
|
|
|
xunyu:'荀彧',
|
|
|
|
|
dianwei:'典韦',
|
|
|
|
|
taishici:'太史慈',
|
|
|
|
|
yanwen:'颜良文丑',
|
|
|
|
|
yuanshao:'旧袁绍',
|
2020-07-11 01:45:52 +00:00
|
|
|
|
re_pangde:'庞德',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
huoji:'火计',
|
|
|
|
|
bazhen:'八阵',
|
|
|
|
|
kanpo:'看破',
|
|
|
|
|
xinlianhuan:'连环',
|
2020-10-05 05:33:08 +00:00
|
|
|
|
ollianhuan:'连环',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
lianhuan:'连环',
|
|
|
|
|
lianhuan1:'连环',
|
|
|
|
|
lianhuan3:'连环',
|
|
|
|
|
lianhuan2:'连铸',
|
2019-12-28 14:03:35 +00:00
|
|
|
|
lianhuan5:'连铸',
|
2020-10-05 05:33:08 +00:00
|
|
|
|
ollianhuan3:'连环',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
niepan:'涅槃',
|
|
|
|
|
oldniepan:'涅槃',
|
|
|
|
|
quhu:'驱虎',
|
|
|
|
|
jieming:'节命',
|
2019-11-09 13:20:13 +00:00
|
|
|
|
qiangxix:'强袭',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
qiangxi:'强袭',
|
|
|
|
|
tianyi:'天义',
|
|
|
|
|
shuangxiong:'双雄',
|
|
|
|
|
shuangxiong2:'双雄',
|
|
|
|
|
luanji:'乱击',
|
|
|
|
|
xueyi:'血裔',
|
|
|
|
|
mengjin:'猛进',
|
2020-04-25 05:40:05 +00:00
|
|
|
|
xinlianhuan_info:' 你可以将一张♣手牌当【铁索连环】使用或重铸。你使用【铁索连环】选择目标的上限数+1。',
|
2020-10-05 05:33:08 +00:00
|
|
|
|
ollianhuan_info:' 你可以将一张♣牌当【铁索连环】使用或重铸。你使用【铁索连环】选择目标的上限数+1。',
|
2019-08-17 10:44:34 +00:00
|
|
|
|
huoji_info:'出牌阶段,你可以将你的任意一张红色手牌当作【火攻】使用。',
|
|
|
|
|
bazhen_info:'锁定技,若你的防具栏内没有牌且没有被废除,则你视为装备着【八卦阵】。',
|
|
|
|
|
kanpo_info:'你可以将你的任意一张黑色手牌当做【无懈可击】使用。',
|
|
|
|
|
lianhuan_info:'出牌阶段,你可以将一张梅花手牌当做【铁索连环】使用或重铸。',
|
|
|
|
|
niepan_info:'限定技,出牌阶段或当你处于濒死状态时,你可以弃置你区域内的所有牌并复原你的武将牌,然后摸三张牌并将体力回复至3点。',
|
|
|
|
|
oldniepan_info:'限定技,当你处于濒死状态时,你可以弃置你区域内的所有牌并复原你的武将牌,然后摸三张牌并将体力回复至3点。',
|
|
|
|
|
quhu_info:'出牌阶段限一次,你可以与一名体力值大于你的角色拼点,若你赢,则该角色对其攻击范围内另一名由你指定的角色造成1点伤害。若你没赢,该角色对你造成一点伤害。',
|
|
|
|
|
jieming_info:'当你受到1点伤害后,你可令一名角色将手牌摸至X张(X为其体力上限且至多为5)。',
|
|
|
|
|
qiangxi_info:'出牌阶段限一次,你可以失去一点体力或弃置一张武器牌,然后对你攻击范围内的一名其他角色造成一点伤害。',
|
2019-11-09 13:20:13 +00:00
|
|
|
|
qiangxix_info:'出牌阶段限两次,你可以失去一点体力或弃置一张武器牌,然后一名本阶段内未成为过〖强袭〗的目标的其他角色造成一点伤害。',
|
2019-08-17 10:44:34 +00:00
|
|
|
|
tianyi_info:'出牌阶段限一次,你可以和一名其他角色拼点。若你赢,你获得以下技能效果直到回合结束:你使用【杀】没有距离限制;可额外使用一张【杀】;使用【杀】时可额外指定一个目标。若你没赢,你不能使用【杀】直到回合结束。',
|
2021-06-10 15:27:23 +00:00
|
|
|
|
shuangxiong_info:'摸牌阶段,你可以改为进行一次判定:你获得此判定牌,且你可以于此回合内将任意一张与此判定牌不同颜色的手牌当做【决斗】使用。',
|
2019-08-17 10:44:34 +00:00
|
|
|
|
luanji_info:'出牌阶段,你可以将任意两张相同花色的手牌当做【万箭齐发】使用。',
|
|
|
|
|
xueyi_info:'主公技,锁定技,场上每有一名其他群雄角色存活,你的手牌上限便+2。',
|
|
|
|
|
mengjin_info:'当你使用的【杀】被【闪】抵消时,你可以弃置目标角色的一张牌。',
|
2016-01-24 08:34:21 +00:00
|
|
|
|
|
2020-03-30 11:56:37 +00:00
|
|
|
|
re_xiahouyuan:'夏侯渊',
|
2019-12-25 05:21:37 +00:00
|
|
|
|
re_huangzhong:'界黄忠',
|
2020-05-16 05:03:13 +00:00
|
|
|
|
re_weiyan:'魏延',
|
|
|
|
|
re_xiaoqiao:'小乔',
|
2019-10-24 04:55:01 +00:00
|
|
|
|
|
|
|
|
|
gz_xiahouyuan:'夏侯渊',
|
|
|
|
|
gz_huangzhong:'黄忠',
|
|
|
|
|
gz_weiyan:'魏延',
|
|
|
|
|
gz_xiaoqiao:'小乔',
|
|
|
|
|
gz_xuhuang:'徐晃',
|
|
|
|
|
gz_pangde:'庞德',
|
2019-12-25 05:21:37 +00:00
|
|
|
|
gz_caoren:'曹仁',
|
|
|
|
|
gz_zhoutai:'周泰',
|
2019-10-24 04:55:01 +00:00
|
|
|
|
|
2019-12-25 05:21:37 +00:00
|
|
|
|
old_zhoutai:'周泰',
|
|
|
|
|
old_caoren:'曹仁',
|
2022-04-18 02:27:32 +00:00
|
|
|
|
xuhuang:'旧徐晃',
|
2020-07-11 01:45:52 +00:00
|
|
|
|
pangde:'旧庞德',
|
2020-03-30 11:56:37 +00:00
|
|
|
|
xiahouyuan:'旧夏侯渊',
|
2019-12-25 05:21:37 +00:00
|
|
|
|
caoren:'界曹仁',
|
|
|
|
|
huangzhong:'黄忠',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
sp_zhangjiao:'张角',
|
2020-05-16 05:03:13 +00:00
|
|
|
|
weiyan:'旧魏延',
|
|
|
|
|
xiaoqiao:'旧小乔',
|
2019-12-25 05:21:37 +00:00
|
|
|
|
zhoutai:'界周泰',
|
|
|
|
|
zhangjiao:'张角',
|
2021-01-23 11:25:04 +00:00
|
|
|
|
//yuji:'于吉',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
shensu:'神速',
|
|
|
|
|
shensu1:'神速',
|
|
|
|
|
shensu2:'神速',
|
|
|
|
|
shensu4:'神速',
|
|
|
|
|
jushou:'据守',
|
2019-09-20 15:19:26 +00:00
|
|
|
|
moon_jushou:'据守',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
liegong:'烈弓',
|
|
|
|
|
kuanggu:'狂骨',
|
|
|
|
|
tianxiang:'天香',
|
|
|
|
|
hongyan:'红颜',
|
|
|
|
|
buqu:'不屈',
|
|
|
|
|
buqu_bg:'创',
|
|
|
|
|
leiji:'雷击',
|
|
|
|
|
guidao:'鬼道',
|
|
|
|
|
huangtian:'黄天',
|
|
|
|
|
huangtian2:'黄天',
|
|
|
|
|
guhuo:'蛊惑',
|
|
|
|
|
fenji:'奋激',
|
|
|
|
|
releiji:'雷击',
|
|
|
|
|
jiewei:'解围',
|
|
|
|
|
tiangong:'天公',
|
|
|
|
|
tiangong2:'天公',
|
|
|
|
|
xinliegong:'烈弓',
|
|
|
|
|
xinkuanggu:'狂骨',
|
|
|
|
|
gzbuqu:'不屈',
|
2021-09-23 15:07:50 +00:00
|
|
|
|
gzbuqu_info:'①当你扣减1点体力时,若你的体力值小于1,则你将牌堆顶的一张牌置于你的武将牌上,称为“创”。②当你回复1点体力时,你移去一张“创”。③若你有“创”且点数均不相同,则你不结算濒死状态。',
|
2019-08-17 10:44:34 +00:00
|
|
|
|
xinkuanggu_info:'当你对距离1以内的一名角色造成1点伤害后,你可以回复1点体力或摸一张牌。',
|
|
|
|
|
xinliegong_info:'你使用【杀】可以选择你距离不大于此【杀】点数的角色为目标;当你使用【杀】指定一个目标后,你可以根据下列条件执行相应的效果:1.其手牌数小于等于你的手牌数,此【杀】不可被【闪】响应,2.其体力值大于等于你的体力值,此【杀】伤害+1。',
|
2019-09-20 15:19:26 +00:00
|
|
|
|
jiewei_info:'当你的武将牌翻面后,你可以摸一张牌。然后你可以使用一张锦囊牌或装备牌,并可以在此牌结算后弃置场上一张同类型的牌',
|
2019-08-17 10:44:34 +00:00
|
|
|
|
releiji_info:'当你使用或打出一张【闪】时,你可令一名其他角色进行一次判定:若结果为梅花,其受到一点雷电伤害,然后你回复一点体力;若结果为黑桃,其受到两点雷电伤害。',
|
|
|
|
|
tiangong_info:'锁定技,你防止即将受到的雷电伤害。每当你造成雷电伤害时,你摸一张牌。',
|
|
|
|
|
shensu_info:'你可以跳过判定阶段和摸牌阶段,或跳过出牌阶段并弃置一张装备牌。若如此做,则你可以视为对任意一名角色使用一张无距离限制的【杀】',
|
|
|
|
|
jushou_info:'结束阶段,你可以摸3张牌,并将武将牌翻面。',
|
2019-09-20 15:19:26 +00:00
|
|
|
|
moon_jushou_info:'结束阶段,你可以摸一张牌,并将武将牌翻面。',
|
2019-08-17 10:44:34 +00:00
|
|
|
|
liegong_info:'当你使用【杀】时,若目标的手牌数大于等于你的体力值,或小于等于你的攻击范围,你可令此【杀】不能被闪避。',
|
|
|
|
|
kuanggu_info:'锁定技,当你造成一点伤害后,若受伤角色与你的距离不大于1,你回复一点体力。',
|
|
|
|
|
tianxiang_info:'当你即将受到伤害时,你可以弃置一张♥手牌,将伤害转移给一名其他角色,然后该角色摸X张牌(X为其已损失的体力值)。',
|
|
|
|
|
hongyan_info:'锁定技,你区域内的黑桃牌和黑桃判定牌均视为红桃。',
|
|
|
|
|
buqu_info:'锁定技,当你处于濒死状态时,你亮出牌堆顶的一张牌并置于你的武将牌上,称之为“创”。若此牌的点数与你武将牌上已有的“创”点数均不同,则你回复至1体力。若点数相同,则将此牌置入弃牌堆。只要你的武将牌上有“创”,你的手牌上限便与“创”的数量相等。',
|
2019-09-20 15:19:26 +00:00
|
|
|
|
buqu_info_guozhan:'锁定技,当你处于濒死状态时,你亮出牌堆顶的一张牌并置于你的武将牌上,称之为“创”。若此牌的点数与你武将牌上已有的“创”点数均不同,则你回复至1体力。若点数相同,则将此牌置入弃牌堆。',
|
2019-08-17 10:44:34 +00:00
|
|
|
|
leiji_info:'当你使用或打出一张【闪】时,你可令任意一名角色进行一次判定。若结果为黑桃,其受到两点雷电伤害',
|
|
|
|
|
guidao_info:'一名角色的判定牌生效前,你可以打出一张黑色牌替换之。',
|
|
|
|
|
huangtian_info:'主公技,其他群势力角色的出牌阶段限一次,其可以交给你一张【闪】或【闪电】。',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
guhuo_info:'每名角色的回合限一次,你可以扣置一张手牌当一张基本牌或普通锦囊牌使用或打出。其他角色依次选择是否质疑。一旦有其他角色质疑则翻开此牌:若为假则此牌作废,若为真,则质疑角色获得技能“缠怨”(锁定技,你不能质疑于吉,只要你的体力值为1,你失去你的武将技能)',
|
2020-03-07 14:00:26 +00:00
|
|
|
|
fenji_info:'当一名角色的手牌被其他角色弃置或获得后,你可以失去1点体力,然后令该角色摸两张牌。',
|
2019-08-23 15:03:21 +00:00
|
|
|
|
|
2020-10-09 03:37:02 +00:00
|
|
|
|
new_fenji:"奋激",
|
|
|
|
|
new_fenji_info:"一名角色的结束阶段开始时,若其没有手牌,你可以令其摸两张牌,然后你失去1点体力。",
|
2019-10-24 04:55:01 +00:00
|
|
|
|
gzduanliang:'断粮',
|
|
|
|
|
gzduanliang_info:'你可以将一张黑色基本牌或黑色装备牌当【兵粮寸断】使用;你可以对距离为2的角色使用【兵粮寸断】',
|
2020-03-25 12:27:23 +00:00
|
|
|
|
"xinfu_guhuo":"蛊惑",
|
|
|
|
|
"xinfu_guhuo_info":"每名角色的回合限一次,你可以扣置一张手牌当做一张基本牌或普通锦囊牌使用或打出。其他角色依次选择是否质疑。一旦有其他角色质疑则翻开此牌:若为假则此牌作废,若为真,则质疑角色获得技能〖缠怨〗。",
|
|
|
|
|
"guhuo_guess":"蛊惑",
|
|
|
|
|
"guhuo_guess_info":"",
|
|
|
|
|
chanyuan:"缠怨",
|
|
|
|
|
"chanyuan_info":"锁定技,你不能质疑于吉,当你的体力值为1时,你的其他技能失效。",
|
|
|
|
|
"guhuo_respond":"蛊惑",
|
|
|
|
|
"guhuo_respond_info":"",
|
|
|
|
|
"guhuo_wuxie":"蛊惑",
|
|
|
|
|
"guhuo_wuxie_info":"",
|
|
|
|
|
"guhuo_phase":"蛊惑",
|
|
|
|
|
"guhuo_phase_info":"",
|
2021-02-25 12:26:19 +00:00
|
|
|
|
xinhongyan:'红颜',
|
|
|
|
|
xinhongyan_info:'锁定技,你的♠牌和♠判定牌的花色视为♥。一名角色的判定结果生效前,若判定结果为♥,则你将其改为一种花色。',
|
2019-10-24 04:55:01 +00:00
|
|
|
|
|
2020-02-08 03:39:33 +00:00
|
|
|
|
shenhua_feng:'神话再临·风',
|
|
|
|
|
shenhua_huo:'神话再临·火',
|
|
|
|
|
shenhua_lin:'神话再临·林',
|
|
|
|
|
shenhua_shan:'神话再临·山',
|
|
|
|
|
shenhua_yin:'神话再临·阴',
|
|
|
|
|
shenhua_lei:'神话再临·雷',
|
2018-04-17 07:32:43 +00:00
|
|
|
|
},
|
|
|
|
|
};
|
2019-12-28 14:03:35 +00:00
|
|
|
|
});
|