forked from libccy/noname
-
Notifications
You must be signed in to change notification settings - Fork 9
/
yijiang.js
9773 lines (9759 loc) · 302 KB
/
yijiang.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
'use strict';
game.import('character',function(lib,game,ui,get,ai,_status){
return {
name:'yijiang',
connect:true,
connectBanned:['qinmi'],
character:{
caozhang:['male','wei',4,['jiangchi']],
guohuai:['male','wei',4,['jingce']],
zhangchunhua:['female','wei',3,['jueqing','shangshi']],
caozhi:['male','wei',3,['luoying','jiushi']],
caochong:['male','wei',3,['renxin','chengxiang']],
xunyou:['male','wei',3,['zhiyu','qice']],
xin_xushu:['male','shu',3,['xinwuyan','xinjujian']],
xin_masu:['male','shu',3,['sanyao','zhiman']],
xin_fazheng:['male','shu',3,['xinenyuan','xinxuanhuo']],
zhuran:['male','wu',4,['danshou']],
xusheng:['male','wu',4,['xinpojun']],
wuguotai:['female','wu',3,['ganlu','buyi']],
lingtong:['male','wu',4,['xuanfeng']],
liubiao:['male','qun',3,['zongshi','zishou']],
huaxiong:['male','qun',6,['yaowu']],
wangyi:['female','wei',3,['zhenlie','miji']],
yufan:['male','wu',3,['zhiyan','zongxuan']],
chengong:['male','qun',3,['mingce','zhichi']],
bulianshi:['female','wu',3,['anxu','zhuiyi']],
handang:['male','wu',4,['gongji','jiefan']],
fuhuanghou:['female','qun',3,['zhuikong','qiuyuan']],
zhonghui:['male','wei',4,['quanji','zili']],
jianyong:['male','shu',3,['qiaoshui','jyzongshi']],
madai:['male','shu',4,['mashu','qianxi']],
liufeng:['male','shu',4,['xiansi']],
manchong:['male','wei',3,['junxing','yuce']],
guanzhang:['male','shu',4,['fuhun']],
chenqun:['male','wei',3,['pindi','faen']],
sunluban:['female','wu',3,['chanhui','jiaojin']],
guyong:['male','wu',3,['shenxing','bingyi']],
caifuren:['female','qun',3,['qieting','xianzhou']],
yj_jushou:['male','qun',3,['jianying','shibei']],
zhangsong:['male','shu',3,['qiangzhi','xiantu']],
zhuhuan:['male','wu',4,['fenli','pingkou']],
xiahoushi:['female','shu',3,['qiaoshi','yanyu']],
panzhangmazhong:['male','wu',4,['anjian','duodao']],
zhoucang:['male','shu',4,['xinzhongyong']],
guanping:['male','shu',4,['longyin']],
liaohua:['male','shu',4,['dangxian','fuli']],
chengpu:['male','wu',4,['lihuo','chunlao']],
gaoshun:['male','qun',4,['xianzhen','jinjiu']],
caozhen:['male','wei',4,['xinsidi']],
wuyi:['male','shu',4,['benxi']],
hanhaoshihuan:['male','wei',4,['shenduan','yonglve']],
caorui:['male','wei',3,['huituo','mingjian','xingshuai'],['zhu']],
caoxiu:['male','wei',4,['qianju','qingxi']],
zhongyao:['male','wei',3,['huomo','zuoding']],
liuchen:['male','shu',4,['zhanjue','qinwang'],['zhu']],
zhangyi:['male','shu',4,['wurong','shizhi']],
sunxiu:['male','wu',3,['yanzhu','xingxue','zhaofu'],['zhu']],
zhuzhi:['male','wu',4,['xinanguo']],
quancong:['male','wu',4,['yaoming']],
gongsunyuan:['male','qun',4,['huaiyi']],
guotufengji:['male','qun',3,['jigong','shifei']],
xin_yujin:['male','wei',4,['jieyue']],
xin_liru:['male','qun',3,['xinjuece','xinmieji','xinfencheng']],
guohuanghou:['female','wei',3,['jiaozhao','danxin']],
liuyu:['male','qun',2,['zhige','zongzuo']],
liyan:['male','shu',3,['duliang','fulin']],
sundeng:['male','wu',4,['kuangbi']],
cenhun:['male','wu',3,['jishe','lianhuo']],
huanghao:['male','shu',3,['qinqing','huisheng']],
zhangrang:['male','qun',3,['taoluan']],
sunziliufang:['male','wei',3,['guizao','jiyu']],
xinxianying:['female','wei',3,['zhongjian','caishi']],
wuxian:['female','shu',3,['fumian','daiyan']],
xushi:['female','wu',3,['wengua','fuzhu']],
caojie:['female','qun',3,['shouxi','huimin']],
caiyong:['male','qun',3,['bizhuan','tongbo']],
jikang:['male','wei',3,['qingxian','juexiang']],
qinmi:['male','shu',3,['jianzheng','zhuandui','tianbian']],
xuezong:['male','wu',3,['funan','jiexun']],
},
characterIntro:{
huaxiong:'董卓旗下名将,自荐抵抗山东地区反对董卓的诸侯联军于汜水关前,他先后斩杀济北相鲍信之弟鲍忠和孙坚部将祖茂、以及袁术部将俞涉和韩馥手下潘凤等人,最后关东联军派出关羽与之一对一决斗而被杀。',
caozhi:'字子建,沛国谯人,三国曹魏著名文学家,建安文学代表人物。魏武帝曹操之子,魏文帝曹丕之弟,生前曾为陈王,去世后谥号“思”,因此又称陈思王。南朝宋文学家谢灵运更有“天下才有一石,曹子建独占八斗”的评价。王士祯尝论汉魏以来二千年间诗家堪称“仙才”者,曹植、李白、苏轼三人耳。',
gaoshun:'中国东汉末年将领,吕布帐下中郎将。史载高顺为人清白有威严,不好饮酒,所统率的部队精锐非常,号称“陷阵营”。屡进忠言于吕布,吕布虽知其忠而不能用。曹操击破吕布后,高顺被曹操所杀。',
chengong:'字公台,东汉末年吕布帐下谋士,东郡东武阳人。性情刚直,足智多谋,年少时与海内知名之士相互结交。192年,陈宫等人主张曹操接任兖州牧。但此后陈宫因曹操杀害边让而与曹操反目,并游说张邈等人背叛曹操迎吕布入兖州,辅助吕布攻打曹操。吕布战败后,随吕布等一同被曹操所擒,决意赴死。',
lingtong:'字公绩,吴郡馀杭人,三国时期吴国名将。凌操之子,官至偏将军。',
masu:'字幼常,襄阳宜城人,三国时期蜀汉大臣,侍中马良之弟。初以荆州从事跟随刘备取蜀入川,曾任绵竹、成都令、越嶲太守。诸葛亮北伐时因作战失误而失守街亭,因而被诸葛亮所斩。',
wuguotai:'吴国太,小说《三国演义》中的人物,不见于正史记载。在小说中,吴国太被描述为孙坚的次妻,孙坚正妻武烈皇后(小说中写作吴太夫人)的妹妹,孙朗、孙仁(孙尚香)的母亲。',
xusheng:'字文向,琅邪莒县人。三国时期吴将。徐盛最初因讨伐山贼有功而被加为中郎将,后于濡须口之战中表现出色,得到孙权的赞赏。魏文帝曹丕伐吴时,徐盛以疑城之计退去魏军。',
yujin:'字文则,泰山钜平人。三国时期曹魏武将。本为鲍信部将,后属曹操,曹操称赞他可与古代名将相比。然而在建安二十四年的襄樊之战中,于禁在败给关羽后投降,致使一代名将晚节不保。',
zhangchunhua:'西晋宣穆皇后张春华(189-247),河内平皋(今河南温县)人。她是晋宣帝司马懿之妻,晋景帝司马师、晋文帝司马昭的母亲。后被追尊为皇后。',
fazheng:'字孝直,本为刘璋部下,刘备围成都时劝说刘璋投降,而后又与刘备进取汉中,献计将曹操大将夏侯渊斩首。法正善奇谋,深受刘备信任和敬重。',
xushu:'字元直,与司马徽、诸葛亮等人为友。先化名单福仕官于新野的刘备,后因曹操囚禁其母而不得不弃备投操,临行前向刘备推荐诸葛亮之才。入曹营后,一言不发,不曾为曹操进献过一计半策。后人形容徐庶“身在曹营心在汉”。',
caozhang:'字子文,是曹操与武宣卞皇后所生第二子,曹丕之弟,曹植之兄,曹魏任城王。曹彰武艺过人,曹操问诸子志向时自言“好为将”,因此得到曹操的赞赏。其胡须黄色,被曹操称为“黄须儿”。',
xunyou:'字公达,颍川颍阴人。东汉末年曹操的五谋臣之一,荀彧从子,被曹操称为“谋主”。官至尚书令。正始五年被追谥为敬侯。',
liaohua:'本名淳,字元俭,襄阳中卢(今湖北襄樊)人。三国时期蜀国后期将领,以勇敢果断著称。廖化是三国时代中经历了魏、蜀、吴整个兴衰过程极少数人中的一个,与严颜、黄忠共称为蜀汉三老将。',
bulianshi:'步夫人(?-238),讳练师,临淮淮阴人。东吴丞相步骘同族,吴大帝孙权之妃,在孙权众夫人中最受孙权的宠爱(宠冠后庭),生有二女:孙鲁班、孙鲁育。赤乌元年卒,追封为皇后,葬于蒋陵。',
chengpu:'字德谋,右北平土垠人。历仕孙坚、孙策、孙权三任君主。孙策死后,他与张昭等人共同辅佐孙权,并讨伐江东境内的山贼,功勋卓著。被人们尊称为“程公”。',
handang:'字义公,辽西令支(今河北迁安)人,吴国将领。韩当因为长于弓箭、骑术并且膂力过人而被孙坚赏识,追随他四处征伐周旋,数次冒险犯难,攻陷敌人、擒拿俘虏。对江东基业的逐渐稳固和吴国的建立有着重要影响。',
liubiao:'刘表,字景升,山阳郡高平(今山东微山)人。东汉末年名士,汉室宗亲,荆州牧,汉末群雄之一。',
zhonghui:'字士季。魏名将,太傅钟繇之子。公元263年,他与邓艾带兵攻打蜀国,最终导致蜀国灭亡。之后钟会设计害死邓艾,联合姜维准备自立,最终因部下反叛失败,与姜维一同死于兵变。',
wangyi:'益州刺史赵昂之妻,赵英、赵月之母。马超作乱凉州时,王异协助丈夫守城,多有功勋,自马超攻冀城至祁山坚守,赵昂曾出奇计九条,王异皆有参与。',
guanzhang:'关兴,名将关羽之子,继承了父亲汉寿亭侯的爵位。年少时即受诸葛亮器重,在蜀汉担任侍中、中监军之职,后在夷陵之战中报了杀父之仇。张苞,张飞的长子,使用父亲的家传蛇矛为兵器,勇猛剽悍不弱其父。',
madai:'名将马超的从弟。早年他曾经从曹操手中死里逃生,后跟随马超大战曹操。后在诸葛亮病逝后受杨仪派遣斩杀了蜀将魏延。曾率领军队出师北伐,被魏将牛金击败而退还。',
caochong:'字仓舒,曹操之子。从小聪明仁爱,与众不同,深受曹操喜爱。留有“曹冲称象”的典故。曹操几次对群臣夸耀他,有让他继嗣之意。可惜曹冲在建安十三病逝,年仅13岁。',
guohuai:'魏国名将,夏侯渊战死时郭淮收集残兵,与杜袭共推张郃为主将而得以稳定局势。曹丕称帝后,赐郭淮爵关内侯,又任镇西长史。诸葛亮伐魏时,郭淮料敌准确,多立战功,而后亦曾击退姜维。',
manchong:'初在曹操手下任许县县令,掌管司法,以执法严格著称;转任汝南太守,开始参与军事,曾参与赤壁之战。后关羽围攻樊城,满宠协助曹仁守城,劝阻了弃城而逃的计划,成功坚持到援军到来。曹丕在位期间,满宠驻扎在新野,负责荆州侧的对吴作战。曹叡在位期间,满宠转任到扬州,接替曹休负责东侧对吴作战,屡有功劳。',
guanping:'关平是关羽在战乱中所收之义子。关羽脱离曹军后,与刘备于关定家中重逢,关定欲使年仅十八岁的关平随关羽同行,刘备便主张让关羽与关平结为义父子。自此后关平随侍在关羽身边,一生东征西讨。他武勇过人,不逊乃父,曾跟随刘备出征西川,立下战功,后来又与曹魏猛将庞德大战三十回合,不分胜负。',
jianyong:'简雍为刘备同乡,年少时与刘备相识。黄巾之乱时,刘备加入对抗黄巾军的战争,简雍便跟随他奔走。常作为谈客,往来使命,刘备围成都时简雍作为刘备使臣成功劝说刘璋投降。简雍擅于辩论、议事。性情简单直接、不拘小节。',
liufeng:'刘备义子。性格刚猛,气力过人。随赵云、张飞等扫荡西川,颇有战功,而后又统领孟达攻取上庸,深为刘备信任。但是后来关羽北伐曹魏,多次要求刘封起兵相助,刘封不从。而后又侵凌孟达,迫其降魏。孟达与魏徐晃共袭刘封,并劝刘封投降,刘封不降,又遭部下叛变,败归成都。刘备在诸葛亮的建议下赐死刘封,刘封自裁,刘备深表痛惜。',
panzhangmazhong:'马忠为潘璋部将。于麦城之战中设伏擒获关羽及关平。刘备伐吴时,马忠随潘璋等往拒,突袭射伤蜀将黄忠,导致黄忠阵亡。不久,潘璋为关兴所杀,马忠领兵围击,击退张苞援军。后降将糜、傅发动兵变,刺杀了马忠,将首级献于刘备。',
yufan:'虞翻初在会稽被太守王朗任命为功曹,曾劝谏王朗躲开孙策未果。后孙策占江东仍任命他为功曹。吕蒙袭取荆州时,虞翻提醒其躲过了埋伏,成功占领城池。后因为直言进谏被孙权发配到交州。',
zhuran:'吴国著名将领,吕蒙白衣渡江取荆州,朱然协助潘璋捉住了关羽。黄武元年,刘备兵伐东吴,朱然与孙桓抵抗刘备大军。后又参加夷陵之战,追击刘备,被前来接应的赵云一枪刺死。',
fuhuanghou:'执金吾伏完之女,汉献帝的皇后,后因怨恨曹操诛董承,与父伏完密谋曹操,事情泄漏,曹将伏皇后禁闭冷宫逼其自缢,所生二位皇子亦被鸩杀。',
liru:'董卓的首席谋士,为董卓所亲信,大小事宜皆与其商议。董卓趁乱进京、说降吕布、废立皇帝、迁都长安等举动,均离不开李儒的参谋之功,并奉命毒杀皇帝刘辩。李傕被曹操击败后,李儒从此不知所踪,消失在历史长河中。',
caozhen:'曹操族子,官至大将军、大司马。其父为曹操招募人马时被州郡所杀,曹操因怜悯曹真少年丧父而待其如亲子一般,因赞赏曹真的勇猛而让他率领虎豹骑。曹真在镇守曹魏西北边境时表现突出,魏文帝时期督众将大破羌胡联军,平定河西;魏明帝时期屡次对抗诸葛亮的北伐。',
hanhaoshihuan:'韩浩和史涣都以忠勇著称,两人皆是曹操心腹将领,共同掌管禁兵。',
chenqun:'陈群一直位居要职,先后受曹操、曹丕托孤,成为魏国重臣,官至司空。其子陈泰,亦是魏国后期名将。最大的贡献为创立了九品中正制,为后期的人才选拔和管理打好了基础。',
wuyi:'初为益州牧刘璋的部将,刘备进攻益州时,泠苞在雒城大败,吴懿自告奋勇,领兵前往救援。不料被赵云和张飞生擒,吴懿于是归降。刘备自称汉中王,迎娶吴懿之妹。诸葛亮出师北伐,吴懿以左将军、高阳侯的身份跟随出征,屡立战功。诸葛亮逝世后,吴懿随姜维一并镇守汉中。',
zhoucang:'原为张宝部将。关羽千里走单骑时,周仓投降关羽,成为了关羽的贴身护卫。建安十六年(公元211年),刘备攻打成都时,周仓跟随关羽镇守荆州。关羽水淹七军时,周仓曾生擒魏军的立义将军庞德,关羽被孙权斩首之后,周仓在麦城大哭失声,拔剑自刎而死。',
zhangsong:'刘璋的部下,长相丑陋但有过目不忘的本领。张松奉命出使许都被曹操赶出,归蜀时为刘备所厚待,于是将西川地理图献予刘备,劝刘备取益州,愿为内应,并派好友孟达、法正帮助刘备。',
sunluban:'孙权之女。孙鲁班与孙权二子孙和不睦。孙权长子孙登死后,孙和被立为太子。孙鲁班向孙权进谗言废孙和太子之位,孙和被废后忧愤而死。',
zhuhuan:'字休穆,吴郡吴县(今江苏苏州)人,吴国名将,官至前将军、青州牧,假节,封为嘉兴侯。有一子朱异。',
guyong:'为蔡邕之徒。其为人少言语,不饮酒,严厉正大,被张纮推荐仕于孙权。孙权任命他为会稽郡丞,行太守事,后不断升迁,官至吴国丞相。顾雍为官,多进良言,有功于吴。',
jushou:'袁绍帐下谋士。史载他“少有大志,擅于谋略”。曾为冀州别驾,举茂才,并当过两次县令。后来又当韩馥别驾,被韩馥表为骑都尉。袁绍占据冀州后任用沮授为从事。经常对袁绍提出良策,但很多时候袁绍并不听从。官渡之战时袁绍大败,沮授未及逃走,被曹操所获,因拒降被曹操处死。',
caifuren:'原是刘表的小妾,正室死后,成为了刘表的后妻。因刘琮娶了自己的侄女所以对其偏爱有加。刘备客居荆州时险些受其所害。刘表死后为了让刘琮即位不惜献州于曹操。',
caorui:'魏文帝曹丕长子,曹魏第二位皇帝。在位期间指挥曹真、司马懿等人成功防御了吴、蜀的多次攻伐,并且平定鲜卑,攻灭公孙渊,颇有建树。',
caoxiu:'曹操族子,曹操大宴铜雀台之时,射箭夺袍。曹休随曹操四处征伐,在攻蜀汉中之战,伐吴濡须口之战均有登场,曾放冷箭射倒凌统的马匹,后又协助夏侯惇平息洛阳纵火叛乱,总管御林兵马,协助曹丕代汉。',
zhongyao:'初为长安郡守,马超反叛时,引军攻打长安,钟繇率军防卫。后城破,钟繇从东门弃城而走,退守潼关。后奉献帝令繇草拟诏令,册立曹操为魏王,曹操以钟繇为相国。明帝即位时,钟繇为太傅。诸葛亮北伐,钟繇举荐司马懿前往抵御。',
liuchen:'刘禅第五子,自幼聪明,英敏过人。魏军兵临城下时,刘禅准备投降,刘谌劝阻刘禅投降不成后悲愤不已,遂自杀于昭烈庙。',
xiahoushi:'夏侯渊从女,夏侯霸从妹,出城拾柴时被张飞所得,取其为妻。后生有二女,其中一人为星彩。',
zhangyi:'曾随诸葛亮南征孟获,七擒孟获的战斗中立下赫赫战功,与祝融夫人单挑。诸葛亮病死五丈原,告诉姜维张嶷忠贞勇猛,经验丰富,是可以依靠的武将,后于征伐魏国时为掩护姜维撤退阵亡。',
sunxiu:'孙权第六子,孙綝发动政变罢黜孙亮后,迎立孙休为帝。后孙綝专权,孙休遣使丁奉等人将其诛杀。孙休在位期间,颁布良制,嘉惠百姓,促进了东吴的繁荣。',
zhuzhi:'孙坚旧将,朱然嗣父,孙坚阵亡后,孙策附袁术,朱治、吕范为之定计,用玉玺向袁术借兵夺取江东。孙策平定东路后,任命朱治为吴郡太守,收军返回江东。后来赤壁之战,大都督周瑜令朱治、吕范为四方巡警使,催督六郡官军。',
quancong:'吴国名将,孙策进兵江东时归顺之,深得孙权赏识,孙权甚至将孙鲁班许配之。',
gongsunyuan:'辽东太守公孙度之孙,辽东割据首领。趁魏、吴骚乱之际自称燕王,发动叛乱,与魏对抗。败给司马懿率领的讨伐大军,被围困后乞降不被接受,与子修在欲出城逃跑时被斩杀。',
guotufengji:'两人均是袁绍帐下谋士。曾联手献计,利用公孙瓒攻击韩馥,又劝说韩馥请袁绍抵挡公孙瓒,终替袁绍拿下冀州。官渡之战期间,两人进谗逼反张郃高览,逼死田丰。使得袁绍的实力大损。',
guohuanghou:'明元郭皇后(并非郭女王),在三国志有正传。曹叡夫人,曹丕的儿媳妇,曹芳,曹髦,曹奂三朝太后,是唯一经历了曹魏全部皇帝时代的贵族女性。曹魏后三帝时期,由于皇帝年少,太后与重臣一同处理政务。史书上对郭皇后有两种截然不同的记载,一种是曹芳被废和曹髦死后郭太后发诏书斥责他们不配人君,另一种却提及曹芳被夺权期间,太后与曹芳相拥而泣,曹髦讨伐司马昭前,曾向太后禀报。',
liyan:'字正方,蜀汉重臣。初为刘表部下,曹操入主荆州时,李严西奔入蜀。刘备入川,李严率众投降,深得刘备器重,受命与诸葛亮、法正等人一同编制《蜀科》,又率军平定了蜀中盗贼。白帝城托孤,与诸葛亮共受遗诏同扶幼主。其人性格矜高难近,终因督粮不利且谎报实情而被流放,后在当地去世。',
sundeng:'字子高,孙权长子。孙权称帝后其被立为太子,受诸葛恪等人辅佐。其人性情温和而能礼贤下士,加之爱民如子,因此深受爱戴。曾劝服孙权在孙虑之死时节哀,并劝谏孙权勿用吕壹苛政。后不幸早逝,临终前上书建言,推荐了多位良臣。其亡故令孙权极为悲伤,也为南鲁党争的祸乱埋下了伏笔。',
liuyu:'伯安,幽州牧,汉室宗亲。在幽州两度任职,颇有威望。张纯、张举叛乱,刘虞恩威并施将其平定,又鼓励农商,大大改善了当地经济民生,青徐二州流民纷纷前来避难。后坚拒袁绍等人立其为帝的请求,派兵迎接献帝,却为袁术所扣,并因此事激化了与公孙瓒的矛盾,最终被击败,为其所害。',
cenhun:'岑昏为宦官,官列中常侍,孙皓即位后得到宠幸。280年,晋龙骧将军王濬率军伐吴,岑昏建议以铁锁链封锁长江,阻挡晋军进攻。王濬以火船烧锁链破其计,沿途东吴将士或死或降。群臣上奏东吴衰败之因在于岑昏,将他与蜀汉的黄皓并列为误国之奸臣。',
sunziliufang:'孙资在曹操手下历任县令,参丞相军事;刘放曾有劝王松归顺曹操之举,为曹操所欣赏,遂招为司空府官,又外放历任几处县令。魏国初建之际,孙资与刘放俱任秘书郎。曹丕继位后,二人一同掌握机密。曹睿病危时,二人力荐曹爽,又推荐招回司马懿辅政。最后,曹睿独召曹爽、司马懿、刘放、孙资同受诏命,而免去曹宇、夏侯献、曹肇、秦朗的官职。',
huanghao:'宦官。为后主刘禅所宠,专秉朝政。黄皓与大将军姜维不睦,维启后主杀之,后主不从。皓阴以心腹阎宇替维。景耀六年,蜀亡,邓艾预欲杀之,皓贿赂左右得免。及后主迁洛阳,皓为司马昭凌迟处死。',
zhangrang:'汉中常侍。同赵忠、曹节、段珪等为“十常侍”,为灵帝所宠。让等专权乱政、卖官索财,朝野皆痛恨之。郎中张钧上书奏请诛杀十常侍,帝不允,让等阴杀钧。及灵帝崩,大将军何进欲杀让等,让阴结何太后,招进入宫,斩杀之。部将袁绍引兵攻让,让等劫帝走河上。追急,让投水自尽。',
},
perfectPair:{
wuguotai:['sunjian','sunshangxiang'],
zhangchunhua:['simayi'],
caozhi:['zhenji'],
xunyou:['xunyu'],
xushu:['liubei'],
lingtong:['ganning'],
chengong:['lvbu'],
bulianshi:['sunquan'],
fuhuanghou:['liuxie'],
sunluban:['quancong'],
caifuren:['liubiao'],
xiahoushi:['zhangfei'],
zhoucang:['guanyu'],
guanping:['guanyu'],
sundeng:['sunquan'],
liru:['dongzhuo'],
liuchen:['liushan'],
},
skill:{
fenli:{
group:['fenli_draw','fenli_use','fenli_discard'],
subSkill:{
draw:{
trigger:{player:'phaseDrawBefore'},
prompt:'是否发动【奋励】跳过摸牌阶段?',
filter:function(event,player){
return player.isMaxHandcard();
},
check:function(event,player){
if(player.storage.pingkou) return false;
return game.hasPlayer(function(current){
return get.attitude(player,current)<0&¤t.hp==1&&get.damageEffect(current,player,player)>0;
});
},
content:function(){
trigger.cancel();
}
},
use:{
trigger:{player:'phaseUseBefore'},
prompt:'是否发动【奋励】跳过出牌阶段?',
filter:function(event,player){
return player.isMaxHp();
},
check:function(event,player){
if(!player.needsToDiscard()||(player.countCards('e')&&player.isMaxEquip())) return true;
if(player.storage.pingkou) return false;
return game.hasPlayer(function(current){
return get.attitude(player,current)<0&¤t.hp==1&&get.damageEffect(current,player,player)>0;
});
},
content:function(){
trigger.cancel();
}
},
discard:{
trigger:{player:'phaseDiscardBefore'},
prompt:'是否发动【奋励】跳过弃牌阶段?',
filter:function(event,player){
return player.isMaxEquip()&&player.countCards('e');
},
content:function(){
trigger.cancel();
}
}
},
ai:{
combo:'pingkou'
}
},
pingkou:{
group:['pingkou_init','pingkou_count'],
subSkill:{
init:{
trigger:{player:'phaseBegin'},
silent:true,
content:function(){
player.storage.pingkou=0;
}
},
count:{
trigger:{player:[
'phaseJudgeCancelled','phaseJudgeSkipped',
'phaseDrawCancelled','phaseDrawSkipped',
'phaseUseCancelled','phaseUseSkipped',
'phaseDiscardCancelled','phaseDiscardSkipped'
]},
silent:true,
content:function(){
player.storage.pingkou++;
console.log(event.triggername,trigger.name)
}
}
},
trigger:{player:'phaseEnd'},
direct:true,
filter:function(event,player){
return player.storage.pingkou>0;
},
content:function(){
'step 0'
player.chooseTarget([1,player.storage.pingkou],get.prompt2('pingkou'),function(card,player,target){
return target!=player;
}).set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
});
'step 1'
if(result.bool){
player.logSkill('pingkou',result.targets);
event.targets=result.targets.slice(0).sortBySeat();
}
else{
event.finish();
}
'step 2'
if(event.targets&&event.targets.length){
event.targets.shift().damage();
event.redo();
}
},
ai:{
combo:'fenli',
effect:{
target:function(card){
if(card.name=='lebu'||card.name=='bingliang') return 0.5;
}
}
}
},
xinanguo:{
audio:'anguo',
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
if(player==target) return false;
if(player.isMinHandcard()||target.isMinHandcard()) return true;
if(player.isMinEquip()||target.isMinEquip()) return true;
if((player.isMinHp()&&player.isDamaged())||(target.isMinHp()&&target.isDamaged())) return true;
return false;
},
content:function(){
'step 0'
if(target.isMinHandcard()){
target.draw();
event.h=true;
}
if(target.isMinHp()&&target.isDamaged()){
target.recover();
event.hp=true;
}
event.equip=get.cardPile(function(card){
return get.type(card)=='equip';
});
if(target.isMinEquip()){
target.equip(event.equip||game.createCard(get.inpilefull('equip').randomGet()),true);
event.e=true;
}
'step 1'
if(!event.h&&player.isMinHandcard()){
player.draw();
}
if(!event.hp&&player.isMinHp()&&player.isDamaged()){
player.recover();
}
if(!event.e&&player.isMinEquip()){
player.equip(event.equip||game.createCard(get.inpilefull('equip').randomGet()),true);
}
},
ai:{
threaten:1.6,
order:9,
result:{
player:function(player,target){
if(get.attitude(player,target)<=0){
if(target.isMinHandcard()||target.isMinEquip()||target.isMinHp()) return -1;
}
var num=0;
if(player.isMinHandcard()||target.isMinHandcard()) num++;
if(player.isMinEquip()||target.isMinEquip()) num++;
if((player.isMinHp()&&player.isDamaged())||(target.isMinHp()&&target.isDamaged())) num+=2.1;
return num;
}
}
}
},
pindi:{
enable:'phaseUse',
filterTarget:function(card,player,target){
if(player==target) return false;
if(player.storage.pindi_target&&
player.storage.pindi_target.contains(target)){
return false;
}
return true;
},
filterCard:function(card,player){
if(player.storage.pindi_type&&
player.storage.pindi_type.contains(get.type2(card))){
return false;
}
return true;
},
subSkill:{
clear:{
trigger:{player:'phaseAfter'},
silent:true,
content:function(){
delete player.storage.pindi_target;
delete player.storage.pindi_type;
}
}
},
group:'pindi_clear',
check:function(card){
var num=_status.event.player.getStat('skill').pindi||0;
return 6+num-get.value(card);
},
position:'he',
content:function(){
'step 0'
if(!player.storage.pindi_target){
player.storage.pindi_target=[];
}
if(!player.storage.pindi_type){
player.storage.pindi_type=[];
}
player.storage.pindi_target.push(target);
player.storage.pindi_type.push(get.type2(cards[0]));
event.num=player.getStat('skill').pindi;
player.chooseControlList([
'令'+get.translation(target)+'摸'+get.cnNumber(event.num)+'张牌',
'令'+get.translation(target)+'弃置'+get.cnNumber(event.num)+'张牌'
],function(){
return _status.event.choice;
}).set('choice',get.attitude(player,target)>0?0:1);
'step 1'
if(result.index==0){
target.draw(event.num);
}
else{
target.chooseToDiscard(event.num,'he',true);
}
'step 2'
if(target.isDamaged()){
player.link(true);
}
},
ai:{
order:8,
threaten:1.8,
result:{
player:1
}
}
},
funan:{
trigger:{global:['respondAfter','useCardAfter']},
filter:function(event,player){
if(!event.respondTo) return false;
if(event.player==player) return false;
if(player!=event.respondTo[0]) return false;
if(get.itemtype(event.cards)!='cards') return false;
if(['h','e','j'].contains(get.position(event.cards[0]))) return false;
if(get.itemtype(event.respondTo[1])!='card') return false;
if(['h','e','j'].contains(get.position(event.respondTo[1]))) return false;
return true;
},
logTarget:'player',
check:function(event,player){
if(get.attitude(player,event.player)>=0) return true;
if(player.hasSkill('funan_jiexun')&&player.storage.funan_jiexun==event.player) return true;
if(event.cards.length>1) return true;
return get.value(event.cards[0])>get.value(event.respondTo[1]);
},
content:function(){
'step 0'
if(!player.hasSkill('funan_jiexun')||player.storage.funan_jiexun!=trigger.player){
trigger.player.gain(trigger.respondTo[1],'gain2');
trigger.player.addTempSkill('funan_use');
if(!trigger.player.storage.funan_use){
trigger.player.storage.funan_use=[];
}
trigger.player.storage.funan_use.add(trigger.respondTo[1]);
}
'step 1'
player.gain(trigger.cards,'gain2');
},
subSkill:{
jiexun:{
mark:'character',
intro:{
content:'你发动“复难”时,无须令$获得你使用的牌'
},
trigger:{global:'dieAfter'},
silent:true,
filter:function(event,player){
return player.storage.funan_jiexun==event.player;
},
onremove:true,
content:function(){
player.removeSkill('funan_jiexun');
}
},
use:{
onremove:true,
mod:{
cardEnabled:function(card,player){
if(player.storage.funan_use&&player.storage.funan_use.contains(card)){
return false;
}
}
}
}
}
},
jiexun:{
trigger:{player:'phaseEnd'},
// filter:function(event,player){
// return game.hasPlayer(function(current){
// return current.countCards('ej',{suit:'diamond'});
// });
// },
init:function(player){
player.storage.jiexun=0;
},
onremove:true,
direct:true,
content:function(){
'step 0'
var num1=game.countPlayer(function(current){
return current.countCards('ej',{suit:'diamond'});
});
var num2=player.storage.jiexun;
event.num1=num1;
event.num2=num2;
var str='令目标摸'+get.cnNumber(num1)+'张牌';
if(num2){
str+=',然后弃置'+get.cnNumber(num2)+'张牌;若目标因此法弃置了所有牌,则你失去“诫训”,然后你发动“复难”时,无须令其获得你使用的牌';
}
player.chooseTarget(get.prompt('jiexun'),function(card,player,target){
return target!=player;
}).set('ai',function(target){
return _status.event.coeff*get.attitude(_status.event.player,target);
}).set('coeff',num1>=num2?1:-1).set('prompt2',str);
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('jiexun',target);
if(event.num1){
target.draw(event.num1);
}
player.storage.jiexun++;
}
else{
event.finish();
}
'step 2'
if(event.num2){
event.target.chooseToDiscard(event.num2,true,'he');
}
else{
event.finish();
}
'step 3'
if(!event.target.countCards('he')){
player.removeSkill('jiexun');
player.storage.funan_jiexun=event.target;
player.addSkill('funan_jiexun');
}
}
},
zhuandui:{
group:['zhuandui_respond','zhuandui_use'],
subSkill:{
use:{
trigger:{player:'shaBegin'},
check:function(event,player){
return get.attitude(player,event.target)<0;
},
filter:function(event,player){
return player.countCards('h')>0&&event.target.countCards('h')>0&&event.target!=player;
},
logTarget:'target',
content:function(){
'step 0'
player.chooseToCompare(trigger.target);
'step 1'
if(result.bool){
trigger.directHit=true;
}
}
},
respond:{
trigger:{target:'shaBegin'},
check:function(event,player){
return get.effect(player,event.card,event.player,player)<0;
},
filter:function(event,player){
return player.countCards('h')>0&&event.player.countCards('h')>0&&event.player!=player;
},
logTarget:'player',
content:function(){
'step 0'
player.chooseToCompare(trigger.player);
'step 1'
if(result.bool){
trigger.skipShan=true;
}
}
}
},
ai:{
effect:{
target:function(card,player,target,current){
if(card.name=='sha'&¤t<0) return 0.7;
}
}
}
},
tianbian:{
trigger:{player:'chooseCardBegin'},
check:function(event,player){
return player.hasCard(function(card){
var val=get.value(card);
return val<0||(val<=4&&card.number>=11);
});
},
filter:function(event){
return event.type=='compare'&&!event.directresult;
},
content:function(){
var cards=get.cards();
cards[0].discard();
cards[0].vanishtag.add('tianbian');
trigger.directresult=cards;
trigger.untrigger();
},
group:'tianbian_number',
subSkill:{
number:{
trigger:{player:'compare',target:'compare'},
filter:function(event,player){
if(event.iwhile) return false;
if(event.player==player){
return get.suit(event.card1)=='heart';//&&event.card1.vanishtag.contains('tianbian');
}
else{
return get.suit(event.card2)=='heart';//&&event.card2.vanishtag.contains('tianbian');
}
},
silent:true,
content:function(){
game.log(player,'拼点牌点数视为','#y13');
if(player==trigger.player){
trigger.num1=13;
}
else{
trigger.num2=13;
}
}
}
}
},
jianzheng:{
trigger:{global:'useCard'},
filter:function(event,player){
if(!player.countCards('h')) return false;
return event.player!=player&&event.card.name=='sha'&&!event.targets.contains(player)&&
get.distance(event.player,player,'attack')<=1;
},
direct:true,
content:function(){
"step 0"
var effect=0;
for(var i=0;i<trigger.targets.length;i++){
effect-=get.effect(trigger.targets[i],trigger.card,trigger.player,player);
}
if(effect>0){
if(get.color(trigger.card)!='black'){
effect=0;
}
else{
effect=1;
}
if(trigger.targets.length==1){
if(trigger.targets[0].hp==1){
effect++;
}
if(effect>0&&trigger.targets[0].countCards('h')<player.countCards('h')){
effect++;
}
}
if(effect>0){
effect+=6;
}
}
player.chooseCard('h',get.prompt2('jianzheng',trigger.player)).set('ai',function(card){
if(_status.event.effect>=0){
var val=get.value(card);
if(val<0) return 10-val;
return _status.event.effect-val;
}
return 0;
}).set('effect',effect).set('logSkill',['jianzheng',trigger.player]);
"step 1"
if(result.bool&&result.cards){
event.card=result.cards[0];
trigger.targets.length=0;
trigger.untrigger();
}
else{
event.finish();
}
"step 2"
if(!event.isMine()) game.delayx();
"step 3"
if(event.card){
player.logSkill('jianzheng',trigger.player);
player.lose(result.cards,ui.special);
game.broadcastAll(function(player){
var cardx=ui.create.card();
cardx.classList.add('infohidden');
cardx.classList.add('infoflip');
player.$throw(cardx,1000,'nobroadcast');
},player);
}
"step 4"
if(event.card){
event.card.fix();
ui.cardPile.insertBefore(event.card,ui.cardPile.firstChild);
}
"step 5"
if(get.color(trigger.card)!='black'){
trigger.targets.push(player);
trigger.player.line(player);
game.delay();
trigger.trigger('useCard');
}
}
},
qingxian:{
group:['qingxian_jilie','qingxian_rouhe'],
ai:{
threaten:0.8,
maixie:true,
maixie_hp:true,
maixie_defend:true,
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')){
if(target.hp>1&&target.hasFriend()) return 0.8;
}
}
}
},
subSkill:{
rouhe:{
trigger:{player:'recoverEnd'},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt('qingxian'),function(card,player,target){
return target!=player;
}).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(target.isHealthy()&&att>0) return 0;
if(target.hp==1&&att!=0){
if(att>0) return 9;
else return 10;
}
else{
return Math.sqrt(Math.abs(att));
}
}).set('prompt2','当你回复体力后,你可以令一名其他角色执行一项:失去1点体力,随机使用一张装备牌;回复1点体力,弃置一张装备牌。若其以此法使用或弃置的牌为梅花,你回复1点体力');
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('qingxian',target);
event.insert(lib.skill.qingxian.content_choose,{target:target,player:player});
}
}
},
jilie:{
trigger:{player:'damageEnd'},
filter:function(event,player){
return event.source&&event.source.isIn()&&event.source!=player;
},
check:function(event,player){
if(get.attitude(player,event.source)>0&&event.source.isHealthy()){
return false;
}
return true;
},
logTarget:'source',
prompt2:'当你受到伤害后,你可以令伤害来源执行一项:失去1点体力,随机使用一张装备牌;回复1点体力,弃置一张装备牌。若其以此法使用或弃置的牌为梅花,你回复1点体力',
content:function(){
event.insert(lib.skill.qingxian.content_choose,{target:trigger.source,player:player});
}
}
},
content_choose:function(){
'step 0'
var index;
if(get.attitude(player,target)>0){
if(target.isHealthy()){
index=0;
}
else{
index=1;
}
}
else{
if(target.isHealthy()&&target.countCards('e')){
index=1;
}
else{
index=0;
}
}
player.chooseControlList(
['令'+get.translation(target)+'失去1点体力,随机使用一张装备牌',
'令'+get.translation(target)+'回复1点体力,弃置一张装备牌'],
true,function(event,player){
return _status.event.index;
}).set('index',index);
'step 1'
if(result.index==0){
target.loseHp();
event.card=get.cardPile(function(card){
return get.type(card)=='equip';
});
if(event.card){
target.equip(event.card,true).set('delay',true);
event.goto(3);
}
else{
event.finish();
}
}
else{
target.recover();
if(target.countCards('he',{type:'equip'})){
target.chooseToDiscard('he',true,'弃置一张装备牌',function(card){
return get.type(card)=='equip';
}).set('ai',function(card){
var val=-get.value(card);
if(get.suit(card)=='club'){
val+=_status.event.att*10;
}
return val;
}).set('att',get.sgnAttitude(target,player));
}
else{
event.finish();
}
}
'step 2'
if(result&&result.cards){
event.card=result.cards[0];
}
'step 3'
if(event.card&&get.suit(event.card)=='club'){
player.recover();
}
}
},
juexiang:{
trigger:{player:'dieBegin'},
direct:true,
skillAnimation:true,
animationColor:'thunder',
content:function(){
'step 0'
player.chooseTarget(get.prompt('juexiang'),function(card,player,target){
return target!=player;
}).set('ai',function(target){
return get.attitude(_status.event.player,target)/Math.sqrt(target.hp+1);
});
'step 1'
if(result.bool){
var target=result.targets[0]
player.logSkill('juexiang',target);
target.addSkill(lib.skill.juexiang.derivation.randomGet());
target.addTempSkill('juexiang_club',{player:'phaseBegin'});
}
},
derivation:['juexiang_ji','juexiang_lie','juexiang_rou','juexiang_he'],
subSkill:{
ji:{
mark:true,
nopop:true,
intro:{
content:'info'
},
trigger:{player:'damageEnd'},
filter:function(event,player){
return event.source&&event.source.isIn()&&event.source!=player;
},
check:function(event,player){
return get.attitude(player,event.source)<0;
},
logTarget:'source',
content:function(){
trigger.source.loseHp();
var card=get.cardPile(function(card){
return get.type(card)=='equip';
});
if(card){
trigger.source.equip(card,true).set('delay',true);
}
},
ai:{
maixie_defend:true,
}
},
lie:{
mark:true,
nopop:true,
intro:{
content:'info'
},
trigger:{player:'recoverEnd'},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt2('juexiang_lie'),function(card,player,target){
return target!=player;
}).set('ai',function(target){
return -get.attitude(player,target)/(1+target.hp);
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('juexiang_lie',target);
target.loseHp();
var card=get.cardPile(function(card){
return get.type(card)=='equip';
});
if(card){
target.equip(card,true).set('delay',true);
}
}
}
},
rou:{
mark:true,
nopop:true,
intro:{
content:'info'
},
trigger:{player:'damageEnd'},
filter:function(event,player){
return event.source&&event.source.isIn()&&event.source!=player;
},
check:function(event,player){
var att=get.attitude(player,event.source);
if(player.isHealthy()){
return att<0;
}
else{
return att>0
}
},
logTarget:'source',
content:function(){
trigger.source.recover();
if(trigger.source.countCards('he',{type:'equip'})){
trigger.source.chooseToDiscard('he',true,'弃置一张装备牌',function(card){
return get.type(card)=='equip';
});
}
},
ai:{
maixie_defend:true,
}
},
he:{
mark:true,
nopop:true,
intro:{
content:'info'
},
trigger:{player:'recoverEnd'},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt2('juexiang_he'),function(card,player,target){
return target!=player;
}).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(target.isHealthy()&&target.countCards('he')){
return -att;
}
else{
return 10*att/(1+target.hp);
}
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('juexiang_he',target);
target.recover();
if(target.countCards('he',{type:'equip'})){
target.chooseToDiscard('he',true,'弃置一张装备牌',function(card){
return get.type(card)=='equip';
});
}
}
}
},
club:{
mark:true,
nopop:true,
intro:{
content:'info'
},
mod:{
targetEnabled:function(card,player,target){
if(get.suit(card)=='club'&&player!=target){
return false;
}
}
}
}
}
},
bizhuan:{
trigger:{player:'useCardAfter',target:'useCardToBegin'},
filter:function(event,player){
if(event.name!='useCard'&&event.player==event.target) return false;
if(player.storage.bizhuan.length>=4) return false;
return get.suit(event.card)=='spade';
},
init:function(player){
player.storage.bizhuan=[];
},
intro:{
content:'cards'
},
frequent:true,
content:function(){
var card=get.cards()[0];
ui.special.appendChild(card);